:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", "Helvetica Neue", sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", "Consolas", monospace;--bg-root: #141416;--bg-elevated-1: #1c1c1f;--bg-elevated-2: #24242a;--bg-elevated-3: #2e2e36;--bg-hover: rgba(139, 92, 246, .07);--bg-active: rgba(139, 92, 246, .12);--glass-fill: rgba(16, 16, 20, .72);--glass-fill-strong: rgba(16, 16, 20, .88);--glass-border: rgba(255, 255, 255, .1);--glass-border-strong: rgba(255, 255, 255, .18);--glass-highlight: rgba(255, 255, 255, .05);--border: rgba(255, 255, 255, .12);--border-subtle: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .2);--text-primary: #d4d4dc;--text-secondary: #9b9ba7;--text-tertiary: #9494ae;--text-muted: #4a4a5a;--type-micro: .625rem;--type-caption: .75rem;--type-body: .875rem;--type-title: 1.125rem;--type-heading: 1.5rem;--accent: #a78bfa;--accent-strong: #c4b5fd;--accent-rgb: 167, 139, 250;--accent-soft: rgba(167, 139, 250, .12);--accent-ring: rgba(167, 139, 250, .3);--accent-2: #22d3ee;--accent-2-strong: #67e8f9;--accent-2-rgb: 34, 211, 238;--success: #34d399;--success-soft: rgba(52, 211, 153, .12);--warning: #fbbf24;--warning-soft: rgba(251, 191, 36, .12);--error: #f87171;--error-soft: rgba(248, 113, 113, .1);--radius-xs: 6px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-xl: 24px;--radius-full: 999px;--shadow-1: 0 4px 16px rgba(0, 0, 0, .4);--shadow-2: 0 8px 32px rgba(0, 0, 0, .5);--shadow-3: 0 16px 48px rgba(0, 0, 0, .6);--shadow-glow: 0 0 20px rgba(139, 92, 246, .2);--shadow-glow-strong: 0 4px 24px rgba(139, 92, 246, .35);--blur-xs: 4px;--blur-sm: 8px;--blur-md: 16px;--blur-lg: 24px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 28px;--sp-8: 32px;--dur-instant: 80ms;--dur-fast: .14s;--dur-med: .22s;--dur-slow: .35s;--ease-standard: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-spring-soft: cubic-bezier(.22, 1.12, .36, 1);--ease-enter: cubic-bezier(0, 0, .2, 1);--ease-exit: cubic-bezier(.4, 0, 1, 1);color-scheme:dark;font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=light]{--bg-root: #f8f9fa;--bg-elevated-1: #ffffff;--bg-elevated-2: #f1f3f5;--bg-elevated-3: #e9ecef;--bg-hover: rgba(124, 58, 237, .06);--bg-active: rgba(124, 58, 237, .1);--glass-fill: rgba(255, 255, 255, .78);--glass-fill-strong: rgba(255, 255, 255, .92);--glass-border: rgba(0, 0, 0, .08);--glass-border-strong: rgba(0, 0, 0, .14);--glass-highlight: rgba(255, 255, 255, .6);--border: rgba(0, 0, 0, .1);--border-subtle: rgba(0, 0, 0, .06);--border-strong: rgba(0, 0, 0, .18);--text-primary: #212529;--text-secondary: #495057;--text-tertiary: #5c636a;--text-muted: #adb5bd;--accent: #6d28d9;--accent-strong: #5b21b6;--accent-rgb: 109, 40, 217;--accent-soft: rgba(109, 40, 217, .08);--accent-ring: rgba(109, 40, 217, .25);--accent-2: #0891b2;--accent-2-strong: #0e7490;--accent-2-rgb: 8, 145, 178;--success: #059669;--success-soft: rgba(5, 150, 105, .08);--warning: #b45309;--warning-soft: rgba(180, 83, 9, .08);--error: #dc2626;--error-soft: rgba(220, 38, 38, .08);--shadow-1: 0 4px 16px rgba(0, 0, 0, .06);--shadow-2: 0 8px 32px rgba(0, 0, 0, .08);--shadow-3: 0 16px 48px rgba(0, 0, 0, .1);--shadow-glow: 0 0 20px rgba(109, 40, 217, .1);--shadow-glow-strong: 0 4px 24px rgba(109, 40, 217, .15);color-scheme:light}@media(prefers-reduced-motion:reduce){:root{--dur-instant: 0ms;--dur-fast: 0ms;--dur-med: 0ms;--dur-slow: 0ms;--ease-spring: cubic-bezier(.22, 1, .36, 1);--ease-spring-soft: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{animation-duration:0ms!important;transition-duration:0ms!important}}html,body,#root{width:100%;height:100%;margin:0}body{overflow:hidden;color:var(--text-primary);line-height:1.45;background:var(--bg-root)}::selection{background:var(--accent-soft);color:var(--text-primary)}*{box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden;font-family:var(--font-sans)}.app{position:relative;height:100vh;overflow:hidden}.app-header{position:fixed;top:0;left:0;right:0;z-index:10;height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:#0a0a0fd1;-webkit-backdrop-filter:blur(var(--blur-lg)) saturate(150%);backdrop-filter:blur(var(--blur-lg)) saturate(150%);border-bottom:1px solid var(--border-subtle)}.app-header h1{margin:0;font-size:15px;letter-spacing:.06em;font-weight:600;color:var(--text-secondary)}.app-logo{display:flex;align-items:center;gap:10px;pointer-events:auto}.app-logo svg{flex-shrink:0}.app-logo-text{display:flex;flex-direction:column;line-height:1.1}.app-logo-brand{font-size:14px;font-weight:700;letter-spacing:.04em;color:var(--accent-strong)}.app-logo-product{font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.header-stepper{display:flex;align-items:center;gap:0;pointer-events:auto}.stepper-step{position:relative;display:flex;align-items:center;gap:6px;min-height:36px;padding:4px 14px 4px 8px;border:1px solid transparent;border-radius:var(--radius-full);background:transparent;box-shadow:none;color:var(--text-muted);font-size:14px;font-weight:500;cursor:pointer;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-spring-soft);white-space:nowrap}.stepper-step:hover:not(:disabled){background:var(--bg-hover);color:var(--text-secondary);transform:none;box-shadow:none;filter:none}.stepper-step.is-active{background:var(--bg-active);border-color:var(--accent-ring);color:var(--accent-strong);font-weight:600}.stepper-step.is-done{color:var(--success)}.stepper-step.is-locked{opacity:.4;cursor:not-allowed}.stepper-step.is-locked:hover{background:transparent;color:var(--text-muted)}.stepper-indicator{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;flex-shrink:0;border:1.5px solid currentColor;transition:all var(--dur-fast) var(--ease-standard)}.stepper-step.is-active .stepper-indicator{background:var(--accent);border-color:var(--accent);color:#fff}.stepper-step.is-done .stepper-indicator{background:var(--success);border-color:var(--success);color:#fff}.stepper-step.is-done .stepper-indicator svg path{stroke-dasharray:20;stroke-dashoffset:20;animation:checkmark-draw .3s ease-out forwards}@keyframes checkmark-draw{to{stroke-dashoffset:0}}.stepper-number{font-size:11px;line-height:1}.stepper-label{font-size:14px}.stepper-step-wrapper{display:inline-flex;align-items:center}.stepper-summary{font-size:12px;color:var(--text-muted);margin-left:4px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.7}.stepper-step.is-active .stepper-summary{color:var(--accent);opacity:1}.stepper-connector{position:absolute;right:-4px;top:50%;width:8px;height:1px;background:var(--border);pointer-events:none}.stepper-step.is-done .stepper-connector{background:var(--success)}.stepper-phase-separator{width:2px;height:20px;background:var(--border);margin:0 6px;border-radius:1px;flex-shrink:0}.header-actions{display:flex;align-items:center;gap:var(--sp-2);min-width:0;pointer-events:auto}.panel-toggle{min-height:30px;padding:5px 12px;border-radius:var(--radius-full);font-size:12px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;border:1px solid var(--glass-border);background:var(--bg-elevated-2);color:var(--text-secondary);box-shadow:none}.panel-toggle:hover:not(:disabled){box-shadow:var(--shadow-1);filter:none}.panel-toggle.is-on{border-color:var(--accent-ring);background:rgba(var(--accent-rgb),.18);color:var(--accent-strong)}.case-id{border:1px solid var(--border-subtle);background:var(--bg-elevated-1);color:var(--text-tertiary);border-radius:var(--radius-full);padding:3px 10px;font-size:12px;font-family:var(--font-mono);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard);position:relative;max-width:min(42vw,260px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.case-id:hover{border-color:var(--border-strong);background:var(--bg-elevated-2)}.case-id.is-copied{border-color:var(--success);color:var(--success);background:var(--success-soft)}.shortcuts-help-btn{min-height:28px;min-width:28px;padding:0;border-radius:50%;font-size:13px;font-weight:700;border:1px solid var(--border-subtle);background:var(--bg-elevated-2);color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:none;transition:border-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.shortcuts-help-btn:hover{border-color:var(--accent-ring);color:var(--accent-strong);box-shadow:none;transform:none;filter:none}.shortcuts-overlay{position:fixed;inset:0;z-index:100;background:#00000080;display:flex;align-items:center;justify-content:center}.shortcuts-dialog{background:var(--bg-elevated-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);max-width:320px;width:90%;box-shadow:var(--shadow-3)}.shortcuts-dialog h3{margin:0 0 var(--sp-4);font-size:16px;color:var(--text-primary)}.shortcuts-list{display:flex;flex-direction:column;gap:var(--sp-2)}.shortcut-row{display:flex;align-items:center;gap:var(--sp-3);font-size:13px;color:var(--text-secondary)}.shortcut-row kbd{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:2px 8px;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--bg-elevated-3);color:var(--text-primary);font-family:var(--font-mono);font-size:12px;font-weight:600}.app-body{position:absolute;inset:52px 0 0}.app-body--with-handoff{top:84px}.case-header-strip{position:fixed;top:52px;left:0;right:0;height:32px;z-index:9;display:flex;align-items:center;gap:12px;padding:0 16px;background:#0a0a0fb8;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--glass-border);font-size:12px;color:var(--text-secondary)}.case-header-strip .patient-name{font-weight:600;color:var(--text-primary)}.case-header-strip .side-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.case-header-strip .side-badge--l{background:#6366f12e;color:#a5a8fa;border:1px solid rgba(99,102,241,.32)}.case-header-strip .side-badge--r{background:#ec48992e;color:#f49ec8;border:1px solid rgba(236,72,153,.32)}.case-header-strip .prescription-id{margin-left:auto;color:var(--text-muted)}.case-header-strip .prescription-id code{font-family:var(--font-mono, ui-monospace, monospace);color:var(--text-secondary);background:#ffffff0a;padding:1px 6px;border-radius:4px}.app-body.has-sidebar{display:flex}.app-body.has-sidebar .viewer{position:relative;flex:1}.viewer{position:absolute;inset:0;overflow:hidden}.pipeline-panel{width:200px;flex-shrink:0;background:var(--bg-elevated-1);border-right:1px solid var(--border-subtle);overflow-y:auto;overscroll-behavior:contain;padding:var(--sp-3) 0}.pipeline-panel h2{margin:0;padding:0 var(--sp-3) var(--sp-2);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.pipeline-panel ul{list-style:none;margin:0;padding:0}.pipeline-step{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard);border-left:2px solid transparent}.pipeline-step:hover{background:var(--bg-hover)}.pipeline-step.active{background:var(--bg-active);border-left-color:var(--accent)}.pipeline-step.done{color:var(--success)}.pipeline-step.locked{opacity:.4;cursor:not-allowed}.pipeline-step.locked:hover{background:transparent}.pipeline-step .step-icon{flex-shrink:0;margin-top:2px}.pipeline-step .step-content{flex:1;min-width:0}.pipeline-step .step-main{display:flex;align-items:center;gap:4px}.pipeline-step .step-num{font-size:11px;color:var(--text-muted);font-weight:600}.pipeline-step .step-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.pipeline-step.active .step-label{color:var(--accent-strong);font-weight:600}.pipeline-step.done .step-label{color:var(--success)}.pipeline-step .step-current{font-size:10px;padding:1px 5px;border-radius:var(--radius-full);background:var(--accent-soft);color:var(--accent-strong);font-weight:600;margin-left:auto}.pipeline-step .step-desc{font-size:11px;color:var(--text-muted);margin-top:1px}.pipeline-step .step-lock{font-size:10px;color:var(--text-muted);margin-top:2px;font-style:italic}.pipeline-step .step-summary{font-size:11px;color:var(--text-tertiary);margin-top:2px}.floating-panel-container{position:absolute;inset:0;pointer-events:none;z-index:5}.floating-panel{display:flex;flex-direction:column;max-height:calc(100vh - 72px);background:var(--bg-elevated-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);overflow:hidden;contain:layout style}.fp-resize-handle{position:absolute;left:-3px;top:0;bottom:0;width:6px;cursor:ew-resize;z-index:1}.fp-header{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle);background:rgba(var(--accent-rgb),.03);-webkit-user-select:none;user-select:none;touch-action:none}.fp-header-text{flex:1;min-width:0}.fp-title{margin:0;font-size:15px;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.fp-guidance{margin:4px 0 0;font-size:13px;line-height:1.4;color:var(--text-tertiary)}.fp-collapse-btn{min-height:auto;padding:4px;border:none;border-radius:6px;background:transparent;color:var(--text-muted);box-shadow:none;cursor:pointer;flex-shrink:0}.fp-collapse-btn:hover{background:var(--bg-hover);color:var(--text-secondary);transform:none;box-shadow:none;filter:none}.panel-metadata{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12px;color:var(--text-tertiary)}.panel-metadata .badge{font-size:12px}.panel-metadata .hud-separator{width:1px;height:12px;background:var(--border);margin:0 4px}.fp-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--sp-3) var(--sp-4)}.fp-body-wrapper{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.fp-body .step-panel{max-width:none}.fp-footer{flex-shrink:0;padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border-subtle)}.fp-next-btn{width:100%;min-width:0;justify-content:center;font-size:14px;font-weight:600;min-height:42px}.step-transition{width:100%}.step-panel{max-width:980px;color:var(--text-secondary)}.step-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-4)}.step-header h3,.step-panel>h3{margin:0;color:var(--text-primary);font-size:15px;font-weight:600}.status-pill{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-full);padding:4px 11px;font-size:11px;letter-spacing:.02em;font-weight:500;border:1px solid transparent}.status-pill.is-loading{color:var(--accent);border-color:rgba(var(--accent-rgb),.36);background:rgba(var(--accent-rgb),.12)}.status-pill.is-success{color:var(--success);border-color:#34d39940;background:var(--success-soft)}.status-pill.is-error{color:var(--error);border-color:#f8717138;background:var(--error-soft)}.form-section{margin-bottom:var(--sp-4)}.form-row{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);flex-wrap:wrap}.form-row label{min-width:0;color:var(--text-secondary);font-size:14px;font-weight:500}.form-row select,.form-row input[type=file],.form-row input[type=text],.form-row input[type=number]{min-height:36px;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated-2);color:var(--text-primary);font-family:var(--font-sans);font-size:13px;transition:border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}.form-row select:disabled,.form-row input:disabled{opacity:.5}.form-row input[type=file]{padding-right:6px}.form-row input[type=file]::file-selector-button{margin-right:10px;border:1px solid var(--border);border-radius:var(--radius-xs);padding:6px 10px;color:var(--text-primary);background:rgba(var(--accent-rgb),.12);font-family:var(--font-sans);font-size:12px;cursor:pointer;transition:background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.form-row input[type=file]::file-selector-button:hover{background:rgba(var(--accent-rgb),.2);border-color:rgba(var(--accent-rgb),.42)}.form-row select:hover,.form-row input[type=file]:hover,.form-row input[type=text]:hover,.form-row input[type=number]:hover{border-color:var(--border-strong)}button:focus-visible,select:focus-visible,input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--bg-elevated-1),0 0 0 4px var(--accent-ring)}.checkboxes{align-items:center;gap:var(--sp-5)}.checkboxes label,.form-row label:has(input[type=checkbox]){min-width:0;display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);cursor:pointer}input[type=checkbox]{appearance:none;width:16px;height:16px;border-radius:5px;border:1px solid var(--border-strong);background:var(--bg-elevated-2);box-shadow:none;display:inline-grid;place-items:center;margin:0;transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-spring)}input[type=checkbox]:before{content:"";width:10px;height:10px;transform:scale(0);transition:transform .2s var(--ease-spring);border-radius:2px;background:linear-gradient(150deg,var(--accent-strong),var(--accent))}input[type=checkbox]:checked{border-color:var(--accent);background:rgba(var(--accent-rgb),.2)}input[type=checkbox]:checked:before{transform:scale(1)}.form-actions{display:flex;align-items:center;gap:var(--sp-3);margin-top:var(--sp-4);position:sticky;bottom:0;background:var(--bg-elevated-1);padding-top:var(--sp-3);padding-bottom:var(--sp-2);z-index:1}.auto-update-toggle{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.insole-status-bar{display:flex;align-items:center;gap:var(--sp-3);padding:5px var(--sp-3);margin-bottom:var(--sp-2);border-radius:var(--radius-sm);background:rgba(var(--accent-rgb),.06);font-size:11px;font-family:var(--font-mono);color:var(--text-secondary)}.insole-section{margin-top:var(--sp-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden}.insole-section>.form-section{margin-top:0}.insole-section-title{display:block;padding:6px var(--sp-3);font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;background:#ffffff08;transition:background var(--dur-fast) var(--ease-standard)}.insole-section-title:hover{background:var(--bg-hover)}.insole-section[open]>.insole-section-title{border-bottom:1px solid var(--border-subtle)}.insole-section[open]>*:not(.insole-section-title){animation:section-expand .28s var(--ease-standard)}@keyframes section-expand{0%{opacity:0}to{opacity:1}}.step-panel input[type=range]{-webkit-appearance:none;appearance:none;height:4px;border-radius:2px;background:rgba(var(--accent-rgb),.18);outline:none;border:none;min-height:auto;box-shadow:none;padding:0}.step-panel input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,var(--accent),rgba(var(--accent-rgb),.8));cursor:pointer;border:2px solid rgba(255,255,255,.15);box-shadow:0 2px 8px rgba(var(--accent-rgb),.35);transition:box-shadow var(--dur-fast) var(--ease-standard),transform .18s var(--ease-spring-soft)}.step-panel input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 4px 14px rgba(var(--accent-rgb),.45)}.step-panel input[type=range]::-webkit-slider-thumb:active{transform:scale(1.1);box-shadow:0 2px 10px rgba(var(--accent-rgb),.5),0 0 0 4px rgba(var(--accent-rgb),.12)}.step-panel input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,var(--accent),rgba(var(--accent-rgb),.8));cursor:pointer;border:2px solid rgba(255,255,255,.15);box-shadow:0 2px 8px rgba(var(--accent-rgb),.35)}button{border:1px solid rgba(var(--accent-rgb),.34);border-radius:var(--radius-sm);min-height:38px;padding:8px 18px;color:#fff;background:linear-gradient(165deg,var(--accent),rgba(var(--accent-rgb),.85));box-shadow:0 4px 12px rgba(var(--accent-rgb),.22),inset 0 1px #ffffff1a;font-size:13px;font-weight:500;font-family:var(--font-sans);display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:transform .18s var(--ease-spring-soft),box-shadow var(--dur-fast) var(--ease-standard),filter var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}button:hover:not(:disabled){box-shadow:0 8px 24px rgba(var(--accent-rgb),.3)}button:active:not(:disabled){transform:translateY(.5px) scale(.98);transition-duration:var(--dur-instant)}button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.btn-secondary{background:var(--bg-elevated-2);border-color:var(--border);color:var(--text-secondary);box-shadow:none}.btn-secondary:hover:not(:disabled){background:var(--bg-elevated-3);box-shadow:var(--shadow-1)}.btn-text{min-height:auto;border:none;border-radius:var(--radius-xs);box-shadow:none;background:transparent;color:var(--text-muted);padding:2px 7px;font-size:12px;font-weight:450}.btn-text:hover:not(:disabled){background:var(--bg-hover);color:var(--text-secondary);box-shadow:none;filter:none}.result-card,.error-card{margin-top:var(--sp-4);border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-elevated-2)}.result-card{padding:var(--sp-3) var(--sp-4)}.result-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-4);padding:5px 0}.result-label{color:var(--text-tertiary);font-size:12px}.result-label.warning{color:var(--warning)}.result-value{color:var(--text-secondary);font-family:var(--font-mono);font-size:12px}.result-value.warning{color:var(--warning)}.error-card{display:flex;align-items:flex-start;gap:var(--sp-3);border-color:#f8717133;background:#f871710f;padding:var(--sp-3) var(--sp-4)}.error-icon{width:18px;height:18px;flex-shrink:0;border-radius:999px;border:1px solid rgba(248,113,113,.4);color:var(--error);display:grid;place-items:center;font-size:11px;font-weight:700}.error-text{font-size:13px;line-height:1.4;color:var(--error)}.error-action-btn{display:inline-flex;align-items:center;min-height:26px;margin-top:6px;padding:4px 12px;border:1px solid rgba(248,113,113,.3);border-radius:var(--radius-xs);background:#f871711a;color:var(--error);font-size:12px;font-weight:500;cursor:pointer;box-shadow:none}.error-action-btn:hover:not(:disabled){background:#f871712e;border-color:#f8717173;transform:none;box-shadow:none;filter:none}.drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:var(--sp-5) var(--sp-4);border:2px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--bg-elevated-2);color:var(--text-tertiary);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.drop-zone:hover{border-color:#8b5cf666;background:#8b5cf60f;color:var(--text-secondary)}.drop-zone.is-drag-over{border-color:var(--accent);background:#8b5cf61a;color:var(--accent)}.drop-zone.is-reject{border-color:var(--error);background:#f8717114;color:var(--error)}.drop-zone.is-disabled{opacity:.5;pointer-events:none}.drop-zone-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#8b5cf61a;color:var(--accent);transition:background var(--dur-fast) var(--ease-standard)}.drop-zone.is-reject .drop-zone-icon{background:#f871711f;color:var(--error)}.drop-zone-text{font-size:12px;font-weight:500;text-align:center}.upload-progress{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-full);padding:4px 11px;font-size:11px;font-weight:500;color:var(--accent);border:1px solid rgba(139,92,246,.36);background:#8b5cf61f}.upload-progress-text{white-space:nowrap}.upload-progress-count{font-family:var(--font-mono);font-size:11px;color:var(--text-tertiary)}.warning-card{display:flex;align-items:flex-start;gap:var(--sp-3);margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);border:1px solid rgba(251,191,36,.25);background:#fbbf240f}.warning-card-icon{width:18px;height:18px;flex-shrink:0;border-radius:999px;border:1px solid rgba(251,191,36,.45);color:var(--warning);display:grid;place-items:center;font-size:11px;font-weight:700}.warning-card-text{font-size:13px;line-height:1.4;color:var(--warning)}.confirm-dialog-backdrop{position:fixed;inset:0;z-index:50;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;animation:confirm-fade-in .2s ease-out}@keyframes confirm-fade-in{0%{opacity:0}to{opacity:1}}.confirm-dialog{width:340px;max-width:calc(100vw - 32px);padding:var(--sp-5);border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--bg-elevated-2);box-shadow:var(--shadow-3);animation:confirm-scale-in .2s ease-out}@keyframes confirm-scale-in{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-dialog h4{margin:0 0 var(--sp-2);font-size:15px;font-weight:600;color:var(--text-primary)}.confirm-dialog p{margin:0 0 var(--sp-4);font-size:13px;line-height:1.5;color:var(--text-secondary)}.confirm-dialog-actions{display:flex;gap:var(--sp-2);justify-content:flex-end}.badge{display:inline-flex;align-items:center;border-radius:var(--radius-full);border:1px solid transparent;padding:2px 8px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;font-weight:600}.badge-accent{color:var(--accent);border-color:rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.12)}.badge-success{color:var(--success);border-color:#34d3994d;background:#34d3991f}.badge-warning{color:var(--warning);border-color:#fbbf244d;background:#fbbf241a}.badge-suggested{color:var(--accent);border-color:rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.08);font-style:italic}.badge-muted{color:var(--text-muted);border-color:var(--border-subtle);background:var(--bg-elevated-2)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:13px;height:13px;border-radius:50%;border:2px solid rgba(var(--accent-rgb),.2);border-top-color:currentColor;animation:spin .7s linear infinite;flex-shrink:0}.guidance-banner{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4);border:1px solid rgba(var(--accent-rgb),.25);border-radius:var(--radius-md);background:rgba(var(--accent-rgb),.08);color:var(--text-secondary);padding:var(--sp-2) var(--sp-3);font-size:13px}.guidance-banner strong{color:var(--text-primary);font-weight:600}.guidance-banner.is-muted{color:var(--text-secondary);border-color:var(--border-subtle);background:var(--bg-elevated-2)}.segmented{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated-2)}.segmented-btn{min-height:28px;border:1px solid transparent;border-radius:9px;background:transparent;box-shadow:none;color:var(--text-secondary);padding:4px 10px;font-size:12px;font-weight:500}.segmented-btn:hover{color:var(--text-primary);background:var(--bg-hover);filter:none;transform:none;box-shadow:none}.segmented-btn.active{color:var(--accent-strong);border-color:rgba(var(--accent-rgb),.42);background:rgba(var(--accent-rgb),.16)}.viewer-shell{width:100%;height:100%;position:relative;background:radial-gradient(ellipse 80% 70% at 40% 35%,#32323e,#2a2a34,#1a1a22)}.viewer-toolbar{position:absolute;top:12px;right:12px;z-index:3;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.viewer-rotate-controls{position:absolute;bottom:140px;left:10px;z-index:3;display:flex;flex-direction:column;gap:2px;pointer-events:auto;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:6px 5px}.rotate-group{display:flex;align-items:center;gap:2px}.rotate-label{width:14px;font-size:10px;font-weight:600;color:var(--text-tertiary);text-align:center;font-family:var(--font-mono)}.rotate-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-elevated-2);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.rotate-btn:hover{background:var(--bg-hover);color:var(--accent);border-color:var(--accent-ring)}.viewer-opacity-controls{position:absolute;bottom:12px;right:12px;z-index:3;display:flex;flex-direction:column;gap:6px;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:8px 10px;min-width:160px}.opacity-row{display:flex;align-items:center;gap:6px}.opacity-label{font-size:11px;font-weight:500;color:var(--text-secondary);width:38px;flex-shrink:0}.opacity-slider{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:var(--bg-elevated-2);border-radius:2px;outline:none;cursor:pointer}.opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-elevated-1);cursor:pointer}.opacity-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-elevated-1);cursor:pointer}.opacity-value{font-size:10px;font-family:var(--font-mono);color:var(--text-tertiary);width:30px;text-align:right;flex-shrink:0}.viewer-empty-state{text-align:center;color:var(--text-secondary);pointer-events:none;-webkit-user-select:none;user-select:none}.viewer-empty-state .empty-message{font-size:18px;margin-top:16px;font-weight:500}.viewer-empty-state .empty-subtitle{font-size:13px;color:var(--text-muted);margin-top:4px}.viewer-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px;background:var(--bg-elevated-2);border-radius:12px;border:1px solid var(--glass-border);box-shadow:var(--shadow-2)}.viewer-loading p{font-size:14px;color:var(--text-secondary);margin:0}.metric{display:inline-flex;align-items:center;gap:5px}.metric-label{font-size:11px;color:var(--text-tertiary);letter-spacing:.06em;text-transform:uppercase}.metric-value{color:var(--text-secondary);font-family:var(--font-mono);font-size:11px}.metric-divider{color:var(--text-muted);font-size:11px;margin:0 1px}.status{margin-top:var(--sp-2);color:var(--text-secondary);font-size:13px}.error{margin-top:var(--sp-2);color:var(--error);font-size:13px}.warning{color:var(--warning);font-size:13px}.hint{margin-bottom:var(--sp-2);color:var(--text-muted);font-size:12px}.landmark-progress{display:flex;align-items:center;gap:6px;margin-bottom:var(--sp-4);padding:6px 0}.landmark-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-strong);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--dur-fast) var(--ease-spring-soft);color:transparent}.landmark-dot.is-placed{color:#fff;background:currentColor}.landmark-dot.is-active{box-shadow:0 0 0 3px var(--accent-ring)}.landmark-count{margin-left:auto;font-size:12px;font-weight:600;color:var(--text-secondary);font-family:var(--font-mono)}.landmark-hero{margin-bottom:var(--sp-4)}.landmark-list{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--sp-3)}.landmark-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-xs);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard);font-size:13px;color:var(--text-secondary)}.landmark-item:hover{background:var(--bg-hover)}.landmark-item.is-active{background:rgba(var(--accent-rgb),.12);outline:1px solid rgba(var(--accent-rgb),.3);outline-offset:-1px}.landmark-item.is-placed .landmark-item-name{color:var(--text-primary);font-weight:500}.landmark-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.landmark-item-name{flex:1;min-width:0}.landmark-table{width:100%;border-collapse:collapse;margin-bottom:var(--sp-4);border-radius:var(--radius-md);overflow:hidden}.landmark-table th{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border-subtle);color:var(--text-tertiary);font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:600}.landmark-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);font-size:12px;font-family:var(--font-mono);padding:8px 10px}.landmark-table td:first-child{color:var(--text-primary);font-family:var(--font-sans);font-weight:500}.landmark-table tr{cursor:pointer;transition:background var(--dur-fast) var(--ease-standard)}.landmark-table tr:hover{background:var(--bg-hover)}.landmark-table tr.active{background:rgba(var(--accent-rgb),.12);outline:1px solid rgba(var(--accent-rgb),.42);outline-offset:-1px}.landmark-table tr.active td:first-child{color:var(--accent-strong)}.landmark-table .badge{margin-left:8px}.derived-axes{margin-top:var(--sp-4);border-top:1px solid var(--border-subtle);padding-top:var(--sp-3);color:var(--text-secondary);font-size:12px}.derived-axes h4{margin:0 0 6px;color:var(--accent);font-size:11px;letter-spacing:.07em;text-transform:uppercase}.derived-axes p{margin:0 0 3px;font-family:var(--font-mono);color:var(--text-secondary)}.fp-body>.step-panel>*,.fp-body>*{animation:panel-item-enter var(--dur-slow) var(--ease-standard) both}.fp-body>*:nth-child(1){animation-delay:0ms}.fp-body>*:nth-child(2){animation-delay:40ms}.fp-body>*:nth-child(3){animation-delay:80ms}.fp-body>*:nth-child(4){animation-delay:.12s}.fp-body>*:nth-child(5){animation-delay:.16s}@keyframes panel-item-enter{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1200px){.app-header{padding:0 var(--sp-3)}.stepper-label,.stepper-summary{display:none}.stepper-step{padding:4px 8px}}@media(max-width:860px){.app-header{padding:0 var(--sp-2);height:46px}.app-logo-text{display:none}.viewer-toolbar{top:8px}}.insole-quick-settings{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp-3)}.insole-quick-row{display:flex;align-items:center;gap:var(--sp-3)}.insole-quick-label{font-size:12px;font-weight:500;color:var(--text-secondary);min-width:52px}.insole-comfort-summary{display:flex;flex-direction:column;gap:4px;padding:8px var(--sp-3);margin-bottom:var(--sp-2);border-radius:var(--radius-sm);background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.12);transition:opacity var(--dur-fast) var(--ease-standard)}.insole-comfort-summary.is-updating{opacity:.5}.comfort-row{display:flex;align-items:center;gap:var(--sp-3)}.comfort-metric{display:flex;flex-direction:column;gap:1px}.comfort-metric-label{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.comfort-metric-value{font-size:13px;font-weight:600;font-family:var(--font-mono);color:var(--text-primary)}.comfort-mods{font-size:11px;color:var(--text-secondary)}.comfort-warnings{display:flex;flex-direction:column;gap:2px;margin-top:2px}.comfort-warning{font-size:11px;color:var(--warning);padding:2px 6px;background:#fbbf2414;border-radius:3px}.outline-result-summary{display:flex;align-items:center;gap:var(--sp-3);padding:6px var(--sp-3);margin-top:var(--sp-2);border-radius:var(--radius-sm);background:rgba(var(--accent-rgb),.06);font-size:12px;color:var(--text-secondary)}.outline-result-summary .comfort-metric-value{font-size:12px}@media(max-width:640px){.case-id,.header-stepper{display:none}.floating-panel{position:fixed!important;left:0!important;right:0;bottom:0;top:auto!important;width:100%!important;max-height:75vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.fp-resize-handle{display:none}.viewer-toolbar{top:8px;right:8px}.segmented{padding:3px}.segmented-btn,button,.btn-secondary,.preset-button,.preset-card{min-height:44px;padding:12px 20px}.preset-cards{grid-template-columns:repeat(2,1fr)}}.shape-preset-selector{margin-bottom:var(--sp-4)}.preset-label{display:block;margin-bottom:var(--sp-2);color:var(--text-secondary);font-size:13px;font-weight:500}.preset-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--sp-2);margin-bottom:var(--sp-3)}.preset-button-wrapper{position:relative}.preset-button{position:relative;width:100%;min-height:52px;padding:var(--sp-2) var(--sp-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:var(--radius-sm);border:2px solid var(--border-subtle);background:var(--bg-elevated-2);color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard),transform .25s var(--ease-spring-soft)}.preset-button:hover{border-color:rgba(var(--accent-rgb),.34);background:rgba(var(--accent-rgb),.08)}.preset-button:active{transform:scale(.97);transition-duration:var(--dur-instant)}.preset-button.is-selected{border-color:rgba(var(--accent-rgb),.5);background:rgba(var(--accent-rgb),.14);color:var(--accent-strong);font-weight:600;box-shadow:0 6px 20px rgba(var(--accent-rgb),.2);animation:preset-select .35s var(--ease-spring-soft)}@keyframes preset-select{0%{transform:scale(.98)}50%{transform:scale(1.005)}to{transform:scale(1)}}.preset-name{font-weight:600;font-size:12px}.preset-percentage{font-size:11px;color:var(--text-muted);opacity:.8}.preset-button.is-selected .preset-percentage{color:var(--accent)}.preset-tooltip{position:absolute;left:50%;top:-100%;transform:translate(-50%);width:max-content;max-width:240px;padding:var(--sp-2) var(--sp-3);margin-bottom:8px;background:var(--bg-elevated-3);border:1px solid var(--border-strong);border-radius:var(--radius-xs);color:var(--text-primary);font-size:11px;z-index:100;opacity:0;pointer-events:none;transition:opacity var(--dur-med) var(--ease-standard)}.preset-tooltip:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid var(--bg-elevated-3)}.preset-button-wrapper:hover .preset-tooltip{opacity:1}.tooltip-title{font-weight:600;margin-bottom:2px}.tooltip-description{margin-bottom:4px;line-height:1.4}.tooltip-rationale{font-size:11px;opacity:.7;line-height:1.3}.preset-info{padding:var(--sp-2) var(--sp-3);background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.12);border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary);line-height:1.45}.preset-info p{margin:0}.shape-parameter-panel{margin-bottom:var(--sp-4)}.panel-title{margin:0 0 var(--sp-3);color:var(--text-secondary);font-size:13px;font-weight:500}.parameters-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-3)}.parameter-control{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:rgba(var(--accent-rgb),.03);border:1px solid rgba(var(--accent-rgb),.06);border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.parameter-control:hover{background:rgba(var(--accent-rgb),.06);border-color:rgba(var(--accent-rgb),.12)}.param-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.param-label{color:var(--text-secondary);font-size:12px;font-weight:500;flex:1}.param-reset-btn{min-height:auto;padding:4px 8px;border-radius:6px;border:1px solid rgba(var(--accent-rgb),.2);background:rgba(var(--accent-rgb),.08);color:var(--text-tertiary);font-size:11px;font-weight:500;cursor:pointer;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.param-reset-btn:hover:not(:disabled){background:rgba(var(--accent-rgb),.14);color:var(--accent-strong);filter:none;box-shadow:none;transform:none}.param-reset-btn:disabled{opacity:.4;cursor:not-allowed}.param-input-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.param-slider-wrapper{position:relative;flex:1;display:flex;align-items:center;gap:4px;min-width:140px}.param-slider{flex:1;height:5px;appearance:none;background:linear-gradient(90deg,rgba(var(--accent-rgb),.15),rgba(var(--accent-rgb),.25));border-radius:3px;outline:none;cursor:pointer}.param-slider::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,var(--accent-strong),var(--accent));border:2px solid rgba(255,255,255,.15);box-shadow:0 2px 8px rgba(var(--accent-rgb),.35);cursor:pointer;transition:box-shadow var(--dur-fast) var(--ease-standard),transform .18s var(--ease-spring-soft)}.param-slider::-webkit-slider-thumb:hover,.param-slider::-webkit-slider-thumb:active{transform:scale(1.15);box-shadow:0 4px 14px rgba(var(--accent-rgb),.45)}.param-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,var(--accent-strong),var(--accent));border:2px solid rgba(255,255,255,.15);box-shadow:0 2px 8px rgba(var(--accent-rgb),.35);cursor:pointer}.param-slider:disabled{opacity:.5;cursor:not-allowed}.param-min-label,.param-max-label{font-size:11px;color:var(--text-muted);min-width:20px;text-align:center}.param-value-display{display:flex;align-items:center;gap:4px;min-width:80px}.param-value-input{width:50px;padding:4px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg-elevated-2);color:var(--text-primary);font-size:12px;font-family:var(--font-mono);text-align:center;transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}.param-value-input:focus{outline:none;border-color:rgba(var(--accent-rgb),.4);background:var(--bg-elevated-3)}.param-value-input:disabled{opacity:.5;cursor:not-allowed}.param-unit{color:var(--text-muted);font-size:11px;min-width:18px}.shape-visualization{margin-top:var(--sp-4)}.viz-placeholder{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-6);border-radius:var(--radius-md);background:rgba(var(--accent-rgb),.04);border:2px dashed rgba(var(--accent-rgb),.1);color:var(--text-tertiary);font-size:12px}.viz-section{margin-bottom:var(--sp-4)}.viz-title{margin:0 0 var(--sp-3);color:var(--text-secondary);font-size:13px;font-weight:500}.shape-components{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--sp-2)}.component{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2);background:var(--bg-elevated-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.component-label{font-size:11px;font-weight:500;color:var(--text-secondary)}.component-value{font-size:12px;font-weight:600;font-family:var(--font-mono);color:var(--text-primary)}.component-bar{width:100%;min-height:40px;border-radius:4px;position:relative}.arch-bar{background:linear-gradient(180deg,#9b59b659,#9b59b626);border:1px solid rgba(155,89,182,.35)}.heel-bar{background:linear-gradient(180deg,#e74c3c59,#e74c3c26);border:1px solid rgba(231,76,60,.35)}.medial-bar{background:linear-gradient(180deg,#2ea04359,#2ea04326);border:1px solid rgba(46,160,67,.35)}.lateral-bar{background:linear-gradient(180deg,#34d39959,#34d39926);border:1px solid rgba(52,211,153,.35)}.quality-metrics{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3);background:var(--bg-elevated-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.quality-badge{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);width:fit-content}.quality-success{background:#34d3991a;border:1px solid rgba(52,211,153,.2);color:var(--success)}.quality-warning{background:#fbbf241a;border:1px solid rgba(251,191,36,.2);color:var(--warning)}.quality-error{background:#f8717114;border:1px solid rgba(248,113,113,.16);color:var(--error)}.badge-icon{font-size:12px;font-weight:600}.badge-text{font-size:11px;font-weight:600}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--sp-2)}.metric{display:flex;flex-direction:column;gap:3px}.metric-label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.4px}.metric-value{font-size:12px;font-weight:600;font-family:var(--font-mono);color:var(--text-primary)}.metric-value.success{color:var(--success)}.metric-value.error{color:var(--error)}.warnings-list{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:#fbbf240d;border:1px solid rgba(251,191,36,.12);border-radius:6px}.warnings-title{margin:0;font-size:11px;font-weight:600;color:var(--warning);text-transform:uppercase}.warning-item{display:flex;align-items:flex-start;gap:var(--sp-2);font-size:11px;color:var(--text-secondary);line-height:1.4}.warning-icon{flex-shrink:0;font-size:11px}.cp-list{display:flex;flex-direction:column;gap:2px}.cp-list-item{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:var(--radius-sm);font-size:12px;transition:background .15s}.cp-list-item:hover{background:#ffffff0a}.cp-list-item.cp-overridden{background:#22d3ee14}.cp-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cp-label{flex:1;color:var(--text-primary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cp-coords{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);white-space:nowrap}.cp-edited-badge{font-size:10px;font-weight:600;color:#22d3ee;text-transform:uppercase;letter-spacing:.3px}.cp-actions{display:flex;align-items:center;gap:6px}.cp-edit-count{font-size:11px;color:var(--text-muted);margin-left:auto}.btn-sm{padding:2px 8px;font-size:11px;min-height:22px}.preset-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-2)}.preset-modified-badge{font-size:11px}.preset-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:var(--sp-2);margin-bottom:var(--sp-2)}.preset-card{position:relative;width:100%;min-height:72px;padding:var(--sp-2) var(--sp-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:var(--radius-sm);border:2px solid var(--border-subtle);background:var(--bg-elevated-2);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard),transform .25s var(--ease-spring-soft)}.preset-card:hover{border-color:rgba(var(--accent-rgb),.34);background:rgba(var(--accent-rgb),.08)}.preset-card:active{transform:scale(.97);transition-duration:var(--dur-instant)}.preset-card.is-selected{border-color:rgba(var(--accent-rgb),.5);background:rgba(var(--accent-rgb),.14);color:var(--accent-strong);box-shadow:0 6px 20px rgba(var(--accent-rgb),.2);animation:preset-select .35s var(--ease-spring-soft)}.preset-card-icon{font-size:18px;line-height:1}.preset-card-name{font-weight:600;font-size:11px;text-align:center;line-height:1.2}.preset-card-desc{font-size:10px;color:var(--text-muted);text-align:center;line-height:1.2}.preset-card-usage{font-size:10px;color:var(--text-muted);opacity:.7}.preset-card.is-selected .preset-card-usage{color:var(--accent)}.preset-secondary{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-bottom:var(--sp-2)}.preset-chip{padding:4px 10px;border-radius:999px;border:1px solid var(--border-subtle);background:var(--bg-elevated-2);color:var(--text-secondary);font-size:11px;cursor:pointer;transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard);min-height:auto}.preset-chip:hover{border-color:rgba(var(--accent-rgb),.3);background:rgba(var(--accent-rgb),.08)}.preset-chip.is-selected{border-color:rgba(var(--accent-rgb),.5);background:rgba(var(--accent-rgb),.14);color:var(--accent-strong);font-weight:600}.preset-info-desc{margin:0;line-height:1.45}.param-group{margin-bottom:var(--sp-3)}.param-group:last-child{margin-bottom:0}.param-group-header{display:flex;align-items:baseline;gap:var(--sp-2);margin-bottom:var(--sp-2);padding-bottom:var(--sp-1);border-bottom:1px solid rgba(var(--accent-rgb),.08)}.param-group-title{font-size:12px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.3px}.param-group-desc{font-size:11px;color:var(--text-muted)}.param-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-left:4px;border-radius:50%;background:rgba(var(--accent-rgb),.1);color:var(--text-muted);font-size:9px;font-weight:700;cursor:help;vertical-align:middle}.insole-generate-bar{position:sticky;bottom:0;padding:var(--sp-3) 0;background:linear-gradient(transparent,var(--bg-elevated) 30%);z-index:10}.btn-generate{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);width:100%;min-height:42px;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-sm);border:none;background:linear-gradient(135deg,var(--accent-strong),var(--accent));color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:opacity var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard),transform .18s var(--ease-spring-soft);box-shadow:0 4px 16px rgba(var(--accent-rgb),.3)}.btn-generate:hover:not(:disabled){box-shadow:0 6px 24px rgba(var(--accent-rgb),.45);transform:translateY(-1px);filter:none}.btn-generate:active:not(:disabled){transform:translateY(0) scale(.98)}.btn-generate:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.insole-warning-banner{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-3);border-radius:var(--radius-sm);background:#fbbf2414;border:1px solid rgba(251,191,36,.2);font-size:12px;color:var(--text-secondary);line-height:1.45}.insole-warning-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px;border-radius:50%;background:#fbbf2433;color:var(--warning);font-size:11px;font-weight:700}.insole-loading-banner{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);margin-bottom:var(--sp-3);border-radius:var(--radius-sm);background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.12);font-size:13px;color:var(--text-secondary)}.error-content{display:flex;align-items:center;gap:var(--sp-2);flex:1}.error-retry-btn{flex-shrink:0;padding:4px 12px;font-size:11px;min-height:26px}.rx-section{padding:var(--sp-3);margin-bottom:var(--sp-3);border-radius:var(--radius-sm);background:rgba(var(--accent-rgb),.04);border:1px solid rgba(var(--accent-rgb),.1)}.rx-header{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:var(--sp-2)}.mod-list{margin-bottom:var(--sp-3)}.mod-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-secondary);padding:var(--sp-2) 2px var(--sp-1);margin-top:var(--sp-2);border-bottom:1px solid var(--border)}.mod-section-label:first-child{margin-top:0}.mod-section-count{font-weight:400;opacity:.7}.mod-row{border-bottom:1px solid rgba(128,128,128,.06)}.mod-header{display:flex;align-items:center;gap:var(--sp-2);padding:8px 6px;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-xs);transition:background .12s ease}.mod-header:hover{background:rgba(var(--accent-rgb),.05)}.mod-name{flex:1;font-size:13px;font-weight:500;color:var(--text-primary)}.mod-value{font-size:12px;font-family:var(--font-mono);color:var(--text-secondary);min-width:36px;text-align:right}.mod-chevron{font-size:10px;color:var(--text-muted);width:14px;text-align:center;flex-shrink:0}.mod-soon{font-size:10px;color:var(--text-muted);font-style:italic;flex-shrink:0}.mod-detail{padding:4px 8px 8px 24px}.mod-expanded{background:rgba(var(--accent-rgb),.03);border-radius:var(--radius-sm)}.mod-disabled{opacity:.5}.mod-disabled .mod-header{cursor:default}.mod-disabled .mod-header:hover{background:none}.theme-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--bg-elevated-2);color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.theme-toggle:hover{background:var(--bg-hover);color:var(--accent);border-color:var(--accent-ring)}[data-theme=light] .app-header{background:#f8f9fad9;border-bottom-color:var(--border-subtle)}[data-theme=light] .floating-panel{background:var(--bg-elevated-1);border-color:var(--border);box-shadow:var(--shadow-2)}[data-theme=light] .fp-header{background:rgba(var(--accent-rgb),.03);border-bottom-color:var(--border-subtle)}[data-theme=light] .confirm-dialog-backdrop{background:#0003}[data-theme=light] .viewer-shell{background:radial-gradient(ellipse 80% 70% at 40% 35%,#f0f0f4,#e9ecef,#dee2e6)}.patient-chip{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 8px;background:var(--bg-elevated-2);border:1px solid var(--border);border-radius:var(--radius-full);font-size:12px;cursor:pointer;color:var(--text-primary);transition:background .15s,border-color .15s;font-family:inherit}.patient-chip:hover{background:var(--bg-elevated-3);border-color:var(--border-strong)}.patient-chip__avatar{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-strong));display:flex;align-items:center;justify-content:center;color:var(--bg-root);font-weight:700;font-size:10px}.patient-chip__name{color:var(--text-primary);font-weight:500}.patient-chip__meta{color:var(--text-tertiary)}.patient-chip__chev{color:var(--text-tertiary);font-size:10px;margin-left:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.rx-modal-backdrop{position:fixed;inset:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.rx-modal{background:var(--bg-elevated-1);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(640px,calc(100vw - 32px));max-height:calc(100vh - 64px);display:flex;flex-direction:column;box-shadow:0 24px 60px #0006}.rx-modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.rx-modal__header h2{margin:0;font-size:16px;color:var(--text-primary)}.rx-modal__close{background:transparent;border:none;color:var(--text-tertiary);font-size:22px;cursor:pointer;padding:0 6px;line-height:1}.rx-modal__close:hover{color:var(--text-primary)}.rx-modal__body{overflow-y:auto;padding:16px 20px 20px}.rx-modal__section{margin-bottom:18px}.rx-modal__section h3{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.rx-modal__section dl{display:grid;grid-template-columns:110px 1fr;gap:6px 12px;margin:0;font-size:13px}.rx-modal__section dt{color:var(--text-tertiary)}.rx-modal__section dd{margin:0;color:var(--text-primary)}.rx-modal__notes{margin-top:10px;background:var(--bg-elevated-2);border-left:3px solid var(--accent);border-radius:var(--radius-sm);padding:10px 12px}.rx-modal__notes-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:4px}.rx-modal__notes-text{color:var(--text-secondary);font-style:italic;font-size:12px}.rx-modal__designs{list-style:none;margin:0;padding:0;font-size:12px;color:var(--text-secondary)}.rx-modal__designs li{padding:6px 0;border-bottom:1px solid var(--border-subtle)}.rx-modal__designs li:last-child{border-bottom:none}.rx-modal__empty{margin:0;font-size:12px;color:var(--text-tertiary)}.rx-panel{background:var(--bg-elevated-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:16px 20px;margin-bottom:24px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px 24px}.rx-panel__field{display:flex;flex-direction:column;gap:2px}.rx-panel__label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary)}.rx-panel__value{font-size:13px;color:var(--text-primary);font-weight:500}.rx-panel__notes{grid-column:1 / -1;padding-top:12px;margin-top:4px;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:4px}.rx-panel__notes-text{font-size:13px;color:var(--text-secondary);font-style:italic;font-weight:400}.scan-picker{display:flex;flex-direction:column}.scan-picker__label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin:14px 0 8px}.scan-picker__label:first-child{margin-top:0}.scan-picker__list{display:flex;flex-direction:column;gap:6px}.scan-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-elevated-2);border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:border-color .15s,background .15s;font-family:inherit;text-align:left;width:100%;color:var(--text-primary)}.scan-row:hover{border-color:var(--border)}.scan-row.is-selected{background:var(--accent-soft);border-color:var(--accent-ring)}.scan-row:disabled{cursor:not-allowed;opacity:.6}.scan-row__thumb{width:36px;height:36px;background:var(--bg-elevated-3);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.scan-row__name{flex:1;font-size:13px;color:var(--text-primary)}.scan-row__meta{font-size:11px;color:var(--text-tertiary)}.scan-picker__drop{display:flex;align-items:center;gap:10px;padding:12px;border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text-tertiary);font-size:12px;cursor:pointer;transition:border-color .15s,color .15s}.scan-picker__drop:hover{border-color:var(--accent-ring);color:var(--accent-strong)}.scan-picker__drop.is-drag-over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.scan-picker__drop.is-reject{border-color:#f87171;color:#f87171}.scan-picker__drop.is-selected{border-style:solid;border-color:var(--accent-ring);background:var(--accent-soft);color:var(--text-primary)}.scan-picker__plus{width:22px;height:22px;background:var(--bg-elevated-2);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent);font-weight:600;flex-shrink:0}.side-card{background:var(--bg-elevated-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;transition:border-color .15s;text-align:left;width:100%;font-family:inherit;color:var(--text-primary);padding:0}.side-card--button{cursor:pointer;background:var(--bg-elevated-1)}.side-card--button:hover{border-color:var(--border)}.side-card.is-disabled{opacity:.55}.side-card.is-expanded{border-color:var(--accent-ring);box-shadow:0 0 0 3px var(--accent-soft)}.side-card__head{display:flex;align-items:center;gap:14px;padding:18px 20px}.side-card__icon{width:44px;height:44px;background:var(--bg-elevated-2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.side-card.is-expanded .side-card__icon{background:var(--accent-soft)}.side-card__titles{flex:1;min-width:0}.side-card__title{font-size:16px;font-weight:600;color:var(--text-primary)}.side-card__meta{font-size:11px;color:var(--text-tertiary);margin-top:2px}.side-card__badge{font-size:10px;padding:4px 10px;border-radius:var(--radius-full);font-weight:600;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.side-card__badge.is-fresh{background:#9494ae1f;color:var(--text-tertiary)}.side-card__badge.is-progress{background:#fbbf2424;color:#fbbf24}.side-card__badge.is-exported{background:#4ade8024;color:#4ade80}.side-card__badge.is-disabled{background:var(--bg-elevated-2);color:var(--text-muted)}.side-card__body{padding:0 20px 20px;border-top:1px solid var(--border-subtle)}.side-card__resume{background:var(--bg-elevated-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:14px;margin-top:14px;display:flex;flex-direction:column;gap:8px}.side-card__resume-hint{margin:0;font-size:11px;color:var(--text-tertiary)}.side-card__actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid var(--border-subtle)}.side-card__exported-actions{padding:12px 20px 18px;border-top:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;gap:12px}.side-card__exported-text{font-size:12px;color:var(--text-tertiary)}.side-card__exported-buttons{display:flex;gap:8px}.start-container{position:absolute;inset:0;overflow-y:auto;padding:32px 24px 64px;background:var(--bg-root)}.back-to-dashboard{padding:6px 12px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-full);color:var(--text-secondary);font-size:12px;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.back-to-dashboard:hover{background:var(--bg-elevated-2);border-color:var(--border-strong);color:var(--text-primary)}.start-step{max-width:1100px;margin:0 auto}.start-step__title-block{margin-bottom:20px}.start-step__title{margin:0 0 4px;font-size:22px;font-weight:600;color:var(--text-primary)}.start-step__subtitle{margin:0;font-size:13px;color:var(--text-tertiary)}.start-step__side-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:800px){.start-step__side-grid{grid-template-columns:1fr}.rx-panel{grid-template-columns:repeat(2,1fr)}}.export-handoff-actions{margin-top:16px;padding-top:14px;border-top:1px solid var(--border-subtle);display:flex;gap:8px;justify-content:flex-end}
