*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #fafaf7;--surface: #ffffff;--surface-2: #f3f3ee;--border: #e5e5e0;--border-strong: #d6d6cf;--text: #1a1a1a;--text-muted: #6b6b66;--text-soft: #9a9a93;--text-on-accent: #ffffff;--accent: #0a5b91;--accent-hover: #084673;--accent-tint: rgba(10, 91, 145, .08);--surface-tint-hover: rgba(0, 0, 0, .015);--status-native: #1e8449;--status-native-bg: rgba(30, 132, 73, .1);--status-derived: #a5710b;--status-derived-bg: rgba(181, 129, 5, .13);--status-manual: #5a5a5a;--status-manual-bg: rgba(90, 90, 90, .1);--status-none: #b03a2e;--status-none-bg: rgba(192, 57, 43, .1);--font-sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Menlo", monospace;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 2px 8px rgba(0, 0, 0, .05);--chevron-svg: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'><path d='M2.5 4.5l3.5 3.5 3.5-3.5' stroke='%236b6b66' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>")}html{background:var(--bg);font-family:var(--font-sans);scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.55;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:#0a5b912e;color:var(--text)}code{font-family:var(--font-mono);font-size:.86em;background:#0000000b;padding:1px 5px;border-radius:var(--radius-sm);color:var(--text)}.page-header{border-bottom:1px solid var(--border);padding-bottom:32px;margin-bottom:32px}.eyebrow{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:14px}h1{font-size:38px;font-weight:600;letter-spacing:-.02em;line-height:1.15;color:var(--text);margin-bottom:16px}.subtitle{font-size:17px;color:var(--text-muted);max-width:760px;line-height:1.55}.pill{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.005em;white-space:nowrap;line-height:1.5}.pill-native{background:var(--status-native-bg);color:var(--status-native)}.pill-derived{background:var(--status-derived-bg);color:var(--status-derived)}.pill-manual{background:var(--status-manual-bg);color:var(--status-manual)}.pill-none{background:var(--status-none-bg);color:var(--status-none)}.pill-disqualified{background:var(--surface);color:var(--text-muted);border:1px solid var(--border-strong)}.scenario{gap:6px}.scenario .move{font-weight:500;opacity:.75}.scenario .value{font-weight:700}math{font-size:1em}math[display=block]{font-size:1.1em;margin:0 auto}.formula{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px 24px;margin:16px 0 22px;color:var(--text);box-shadow:var(--shadow-sm);max-width:760px;overflow-x:auto;text-align:center}:root{--shadow-dropdown: 0 4px 16px rgba(0, 0, 0, .08)}#app{max-width:960px;margin:0 auto;padding:64px 32px 96px}.form-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px;box-shadow:var(--shadow-sm);margin-bottom:32px}#analyze-form{display:flex;flex-direction:column;gap:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group.full-width{grid-column:1 / -1}label{font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--text-muted);text-transform:uppercase}select,input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;color:var(--text);font-family:var(--font-sans);font-size:14px;transition:border-color .12s ease}select:hover:not(:focus-visible),input:hover:not(:focus-visible){border-color:var(--border-strong)}select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--border)}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:36px;background-image:var(--chevron-svg);background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px var(--surface) inset;-webkit-text-fill-color:var(--text)}.combobox{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;align-items:stretch;transition:border-color .12s ease}.combobox:hover:not(:focus-within){border-color:var(--border-strong)}.combobox:focus-within{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--border)}.combobox input{flex:1;border:none;background:transparent;padding:10px 12px;font-size:14px;color:var(--text);outline:none}.combobox input:focus-visible{outline:none}.combobox-chevron{width:36px;background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;background-image:var(--chevron-svg);background-repeat:no-repeat;background-position:center;transition:transform .15s ease}.combobox.open .combobox-chevron{transform:rotate(180deg)}.combobox-list{display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);list-style:none;max-height:240px;overflow-y:auto;z-index:10;box-shadow:var(--shadow-dropdown);padding:4px 0}.combobox.open .combobox-list{display:block}.combobox-list .option{padding:8px 12px;cursor:pointer;font-size:14px;color:var(--text);transition:background .1s ease,color .1s ease;display:flex;align-items:baseline;gap:10px;min-width:0}.combobox-list .option-symbol{font-weight:500;flex-shrink:0}.combobox-list .option-name{color:var(--text-muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.combobox-list .option:hover{background:var(--surface-2)}.combobox-list .option.active{background:var(--accent-tint);color:var(--accent);font-weight:500}.combobox-list .option.active .option-name{color:var(--accent);opacity:.75}.combobox-list .empty{padding:10px 12px;color:var(--text-muted);font-size:13.5px;font-style:italic}.combobox-display{position:absolute;top:0;bottom:0;left:0;right:36px;display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:14px;pointer-events:none;background:var(--surface);white-space:nowrap;overflow:hidden;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.combobox-display-symbol{color:var(--text);font-weight:500;flex-shrink:0}.combobox-display-name{color:var(--text-muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.combobox:focus-within .combobox-display{display:none}.combobox:not(:focus-within) input{color:transparent;caret-color:transparent}.move-range-inputs{display:flex;gap:10px;align-items:center}.move-range-inputs .move-input-wrap{position:relative;display:inline-flex;align-items:center}.move-range-inputs .move-input{width:90px;padding-left:12px;font-variant-numeric:tabular-nums;transition:background-color .1s ease,color .1s ease}.move-range-inputs .move-sign{position:absolute;left:10px;pointer-events:none;font-weight:700;font-size:15px;line-height:1}.move-range-inputs.dir-bullish .move-input{background:var(--status-native-bg);color:var(--status-native);font-weight:600}.move-range-inputs.dir-bullish .move-sign{color:var(--status-native)}.move-range-inputs.dir-bearish .move-input{background:var(--status-none-bg);color:var(--status-none);font-weight:600}.move-range-inputs.dir-bearish .move-sign{color:var(--status-none)}.move-range-inputs.dir-neutral .to-sep,.move-range-inputs.dir-neutral .move-input-wrap:has(#move-max){display:none}.move-range-inputs.dir-neutral .move-sign{color:var(--text-muted)}.move-range-inputs.dir-bullish .move-input,.move-range-inputs.dir-bearish .move-input,.move-range-inputs.dir-neutral .move-input{padding-left:24px}.move-range-inputs .to-sep{color:var(--text-muted);font-size:13px}button.submit{width:100%;padding:12px;background:var(--accent);color:var(--text-on-accent);border:none;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:14px;font-weight:600;letter-spacing:.005em;cursor:pointer;box-shadow:var(--shadow-sm);transition:background .15s ease}button.submit:hover:not(:disabled){background:var(--accent-hover)}button.submit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.submit:disabled{background:var(--surface-2);color:var(--text-soft);cursor:not-allowed;box-shadow:none}#analyze-form .form-section{margin-bottom:0;display:flex;flex-direction:column;gap:20px}.card-head{padding-bottom:16px;border-bottom:1px solid var(--border)}.card-head h2{font-size:18px;font-weight:600;letter-spacing:-.01em;margin-bottom:6px}.card-head .intro{font-size:13.5px;color:var(--text-muted);line-height:1.5}.hint{font-size:12px;color:var(--text-soft);line-height:1.45}label .opt{font-weight:500;letter-spacing:.02em;text-transform:none;color:var(--text-soft)}.spot-band{align-items:center;text-align:center;gap:4px}.spot-band .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.spot-band .value{font-size:20px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.spot-band .value.spot-loading{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:400;color:var(--text-muted);line-height:27px}.spot-band .value.spot-loading:before{content:"";display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;opacity:.4;flex:none}@media(prefers-reduced-motion:no-preference){.spot-band .value.spot-loading:before{animation:pulse 1.4s ease-in-out infinite}}.presets{display:flex;flex-wrap:wrap;gap:8px}.preset{padding:6px 14px;font-size:13px;font-weight:500;font-family:var(--font-sans);color:var(--text-muted);background:var(--surface-2);border:1px solid transparent;border-radius:999px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.preset:hover{color:var(--text);border-color:var(--border-strong)}.preset:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.preset.active{background:var(--accent-tint);color:var(--accent);border-color:var(--accent)}.dualband{display:flex;flex-direction:column;gap:8px}.dualband .brow{display:flex;align-items:center;gap:10px}.dualband .tag{width:18px;flex-shrink:0;text-align:center;font-family:var(--font-mono);font-size:13px;color:var(--text-soft)}.dualband .num{width:96px;font-variant-numeric:tabular-nums;transition:background-color .1s ease,color .1s ease}.dualband .sep{color:var(--text-muted);font-size:13px}.dualband .num.neg{background:var(--status-none-bg);color:var(--status-none);font-weight:600}.dualband .num.pos{background:var(--status-native-bg);color:var(--status-native);font-weight:600}.dualband .num:disabled{background:var(--surface-2);color:var(--text-soft);cursor:not-allowed}.viz{display:flex;flex-direction:column}.track{position:relative;height:72px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:visible}.track .implied{position:absolute;top:15px;bottom:15px;background:var(--accent-tint)}.track .corridor{position:absolute;top:21px;bottom:21px;border:1.5px dashed var(--text-muted);border-radius:var(--radius-sm)}.track .dest{position:absolute;top:28px;bottom:28px;border-radius:var(--radius-sm)}.track .dest.neg{background:var(--status-none)}.track .dest.pos{background:var(--status-native)}.track .spot{position:absolute;top:0;bottom:0;width:1px;background:var(--border-strong)}.edge-labels{position:relative;height:15px}.edge-labels.out-top{margin-bottom:2px}.edge-labels.out-bottom{margin-top:2px;margin-bottom:12px}.viz.has-both .edge-labels.out-top,.viz.has-both .edge-labels.out-bottom{height:30px}.track .edge-labels{position:absolute;left:0;right:0;height:14px}.track .edge-labels.in-top{top:1px}.track .edge-labels.in-bottom{bottom:1px}.lbl{position:absolute;transform:translate(-50%);font-family:var(--font-mono);font-size:11px;line-height:14px;white-space:nowrap;color:var(--text-soft)}.edge-labels.out-top .lbl{bottom:0}.edge-labels.out-bottom .lbl{top:0}.viz.has-both .edge-labels.out-top .lbl.corr{bottom:16px}.viz.has-both .edge-labels.out-bottom .lbl.corr{top:16px}.edge-labels.in-top .lbl{top:0}.edge-labels.in-bottom .lbl{bottom:0}.lbl.spot{color:var(--text);font-weight:600}.lbl.corr{color:var(--text-muted)}.lbl.pos{color:var(--status-native);font-weight:600}.lbl.neg{color:var(--status-none);font-weight:600}.viz .legend{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}.viz .legend .item{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text-muted)}.viz .legend .key{width:18px;height:10px;border-radius:2px;flex-shrink:0}.viz .legend .key.neg{background:var(--status-none)}.viz .legend .key.pos{background:var(--status-native)}.viz .legend .key.corridor{border:1.5px dashed var(--text-muted)}.viz .legend .key.implied{background:var(--accent-tint)}.warning-box .callout-title{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}.corridor-warning[hidden]{display:none}.derived{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px 28px;padding-top:18px;border-top:1px solid var(--border)}.derived .item{display:flex;flex-direction:column;gap:4px}.derived .item .label{color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.derived .item .value{color:var(--text);font-weight:500;font-size:15px}.derived .item .value.bull{color:var(--status-native)}.derived .item .value.bear{color:var(--status-none)}.derived .item .sub{font-size:11.5px;color:var(--text-soft)}.context{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px 16px}.context .item{display:flex;flex-direction:column;gap:4px}.context .item .label{color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.context .item .value{color:var(--text);font-weight:500;font-size:15px}.results{display:flex;flex-direction:column;gap:16px}.results:empty{display:none}.strategy-divider{display:flex;align-items:center;gap:12px;margin-top:4px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.strategy-divider:before,.strategy-divider:after{content:"";flex:1;height:1px;background:var(--border)}.also-considered{margin-top:4px;padding:14px 16px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);font-size:12.5px}.also-considered .ac-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.also-considered .ac-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.also-considered .ac-item{display:flex;gap:8px;align-items:baseline}.also-considered .ac-name{font-weight:600;color:var(--text);flex-shrink:0}.also-considered .ac-reason{color:var(--text-muted);min-width:0}.loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:32px;color:var(--text-muted);font-size:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.loading:before{content:"";display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;opacity:.4}@media(prefers-reduced-motion:no-preference){.loading:before{animation:pulse 1.4s ease-in-out infinite}}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}.empty{display:flex;align-items:center;justify-content:center;padding:32px;color:var(--text-muted);font-size:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.error-box,.warning-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px 20px;box-shadow:var(--shadow-sm);font-size:14px;line-height:1.55}.error-box{border-left:3px solid var(--status-none);color:var(--status-none)}.warning-box{border-left:3px solid var(--status-derived);color:var(--status-derived)}#vendor-status-slot .vendor-outage-notice{margin:20px 0}.vendor-outage-detail,.vendor-outage-affected{margin-top:8px;color:var(--text-muted);font-size:13px}.vendor-outage-retry{margin-top:12px}.error-debug{margin-top:12px;font-size:12px}.error-debug .ed-summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;list-style:none;outline:none;border-radius:var(--radius-sm);color:var(--text-soft)}.error-debug .ed-summary::-webkit-details-marker{display:none}.error-debug .ed-summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.error-debug .ed-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.error-debug .ed-chevron{width:12px;height:12px;background:var(--chevron-svg) center / contain no-repeat;transition:transform .15s ease;flex-shrink:0}.error-debug[open] .ed-chevron{transform:rotate(180deg)}.error-debug .ed-body{margin-top:10px;display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;align-items:baseline}.error-debug .ed-key{color:var(--text-soft);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.error-debug .ed-value{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);word-break:break-all}.error-debug .ed-copy{grid-column:1 / -1;justify-self:start;margin-top:6px;padding:4px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:11px;cursor:pointer}.error-debug .ed-copy:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.advisory-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;margin-bottom:12px;font-size:14px;line-height:1.5;display:flex;gap:10px;align-items:flex-start;box-shadow:var(--shadow-sm)}.advisory-warn{border-left:3px solid var(--status-derived);background:var(--status-derived-bg);color:var(--status-derived)}.advisory-strong{border-left:4px solid var(--status-none);background:var(--status-none-bg);color:var(--status-none);font-weight:500}.advisory-icon{flex-shrink:0;width:18px;height:18px;border-radius:50%;background:currentColor;color:var(--surface);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;line-height:1}.advisory-halt{border-radius:var(--radius-md);padding:24px;margin:20px 0;border:1px solid var(--border);box-shadow:var(--shadow-sm)}.advisory-halt-warn{background:var(--status-derived-bg);border-left:4px solid var(--status-derived)}.advisory-halt-warn .advisory-halt-title,.advisory-halt-warn .advisory-halt-body{color:var(--status-derived)}.advisory-halt-strong{background:var(--status-none-bg);border-left:6px solid var(--status-none)}.advisory-halt-strong .advisory-halt-title,.advisory-halt-strong .advisory-halt-body{color:var(--status-none)}.advisory-halt-title{font-size:18px;font-weight:600;margin-bottom:8px}.advisory-halt-body{font-size:15px;line-height:1.5;margin-bottom:18px}.advisory-halt-actions{display:flex;gap:12px;justify-content:flex-end}.advisory-halt-actions button{padding:10px 20px;border-radius:var(--radius-md);font-size:14px;cursor:pointer;border:1px solid var(--border)}.advisory-halt-actions .btn-secondary{background:var(--surface);color:var(--text)}.advisory-halt-actions .btn-primary{background:var(--text);color:var(--surface);border-color:var(--text)}.vendor-relogin-banner{margin:20px 0 0}.vendor-relogin-controls{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap}.vendor-relogin-controls button{padding:10px 20px;border-radius:var(--radius-md);font-size:14px;cursor:pointer;border:1px solid var(--border);white-space:nowrap}.vendor-relogin-controls .btn-primary{background:var(--text);color:var(--surface);border-color:var(--text)}.vendor-relogin-controls .btn-secondary{background:var(--surface);color:var(--text)}.vendor-relogin-controls button:disabled{opacity:.55;cursor:default}.vendor-token-input{flex:1 1 260px;min-width:0;font-family:var(--font-mono);font-size:13px}.vendor-relogin-status{margin-top:10px;font-size:13.5px;line-height:1.5;min-height:20px}.vendor-relogin-status-idle,.vendor-relogin-status-pending{color:var(--text-muted)}.vendor-relogin-status-success{color:var(--status-native)}.vendor-relogin-status-failure{color:var(--status-none)}@keyframes advisoryFieldPulse{0%{box-shadow:0 0 #a5710b8c}to{box-shadow:0 0 0 12px #a5710b00}}.advisory-target-pulse{border-radius:var(--radius-md);animation:advisoryFieldPulse .7s ease-out 2}.market-context{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px 20px;box-shadow:var(--shadow-sm);display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:18px 28px}.market-context .item{display:flex;flex-direction:column;gap:4px}.market-context .item .label{color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.market-context .item .value{color:var(--text);font-weight:500;font-size:15px}.expected-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px 28px;padding-top:18px;margin-top:4px;margin-bottom:20px;border-top:1px solid var(--border)}.expected-strip .item{display:flex;flex-direction:column;gap:4px}.expected-strip .item .label{color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.expected-strip .item .value{color:var(--text);font-weight:500;font-size:15px}.spot-asof{color:var(--text-muted);font-size:11px;font-weight:400;margin-top:-2px}.spot-asof:empty{display:none}.strategy-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:18px}.strategy-card.disqualified{border-style:dashed;background:var(--surface-2);box-shadow:none}.strategy-card .header{display:flex;align-items:center;gap:12px}.strategy-card .header .rank{background:var(--accent-tint);color:var(--accent);font-family:var(--font-mono);font-size:12px;font-weight:600;padding:3px 9px;border-radius:var(--radius-sm);line-height:1.4;flex-shrink:0}.strategy-card .header .name{font-size:18px;font-weight:600;letter-spacing:-.005em;color:var(--text);flex:1;min-width:0}.strategy-card .header .score{display:inline-flex;align-items:baseline;gap:6px;font-size:13px}.strategy-card .header .score-label{color:var(--text-muted);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.08em}.strategy-card .header .score-value{color:var(--accent);font-family:var(--font-mono);font-weight:600;font-size:14px}.strategy-card .metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;padding-top:16px;border-top:1px solid var(--border)}.strategy-card .metric{display:flex;flex-direction:column;gap:4px}.strategy-card .metric .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.strategy-card .metric .value{font-size:15px;font-weight:500;color:var(--text)}.value.profit{color:var(--status-native)}.value.loss{color:var(--status-none)}.strategy-card .has-tooltip{position:relative;cursor:help;border-radius:var(--radius-sm);outline:none}.strategy-card .metric.has-tooltip .value{text-decoration:underline dotted var(--text-soft);text-underline-offset:3px}.strategy-card .has-tooltip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.strategy-card .has-tooltip .tooltip-body{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(2px);min-width:220px;padding:12px 14px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-dropdown);opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease;z-index:5}.strategy-card .has-tooltip:hover .tooltip-body,.strategy-card .has-tooltip:focus-visible .tooltip-body,.strategy-card .has-tooltip:focus-within .tooltip-body{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0)}.strategy-card .metric.trade-cost .trade-cost-value{display:inline-flex;align-items:baseline;gap:6px;flex-wrap:wrap}.strategy-card .metric.trade-cost .trade-cost-plus{color:var(--text-muted);font-weight:400}.strategy-card .metric.trade-cost .trade-cost-side{text-decoration:underline dotted var(--text-soft);text-underline-offset:3px}.strategy-card .metric.trade-cost .trade-cost-amount{font-weight:500;color:var(--text)}.tooltip-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:8px;white-space:nowrap}.tooltip-row{display:flex;justify-content:space-between;gap:14px;padding:4px 0;font-size:13px;color:var(--text)}.tooltip-row .tooltip-label{color:var(--text-muted);white-space:nowrap}.tooltip-row .tooltip-value{font-family:var(--font-mono);font-weight:500;white-space:nowrap}.tooltip-row.tooltip-total{border-top:1px solid var(--border);margin-top:4px;padding-top:8px;font-weight:600}.tooltip-row.tooltip-total .tooltip-label,.tooltip-row.tooltip-total .tooltip-value{color:var(--text)}.tooltip-note{border-top:1px solid var(--border);margin-top:4px;padding-top:6px;font-size:11px;color:var(--text-muted);white-space:nowrap}.strategy-card .header .score.has-tooltip{cursor:help}.strategy-card .header .score.has-tooltip .score-value{text-decoration:underline dotted var(--text-soft);text-underline-offset:3px}.tooltip-body .score-breakdown{width:100%;border-collapse:collapse;font-size:13px}.tooltip-body .score-breakdown td{padding:4px 0;white-space:nowrap;color:var(--text)}.tooltip-body .score-breakdown td:first-child{color:var(--text-muted);padding-right:14px}.tooltip-body .score-breakdown td:last-child{font-family:var(--font-mono);font-weight:500;text-align:right}.tooltip-body .score-breakdown__row--dominant td:first-child:before{content:"• ";color:var(--accent)}.tooltip-body .score-breakdown__row--dominant td:last-child{color:var(--accent);font-weight:600}.tooltip-body .score-breakdown__row--subtotal td,.tooltip-body .score-breakdown__row--total td{border-top:1px solid var(--border);padding-top:8px}.tooltip-body .score-breakdown__row--total td{color:var(--text);font-weight:600}.tooltip-body .capital-breakdown{width:100%;border-collapse:collapse;font-size:13px}.tooltip-body .capital-breakdown td{padding:4px 0;white-space:nowrap;color:var(--text)}.tooltip-body .capital-breakdown td:first-child{color:var(--text-muted);padding-right:16px}.tooltip-body .capital-breakdown td:not(:first-child){font-family:var(--font-mono);font-weight:500;text-align:right;padding-left:14px}.tooltip-body .capital-breakdown .profit{color:var(--status-native)}.tooltip-body .capital-breakdown .loss{color:var(--status-none)}.tooltip-body .capital-breakdown__zero{color:var(--text-muted)}.tooltip-body .capital-breakdown__row--head td:not(:first-child){color:var(--text-muted);font-family:inherit;font-weight:400;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.tooltip-body .capital-breakdown__row--subtotal td{border-top:1px solid var(--border);padding-top:8px}.tooltip-body .capital-breakdown__row--total td{border-top:1px solid var(--border);padding-top:8px;font-weight:600;color:var(--text)}.strategy-card .explain-section{padding-top:16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.explain-btn{align-self:flex-start;padding:6px 14px;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:13px;font-weight:500;cursor:pointer;transition:background .12s ease,border-color .12s ease}.explain-btn:hover:not(:disabled){background:var(--surface-tint-hover);border-color:var(--text-muted)}.explain-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.explanation-panel{align-self:stretch;padding:14px 16px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;line-height:1.6;color:var(--text);white-space:pre-wrap;word-wrap:break-word}.explanation-panel.pending{color:var(--text-muted);font-style:italic;animation:explanation-pulse 1.4s ease-in-out infinite}@keyframes explanation-pulse{0%,to{opacity:.7}50%{opacity:1}}.explanation-panel.empty-explanation{color:var(--text-muted);font-style:italic}.empty-with-action{flex-direction:column;gap:14px}.empty-with-action .empty-message{margin:0;font-size:14px;color:var(--text-muted)}.strategy-card .legs{padding-top:16px;border-top:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch}.legs table{width:100%;border-collapse:collapse;font-size:13.5px}.legs thead th{background:var(--surface-2);text-align:left;padding:10px 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap}.legs tbody td{padding:10px 12px;color:var(--text);border-bottom:1px solid var(--border);vertical-align:middle;white-space:nowrap}.legs tbody tr:last-child td{border-bottom:none}.legs td.action{font-weight:700;letter-spacing:.02em}.legs td.action.buy{color:var(--status-native)}.legs td.action.sell{color:var(--status-none)}.legs td.diff.bucket-1{color:var(--accent);font-weight:700}.legs td.diff.bucket-2{color:var(--status-derived);font-weight:700}.legs td.diff.bucket-3{color:#0e7873;font-weight:700}.legs td.diff.bucket-4{color:#7e3a82;font-weight:700}.legs td.placeholder{color:var(--text-soft);font-style:italic}.legs td code.type-ce{background:#0e78731a;color:#0e7873}.legs td code.type-pe{background:#7e3a821a;color:#7e3a82}.legs td code.type-eq{background:var(--accent-tint);color:var(--accent)}.legs td code.type-fut{background:var(--status-derived-bg);color:var(--status-derived)}.legs td .imputed-badge{margin-left:.4em;padding:0 .3em;font-size:.68em;font-weight:600;line-height:1.5;border-radius:3px;background:var(--status-derived-bg);color:var(--status-derived);vertical-align:middle;cursor:help}.strategy-card .payoff{padding-top:20px;border-top:1px solid var(--border)}.strategy-card .payoff>.pd-summary{display:flex;align-items:baseline;gap:14px;cursor:pointer;list-style:none;outline:none;border-radius:var(--radius-sm)}.strategy-card .payoff>.pd-summary::-webkit-details-marker{display:none}.strategy-card .payoff>.pd-summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.strategy-card .payoff .pd-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);flex-shrink:0}.strategy-card .payoff .pd-extremes-inline{display:flex;align-items:baseline;gap:20px;flex:1;flex-wrap:wrap}.strategy-card .payoff .pd-extreme-mini{display:inline-flex;align-items:baseline;gap:6px}.strategy-card .payoff .pd-extreme-mini .label{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--text-soft);font-weight:600}.strategy-card .payoff .pd-extreme-mini .value{font-family:var(--font-mono);font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.strategy-card .payoff .pd-extreme-mini.profit .value{color:var(--status-native)}.strategy-card .payoff .pd-extreme-mini.loss .value{color:var(--status-none)}.strategy-card .payoff .pd-extreme-mini .value.unlimited{font-family:inherit;font-style:italic;font-weight:500}.strategy-card .payoff .pd-rr{font-size:12px;font-family:var(--font-mono);color:var(--text-muted);margin-left:auto;font-variant-numeric:tabular-nums}.strategy-card .payoff .pd-chevron{width:12px;height:12px;background:var(--chevron-svg) center / contain no-repeat;transition:transform .15s ease;flex-shrink:0;margin-left:4px}.strategy-card .payoff[open] .pd-chevron{transform:rotate(180deg)}.strategy-card .payoff .pd-body{margin-top:24px}.strategy-card .payoff .pd-extremes{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:24px}.strategy-card .payoff .pd-extreme{display:flex;flex-direction:column;gap:4px}.strategy-card .payoff .pd-extreme-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--text-soft);font-weight:600;margin-bottom:4px}.strategy-card .payoff .pd-extreme-value{font-family:var(--font-mono);font-size:22px;font-weight:500;line-height:1.1;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.strategy-card .payoff .pd-extreme.profit .pd-extreme-value{color:var(--status-native)}.strategy-card .payoff .pd-extreme.loss .pd-extreme-value{color:var(--status-none)}.strategy-card .payoff .pd-extreme-value.unlimited{font-family:inherit;font-style:italic;font-weight:500}.strategy-card .payoff .pd-extreme-context{font-size:12px;font-family:var(--font-mono);color:var(--text-muted);margin-top:6px;font-variant-numeric:tabular-nums}.strategy-card .payoff .pd-extreme-context .sampled-tag{font-family:inherit;font-style:italic;color:var(--text-soft);margin-right:4px;font-size:12px}.strategy-card .payoff .pd-chart{width:100%;display:block;max-height:240px}.strategy-card .payoff .pd-zero-line{stroke:#0000002e;stroke-dasharray:4 4;stroke-width:.75}.strategy-card .payoff .pd-spot-marker{stroke:var(--accent);stroke-dasharray:2 3;stroke-width:.7;opacity:.5}.strategy-card .payoff .pd-curve{fill:none;stroke:var(--text);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.strategy-card .payoff .pd-extension{fill:none;stroke:var(--text);stroke-width:1;stroke-dasharray:3 3;opacity:.45}.strategy-card .payoff .pd-dot{stroke-width:0}.strategy-card .payoff .pd-dot.profit{fill:var(--status-native)}.strategy-card .payoff .pd-dot.loss{fill:var(--status-none)}.strategy-card .payoff .pd-x-axis-label{font-family:var(--font-mono);font-size:10.5px;fill:var(--text-muted);font-variant-numeric:tabular-nums}.strategy-card .payoff .pd-pl-label{font-family:var(--font-mono);font-size:11px;font-weight:500;font-variant-numeric:tabular-nums}.strategy-card .payoff .pd-pl-label.profit{fill:var(--status-native)}.strategy-card .payoff .pd-pl-label.loss{fill:var(--status-none)}.strategy-card .payoff .pd-unlimited-label{font-size:11px;font-style:italic;fill:var(--text-muted)}.strategy-card .payoff .pd-breakeven-label{font-size:10.5px;font-style:italic;fill:var(--text-soft)}@media(max-width:640px){#app{padding:32px 16px 64px}.page-header{padding-bottom:24px;margin-bottom:24px}h1{font-size:28px}.subtitle{font-size:15px}.form-section{padding:18px;margin-bottom:24px}.form-grid{grid-template-columns:1fr;gap:14px}select,input,.combobox input{font-size:16px}button.submit{padding:14px;font-size:15px}.move-range-inputs{flex-wrap:wrap}.move-range-inputs .move-input-wrap{flex:1;min-width:100px}.move-range-inputs .move-input{width:100%}.dualband .num{flex:1 1 40%;min-width:0;width:auto}.preset{padding:10px 16px}.lbl{font-size:10px}.context,.derived{grid-template-columns:repeat(2,1fr);gap:12px 16px}.market-context{grid-template-columns:repeat(2,1fr);gap:12px 20px;padding:14px 16px}.strategy-card{padding:18px;gap:14px}.strategy-card .header{flex-wrap:wrap;gap:8px}.strategy-card .header .name{flex:1 1 100%;order:2}.strategy-card .header .score{margin-left:auto}.strategy-card .metrics{grid-template-columns:repeat(2,1fr);gap:12px}.legs table{min-width:360px}.scenario-table .scenarios{gap:6px}.combobox-list{max-height:200px}}.login-wrap{max-width:440px;margin:8vh auto 0;padding:0 0 64px}.login-wrap .page-header{border-bottom:none;padding-bottom:16px;margin-bottom:16px}#login-form{display:flex;flex-direction:column;gap:16px}#login-error-slot:not(:empty){margin-bottom:16px}.page-header.with-session{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px}.page-header.with-session>.page-header-content{flex:1 1 auto;min-width:0}.session-chip{display:inline-flex;align-items:center;gap:12px;flex-shrink:0;font-size:13px;color:var(--text-muted)}.session-chip .who{font-family:var(--font-mono);color:var(--text)}.session-chip button.logout{background:none;border:none;padding:4px 0;color:var(--text-muted);cursor:pointer;font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:3px}.session-chip button.logout:hover{color:var(--accent)}.session-chip button.logout:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}
