:root { --bg:#18120b; --panel:#251f17; --ink:#ede0d4; --dim:#9c8f80; --faint:#4f4539; --line:#2f2921; --accent:#f4bd6f; --hover:#3b342b; --ok:#8fbf6f; --warn:#e0a458; --bad:#ffb4ab; }
* { box-sizing:border-box; }
html, body { margin:0; background:var(--bg); color:var(--ink); font:15px/1.5 "IBM Plex Sans", system-ui, sans-serif; }
nav { display:flex; flex-wrap:wrap; gap:1.1rem; align-items:baseline; padding:.8rem 1.4rem; background:var(--panel); border-bottom:1px solid var(--line); }
nav a { color:var(--dim); text-decoration:none; font-size:.85rem; letter-spacing:.04em; text-transform:uppercase; }
nav a:hover { color:var(--accent); }
nav a.brand { color:var(--accent); font-weight:600; text-transform:none; letter-spacing:0; font-size:1rem; margin-right:.6rem; }
main { max-width: 74rem; margin: 0 auto; padding: 1.4rem 1.4rem 3rem; }
footer { max-width:74rem; margin:0 auto; padding:1rem 1.4rem 2rem; color:var(--dim); font-size:.78rem; border-top:1px solid var(--line); }
h1 { font-size:1.6rem; font-weight:600; margin:.2rem 0 .6rem; color:var(--accent); }
h2 { font-size:.8rem; letter-spacing:.09em; text-transform:uppercase; color:var(--dim); margin:2rem 0 .5rem; font-weight:500; }
a { color:var(--accent); }
.lede { color:var(--dim); max-width:60rem; margin:0 0 1.2rem; }
.crumb { color:var(--dim); font-size:.8rem; margin:0; }
.dim { color:var(--dim); }
.small { font-size:.82rem; }
.mono { font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:.82rem; }
.num { text-align:right; font-variant-numeric:tabular-nums; font-family:"IBM Plex Mono", ui-monospace, monospace; }
.big { font-size:1.2rem; color:var(--accent); }
table { border-collapse:collapse; width:100%; }
table.list th { text-align:left; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--dim); font-weight:500; padding:.4rem .5rem; border-bottom:1px solid var(--faint); }
table.list td { padding:.45rem .5rem; border-bottom:1px solid var(--line); vertical-align:top; }
table.list tr:hover td { background:var(--panel); }
table.list th.num, table.list td.num { text-align:right; }
table.facts { margin:.8rem 0 1rem; max-width:60rem; }
table.facts th { text-align:left; width:9rem; color:var(--dim); font-weight:500; font-size:.8rem; padding:.3rem .5rem .3rem 0; vertical-align:top; }
table.facts td { padding:.3rem 0; border-bottom:1px solid var(--line); }
.status { display:inline-block; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; padding:.1rem .45rem; border-radius:2px; border:1px solid var(--faint); color:var(--dim); }
.status.confirmed, .status.verified, .status.live { border-color:var(--ok); color:var(--ok); }
.status.attributed, .status.inferred, .status.candidate, .status.archived { border-color:var(--warn); color:var(--warn); }
.status.reported { border-color:var(--faint); color:var(--dim); }
.status.contradicted, .status.wiped, .status.gone { border-color:var(--bad); color:var(--bad); }
.bars { display:flex; align-items:flex-end; gap:3px; height:6rem; padding:0 0 1.2rem; max-width:60rem; overflow-x:auto; }
.bar { flex:1 0 1.4rem; height:100%; display:flex; flex-direction:column; justify-content:flex-end; position:relative; }
.bar .fill { background:var(--accent); opacity:.75; border-radius:2px 2px 0 0; min-height:1px; }
.bar span { position:absolute; bottom:-1.2rem; left:0; font-size:.62rem; color:var(--dim); font-family:ui-monospace, monospace; white-space:nowrap; }
table.claims td:nth-child(3) { max-width:34rem; }
@media (max-width: 720px) {
  main { padding:1rem .8rem 2rem; }
  table.list { display:block; overflow-x:auto; font-size:.85rem; }
  table.facts th { width:6rem; }
}
.status.sev-nuisance { border-color:var(--faint); color:var(--dim); }
.status.sev-exposure { border-color:var(--warn); color:var(--warn); }
.status.sev-intrusion, .status.sev-breach, .status.sev-harm { border-color:var(--bad); color:var(--bad); }
.status.basis-known, .status.established, .status.acknowledged, .status.closed-acceptable { border-color:var(--ok); color:var(--ok); }
.status.basis-estimated, .status.probable, .status.open { border-color:var(--warn); color:var(--warn); }
.status.basis-unknown, .status.assessed { border-color:var(--faint); color:var(--dim); }
.status.closed-unacceptable { border-color:var(--bad); color:var(--bad); }
.cat { display:inline-block; border:1px solid var(--faint); border-radius:2px; padding:.05rem .4rem; font-size:.78rem; color:var(--ink); margin:.1rem .1rem .1rem 0; cursor:help; }
.cell { display:inline-block; min-width:3.2rem; text-align:center; font-size:.75rem; padding:.05rem .3rem; border-radius:2px; }
.cell.yes { background:#2f4a2a; color:var(--ok); }
.cell.no { background:#4a2a2a; color:var(--bad); }
.cell.partly { background:#4a3f22; color:var(--warn); }
.cell.na, .cell.unknown { color:var(--faint); }
table.milestones th { text-align:left; color:var(--dim); font-weight:500; font-size:.8rem; width:9rem; }
[data-tip] { position:relative; cursor:help; outline:none; }
[data-tip]::after { display:none; content:attr(data-tip); position:absolute; left:0; top:calc(100% + .35rem); z-index:5; min-width:14rem; max-width:22rem; padding:.45rem .6rem; background:var(--panel); color:var(--ink); border:1px solid var(--faint); border-radius:3px; font:.78rem/1.4 "IBM Plex Sans", system-ui, sans-serif; text-transform:none; letter-spacing:0; white-space:normal; box-shadow:0 4px 16px rgba(0,0,0,.45); }
td:last-child [data-tip]::after { left:auto; right:0; }
@media (hover: hover) { [data-tip]:hover::after { display:block; } }
@media (hover: none) { [data-tip]:focus::after { display:block; } }
a.button { display:inline-block; padding:.5rem .9rem; border:1px solid var(--accent); border-radius:3px; text-decoration:none; }
a.status, a.cat { text-decoration:none; }
a.status:hover, a.cat:hover { filter:brightness(1.25); }
.status.kind-primary { border-color:var(--ok); color:var(--ok); }
.status.kind-report { border-color:#7fb3d5; color:#7fb3d5; }
.status.kind-secondary { border-color:var(--warn); color:var(--warn); }
.status.kind-press { border-color:var(--faint); color:var(--dim); }
.status.kind-agent-authored { border-color:#c9a0dc; color:#c9a0dc; }
.status.confirmed, .status.likely { border-color:var(--ok); color:var(--ok); }
.status.possible { border-color:var(--warn); color:var(--warn); }
.status.unattributed { border-color:var(--faint); color:var(--dim); }
.warn { color:var(--warn); }
