
/* ── Measurement Hub — page-specific styles ──────────────────────────────── */
body{margin:0;padding-top:24px;background:var(--bg);color:var(--text)}
.mh-wrap{max-width:1100px;margin:0 auto;padding:0 16px 80px}
.mh-hero{padding:40px 0 28px;border-bottom:1px solid var(--border,rgba(255,255,255,.08));margin-bottom:32px}
.mh-kicker{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted,#8899aa);margin-bottom:10px}
.mh-kicker .hb{display:inline-block;width:8px;height:8px;border-radius:50%;
  background:var(--warn,#f59e0b);margin-right:6px}
.mh-title{font-size:clamp(1.5rem,4vw,2.2rem);font-weight:800;line-height:1.2;
  margin:0 0 12px;color:var(--text,#e2e8f0)}
.mh-doctrine{font-size:.92rem;line-height:1.65;color:var(--muted,#8899aa);
  max-width:800px;margin:0 0 16px}
.mh-verdict{background:color-mix(in srgb,var(--warn,#f59e0b) 8%,var(--surface,#0f1629));
  border:1px solid color-mix(in srgb,var(--warn,#f59e0b) 25%,transparent);
  border-radius:10px;padding:16px 20px;margin-top:20px;
  font-size:.88rem;line-height:1.6;color:var(--text,#e2e8f0)}
.mh-verdict strong{color:var(--warn,#f59e0b)}

/* ── Section headings ────────────────────────────────────────────────────── */
.mh-section{margin-bottom:48px}
.mh-sh{display:flex;align-items:baseline;gap:12px;margin:0 0 16px}
.mh-sh h2{font-size:1.15rem;font-weight:700;margin:0;color:var(--text,#e2e8f0)}
.mh-sh .mh-sh-sub{font-size:.78rem;color:var(--muted,#8899aa)}

/* ── Engine tabs ─────────────────────────────────────────────────────────── */
.mh-tabs{display:flex;gap:4px;margin-bottom:20px;flex-wrap:wrap}
.mh-tab{padding:7px 14px;border-radius:7px;border:1px solid var(--border,rgba(255,255,255,.1));
  background:transparent;color:var(--muted,#8899aa);font-size:.82rem;cursor:pointer;
  transition:all .15s}
.mh-tab.on{background:var(--blue,#3b82f6);border-color:var(--blue,#3b82f6);
  color:#fff;font-weight:600}

/* ── Engine panel ────────────────────────────────────────────────────────── */
.mh-engine{display:none}
.mh-engine.on{display:block}
.mh-eng-hd{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.mh-eng-name{font-size:1rem;font-weight:700;color:var(--text,#e2e8f0)}
.mh-eng-epoch{font-size:.72rem;color:var(--muted,#8899aa);
  background:color-mix(in srgb,var(--text) 8%,transparent);
  padding:3px 8px;border-radius:4px;font-family:monospace}

/* ── Cohort badges ───────────────────────────────────────────────────────── */
.mh-cohorts{display:grid;grid-template-columns:repeat(auto-fit,minmax(480px,1fr));gap:20px}
.mh-cohort{border:1px solid var(--border,rgba(255,255,255,.08));border-radius:10px;
  padding:20px;background:var(--card,rgba(255,255,255,.03))}
.mh-cohort-hd{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.mh-cohort-badge{font-size:.7rem;font-weight:700;letter-spacing:.1em;
  padding:3px 8px;border-radius:4px}
.badge-backtest{background:color-mix(in srgb,var(--blue,#3b82f6) 20%,transparent);
  color:var(--blue,#3b82f6);border:1px solid color-mix(in srgb,var(--blue) 35%,transparent)}
.badge-live{background:color-mix(in srgb,var(--up,#22c55e) 20%,transparent);
  color:var(--up,#22c55e);border:1px solid color-mix(in srgb,var(--up) 35%,transparent)}
.mh-cohort-meta{font-size:.75rem;color:var(--muted,#8899aa)}

/* ── Primitive blocks ────────────────────────────────────────────────────── */
.mh-primitive{margin-bottom:18px;padding:14px;border-radius:8px;
  background:color-mix(in srgb,var(--text) 4%,transparent)}
.mh-prim-title{font-size:.78rem;font-weight:700;color:var(--text,#e2e8f0);
  margin-bottom:10px;display:flex;align-items:center;gap:8px}
.mh-prim-gate{font-size:.68rem;font-family:monospace;padding:2px 6px;border-radius:3px;
  background:color-mix(in srgb,var(--muted) 15%,transparent);color:var(--muted,#8899aa)}

/* ── Verdict badges ──────────────────────────────────────────────────────── */
.verdict{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:700;
  padding:3px 8px;border-radius:4px;letter-spacing:.05em}
.verdict::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%}
.verdict-fail{background:color-mix(in srgb,var(--down,#ef4444) 18%,transparent);
  color:var(--down,#ef4444);border:1px solid color-mix(in srgb,var(--down) 35%,transparent)}
.verdict-fail::before{background:var(--down,#ef4444)}
.verdict-miscal{background:color-mix(in srgb,var(--warn,#f59e0b) 18%,transparent);
  color:var(--warn,#f59e0b);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent)}
.verdict-miscal::before{background:var(--warn,#f59e0b)}
.verdict-pass{background:color-mix(in srgb,var(--up,#22c55e) 18%,transparent);
  color:var(--up,#22c55e);border:1px solid color-mix(in srgb,var(--up) 35%,transparent)}
.verdict-pass::before{background:var(--up,#22c55e)}
.verdict-accruing{background:color-mix(in srgb,var(--blue,#3b82f6) 18%,transparent);
  color:var(--blue,#3b82f6);border:1px solid color-mix(in srgb,var(--blue) 35%,transparent)}
.verdict-accruing::before{background:var(--blue,#3b82f6)}
.verdict-none{background:color-mix(in srgb,var(--muted) 18%,transparent);
  color:var(--muted,#8899aa);border:1px solid color-mix(in srgb,var(--muted) 25%,transparent)}
.verdict-none::before{background:var(--muted,#8899aa)}

/* ── Metric rows ─────────────────────────────────────────────────────────── */
.mh-metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.mh-metric{padding:10px 12px;border-radius:6px;
  background:color-mix(in srgb,var(--text) 3%,transparent);
  border:1px solid var(--border,rgba(255,255,255,.06))}
.mh-metric-label{font-size:.68rem;color:var(--muted,#8899aa);margin-bottom:4px}
.mh-metric-val{font-size:.95rem;font-weight:700;color:var(--text,#e2e8f0)}
.mh-metric-ci{font-size:.68rem;color:var(--muted,#8899aa)}
.mh-metric-note{font-size:.68rem;color:var(--muted,#8899aa);margin-top:4px;line-height:1.4}

/* ── Gate ledger table ───────────────────────────────────────────────────── */
.mh-gate-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.mh-gate-table{width:100%;min-width:560px;border-collapse:collapse;font-size:.8rem}
.mh-gate-table th{text-align:left;padding:8px 12px;font-size:.72rem;font-weight:700;
  color:var(--muted,#8899aa);border-bottom:1px solid var(--border,rgba(255,255,255,.08));
  text-transform:uppercase;letter-spacing:.08em}
.mh-gate-table td{padding:9px 12px;border-bottom:1px solid var(--border,rgba(255,255,255,.04));
  color:var(--text,#e2e8f0);vertical-align:top;line-height:1.45}
.mh-gate-table tr:last-child td{border-bottom:none}
.mh-gate-table .gate-id{font-family:monospace;font-size:.75rem;font-weight:700;
  white-space:nowrap;color:var(--text,#e2e8f0)}
.mh-gate-table .gate-result{font-size:.75rem;color:var(--muted,#8899aa);
  max-width:340px;line-height:1.4}
.mh-gate-fam{font-size:.68rem;font-family:monospace;
  padding:2px 6px;border-radius:3px;
  background:color-mix(in srgb,var(--text) 8%,transparent);
  color:var(--muted,#8899aa)}
.mh-gate-sec{padding:12px 0 6px;font-size:.72rem;font-weight:700;letter-spacing:.1em;
  color:var(--muted,#8899aa);text-transform:uppercase;border-top:1px solid var(--border,rgba(255,255,255,.06));
  margin-top:8px;grid-column:1/-1}

/* ── Collinearity panel ──────────────────────────────────────────────────── */
.mh-collin{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:12px}
@media(max-width:640px){.mh-collin{grid-template-columns:1fr}}
.mh-collin-block{padding:14px;border-radius:8px;
  background:color-mix(in srgb,var(--text) 4%,transparent);
  border:1px solid var(--border,rgba(255,255,255,.06))}
.mh-collin-block h4{font-size:.8rem;font-weight:700;margin:0 0 8px;
  color:var(--text,#e2e8f0)}
.mh-collin-block ul{margin:0;padding-left:18px;font-size:.8rem;
  color:var(--muted,#8899aa);line-height:1.7}
.mh-collin-block li{margin-bottom:2px}
.mh-collin-block li strong{color:var(--text,#e2e8f0)}

/* ── Accruing experiments table ──────────────────────────────────────────── */
.mh-exp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.mh-exp-table{width:100%;min-width:480px;border-collapse:collapse;font-size:.8rem}
.mh-exp-table th{text-align:left;padding:8px 12px;font-size:.72rem;font-weight:700;
  color:var(--muted,#8899aa);border-bottom:1px solid var(--border,rgba(255,255,255,.08));
  text-transform:uppercase;letter-spacing:.08em}
.mh-exp-table td{padding:9px 12px;border-bottom:1px solid var(--border,rgba(255,255,255,.04));
  color:var(--text,#e2e8f0);vertical-align:top}
.mh-exp-table tr:last-child td{border-bottom:none}
.mh-exp-name{font-weight:600;font-size:.82rem;color:var(--text,#e2e8f0)}
.mh-exp-what{font-size:.75rem;color:var(--muted,#8899aa);margin-top:3px}
.mh-exp-cb{font-family:monospace;font-size:.75rem}

/* ── Sync gauge (W5.1 STOP-fallback) ─────────────────────────────────────── */
.sg-wrap{margin-bottom:48px}
.sg-stop-banner{background:color-mix(in srgb,var(--down,#ef4444) 7%,var(--surface,#0f1629));
  border:1px solid color-mix(in srgb,var(--down,#ef4444) 22%,transparent);
  border-radius:10px;padding:14px 18px;margin-bottom:20px;
  font-size:.85rem;line-height:1.6;color:var(--text,#e2e8f0)}
.sg-stop-banner strong{color:var(--down,#ef4444)}
.sg-honest-note{background:color-mix(in srgb,var(--blue,#3b82f6) 6%,var(--surface,#0f1629));
  border:1px solid color-mix(in srgb,var(--blue,#3b82f6) 20%,transparent);
  border-radius:8px;padding:12px 16px;margin-bottom:20px;
  font-size:.8rem;line-height:1.55;color:var(--muted,#8899aa)}
.sg-honest-note strong{color:var(--blue,#3b82f6)}
.sg-families{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:20px}
.sg-family{padding:16px;border-radius:10px;
  border:1px solid var(--border,rgba(255,255,255,.08));
  background:var(--card,rgba(255,255,255,.03))}
.sg-fam-hd{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}
.sg-fam-name{font-size:.88rem;font-weight:700;color:var(--text,#e2e8f0)}
.sg-fam-date{font-size:.72rem;color:var(--muted,#8899aa);font-family:monospace}
.sg-sync-val{font-size:1.5rem;font-weight:800;margin:0 0 4px}
.sg-sync-bar{height:6px;border-radius:3px;
  background:color-mix(in srgb,var(--text) 10%,transparent);margin-bottom:10px;overflow:hidden}
.sg-sync-fill{height:100%;border-radius:3px;
  background:var(--blue,#3b82f6);transition:width .3s}
.sg-frac-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.sg-frac-chip{font-size:.7rem;padding:2px 7px;border-radius:4px;
  background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--muted,#8899aa)}
.sg-frac-chip strong{color:var(--text,#e2e8f0)}
.sg-hist-stats{margin-top:10px;font-size:.75rem;color:var(--muted,#8899aa);
  display:flex;gap:16px;flex-wrap:wrap}
.sg-sparkline{margin-top:12px;width:100%;height:52px}
.sg-gate-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:16px}
.sg-gate-cell{padding:10px 12px;border-radius:6px;
  background:color-mix(in srgb,var(--text) 3%,transparent);
  border:1px solid var(--border,rgba(255,255,255,.06))}
.sg-gate-lbl{font-size:.68rem;color:var(--muted,#8899aa);margin-bottom:3px}
.sg-gate-val{font-size:.88rem;font-weight:700;color:var(--text,#e2e8f0)}
@media(max-width:600px){
  .sg-families{grid-template-columns:1fr}
}

/* ── Evidence-Gap panel (PR-A1) ─────────────────────────────────────────── */
.eg-subpanel{margin-bottom:36px;padding:20px;border-radius:10px;
  border:1px solid var(--border,rgba(255,255,255,.08));
  background:var(--card,rgba(255,255,255,.03))}
.eg-subhd{display:flex;align-items:baseline;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.eg-subhd h3{font-size:.98rem;font-weight:700;margin:0;color:var(--text,#e2e8f0)}
.eg-subhd-meta{font-size:.75rem;color:var(--muted,#8899aa)}
.eg-note{font-size:.82rem;color:var(--muted,#8899aa);max-width:820px;margin:0 0 14px;line-height:1.6}
.eg-note strong{color:var(--text,#e2e8f0)}
.eg-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.eg-table{width:100%;min-width:600px;border-collapse:collapse;font-size:.8rem}
.eg-table th{text-align:left;padding:8px 10px;font-size:.7rem;font-weight:700;
  color:var(--muted,#8899aa);border-bottom:1px solid var(--border,rgba(255,255,255,.08));
  text-transform:uppercase;letter-spacing:.07em}
.eg-table td{padding:8px 10px;border-bottom:1px solid var(--border,rgba(255,255,255,.04));
  color:var(--text,#e2e8f0);vertical-align:top;line-height:1.45}
.eg-table tr:last-child td{border-bottom:none}
.eg-mono{font-family:monospace;font-size:.78rem;color:var(--text,#e2e8f0)}
.eg-num{font-family:monospace;font-size:.82rem;font-weight:700;color:var(--text,#e2e8f0);white-space:nowrap}
.eg-ts{font-size:.72rem;color:var(--muted,#8899aa)}
.eg-question{font-size:.75rem;color:var(--muted,#8899aa);max-width:380px;line-height:1.4}
.eg-starvation{font-size:.78rem;line-height:1.45}
.eg-stv-closed{color:var(--up,#22c55e)}
.eg-stv-time{color:var(--blue,#3b82f6)}
.eg-stv-build{color:var(--warn,#f59e0b)}
.eg-footnote{font-size:.7rem;color:var(--muted,#8899aa);margin-top:10px;line-height:1.5}
.eg-footnote code{font-family:monospace;font-size:.7rem}
.eg-accrual-banner{background:color-mix(in srgb,var(--warn,#f59e0b) 8%,var(--surface,#0f1629));
  border:1px solid color-mix(in srgb,var(--warn,#f59e0b) 25%,transparent);
  border-radius:8px;padding:12px 16px;margin-bottom:12px;
  font-size:.82rem;line-height:1.55;color:var(--text,#e2e8f0)}
.eg-accrual-banner strong{color:var(--warn,#f59e0b)}
.eg-ci-caveat{font-size:.78rem;color:var(--muted,#8899aa);
  background:color-mix(in srgb,var(--blue,#3b82f6) 6%,transparent);
  border:1px solid color-mix(in srgb,var(--blue,#3b82f6) 18%,transparent);
  border-radius:6px;padding:10px 14px;margin-bottom:12px;max-width:820px;line-height:1.55}
.eg-dates-note{font-size:.68rem;color:var(--muted,#8899aa);margin-left:4px}
@media(max-width:600px){
  .eg-table{font-size:.72rem}
  .eg-table td{padding:6px 8px}
  .eg-question{max-width:200px}
}

/* ── Provenance footer ───────────────────────────────────────────────────── */
.mh-provenance{margin-top:48px;padding:20px;border-radius:10px;
  border:1px solid var(--border,rgba(255,255,255,.07));
  background:color-mix(in srgb,var(--text) 3%,transparent)}
.mh-prov-title{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted,#8899aa);margin-bottom:14px}
.mh-prov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.mh-prov-cell{font-size:.75rem}
.mh-prov-cell dt{color:var(--muted,#8899aa);margin-bottom:2px}
.mh-prov-cell dd{font-family:monospace;color:var(--text,#e2e8f0);word-break:break-all}

/* ── Cone recal info ─────────────────────────────────────────────────────── */
.mh-recal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:12px}
.mh-recal-card{padding:16px;border-radius:8px;
  background:color-mix(in srgb,var(--warn,#f59e0b) 6%,transparent);
  border:1px solid color-mix(in srgb,var(--warn,#f59e0b) 20%,transparent)}
.mh-recal-card h4{font-size:.82rem;font-weight:700;color:var(--text,#e2e8f0);margin:0 0 10px}
.mh-recal-stat{display:flex;justify-content:space-between;align-items:baseline;
  font-size:.8rem;margin-bottom:5px}
.mh-recal-stat .lbl{color:var(--muted,#8899aa)}
.mh-recal-stat .val{font-weight:700;color:var(--warn,#f59e0b)}
.mh-recal-note{font-size:.72rem;color:var(--muted,#8899aa);margin-top:10px;line-height:1.4}

/* ── Mobile ──────────────────────────────────────────────────────────────── */
@media(max-width:600px){
  .mh-cohorts{grid-template-columns:1fr}
  .mh-metric-grid{grid-template-columns:1fr 1fr}
  .mh-gate-table,.mh-exp-table{font-size:.73rem}
  .mh-gate-table td,.mh-exp-table td{padding:7px 8px}
}

/* ── Hub v2: Pattern Memory / Truth Ledger ──────────────────────────────── */
.pm-unavail{padding:14px;border-radius:8px;
  background:color-mix(in srgb,var(--muted) 10%,transparent);
  border:1px solid var(--border,rgba(255,255,255,.06));
  font-size:.85rem;color:var(--muted,#8899aa)}
.pm-status-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.pm-status-chip{padding:5px 12px;border-radius:6px;font-size:.78rem;font-weight:700;
  border:1px solid var(--border,rgba(255,255,255,.1))}
.pm-chip-promoted_null{background:color-mix(in srgb,var(--muted,#8899aa) 12%,transparent);
  color:var(--muted,#8899aa);border-color:color-mix(in srgb,var(--muted) 30%,transparent)}
.pm-chip-display{background:color-mix(in srgb,var(--blue,#3b82f6) 12%,transparent);
  color:var(--blue,#3b82f6);border-color:color-mix(in srgb,var(--blue) 30%,transparent)}
.pm-chip-candidate{background:color-mix(in srgb,var(--warn,#f59e0b) 12%,transparent);
  color:var(--warn,#f59e0b);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}
.pm-chip-structural{background:color-mix(in srgb,var(--text,#e2e8f0) 8%,transparent);
  color:var(--text,#e2e8f0);border-color:color-mix(in srgb,var(--text) 20%,transparent)}
.pm-truth-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.pm-truth-table{width:100%;min-width:600px;border-collapse:collapse;font-size:.8rem}
.pm-truth-table th{text-align:left;padding:8px 12px;font-size:.72rem;font-weight:700;
  color:var(--muted,#8899aa);border-bottom:1px solid var(--border,rgba(255,255,255,.08));
  text-transform:uppercase;letter-spacing:.08em}
.pm-truth-table td{padding:8px 12px;border-bottom:1px solid var(--border,rgba(255,255,255,.04));
  vertical-align:top;line-height:1.4}
.pm-truth-table tr:last-child td{border-bottom:none}
.pm-truth-id{font-family:monospace;font-size:.75rem;font-weight:700;white-space:nowrap;
  color:var(--text,#e2e8f0)}
.pm-stmt{font-size:.78rem;color:var(--text,#e2e8f0);line-height:1.4;max-width:400px}
.pm-status-null{color:var(--muted,#8899aa);font-size:.72rem;font-weight:700}
.pm-status-display{color:var(--blue,#3b82f6);font-size:.72rem;font-weight:700}
.pm-status-candidate{color:var(--warn,#f59e0b);font-size:.72rem;font-weight:700}
.pm-status-other{color:var(--text,#e2e8f0);font-size:.72rem;font-weight:700}
.pm-meta{font-size:.7rem;color:var(--muted,#8899aa)}

/* ── Hub v2: Null Library ───────────────────────────────────────────────── */
.nl-wrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;margin-top:8px}
.nl-card{border:1px solid color-mix(in srgb,var(--muted,#8899aa) 20%,transparent);
  border-radius:10px;padding:16px;
  background:color-mix(in srgb,var(--muted,#8899aa) 5%,transparent)}
.nl-card-hd{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.nl-card-id{font-family:monospace;font-size:.75rem;font-weight:700;color:var(--muted,#8899aa)}
.nl-ruled-badge{font-size:.68rem;font-weight:700;letter-spacing:.05em;padding:2px 7px;
  border-radius:4px;
  background:color-mix(in srgb,var(--muted,#8899aa) 12%,transparent);
  color:var(--muted,#8899aa);
  border:1px solid color-mix(in srgb,var(--muted) 25%,transparent)}
.nl-stmt{font-size:.8rem;color:var(--text,#e2e8f0);line-height:1.5;margin-bottom:10px}
.nl-ci{font-size:.75rem;color:var(--muted,#8899aa);margin-bottom:10px;line-height:1.4}
.nl-refs-label{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted,#8899aa);margin-bottom:4px}
.nl-refs-list{list-style:none;padding:0;margin:0}
.nl-refs-list li{font-family:monospace;font-size:.7rem;color:var(--muted,#8899aa);
  padding:2px 0;word-break:break-all;line-height:1.4}
.nl-due{font-size:.68rem;color:var(--muted,#8899aa);margin-top:8px}
@media(max-width:600px){
  .nl-wrap{grid-template-columns:1fr}
}

/* ── Hub v2: Accrual Clocks ─────────────────────────────────────────────── */
.ac-note{font-size:.82rem;color:var(--muted,#8899aa);max-width:720px;margin:0 0 16px;line-height:1.6}
.ac-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.ac-table{width:100%;min-width:640px;border-collapse:collapse;font-size:.8rem}
.ac-table th{text-align:left;padding:8px 12px;font-size:.72rem;font-weight:700;
  color:var(--muted,#8899aa);border-bottom:1px solid var(--border,rgba(255,255,255,.08));
  text-transform:uppercase;letter-spacing:.08em}
.ac-table td{padding:9px 12px;border-bottom:1px solid var(--border,rgba(255,255,255,.04));
  color:var(--text,#e2e8f0);vertical-align:top;line-height:1.4}
.ac-table tr:last-child td{border-bottom:none}
.ac-ledger-name{font-size:.82rem;font-weight:600;color:var(--text,#e2e8f0)}
.ac-ledger-sub{font-size:.7rem;color:var(--muted,#8899aa);margin-top:2px}
.ac-num{font-family:monospace;font-size:.82rem;font-weight:700;color:var(--text,#e2e8f0)}
.ac-na{color:var(--muted,#8899aa);font-size:.82rem}
.ac-proj{font-family:monospace;font-size:.82rem;font-weight:700}
.ac-proj-future{color:var(--blue,#3b82f6)}
.ac-proj-done{color:var(--up,#22c55e)}
.ac-proj-none{color:var(--muted,#8899aa)}

/* ── Hub v2: Prediction Layer ───────────────────────────────────────────── */
.pl-unavail{padding:14px;border-radius:8px;
  background:color-mix(in srgb,var(--muted) 10%,transparent);
  border:1px solid var(--border,rgba(255,255,255,.06));
  font-size:.85rem;color:var(--muted,#8899aa)}
.pl-meta-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;align-items:center}
.pl-meta-chip{font-size:.75rem;padding:4px 10px;border-radius:5px;
  border:1px solid var(--border,rgba(255,255,255,.1));color:var(--muted,#8899aa)}
.pl-meta-chip strong{color:var(--text,#e2e8f0)}
.pl-stale-note{font-size:.78rem;color:var(--muted,#8899aa);font-style:italic}
.pl-revopt-warn{font-size:.78rem;color:var(--warn,#f59e0b);margin-left:4px}
.pl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:28px}
.pl-cell{border-radius:8px;padding:14px;border:1px solid var(--border,rgba(255,255,255,.08));
  background:color-mix(in srgb,var(--surface,#0f1629) 60%,transparent)}
.pl-cell-pass{border-color:color-mix(in srgb,var(--up,#22c55e) 30%,transparent);
  background:color-mix(in srgb,var(--up,#22c55e) 5%,transparent)}
.pl-cell-prior{border-color:color-mix(in srgb,var(--muted,#8899aa) 20%,transparent)}
.pl-cell-dir{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted,#8899aa);margin-bottom:4px}
.pl-cell-horizon{font-size:.95rem;font-weight:800;color:var(--text,#e2e8f0);margin-bottom:8px}
.pl-badge{display:inline-block;font-size:.72rem;font-weight:700;padding:3px 8px;
  border-radius:4px;margin-bottom:8px}
.pl-badge-pass{background:color-mix(in srgb,var(--up,#22c55e) 18%,transparent);
  color:var(--up,#22c55e);border:1px solid color-mix(in srgb,var(--up) 30%,transparent)}
.pl-badge-prior{background:color-mix(in srgb,var(--muted,#8899aa) 12%,transparent);
  color:var(--muted,#8899aa);border:1px solid color-mix(in srgb,var(--muted) 25%,transparent)}
.pl-cell-stat{font-size:.72rem;color:var(--muted,#8899aa);line-height:1.5}
.pl-cell-stat strong{color:var(--text,#e2e8f0)}
/* Adoption gaps */
.pl-gaps-section{margin-top:8px}
.pl-gaps-title{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted,#8899aa);margin-bottom:12px}
.pl-gap-list{list-style:none;padding:0;margin:0 0 20px;display:flex;flex-direction:column;gap:10px}
.pl-gap-item{padding:12px 16px;border-radius:8px;border:1px solid var(--border,rgba(255,255,255,.07));
  background:color-mix(in srgb,var(--warn,#f59e0b) 4%,transparent);font-size:.8rem}
.pl-gap-item.pl-gap-allnull{background:color-mix(in srgb,var(--fail,#ef4444) 5%,transparent);
  border-color:color-mix(in srgb,var(--fail,#ef4444) 20%,transparent)}
.pl-gap-hd{font-weight:700;color:var(--text,#e2e8f0);margin-bottom:5px}
.pl-gap-note{color:var(--muted,#8899aa);line-height:1.5}
.pl-gap-meta{font-size:.7rem;color:var(--muted,#8899aa);margin-top:5px;font-family:monospace}
.pl-gap-tag{display:inline-block;font-size:.65rem;padding:1px 6px;border-radius:3px;margin-left:6px;
  background:color-mix(in srgb,var(--muted) 12%,transparent);color:var(--muted,#8899aa)}

/* ── Hub v2: Coverage Matrix ────────────────────────────────────────────── */
.cm-note{font-size:.82rem;color:var(--muted,#8899aa);max-width:720px;margin:0 0 16px;line-height:1.6}
.cm-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.cm-table{width:100%;min-width:700px;border-collapse:collapse;font-size:.8rem}
.cm-table th{text-align:left;padding:8px 12px;font-size:.7rem;font-weight:700;
  color:var(--muted,#8899aa);border-bottom:1px solid var(--border,rgba(255,255,255,.08));
  text-transform:uppercase;letter-spacing:.06em}
.cm-table td{padding:9px 12px;border-bottom:1px solid var(--border,rgba(255,255,255,.04));
  color:var(--text,#e2e8f0);vertical-align:middle;line-height:1.4}
.cm-table tr:last-child td{border-bottom:none}
.cm-page{font-size:.8rem;font-weight:600;color:var(--text,#e2e8f0);font-family:monospace}
.cm-yes{font-weight:700;color:var(--up,#22c55e)}
.cm-partial{font-weight:700;color:var(--warn,#f59e0b)}
.cm-no{color:var(--muted,#8899aa);font-size:.75rem}
.cm-hint{font-size:.65rem;color:var(--muted,#8899aa);display:block;margin-top:2px;font-family:monospace}
.cm-audit{font-size:.72rem;color:var(--muted,#8899aa);font-style:italic;margin-top:8px}
