/* IAS brand tokens (lastrev decks/styles/ias.md), applied as an instrument panel
   rather than a document: dense, scannable, every figure carrying its provenance. */
:root{
  --brand:#2D5E4A; --brand-dk:#1E4435; --accent:#6EFF29; --accent-tint:#EFFBE4;
  --ink:#15211B; --muted:#5A6862; --faint:#8A9691; --line:#DFE5E1; --paper:#fff; --ground:#F2F5F3;
  --ok:#1E7A45; --warn:#B5760A; --warn-bg:#FCF4E4; --down:#B4331F;
  --font:'Outfit',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--ground);color:var(--ink);font:14px/1.45 var(--font)}
main{max-width:1400px;margin:0 auto;padding:0 16px 56px}

/* gate */
.gate{position:fixed;inset:0;display:grid;place-items:center;background:var(--brand-dk);padding:20px}
.gate-card{width:100%;max-width:360px;background:var(--paper);border-radius:12px;padding:30px;display:flex;flex-direction:column;gap:9px;box-shadow:0 12px 40px rgba(0,0,0,.28)}
.gate-card h1{margin:0;font-size:19px;color:var(--brand)}
.gate-card p{margin:0;color:var(--muted);font-size:13px}
.gate-card label{margin-top:8px;font-size:12px;color:var(--muted)}
.gate-card input{background:var(--ground);border:1px solid var(--line);border-radius:7px;padding:10px;font:inherit}
.gate-card button,.gate-card .btn{margin-top:12px;background:var(--brand);color:#fff;border:0;border-radius:7px;padding:10px;font-weight:620;cursor:pointer;font-family:inherit;text-align:center;text-decoration:none;font-size:14px}
.error{color:var(--down)!important}

/* top bar */
.topbar{position:sticky;top:0;z-index:6;background:rgba(242,245,243,.96);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);margin:0 -16px 16px;padding:0 16px}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:9px 0 7px}
.brand{display:flex;align-items:baseline;gap:10px;min-width:0}
.brand-name{font-weight:660;font-size:15px;color:var(--brand);letter-spacing:-.01em}
.brand-sub{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.seg{display:inline-flex;background:var(--paper);border:1px solid var(--line);border-radius:7px;overflow:hidden}
.seg button{background:none;border:0;padding:5px 10px;font:inherit;font-size:12px;color:var(--muted);cursor:pointer;white-space:nowrap}
.seg button+button{border-left:1px solid var(--line)}
.seg button[aria-pressed="true"]{background:var(--brand);color:#fff;font-weight:620}
.btn{background:var(--brand);color:#fff;border:0;border-radius:7px;padding:5px 11px;font-weight:600;font-size:12px;text-decoration:none;cursor:pointer;font-family:inherit;display:inline-block}
.btn.ghost{background:var(--paper);color:var(--muted);border:1px solid var(--line)}
.nav{display:flex;gap:1px;flex-wrap:wrap;padding-bottom:6px}
.nav a{font-size:12px;color:var(--muted);text-decoration:none;padding:3px 9px;border-radius:5px;white-space:nowrap}
.nav a.active{background:var(--brand);color:#fff;font-weight:600}

.banner{background:var(--warn-bg);border:1px solid #E8D6AE;border-left:3px solid var(--warn);
  border-radius:7px;padding:9px 12px;margin-bottom:16px;font-size:12.5px;color:#6B4A08}
.banner strong{color:#4A3305}

/* blocks */
.block{margin:0 0 26px}
.block-title{margin:0 0 9px;font-size:11px;font-weight:680;letter-spacing:.1em;text-transform:uppercase;color:var(--brand)}
.block{scroll-margin-top:96px}

/* KPI strip */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:9px;margin-bottom:11px}
.kpi{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:11px 13px}
.kpi .k-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:620}
.kpi .k-value{font-size:25px;font-weight:660;font-variant-numeric:tabular-nums;line-height:1.15;margin:3px 0 0}
.kpi .k-delta{font-size:11.5px;font-weight:620;margin:2px 0 0}
.kpi .k-delta.up{color:var(--ok)} .kpi .k-delta.down{color:var(--down)} .kpi .k-delta.flat{color:var(--faint)}
/* provenance, never hidden: source · range */
.kpi .k-src{margin:5px 0 0;font-size:10.5px;color:var(--faint);font-family:var(--mono);line-height:1.35}

/* panels */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:11px}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:12px 13px;margin:0}
.panel.wide{grid-column:1/-1}
.panel figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:9px}
.p-title{font-size:12.5px;font-weight:640}
.p-meta{font-size:10.5px;color:var(--faint);font-family:var(--mono);text-align:right}
canvas{max-width:100%}

table{width:100%;border-collapse:collapse;font-size:12.5px}
th,td{text-align:left;padding:5px 6px;border-bottom:1px solid var(--line)}
th{color:var(--muted);font-weight:600;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}
tbody tr:last-child td{border-bottom:0}
.num{text-align:right} td.num{font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:12px}
.muted-cell{color:var(--faint)}
.tag{display:inline-block;font-size:9.5px;font-weight:660;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);background:var(--ground);border:1px solid var(--line);border-radius:99px;padding:1px 6px;margin-left:5px}
.tag.stale{color:#6B4A08;background:var(--warn-bg);border-color:#E8D6AE}
.rating.up{color:var(--ok);font-weight:620} .rating.down{color:var(--down);font-weight:620}
td.comment{max-width:520px}

/* Not-connected panels: shown so the gap is visible, disabled so they are never read
   as data. No numbers are rendered inside them at all. */
.block-note{margin:0 0 9px;font-size:12px;color:var(--muted)}
.panel.off{opacity:.62;background:repeating-linear-gradient(135deg,var(--paper),var(--paper) 8px,#F7F9F8 8px,#F7F9F8 16px)}
.panel.off .p-title{color:var(--muted)}
.off-body{display:grid;place-items:center;min-height:104px;text-align:center;padding:12px}
.off-body .off-what{font-size:12.5px;color:var(--muted);max-width:38ch}
.off-body .off-need{margin-top:6px;font-size:10.5px;font-family:var(--mono);color:var(--faint)}
.state{font-family:var(--mono);font-size:10.5px;padding:1px 6px;border-radius:99px;border:1px solid var(--line)}
.state.live{color:var(--ok);background:#EAF7EE;border-color:#BFE3CB}
.state.no-access{color:#6B4A08;background:var(--warn-bg);border-color:#E8D6AE}
.state.extract-only{color:var(--muted);background:var(--ground)}
.state.error{color:var(--down);background:#FBECE9;border-color:#EFC9C1}

/* --- metric definition popover -------------------------------------------- */
.info{border:1px solid var(--line);background:var(--paper);cursor:pointer;color:var(--faint);
  width:14px;height:14px;border-radius:50%;padding:0;margin-left:5px;vertical-align:1px;
  font:700 9px/1 var(--font);display:inline-grid;place-items:center}
.info::after{content:"i"}
.info:hover,.info[aria-expanded="true"]{color:#fff;background:var(--brand);border-color:var(--brand)}
.pop{position:absolute;z-index:40;max-width:390px;background:var(--paper);border:1px solid var(--line);
  border-radius:9px;box-shadow:0 10px 34px rgba(21,33,27,.16);padding:13px 14px;font-size:12.5px;line-height:1.5}
.pop h4{margin:0 0 8px;font-size:12.5px;color:var(--brand)}
.pop dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 10px}
.pop dt{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);font-weight:660;padding-top:2px}
.pop dd{margin:0;color:var(--ink)}
.pop dd.mono{color:var(--muted)}
.pop dd.caveat{color:#6B4A08;background:var(--warn-bg);border-radius:5px;padding:5px 7px}
