/* QUIETKEYS by kavsec.agency, checklist.kavsec.agency. Dark charter. */
@font-face{font-family:"EB Garamond";src:url(/assets/fonts/ebgaramond-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(/assets/fonts/ebgaramond-500.woff2) format("woff2");font-weight:500 700;font-style:normal;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(/assets/fonts/ebgaramond-400i.woff2) format("woff2");font-weight:400 700;font-style:italic;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/assets/fonts/jetbrainsmono-400.woff2) format("woff2");font-weight:400 500;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/assets/fonts/jetbrainsmono-700.woff2) format("woff2");font-weight:600 800;font-style:normal;font-display:swap}

:root{
  --bg:#0b0b0c;--panel:#121213;--rule:#2a2a2d;--muted:#5c5c61;--quiet:#8e8e94;--text:#c9c9cd;--cream:#ece9e2;
  --o1:#ffb454;--o2:#f7931a;--o3:#d9730d;--o4:#7a3a08;
  --serif:"EB Garamond",Georgia,"Times New Roman",serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --gutter:clamp(16px,4vw,72px);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:24px}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background-color:var(--bg);
  background-image:linear-gradient(rgba(247,147,26,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(247,147,26,.045) 1px,transparent 1px);
  background-size:42px 42px;color:var(--text);font-family:var(--serif);font-size:18px;line-height:1.55;overflow-x:hidden}
main{flex:1 0 auto;outline:none}
img,svg{max-width:100%}
a{color:var(--o1);text-underline-offset:3px}
a:hover{color:var(--cream)}
:focus-visible{outline:2px solid var(--o1);outline-offset:3px}
h1,h2,h3,p{margin:0}
code{font-family:var(--mono);font-size:.82em;color:var(--cream);background:var(--panel);border:1px solid var(--rule);padding:0 .3em;word-break:break-word}
[hidden]{display:none!important}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* layout: full width, gutters only */
.wrap{width:100%;padding-inline:var(--gutter)}
.mono{font-family:var(--mono)}
.o1{color:var(--o1)}.o2{color:var(--o2)}.cream{color:var(--cream)}.muted{color:var(--muted)}
.eyebrow{font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--quiet)}
.display{font-weight:500;font-size:clamp(40px,5.2vw,88px);line-height:1.03;letter-spacing:-.01em;color:var(--cream)}
.h1{font-weight:500;font-size:clamp(36px,4vw,60px);line-height:1.05;color:var(--cream)}
.h2{font-weight:500;font-size:clamp(28px,2.6vw,42px);line-height:1.1;color:var(--cream)}
.lead{font-size:clamp(19px,1.5vw,23px);line-height:1.5;max-width:40em}
.lead-s{font-size:20px;line-height:1.5;max-width:52em}
.meta{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--quiet)}
.small{font-family:var(--mono);font-size:12px;line-height:1.6;color:var(--quiet)}

/* skip link */
.skip{position:absolute;left:8px;top:-60px;z-index:10;background:var(--o2);color:var(--bg);font-family:var(--mono);font-size:14px;font-weight:700;padding:12px 16px;text-decoration:none}
.skip:focus{top:8px;color:var(--bg)}

/* header */
.site-head{border-bottom:1px solid var(--rule);background:var(--bg)}
.head-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 32px;padding-block:12px}
.brand{display:inline-flex;align-items:center;gap:14px;min-height:48px;text-decoration:none}
.brand-name{font-family:var(--mono);font-weight:700;font-size:18px;letter-spacing:.04em;color:var(--cream)}
.brand-name.big{font-size:clamp(28px,4vw,44px)}
.brand-by{display:inline-flex;align-items:center;min-height:44px;font-family:var(--mono);font-size:12px;color:var(--quiet);text-decoration:none}
.brand-by:hover{color:var(--cream)}
.cursor{color:var(--o2);animation:qk-blink 1.1s steps(1,end) infinite}
@keyframes qk-blink{0%,49%{opacity:1}50%,100%{opacity:0}}
.nav{display:flex;flex-wrap:wrap;align-items:center;gap:4px 24px;font-family:var(--mono);font-size:13px}
.nav-link{display:inline-flex;align-items:center;min-height:44px;color:var(--text);text-decoration:none}
.nav-link[aria-current]{color:var(--cream);text-decoration:underline;text-decoration-color:var(--o2);text-underline-offset:6px}
.nav-sep{width:1px;height:20px;background:var(--rule)}
.langs{display:flex;gap:2px}
.lang-link{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;color:var(--quiet);text-decoration:none}
.lang-link[aria-current]{color:var(--o2);text-decoration:underline;text-underline-offset:6px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border:1px solid transparent;border-radius:0;
  font-family:var(--mono);font-size:13px;font-weight:500;letter-spacing:.04em;text-decoration:none;cursor:pointer;background:transparent;color:var(--cream)}
.btn-lg{min-height:54px;padding:0 26px;font-size:14px;letter-spacing:.06em;text-transform:uppercase}
.btn-sm{min-height:44px;padding:0 16px;font-size:12px}
.btn-primary{background:var(--o2);border-color:var(--o2);color:var(--bg);font-weight:700}
.btn-primary:hover{background:var(--o1);border-color:var(--o1);color:var(--bg)}
.btn-ghost{border-color:var(--quiet);color:var(--cream)}
.btn-ghost:hover{border-color:var(--cream);color:var(--cream)}
.btn-warn{border-color:var(--o3);color:var(--o1)}
.btn-warn:hover{border-color:var(--o1);color:var(--o1)}
.btn-link{min-height:44px;padding:0;border:0;background:none;color:var(--quiet);font-family:var(--mono);font-size:13px;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.btn-link:hover{color:var(--cream)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}

/* progress bars */
.bar{height:4px;background:var(--rule);overflow:hidden}
.bar-lg{height:6px}
.bar>i{display:block;height:100%;width:0;background:var(--o2);transition:width .25s ease}

/* home */
.hero{display:flex;flex-wrap:wrap;align-items:center;gap:56px;padding-block:clamp(56px,8vw,120px) clamp(48px,6vw,96px)}
.hero-text{flex:1.4 1 560px;min-width:0;display:flex;flex-direction:column;gap:28px}
.term{flex:1 1 380px;min-width:0;max-width:760px;background:var(--panel);border:1px solid var(--rule);font-family:var(--mono);font-size:13px;line-height:1.5}
.term-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--rule);font-size:11px;letter-spacing:.12em;color:var(--quiet)}
.dots{display:flex;gap:6px}.dots i{width:8px;height:8px;border:1px solid var(--muted)}.dots i.on{background:var(--o4);border-color:var(--o4)}
.term-body{padding:22px 18px 26px;display:flex;flex-direction:column;gap:10px}
.term-row{display:flex;gap:8px;align-items:baseline}
.leader{flex:1;border-bottom:1px dotted var(--muted);min-width:16px}
.tools{padding-bottom:clamp(56px,7vw,110px)}
.tools .eyebrow{margin-bottom:28px}
.tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));gap:24px}
.card{background:var(--panel);border:1px solid var(--rule);padding:clamp(24px,2.6vw,40px);display:flex;flex-direction:column;gap:20px}
.card .tag{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--quiet)}
.card h3{font-weight:500;font-size:clamp(26px,2.2vw,34px);line-height:1.15;color:var(--cream)}
.card p{max-width:46em}
.stats{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;border-top:1px solid var(--rule);padding-top:20px}
.stats div{display:flex;flex-direction:column-reverse;gap:4px}
.stats dt{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--quiet)}
.stats dd{margin:0;font-family:var(--mono);font-size:24px;color:var(--cream)}
.more{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;min-height:44px;font-family:var(--mono);font-size:14px;text-decoration:none;border-bottom:1px solid var(--o4)}
.band{border-block:1px solid var(--rule);background:rgba(18,18,19,.7)}
.band-in{padding-block:clamp(56px,6vw,96px);display:flex;flex-direction:column;gap:40px}
.priv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:32px}
.priv-item{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--o4);padding-top:20px}
.priv-item h3{font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:.12em;color:var(--o1)}
.priv-item p{font-size:17px}
.device-wrap{padding-top:clamp(48px,6vw,90px)}
.device{border:1px dashed var(--muted);padding:32px;display:flex;flex-wrap:wrap;align-items:center;gap:32px}
.device-info{flex:1 1 520px;min-width:0;display:flex;flex-direction:column;gap:18px}
.device-actions{flex:1 1 300px;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.dev-row{display:flex;flex-direction:column;gap:8px}
.dev-line{display:flex;justify-content:space-between;gap:16px;font-size:19px;color:var(--cream)}
.dev-line .mono{font-size:13px;color:var(--text)}
.device-s{padding:20px;flex-direction:column;align-items:stretch;gap:12px}
.device-s .device-actions{justify-content:flex-start;flex:none}

/* footer */
.site-foot{border-top:1px solid var(--rule);margin-top:96px;background:var(--bg)}
.foot-in{padding-block:32px 40px;display:flex;flex-direction:column;gap:14px}
.foot-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--quiet)}
.foot-credit{max-width:900px;font-family:var(--mono);font-size:12px;line-height:1.7;color:var(--quiet)}

/* toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);max-width:min(640px,calc(100% - 32px));background:var(--panel);border:1px solid var(--o2);
  color:var(--cream);font-family:var(--mono);font-size:13px;line-height:1.5;padding:14px 18px;z-index:20;opacity:0;pointer-events:none;transition:opacity .2s}
.toast.show{opacity:1}
.banner{border:1px solid var(--o3);color:var(--o1);font-family:var(--mono);font-size:13px;padding:12px 16px;margin-top:16px}

/* checklist */
.cl{padding-top:clamp(40px,5vw,72px)}
.page-head{display:flex;flex-direction:column;gap:14px;margin-bottom:48px}
.overall{display:flex;flex-direction:column;gap:8px;max-width:820px;margin-top:12px}
.overall .dev-line{font-size:13px}
.notice-s{font-family:var(--mono);font-size:13px;color:var(--o1)}
.cl-layout{display:flex;flex-wrap:wrap;align-items:flex-start;gap:40px}
.cl-side{flex:0 1 320px;min-width:min(100%,280px);display:flex;flex-direction:column;gap:24px}
.cl-main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:24px}
.secs{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
.secs a{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border:1px solid transparent;color:var(--text);text-decoration:none;font-size:18px;line-height:1.2}
.secs a:hover{border-color:var(--rule);color:var(--cream)}
.secs a[aria-current]{border-color:var(--o2);background:rgba(247,147,26,.08);color:var(--cream)}
.secs .num{font-family:var(--mono);font-size:11px;color:var(--quiet)}
.secs a[aria-current] .num,.secs a[aria-current] .count{color:var(--o1)}
.secs .name{flex:1}
.secs .count{font-family:var(--mono);font-size:12px;color:var(--quiet);white-space:nowrap}
.secs .count.full{color:var(--o1)}
.cl-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pill{min-height:44px;padding:0 16px;border:1px solid var(--muted);background:transparent;color:var(--text);font-family:var(--mono);font-size:12px;letter-spacing:.06em;cursor:pointer}
.pill:hover{border-color:var(--cream);color:var(--cream)}
.pill[aria-pressed="true"]{background:var(--o2);border-color:var(--o2);color:var(--bg);font-weight:700}
.pill-n:not(:empty)::before{content:"· "}
.toggle{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--text);cursor:pointer}
.toggle input,.item-row input{width:20px;height:20px;margin:0;flex:none;accent-color:var(--o2);cursor:pointer}
.sec{display:flex;flex-direction:column;gap:20px;scroll-margin-top:24px}
.js .sec:not(.is-active){display:none}
.no-js .sec{padding-bottom:48px;border-bottom:1px solid var(--rule)}
.sec-head{display:flex;flex-direction:column;gap:10px}
.sec-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px}
.sec-row .mono{font-size:13px}
.sec-row h2{outline:none}
.sec-desc{color:var(--quiet);font-size:18px}
.items{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,520px),1fr));gap:0 32px}
.item{border-top:1px solid var(--rule);padding:14px 4px 10px;scroll-margin-top:24px}
.item.flash{animation:qk-flash 2.4s ease-out}
@keyframes qk-flash{0%,30%{background:rgba(247,147,26,.16)}100%{background:transparent}}
.item-row{display:flex;gap:14px;align-items:flex-start}
.item-row input{margin-top:5px}
.item-title{flex:1;min-width:0;font-size:20px;line-height:1.3;color:var(--cream);cursor:pointer}
.item.done .item-title{color:var(--quiet);text-decoration:line-through;text-decoration-color:var(--o3)}
.badge{flex:none;margin-top:3px;min-width:104px;padding:3px 8px;text-align:center;border:1px solid var(--quiet);color:var(--text);font-family:var(--mono);font-size:11px;letter-spacing:.06em}
.b-E{background:var(--o2);border-color:var(--o2);color:var(--bg);font-weight:700}
.kav{flex:none;margin-top:5px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--o1);border-bottom:1px dotted var(--o4);cursor:help}
.b-A{border-color:var(--o3);color:var(--o1)}
.item-details{margin:6px 0 0 34px}
.item-details summary{display:inline-flex;align-items:center;min-height:32px;font-family:var(--mono);font-size:12px;color:var(--quiet);cursor:pointer;list-style:none}
.item-details summary::-webkit-details-marker{display:none}
.item-details summary::before{content:"+";display:inline-block;width:1.2em;color:var(--o2)}
.item-details[open] summary::before{content:"−"}
.item-details summary:hover{color:var(--cream)}
.item-details .qk-res{font-family:var(--mono);font-size:12px;line-height:1.7;color:var(--quiet);padding:0 0 10px}
.res-k{color:var(--o2);letter-spacing:.08em;margin-right:4px}
.act a.res-link{margin-top:-10px}
.item-details p{font-size:16px;line-height:1.55;color:var(--text);padding:4px 0 8px;max-width:62em}
.js .item.hide{display:none}
.pager{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:13px;border-top:1px solid var(--rule);padding-top:16px}
.pager a{display:inline-flex;align-items:center;min-height:44px}

/* threat model */
.tm{padding-top:clamp(40px,5vw,72px)}
.notice{max-width:52em;display:flex;flex-direction:column;gap:16px}
.tm-intro{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start}
.tm-intro-text{flex:1.4 1 560px;min-width:0;display:flex;flex-direction:column;gap:22px}
.tm-points{list-style:none;margin:0;padding:0;flex:1 1 360px;min-width:0;display:flex;flex-direction:column;border-top:1px solid var(--rule)}
.tm-points li{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--rule);font-size:18px}
.tm-points li span{font-family:var(--mono);font-size:12px;color:var(--o1);padding-top:4px}
.tm-layout{display:flex;flex-wrap:wrap;align-items:flex-start;gap:40px}
.tm-side{flex:0 1 300px;min-width:min(100%,260px)}
.tm-steps{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
.tm-steps button{width:100%;display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border:1px solid transparent;background:transparent;color:var(--text);
  font-family:var(--serif);font-size:18px;text-align:left;cursor:pointer}
.tm-steps button:hover{border-color:var(--rule);color:var(--cream)}
.tm-steps button[aria-current]{border-color:var(--o2);background:rgba(247,147,26,.08);color:var(--cream)}
.tm-steps .num{font-family:var(--mono);font-size:11px;color:var(--quiet)}
.tm-steps .name{flex:1}
.tm-steps .count{font-family:var(--mono);font-size:12px;color:var(--quiet)}
.tm-steps .count.full{color:var(--o1)}
.tm-main{flex:999 1 620px;min-width:0;display:flex;flex-direction:column;gap:28px}
.tm-head{display:flex;flex-direction:column;gap:12px}
.tm-head .h2{outline:none}
.tm-prog{display:flex;flex-direction:column;gap:10px;max-width:1100px}
.tm-prog .dev-line{font-size:13px;font-family:var(--mono)}
.qcard{background:var(--panel);border:1px solid var(--rule);padding:clamp(22px,3vw,44px);display:flex;flex-direction:column;gap:22px;max-width:1100px}
.qnum{display:flex;gap:12px;align-items:center;font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--o1)}
.qtag{border:1px solid var(--quiet);color:var(--text);padding:2px 8px;font-size:11px;letter-spacing:.08em}
.qtext{font-weight:500;font-size:clamp(26px,2.4vw,36px);line-height:1.2;color:var(--cream);outline:none}
.why{border-block:1px solid var(--rule);padding:14px 0;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline}
.why span{flex:none;font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--o1)}
.why p{flex:1 1 320px;font-size:17px}
.opts{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;min-width:0}
.opt{display:flex;gap:16px;align-items:center;min-height:64px;padding:14px 20px;border:1px solid var(--muted);background:var(--bg);cursor:pointer}
.opt:hover{border-color:var(--quiet)}
.opt input{width:20px;height:20px;margin:0;flex:none;accent-color:var(--o2);cursor:pointer}
.opt .k{flex:none;width:20px;font-family:var(--mono);font-size:13px;color:var(--quiet)}
.opt .l{font-size:20px;line-height:1.35;color:var(--text)}
.opt.sel{border-color:var(--o2);background:rgba(247,147,26,.08)}
.opt.sel .k{color:var(--o1)}.opt.sel .l{color:var(--cream)}
.tm-nav{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:1100px}
.tm-nav .right{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}

/* results */
.res{display:flex;flex-direction:column;gap:24px}
.qcard .btn-link{align-self:flex-start}
.res-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 32px;margin-bottom:8px}
.res-head .left{display:flex;flex-direction:column;gap:14px}
.res-grid{display:flex;flex-wrap:wrap;gap:24px}
.panel{background:var(--panel);border:1px solid var(--rule);padding:clamp(22px,2.6vw,40px);display:flex;flex-direction:column;gap:18px;min-width:0}
.panel-score{flex:1 1 380px}
.panel-areas{flex:1.7 1 560px}
.panel-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px}
.panel-head .small{font-size:11px}
.score{display:flex;align-items:baseline;gap:12px}
.score b{font-family:var(--mono);font-size:clamp(72px,7vw,112px);line-height:.9;font-weight:500}
.score span{font-family:var(--mono);font-size:16px;color:var(--quiet)}
.lvl-0{color:var(--quiet)}.lvl-1{color:var(--o3)}.lvl-2{color:var(--o2)}.lvl-3{color:var(--o1)}
.profile{font-family:var(--mono);font-size:14px;font-weight:700;letter-spacing:.12em}
.scale{position:relative;display:flex;gap:2px;height:8px;margin-top:6px}
.scale span{display:block}
.s0{flex:30;background:var(--quiet)}.s1{flex:20;background:var(--o3)}.s2{flex:20;background:var(--o2)}.s3{flex:30;background:var(--o1)}
.scale .mark{position:absolute;top:-6px;width:2px;height:20px;background:var(--cream)}
.scale-n{display:flex;font-family:var(--mono);font-size:11px;color:var(--quiet)}
.scale-n span:nth-child(1){flex:30}.scale-n span:nth-child(2){flex:20}.scale-n span:nth-child(3){flex:20}.scale-n span:nth-child(4){flex:30;display:flex;justify-content:space-between}
.legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-family:var(--mono);font-size:11px;color:var(--quiet)}
.legend li{display:inline-flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;display:inline-block}
.area{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr) 150px;gap:16px;align-items:center;min-height:48px;padding:6px 0;border-top:1px solid var(--rule)}
.area-name{font-size:18px;line-height:1.25;color:var(--cream)}
.area-val{font-family:var(--mono);font-size:12px;text-align:right}
.area .bar{height:8px}
.bar>i.f0{background:var(--quiet)}.bar>i.f1{background:var(--o3)}.bar>i.f2{background:var(--o2)}.bar>i.f3{background:var(--o1)}
.stakes{font-family:var(--mono);font-size:12px;color:var(--o1);border:1px solid var(--o4);padding:10px 14px}
.threats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr));column-gap:40px}
.threat{display:flex;gap:16px;padding:16px 0;border-top:1px solid var(--rule)}
.threat .n{flex:none;width:34px;padding-top:4px;font-family:var(--mono);font-size:13px;color:var(--o1)}
.threat .b{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.threat .t{font-size:20px;line-height:1.3;color:var(--cream)}
.threat .m{font-family:var(--mono);font-size:12px;line-height:1.5;color:var(--quiet)}
.threat .r{flex:none;padding-top:5px;font-family:var(--mono);font-size:12px}
.plan{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:24px}
.group{display:flex;flex-direction:column;gap:12px}
.group h3{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.12em}
.group h3 span:last-child{font-weight:400;color:var(--quiet)}
.g0 h3{color:var(--o1);border-color:var(--o2)}.g1 h3{color:var(--o2);border-color:var(--o4)}.g2 h3{color:var(--text)}
.acts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.act{background:var(--bg);border:1px solid var(--rule);padding:20px 20px 8px;display:flex;flex-direction:column;gap:6px}
.act .n{font-family:var(--mono);font-size:11px;color:var(--quiet)}
.act .t{font-size:20px;line-height:1.3;color:var(--cream)}
.act .w{font-size:16px;line-height:1.5}
.act a{align-self:flex-start;display:inline-flex;align-items:center;min-height:44px;font-family:var(--mono);font-size:12px}
.empty{font-family:var(--mono);font-size:12px;color:var(--quiet);padding:8px 0}
.exportbar{border:1px dashed var(--muted);padding:24px 32px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
.exportbar p{flex:1 1 360px}
.print-head{display:none}

/* root and 404 */
.center-page main{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:18px;min-height:80vh}
.nf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:32px;width:100%;margin-top:16px}
.nf{border-top:1px solid var(--o4);padding-top:16px;display:flex;flex-direction:column;gap:10px}

@media (max-width:640px){
  .area{grid-template-columns:minmax(0,1fr) 120px}
  .area .bar{grid-column:1/-1;grid-row:2}
  .device{padding:20px}
  .item-details{margin-left:0}
  .badge{min-width:0}
}
@media (max-width:1099px){
  .tm-side,.cl-side{order:2}
}
@media (min-width:1100px){
  .cl-side,.tm-side{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

/* print: light, sober, no decoration */
@media print{
  @page{margin:16mm}
  :root{color-scheme:light}
  html,body{background:#fff}
  body{color:#111;font-size:11pt}
  .site-head .nav,.skip,.site-foot .foot-credit,.toast,.exportbar,.tm-nav,.tm-side,.cl-side,.cl-tools,.btn,.btn-link,.res-head a,.act a,.pager{display:none!important}
  .site-head,.site-foot{background:#fff}.site-head{border:0}.brand-name{color:#111}.cursor{display:none}
  .g0 h3,.g1 h3{color:#a34f00;border-color:#d9730d}.g2 h3{color:#444;border-color:#bbb}
  .panel,.act,.qcard{background:#fff;border-color:#bbb}
  .act,.threat,.area,.panel-score{break-inside:avoid}
  .h1,.h2,.display,.cream,.threat .t,.act .t,.area-name,.score span,.qtext{color:#111}
  .eyebrow,.small,.threat .m,.act .n,.empty,.foot-row{color:#444}
  .lvl-0{color:#555}.lvl-1,.lvl-2,.lvl-3,.o1,.threat .n,.profile{color:#a34f00}
  .bar{background:#ddd}.bar>i,.bar>i.f2,.bar>i.f3{background:#d9730d}.bar>i.f0{background:#888}.bar>i.f1{background:#e8a35c}
  .scale .mark{background:#111}
  .print-head{display:block;font-family:var(--mono);font-size:9pt;color:#444;margin-bottom:8mm}
  .site-foot{margin-top:8mm;border-color:#bbb;break-inside:avoid}
  a{color:#111}
}
