/* KH Labs report: light "paper" reading mode with the brand's ink cover and orange accent.
   Used by report.html and art50-check.html. Generated pages: runner/report.py */
@font-face{font-family:"Instrument Sans";src:url(fonts/instrument-sans-latin-standard-normal.woff2) format("woff2-variations"),url(fonts/instrument-sans-latin-standard-normal.woff2) format("woff2");font-weight:400 700;font-stretch:75% 100%;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Sans";src:url(fonts/instrument-sans-latin-ext-standard-normal.woff2) format("woff2-variations"),url(fonts/instrument-sans-latin-ext-standard-normal.woff2) format("woff2");font-weight:400 700;font-stretch:75% 100%;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --paper:#F5F4F0; --sheet:#FBFAF8; --ink:#0B0D12; --ink-2:#363C47; --ink-3:#5A616E;
  --line:#DFDCD4; --line-2:#C9C5BB; --well:#ECEAE4;
  --or:#FF4F1A; --or-text:#B8360A; --or-wash:#FFE7DC;
  --night:#06080C; --night-2:#0F131B; --night-ink:#EEF1F5; --night-mute:#A3ABBA; --night-line:rgba(238,241,245,.12);
  --crit:#7F1212; --crit-bg:#F8DEDB; --high:#A12A08; --high-bg:#FCE5DA; --med:#7D5300; --med-bg:#F6EAC8; --low:#3D4553; --low-bg:#E6E7EA; --info:#2F4A6B; --info-bg:#E2E9F1;
  --ok:#0A6A44; --ok-bg:#DCF1E5;
  --sans:"Instrument Sans","KH Mona",ui-sans-serif,system-ui,"Segoe UI",sans-serif;
  --mono:"DM Mono","KH Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --gut:clamp(20px,4vw,56px); --nav:64px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav) + 20px);-webkit-text-size-adjust:100%;scrollbar-color:#B9B4A8 var(--paper);caret-color:var(--or)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16.5px/1.62 var(--sans);font-stretch:100%;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--or);color:#0C0604}
a{color:var(--or-text);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:#8F2905}
:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--or-text);outline-offset:3px;border-radius:4px}
h1,h2,h3,h4{font-family:var(--sans);margin:0;text-wrap:balance}
p,li{text-wrap:pretty}
code,.mono{font-family:var(--mono);font-size:.86em;font-variant-numeric:tabular-nums}
strong,b{font-weight:600}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:72px;z-index:99;background:var(--sheet);padding:8px 12px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- cover ---------- */
.cover{background:var(--night);color:var(--night-ink);border-bottom:1px solid #000}
.cover__in{max-width:1240px;margin:0 auto;padding:clamp(40px,6vw,84px) var(--gut) clamp(36px,5vw,64px)}
.cover__brand{display:flex;align-items:center;gap:10px;font:500 12.5px/1 var(--mono);color:var(--night-mute);letter-spacing:.02em}
.cover__brand svg{width:22px;height:22px}
.cover__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:40px 64px;align-items:end}
.cover h1{font-size:clamp(2.2rem,4.1vw,3.6rem);line-height:1.03;font-weight:600;letter-spacing:-.032em;max-width:19ch}
.cover__sub{margin:18px 0 0;font-size:clamp(1.05rem,1.4vw,1.22rem);line-height:1.5;color:#C9CFD8;max-width:58ch}
.notice{margin-top:26px;display:flex;gap:12px;align-items:flex-start;max-width:72ch;padding:14px 16px;border:1px solid rgba(255,79,26,.55);border-radius:8px;background:rgba(255,79,26,.08)}
.notice svg{flex:none;width:20px;height:20px;margin-top:2px;color:var(--or)}
.notice p{margin:0;font-size:15.5px;line-height:1.5;color:var(--night-ink)}
.notice p span{display:block;color:var(--night-mute);font-size:14px;margin-top:2px}
.meta{margin:40px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--night-line)}
.meta div{padding:14px 18px 14px 0;border-bottom:1px solid var(--night-line)}
.meta dt{font:500 11.5px/1.3 var(--mono);color:var(--night-mute);letter-spacing:.03em}
.meta dd{margin:6px 0 0;font-size:14.5px;line-height:1.45;color:var(--night-ink)}
.meta dd code{font-size:13px;color:var(--night-ink)}
.score{display:flex;flex-direction:column;gap:6px;padding:4px 0 4px 32px;border-left:1px solid var(--night-line)}
.score__row{display:flex;align-items:baseline;gap:14px}
.score__num{font:600 clamp(3.4rem,5.6vw,5rem)/.92 var(--sans);letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.score__num small{font-size:.38em;letter-spacing:-.01em;color:var(--night-mute);font-weight:500;margin-left:2px}
.score__num--before{color:var(--night-ink)}
.score__num--after{color:var(--or)}
.score__lab{font-size:14px;line-height:1.35;color:var(--night-mute);max-width:17ch}
.score__arrow{width:16px;height:30px;color:var(--night-mute);margin:2px 0 2px 18px}.score__note{margin:12px 0 0;font-size:13.5px;line-height:1.5;color:var(--night-mute);max-width:40ch}

/* ---------- layout ---------- */
.layout{max-width:1240px;margin:0 auto;padding:0 var(--gut);display:grid;grid-template-columns:220px minmax(0,1fr);gap:56px}
.toc{position:sticky;top:calc(var(--nav) + 28px);align-self:start;max-height:calc(100vh - var(--nav) - 56px);overflow:auto;padding:40px 0 24px;scrollbar-width:thin}
.toc__title{font:500 11.5px/1 var(--mono);color:var(--ink-3);letter-spacing:.04em;margin:0 0 14px}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:t}
.toc li a{display:flex;gap:10px;padding:6px 0 6px 12px;margin-left:-12px;border-left:2px solid transparent;color:var(--ink-2);text-decoration:none;font-size:14px;line-height:1.35;transition:color .2s,border-color .2s}
.toc li a span{font:500 11.5px/1.6 var(--mono);color:var(--ink-3);min-width:1.6em}
.toc li a:hover{color:var(--ink)}
.toc li a[aria-current="true"]{color:var(--ink);border-left-color:var(--or)}
.toc__dl{margin-top:22px;display:grid;gap:8px;font-size:13.5px}
.toc__dl a{display:inline-flex;align-items:center;gap:8px;color:var(--ink-2);text-decoration:none}
.toc__dl a:hover{color:var(--or-text)}
.toc__dl svg{width:15px;height:15px;flex:none}
.tocm{display:none}
main{min-width:0;padding:8px 0 40px}

/* ---------- sections ---------- */
.sec{padding:56px 0 8px;border-bottom:1px solid var(--line)}
.sec:last-of-type{border-bottom:0}
.sec>h2{font-size:clamp(1.55rem,2.3vw,2rem);line-height:1.15;font-weight:600;letter-spacing:-.022em;display:flex;gap:14px;align-items:baseline}
.sec>h2 .n{font:500 13px/1 var(--mono);color:var(--ink-3);letter-spacing:0;transform:translateY(-3px)}
.sec h3{font-size:1.14rem;line-height:1.3;font-weight:600;letter-spacing:-.01em;margin:34px 0 10px}
.lede{font-size:1.1rem;line-height:1.6;color:var(--ink-2);max-width:68ch;margin:14px 0 0}
.prose{max-width:70ch}
.prose p{margin:14px 0 0}
.prose ul,.prose ol{margin:12px 0 0;padding-left:1.25em}
.prose li{margin:6px 0}
.muted{color:var(--ink-3)}
.small{font-size:14px;line-height:1.55}

/* verdict */
.verdict{margin-top:24px;padding:20px 22px;background:var(--sheet);border:1px solid var(--line);border-radius:10px;max-width:74ch}
.verdict p{margin:0;font-size:1.06rem;line-height:1.55}
.verdict p+p{margin-top:10px}
.risks{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:0;max-width:78ch;border-top:1px solid var(--line)}
.risks li{display:grid;grid-template-columns:34px 1fr;gap:4px 12px;padding:18px 0;border-bottom:1px solid var(--line)}
.risks .k{font:500 13px/1.6 var(--mono);color:var(--or-text)}
.risks b{display:block;font-size:1.04rem;letter-spacing:-.005em}
.risks p{margin:6px 0 0;color:var(--ink-2)}
.todo{margin:14px 0 0;padding-left:1.25em;max-width:74ch}
.todo li{margin:8px 0}

/* tables */
.tw{margin-top:18px;overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--sheet)}
table{border-collapse:collapse;width:100%;font-size:14.5px;line-height:1.45;font-variant-numeric:tabular-nums}
th,td{padding:10px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
thead th{font:500 11.5px/1.3 var(--mono);color:var(--ink-3);letter-spacing:.03em;background:var(--well);white-space:nowrap;position:sticky;top:0}
tbody tr:last-child>*{border-bottom:0}
tbody th{font-weight:600}
td.num,th.num{text-align:right;white-space:nowrap}
.tw--kv th{width:30%;font-weight:500;color:var(--ink-2);font-size:14px}
table a{color:var(--ink);text-decoration-color:var(--line-2)}
table a:hover{color:var(--or-text)}
.id{font:500 13px/1.4 var(--mono);white-space:nowrap}
.nw{white-space:nowrap}
th .note{display:block;margin-top:4px;font-weight:400;font-size:13px;line-height:1.45;color:var(--ink-3);max-width:46ch}
.hash{font:400 12.5px/1.4 var(--mono);color:var(--ink-2)}

/* chips */
.chip{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:5px;font:500 12px/1 var(--mono);letter-spacing:.01em;white-space:nowrap;vertical-align:middle}
.chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.chip--critical{color:var(--crit);background:var(--crit-bg)}
.chip--high{color:var(--high);background:var(--high-bg)}
.chip--medium{color:var(--med);background:var(--med-bg)}
.chip--low{color:var(--low);background:var(--low-bg)}
.chip--info{color:var(--info);background:var(--info-bg)}
.chip--fixed,.chip--pass{color:var(--ok);background:var(--ok-bg)}
.chip--open,.chip--fail{color:var(--high);background:transparent;box-shadow:inset 0 0 0 1px currentColor}
.chip--na{color:var(--ink-3);background:var(--well)}
.chip--partial{color:var(--med);background:transparent;box-shadow:inset 0 0 0 1px currentColor}
.chip--fail::before,.chip--open::before{background:currentColor}

/* severity rubric */
.rubric{margin-top:16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:10px;background:var(--sheet);overflow:hidden}
.rubric div{padding:14px 16px;border-right:1px solid var(--line)}
.rubric div:last-child{border-right:0}
.rubric p{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--ink-2)}
.rubric b{font-variant-numeric:tabular-nums}

/* findings */
.find{margin-top:22px;background:var(--sheet);border:1px solid var(--line);border-radius:12px;padding:22px 24px 8px;scroll-margin-top:calc(var(--nav) + 20px)}
.find__head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.find__head .id{font-size:13.5px;color:var(--ink-2)}
.find h3{margin:10px 0 0;font-size:1.22rem;line-height:1.3;letter-spacing:-.012em;max-width:60ch}
.find__meta{margin:14px 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.find__meta div{padding:10px 12px 10px 0}
.find__meta dt{font:500 11px/1.3 var(--mono);color:var(--ink-3);letter-spacing:.03em}
.find__meta dd{margin:4px 0 0;font-size:14px;line-height:1.4}
.find__body{display:grid;grid-template-columns:120px minmax(0,1fr);gap:0 18px;margin-top:6px}
.find__body dt{font-weight:600;font-size:14px;padding:12px 0 0}
.find__body dd{margin:0;padding:11px 0 0;color:var(--ink-2);max-width:68ch}
.find__body dd p{margin:0}.find__body dd p+p{margin-top:8px}
.retest{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
details.tx{margin:14px 0 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
details.tx+details.tx{margin-top:-4px}
details.tx>summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:11px 14px;font-size:14px;color:var(--ink-2);border-radius:10px}
details.tx>summary::-webkit-details-marker{display:none}
details.tx>summary:hover{color:var(--ink)}
details.tx>summary .chev{width:14px;height:14px;flex:none;transition:transform .25s cubic-bezier(.2,.7,.2,1)}
details.tx[open]>summary .chev{transform:rotate(90deg)}
details.tx>summary b{color:var(--ink);font-weight:600}
.tx__body{padding:4px 14px 14px;display:grid;gap:10px}
.msg{border-radius:8px;padding:12px 14px;font-size:14.5px;line-height:1.58;white-space:pre-wrap;overflow-wrap:anywhere}
.msg>span{display:block;font:500 11px/1.3 var(--mono);color:var(--ink-3);letter-spacing:.03em;margin-bottom:6px;white-space:normal}
.msg--user{background:var(--well)}
.msg--bot{background:var(--sheet);border:1px solid var(--line)}
.msg--hist{opacity:.86}
mark.flag{background:var(--or-wash);color:inherit;border-radius:3px;box-shadow:inset 0 -2px 0 var(--or);padding:0 2px}
.redact{display:inline;white-space:nowrap;-webkit-box-decoration-break:clone;box-decoration-break:clone;background:var(--ink);color:#F5F4F0;font:500 .82em/1.5 var(--mono);padding:0 6px;border-radius:3px;letter-spacing:.02em;vertical-align:baseline}
.redact::before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border:1.5px solid currentColor;border-radius:1px;vertical-align:-0px;opacity:.75}
mark.flag .redact{box-shadow:0 0 0 2px var(--or)}
.grades{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;font-size:13.5px;line-height:1.5}
.grades>div{padding:10px 12px;border:1px dashed var(--line-2);border-radius:8px}
.grades b{display:block;font:500 11px/1.3 var(--mono);color:var(--ink-3);letter-spacing:.03em;margin-bottom:6px}
.grades ul{margin:0;padding:0;list-style:none}
.grades li{display:flex;gap:8px;align-items:baseline}
.grades li+li{margin-top:3px}
.grades .ok{color:var(--ok)}.grades .bad{color:var(--high)}
.grades code{font-size:12px}
.trace{font:400 12.5px/1.6 var(--mono);color:var(--ink-2);overflow-wrap:anywhere}
.trace i{font-style:normal;color:var(--ink)}
.tx__note{font-size:12.5px;color:var(--ink-3);margin:0}

/* chart */
.chart{margin-top:20px;padding:20px 22px 16px;background:var(--sheet);border:1px solid var(--line);border-radius:12px}
.chart__legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:var(--ink-2);margin-bottom:12px}
.chart__legend i{display:inline-block;width:12px;height:12px;border-radius:2px;margin-right:7px;vertical-align:-1px}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart .lab{font:500 15px var(--sans);fill:var(--ink)}
.chart .sub{font:400 12.5px var(--mono);fill:var(--ink-3)}
.chart .val{font:500 13.5px var(--mono);fill:var(--ink-2)}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .bar{transform-box:fill-box;transform-origin:left center}
.chart .b0{fill:var(--ink)}
.chart .b1{fill:var(--or)}
.chart .zero{fill:none;stroke:var(--or);stroke-width:1.5}

/* matrix + questionnaire */
.qa{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid var(--line);max-width:80ch}
.qa li{padding:18px 0;border-bottom:1px solid var(--line)}
.qa__q{display:flex;gap:12px;align-items:baseline;font-weight:600;font-size:1.02rem}
.qa__q span{font:500 12.5px/1 var(--mono);color:var(--ink-3);min-width:2.2em}
.qa__a{margin:8px 0 0 calc(2.2em + 12px);color:var(--ink-2)}
.qa__ev{margin:8px 0 0 calc(2.2em + 12px);font-size:13px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.copy{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:1px solid var(--line-2);border-radius:6px;background:var(--sheet);color:var(--ink-2);font:500 12px/1 var(--mono);cursor:pointer;transition:border-color .2s,color .2s,transform .12s}
.copy:hover{border-color:var(--ink-3);color:var(--ink)}
.copy:active{transform:translateY(1px)}
.copy svg{width:13px;height:13px}
.copy[data-done]{color:var(--ok);border-color:var(--ok)}

.fixlist{counter-reset:f}
.fixlist td:first-child{white-space:nowrap}
.pri{font:600 12px/1 var(--mono);padding:4px 6px;border-radius:4px;background:var(--ink);color:var(--paper)}
.pri--p1{background:var(--ink-2)}.pri--p2{background:var(--well);color:var(--ink-2)}

/* sign-off + CTA */
.sign{margin-top:22px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--ink);max-width:880px}
.sign div{padding:12px 16px 0 0}
.sign dt{font:500 11px/1.3 var(--mono);color:var(--ink-3);letter-spacing:.03em}
.sign dd{margin:6px 0 0;font-size:15px}
.cta{margin:56px 0 0;background:var(--night);color:var(--night-ink);border-radius:14px;padding:clamp(26px,4vw,44px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 40px;align-items:end}
.cta h2{font-size:clamp(1.6rem,2.8vw,2.4rem);line-height:1.08;letter-spacing:-.03em;font-weight:600;max-width:22ch}
.cta p{margin:12px 0 0;color:#C9CFD8;max-width:56ch;font-size:1.02rem}
.cta__act{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.btn{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 20px 0 22px;border-radius:8px;font:600 15px/1 var(--sans);text-decoration:none;white-space:nowrap;transition:background .2s,transform .15s,box-shadow .2s}
.btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.btn:hover svg{transform:translate(2px,-2px)}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--or);color:#0C0604}
.btn--primary:hover{background:#FF6A3A;color:#0C0604}
.btn--ghost{color:var(--night-ink);box-shadow:inset 0 0 0 1px rgba(238,241,245,.28)}
.btn--ghost:hover{color:var(--night-ink);box-shadow:inset 0 0 0 1px rgba(238,241,245,.6)}
.cta a:focus-visible{outline-color:var(--or)}
.fineprint{margin-top:26px;font-size:13px;color:var(--ink-3);max-width:90ch}

/* reveal motion (content is visible by default; JS adds .rv only when motion is allowed) */
.rv .sec{opacity:0;transform:translateY(14px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.rv .sec.in{opacity:1;transform:none}
.rv .chart .bar{transform:scaleX(0);transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.rv .chart.in .bar{transform:scaleX(1)}
.rv .chart .val{opacity:0;transition:opacity .4s .7s}
.rv .chart.in .val{opacity:1}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ---------- responsive ---------- */
@media (max-width:1100px){.meta{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.cover__grid{grid-template-columns:minmax(0,1fr)}.score{border-left:0;padding:22px 0 0;border-top:1px solid var(--night-line);flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 18px}.score__arrow{transform:rotate(-90deg);margin:0}.score__note{flex-basis:100%;max-width:60ch}}
@media (max-width:1023px){
  .layout{grid-template-columns:minmax(0,1fr);gap:0}
  .toc{display:none}
  .tocm{display:block;position:sticky;top:var(--nav);z-index:40;background:rgba(245,244,240,.94);-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line)}
  .tocm summary{list-style:none;max-width:1240px;margin:0 auto;padding:12px var(--gut);display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-size:14.5px;font-weight:500}
  .tocm summary::-webkit-details-marker{display:none}
  .tocm summary span{font:500 12px/1 var(--mono);color:var(--ink-3)}
  .tocm summary svg{width:14px;height:14px;transition:transform .25s}
  .tocm[open] summary svg{transform:rotate(180deg)}
  .tocm ol{list-style:none;margin:0 auto;padding:0 var(--gut) 14px;max-width:1240px;columns:2;column-gap:28px}
  .tocm li a{display:flex;gap:10px;padding:7px 0;color:var(--ink-2);text-decoration:none;font-size:14.5px;break-inside:avoid}
  .tocm li a span{font:500 11.5px/1.7 var(--mono);color:var(--ink-3);min-width:1.6em}
  .cta{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:767px){
  body{font-size:16px}
  .meta{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .rubric{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .rubric div:nth-child(2){border-right:0}
  .rubric div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .find{padding:18px 16px 6px}
  .find__meta{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .find__body{grid-template-columns:minmax(0,1fr)}
  .find__body dt{padding-top:14px}
  .find__body dd{padding-top:4px}
  .grades{grid-template-columns:minmax(0,1fr)}
  .sign{grid-template-columns:minmax(0,1fr)}
  .tocm ol{columns:1}
  .score__arrow{width:28px}
  th,td{padding:9px 10px}
  .qa__a,.qa__ev{margin-left:0}
  .tw--stack table,.tw--stack tbody,.tw--stack tr,.tw--stack td,.tw--stack th{display:block;width:100%}
  .tw--stack thead{display:none}
  .tw--stack tr{padding:10px 12px;border-bottom:1px solid var(--line)}
  .tw--stack tbody tr:last-child{border-bottom:0}
  .tw--stack td,.tw--stack tbody th{border:0;padding:3px 0}
  .tw--stack td[data-l]::before{content:attr(data-l);display:block;font:500 11px/1.4 var(--mono);color:var(--ink-3);letter-spacing:.03em}
}
@media (max-width:560px){.score{flex-direction:column;align-items:flex-start}.score__arrow{transform:none;margin:0 0 0 16px;height:22px}}
@media (max-width:420px){.cover h1{font-size:2.05rem}.meta dd{font-size:14px}.score__num{font-size:3rem}}

/* ---------- print ---------- */
@page{size:A4;margin:16mm 14mm 18mm}
@page cover{margin:0}
@media print{
  html,body{background:#fff;font-size:10.5pt}
  .khx,.khx-foot,.toc,.tocm,.skip,.copy,.noprint,.cta__act{display:none!important}
  .layout{display:block;max-width:none;padding:0}
  .cover{-webkit-print-color-adjust:exact;print-color-adjust:exact;break-after:page;height:297mm;overflow:hidden;display:flex;page:cover}
  .cover__in{padding:34mm 18mm 18mm;display:flex;flex-direction:column;width:100%;max-width:none}
  .cover__grid{grid-template-columns:minmax(0,1fr);gap:22px}
  .cover h1{font-size:30pt;max-width:18ch}
  .cover__sub{font-size:12.5pt}
  .score{border:0;border-top:1px solid var(--night-line);padding:16px 0 0;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 18px}
  .score__num{font-size:44pt}
  .score__arrow{transform:rotate(-90deg);margin:0}
  .score__note{flex-basis:100%;max-width:none}
  .meta{margin-top:auto;grid-template-columns:repeat(2,minmax(0,1fr))}
  .meta dd{font-size:10pt}
  .cover--short{height:auto;break-after:auto;page:auto}
  .cover--short .cover__in{padding:16mm 14mm 12mm}
  .cover--short .meta{margin-top:18px;grid-template-columns:repeat(4,minmax(0,1fr))}
  body[data-page="art50"] .sec{padding-top:10px}
  body[data-page="art50"] details.tx,body[data-page="art50"] .sec h3{display:none}
  body[data-page="art50"] table{font-size:9pt}
  body[data-page="art50"] th,body[data-page="art50"] td{padding:6px 8px}
  body[data-page="art50"] .cta{margin-top:14px;padding:16px 20px}
  .sec{padding:18px 0 6px;border:0;opacity:1!important;transform:none!important}
  .sec--break{break-before:page}
  .chart,.verdict,.rubric,.qa li,.risks li,tr,.find__head,.find h3,.find__meta{break-inside:avoid}
  .find h3,.sec h3,.sec>h2{break-after:avoid}
  .find{border-color:#ccc}
  details.tx{break-inside:auto}
  .msg{break-inside:auto}
  .chip,.redact,mark.flag,.pri,.cta,.chart,.msg--user,.tw thead th{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  thead th{position:static}
  a{color:var(--ink);text-decoration:none}
  .cta{break-inside:avoid;margin-top:24px}
  .tw{overflow:visible}
}
