:root{
  --plane:#f5f8fc; --surface:#ffffff; --surface-2:#eef3f9; --raise:#fff;
  --ink:#0d1b2c; --ink-2:#41566e; --muted:#7b8a9d; --ring:rgba(14,42,74,.10); --ring-2:rgba(14,42,74,.18);
  --accent:#0a5cc2; --accent-2:#2b83e6; --accent-soft:rgba(10,92,194,.10);
  --good:#12a150; --warn:#c98a00; --crit:#d64545;
  --font:Arial,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --shadow:0 1px 2px rgba(14,42,74,.05),0 6px 22px rgba(14,42,74,.07);
}
html[data-theme="dark"]{
  --plane:#0a0f16; --surface:#121a24; --surface-2:#182231; --raise:#1c2736;
  --ink:#f2f6fb; --ink-2:#b6c3d2; --muted:#7e8ea0; --ring:rgba(255,255,255,.10); --ring-2:rgba(255,255,255,.18);
  --accent:#3b8ef0; --accent-2:#66aaf5; --accent-soft:rgba(59,142,240,.16);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 28px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
body{margin:0;background:var(--plane);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:22px;padding:14px 30px;background:color-mix(in srgb,var(--plane) 86%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--ring)}
.brand{font-size:14px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;color:var(--ink-2)}
.brand b{color:var(--accent);font-weight:700}
.dot{display:inline-block;width:11px;height:11px;border-radius:4px;background:var(--accent);margin-right:9px;vertical-align:-1px}
.topnav{display:flex;gap:20px;margin-left:auto;font-size:13.5px;color:var(--ink-2)}
.topnav a:hover{color:var(--accent)}
.ttoggle{background:none;border:1px solid var(--ring);border-radius:8px;width:34px;height:32px;cursor:pointer;color:var(--ink-2);font-size:15px}
main{max-width:1280px;margin:0 auto;padding:0 30px 70px}
.livepill{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--good);border:1px solid var(--ring);border-radius:20px;padding:5px 11px}
.pulse{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 0 0 rgba(18,161,80,.6);animation:pulse 2.2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 7px rgba(18,161,80,0)}100%{box-shadow:0 0 0 0 rgba(18,161,80,0)}}
/* The hero says what the platform is for, then gets out of the way of the data. */
.hero{padding:44px 0 10px;border-bottom:1px solid var(--ring)}
.eyebrow{font-size:11.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}
h1{font-size:40px;line-height:1.14;margin:14px 0 0;letter-spacing:-.022em;max-width:26ch;font-weight:700}
h1 em{font-style:normal;color:var(--ink-2);display:block;font-size:23px;line-height:1.4;margin-top:12px;font-weight:400;max-width:44ch}
.herobar{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:0;margin:34px 0 0;border:1px solid var(--ring);border-radius:14px;overflow:hidden;background:var(--surface)}
.hb{padding:18px 20px;border-right:1px solid var(--ring)}
.hb:last-child{border-right:0}
.hb-n{display:block;font-size:29px;font-weight:700;line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.hb-l{display:block;font-size:11.5px;color:var(--muted);margin-top:6px;line-height:1.45}
.wrap{padding:38px 0;scroll-margin-top:78px}
.sechead{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.sechead h2{font-size:24px;margin:0;letter-spacing:-.015em}
.sechead span{font-size:13px;color:var(--muted)}
.band{background:var(--surface);border:1px solid var(--ring);border-radius:20px;padding:32px;margin:8px 0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(390px,1fr));gap:16px}
.tcard{background:var(--surface);border:1px solid var(--ring);border-radius:16px;padding:20px 22px;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .16s,border-color .16s,box-shadow .16s}
.tcard:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 8px 30px rgba(10,92,194,.14)}
.tcard.off{opacity:.7}
.tc-h{display:flex;align-items:flex-start;gap:12px}
.tc-h h3{margin:0;font-size:17px;line-height:1.3;flex:1}
.pill{font-size:10.5px;font-weight:700;padding:4px 9px;border-radius:20px;white-space:nowrap;border:1px solid currentColor}
.pill.on{color:var(--good)}.pill.offp{color:var(--muted)}
.tc-stats{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:10px;margin:16px 0 0}
.tc-s{background:var(--surface-2);border-radius:10px;padding:11px 13px}
.tc-s.big .tc-n{font-size:26px}
.tc-n{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}
.tc-lb{font-size:10.5px;color:var(--muted);margin-top:3px;line-height:1.4}
.tc-geo{margin:14px 0 0;display:flex;flex-direction:column;gap:5px}
.gr{display:grid;grid-template-columns:96px 1fr 52px;gap:8px;align-items:center;font-size:11.5px;color:var(--ink-2)}
.gr-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gr-b{height:6px;background:var(--surface-2);border-radius:4px;overflow:hidden}
.gr-b i{display:block;height:100%;background:var(--accent);border-radius:4px}
.gr-v{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
.tc-l{color:var(--muted);font-size:12.5px;line-height:1.6;margin:14px 0 0}
.tc-off{font-size:12.5px;color:var(--warn);margin-top:12px;line-height:1.55}
.tc-f{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:14px;border-top:1px solid var(--ring)}
.grade{font-size:11px;font-weight:700;padding:3px 9px;border-radius:6px;border:1px solid currentColor;white-space:nowrap}
.gA{color:#12a150}.gB{color:var(--accent)}.gC{color:#c98a00}.gD{color:#d64545}
.open{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--accent);white-space:nowrap}
.worldgrid{display:grid;grid-template-columns:1.6fr 1fr;gap:16px}
.card{background:var(--surface);border:1px solid var(--ring);border-radius:16px;padding:20px 22px;box-shadow:var(--shadow)}
.ct{margin:0 0 14px;font-size:15px}
.bars{display:flex;flex-direction:column;gap:8px}
.br{display:grid;grid-template-columns:150px 1fr 92px;gap:10px;align-items:center;font-size:12.5px}
.bars.small .br{grid-template-columns:190px 1fr 62px}
.br-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}
.br-b{height:9px;background:var(--surface-2);border-radius:5px;overflow:hidden}
.br-b i{display:block;height:100%;background:var(--accent);border-radius:5px}
.br-v{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}
.hows{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px}
.hows article h3{margin:0;font-size:15px}
.hows article p{color:var(--ink-2);font-size:13px;line-height:1.7;margin:8px 0 0}
.limits-wrap{margin-top:28px;padding-top:22px;border-top:1px solid var(--ring)}
.limits-wrap h3{margin:0;font-size:15px}
.limits{margin:14px 0 0 20px;color:var(--ink-2);font-size:13.5px;line-height:1.8;max-width:92ch}
.limits li{margin-bottom:9px}
.loading{color:var(--muted);padding:18px;font-size:13.5px}
.foot{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;border-top:1px solid var(--ring);margin-top:26px;padding-top:20px;font-size:12.5px;color:var(--muted)}
@media(max-width:1000px){.worldgrid{grid-template-columns:1fr}h1{font-size:31px}h1 em{font-size:19px}main{padding:0 18px 50px}}


/* --- Hero ------------------------------------------------------------------- */
.hero{padding:60px 0 48px;border-bottom:1px solid var(--ring)}
.hero h1{margin:0 0 18px;font-size:clamp(34px,4.4vw,56px);line-height:1.05;letter-spacing:-.03em;font-weight:800;color:var(--ink);max-width:18ch}
.hero .eyebrow{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);font-weight:700}
.hero .sub{margin:0 0 28px;font-size:17px;line-height:1.65;color:var(--ink-2);max-width:70ch}
.cta{display:flex;flex-wrap:wrap;gap:11px}
.btn{display:inline-block;font-size:14.5px;font-weight:650;padding:13px 22px;border-radius:11px;border:1px solid transparent;cursor:pointer;transition:transform .12s,box-shadow .12s}
.btn.primary{background:var(--accent);color:#fff;box-shadow:0 6px 18px rgba(10,92,194,.22)}
.btn.primary:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(10,92,194,.3)}
.btn.ghost{background:transparent;border-color:var(--ring-2);color:var(--ink-2)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn.wide{display:block;text-align:center;margin-top:14px}
.heroR{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--ring);border:1px solid var(--ring);border-radius:18px;overflow:hidden}
.hfig{background:var(--surface);padding:20px 18px}
.hfig-n{display:block;font-size:27px;font-weight:780;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1}
.hfig-l{display:block;margin-top:5px;font-size:11.8px;color:var(--muted);line-height:1.4}
@media (max-width:1000px){.hero{padding:40px 0 34px}.hero h1{max-width:none}}

/* --- The news band on the landing page -------------------------------------- */
.newsband{display:block}
.nlist{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:14px}
.ncard{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--ring);border-radius:15px;padding:18px;transition:border-color .12s,transform .12s}
.ncard:hover{border-color:var(--accent);transform:translateY(-2px)}
.nlist{grid-template-columns:repeat(3,1fr)}
.ncat{font-size:10.6px;font-weight:680;padding:3px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent);align-self:flex-start}
.ntitle{font-size:15.5px;font-weight:670;line-height:1.32;color:var(--ink)}
.ncard.big .ntitle{font-size:21px;line-height:1.24;letter-spacing:-.01em}
.nsum{font-size:13.2px;line-height:1.6;color:var(--ink-2)}
.nsrc{margin-top:auto;font-size:11.6px;color:var(--muted)}
@media (max-width:980px){.nlist{grid-template-columns:1fr}}

/* --- The Atlas band on the landing page -------------------------------------- */
.atlasband{display:block}
.atlas-promise{margin:0 0 16px;font-size:13.6px;line-height:1.7;color:var(--ink-2);max-width:96ch}
.atlas-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:14px;align-items:start}
.atlas-nums{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--ring);border:1px solid var(--ring);border-radius:15px;overflow:hidden}
.an{background:var(--surface);padding:18px 16px}
.an-n{display:block;font-size:26px;font-weight:780;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1}
.an-l{display:block;margin-top:6px;font-size:11.6px;color:var(--muted);line-height:1.45}
.atlas-list{display:flex;flex-direction:column;gap:1px;background:var(--ring);border:1px solid var(--ring);border-radius:15px;overflow:hidden}
.al{display:grid;grid-template-columns:1.1fr 2fr auto auto;align-items:center;gap:12px;background:var(--surface);padding:11px 16px;transition:background .12s}
.al:hover{background:var(--surface-2)}
.al-n{font-size:13.4px;font-weight:640;color:var(--ink)}
.al-b{display:block;height:7px;background:var(--surface-2);border-radius:999px;overflow:hidden}
.al-b i{display:block;height:100%;background:var(--accent);border-radius:999px}
.al-v{font-size:11.8px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.al-s{font-size:10.6px;font-weight:680;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--muted);white-space:nowrap}
.al-s.live{background:var(--accent-soft);color:var(--accent)}
.atlas-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
@media (max-width:980px){.atlas-grid{grid-template-columns:1fr}.al{grid-template-columns:1fr auto}.al-b{display:none}}

/* --- The resolution report --------------------------------------------------- */
.resgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.rescard{padding:18px}
.rescard .ct{margin:0 0 12px;font-size:15px}
.resrow{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--ring);font-size:13px;color:var(--ink-2)}
.resrow:last-of-type{border-bottom:0}
.resrow b{color:var(--ink);font-variant-numeric:tabular-nums}
.resrow.warn b{color:var(--warn)}
.resdq{margin-top:10px;font-size:12px;color:var(--muted);line-height:1.5}
.resq{margin-top:12px;padding:10px 12px;background:var(--surface-2);border-radius:10px;font-size:12.3px;line-height:1.55;color:var(--ink-2)}
.resq b{display:block;color:var(--ink);margin-bottom:4px;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase}
.resnote{margin:16px 0 0;font-size:13.2px;line-height:1.65;color:var(--ink-2);max-width:90ch}

/* Said plainly on the card when a tracker's records sit almost entirely in one
   country. A reader should never have to work that out for themselves. */
.tc-skew { margin:8px 0 0; font-size:12.5px; line-height:1.5; color:var(--muted,#6b7382);
  border-left:2px solid var(--line,#e3e7ee); padding-left:10px; }

/* The checks, across the platform. A failure belongs on the front page. */
.chkgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:16px; }
.chkcard { border-left:4px solid var(--line,#e3e7ee); }
.chkcard.bad { border-left-color:#b3261e; }
.chkcard.watch { border-left-color:#b8860b; }
.chkcard.good { border-left-color:#2e7d32; }
.chkline { font-size:13px; color:var(--muted,#6b7382); margin:2px 0 8px; }
.chkv { margin:0 0 10px; font-size:13px; line-height:1.6; }
.chklist { margin:0 0 10px; padding-left:16px; display:flex; flex-direction:column; gap:7px; }
.chklist li { font-size:12.5px; line-height:1.55; }
.chklist li b { display:block; }
.chklist li span { color:var(--muted,#6b7382); }

/* --- What the Atlas band shows: answers, not a roster ------------------------ */
.atlas-spreads{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.aspread{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--ring);border-radius:15px;padding:16px 18px;transition:border-color .12s,transform .12s}
.aspread:hover{border-color:var(--accent);transform:translateY(-2px)}
.as-q{font-size:13.4px;font-weight:640;color:var(--ink);line-height:1.4}
.as-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-top:auto}
.as-end{display:flex;flex-direction:column;line-height:1.25}
.as-end b{font-size:24px;font-weight:780;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.as-end i{font-style:normal;font-size:11.2px;color:var(--muted)}
.as-end.hi{text-align:right}
.as-mid{font-size:10.8px;color:var(--muted);text-align:center;line-height:1.45}
.atlas-gaps{display:flex;flex-direction:column;gap:7px;margin-top:14px;background:var(--surface);border:1px solid var(--ring);border-radius:15px;padding:15px 18px}
.ag-h{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.ag-row{font-size:13px;line-height:1.6;color:var(--ink-2)}
.ag-row b{color:var(--ink)}
