:root {
  color-scheme: dark; --bg:#0b120e; --surface:#111b15; --surface-2:#17241c; --line:#26372c;
  --text:#edf4ef; --muted:#9fb0a5; --green:#70d6a5; --blue:#70a9ff; --amber:#e8bd72;
  --danger:#ff8f88; --radius:18px; font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  background:var(--bg); color:var(--text); font-synthesis:none;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; min-height:100vh; padding-bottom:5.2rem; background:radial-gradient(circle at 85% -10%,#173326 0,transparent 28rem),var(--bg); }
a { color:inherit; } button,input { font:inherit; }
.site-header { min-height:4.25rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; max-width:76rem; margin:auto; padding:.8rem 1rem; }
.brand { display:flex; align-items:center; gap:.65rem; font-weight:760; letter-spacing:-.02em; text-decoration:none; }
.brand-mark { display:grid; place-items:center; width:2rem; height:2rem; border-radius:9px; background:var(--green); color:#082016; font-family:Georgia,serif; font-size:1.25rem; }
.header-meta { display:flex; align-items:center; gap:.4rem; color:var(--muted); font-size:.78rem; font-variant-numeric:tabular-nums; }
.status-dot { display:inline-block; width:.5rem; height:.5rem; border-radius:50%; background:var(--green); box-shadow:0 0 0 4px rgba(112,214,165,.1); }
.login-page { min-height:100svh; padding:1rem; display:grid; place-items:center; }
.login-shell { width:min(100%,28rem); }
.login-card { border:1px solid var(--line); border-radius:22px; padding:clamp(1.4rem,5vw,2.2rem); background:var(--surface); box-shadow:0 24px 80px rgba(0,0,0,.28); }
.login-card form { display:grid; gap:.7rem; margin-top:1.3rem; }
.login-card label { color:var(--muted); font-size:.8rem; }
.login-card input:not([type="hidden"]) { width:100%; min-height:3rem; border:1px solid var(--line); border-radius:11px; padding:.7rem .8rem; background:var(--bg); color:var(--text); }
.login-mark { display:inline-grid; place-items:center; margin-bottom:1rem; }
.login-error { border-left:3px solid var(--danger); padding:.7rem .8rem; background:rgba(255,80,80,.08); color:#ffb3b3; }
.login-submit { width:100%; margin-top:.5rem; }
.logout-form { margin:0 0 0 .35rem; }
.logout-form button { border:1px solid var(--line); border-radius:8px; padding:.35rem .55rem; background:transparent; color:var(--muted); cursor:pointer; }
main { width:min(100% - 1.25rem,74rem); margin:0 auto; }
h1,h2,h3,h4,p { margin-top:0; } h1 { max-width:16ch; margin-bottom:.75rem; font-size:clamp(1.85rem,7vw,3.5rem); line-height:1.06; letter-spacing:-.045em; }
h2 { font-size:clamp(1.3rem,5vw,2rem); letter-spacing:-.025em; } h3 { font-size:1.05rem; } h4 { margin-bottom:.5rem; }
.eyebrow { margin:0 0 .55rem; color:var(--green); font-size:.72rem; font-weight:750; letter-spacing:.12em; text-transform:uppercase; }
.page-intro { display:grid; gap:.75rem; align-items:end; padding:2.2rem .35rem 1.2rem; }
.intro-copy,.section-copy { color:var(--muted); line-height:1.65; max-width:43rem; }
.panel,.variant-card,.current-card,.compact-card { border:1px solid var(--line); border-radius:var(--radius); background:linear-gradient(145deg,rgba(23,36,28,.94),rgba(14,24,18,.96)); box-shadow:0 18px 55px rgba(0,0,0,.14); }
.panel { padding:1rem; margin-bottom:1rem; }
.hero-panel { padding:.8rem .5rem 1rem; }
.section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:.8rem; padding:.4rem .5rem .8rem; }
.section-heading h2 { margin-bottom:0; }
.evidence-tag,.pill { display:inline-flex; border:1px solid var(--line); border-radius:999px; padding:.35rem .58rem; color:var(--muted); font-size:.68rem; white-space:nowrap; }
.chart { width:100%; min-height:280px; overflow:hidden; } .chart.tall { min-height:330px; }
.chart-fallback { padding:.3rem .65rem .8rem; color:var(--muted); font-size:.75rem; line-height:1.5; }
.drawdown-numbers { display:grid; grid-template-columns:1fr 1fr; gap:.45rem; margin:0 .5rem .45rem; }
.drawdown-numbers > div { display:grid; grid-template-columns:auto 1fr; align-items:baseline; gap:.1rem .45rem; min-width:0; padding:.65rem; border:1px solid var(--line); border-radius:11px; background:rgba(5,12,8,.28); }
.drawdown-numbers span { grid-column:1/-1; color:var(--muted); font-size:.68rem; overflow-wrap:anywhere; }.drawdown-numbers strong,.drawdown-numbers b { font-variant-numeric:tabular-nums; }.drawdown-numbers strong { color:var(--green); font-size:1.05rem; }.drawdown-numbers b { font-size:.76rem; }.drawdown-numbers small { color:var(--muted); font-size:.6rem; }
.status-grid,.variant-grid,.equal-card-grid,.chart-grid,.episode-grid { display:grid; gap:.75rem; }
.drawdown-status { padding:.85rem; border-top:1px solid var(--line); }
.drawdown-status > span { display:block; color:var(--muted); font-size:.72rem; }
.drawdown-status strong { display:block; margin:.2rem 0; color:var(--green); }
.drawdown-status.beyond strong { color:var(--danger); }
.drawdown-status p { margin:0; color:var(--muted); font-size:.78rem; line-height:1.5; }
.variant-grid { margin-bottom:1rem; }
.variant-card,.current-card { padding:1rem; }
.variant-panel-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; }
.variant-panel { min-width:0; padding:1rem; border:1px solid var(--panel-border,var(--line)); border-radius:15px; background:rgba(5,12,8,.22); }
.variant-panel--real { --panel-border:#2d8c62; --variant-color:var(--green); }
.variant-panel--nost { --panel-border:#326fa7; --variant-color:var(--blue); }
.variant-panel .variant-title { align-items:flex-start; }
.variant-panel .variant-title .muted { margin:.25rem 0 0; }
.variant-panel .metric-grid { margin-bottom:.8rem; }
.variant-title { display:flex; align-items:center; gap:.5rem; } .variant-title h3 { margin:0; }
.variant-swatch { width:.65rem; height:.65rem; border-radius:50%; background:var(--green); } .variant-swatch.nost { background:var(--blue); }
.muted,.footnote { color:var(--muted); } .muted { font-size:.82rem; line-height:1.5; }
.metric-grid { display:grid; grid-template-columns:1fr 1fr; gap:.9rem .6rem; margin:1.2rem 0 0; }
.metric-grid div { min-width:0; } dt { color:var(--muted); font-size:.68rem; } dd { margin:.18rem 0 0; font-weight:680; font-variant-numeric:tabular-nums; }
.episode-card { border-top:1px solid var(--line); padding:.9rem .5rem; }
.episode-card > div { display:flex; align-items:center; justify-content:space-between; color:var(--muted); font-size:.72rem; }
.episode-card > strong { display:block; margin:.75rem 0; font-size:1.7rem; font-variant-numeric:tabular-nums; }
.episode-card dl { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; margin:0; }
.text-link { display:inline-block; margin:.8rem .5rem .3rem; color:var(--green); font-weight:650; text-decoration:none; }
.range-controls { display:flex; flex-wrap:wrap; align-items:end; gap:.55rem; margin:0 .35rem 1rem; padding:.75rem; border:1px solid var(--line); border-radius:13px; background:rgba(5,12,8,.24); }
.range-presets { display:flex; flex:1 1 100%; gap:.35rem; overflow-x:auto; scrollbar-width:none; }
.range-presets button { flex:0 0 auto; min-height:2.25rem; padding:.45rem .65rem; border:1px solid var(--line); border-radius:9px; background:var(--surface-2); color:var(--muted); cursor:pointer; }
.range-controls label { display:grid; flex:1 1 9rem; gap:.3rem; color:var(--muted); font-size:.7rem; }
.range-controls input { min-width:0; height:2.45rem; padding:.35rem .5rem; border:1px solid var(--line); border-radius:9px; background:var(--bg); color:var(--text); color-scheme:dark; }
.range-error { flex:1 1 100%; margin:0; color:var(--danger); font-size:.75rem; }
.sensitivity-range-controls { min-width:0; margin:0; padding:0; border:0; }
.full-history-boundary { margin-top:.8rem; padding:.85rem; border-left:3px solid var(--variant-color); border-radius:0 10px 10px 0; background:rgba(112,214,165,.045); }
.full-history-boundary b,.full-history-boundary strong { display:block; }
.full-history-boundary strong { margin:.45rem 0 .2rem; color:var(--variant-color); }
.full-history-boundary p { margin:0; color:var(--muted); font-size:.75rem; line-height:1.55; }
.boundary-numbers { display:flex; flex-wrap:wrap; gap:.35rem .8rem; margin-top:.35rem; color:var(--muted); font-size:.72rem; font-variant-numeric:tabular-nums; }
.similar-episode-list { display:grid; gap:.75rem; margin-top:1rem; }
.similar-episode-card { min-width:0; padding:.75rem; border:1px solid var(--line); border-radius:12px; background:rgba(5,12,8,.2); }
.similar-title-row { display:flex; align-items:start; justify-content:space-between; gap:.6rem; }
.similar-title-row h4 { margin:.2rem 0; font-size:.82rem; }
.mini-chart { width:100%; min-height:215px; overflow:hidden; }
.forward-summary { margin:.35rem 0 0; color:var(--muted); font-size:.68rem; line-height:1.55; }
.subsection { margin-top:1.5rem; padding-top:1.25rem; border-top:1px solid var(--line); }
.subsection-heading { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:.8rem; }
.subsection-heading h3,.subsection-title { margin-bottom:.35rem; }
.subsection-heading label,.period-controls label,.execution-filters label { display:grid; gap:.3rem; color:var(--muted); font-size:.7rem; }
.subsection-heading input,.period-controls input,.execution-filters input { min-width:0; height:2.45rem; padding:.35rem .5rem; border:1px solid var(--line); border-radius:9px; background:var(--bg); color:var(--text); color-scheme:dark; }
.actual-start { margin:.65rem 0; color:var(--muted); font-size:.75rem; }
.actual-start strong { color:var(--text); }
.period-controls,.execution-filters { display:flex; flex-wrap:wrap; gap:.55rem; margin:0 0 .85rem; }
.period-controls label,.execution-filters label { flex:1 1 9rem; }
.period-controls { max-width:24rem; padding:.75rem; border:1px solid var(--line); border-radius:12px; }
.period-controls .button { align-self:end; min-height:2.45rem; }
[data-execution-table] { margin-top:1.25rem; padding-top:1rem; border-top:1px solid var(--line); }
.principle { display:grid; gap:.35rem; margin:1.2rem .2rem 2rem; padding:1rem 1.1rem; border-left:3px solid var(--amber); background:rgba(232,189,114,.06); }
.principle span { color:var(--amber); font-size:.72rem; font-weight:750; letter-spacing:.08em; }.principle p { margin:0; color:#d5dcd7; line-height:1.65; }
.section-nav { position:sticky; z-index:5; top:0; display:flex; gap:.35rem; overflow-x:auto; margin:0 0 1rem; padding:.55rem; border:1px solid var(--line); border-radius:14px; background:rgba(11,18,14,.9); backdrop-filter:blur(14px); scrollbar-width:none; }
.section-nav a { flex:0 0 auto; padding:.5rem .65rem; color:var(--muted); font-size:.76rem; text-decoration:none; }
.evidence-section { scroll-margin-top:4rem; padding-top:1rem; }
.compact-card { padding:1rem; }.compact-card strong { display:block; margin:.55rem 0; font-size:1.35rem; font-variant-numeric:tabular-nums; }.compact-card p { margin:0; color:var(--muted); font-size:.75rem; line-height:1.5; }
.responsive-table { width:100%; overflow-x:auto; border:1px solid var(--line); border-radius:12px; }
table { width:100%; border-collapse:collapse; font-size:.78rem; } th,td { padding:.75rem .65rem; border-bottom:1px solid var(--line); text-align:left; white-space:nowrap; } th { color:var(--muted); font-size:.68rem; font-weight:650; } tbody tr:last-child td { border-bottom:0; }.number { text-align:right; font-variant-numeric:tabular-nums; }
.responsive-table.compact { max-height:24rem; overflow:auto; margin-top:1rem; }
.scroll-window { max-height:min(24rem,65vh); overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; scrollbar-gutter:stable; }
.scroll-window thead th { position:sticky; z-index:2; top:0; background:var(--surface); }
[data-sensitivity-range][aria-busy="true"] [data-sensitivity-panel] { opacity:.62; transition:opacity .15s ease; }
.chart-encoding-note { margin:.2rem 0 .9rem; color:var(--muted); font-size:.7rem; line-height:1.55; }
.chart.js-plotly-plot,.mini-chart.js-plotly-plot { touch-action:pan-y; }
.hero-number { display:block; margin:1.1rem 0 0; font-size:2rem; font-variant-numeric:tabular-nums; }
.holding-list { list-style:none; padding:0; margin:1rem 0 0; }.holding-list li { display:flex; justify-content:space-between; gap:.6rem; padding:.65rem 0; border-top:1px solid var(--line); font-size:.76rem; }.holding-list li > span:first-child { min-width:0; overflow-wrap:anywhere; }.warning { display:block; color:var(--amber); }
.button-row { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.35rem; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:2.8rem; border:1px solid transparent; border-radius:11px; padding:.7rem 1rem; font-weight:700; text-decoration:none; cursor:pointer; }.button.primary { background:var(--green); color:#092116; }.button.secondary { border-color:var(--line); background:var(--surface-2); color:var(--text); }.button.small { min-height:2.25rem; padding:.48rem .7rem; font-size:.72rem; }.button:disabled { cursor:default; opacity:.5; }
.empty-state { margin-top:2rem; padding:2rem 1.2rem; }.empty-state p:not(.eyebrow) { max-width:38rem; color:var(--muted); line-height:1.7; }
.current-version { display:flex; gap:.8rem; align-items:flex-start; margin-bottom:1rem; padding:.85rem 1rem; border:1px solid rgba(112,214,165,.25); border-radius:14px; background:rgba(112,214,165,.06); }.current-version p { margin:.25rem 0 0; color:var(--muted); font-size:.75rem; }
.update-layout { display:grid; gap:1rem; }.amount-field { display:grid; gap:.4rem; }.amount-field > span:first-child,legend { font-weight:700; }.amount-field small,.file-field small { color:var(--muted); font-size:.7rem; }.input-prefix { display:flex; align-items:center; gap:.5rem; padding:0 .8rem; border:1px solid var(--line); border-radius:12px; background:var(--bg); color:var(--muted); }.input-prefix:focus-within { outline:2px solid var(--green); outline-offset:2px; }.input-prefix input { flex:1; min-width:0; height:3rem; border:0; outline:0; background:transparent; color:var(--text); }
fieldset { border:0; padding:0; margin:1.5rem 0; }legend { margin-bottom:.5rem; }.file-field { position:relative; display:grid; grid-template-columns:1fr auto; gap:.3rem 1rem; align-items:center; margin:.55rem 0; padding:.85rem; border:1px solid var(--line); border-radius:12px; background:var(--bg); cursor:pointer; }.file-field > span:first-child { display:grid; gap:.2rem; min-width:0; }.file-field b { overflow-wrap:anywhere; }.file-field input { position:absolute; width:1px; height:1px; opacity:.01; }.file-field:focus-within { outline:2px solid var(--green); outline-offset:2px; }.file-state { grid-column:2; grid-row:1; color:var(--muted); font-size:.68rem; }
.recognized-week { margin:0 0 1rem; padding:.75rem; border-radius:10px; background:var(--surface-2); color:var(--muted); font-size:.76rem; line-height:1.5; }.recognized-week.valid { color:var(--green); }.recognized-week.invalid { color:var(--danger); }
.progress-panel { margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line); }.progress-panel > div { display:flex; justify-content:space-between; }.progress-panel p { margin:.5rem 0 0; color:var(--muted); font-size:.78rem; }progress { width:100%; height:.55rem; accent-color:var(--green); }
.version-list { display:grid; gap:.5rem; }.restore-form { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem 0; border-top:1px solid var(--line); }.restore-form > div { display:grid; gap:.2rem; }.restore-form span { color:var(--muted); font-size:.72rem; }
.footnote { margin:.85rem 0 0; font-size:.7rem; line-height:1.55; }
.bottom-nav { position:fixed; z-index:10; inset:auto 0 0; display:grid; grid-template-columns:repeat(4,1fr); padding:max(.35rem,env(safe-area-inset-bottom)) .3rem .35rem; border-top:1px solid var(--line); background:rgba(11,18,14,.94); backdrop-filter:blur(18px); }
.bottom-nav a { display:grid; place-items:center; gap:.18rem; min-width:0; padding:.35rem .1rem; color:var(--muted); font-size:.65rem; text-align:center; text-decoration:none; }.bottom-nav a span { color:var(--green); font-size:.85rem; }
:focus-visible { outline:2px solid var(--green); outline-offset:3px; }
@media (min-width: 320px) { :root { --phone-ready:1; } }
@media (max-width: 720px) {
  .execution-table.scroll-window { overflow:auto; border:1px solid var(--line); }
  .execution-table table,.execution-table tbody,.execution-table tr,.execution-table td { display:block; width:100%; }
  .execution-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .execution-table tr { margin-bottom:.65rem; padding:.35rem .65rem; border:1px solid var(--line); border-radius:11px; background:rgba(5,12,8,.18); }
  .execution-table td { display:grid; grid-template-columns:minmax(6.8rem,.8fr) minmax(0,1.2fr); gap:.7rem; padding:.45rem 0; border-bottom:1px solid var(--line); text-align:right; white-space:normal; overflow-wrap:anywhere; }
  .execution-table td:last-child { border-bottom:0; }
  .execution-table td::before { content:attr(data-label); color:var(--muted); font-size:.68rem; text-align:left; }
}
@media (min-width: 800px) {
  body { padding-bottom:1.5rem; } main { width:min(100% - 3rem,74rem); }.site-header { padding-inline:1.5rem; }
  .page-intro { grid-template-columns:1.1fr .9fr; padding:4rem .5rem 2rem; }.panel { padding:1.4rem; margin-bottom:1.5rem; }.hero-panel { padding:1.2rem; }
  .status-grid,.variant-grid,.equal-card-grid,.chart-grid,.current-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.variant-card,.current-card { padding:1.35rem; }
  .variant-panel-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .range-presets { flex:1 1 auto; }
  .drawdown-numbers { max-width:34rem; }
  .episode-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.episode-card { padding:1rem; border:1px solid var(--line); border-radius:13px; }
  .update-layout { grid-template-columns:minmax(0,1.3fr) minmax(18rem,.7fr); align-items:start; }.history-panel { position:sticky; top:1rem; }
  .bottom-nav { position:static; width:min(100% - 3rem,74rem); margin:2rem auto 0; border:1px solid var(--line); border-radius:14px; grid-template-columns:repeat(4,auto); justify-content:center; gap:2rem; }.bottom-nav a { display:flex; padding:.65rem; font-size:.76rem; }
}
@media (prefers-color-scheme: light) {
  :root { color-scheme:light; --bg:#f3f6f3; --surface:#fff; --surface-2:#edf3ee; --line:#d7e1da; --text:#152019; --muted:#607067; }
  body { background:radial-gradient(circle at 85% -10%,#dcefe4 0,transparent 28rem),var(--bg); }.bottom-nav,.section-nav { background:rgba(248,251,249,.94); }.drawdown-status p { color:var(--muted); }
}
