:root{--c-primary:#1a73b5;--c-primary-light:#e3f2fd;--c-primary-tint:#f0f7fc;--c-primary-dark:#155a8a;--c-secondary:#26a69a;--c-secondary-tint:#e6f4f2;--c-surface:#fff;--c-bg:#f5f7fa;--c-bg-warm:#fafafc;--c-bg-cool:#eef1f6;--c-error:#d32f2f;--c-error-tint:#fdecec;--c-warning:#f9a825;--c-warning-tint:#fef6e3;--c-success:#2e7d32;--c-success-tint:#e8f3e9;--c-text:#1a1a1a;--c-text-2:#555;--c-text-3:#8a8a8a;--c-border:#e0e0e0;--c-border-strong:#c5ccd3;--c-divider:#eef1f4;--c-status-booked:#1a73b5;--c-status-checkedin:#7b1fa2;--c-status-called:#f57c00;--c-status-completed:#2e7d32;--c-status-cancelled:#9e9e9e;--c-status-noshow:#d32f2f;--c-status-pending:#f9a825;--density-pad:16px;--density-gap:12px;--density-row:64px;--font-body:"Noto Sans TC", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--font-display:"Newsreader", "Noto Sans TC", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--r-card:14px;--r-btn:10px;--r-chip:24px;--r-input:10px;--shadow-sm:0 1px 3px #0f172a0d;--shadow-md:0 4px 12px #0f172a0f, 0 1px 3px #0f172a0a;--shadow-lg:0 12px 32px #0f172a14;--shadow-pop:0 16px 48px #1a73b52e;--fs-base:15px;--fs-rx:18px;--transition-fast:.15s ease;--transition-normal:.2s ease;--transition-slow:.3s ease}html,body,#root{height:100%;font-family:var(--font-body);background:#eef1f6;margin:0;padding:0}body{overscroll-behavior:none}*{box-sizing:border-box}:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sc-app{font-family:var(--font-body);font-size:var(--fs-base);color:var(--c-text);font-feature-settings:"ss01", "tnum";-webkit-font-smoothing:antialiased;line-height:1.55}.sc-app,.sc-app *{box-sizing:border-box}.font-display{font-family:var(--font-display);letter-spacing:-.02em;font-weight:500}.font-mono{font-family:var(--font-mono);font-feature-settings:"tnum", "zero"}.tnum{font-variant-numeric:tabular-nums}.eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--c-text-3);font-size:11px;font-weight:500}.bi{flex-direction:column;gap:1px;display:flex}.bi-zh,.bi-zh-CN{font-weight:600}.bi-en{color:var(--c-text-2);letter-spacing:.01em;font-size:.78em;font-weight:400}.bi-inline{align-items:baseline;gap:8px;display:inline-flex}.bi-inline .bi-en{opacity:.55;font-size:.7em}.only-zh-CN,.bi-zh-CN,.sc-app[data-lang=zh-TW] .bi-en,.sc-app[data-lang=zh-TW] .only-en,.sc-app[data-lang=zh-TW] .only-zh-CN,.sc-app[data-lang=zh-TW] .bi-zh-CN,.sc-app[data-lang=zh-CN] .bi-zh,.sc-app[data-lang=zh-CN] .bi-en{display:none}.sc-app[data-lang=zh-CN] .bi-zh-CN{font-size:inherit;color:inherit;font-weight:600;display:block}.sc-app[data-lang=zh-CN] .only-zh,.sc-app[data-lang=zh-CN] .only-en{display:none}.sc-app[data-lang=zh-CN] .only-zh-CN{display:inline}.sc-app[data-lang=zh-CN] .bi{gap:0}.sc-app[data-lang=bi] .only-en,.sc-app[data-lang=bi] .only-zh-CN,.sc-app[data-lang=bi] .bi-zh-CN,.sc-app[data-lang=en] .bi-zh,.sc-app[data-lang=en] .bi-zh-CN,.sc-app[data-lang=en] .only-zh,.sc-app[data-lang=en] .only-zh-CN{display:none}.sc-app[data-lang=en] .bi-en{font-size:inherit;color:inherit;font-weight:inherit;opacity:1}.sc-app[data-lang=en] .bi{gap:0}.sc-app[data-density=compact]{--density-pad:10px;--density-gap:8px;--density-row:52px}.sc-app[data-density=comfortable]{--density-pad:16px;--density-gap:12px;--density-row:64px}.sc-app[data-fontscale=large]{--fs-base:17px;--fs-rx:22px}.sc-app[data-fontscale=xl]{--fs-base:19px;--fs-rx:26px}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card);padding:var(--density-pad);transition:box-shadow var(--transition-normal), border-color var(--transition-normal), transform var(--transition-fast)}button.card:hover,a.card:hover{box-shadow:var(--shadow-md);border-color:var(--c-border-strong)}button.card:active,a.card:active{transform:scale(.98)}.card-flat{background:var(--c-surface);border-radius:var(--r-card);padding:var(--density-pad)}.card-tint{background:var(--c-primary-tint);border-radius:var(--r-card);padding:var(--density-pad)}.btn{font-family:var(--font-body);border-radius:var(--r-btn);cursor:pointer;min-height:48px;transition:background var(--transition-fast), border-color var(--transition-fast), transform 80ms ease, box-shadow var(--transition-fast), opacity var(--transition-fast);letter-spacing:.005em;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font-size:15px;font-weight:600;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.45}.btn-primary{background:var(--c-primary);color:#fff;box-shadow:0 2px 8px #1a73b540}.btn-primary:hover{background:var(--c-primary-dark);box-shadow:0 4px 12px #1a73b54d}.btn-primary:disabled{box-shadow:none}.btn-secondary{background:var(--c-surface);color:var(--c-text);border-color:var(--c-border-strong)}.btn-secondary:hover{background:var(--c-bg);border-color:var(--c-primary);color:var(--c-primary)}.btn-ghost{color:var(--c-text-2);background:0 0}.btn-ghost:hover{background:var(--c-bg);color:var(--c-text)}.btn-danger{background:var(--c-error);color:#fff}.btn-success{background:var(--c-success);color:#fff}.btn-lg{border-radius:12px;min-height:52px;padding:16px 22px;font-size:16px}.btn-sm{min-height:36px;padding:8px 12px;font-size:13px}.btn-block{width:100%;display:flex}.input,.textarea,.select{border:1px solid var(--c-border);border-radius:var(--r-input);background:var(--c-surface);color:var(--c-text);width:100%;min-height:48px;transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);padding:12px 14px;font-family:inherit;font-size:15px}.input:hover,.textarea:hover,.select:hover{border-color:var(--c-border-strong)}.input:focus,.textarea:focus,.select:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-tint);background:#fafcff;outline:none}.textarea{resize:vertical;min-height:96px;padding-top:12px;line-height:1.55}.label{color:var(--c-text-2);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.badge{border-radius:var(--r-chip);letter-spacing:.02em;white-space:nowrap;height:28px;transition:background var(--transition-fast);align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex}.badge-dot{opacity:.8;background:currentColor;border-radius:999px;width:6px;height:6px}.badge-booked,.badge-waiting{background:var(--c-status-booked);color:#fff}.badge-checkedin{background:var(--c-status-checkedin);color:#fff}.badge-called,.badge-consulting{background:var(--c-status-called);color:#fff}.badge-completed,.badge-dispensed,.badge-paid{background:var(--c-status-completed);color:#fff}.badge-cancelled,.badge-skipped{background:var(--c-status-cancelled);color:#fff}.badge-noshow{background:var(--c-status-noshow);color:#fff}.badge-pending{background:var(--c-status-pending);color:#2a2a2a}.badge-ready{color:#fff;background:#16a34a}.badge-outline{border:1px solid var(--c-border-strong);color:var(--c-text-2);background:0 0}.badge-primary-soft{background:var(--c-primary-light);color:var(--c-primary-dark)}.stock-ok:before{content:"";background:var(--c-success);vertical-align:middle;border-radius:999px;width:8px;height:8px;margin-right:6px;display:inline-block}.stock-low:before{content:"";background:var(--c-warning);vertical-align:middle;border-radius:999px;width:8px;height:8px;margin-right:6px;display:inline-block}.stock-out:before{content:"";background:var(--c-error);vertical-align:middle;border-radius:999px;width:8px;height:8px;margin-right:6px;display:inline-block}.placeholder{background-image:repeating-linear-gradient(-45deg, var(--c-bg-cool) 0, var(--c-bg-cool) 8px, var(--c-bg) 8px, var(--c-bg) 16px);border:1px solid var(--c-border);border-radius:var(--r-card);color:var(--c-text-3);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;text-align:center;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:8px;font-size:11px;display:flex}.tabs{background:var(--c-bg);border-radius:10px;gap:2px;padding:4px;display:inline-flex}.tabs button{color:var(--c-text-2);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:all .15s}.tabs button.active{background:var(--c-surface);color:var(--c-text);box-shadow:var(--shadow-sm)}.tabs button:hover:not(.active){color:var(--c-text)}.divider{background:var(--c-divider);height:1px;margin:16px 0}.divider-strong{background:var(--c-border);height:1px}.scroll::-webkit-scrollbar{width:8px;height:8px}.scroll::-webkit-scrollbar-thumb{background:#d0d6dc;border-radius:4px}.scroll::-webkit-scrollbar-track{background:0 0}@keyframes fadeUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes pulseSoft{0%,to{opacity:1}50%{opacity:.55}}@keyframes ringPulse{0%{box-shadow:0 0 #1a73b566}70%{box-shadow:0 0 0 18px #1a73b500}to{box-shadow:0 0 #1a73b500}}@keyframes scan{0%{top:8%}50%{top:92%}to{top:8%}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.fade-up{animation:.35s both fadeUp}.pulse-soft{animation:2s ease-in-out infinite pulseSoft}.ring-pulse{animation:2s ease-out infinite ringPulse}.tabular{font-variant-numeric:tabular-nums}.section-title{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.section-title h3{font-family:var(--font-display);letter-spacing:-.015em;margin:0;font-size:22px;font-weight:500}.step-progress{align-items:center;gap:0;margin-bottom:20px;padding:0 4px;display:flex}.step-progress-segment{flex:1;align-items:center;gap:0;display:flex}.step-progress-dot{width:28px;height:28px;font-size:12px;font-weight:700;font-family:var(--font-mono);border:2px solid var(--c-border);background:var(--c-surface);color:var(--c-text-3);transition:all var(--transition-normal);z-index:1;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.step-progress-dot.active{border-color:var(--c-primary);background:var(--c-primary);color:#fff;box-shadow:0 0 0 4px var(--c-primary-light)}.step-progress-dot.done{border-color:var(--c-success);background:var(--c-success);color:#fff}.step-progress-line{background:var(--c-border);height:2px;transition:background var(--transition-normal);flex:1}.step-progress-line.done{background:var(--c-success)}.bottom-nav-item{cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:48px;padding:8px 0 4px;font-family:inherit;display:flex;position:relative}.bottom-nav-item:before{content:"";background:var(--c-primary);width:24px;height:3px;transition:transform var(--transition-normal);border-radius:0 0 3px 3px;position:absolute;top:0;left:50%;transform:translate(-50%)scaleX(0)}.bottom-nav-item.active:before{transform:translate(-50%)scaleX(1)}.screen-enter{animation:screenFadeIn var(--transition-slow) ease both}@keyframes screenFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.role-select-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}@media (width<=767px){.sc-main{padding:12px}.sc-content{padding-bottom:12px}}@media (width>=768px) and (width<=1023px){.sc-sidebar{width:200px!important}.sc-sidebar .nav-label{font-size:12px}}@media (width<=1023px){.sc-page-header{margin-bottom:12px}}.soap-card{border:1px solid var(--c-border);background:#fff;border-radius:12px;margin-bottom:12px;padding:14px 16px;transition:border .2s,box-shadow .2s,padding .2s}.soap-card:focus-within{border:2px solid var(--c-primary);padding:13px 15px;box-shadow:0 4px 18px #1a73b529}.soap-card-head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.soap-card-badge{color:#fff;width:34px;height:34px;font-size:16px;font-weight:700;font-family:var(--font-display,inherit);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.soap-card-badge.s{background:linear-gradient(135deg,#1a73b5,#5da9d9)}.soap-card-badge.o{background:linear-gradient(135deg,#26a69a,#66bfb5)}.soap-card-badge.a{background:linear-gradient(135deg,#e67e22,#eca163)}.soap-card-badge.p{background:linear-gradient(135deg,#16a34a,#4ade80)}.soap-card-meta{flex:1;min-width:0}.soap-card-name{color:var(--c-text-1);align-items:baseline;gap:6px;font-size:14px;font-weight:600;display:flex}.soap-card-name .zh{color:var(--c-text-2);font-size:13px;font-weight:400}.soap-card-hint{color:var(--c-text-2);letter-spacing:.02em;margin-top:1px;font-size:10px}.soap-card-dot{border-radius:999px;flex-shrink:0;width:9px;height:9px;transition:background .15s,box-shadow .15s}.soap-card-dot.filled{background:#22c55e;box-shadow:0 0 0 3px #22c55e21}.soap-card-dot.empty{background:#d0d7de}.soap-card textarea{resize:vertical;width:100%;min-height:60px;color:var(--c-text-1);background:0 0;border:none;outline:none;padding:0;font-family:inherit;font-size:13px;line-height:1.55}.soap-card.soap-card-headless,.soap-card.soap-card-headless:focus-within{box-shadow:none;background:0 0;border:none;margin-bottom:0;padding:0}
