/* Lossrate: one stylesheet, one palette (light and dark), mobile first. Governance reader: documents, tables, quotes. */
:root{--bg:#f6f7f9;--panel:#fff;--ink:#14202e;--ink2:#46536a;--muted:#667385;--line:#dce1e8;--band:#eceff4;--accent:#1d4f91;--link:#1d5fae;--mark:#fff3a0;
--seg-0:#2a78d6;--seg-1:#eb6834;--seg-2:#1baf7a;--seg-3:#eda100;--seg-4:#e87ba4;--seg-5:#008300;--seg-6:#4a3aa7;--seg-7:#e34948;--seg-other:#b9bec7;color-scheme:light}
@media(prefers-color-scheme:dark){:root{--bg:#10151c;--panel:#171e27;--ink:#e8edf3;--ink2:#b4bfcc;--muted:#8d9aab;--line:#2a3441;--band:#1f2833;--accent:#8db8f0;--link:#7fb0ee;--mark:#5c5200;
--seg-0:#3987e5;--seg-1:#d95926;--seg-2:#199e70;--seg-3:#c98500;--seg-4:#d55181;--seg-6:#9085e9;--seg-7:#e66767;--seg-other:#5d6169;color-scheme:dark}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-text-size-adjust:100%}
a{color:var(--link);text-underline-offset:2px}a:hover{color:var(--accent)}
h1,h2,h3{font-family:Georgia,"Source Serif 4",serif;line-height:1.2;margin:0;color:var(--ink)}
h1{font-size:clamp(26px,4vw,38px);letter-spacing:-.01em;margin-bottom:6px}
h2{font-size:22px;margin:34px 0 10px;padding-top:10px;border-top:2px solid var(--ink)}
h3{font-size:18px;margin:16px 0 6px}
p{margin:0 0 10px}ul,ol{margin:6px 0 12px;padding-left:20px}
.wrap,.nx-main{max-width:1100px;margin:0 auto;padding-left:16px;padding-right:16px;width:100%}
.nx-main{padding-top:24px;padding-bottom:50px;overflow-wrap:break-word}
/* header: brand, the top sections, search */
.nx-head{background:var(--panel);border-bottom:1px solid var(--line)}
.nx-head>.wrap{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding-top:12px;padding-bottom:12px}
.nx-brand{font:700 26px Georgia,serif;color:var(--ink);text-decoration:none}
.nx-areas{display:flex;flex-wrap:wrap;gap:2px;flex:1}
.nx-areas a{padding:6px 8px;border-radius:6px;color:var(--ink2);text-decoration:none;font-weight:600;font-size:14px;white-space:nowrap}
.nx-areas a:hover{background:var(--band)}.nx-areas a.on{background:var(--ink);color:var(--panel)}
.nx-search input,input[type=search],input[type=email],select{font:inherit;font-size:14px;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);max-width:100%}
.nx-search input{width:130px}
/* text roles */
.question{font:italic 17px/1.4 Georgia,serif;color:var(--ink2);margin:0 0 14px;max-width:760px}
.standfirst{font-size:17px;color:var(--ink2);max-width:720px;margin:0 0 18px}
.small,.nx-howto,.more{font-size:13.5px;color:var(--muted)}
.gap{color:var(--muted);font-style:italic}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums;text-align:right}.nowrap{white-space:nowrap}
.nx-notes{font-size:13.5px;color:var(--ink2);border-top:1px solid var(--line);margin-top:24px;padding-top:12px}
.row{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
/* windows: a row of plain links */
.edition-tabs,.nx-window{display:flex;flex-wrap:wrap;gap:4px 22px;margin:10px 0 20px;border-bottom:1px solid var(--line)}
.edition-tabs a,.nx-window a{padding:8px 0;color:var(--ink2);text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-1px}
.edition-tabs a.on,.nx-window a.on{color:var(--ink);font-weight:700;border-bottom-color:var(--accent)}
.nx-window{align-items:baseline}
/* tiles and cards */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 16px}
.tile{display:block;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px;color:var(--ink);text-decoration:none}
a.tile:hover{border-color:var(--accent)}
.tile b{display:block;font:700 30px/1.1 Georgia,serif;color:var(--accent);font-variant-numeric:tabular-nums}
.tile span{display:block;font-size:14px;color:var(--ink2)}.tile small{display:block;font-size:12.5px;color:var(--muted)}
.card,.nx-figure{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin:0 0 12px}
h3.block{font:700 12px system-ui;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:0;padding:0;margin:0 0 8px}
.card h3{margin:0 0 6px}.card p:last-child{margin-bottom:0}
/* tables */
.nx-scroll,.scroll{overflow-x:auto;max-width:100%}
table.recs{width:100%;border-collapse:collapse;font-size:14.5px;background:var(--panel);border:1px solid var(--line);border-radius:8px}
.recs th{text-align:left;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink2);background:var(--band);padding:8px 10px;white-space:nowrap}
.recs td{padding:9px 10px;border-top:1px solid var(--line);vertical-align:top}.recs td.num,.recs th.num{text-align:right}
.recs tbody tr:hover td{background:var(--band)}
.pager{margin:12px 0}
/* only the counts that are there, in one line: "3 levels stated crossed · 12 test results" */
ul.counts-line{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:2px 0;font-size:14px}
ul.counts-line li+li::before{content:"\00b7";padding:0 8px;color:var(--muted)}
@media(max-width:600px){ul.counts-line{display:block}ul.counts-line li+li::before{content:none}}
/* lists of facts: statement, quote, source */
ul.facts{list-style:none;padding:0;margin:8px 0 16px}
li.fact{padding:12px 0;border-top:1px solid var(--line)}
li.fact .fig{font-size:14px;color:var(--ink2)}
blockquote.quote,.pop .q{margin:6px 0;padding:2px 0 2px 12px;border-left:3px solid var(--line);color:var(--ink)}
details{margin:6px 0}summary{cursor:pointer;color:var(--ink2);font-size:14px}
.tag,.pill,.chip{display:inline-block;padding:0 9px;border:1px solid var(--line);border-radius:999px;font-size:12.5px;background:var(--panel);color:var(--ink2);margin:0 4px 4px 0;text-decoration:none}
a.pill:hover{border-color:var(--accent)}.tag-crossed{border-color:var(--accent);color:var(--accent)}
.chips{display:flex;flex-wrap:wrap;list-style:none;padding:0}
.kv{display:grid;grid-template-columns:minmax(120px,200px) 1fr auto;gap:6px 14px;font-size:14.5px}.kv .k{color:var(--muted)}
/* case list: the filters in force, results, the filter column */
.slice{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;font-size:14px;margin:8px 0 14px;color:var(--muted)}
.slice .c{border:1px solid var(--line);border-radius:999px;padding:1px 10px;background:var(--panel);color:var(--ink)}.slice .c a{color:var(--ink);text-decoration:none}
.slice .c.pin{border-color:var(--accent)}.slice .x{margin-left:6px;color:var(--muted)}.slice .count{margin-left:auto}
.finder{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;align-items:start}
.find,.signup,.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}.find input,.signup input{flex:1 1 220px}
button,.find button,.signup button,.filters button{font:600 14px system-ui;height:38px;padding:0 18px;border:0;border-radius:6px;background:var(--ink);color:var(--panel);cursor:pointer}
.filters{padding:12px 14px;background:var(--panel);border:1px solid var(--line);border-radius:8px}
.facets .filter-head{font:700 12px system-ui;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.facets h3{font:700 14px system-ui;margin:0 0 4px}.facet-list{list-style:none;padding:0;margin:0;font-size:14.5px}
.facet-list li{display:flex;justify-content:space-between;gap:10px;padding:3px 0;border-top:1px solid var(--line)}.facet-list li.on a{font-weight:700;color:var(--ink)}
/* citations */
.cite,.srcs{font:600 11px/16px system-ui;text-transform:uppercase;letter-spacing:.03em;border:1px solid var(--line);border-radius:4px;background:none;color:var(--muted);padding:0 5px;margin-left:4px;cursor:pointer;height:auto}
.srcs{border:0;text-transform:none;font-weight:400;font-size:13.5px;padding:0}.cite:hover,.srcs:hover{color:var(--accent);border-color:var(--accent)}
.grade{font-size:12.5px;color:var(--muted)}.grade b{color:var(--ink)}
.pop{position:fixed;z-index:20;background:var(--panel);border:1px solid var(--line);box-shadow:0 8px 28px rgba(0,0,0,.18);border-radius:8px;padding:14px 16px;max-width:min(460px,92vw);font-size:14px}
.pop h4{margin:0 0 8px;font:700 12px system-ui;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.pop ol{margin:0;padding-left:18px}.pop mark{background:var(--mark);color:inherit}
/* the story of a case */
.flow{display:grid;gap:8px;margin:10px 0}.step{border-left:3px solid var(--accent);background:var(--panel);padding:8px 12px;font-size:14.5px}
.step b{display:block;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
/* figures (SVG from app/charts) */
svg{max-width:100%;height:auto}svg.nx-fig{display:block;min-width:min(100%,480px)}.nx-scroll>svg{min-width:600px}.nx-scroll>svg.wait{min-width:900px}
.key{display:flex;flex-wrap:wrap;gap:4px 16px}.key span{display:inline-flex;align-items:center;gap:6px}.key i{display:inline-block;width:12px;height:12px;border-radius:2px}
.signup label{font-weight:600;color:var(--ink)}input::placeholder{color:var(--muted);opacity:1}svg a{cursor:pointer}
.sb-label,.sb-total,.sb-leg,.ax,.lbl{font:12px system-ui;fill:var(--ink2)}.sb-num{font:600 11px system-ui}.sb-num.on-dark{fill:#fff}.sb-num.on-light{fill:#0b0b0b}.sb-num.sb-out{font:600 10px system-ui;fill:var(--ink2)}
.sb-seg.seg-0{fill:var(--seg-0)}.sb-seg.seg-1{fill:var(--seg-1)}.sb-seg.seg-2{fill:var(--seg-2)}.sb-seg.seg-3{fill:var(--seg-3)}.sb-seg.seg-4{fill:var(--seg-4)}.sb-seg.seg-5{fill:var(--seg-5)}.sb-seg.seg-6{fill:var(--seg-6)}.sb-seg.seg-7{fill:var(--seg-7)}.sb-seg.seg-other{fill:var(--seg-other)}
.sb-seg.sev-negligible{fill:#d6e4f5}.sb-seg.sev-minor{fill:#a3c4ea}.sb-seg.sev-moderate{fill:#5f9ae0}.sb-seg.sev-major{fill:#2a6cbf}.sb-seg.sev-severe{fill:#0f3b78}
svg a:hover rect.sb-seg{stroke:var(--ink);stroke-width:2}
.dot{fill:var(--seg-0)}.median{stroke:var(--ink)}.axis{stroke:var(--line)}
/* patterns page: who caught it, the wait */
.lede{margin:0 0 14px}.counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:8px 0 12px}.counts div{border-top:2px solid var(--ink);padding-top:6px;font-size:14px}
.who{margin:6px 0 14px}.who .t,.cap,.key{font-size:13.5px;color:var(--ink2)}.who .bar{display:flex;height:30px;border-radius:4px;overflow:hidden}
.who .bar div{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;min-width:0}.op{background:var(--seg-0)}.out{background:var(--seg-1)}.nev{background:#4a4a4a}
@media(max-width:860px){.finder{grid-template-columns:minmax(0,1fr)}.nx-brand{flex:1}.nx-areas{order:3;flex-basis:100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.nx-search input{width:130px}.kv{grid-template-columns:minmax(0,1fr)}.slice .count{margin-left:0;width:100%}table.recs{display:block;overflow-x:auto}.recs td,.recs th{min-width:90px}}
@media print{.nx-head,.nx-signup,.facets,.find,.filters,.pop{display:none!important}body{background:#fff;color:#000;font-size:11.5pt}a{color:#000}.card,.tile{border-color:#999}@page{margin:14mm}}
/* Incidents area: the case page reads top down, shows only what a source states */
.happened{font:20px/1.4 Georgia,serif;max-width:760px;margin:6px 0 12px}.keyline{margin:0 0 6px;max-width:760px}
.facts-list{list-style:none;padding:0;margin:6px 0 12px}.facts-list li{padding:6px 0;border-top:1px solid var(--line)}.facts-list b{display:inline-block;min-width:150px;color:var(--ink2);font-weight:600}
details.more-details{margin:22px 0 10px;border-top:2px solid var(--ink);padding-top:10px}details.more-details>summary{font:600 17px Georgia,serif;color:var(--ink)}
/* bureau: method, corrections, data */
.kinds{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px}.kinds a.on{font-weight:700;color:var(--ink)}
h2.ref{margin-top:32px;padding-top:12px;border-top:1px solid var(--line)}
/* AI Safety area: version lists, the compare table */
.vlist{list-style:none;padding:0;margin:6px 0 14px}.vlist li{padding:5px 0;border-top:1px solid var(--line);font-size:14.5px}
table.cmp th,table.cmp td{vertical-align:top}table.cmp td,table.cmp thead th{min-width:150px}table.cmp tbody th{white-space:normal;text-transform:none;letter-spacing:0;font-size:13px}table.cmp tbody th[scope=row]{min-width:96px;max-width:140px}table.cmp tr.sect th{background:var(--band);font-size:13px;text-transform:uppercase;letter-spacing:.04em}
/* front page, models, AI Safety overview */
.stats{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 22px}.stats a{flex:1 1 140px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px;text-decoration:none;color:var(--ink2)}.stats a:hover{border-color:var(--accent)}.stats b{display:block;font:700 32px/1.1 Georgia,serif;color:var(--accent)}
.front{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:32px;align-items:start}.front h2:first-child{margin-top:0}
.cards{list-style:none;padding:0;margin:0 0 8px}.case-card{border-left:4px solid var(--line);background:var(--panel);padding:10px 14px;margin:0 0 10px;border-radius:0 6px 6px 0}.case-card .t{font:700 17px/1.3 Georgia,serif;color:var(--ink);text-decoration:none}.case-card .t:hover{color:var(--accent)}.case-card p{margin:4px 0 0;font-size:15px;color:var(--ink2)}.case-card .meta{font-size:13px;color:var(--muted)}
.case-card.sev-severe{border-left-color:#0f3b78}.case-card.sev-major{border-left-color:#2a6cbf}.case-card.sev-moderate{border-left-color:#7aa7de}.sev{font-weight:700;text-transform:capitalize;color:var(--ink)}
@media(max-width:860px){.front{grid-template-columns:minmax(0,1fr)}}
/* phone: compare reads version by version inside each row; regulation reads as a list (UX QA 2) */
@media(max-width:600px){table.cmp,table.cmp tbody,table.cmp tr,table.cmp td,table.cmp tbody th{display:block;width:auto;min-width:0!important;max-width:none!important}table.cmp thead{display:none}table.cmp td.none{display:none}table.cmp td::before{content:attr(data-v);display:block;font-weight:700;font-size:13px;color:var(--muted)}table.cmp tbody th[scope=row]{padding-top:12px}table.reg,table.reg tbody,table.reg tr,table.reg td{display:block;min-width:0!important}table.reg thead{display:none}table.reg tr{border-bottom:1px solid var(--line);padding:8px 0}table.reg td{border:0;padding:2px 0}table.reg td.hl{font-weight:600}}
details.also{margin:4px 0 0;font-size:13px}details.also summary{cursor:pointer;color:var(--muted)}
/* phone: the facts a reader came for move up under the title (cases list, case page) */
.m-only{display:none}.nx-scroll>svg.narrow{display:none}
@media(max-width:600px){.m-only{display:block}.recs .c-sev,.recs .c-date{display:none}.nx-scroll>svg.wide{display:none}.nx-scroll>svg.narrow{display:block;min-width:0}}
/* phone: the top bar wraps to two compact rows so every section is in view (UX QA pass 3) */
@media(max-width:600px){.nx-head>.wrap{gap:4px 10px;padding-top:6px;padding-bottom:6px}.nx-areas{flex-wrap:wrap;overflow:visible;gap:2px 0}.nx-areas a{padding:3px 6px;font-size:13px}.nx-search input{width:120px;padding:4px 6px}}
/* phone: each correction is one stacked block: date, case, change, by (UX QA pass 3) */
@media(max-width:600px){table.corr,table.corr tbody,table.corr tr,table.corr td{display:block;min-width:0!important;width:auto}table.corr thead{display:none}table.corr tr{border-bottom:1px solid var(--line);padding:8px 0}table.corr td{border:0;padding:2px 0}table.corr td.c-day{font-size:13px;color:var(--muted);white-space:nowrap}table.corr td.c-by::before{content:attr(data-k) ": "}}
.pick-links p{margin:4px 0;font-size:14px;line-height:1.9}.pick-links a{margin-right:10px;white-space:nowrap}.pick-links a.on{font-weight:700;color:var(--ink)}.pick-links .num{color:var(--muted)}
/* Practices on a phone: each practice is a block, not a squeezed three-column row (UX QA pass 4) */
@media(max-width:600px){table.prac,table.prac tbody,table.prac tr,table.prac td{display:block;min-width:0!important;width:auto}table.prac thead{display:none}table.prac tr{border-bottom:1px solid var(--line);padding:8px 0}table.prac td{border:0;padding:2px 0}table.prac td.p-by::before{content:attr(data-k) ": ";font-weight:600}}
/* Dark mode: the darkest severity segment would sink into the background; brighten it a little and outline the dark end of the ramp (UX QA pass 4) */
/* dark: the severity scale runs from dark (negligible) to bright (severe), each step a clear lightness change (UX QA pass 8: major and severe looked alike); numbers take the tone of their segment */
@media(prefers-color-scheme:dark){.sb-seg{stroke:#8aa4c4;stroke-width:.5}.sb-seg.sev-negligible{fill:#1e3c61}.sb-seg.sev-minor{fill:#2b5a96}.sb-seg.sev-moderate{fill:#4a86d4}.sb-seg.sev-major{fill:#9cc3f2}.sb-seg.sev-severe{fill:#f2f7fe}.sb-seg.sev-negligible+.sb-num,.sb-seg.sev-minor+.sb-num,.sb-seg.sev-moderate+.sb-num{fill:#fff}.sb-seg.sev-major+.sb-num,.sb-seg.sev-severe+.sb-num{fill:#0b0b0b}.sb-seg+.sb-num.sb-out{fill:var(--ink2)}.case-card.sev-severe{border-left-color:#8db8f0}}
.brief-tests{display:inline-block;margin-left:6px;vertical-align:top}.brief-tests>summary{cursor:pointer}.brief-tests ul{margin:4px 0 6px 18px;padding:0}
details.group-fold{border-top:1px solid var(--line);padding:6px 0}details.group-fold>summary{cursor:pointer;list-style:revert}details.group-fold>summary h2.group{display:inline;font-size:1.05em;margin:0}
.nx-stacked.narrow .sb-num.sb-out{font-size:12px}
details.group-fold>summary h2.group{border:0;padding:0}
/* risk tables (AI Safety, Models): headers wrap to fit; row labels read as text, not as headers */
table.rk thead th{white-space:normal;vertical-align:bottom}table.rk tbody th{text-transform:none;letter-spacing:0;font-size:14.5px;color:var(--ink);background:none;white-space:normal;font-weight:600}
table.rk thead th{text-transform:none;letter-spacing:0;font-size:13.5px;font-weight:600}
table.rk tr.sect th{text-transform:none;letter-spacing:0;font-size:15px}
/* AI Risk Trends (docs/spec/AI_RISK_WIRE_SPEC.md 6.1) */
.trends-controls p{margin:6px 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.trends-k{font-weight:600;margin-right:6px}
.trends button.pill{cursor:pointer;background:none;border:1px solid var(--line);border-radius:999px;padding:4px 12px;font:inherit;font-size:14px;color:var(--ink)}
.trends button.pill.on{background:var(--ink);color:var(--panel);border-color:var(--ink)}
.trends-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--ink2);margin:10px 0 4px}.trends-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px}
.trends-chart{width:100%}.trends-grid{stroke:var(--line);stroke-width:1}.trends-tick{font-size:11px;fill:var(--muted)}.trends-seg{cursor:pointer}.trends-seg:hover,.trends-seg:focus{opacity:.8;outline:none}
.trends-list{padding-left:18px}.trends-list li{margin:4px 0}
/* Incidents list (docs/spec/AI_RISK_WIRE_SPEC.md 6.2) */
.inc-filters{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin:14px 0}.inc-f{display:flex;flex-direction:column;font-size:13px;font-weight:600;gap:3px}.inc-f select{font:inherit;font-weight:400;font-size:14px;padding:5px 6px;max-width:260px}
.inc-filters button.pill{cursor:pointer;background:var(--ink);color:var(--panel);border:1px solid var(--ink);border-radius:999px;padding:5px 14px;font:inherit;font-size:14px}
