:root{
  --bg:#0b0e13; --panel:#151b23; --panel2:#1b222c; --border:#252d38;
  --text:#e6edf3; --muted:#8b98a5; --accent:#4fd1c5; --accent2:#58a6ff;
  --grid:#232b36; --pos:#4fd1c5; --neg:#f778ba;
  --r1:#58a6ff; --r2:#4fd1c5; --r3:#f0883e; --r4:#bc8cff; --r5:#f7d154;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--text);
  font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
header{padding:18px 16px 8px}
h1{font:500 21px/1.1 var(--serif);margin:0;letter-spacing:-.005em}
h1 .dot{color:var(--accent)}
.card h2{font-family:var(--serif);font-weight:500;letter-spacing:-.01em}
.sub{color:var(--muted);font-size:13px;margin-top:2px}
.status{font-size:12px;color:var(--muted);margin-top:6px}
.status b{color:var(--accent)}
.freshbar{display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px;margin-top:7px}
.fresh-h{text-transform:uppercase;letter-spacing:.08em;font-size:9.5px;color:var(--muted)}
.fresh-chip{font-size:11px;color:var(--muted);border:1px solid var(--line,#26313f);border-radius:999px;padding:1px 8px;white-space:nowrap}
.fresh-chip.stale{color:#e0a45e;border-color:#e0a45e;background:rgba(224,164,94,.09)}

/* analyst clippings — captured external analyses as cards */
.clips{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:4px}
.clip{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--panel,rgba(255,255,255,.02))}
.clip-meta{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}
.clip-title{font-size:14.5px;font-weight:600;line-height:1.35;margin-bottom:6px}
.clip-title a{color:var(--text);text-decoration:none} .clip-title a:hover{color:var(--accent2)}
.clipimg{width:100%;border-radius:8px;border:1px solid var(--line);display:block;margin:6px 0 8px}
.clip-note{font-size:12.5px;line-height:1.5;color:var(--muted);margin:6px 0}
.clip-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.cliptag{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 7px}
.wrap{max-width:900px;margin:0 auto;padding:0 16px 48px}

/* natural-language ask bar */
.askwrap{max-width:900px;margin:0 auto;padding:6px 16px 0}
.firstload-note{font-size:12px;color:var(--muted);line-height:1.5;margin:8px 0 0;
  padding:8px 12px;border:1px solid var(--border);border-left:3px solid var(--accent);
  border-radius:8px;background:rgba(79,209,197,0.06)}
.firstload-note b{color:var(--text)}
.ask{display:flex;gap:8px}
.ask input{
  flex:1 1 auto;background:var(--panel);border:1px solid var(--border);color:var(--text);
  padding:11px 14px;border-radius:10px;font-size:14px;outline:none;transition:.12s;
}
.ask input:focus{border-color:var(--accent2)}
.ask input::placeholder{color:var(--muted)}
.ask button{
  flex:0 0 auto;background:var(--accent2);border:1px solid var(--accent2);color:#04211e;
  padding:0 18px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:.12s;
}
.ask button:hover{filter:brightness(1.08)}

/* ask-box guide: "How to ask" — question types + clickable examples */
.ask-sub{margin-top:6px}
.ask-guide-link{background:none;border:0;padding:0;cursor:pointer;color:var(--muted);
  font-size:12px;font-weight:500}
.ask-guide-link:hover,.ask-guide-link.on{color:var(--accent2)}
.ask-guide-link::before{content:"›";display:inline-block;margin-right:5px;transition:.15s}
.ask-guide-link.on::before{transform:rotate(90deg)}
.askguide{margin-top:10px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;
  background:var(--panel,rgba(255,255,255,.02))}
.ag-lead{font-size:12.5px;color:var(--muted);line-height:1.5;margin:0 0 10px}
.ag-lead b{color:var(--text)}
.ag-cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 20px}
.agc-h{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;
  color:var(--muted);margin-bottom:5px}
.agq{display:inline-block;margin:0 5px 5px 0;padding:3px 9px;border:1px solid var(--line);
  border-radius:999px;background:none;color:var(--text);font-size:11.5px;cursor:pointer;
  text-align:left;transition:.12s}
.agq:hover{border-color:var(--accent2);color:var(--accent2)}

/* Tier-A report generator */
.tool.repgen{margin:2px 0 10px;border-color:var(--accent2);color:var(--accent2)}
.card.report{padding:0}
.rep-tools{display:flex;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}
.rep-doc{padding:20px 26px 30px;max-width:760px;margin:0 auto}
.rep-head{margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--line)}
.rep-head h2{margin:0 0 4px}
.rep-meta{font-size:12px;color:var(--muted);font-family:var(--serif,Georgia,serif)}
.rep-summary{font-size:15px;line-height:1.6;margin:14px 0 22px;padding:14px 16px;
  border-left:3px solid var(--accent2);background:rgba(79,209,197,.06);border-radius:0 8px 8px 0}
.rep-summary.rep-fallback{border-left-color:var(--muted);background:rgba(139,152,165,.06);font-size:13px;color:var(--muted)}
.rep-sec{margin:22px 0;break-inside:avoid}
.rep-sec>h3{margin:0 0 .3em;font-size:1.05rem}
.rep-prose{font-size:14px;line-height:1.62;color:var(--text);margin:.2em 0 .8em}
.rep-foot{margin-top:26px;padding-top:12px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}

/* Tier-B deep analysis / thesis */
#ask-deep{flex:0 0 auto;background:none;border:1px solid var(--line);color:var(--muted);
  padding:0 14px;border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;transition:.12s}
#ask-deep:hover{border-color:var(--accent2);color:var(--accent2)}
.th-disclaimer{font-size:12px;color:var(--muted);line-height:1.5;margin:8px 0 16px;padding:10px 12px;
  border:1px dashed var(--line);border-radius:8px}
.gb{font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:600;padding:1px 6px;
  border-radius:999px;vertical-align:middle;margin-left:6px;white-space:nowrap}
.gb-data{color:var(--accent2);border:1px solid var(--accent2);background:rgba(79,209,197,.08)}
.gb-an{color:var(--muted);border:1px solid var(--line)}
.th-sec{margin:16px 0;break-inside:avoid}
.th-sec>h3{font-size:1.02rem;margin:0 0 .3em}
.th-evh{margin-top:26px;padding-top:10px;border-top:1px solid var(--line)}
.th-evlabel{font-size:.92rem;margin:0 0 .3em;color:var(--muted)}
.th-caveats{margin-top:20px;font-size:12.5px;color:var(--muted);line-height:1.55;
  padding:12px 14px;background:rgba(139,152,165,.06);border-radius:8px}

@media print{
  .th-disclaimer,.th-caveats,.th-evlabel,.report h4{color:#16202b !important}
  .th-caveats{background:#f4f6f8 !important}
  header,.askwrap,#views,.no-print,body>footer,.card-tools{display:none !important}
  body{background:#fff !important}
  main.wrap,#panel{margin:0;padding:0;max-width:none}
  .card.report{background:#fff;border:0;box-shadow:none}
  .rep-doc{max-width:none;padding:0}
  .report,.report h2,.report h3,.rep-prose,.rep-summary,.rep-meta,.rep-foot{color:#16202b !important}
  .rep-summary{background:#f2fbfa !important}
  .rep-sec{break-inside:avoid;page-break-inside:avoid}
  .chart svg text,.axis-t,.barlbl,.barval{fill:#16202b !important}
  .gridline{stroke:#dde3e9 !important}
}

/* ===== navigation: flagships → question-modes → tabs → cards (Tier-3 Phase 1) ===== */
/* question-mode tints (desaturated, editorial) — colour encodes the mode, not decoration */
:root{
  --now:#6ea8fe; --why:#e0a45e; --ahead:#54cdbf; --build:#a992e8; --news:#e07a9e; --ref:#93a0b0;
  --now-bg:rgba(110,168,254,.06); --why-bg:rgba(224,164,94,.07); --ahead-bg:rgba(84,205,191,.06);
  --build-bg:rgba(169,146,232,.07); --news-bg:rgba(224,122,158,.07); --ref-bg:rgba(147,160,176,.05);
  --serif:ui-serif,Georgia,"Times New Roman",serif;
}
.views{max-width:900px;margin:0 auto;padding:8px 16px 2px}
.feat-h,.nav-h{font:500 10.5px/1 -apple-system,system-ui,sans-serif;letter-spacing:.15em;
  text-transform:uppercase;color:var(--muted);opacity:.75;margin:6px 2px 9px}
.nav-h{margin-top:18px}
.feat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.hero{text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:12px;
  padding:14px 16px;cursor:pointer;position:relative;overflow:hidden;transition:.14s}
.hero:hover{border-color:var(--border);transform:translateY(-1px)}
.hero::after{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,var(--accent),transparent)}
.hero.on{border-color:var(--accent)}
.hero h3{font:500 15px/1.2 var(--serif);margin:0;color:var(--text)}
.bands{display:flex;flex-direction:column;gap:8px}
.band{border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:var(--tbg)}
.band-h{display:flex;align-items:baseline;gap:9px;margin-bottom:9px}
.band-h .bdot{width:7px;height:7px;border-radius:50%;background:var(--t);align-self:center}
.band-h .bm{font:500 10.5px/1 -apple-system,system-ui,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--t)}
.band-h .bq{font:italic 400 12.5px/1 var(--serif);color:var(--muted)}
.tabs{display:flex;flex-wrap:wrap;gap:7px}
.tab{background:var(--panel);border:1px solid var(--border);color:var(--text);font-size:13px;
  padding:7px 13px;border-radius:9px;cursor:pointer;transition:.12s;display:flex;gap:8px;align-items:center}
.tab:hover{border-color:var(--t)}
.tab.on{background:var(--t);border-color:var(--t);color:#0c0f14;font-weight:600}
.tab .tn{font:600 10px/1.5 var(--mono,ui-monospace);opacity:.7}
/* the card grid for a chosen tab */
.cards-wrap{margin-top:2px}
.cards-h{display:flex;align-items:center;gap:9px;margin:4px 2px 13px}
.cards-h .cbar{width:3px;height:15px;border-radius:2px;background:var(--t)}
.cards-h h2{font:600 15px/1 -apple-system,system-ui,sans-serif;margin:0}
.cards-h .cc{font:600 11px/1 var(--mono,ui-monospace);color:var(--muted);margin-left:auto}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:11px}
.vcard{text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:12px;
  padding:14px 15px;cursor:pointer;transition:.14s;position:relative;overflow:hidden}
.vcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--t);opacity:.7}
.vcard:hover{border-color:var(--t);transform:translateY(-2px);box-shadow:0 6px 22px -14px rgba(0,0,0,.55)}
.vcard .vt{font-size:13.5px;font-weight:600;line-height:1.34;color:var(--text)}

/* card toolbar (download) + source line */
.card{position:relative}
.card-tools{position:absolute;top:14px;right:14px;display:flex;gap:6px;z-index:2}
.tool{background:var(--panel2);border:1px solid var(--border);color:var(--muted);
  font-size:11.5px;padding:4px 9px;border-radius:7px;cursor:pointer;transition:.12s;font-weight:600}
.tool:hover{border-color:var(--accent);color:var(--text)}
.src{color:var(--muted);font-size:11px;margin-top:12px;padding-top:8px;border-top:1px dashed var(--border)}
.tool.on{background:var(--accent);color:#04211e;border-color:var(--accent)}

/* parameterised views (Region / Period selectors) */
.params{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 2px}
.pctl{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}
.pctl span{font:600 9.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.pctl select{background:var(--panel2);border:1px solid var(--border);color:var(--text);
  font-size:12.5px;padding:6px 9px;border-radius:8px;cursor:pointer}
.pctl select:focus{border-color:var(--accent2);outline:none}

/* Explain panel + glossary tooltips */
.explain{margin:12px 0 2px;border-left:2px solid var(--accent);background:rgba(79,209,197,.06);
  border-radius:8px;padding:12px 15px;font-size:13px}
.explain h4{margin:0 0 3px;font:600 9.5px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}
.explain h4:not(:first-child){margin-top:12px}
.explain p{margin:0;color:var(--muted)}
.explain i{color:var(--text)} .explain b{color:var(--text)}
abbr{text-decoration:underline dotted;text-underline-offset:2px;cursor:help;color:var(--text)}

/* Phase 4 — the news JOIN (editorial beside the chart) */
.newsjoin{margin-top:16px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);padding:12px 14px}
.nj-h{font:600 9.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--news,#e07a9e);margin-bottom:9px}
.nj-item{display:flex;flex-direction:column;gap:2px;padding:7px 0;text-decoration:none;border-top:1px solid var(--border)}
.nj-item:first-of-type{border-top:none}
.nj-t{color:var(--text);font-size:13px;line-height:1.35}
.nj-item:hover .nj-t{color:var(--news,#e07a9e)}
.nj-m{color:var(--muted);font-size:11px}

/* Phase 5 — explore chips */
.extends{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:14px}
.ex-h{font:600 9.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.exchip{background:var(--panel2);border:1px solid var(--border2,#313b48);color:var(--text);font-size:12px;
  padding:6px 12px;border-radius:999px;cursor:pointer;transition:.12s}
.exchip:hover{border-color:var(--accent2);color:var(--accent2)}

/* Phase 5 proper — spec re-slice chips (deterministic, toggle-able) */
.reslice{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:12px 0 2px}
.rschip{background:var(--panel2);border:1px solid var(--border);color:var(--text);font-size:12px;
  padding:6px 12px;border-radius:8px;cursor:pointer;transition:.12s}
.rschip:hover{border-color:var(--accent)}
.rschip.on{background:var(--accent);border-color:var(--accent);color:#04211e;font-weight:600}

/* Phase 6 — board card subtitle */
.vcard .vsub{display:block;margin-top:5px;font:600 10.5px/1 var(--mono);color:var(--muted)}

/* interactive tables */
.dtable-wrap{margin-top:4px}
.tcount{color:var(--muted);font-size:11px;margin:0 0 6px}
th.sortable{cursor:pointer;user-select:none;white-space:nowrap}
th.sortable:hover{color:var(--text)}
.sarrow{color:var(--accent);font-size:10px;margin-left:3px}
/* heatmap colour legend */
.hlegend{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:11px;color:var(--muted)}
.hlegend i{flex:1 1 auto;height:9px;border-radius:3px;max-width:220px;border:1px solid var(--border)}

.tmore{margin-top:10px}
.lbtn{background:var(--panel2);border:1px solid var(--border);color:var(--text);
  font-size:12px;padding:6px 12px;border-radius:8px;cursor:pointer}
.lbtn:hover{border-color:var(--accent)}

/* card */
.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px;margin-top:12px}
.card h2{font-size:17px;margin:0 0 2px}
.card .desc{color:var(--muted);font-size:13px;margin-bottom:14px}
.chart{width:100%;overflow-x:auto}
svg{display:block;max-width:100%}
.axis{stroke:var(--grid);stroke-width:1}
.axis-t{fill:var(--muted);font-size:11px}
.gridline{stroke:var(--grid);stroke-width:1;stroke-dasharray:3 4}
.barlbl{fill:var(--text);font-size:12px}
.barval{fill:var(--muted);font-size:11px}

/* stat tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.tile{background:var(--panel2);border:1px solid var(--border);border-radius:12px;padding:14px}
.tile .v{font-size:24px;font-weight:700}
.tile .k{color:var(--muted);font-size:12px;margin-top:2px}

/* table */
table{width:100%;border-collapse:collapse;font-size:13px}
.live-head{font-size:13px;color:var(--muted);margin:2px 0 10px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.live-dot{width:8px;height:8px;border-radius:50%;background:#56d364;animation:livepulse 2s infinite}
@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(86,211,100,.6)}70%{box-shadow:0 0 0 7px rgba(86,211,100,0)}100%{box-shadow:0 0 0 0 rgba(86,211,100,0)}}
/* NEMDE Phase 2 — on-demand what-if form */
.wf-form{display:flex;flex-direction:column;gap:10px;margin:12px 0 4px}
.wf-row{display:flex;flex-direction:column;gap:4px}
.wf-row span{font-size:12px;color:var(--muted)}
.wf-lever{font-size:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel2,rgba(127,127,127,.05))}
.wf-lever b{color:var(--text)}
.wf-in{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 9px;font-size:14px;font-family:inherit}
.wf-in:focus{outline:2px solid var(--accent,#4fa3ff);outline-offset:-1px}
.wf-sm{width:130px}
#wf-at{width:220px}
.wf-badge{display:inline-block;font-size:12px;padding:3px 9px;border-radius:999px;background:rgba(247,89,74,.14);color:#f7594a;font-weight:600}
.wf-badge.ok{background:rgba(86,211,100,.14);color:#56d364}
.wf-result{margin-top:10px}
.wf-note{font-size:12.5px;color:var(--muted);border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--panel2,rgba(127,127,127,.05))}
.wf-note b{color:var(--text)}
.wf-note ul{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
/* ── Living dossiers — the analysis layer ─────────────────────────────────── */
.dossier{max-width:820px}
.dossier-head{border-bottom:1px solid var(--border);padding-bottom:14px;margin-bottom:6px}
.dossier-kicker{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent,#4fa3ff);margin-bottom:6px}
.dossier-head h2{font-size:30px;line-height:1.15;letter-spacing:-.01em;margin:0 0 8px}
.dossier-sub{font-size:16px;line-height:1.5;color:var(--muted)}
.dossier-sub p{margin:0}
.as-at{font-size:12px;color:var(--muted);margin-top:10px;display:flex;align-items:center;gap:6px}
.dossier .prose{max-width:66ch;font-size:15.5px;line-height:1.68;margin:18px 0}
.dossier .prose h3{font-size:20px;line-height:1.25;letter-spacing:-.01em;margin:30px 0 10px}
.dossier .prose h4{font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:22px 0 6px}
.dossier .prose p{margin:0 0 14px}
.dossier .prose strong{color:var(--text);font-weight:650}
.dossier .prose ul{margin:0 0 14px;padding-left:20px;display:flex;flex-direction:column;gap:7px}
.dossier .prose a{color:var(--accent,#4fa3ff);text-decoration:underline;text-underline-offset:2px}
.dossier .prose blockquote{margin:20px 0;padding:4px 0 4px 18px;border-left:3px solid var(--accent,#4fa3ff);font-size:19px;line-height:1.4;color:var(--text);font-weight:500}
.dossier .callout{max-width:66ch;border:1px solid var(--border);border-left:3px solid var(--muted);border-radius:8px;padding:12px 14px;margin:18px 0;font-size:14.5px;line-height:1.6;background:var(--panel2,rgba(127,127,127,.05))}
.dossier .callout p{margin:0 0 8px}
.dossier .callout p:last-child{margin:0}
.dossier .callout-tag{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}
.dossier .callout.thesis{border-left-color:#4fa3ff}.dossier .callout.thesis .callout-tag{color:#4fa3ff}
.dossier .callout.watch{border-left-color:#e3b341}.dossier .callout.watch .callout-tag{color:#e3b341}
.dossier .callout.caveat{border-left-color:#f7594a}.dossier .callout.caveat .callout-tag{color:#f7594a}
.dossier .digest-section{margin:22px 0 6px}
.dossier .digest-section h3{font-size:15px;letter-spacing:-.01em;margin:0 0 4px}
.dossier .src{font-size:11.5px;color:var(--muted);margin:2px 0 18px;font-style:italic}
.dtabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--border);margin:6px 0 4px}
.dtab{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);font:inherit;font-size:14px;font-weight:600;padding:8px 12px;cursor:pointer;margin-bottom:-1px}
.dtab:hover{color:var(--text)}
.dtab.on{color:var(--accent,#4fa3ff);border-bottom-color:var(--accent,#4fa3ff)}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}
th{color:var(--muted);font-weight:600;position:sticky;top:0;background:var(--panel)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}

/* legend + sql */
.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:12px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:5px}
.legend i{width:10px;height:10px;border-radius:2px;display:inline-block}
details{margin-top:14px}
summary{color:var(--muted);font-size:12px;cursor:pointer}
pre{background:#0c1016;border:1px solid var(--border);border-radius:8px;padding:12px;overflow-x:auto;
    font-size:12px;color:#c9d4e0;margin:8px 0 0}
.err{color:var(--neg);font-size:13px;white-space:pre-wrap}
.loading{color:var(--muted);font-size:13px;padding:20px 0}
footer{color:var(--muted);font-size:11px;text-align:center;padding:24px 16px}

/* bundled digest layout: stacked sections, each with its own renderer */
.card.digest .digest-section { margin-top: 1.6rem; padding-top: 1.2rem; border-top: 1px solid var(--line, #26313f); }
.card.digest .digest-section:first-of-type { margin-top: 1rem; }
.card.digest .digest-section > h3 { margin: 0 0 .5rem; font-size: 1.02rem; font-weight: 650; color: var(--fg, #e8ecf1); letter-spacing: -.01em; }
.card.digest .digest-section > .desc { margin: -.2rem 0 .7rem; }

/* ── entity-card polish: tabs + the data-computed "In brief" thesis lead ── */
.card.digest .prose { max-width: 72ch; font-size: 14.5px; line-height: 1.62; color: var(--muted); margin: 4px 0 10px; }
.card.digest .prose strong { color: var(--text); font-weight: 650; }
.card.digest .prose.card-lead { font-size: 16px; line-height: 1.55; color: var(--text);
  border-left: 3px solid var(--accent); padding: 3px 0 3px 14px; max-width: 74ch; font-weight: 450; }
/* tabbed cards: the "In brief" section (first in the Overview panel) reads as a lead, not a boxed section */
.card.digest .dtab-panel { padding-top: 4px; }
.card.digest .dtab-panel > .digest-section:first-child { border-top: none; margin-top: .6rem; padding-top: 0; }
.card.digest .dtab-panel > .digest-section:first-child > h3:only-of-type + .card-lead,
.card.digest .digest-section > .card-lead { margin-top: 2px; }
/* subtle confidence/status pill look for short status-ish stat tiles is handled in the renderer;
   here just give the tab bar a touch more presence on entity cards */
.card.digest .dtabs { margin: 10px 0 8px; }

/* status / confidence badges (Aures-style pills) */
.badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 12px; }
.badge { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600;
  padding: 3px 9px; border-radius: 999px; border: 1px solid var(--border); background: var(--panel2); color: var(--text); }
.badge-k { font-size: 9px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); font-weight: 600; }
.badge.b-good { border-color: #1f7a4d; background: #12271d; color: #4fd1a0; }
.badge.b-info { border-color: #2b5a8a; background: #122033; color: #7db8f0; }
.badge.b-warn { border-color: #8a6a1a; background: #28210f; color: #e0b048; }
.badge.b-bad  { border-color: #8a3030; background: #2a1414; color: #e88a8a; }
.badge.b-good .badge-k, .badge.b-info .badge-k, .badge.b-warn .badge-k, .badge.b-bad .badge-k { color: inherit; opacity: .7; }

/* data-health: alert callout + year-to-date coverage strip */
.alert { border: 1px solid var(--border); border-left-width: 4px; border-radius: 6px; padding: 10px 12px; margin: 10px 0; font-size: 13px; line-height: 1.5; }
.alert-good { border-left-color: #1f7a4d; background: #10201880; color: #bfe6d2; }
.alert-warn { border-left-color: #8a6a1a; background: #241d0d80; color: #ecd7a4; }
.alert-bad  { border-left-color: #8a3030; background: #24121280; color: #f0b6b6; }
.health-h { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); margin: 16px 0 6px; font-weight: 700; }
.cov-strip { display: flex; flex-wrap: wrap; gap: 5px; }
.cov-cell { flex: 1 1 44px; min-width: 44px; text-align: center; font-size: 10px; color: var(--muted); border: 1px solid var(--border); border-radius: 5px; padding: 5px 2px; }
.cov-cell b { display: block; font-size: 15px; font-weight: 700; color: var(--text); margin-top: 1px; }
.cov-full { border-color: #1f7a4d; background: #12271d; } .cov-full b { color: #4fd1a0; }
.cov-part { border-color: #8a6a1a; background: #28210f; } .cov-part b { color: #e0b048; }
.cov-gap  { border-color: #8a3030; background: #2a1414; } .cov-gap b { color: #e88a8a; }
.cov-cur  { border-color: #2b5a8a; background: #122033; } .cov-cur b { color: #7db8f0; }

/* mirror chart peak annotations */
.mirror-ann { font-size: 12px; font-weight: 700; }

/* dated vertical timeline (dots down a rail) */
.timeline { list-style: none; margin: 8px 0; padding: 0; position: relative; }
.timeline::before { content: ""; position: absolute; left: 5px; top: 5px; bottom: 6px; width: 2px; background: var(--border); }
.tl-item { position: relative; padding: 0 0 16px 22px; }
.tl-item:last-child { padding-bottom: 2px; }
.tl-dot { position: absolute; left: 0; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: var(--accent); border: 2px solid var(--bg); }
.tl-when { font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); margin-bottom: 1px; }
.tl-what { font-size: 14px; font-weight: 600; color: var(--text); line-height: 1.35; }
.tl-detail { font-size: 12.5px; color: var(--muted); line-height: 1.5; margin-top: 2px; }

/* Notable now — the automated top-5 analyst surface */
.notable-item { margin-top: 1.5rem; padding-top: 1.2rem; border-top: 1px solid var(--line, #26313f); }
.notable-item:first-of-type { margin-top: .8rem; }
.nt-head { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: .7rem .8rem; margin-bottom: .7rem; }
.nt-rank { grid-row: 1 / span 2; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
  font: 600 15px/1 var(--serif, Georgia, serif); color: #0b0f14; background: var(--now, #6ea8fe); }
.nt-hl > h3 { margin: .1rem 0 .2rem; font-size: 1.06rem; font-weight: 650; letter-spacing: -.01em; color: var(--fg, #e8ecf1); }
.nt-why { color: var(--muted); font-size: 12.5px; line-height: 1.45; }
.nt-heat { grid-column: 2; height: 4px; border-radius: 3px; background: var(--line, #26313f); overflow: hidden; }
.nt-heat > span { display: block; height: 100%; background: linear-gradient(90deg, var(--ahead, #54cdbf), var(--now, #6ea8fe)); }
.nt-more { margin-top: .55rem; background: none; border: 0; padding: 0; cursor: pointer;
  color: var(--now, #6ea8fe); font-size: 12.5px; font-weight: 550; }
.nt-more:hover { text-decoration: underline; }

/* Scenario tool — the compounding-loop forward model */
.scn-dials { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px 20px; margin: 6px 0 18px; }
.scn-dial { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 10px; }
.scn-dial > span { grid-column: 1 / -1; font-size: 12.5px; color: var(--muted); }
.scn-dial input[type=range] { width: 100%; accent-color: var(--accent); }
.scn-dial output { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--accent); min-width: 52px; text-align: right; }
.scn-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 12px; margin-bottom: 16px; }
.scn-stat { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: var(--panel, rgba(255,255,255,.02)); }
.scn-stat-v { font-size: 1.5rem; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.scn-stat-l { font-size: 12px; color: var(--muted); margin-top: 2px; }
.scn-stat-s { font-size: 11px; color: var(--muted); opacity: .8; margin-top: 1px; }
.scn-chart { margin: 8px 0 16px; }
.scn-cols { display: flex; gap: 34px; align-items: flex-end; padding: 6px 4px; }
.scn-col { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.scn-col-l { font-size: 12px; color: var(--muted); text-align: center; line-height: 1.35; }
.scn-col-l b { display: block; color: var(--text); font-variant-numeric: tabular-nums; }
.scn-assume { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 10px; }
.scn-assume summary { cursor: pointer; font-size: 12.5px; color: var(--accent2); font-weight: 550; }
