@font-face{font-family:Fraunces;font-style:normal;font-weight:300 900;font-display:swap;src:url(fonts/fraunces-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Fraunces;font-style:normal;font-weight:300 900;font-display:swap;src:url(fonts/fraunces-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(fonts/source-serif-4-normal-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(fonts/source-serif-4-normal-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(fonts/source-serif-4-italic-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(fonts/source-serif-4-italic-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibmplexsans-normal-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibmplexsans-normal-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibmplexsans-normal-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibmplexsans-normal-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/IBMPlexMono-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/IBMPlexMono-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/IBMPlexMono-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/IBMPlexMono-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root,html[data-theme="light"]{
  --bg:#f7f4ec;--panel:#fffefb;--panel-2:#ede8dc;--ink:#14181f;--ink-2:#2c333f;--mut:#4b5262;--muted:#4b5262;
  --line:#bfb6a3;--line-soft:#ded7c7;--acc:#136f4b;--accent:#136f4b;--accent-ink:#ffffff;--focus:#1d4ed8;
  --profit:#136f4b;--breakeven:#9a5b04;--loss:#b83a24;
  --chart-bg:#fffefb;--chart-grid:rgba(20,24,31,.11);--chart-ref:rgba(20,24,31,.42);--chart-ring:#14181f;
  --warn-bg:#fef3c7;--warn-ink:#78350f;--warn-line:#d97706;
  --to-top-bg:#fffefb;--to-top-fg:#14181f;
  --display:Fraunces,"Source Serif 4",Georgia,serif;--serif:"Source Serif 4",Georgia,serif;
  --ui:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  color-scheme:light;
}
html[data-theme="dark"]{
  --bg:#0e1217;--panel:#161c24;--panel-2:#1f2733;--ink:#f1ede4;--ink-2:#d6d0c4;--mut:#a6aec0;--muted:#a6aec0;
  --line:#394454;--line-soft:#262f3b;--acc:#3dd68c;--accent:#3dd68c;--accent-ink:#062114;--focus:#93c5fd;
  --profit:#3dd68c;--breakeven:#fbbf24;--loss:#ff7a59;
  --chart-bg:#12171e;--chart-grid:rgba(241,237,228,.12);--chart-ref:rgba(241,237,228,.45);--chart-ring:#ffffff;
  --warn-bg:rgba(251,191,36,.14);--warn-ink:#fde68a;--warn-line:rgba(251,191,36,.45);
  --to-top-bg:#161c24;--to-top-fg:#f1ede4;
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  html:not([data-theme]){
    --bg:#0e1217;--panel:#161c24;--panel-2:#1f2733;--ink:#f1ede4;--ink-2:#d6d0c4;--mut:#a6aec0;--muted:#a6aec0;
    --line:#394454;--line-soft:#262f3b;--acc:#3dd68c;--accent:#3dd68c;--accent-ink:#062114;--focus:#93c5fd;
    --profit:#3dd68c;--breakeven:#fbbf24;--loss:#ff7a59;
    --chart-bg:#12171e;--chart-grid:rgba(241,237,228,.12);--chart-ref:rgba(241,237,228,.45);--chart-ring:#ffffff;
    --warn-bg:rgba(251,191,36,.14);--warn-ink:#fde68a;--warn-line:rgba(251,191,36,.45);
    --to-top-bg:#161c24;--to-top-fg:#f1ede4;
    color-scheme:dark;
  }
}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.05rem/1.62 var(--serif);-webkit-font-smoothing:antialiased;overflow-x:clip}
a{color:var(--accent);text-underline-offset:.16em}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;font:600 .9rem/1.2 var(--ui)}
.skip:focus{left:12px;top:8px;z-index:80;background:var(--panel);color:var(--ink);padding:10px 14px;border-radius:8px;border:1px solid var(--line)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Topbar: one slim 44px line */
.topbar{
  position:fixed;top:0;left:0;right:0;z-index:45;
  height:calc(44px + var(--browser-safe-top,env(safe-area-inset-top)));
  padding:var(--browser-safe-top,env(safe-area-inset-top)) 14px 0;
  display:flex;align-items:center;gap:10px;
  font:500 .88rem/1 var(--ui);
  background:var(--bg);border-bottom:1px solid var(--line-soft);
}
.topbar .home{display:inline-flex;align-items:center;gap:7px;color:var(--ink);text-decoration:none;font-family:var(--ui);font-weight:600;white-space:nowrap;flex:none}
.topbar .home svg{width:18px;height:18px;flex:none;border-radius:4px}
.topnav{display:flex;align-items:center;gap:2px;margin-left:6px;overflow-x:auto;scrollbar-width:none;min-width:0}
.topnav::-webkit-scrollbar{display:none}
.topnav a{color:var(--muted);text-decoration:none;padding:8px 9px;border-radius:6px;white-space:nowrap;font-family:var(--ui);font-weight:500}
.topnav a:hover,.topnav a[aria-current]{color:var(--ink)}
.topnav a[aria-current]{background:var(--panel-2)}
.topbar .spacer{flex:1;min-width:4px}
.topbar .chip{display:inline-flex;align-items:center;min-height:30px;padding:4px 10px;border:1px solid var(--line);border-radius:99px;color:var(--ink);text-decoration:none;font-family:var(--ui);font-weight:600;font-size:.82rem;white-space:nowrap;flex:none}
.topbar .chip:hover{border-color:var(--accent);color:var(--accent)}
.icon-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;flex:none;padding:0}
.icon-btn:hover{border-color:var(--accent);color:var(--accent)}
.icon-btn svg{display:block}
.icon-btn svg[hidden]{display:none}
@media (max-width:680px){.topnav{display:none}}

/* Layout */
main{display:block;padding-top:calc(44px + var(--browser-safe-top,env(safe-area-inset-top)))}
.wrap{max-width:44rem;margin:0 auto;padding:0 16px}
.wrap.wide{max-width:72rem}
section.wrap{margin-top:56px}
h1,h2,h3{text-wrap:balance}
h1{font:620 clamp(1.75rem,3.4vw,2.75rem)/1.08 var(--display);letter-spacing:-.018em;margin:0 0 12px;max-width:26ch}
h2{font:600 clamp(1.38rem,2.4vw,1.82rem)/1.18 var(--display);margin:0 0 14px;scroll-margin-top:calc(62px + var(--browser-safe-top,env(safe-area-inset-top)))}
h3{font:600 1.06rem/1.3 var(--ui);margin:24px 0 8px}
section[id],.verdict-card{scroll-margin-top:calc(62px + var(--browser-safe-top,env(safe-area-inset-top)))}
.anchor{margin-left:8px;color:var(--muted);text-decoration:none;font:500 .72em/1 var(--ui);opacity:0;display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px}
h2:hover .anchor,.anchor:focus-visible{opacity:1}
p{margin:0 0 1em}
.kicker{font:600 .76rem/1.3 var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 8px}
.deck{font-size:clamp(1.04rem,1.4vw,1.18rem);line-height:1.52;color:var(--ink-2);margin:0 0 18px;max-width:48ch}
.mono,.num{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* Buttons & Controls */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:9px 16px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:600 .88rem/1.15 var(--ui);text-decoration:none;cursor:pointer}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.primary:hover{filter:brightness(1.06);color:var(--accent-ink)}
.btn.small{min-height:40px;padding:7px 12px;font-size:.83rem}
@media (pointer:coarse){.btn.small{min-height:44px}}
.btn.clear-btn{border-color:var(--loss);color:var(--loss);background:transparent}
.btn.clear-btn:hover{background:color-mix(in srgb,var(--loss) 10%,transparent)}

/* Hero: search + immediate verdict */
.hero{padding-top:24px;padding-bottom:8px}
.hero-grid{display:grid;gap:24px;align-items:start}
@media (min-width:980px){.hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(360px,1fr);gap:28px}}
@media (max-width:979px){html[data-has-caen="1"] .verdict-card{order:-1}}
.hero-copy{min-width:0}

.controls-card{background:var(--panel);border:1px solid var(--line-soft);border-radius:14px;padding:16px;box-shadow:0 2px 10px rgba(0,0,0,.03)}
.search-box{position:relative}
.search-box label{display:block;font:600 .86rem/1.3 var(--ui);color:var(--ink-2);margin:0 0 6px}
.search-row{display:flex;gap:8px;flex-wrap:wrap}
.search-row input{flex:1 1 200px;min-width:0;min-height:46px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:500 .98rem var(--ui);padding:0 13px}
.search-row input::placeholder{color:var(--muted)}
.q-list{position:absolute;z-index:30;left:0;right:0;top:100%;margin:4px 0 0;padding:6px;list-style:none;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.22);max-height:320px;overflow-y:auto}
.q-list li{padding:9px 11px;border-radius:8px;cursor:pointer;font:500 .9rem/1.35 var(--ui);display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.q-list li b{font-family:var(--mono);color:var(--accent);flex:none}
.q-list li .q-name{flex:1;min-width:0}
.q-list li small{color:var(--muted);white-space:nowrap;font-family:var(--mono);font-size:.8rem}
.q-list li:hover,.q-list li[aria-selected="true"]{background:var(--panel-2)}
.q-status{margin:6px 0 0;font:500 .85rem/1.4 var(--ui);color:var(--loss)}
.q-status:empty{display:none}

.filter-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;align-items:flex-end}
.field{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 200px}
.field label{font:600 .78rem/1.2 var(--ui);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.field select{min-height:42px;border-radius:9px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:500 .88rem var(--ui);padding:0 10px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--bg);flex:0 0 auto;width:100%}
.seg button{flex:1;min-height:40px;padding:6px 10px;border:0;background:transparent;color:var(--muted);font:600 .82rem/1.2 var(--ui);cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
@media (pointer:coarse){.seg button{min-height:44px}.field select{min-height:44px}}

.chips-wrap{margin-top:12px}
.chips-lab{display:block;font:600 .78rem/1.3 var(--ui);color:var(--muted);margin:0 0 6px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip-btn{min-height:36px;padding:5px 10px;border-radius:99px;border:1px solid var(--line);background:var(--bg);color:var(--ink-2);font:500 .82rem/1.2 var(--ui);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.chip-btn code{font-family:var(--mono);font-size:.78rem;color:var(--accent);font-weight:600}
.chip-btn:hover,.chip-btn[aria-pressed="true"]{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
@media (pointer:coarse){.chip-btn{min-height:44px;padding:7px 12px}}

/* Immediate Verdict Card */
.verdict-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px 18px 16px;min-width:0;box-shadow:0 4px 18px rgba(0,0,0,.05)}
.v-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.v-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font:600 .78rem/1.2 var(--ui)}
.v-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;background:var(--panel-2);color:var(--ink-2);border:1px solid var(--line-soft)}
.v-badge.caen{font-family:var(--mono);background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}
.v-title{font:620 1.42rem/1.16 var(--display);margin:0 0 6px}
.v-sub{font:500 .88rem/1.4 var(--ui);color:var(--muted);margin:0 0 12px}
.v-warn{background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line);border-radius:10px;padding:10px 12px;font:500 .86rem/1.42 var(--ui);margin:0 0 12px}
.v-warn a{color:inherit;font-weight:600}

.kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 12px}
.kpi{background:var(--bg);border:1px solid var(--line-soft);border-radius:10px;padding:10px 12px}
.kpi-lab{display:block;font:600 .74rem/1.25 var(--ui);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:4px}
.kpi-val{display:block;font:650 1.38rem/1.1 var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}
.kpi-val.pos{color:var(--profit)}.kpi-val.mid{color:var(--breakeven)}.kpi-val.neg{color:var(--loss)}
.kpi-note{display:block;font:500 .78rem/1.3 var(--ui);color:var(--muted);margin-top:3px}

.v-bars{margin:10px 0 12px;padding-top:10px;border-top:1px solid var(--line-soft)}
.v-bars-h{font:600 .76rem/1.3 var(--ui);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 8px}
.surv-row{display:grid;grid-template-columns:56px minmax(0,1fr) 50px;gap:8px;align-items:center;font:500 .84rem/1.3 var(--ui);margin-bottom:5px}
.surv-track{height:9px;background:var(--panel-2);border-radius:99px;overflow:hidden}
.surv-fill{height:100%;background:var(--profit);border-radius:99px}
.surv-val{text-align:right;font-family:var(--mono);font-weight:600}
.v-foot{font:500 .84rem/1.45 var(--ui);color:var(--ink-2);margin:0 0 10px}
.v-counties{margin:10px 0 0;padding-top:10px;border-top:1px solid var(--line-soft);font:500 .84rem/1.4 var(--ui)}
.v-counties summary{cursor:pointer;font-weight:600;color:var(--accent);padding:4px 0}
.v-cty-list{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}
.v-cty-list li{background:var(--bg);border:1px solid var(--line-soft);border-radius:8px;padding:6px 8px;font-size:.8rem}
.v-cty-list button{background:none;border:0;padding:0;color:inherit;font:inherit;text-align:left;cursor:pointer;width:100%}
.v-cty-list button:hover b{color:var(--accent)}

/* Compact quiet share row */
.share{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft);scroll-margin-top:4.75rem}
.share-row{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}
.share-row .lab{font:600 .82rem/1.2 var(--ui);color:var(--muted);margin-inline-end:.25rem}
.share-row a,.share-row button{
  display:inline-grid;place-items:center;flex:none;width:2.5rem;height:2.5rem;padding:0;
  border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink);
  text-decoration:none;cursor:pointer;font:inherit;transition:color .15s,border-color .15s;
}
.share-row a:hover,.share-row button:hover,.share-row a:focus-visible,.share-row button:focus-visible{color:var(--accent);border-color:var(--accent)}
.share-row [hidden]{display:none}
@media (pointer:coarse){.share-row a,.share-row button{width:2.75rem;height:2.75rem}}
@media (max-width:30rem){.share-row .lab{flex-basis:100%;margin:0 0 .15rem}}
.share-status{font:500 .86rem/1.35 var(--ui);color:var(--profit);min-height:1.2em;margin:.4rem 0 0}
.share-status:empty{display:none}
.share-field{display:block;width:100%;max-width:32rem;margin-top:.4rem;font:500 .85rem var(--mono);padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}

/* The One Picture: Canvas Scatter Plot */
.chart-sec{margin-top:42px}
.chart-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px}
.chart-head p{margin:0;max-width:54ch;color:var(--ink-2);font-size:.98rem}
.chart-box{position:relative;background:var(--chart-bg);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.chart-box canvas{display:block;width:100%;height:500px;cursor:crosshair;touch-action:pan-y}
@media (max-width:680px){.chart-box canvas{height:380px}}
.chart-ctl{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:6px;z-index:4}
.cbtn{width:38px;height:38px;border-radius:9px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:600 1.15rem/1 var(--ui);cursor:pointer;display:grid;place-items:center}
.cbtn:hover{border-color:var(--accent);color:var(--accent)}
@media (pointer:coarse){.cbtn{width:44px;height:44px}}
.chart-reset{flex:none}

.tip{position:absolute;z-index:8;pointer-events:none;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:7px 10px;font:500 .82rem/1.35 var(--ui);box-shadow:0 8px 22px rgba(0,0,0,.22);max-width:250px}
.tip strong{display:block;font-weight:600}
.tip small{display:block;color:var(--accent);margin-top:2px;font-size:.76rem}

.pop{position:absolute;z-index:10;width:min(19rem,calc(100% - 16px));background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:0 12px 32px rgba(0,0,0,.28);font:500 .86rem/1.38 var(--ui);animation:popin .14s ease-out}
.pop.sheet{left:8px;right:8px;bottom:8px;top:auto!important;width:auto}
@keyframes popin{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.pop{animation:none}}
.pop h4{margin:0 28px 4px 0;font:600 1rem/1.22 var(--display)}
.pop .pop-code{font-family:var(--mono);font-size:.78rem;color:var(--accent);margin:0 0 6px}
.pop .pop-stats{margin:0 0 10px;color:var(--ink-2)}
.pop .pop-stats b{color:var(--ink);font-family:var(--mono)}
.pop .pop-x{position:absolute;top:4px;right:4px;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:1.35rem;line-height:1;cursor:pointer}
.pop .pop-x:hover{background:var(--panel-2);color:var(--ink)}
.pop .btn{width:100%}

.legend-row{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font:500 .84rem/1.4 var(--ui);color:var(--muted);margin-top:10px}
.leg-item{display:inline-flex;align-items:center;gap:6px}
.leg-dot{width:11px;height:11px;border-radius:50%;display:inline-block}
.leg-dot.p{background:var(--profit)}.leg-dot.m{background:var(--breakeven)}.leg-dot.l{background:var(--loss)}

/* Server-rendered CAEN table */
.tbl-tools{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px;align-items:flex-end}
.tbl-tools .field{flex:1 1 200px}
.tbl-tools input{min-height:42px;border-radius:9px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:500 .88rem var(--ui);padding:0 11px}
.tbl-wrap{overflow-x:auto;border:1px solid var(--line-soft);border-radius:12px;background:var(--panel)}
.caen-table{border-collapse:collapse;width:100%;font:500 .85rem/1.36 var(--ui)}
.caen-table th,.caen-table td{padding:8px 7px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:middle}
.caen-table thead th{background:var(--panel-2);color:var(--ink-2);font-weight:600;line-height:1.25;vertical-align:bottom}
.caen-table th:first-child,.caen-table td:first-child{text-align:center;white-space:nowrap}
.caen-table th:nth-child(2),.caen-table td:nth-child(2){min-width:13.5rem}
.caen-table tbody tr{cursor:pointer}
.caen-table tbody tr:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}
.caen-table tbody tr.is-sel{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.caen-table .n{text-align:center;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.caen-table thead th.n{font-family:var(--ui);white-space:normal;max-width:7.5rem}
.caen-table .code-btn{background:none;border:0;padding:0;font:600 .88rem var(--mono);color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.tbl-more{margin-top:12px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}

/* Editorial PAA sections */
.prose-sec p{color:var(--ink-2)}
.prose-sec strong{color:var(--ink)}
.callout{background:var(--panel);border-left:3px solid var(--accent);border-radius:0 10px 10px 0;padding:12px 16px;margin:16px 0;font:500 .94rem/1.5 var(--ui);color:var(--ink-2)}
.mini-list{padding-left:18px;margin:10px 0 16px}
.mini-list li{margin:0 0 6px;color:var(--ink-2)}
.sources{padding-left:20px;font:500 .9rem/1.5 var(--ui)}.sources li{margin:0 0 8px}
.related{padding-left:20px;font:500 .92rem/1.5 var(--ui)}.related li{margin:0 0 6px}

/* Footer contract */
.site-footer{max-width:72rem;margin:72px auto 0;padding:22px 16px 56px;border-top:1px solid var(--line-soft);display:flex;flex-wrap:wrap;gap:10px 22px;font:500 .86rem/1.5 var(--ui);color:var(--muted)}
.site-footer a{color:var(--muted)}
.site-footer a:hover{color:var(--ink)}

/* Reading rail v2: strictly in the outer gutter beside 72rem widest column */
.rail{display:none}
@media (min-width:1260px){
  .rail{--col:72rem;--gut:1.25rem;display:flex;flex-direction:column;position:fixed;top:50%;left:calc(50% + var(--col)/2 + var(--gut));transform:translateY(-50%);z-index:40;margin:0;padding:.4rem 0;max-height:calc(100vh - 7rem)}
  .rail::before{content:"";position:absolute;left:calc(.875rem - .5px);top:1.1rem;bottom:1.1rem;width:1px;background:var(--line)}
  .rail-dot{position:relative;display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;text-decoration:none;border-radius:50%}
  .rail-dot .dot{width:7px;height:7px;border-radius:50%;background:var(--mut);box-shadow:0 0 0 3px var(--bg);transition:transform .2s,background .2s,box-shadow .2s;flex:none}
  .rail-dot:hover .dot,.rail-dot:focus-visible .dot{background:var(--acc);transform:scale(1.25)}
  .rail-dot[aria-current=true] .dot{background:var(--acc);transform:scale(1.45);box-shadow:0 0 0 3px var(--bg),0 0 0 4.5px color-mix(in srgb,var(--acc) 38%,transparent)}
  .rail-dot:focus-visible{outline:2px solid var(--acc);outline-offset:-1px}
  .rail-label{position:absolute;right:calc(100% + .3rem);top:50%;transform:translate(6px,-50%);padding:.22rem .65rem;border:1px solid var(--line);border-radius:.5rem;background:var(--bg);color:var(--ink);box-shadow:0 6px 20px rgba(0,0,0,.14);font:600 .8rem/1.3 var(--ui);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s}
  .rail-dot:hover .rail-label,.rail-dot:focus-visible .rail-label{opacity:1;transform:translate(0,-50%)}
}
@media (min-width:1460px){
  .rail-label{right:auto;left:calc(100% + .15rem);max-width:calc(50vw - var(--col)/2 - var(--gut) - 3.25rem);overflow:hidden;text-overflow:ellipsis;padding:.1rem .2rem;border-color:transparent;background:transparent;box-shadow:none;color:var(--mut);transform:translate(-4px,-50%)}
  .rail-dot:hover .rail-label,.rail-dot:focus-visible .rail-label{color:var(--acc)}
}
@media (prefers-reduced-motion:reduce){.rail .dot,.rail-label{transition:none}}
@media (forced-colors:active){.rail::before{background:CanvasText}.rail-dot .dot{background:CanvasText;box-shadow:none}.rail-dot[aria-current=true] .dot{background:Highlight}.rail-label{border-color:CanvasText}}
@media print{.topbar,.rail,.controls-card,.chart-ctl,.share{display:none!important}main{padding-top:0}}
