/* ==========================================================================
   MV Barima — public research site
   Palette: dataviz reference instance (validated light + selected dark steps)
   ========================================================================== */

:root {
  color-scheme: light;
  --surface:#fcfcfb; --page:#f9f9f7; --raise:#ffffff;
  --ink:#0b0b0b; --ink2:#52514e; --muted:#898781;
  --grid:#e1e0d9; --axis:#c3c2b7;
  --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a; --s1l:#86b6ef;
  --critical:#d03b3b; --alarm-bg:#fdf4f2;
  --border:rgba(11,11,11,0.10);
  --shadow:0 1px 2px rgba(11,11,11,0.04), 0 8px 24px rgba(11,11,11,0.04);
  --maxw:1180px; --readw:74ch;
}
/* Light is the default in every case. Dark applies only when the reader opts in
   via the toggle (data-theme="dark"); the OS preference is deliberately not
   followed, so the published default is stable for every visitor. */
:root[data-theme="dark"] {
  color-scheme: dark;
  --surface:#1a1a19; --page:#0d0d0d; --raise:#232322;
  --ink:#ffffff; --ink2:#c3c2b7; --muted:#898781;
  --grid:#2c2c2a; --axis:#383835;
  --s1:#3987e5; --s2:#d95926; --s3:#199e70; --s1l:#1c5cab;
  --critical:#d03b3b; --alarm-bg:#2a1c1a;
  --border:rgba(255,255,255,0.10);
  --shadow:none;
}

*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body {
  margin:0; background:var(--page); color:var(--ink);
  font-family:system-ui,-apple-system,"Segoe UI","Helvetica Neue",sans-serif;
  font-size:16px; line-height:1.6;
}
img,svg { max-width:100%; }
a { color:var(--s1); text-decoration:none; text-underline-offset:2px; }
a:hover { text-decoration:underline; }
:focus-visible { outline:2px solid var(--s1); outline-offset:2px; border-radius:2px; }
.skip { position:absolute; left:-9999px; }
.skip:focus { left:8px; top:8px; z-index:100; background:var(--raise); padding:8px 14px;
              border:1px solid var(--border); border-radius:4px; }

/* ---------- header / nav ---------- */
.topbar { position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--page) 92%, transparent);
          backdrop-filter:saturate(180%) blur(10px); border-bottom:1px solid var(--border); }
.topbar-in { max-width:var(--maxw); margin:0 auto; padding:10px 20px;
             display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.brand { font-weight:700; letter-spacing:-0.3px; font-size:17px; color:var(--ink); flex:none; }
.brand span { color:var(--muted); font-weight:500; }
nav.main { display:flex; gap:4px; flex-wrap:wrap; margin-left:auto; }
nav.main a { font-size:14px; font-weight:560; color:var(--ink2); padding:5px 10px; border-radius:5px; }
nav.main a:hover { background:var(--surface); text-decoration:none; color:var(--ink); }
nav.main a[aria-current="page"] { background:var(--surface); color:var(--ink); box-shadow:inset 0 -2px 0 var(--s1); }
.themebtn { font:inherit; font-size:13px; cursor:pointer; background:var(--surface); color:var(--ink2);
            border:1px solid var(--border); border-radius:5px; padding:5px 10px; }
.themebtn:hover { color:var(--ink); }

/* ---------- layout ---------- */
main { max-width:var(--maxw); margin:0 auto; padding:0 20px 72px; }
.wrap-read { max-width:var(--readw); }
section { margin-top:44px; }
.card { background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:22px 24px; }
.grid { display:grid; gap:16px; }
.g2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.g3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.g5 { grid-template-columns:repeat(5,minmax(0,1fr)); }
@media (max-width:900px){ .g2,.g3,.g5 { grid-template-columns:1fr; } }

/* ---------- type ---------- */
h1 { font-size:clamp(30px,4.6vw,50px); line-height:1.04; letter-spacing:-1.1px; font-weight:700; margin:0 0 14px; }
h2 { font-size:clamp(21px,2.5vw,27px); line-height:1.2; letter-spacing:-0.5px; font-weight:680; margin:0 0 10px; }
h3 { font-size:18px; line-height:1.3; font-weight:660; margin:24px 0 8px; }
h4 { font-size:15px; font-weight:660; margin:18px 0 6px; }
p { margin:0 0 14px; }
.eyebrow { font-size:12.5px; letter-spacing:0.11em; text-transform:uppercase; font-weight:660; color:var(--ink2); margin:0 0 10px; }
.lede { font-size:clamp(17px,2vw,20px); line-height:1.5; color:var(--ink); }
.small { font-size:14px; }
.muted { color:var(--ink2); }
.tiny { font-size:13px; color:var(--muted); line-height:1.5; }
strong,b { font-weight:660; }
blockquote { margin:16px 0; padding:2px 0 2px 18px; border-left:3px solid var(--s2);
             font-size:17px; line-height:1.5; }
blockquote cite { display:block; margin-top:6px; font-size:13.5px; font-style:normal; color:var(--ink2); }
hr { border:0; border-top:1px solid var(--border); margin:32px 0; }
code { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:0.9em;
       background:var(--surface); border:1px solid var(--border); border-radius:3px; padding:1px 5px; }

/* prose from markdown */
.prose h2 { margin-top:40px; padding-bottom:8px; border-bottom:1px solid var(--border); }
.prose h3 { margin-top:28px; }
.prose ul,.prose ol { margin:0 0 16px; padding-left:22px; }
.prose li { margin-bottom:6px; }
.prose table { margin:18px 0 24px; }
.prose blockquote { background:var(--alarm-bg); border-left-color:var(--critical);
                    padding:12px 16px; border-radius:0 4px 4px 0; font-size:15px; }
.prose > p:first-child { font-size:17px; color:var(--ink2); }

/* ---------- badges ---------- */
.badge { display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:660;
         letter-spacing:0.03em; padding:3px 8px; border-radius:4px; border:1px solid var(--border);
         color:var(--ink2); background:var(--surface); white-space:nowrap; }
.badge.contested { color:var(--critical); border-color:color-mix(in srgb,var(--critical) 35%,transparent);
                   background:var(--alarm-bg); }
.badge.official { box-shadow:inset 2px 0 0 var(--s1); }
.badge.press { box-shadow:inset 2px 0 0 var(--s2); }
.badge.context { box-shadow:inset 2px 0 0 var(--s3); }
.badge.analysis { box-shadow:inset 2px 0 0 var(--s3); }
.badgerow { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }

/* ---------- callouts ---------- */
.note { border:1px solid var(--border); border-left:3px solid var(--s1); background:var(--surface);
        border-radius:0 6px 6px 0; padding:14px 18px; font-size:15px; }
.note.warn { border-left-color:var(--critical); background:var(--alarm-bg); }
.note.analysis { border-left-color:var(--s3); }
.note h4 { margin:0 0 6px; }
.note p:last-child { margin-bottom:0; }

/* ---------- stat tiles ---------- */
.tile { background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:16px 18px; }
.tile.alarm { background:var(--alarm-bg); }
.tile .v { font-size:40px; line-height:0.95; font-weight:700; letter-spacing:-1.6px; }
.tile .l { font-size:14px; font-weight:600; color:var(--ink2); margin-top:8px; line-height:1.35; }
.tile .n { font-size:12.5px; color:var(--muted); margin-top:5px; line-height:1.4; }

/* ---------- charts ---------- */
.chart { position:relative; }
.chart svg { display:block; width:100%; height:auto; overflow:visible; }
.chart .hit { fill:transparent; cursor:crosshair; }
.chart .mark { transition:opacity .12s ease; }
.chart .mark.dim { opacity:.45; }
.crosshair { stroke:var(--axis); stroke-width:1; opacity:0; }
.tip { position:absolute; z-index:20; pointer-events:none; opacity:0; transform:translate(-50%,-100%);
       background:var(--raise); border:1px solid var(--border); border-radius:6px; box-shadow:var(--shadow);
       padding:9px 11px; font-size:13px; min-width:132px; transition:opacity .1s ease; }
.tip .tt { font-weight:660; font-size:12px; color:var(--ink2); margin-bottom:5px; }
.tip .trow { display:flex; align-items:center; gap:7px; margin-top:3px; }
.tip .tk { width:12px; height:2.5px; border-radius:1.5px; flex:none; }
.tip .tv { font-weight:680; font-variant-numeric:tabular-nums; }
.tip .tn { color:var(--ink2); font-size:12.5px; }
.legend { display:flex; gap:18px; flex-wrap:wrap; align-items:center; margin-top:12px; }
.lg { display:flex; gap:7px; align-items:center; font-size:13px; color:var(--ink2); font-weight:560; }
.lgk { width:14px; height:3px; border-radius:1.5px; flex:none; }
.lgk.dot { width:9px; height:9px; border-radius:50%; }
details.tableview { margin-top:14px; }
details.tableview summary { font-size:13px; font-weight:600; color:var(--ink2); cursor:pointer; }
details.tableview summary:hover { color:var(--ink); }

/* ---------- tables ---------- */
table { border-collapse:collapse; width:100%; font-size:14px; }
caption { text-align:left; font-size:13px; color:var(--muted); padding-bottom:8px; }
th { text-align:left; font-weight:660; color:var(--ink2); border-bottom:1px solid var(--axis);
     padding:8px 12px 8px 0; vertical-align:bottom; }
td { padding:7px 12px 7px 0; border-bottom:1px solid var(--grid); color:var(--ink2); vertical-align:top; }
td strong { color:var(--ink); }
th.n,td.n { text-align:right; font-variant-numeric:tabular-nums; }
.scrollx { overflow-x:auto; }

/* ---------- timeline (the night) ---------- */
.steps { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:0; margin-top:26px; }
@media (max-width:900px){ .steps { grid-template-columns:1fr; gap:18px; } }
.step { position:relative; padding-right:16px; }
.step::before { content:""; position:absolute; left:0; top:-16px; width:100%; height:2px; background:var(--grid); }
.step::after { content:""; position:absolute; left:0; top:-22px; width:12px; height:12px; border-radius:50%;
               background:var(--surface); border:2.5px solid var(--s1); }
.step.hot::before { background:var(--s2); }
.step.hot::after { border-color:var(--s2); }
@media (max-width:900px){ .step::before{ display:none; } .step::after{ top:2px; } .step { padding-left:24px; } }
.step .t { font-size:19px; font-weight:700; letter-spacing:-0.5px; }
.step .d { font-size:13.5px; color:var(--ink2); line-height:1.42; margin-top:4px; }

/* ---------- fuse ---------- */
.fuse { position:relative; margin-top:26px; }
.fuse .spine { position:absolute; left:0; right:0; top:0; height:2px; background:var(--axis); }
.fuserow { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:14px; }
@media (max-width:1000px){ .fuserow { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
                           .fuse .spine { display:none; } }
@media (max-width:620px){ .fuserow { grid-template-columns:1fr; } }
.fev { position:relative; padding-top:22px; }
.fev::before { content:""; position:absolute; left:0; top:-5px; width:12px; height:12px; border-radius:50%;
               background:var(--surface); border:2.5px solid var(--muted); }
.fev.warn::before { border-color:var(--s2); background:var(--s2); }
.fev.money::before { border-color:var(--s1); background:var(--s1); }
.fev.dead::before { border-color:var(--ink); background:var(--ink); }
@media (max-width:1000px){ .fev::before { top:0; } .fev { padding-top:26px; } }
.fev .y { font-size:16px; font-weight:700; letter-spacing:-0.3px; }
.fev .x { font-size:13px; color:var(--ink2); line-height:1.42; margin-top:4px; }

/* ---------- chain ---------- */
.chain { display:grid; grid-template-columns:1fr 1fr; gap:0 32px; margin-top:8px; }
@media (max-width:820px){ .chain { grid-template-columns:1fr; gap:0; } .chain .chdr:nth-of-type(2){ margin-top:28px; } }
.chdr { font-size:12px; letter-spacing:0.1em; text-transform:uppercase; font-weight:660; color:var(--ink2);
        padding-bottom:8px; border-bottom:1px solid var(--axis); }
.lnk,.fix { display:flex; gap:12px; padding:14px 0; border-bottom:1px solid var(--grid); }
.num { flex:none; width:20px; height:20px; border-radius:50%; background:var(--s2); color:#fff;
       font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.num.fixn { background:var(--s3); }
.lnk .tx,.fix .tx { font-size:14.5px; line-height:1.48; color:var(--ink2); }
.lnk .tx b,.fix .tx b { color:var(--ink); }

/* ---------- tracks ---------- */
.card.tr { border-top:4px solid var(--s3); padding-top:14px; }
.card.tr h3 { margin:0 0 6px; font-size:17px; }
.card.tr p { font-size:14.5px; color:var(--ink2); margin:0; line-height:1.5; }

/* ---------- source browser ---------- */
.filters { display:flex; gap:12px; flex-wrap:wrap; align-items:flex-end;
           padding:16px 18px; background:var(--surface); border:1px solid var(--border); border-radius:8px; }
.fgroup { display:flex; flex-direction:column; gap:5px; }
.fgroup label { font-size:12px; font-weight:600; color:var(--ink2); letter-spacing:0.02em; }
.fgroup input,.fgroup select { font:inherit; font-size:14px; color:var(--ink); background:var(--raise);
    border:1px solid var(--border); border-radius:5px; padding:7px 10px; min-width:150px; }
.fgroup input[type=search] { min-width:260px; }
.fcount { font-size:13.5px; color:var(--ink2); margin-left:auto; padding-bottom:8px; }
.fclear { font:inherit; font-size:13px; cursor:pointer; background:none; border:0; color:var(--s1);
          padding:8px 0; text-decoration:underline; }
.srclist { margin-top:18px; display:grid; gap:10px; }
.src { display:block; background:var(--surface); border:1px solid var(--border); border-radius:7px;
       padding:15px 18px; color:var(--ink); }
.src:hover { text-decoration:none; border-color:var(--s1); box-shadow:var(--shadow); }
.src h3 { margin:0 0 5px; font-size:16.5px; line-height:1.35; font-weight:660; }
.src .m { font-size:12.5px; color:var(--muted); display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.src .m .o { font-weight:660; color:var(--ink2); }
.src .s { font-size:14px; color:var(--ink2); margin-top:8px; line-height:1.5; }
.empty { padding:40px 0; text-align:center; color:var(--ink2); }
.datebar { display:flex; align-items:center; gap:10px; margin:26px 0 6px; }
.datebar .dl { font-size:13px; font-weight:660; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink2); }
.datebar .dr { flex:1; height:1px; background:var(--border); }

/* ---------- source detail ---------- */
.crumb { font-size:13.5px; color:var(--ink2); margin:26px 0 14px; }
.metatable { margin:18px 0 24px; font-size:14px; }
.metatable th { width:132px; padding-right:16px; font-weight:600; color:var(--muted);
                border-bottom:1px solid var(--grid); }
.origin { display:inline-flex; align-items:center; gap:8px; background:var(--s1); color:#fff;
          font-weight:640; font-size:14.5px; padding:10px 18px; border-radius:6px; margin:6px 0 4px; }
.origin:hover { text-decoration:none; filter:brightness(1.08); }
.claims li { margin-bottom:9px; }
.qlist { margin:0; padding:0; list-style:none; }
.qlist li { border-left:3px solid var(--s2); padding:4px 0 4px 16px; margin-bottom:16px;
            font-size:16px; line-height:1.5; }
.qlist .att { display:block; font-size:13px; color:var(--ink2); margin-top:5px; }

/* ---------- footer ---------- */
footer.site { border-top:1px solid var(--border); background:var(--surface); margin-top:64px; }
.footin { max-width:var(--maxw); margin:0 auto; padding:34px 20px 46px; }
.footin .cols { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:32px; }
@media (max-width:820px){ .footin .cols { grid-template-columns:1fr; } }
.footin h4 { margin:0 0 8px; font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink2); }
.footin p,.footin li { font-size:13px; color:var(--muted); line-height:1.55; }
.footin ul { margin:0; padding:0; list-style:none; }
.footin li { margin-bottom:5px; }

@media print {
  .topbar,.filters,nav.main,.themebtn { display:none; }
  body { background:#fff; }
  a { color:#000; text-decoration:underline; }
}
