:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-0:#0a0d12;--surface-1:#11161d;--surface-2:#161c24;--surface-3:#1c232c;--overlay:#010409b8;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-tertiary:#848d98;--text-inverse:#0a0d12;--text-link:#58a6ff;--border-default:#21262d;--border-subtle:#161c24;--border-strong:#30363d;--accent-primary:#58a6ff;--accent-warm:#f0883e;--accent-violet:#bc8cff;--accent-pink:#f778ba;--success:#3fb950;--success-muted:#3fb95026;--danger:#f85149;--danger-muted:#f8514926;--warning:#d29922;--warning-muted:#d2992226;--info:#79c0ff;--info-muted:#79c0ff26;--neutral-muted:#8b949e21;--regime-rising:var(--success);--regime-peaking:var(--accent-warm);--regime-fading:var(--danger);--regime-range:var(--text-secondary);--regime-dormant:var(--text-tertiary);--ring:#1f6feb;--ring-offset:#0a0d12;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, "Microsoft YaHei", monospace;--text-2xs:.688rem;--text-xs:.786rem;--text-sm:.857rem;--text-base:.929rem;--text-md:1rem;--text-lg:1.143rem;--text-xl:1.357rem;--text-2xl:1.714rem;--text-3xl:2.429rem;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--lh-tight:1.2;--lh-snug:1.35;--lh-normal:1.5;--lh-relaxed:1.65;--num:tabular-nums;--sp-0:0;--sp-px:1px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--sp-16:64px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-pill:999px;--hairline:inset 0 0 0 1px var(--border-default);--shadow-sm:0 1px 2px #01040966;--shadow-md:0 4px 12px #01040980;--shadow-lg:0 8px 32px #01040999;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-io:cubic-bezier(.65, 0, .35, 1);--dur-fast:.12s;--dur-med:.2s;--dur-slow:.32s;--topbar-h:44px;--statusbar-h:24px;--sidebar-w:56px;--sidebar-w-wide:200px;--rail-w:320px;--workspace-max:1600px;--workspace-pad:var(--sp-5);--z-base:0;--z-sticky:10;--z-dock:20;--z-rail:30;--z-dropdown:40;--z-modal:100;--z-toast:9999;--chart-grid:var(--border-subtle);--chart-tick:var(--text-tertiary);--chart-axis:var(--text-secondary);--chart-peak:var(--accent-warm);--chart-anomaly:var(--accent-violet);--chart-normal:var(--accent-primary);--chart-contrarian:var(--danger);--chart-tooltip-bg:var(--surface-3);--chart-tooltip-border:var(--border-strong);--series-1:#58a6ff;--series-2:#3fb950;--series-3:#f0883e;--series-4:#bc8cff;--series-5:#f778ba;--series-6:gold;--series-7:#39d0d8;--series-8:#ff7b72;--heat-neg-strong:#f85149;--heat-neg:#f0883e;--heat-neutral:#8b949e;--heat-pos:#58a6ff;--heat-pos-strong:#3fb950;--bg:var(--surface-0);--panel:var(--surface-1);--panel2:var(--surface-2);--ink:var(--text-primary);--muted:var(--text-secondary);--border:var(--border-default);--accent:var(--accent-primary);--accent2:var(--accent-warm);--good:var(--success);--bad:var(--danger);--purple:var(--accent-violet);--pink:var(--accent-pink);--bg-input:var(--surface-2);--sub:var(--text-secondary);--font-scale:1;--base-size:calc(14px * var(--font-scale));font-family:var(--font-sans)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface-0:#f6f8fa;--surface-1:#fff;--surface-2:#eef1f4;--surface-3:#e1e7ed;--overlay:#6e768173;--text-primary:#1f2328;--text-secondary:#59636e;--text-tertiary:#636c76;--text-inverse:#fff;--text-link:#0969da;--border-default:#d0d7de;--border-subtle:#eaeef2;--border-strong:#b1bac4;--accent-primary:#0969da;--accent-warm:#bc4c00;--accent-violet:#8250df;--accent-pink:#bf3989;--success:#1a7f37;--success-muted:#1a7f3726;--danger:#cf222e;--danger-muted:#cf222e26;--warning:#9a6700;--warning-muted:#9a670026;--info:#0550ae;--info-muted:#0550ae26;--neutral-muted:#8c959f21;--regime-rising:var(--success);--regime-peaking:var(--accent-warm);--regime-fading:var(--danger);--regime-range:var(--text-secondary);--regime-dormant:var(--text-tertiary);--ring:#0969da;--ring-offset:#fff;--hairline:inset 0 0 0 1px var(--border-default);--shadow-sm:0 1px 2px #1f23280f;--shadow-md:0 4px 12px #1f23281a;--shadow-lg:0 8px 32px #1f232829;--chart-grid:var(--border-subtle);--chart-tick:var(--text-tertiary);--chart-axis:var(--text-secondary);--chart-peak:var(--accent-warm);--chart-anomaly:var(--accent-violet);--chart-normal:var(--accent-primary);--chart-contrarian:var(--danger);--chart-tooltip-bg:var(--surface-3);--chart-tooltip-border:var(--border-strong);--bg:var(--surface-0);--panel:var(--surface-1);--panel2:var(--surface-2);--ink:var(--text-primary);--muted:var(--text-secondary);--border:var(--border-default);--accent:var(--accent-primary);--accent2:var(--accent-warm);--good:var(--success);--bad:var(--danger);--purple:var(--accent-violet);--pink:var(--accent-pink);--bg-input:var(--surface-2);--sub:var(--text-secondary)}:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:var(--radius-sm)}.skip-link{left:-9999px;top:var(--sp-2);z-index:var(--z-modal);background:var(--surface-3);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-3);font-size:var(--text-sm);text-decoration:none;position:absolute}.skip-link:focus{left:var(--sp-2)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box}html{font-size:calc(14px * var(--font-scale))}body{background:var(--bg);color:var(--ink);margin:0;line-height:1.5}a{color:var(--accent)}.sub{color:var(--muted);font-size:.929em}.pill{background:color-mix(in srgb, var(--accent-primary) 20%, transparent);color:var(--accent);border-radius:10px;margin-left:6px;padding:1px 8px;font-size:.786em;display:inline-block}.tag{background:var(--panel2);border:1px solid var(--border);color:var(--muted);border-radius:4px;padding:1px 7px;font-size:.786em;display:inline-block}.tag.bull{color:var(--good);background:#2ea0431a;border-color:#2ea04333}.tag.bear{color:var(--bad);background:#f851491a;border-color:#f8514933}.app{max-width:1280px;margin:0 auto;padding:0 20px 40px}header.app-head{border-bottom:1px solid var(--border);margin-bottom:18px;padding:18px 0}header.app-head h1{margin:0;font-size:1.357em;font-weight:600}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px;display:grid}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.kpi .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.786em}.kpi .val{margin-top:2px;font-size:1.5em;font-weight:600}.panel-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px;font-size:.857em;font-weight:600}.kpi-value{font-size:1.5em;font-weight:600}.kpi-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-top:2px;font-size:.786em}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;padding:16px}.card h2{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px;font-size:.857em;font-weight:600}.grid2{grid-template-columns:1.4fr 1fr;gap:16px;display:grid}@media (width<=900px){.grid2{grid-template-columns:1fr}}.chart-box{height:280px}.chart-box.tall{height:320px}.legend{color:var(--muted);flex-wrap:wrap;gap:12px;margin-top:8px;font-size:.857em;display:flex}.legend .dot{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:4px;display:inline-block}.chart-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;display:flex}.tt-trend-term{color:var(--text-primary);background:var(--surface-2,var(--panel));border:1px solid var(--border-default,var(--border));border-radius:4px;padding:1px 6px;font-size:.857em}.seg-toggle{border:1px solid var(--border);border-radius:6px;display:inline-flex;overflow:hidden}.tt-preset-bar{margin-bottom:var(--sp-2)}.tt-preset-bar button{font-variant-numeric:var(--num);font-weight:var(--fw-medium)}.seg-toggle button{color:var(--muted);cursor:pointer;border:none;border-right:1px solid var(--border);background:0 0;min-height:36px;padding:6px 12px;font-size:.857em}.seg-toggle button:last-child{border-right:none}.seg-toggle button.on{background:var(--panel);color:var(--ink);font-weight:600}.seg-toggle button:hover:not(.on){color:var(--ink)}.state-banner{background:var(--panel);border:1px solid var(--border);border-radius:8px;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.state-banner .badge{border-radius:6px;padding:4px 10px;font-size:.929em;font-weight:700}.state-banner .badge.rising{color:var(--good);background:#3fb95026}.state-banner .badge.peaking{color:var(--accent2);background:#f0883e26}.state-banner .badge.fading{color:var(--bad);background:#f8514921}.state-banner .badge.range-bound,.state-banner .badge.dormant{color:var(--muted);background:#8b949e21}.state-banner .badge.tentative{opacity:.85;border:1px dashed var(--muted);font-style:italic}table{border-collapse:collapse;width:100%;font-size:.929em}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);background:var(--panel);z-index:1;box-shadow:inset 0 -1px 0 var(--border);padding:7px 8px;font-weight:500;position:sticky;top:0}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--accent)}td{border-bottom:1px solid var(--border);vertical-align:top;padding:7px 8px}tr:hover td{background:var(--panel2)}.src{color:var(--muted);white-space:nowrap;font-size:.857em}.ev{color:var(--ink);margin-top:3px}.conf{font-variant-numeric:tabular-nums;text-align:right}.scroll{max-height:max(420px,100vh - 280px);overflow:auto}.hint{color:var(--muted);font-size:.857em}.err{color:var(--bad)}.briefing{background:var(--panel2);border-left:3px solid var(--accent);border-radius:4px;margin:6px 0;padding:10px 12px;font-size:.929em}.anomaly{background:var(--panel2);border-radius:6px;align-items:center;gap:8px;margin-bottom:6px;padding:6px 10px;font-size:.929em;display:flex}.anomaly .delta.up{color:var(--good)}.anomaly .delta.down{color:var(--bad)}button.tab{background:var(--panel2);border:1px solid var(--border);color:var(--muted);cursor:pointer;border-radius:6px;padding:5px 12px;font-size:.929em}button.tab.active{color:var(--ink);border-color:var(--accent)}.row-flex{flex-wrap:wrap;align-items:center;gap:8px;display:flex}select,input{background:var(--panel2);border:1px solid var(--border);color:var(--ink);border-radius:5px;padding:4px 8px;font-size:.929em}.disclaimer{color:var(--muted);background:#f851490d;border:1px solid #f8514933;border-radius:6px;margin-top:8px;padding:8px 10px;font-size:.786em}.tr-wrap{display:inline;position:relative}.tr-icon{cursor:pointer;color:var(--muted);opacity:.7;vertical-align:middle;margin-left:4px;line-height:0;display:none}.tr-wrap:hover .tr-icon,.tr-wrap:focus-within .tr-icon{justify-content:center;align-items:center;display:inline-flex}.tr-icon:hover{color:var(--accent);opacity:1}.tr-icon svg{transform-origin:50%}.tr-icon.spinning{display:inline-flex}.tr-icon.spinning svg{animation:1s linear infinite tr-spin}@keyframes tr-spin{to{transform:rotate(360deg)}}.tr-result{border-left:2px solid var(--accent);color:var(--accent);margin-top:3px;padding-left:8px;font-size:.92em;font-style:italic;display:block}.tr-result .tr-tag{background:var(--accent);color:var(--panel);vertical-align:middle;border-radius:3px;margin-right:5px;padding:1px 4px;font-size:.7em;font-style:normal}.tr-fail{color:var(--bad);font-size:.8em;font-style:normal}button.btn{background:var(--panel2);border:1px solid var(--border);color:var(--ink);cursor:pointer;border-radius:6px;padding:7px 14px;font-size:.929em}button.btn:hover{border-color:var(--accent)}button.btn.primary{background:color-mix(in srgb, var(--accent-primary) 20%, transparent);border-color:var(--accent);color:var(--accent)}.upload-zone{border:2px dashed var(--border);text-align:center;border-radius:8px;padding:18px;transition:border-color .2s}.upload-zone.drag{border-color:var(--accent);background:color-mix(in srgb, var(--accent-primary) 7%, transparent)}.progress-wrap{margin-top:14px}.progress-bar{background:var(--panel2);border-radius:4px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,var(--accent),var(--accent2));width:0%;height:100%;transition:width .3s}.progress-stages{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.stage{background:var(--panel2);color:var(--muted);border:1px solid var(--border);border-radius:10px;padding:3px 8px;font-size:.786em}.stage.active{color:var(--accent);border-color:var(--accent)}.stage.done{color:var(--good);border-color:var(--good)}.upload-log{background:var(--bg);border:1px solid var(--border);border-radius:6px;max-height:120px;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.76em;overflow:auto}.upload-log-line{color:var(--muted);white-space:pre-wrap;word-break:break-word;padding:1px 0;line-height:1.5}.upload-log-line:last-child{color:var(--ink)}.equity-instr{border:1px solid var(--border);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:3px 8px;font-size:.82em;display:flex}.equity-instr.on{background:var(--panel2)}.equity-instr .dot{border-radius:50%;width:9px;height:9px;display:inline-block}.equity-stats{border-collapse:collapse;width:100%;margin-top:8px;font-size:.8em}.equity-stats th{box-shadow:none;background:0 0;padding:4px 8px;font-weight:500;position:static}.equity-stats td{padding:4px 8px}.equity-pos{color:var(--good)}.equity-neg{color:var(--bad)}.spinner{border:2px solid var(--border);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;width:13px;height:13px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.modal-bg{background:var(--overlay);z-index:50;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-bg.show{display:flex}.modal{background:var(--panel);border:1px solid var(--border);border-radius:10px;width:100%;max-width:680px;max-height:85vh;padding:24px;overflow:auto}.modal .close{float:right;cursor:pointer;color:var(--muted);font-size:20px}.modal h2{margin:0 0 6px;font-size:1.286em}.modal h3{color:var(--accent);margin:18px 0 6px;font-size:1em}.formula{background:var(--panel2);border:1px solid var(--border);color:var(--accent2);border-radius:6px;margin:8px 0;padding:10px 12px;font-family:ui-monospace,Cascadia Code,SF Mono,Consolas,Microsoft YaHei,monospace;font-size:.929em}.example{background:var(--panel2);border-left:3px solid var(--good);border-radius:4px;margin:8px 0;padding:10px 12px;font-size:.929em}.example .calc{color:var(--good);margin-top:4px;font-family:monospace}ol.steps{padding-left:18px}ol.steps li{margin-bottom:5px}.range-box{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;font-size:.857em;display:flex}.range-box input{background:var(--panel2);border:1px solid var(--border);color:var(--ink);border-radius:5px;padding:3px 6px;font-size:.857em}.info-tip{border:1px solid var(--muted);width:16px;height:16px;color:var(--muted);cursor:help;border-radius:50%;justify-content:center;align-items:center;margin-left:6px;font-size:10px;display:inline-flex;position:relative}.info-tip:hover .tip-body{display:block}.tip-body{background:var(--panel);border:1px solid var(--border);width:280px;font-size:calc(var(--base-size) * .92);color:var(--ink);z-index:20;text-align:left;border-radius:8px;padding:10px 12px;font-weight:400;line-height:1.5;display:none;position:absolute;top:22px;right:0;box-shadow:0 4px 12px #0008}.tip-body strong{color:var(--accent)}.lang-switch{border:1px solid var(--border);border-radius:6px;height:32px;display:flex;overflow:hidden}.lang-switch button{background:var(--panel2);color:var(--muted);cursor:pointer;border:none;height:100%;padding:0 10px;font-size:.857em}.lang-switch button.active{background:color-mix(in srgb, var(--accent-primary) 20%, transparent);color:var(--accent)}.icon-btn{background:var(--panel2);border:1px solid var(--border);color:var(--ink);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.icon-btn:hover{border-color:var(--accent)}.tz-switch{background:var(--panel2);border:1px solid var(--border);color:var(--ink);cursor:pointer;border-radius:6px;max-width:150px;height:32px;padding:0 6px;font-size:.857em}.tz-switch:hover{border-color:var(--accent)}.tz-switch:focus{border-color:var(--accent);outline:none}@media (width<=600px){.tz-switch{max-width:110px}}.font-scale{border:1px solid var(--border);border-radius:6px;height:32px;display:flex;overflow:hidden}.font-scale button{background:var(--panel2);color:var(--muted);cursor:pointer;border:none;justify-content:center;align-items:center;gap:4px;min-width:26px;height:100%;padding:0 5px;line-height:1;display:inline-flex}.font-scale button.active{background:color-mix(in srgb, var(--accent-primary) 20%, transparent);color:var(--accent)}.font-scale .view-toggle-label{font-size:.78em;font-weight:500}@media (width<=600px){.font-scale .view-toggle-label{display:none}}.font-scale .s1{font-size:.7em}.font-scale .s2{font-size:.85em}.font-scale .s3{font-size:1em}.font-scale .s4{font-size:1.15em}.font-scale .s5{font-size:1.3em}.brief-tokens{color:var(--muted);background:var(--panel2);border:1px solid var(--border);white-space:nowrap;border-radius:4px;margin-left:auto;padding:1px 6px;font-family:monospace;font-size:.786em;display:inline-block}.cfg-row{margin-bottom:.857em}.cfg-row label{color:var(--muted);margin-bottom:3px;font-size:.857em;display:block}.cfg-row input,.cfg-row select,.cfg-row textarea{background:var(--panel2);border:1px solid var(--border);width:100%;color:var(--ink);border-radius:5px;padding:5px 8px;font-size:.929em}.cfg-row textarea{resize:vertical;min-height:3.4em;line-height:1.5}.cfg-row input::placeholder,.cfg-row textarea::placeholder{color:var(--muted);opacity:.6}.cfg-price-grid{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.cfg-note{color:var(--muted);margin-top:.571em;font-size:.786em}.chart-container{position:relative}.chart-container .brush-overlay{z-index:5;cursor:crosshair;width:100%;height:100%;position:absolute;top:0;left:0}.chart-container .brush-hint{z-index:6;color:var(--accent);background:var(--panel);border:1px solid var(--accent);pointer-events:none;white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:.786em;display:none;position:absolute;top:6px;left:50%;transform:translate(-50%)}.celebrate-badge{z-index:101;background:var(--panel);border:1px solid var(--good);border-radius:14px;flex-direction:column;align-items:center;gap:10px;padding:22px 30px;animation:.35s cubic-bezier(.2,.9,.3,1.3) both celebrate-pop;display:flex;position:relative;box-shadow:0 8px 32px #000a}.celebrate-msg{color:var(--ink);text-align:center;font-size:1.1em;font-weight:600}.celebrate-circle{stroke-dasharray:151;stroke-dashoffset:151px;animation:.5s ease-out .1s forwards celebrate-draw}.celebrate-check{stroke-dasharray:40;stroke-dashoffset:40px;animation:.35s ease-out .5s forwards celebrate-draw}@keyframes celebrate-pop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes celebrate-draw{to{stroke-dashoffset:0}}.toast-region{z-index:9999;pointer-events:none;flex-direction:column;gap:8px;max-width:340px;display:flex;position:fixed;top:14px;right:14px}.toast,.toast-region>button{pointer-events:auto;background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--bad);border-radius:6px;max-width:320px;padding:10px 12px;font-size:.929em;animation:.25s ease-out both toast-in;box-shadow:0 6px 20px #000a}.toast-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.toast-head strong{font-size:.929em}.toast-close{color:var(--muted);cursor:pointer;background:0 0;border:none;flex:none;padding:0 2px;font-size:1.2em;line-height:1}.toast-close:hover{color:var(--ink)}.toast-detail{color:var(--muted);margin-top:4px;font-size:.857em;line-height:1.4}@keyframes toast-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@media (width<=600px){.toast-region{max-width:none;left:10px;right:10px}}.skeleton{background:linear-gradient(90deg, var(--surface-2) 0%, var(--surface-3) 50%, var(--surface-2) 100%);animation:skeleton-shimmer 1.4s var(--ease-io) infinite;border-radius:var(--radius-sm);background-size:200% 100%}.skeleton.line{height:1em;margin-bottom:var(--sp-2);display:block}.skeleton.block{height:280px}@keyframes skeleton-shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{opacity:.6;animation:none}}.state-hero{background:linear-gradient(180deg, var(--surface-1), var(--surface-0));border:1px solid var(--border-default);border-left:3px solid var(--regime-peaking);border-radius:var(--radius-lg);padding:var(--sp-4) var(--sp-5);align-items:baseline;gap:var(--sp-4);flex-wrap:wrap;display:flex}.state-hero.regime-rising{border-left-color:var(--regime-rising)}.state-hero.regime-peaking{border-left-color:var(--regime-peaking)}.state-hero.regime-fading{border-left-color:var(--regime-fading)}.state-hero.regime-range{border-left-color:var(--regime-range)}.state-hero.regime-dormant{border-left-color:var(--regime-dormant)}.state-hero.tentative{opacity:.9;border-left-style:dashed}.state-hero .hero-badge{font-size:var(--text-2xl);font-weight:var(--fw-bold);letter-spacing:.02em}.state-hero .hero-stat{font-size:var(--text-3xl);font-variant-numeric:var(--num);font-weight:var(--fw-semibold)}.state-hero .hero-sub{color:var(--text-secondary);font-size:var(--text-base)}.state-hero .hero-trigger{color:var(--text-primary);margin-left:auto}table.tt{border-collapse:collapse;width:100%;font-size:var(--text-sm)}table.tt th{z-index:var(--z-sticky);background:var(--surface-1);box-shadow:inset 0 -1px 0 var(--border-default);color:var(--text-secondary);font-weight:var(--fw-medium);text-align:left;padding:var(--sp-2);position:sticky;top:0}table.tt td{padding:var(--sp-2);border-bottom:1px solid var(--border-subtle);vertical-align:top}table.tt tr:hover td{background:var(--surface-2)}table.tt .num{font-variant-numeric:var(--num);text-align:right}table.tt th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.tt th.sortable:hover{color:var(--accent-primary)}.num{font-variant-numeric:var(--num)}.btn--primary{background:var(--accent-primary)!important;color:var(--text-inverse)!important;border-color:#0000!important}.btn--primary:hover{filter:brightness(1.08)}.btn--danger{color:var(--danger)!important;border-color:var(--danger-muted)!important}.btn--ghost{background:0 0!important;border-color:#0000!important}.btn--ghost:hover{background:var(--surface-2)!important}.surface-1{background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-lg)}.surface-2{background:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md)}.hairline{border:0;border-top:1px solid var(--border-subtle);margin:var(--sp-3) 0}.tt-shell{grid-template-columns:var(--sidebar-w) 1fr var(--rail-w);grid-template-rows:var(--topbar-h) 1fr var(--statusbar-h);background:var(--surface-0);grid-template-areas:"topbar topbar topbar""sidebar workspace rail""statusbar statusbar statusbar";min-height:100vh;display:grid}.tt-shell.rail-collapsed{grid-template-columns:var(--sidebar-w) 1fr 0}.tt-shell.rail-collapsed .tt-rail{display:none}.tt-topbar{align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);background:var(--surface-1);border-bottom:1px solid var(--border-default);z-index:var(--z-dock);grid-area:topbar;display:flex;position:sticky;top:0}.tt-topbar .tt-brand{font-weight:var(--fw-semibold);font-size:var(--text-md);white-space:nowrap}.tt-topbar .tt-brand-sub{color:var(--text-secondary);font-weight:var(--fw-regular);font-size:var(--text-xs);margin-left:var(--sp-2)}.tt-topbar .tt-spacer{flex:1}.tt-topbar .tt-actions{align-items:center;gap:var(--sp-2);display:flex}.tt-lang-btn{width:auto;padding:0 var(--sp-2);gap:var(--sp-1)}.tt-lang-label{font-size:var(--text-xs);color:var(--text-secondary)}.tt-lang-btn:hover .tt-lang-label{color:var(--text-primary)}.tt-lang-dropdown{min-width:160px}.tt-narr-btn{width:auto;max-width:240px;padding:0 var(--sp-2);gap:var(--sp-1)}.tt-narr-label{font-size:var(--text-xs);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tt-narr-btn:hover .tt-narr-label{color:var(--text-primary)}.tt-narr-chevron{font-size:var(--text-2xs);color:var(--text-tertiary)}.tt-narr-dropdown{min-width:200px}.tt-menu-divider{background:var(--border-subtle);height:1px;margin:var(--sp-1) calc(var(--sp-2) * -1)}.tt-cmd-trigger{align-items:center;gap:var(--sp-2);height:36px;padding:0 var(--sp-3);background:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;min-width:220px;transition:border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);display:inline-flex}.tt-cmd-trigger:hover{border-color:var(--accent-primary);color:var(--text-primary)}.tt-kbd{font-family:var(--font-mono);font-size:var(--text-2xs);background:var(--surface-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:0 var(--sp-1);color:var(--text-tertiary);margin-left:auto}.tt-sidebar{background:var(--surface-1);border-right:1px solid var(--border-default);padding:var(--sp-2) 0;align-items:center;gap:var(--sp-1);top:var(--topbar-h);height:calc(100vh - var(--topbar-h) - var(--statusbar-h));z-index:var(--z-dock);flex-direction:column;grid-area:sidebar;display:flex;position:sticky}.tt-nav-group{align-items:center;gap:var(--sp-1);width:100%;padding:var(--sp-1) 0;flex-direction:column;display:flex}.tt-nav-group+.tt-nav-group{border-top:1px solid var(--border-subtle);margin-top:var(--sp-1)}.tt-nav-btn{border-radius:var(--radius-md);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex;position:relative}.tt-nav-btn:hover{background:var(--surface-2);color:var(--text-primary)}.tt-nav-btn.active{background:var(--surface-3);color:var(--accent-primary);border-color:var(--border-default)}.tt-nav-btn.active:before{content:"";background:var(--accent-primary);border-radius:var(--radius-pill);width:2px;position:absolute;top:8px;bottom:8px;left:-1px}.tt-workspace{padding:var(--workspace-pad);width:100%;max-width:var(--workspace-max);grid-area:workspace;margin-inline:auto;overflow:auto}.tt-workspace-header{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);padding-bottom:var(--sp-3);border-bottom:1px solid var(--border-default);flex-wrap:wrap;display:flex}.tt-workspace-title{font-size:var(--text-lg);font-weight:var(--fw-semibold);margin:0}.tt-workspace-subtitle{color:var(--text-secondary);font-size:var(--text-sm)}.tt-rail{background:var(--surface-1);border-left:1px solid var(--border-default);padding:var(--sp-4);top:var(--topbar-h);height:calc(100vh - var(--topbar-h) - var(--statusbar-h));grid-area:rail;position:sticky;overflow:auto}.tt-rail-section{margin-bottom:var(--sp-4)}.tt-rail-section h4{margin:0 0 var(--sp-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-weight:var(--fw-medium)}.tt-rail-empty{color:var(--text-tertiary);font-size:var(--text-sm)}.tt-statusbar{align-items:center;gap:var(--sp-4);padding:0 var(--sp-4);background:var(--surface-1);border-top:1px solid var(--border-default);font-size:var(--text-xs);color:var(--text-secondary);font-variant-numeric:var(--num);z-index:var(--z-dock);grid-area:statusbar;display:flex;position:sticky;bottom:0}.tt-status-item{align-items:center;gap:var(--sp-1);display:inline-flex}.tt-status-sep{color:var(--border-strong)}.tt-status-badge{font-weight:var(--fw-semibold)}.tt-status-badge.regime-peaking{color:var(--regime-peaking)}.tt-status-badge.regime-rising{color:var(--regime-rising)}.tt-status-badge.regime-fading{color:var(--regime-fading)}.tt-status-badge.regime-range{color:var(--regime-range)}.tt-status-badge.regime-dormant{color:var(--regime-dormant)}.tt-menu{position:relative}.tt-menu-dropdown{background:var(--surface-3);border:1px solid var(--border-default);border-radius:var(--radius-lg);min-width:260px;box-shadow:var(--shadow-lg);padding:var(--sp-2);z-index:var(--z-dropdown);animation:tt-menu-in var(--dur-med) var(--ease-out);position:absolute;top:calc(100% + 4px);right:0}@keyframes tt-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tt-menu-section{padding:var(--sp-1) var(--sp-2)}.tt-menu-section+.tt-menu-section{border-top:1px solid var(--border-subtle);margin-top:var(--sp-1);padding-top:var(--sp-2)}.tt-menu-heading{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-bottom:var(--sp-1)}.tt-menu-row{justify-content:space-between;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-sm);display:flex}.tt-menu-row:hover{background:var(--surface-2)}.tt-menu-action{align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-1) var(--sp-2);color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);font-size:var(--text-sm);text-align:left;background:0 0;border:none;display:flex}.tt-menu-action:hover{background:var(--surface-2)}.tt-palette-bg{background:var(--overlay);z-index:var(--z-modal);animation:tt-fade-in var(--dur-med) var(--ease-out);justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}@keyframes tt-fade-in{0%{opacity:0}to{opacity:1}}.tt-palette{background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:560px;box-shadow:var(--shadow-lg);animation:tt-palette-in var(--dur-med) var(--ease-out);overflow:hidden}@keyframes tt-palette-in{0%{opacity:0;transform:scale(.98)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.tt-palette-input{width:100%;padding:var(--sp-3) var(--sp-4);border:none;border-bottom:1px solid var(--border-default);color:var(--text-primary);font-size:var(--text-md);background:0 0;outline:none}.tt-palette-input::placeholder{color:var(--text-tertiary)}.tt-palette-list{max-height:360px;padding:var(--sp-1);overflow:auto}.tt-palette-item{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-md);cursor:pointer;color:var(--text-primary);font-size:var(--text-sm);display:flex}.tt-palette-item:hover,.tt-palette-item.selected{background:var(--surface-2)}.tt-palette-item.selected{box-shadow:inset 0 0 0 1px var(--accent-primary)}.tt-palette-kind{font-size:var(--text-2xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-left:auto}.tt-palette-empty{padding:var(--sp-4);color:var(--text-tertiary);font-size:var(--text-sm);text-align:center}.tt-palette-foot{padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border-subtle);font-size:var(--text-2xs);color:var(--text-tertiary);gap:var(--sp-3);display:flex}.onboarding-overlay{z-index:var(--z-modal);background:var(--overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;animation:.2s ease-out ob-fade-in;display:flex;position:fixed;inset:0}@keyframes ob-fade-in{0%{opacity:0}to{opacity:1}}.onboarding-card{background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:var(--sp-8);text-align:center;width:460px;max-width:90vw;box-shadow:var(--shadow-lg);position:relative}.onboarding-skip{top:var(--sp-3);right:var(--sp-3);color:var(--text-tertiary);cursor:pointer;font-size:var(--text-xs);background:0 0;border:none;position:absolute}.onboarding-skip:hover{color:var(--text-secondary)}.onboarding-illustration{margin-bottom:var(--sp-4);color:var(--accent-primary);justify-content:center;display:flex}.onboarding-title{font-size:var(--text-xl);margin:0 0 var(--sp-2);color:var(--text-primary)}.onboarding-body{font-size:var(--text-sm);color:var(--text-secondary);margin:0 0 var(--sp-5);line-height:1.5}.onboarding-actions{gap:var(--sp-2);margin-bottom:var(--sp-4);justify-content:center;display:flex}.onboarding-dots{gap:var(--sp-1);justify-content:center;display:flex}.onboarding-dot{background:var(--surface-3);cursor:pointer;border-radius:50%;width:8px;height:8px;transition:background .2s,width .2s}.onboarding-dot.active{background:var(--accent-primary);border-radius:4px;width:24px}.share-bar{align-items:center;gap:var(--sp-1);margin-bottom:var(--sp-3);display:inline-flex}.share-btn{padding:var(--sp-1) var(--sp-2);font-size:var(--text-xs);min-width:36px}.soft-wall-btn{white-space:nowrap;font-size:var(--text-xs);background:var(--accent-primary);color:var(--surface-0);border-radius:var(--radius-sm);cursor:pointer;border:none;transition:opacity .15s}.soft-wall-btn:hover{opacity:.85}.input-err{border-color:var(--danger)!important}.auth-modal{padding:var(--sp-6)!important}.auth-input{box-sizing:border-box;width:100%;height:38px;font-size:var(--text-sm);max-width:none!important}.auth-pw-wrap{width:100%;position:relative}.auth-pw-wrap .auth-input{padding-right:36px}.auth-pw-toggle{cursor:pointer;color:var(--text-tertiary);font-size:var(--text-md);background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;display:flex;position:absolute;top:0;bottom:0;right:6px}.auth-pw-toggle:hover{color:var(--text-secondary)}.auth-strength{align-items:center;gap:var(--sp-1);margin-top:2px;display:flex}.auth-strength-bar{height:3px;transition:background var(--dur-fast);border-radius:2px;flex:1}.auth-strength-label{font-size:var(--text-2xs);text-align:right;min-width:50px}.auth-submit{width:100%;height:38px;margin-top:var(--sp-1);font-size:var(--text-sm)}.auth-note{margin-top:var(--sp-4);text-align:center;font-size:var(--text-xs)}.tt-rail-drawer-bg,.tt-rail-drawer{display:none}.tt-rail-drawer-head{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.tt-rail-drawer-head h4{font-size:var(--text-sm);margin:0}@media (width<=900px){.tt-shell{grid-template-columns:var(--sidebar-w) 1fr 0;grid-template-areas:"topbar topbar topbar""sidebar workspace workspace""statusbar statusbar statusbar"}.tt-rail{display:none}.tt-workspace{padding:var(--sp-3)}.tt-rail-drawer-bg{background:var(--overlay);z-index:var(--z-modal);animation:tt-rail-fade var(--dur-med) var(--ease-out);display:block;position:fixed;inset:0}.tt-rail-drawer{width:min(var(--rail-w), 85vw);background:var(--surface-1);border-left:1px solid var(--border-default);box-shadow:var(--shadow-lg);z-index:calc(var(--z-modal) + 1);animation:tt-rail-slide var(--dur-med) var(--ease-out);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.tt-rail-drawer .tt-rail-section{padding:var(--sp-3)}.tt-rail-toggle{display:none!important}@keyframes tt-rail-slide{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes tt-rail-fade{0%{opacity:0}to{opacity:1}}}@media (width<=640px){.tt-shell{grid-template-columns:1fr;grid-template-rows:auto 1fr auto var(--statusbar-h);grid-template-areas:"topbar""workspace""sidebar""statusbar"}.tt-sidebar{border-right:none;border-top:1px solid var(--border-default);width:100%;height:auto;padding:var(--sp-1) 0;justify-content:space-around;position:sticky;bottom:0;overflow-x:auto;flex-direction:row!important}.tt-nav-group{flex-direction:row!important}.tt-workspace{padding:var(--sp-2)}.chart-toolbar{gap:var(--sp-1)}.chart-toolbar .seg-toggle button,.chart-toolbar .seg-toggle>span{padding:2px 8px;font-size:.8em}.chart-box{height:200px!important}.chart-box.tall{height:240px!important}.tt-topbar{padding:0 var(--sp-2);gap:var(--sp-1)}.tt-topbar,.tt-topbar .tt-actions{flex-wrap:wrap}.tt-cmd-trigger{min-width:0}.tt-cmd-text,.tt-actions>.icon-btn,.tt-lang-btn .tt-lang-label{display:none}.tt-narr-btn{max-width:140px}.tt-brand-sub{display:none}.tt-workspace-header{gap:var(--sp-1);flex-wrap:wrap}.grid2,.grid3{grid-template-columns:1fr!important}}
