/* Kiuki QA — one stylesheet for both doors. Light, quiet, readable; no script. */
:root{
  --bg:#f5f6f3;--surface:#fff;--raised:#f0f2ef;--ink:#15201a;--ink2:#3a4740;--mute:#69766f;--faint:#9aa59f;
  --line:#e3e7e3;--line2:#d3d9d4;
  --brand:#17603f;--brand-h:#114d32;--brand-soft:#e7f2ec;--brand-ink:#0f3f29;
  --focus:#2f6fe4;
  --ok:#12733b;--ok-bg:#e7f5ec;--warn:#9a5a06;--warn-bg:#fcf1de;--bad:#b42318;--bad-bg:#fdecea;
  --info:#1f4fb8;--info-bg:#eaf0fc;--neutral:#4a5650;--neutral-bg:#eef1ee;
  --r:12px;--r-sm:8px;
  --shadow:0 1px 2px rgba(17,28,22,.05),0 1px 1px rgba(17,28,22,.03);
  --font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0f1512;--surface:#151d19;--raised:#1b2520;--ink:#e8eee9;--ink2:#c3cdc6;--mute:#93a099;--faint:#6c7a72;
  --line:#26322c;--line2:#33413a;
  --brand:#3fae7a;--brand-h:#58c290;--brand-soft:#173327;--brand-ink:#bfe8d3;
  --ok:#5fd093;--ok-bg:#15301f;--warn:#f0b25a;--warn-bg:#33270f;--bad:#ff8a7e;--bad-bg:#3a1714;
  --info:#8cb0ff;--info-bg:#17223d;--neutral:#b6c1bb;--neutral-bg:#212b26;
  --shadow:none;
}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:1.6rem;line-height:1.25;font-weight:680;letter-spacing:-.015em;margin:0}
h2{font-size:1.05rem;font-weight:650;margin:0}
h3{font-size:.95rem;font-weight:650;margin:0}
p{margin:.4rem 0}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}

/* frame */
.top{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.top .in{max-width:1160px;margin:0 auto;padding:0 24px;height:60px;display:flex;align-items:center;gap:28px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:680;letter-spacing:-.01em;white-space:nowrap}
.brand:hover{text-decoration:none}
.mark{width:28px;height:28px;border-radius:8px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:.8rem;font-weight:750}
.brand small{display:block;font-weight:500;color:var(--mute);font-size:.72rem;letter-spacing:0;margin-top:-2px}
.nav{display:flex;gap:4px;flex:1;overflow-x:auto}
.nav a{color:var(--ink2);padding:7px 12px;border-radius:999px;font-size:.9rem;font-weight:550;white-space:nowrap}
.nav a:hover{background:var(--raised);text-decoration:none}
.nav a.on{background:var(--brand-soft);color:var(--brand-ink)}
.who{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--mute);white-space:nowrap}
.who form{margin:0}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--raised);border:1px solid var(--line);display:grid;place-items:center;font-size:.72rem;font-weight:650;color:var(--ink2)}
main{max-width:1160px;margin:0 auto;padding:28px 24px 64px}
.foot{max-width:1160px;margin:0 auto;padding:0 24px 32px;color:var(--faint);font-size:.8rem}

/* page head */
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.head .sub{color:var(--mute);margin-top:6px}
.crumbs{font-size:.85rem;color:var(--mute);margin-bottom:10px}
.crumbs a{color:var(--mute)}.crumbs span{margin:0 6px;color:var(--faint)}

/* surfaces */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:20px}
.card+.card{margin-top:16px}
.card h2{margin-bottom:12px}
.card .ch{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.card .ch h2{margin:0}
.cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px}
.mt{margin-top:20px}
@media (max-width:900px){.cols{grid-template-columns:1fr}.grid3{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.grid2,.grid3{grid-template-columns:1fr}.top .in{padding:0 16px;gap:14px}main{padding:20px 16px 48px}.who .name{display:none}}

/* numbers */
.stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:20px}
@media (max-width:1000px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;color:var(--ink);box-shadow:var(--shadow);display:block}
.stat:hover{text-decoration:none;border-color:var(--line2)}
.stat.on{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}
.stat .n{font-size:1.65rem;font-weight:700;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.stat .l{font-size:.8rem;color:var(--mute);margin-top:4px}
.stat.bad .n{color:var(--bad)}.stat.warn .n{color:var(--warn)}.stat.ok .n{color:var(--ok)}
.ready{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.ready .big{font-size:2.4rem;font-weight:720;letter-spacing:-.03em;line-height:1}
.ready .txt{color:var(--mute);font-size:.9rem}
.bar{height:8px;background:var(--raised);border-radius:999px;overflow:hidden;flex:1;min-width:160px}
.bar>i{display:block;height:100%;background:var(--brand);border-radius:999px}
.bar.thin{height:5px;min-width:80px;max-width:140px}

/* chips and tags */
.chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:.76rem;font-weight:600;white-space:nowrap;background:var(--neutral-bg);color:var(--neutral)}
.chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}
.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.bad{background:var(--bad-bg);color:var(--bad)}.chip.info{background:var(--info-bg);color:var(--info)}
.tag{display:inline-block;border:1px solid var(--line2);border-radius:6px;padding:0 6px;font-size:.72rem;color:var(--ink2);margin-right:4px;line-height:1.6}
.ver{font:600 .72rem var(--mono);color:var(--mute);background:var(--raised);border-radius:5px;padding:1px 6px}
.filters{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 18px}
.filters a{border:1px solid var(--line2);background:var(--surface);color:var(--ink2);padding:6px 12px;border-radius:999px;font-size:.85rem;font-weight:550}
.filters a:hover{text-decoration:none;border-color:var(--faint)}
.filters a.on{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.search{display:flex;gap:8px;margin-bottom:18px;max-width:520px}
.search input{margin:0}

/* register */
.sect{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}
.sect>header{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--line)}
.sect>header h2{flex:1}
.sect>header .count{font-size:.82rem;color:var(--mute);white-space:nowrap}
.rows{list-style:none;margin:0;padding:0}
.rows li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:12px 20px;border-top:1px solid var(--line)}
.rows li:first-child{border-top:0}
.rows li:hover{background:var(--raised)}
.rows .t{font-weight:560;color:var(--ink)}
.rows .t a{color:var(--ink)}
.rows .meta{font-size:.8rem;color:var(--mute);margin-top:3px}
.rows .meta span+span::before{content:"·";margin:0 6px;color:var(--faint)}
.rows .files{font-size:.8rem;color:var(--mute);white-space:nowrap;text-align:right;min-width:60px}
@media (max-width:620px){.rows li{grid-template-columns:1fr auto}.rows .files{display:none}}

/* documents */
.docs{list-style:none;margin:0;padding:0}
.docs li{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--line)}
.docs li:first-child{border-top:0;padding-top:4px}
.ficon{width:40px;height:48px;border-radius:7px;background:var(--brand-soft);color:var(--brand-ink);display:grid;place-items:center;font:700 .62rem var(--mono);letter-spacing:.04em;flex:none}
.docs .body{flex:1;min-width:0}
.docs .name{font-weight:600;word-break:break-word}
.docs .meta{font-size:.8rem;color:var(--mute);margin-top:2px}
.docs .acts{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:8px}
.docs .acts form{display:inline;margin:0}

/* tables */
table.list{width:100%;border-collapse:collapse;font-size:.9rem}
table.list th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);font-weight:650;padding:0 12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
table.list td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}
table.list tr:last-child td{border-bottom:0}
table.list td.num,table.list th.num{text-align:right;font-variant-numeric:tabular-nums}
table.list .sub{font-size:.8rem;color:var(--mute);margin-top:2px}
.tablewrap{overflow-x:auto}
dl.kv{display:grid;grid-template-columns:160px minmax(0,1fr);gap:10px 16px;margin:0;font-size:.92rem}
dl.kv dt{color:var(--mute)}dl.kv dd{margin:0}
@media (max-width:620px){dl.kv{grid-template-columns:1fr}dl.kv dt{margin-top:6px}}
ul.plain{list-style:none;margin:0;padding:0;columns:2;column-gap:24px}
ul.plain li{padding:5px 0;break-inside:avoid}
@media (max-width:620px){ul.plain{columns:1}}

/* forms */
label{display:block;font-size:.82rem;font-weight:600;color:var(--ink2)}
label .hint{font-weight:450}
input,select,textarea{display:block;width:100%;margin-top:6px;font:inherit;font-size:.92rem;color:var(--ink);background:var(--surface);border:1px solid var(--line2);border-radius:var(--r-sm);padding:9px 11px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px rgba(47,111,228,.15)}
input[type=checkbox]{display:inline-block;width:auto;margin:0 8px 0 0;accent-color:var(--brand);vertical-align:-2px}
input[type=file]{padding:7px;background:var(--raised)}
.checks{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:8px}
.checks label{font-weight:500;color:var(--ink)}
.formfoot{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}
.formfoot .hint{flex:1}
.hint{color:var(--mute);font-size:.8rem;font-weight:450}
.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:.9rem;font-weight:600;border-radius:var(--r-sm);padding:9px 16px;border:1px solid transparent;background:var(--brand);color:#fff;cursor:pointer;white-space:nowrap;line-height:1.2}
.btn:hover,button:hover{background:var(--brand-h);text-decoration:none}
.btn.secondary,button.secondary{background:var(--surface);color:var(--ink);border-color:var(--line2)}
.btn.secondary:hover,button.secondary:hover{background:var(--raised)}
button.link{background:none;border:0;color:var(--brand);padding:0;font-weight:550;font-size:.82rem}
button.link:hover{background:none;text-decoration:underline}
button.link.danger{color:var(--bad)}
button.danger{color:var(--bad);background:var(--surface);border-color:var(--line2)}button.danger:hover{background:var(--bad-bg)}
button.small,.btn.small{padding:5px 11px;font-size:.8rem}

/* notes */
.flash{background:var(--ok-bg);color:var(--ok);border-radius:var(--r-sm);padding:10px 14px;margin-bottom:18px;font-weight:550}
.note{background:var(--raised);border-radius:var(--r-sm);padding:12px 14px;color:var(--ink2);font-size:.9rem}
.warnbox{background:var(--warn-bg);color:var(--warn);border-radius:var(--r-sm);padding:12px 14px;font-size:.9rem}
.empty{color:var(--mute);text-align:center;padding:28px 12px;font-size:.92rem}
.muted{color:var(--mute)}
.audbar{display:flex;gap:10px;align-items:center;background:var(--brand-soft);color:var(--brand-ink);border-radius:var(--r-sm);padding:10px 14px;margin-bottom:22px;font-size:.88rem}

/* codes and the door */
.code{font:700 1.7rem/1.2 var(--mono);letter-spacing:.08em;background:var(--raised);border:1px dashed var(--line2);border-radius:var(--r);padding:18px 20px;text-align:center;user-select:all;margin:14px 0}
.door{max-width:440px;margin:7vh auto 0}
.door .card{padding:32px}
.door .mark{width:44px;height:44px;border-radius:12px;font-size:1rem;margin-bottom:18px}
.door h1{font-size:1.45rem}
.door input[name=code]{font:600 1.1rem var(--mono);letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:12px}
.door input[name=otp]{font:600 1.5rem var(--mono);letter-spacing:.4em;text-align:center;padding:12px}
.door button{width:100%;padding:12px;margin-top:16px}
.audits{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-bottom:22px}
.audit{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;color:var(--ink);box-shadow:var(--shadow);display:block}
.audit:hover{text-decoration:none;border-color:var(--line2)}
.audit .s{display:flex;justify-content:space-between;align-items:center;gap:8px;font-weight:650}
.audit .d{font-size:.82rem;color:var(--mute);margin-top:4px}
.log td{font-size:.84rem}
.mb{margin-bottom:16px}.mt-s{margin-top:8px}.nomb{margin-bottom:0}.grow{flex:1;min-width:220px}.h2gap{margin:6px 0 12px}
/* bar widths: no inline styles under the CSP */
.p0{width:0%}.p1{width:1%}.p2{width:2%}.p3{width:3%}.p4{width:4%}.p5{width:5%}.p6{width:6%}.p7{width:7%}.p8{width:8%}.p9{width:9%}.p10{width:10%}.p11{width:11%}.p12{width:12%}.p13{width:13%}.p14{width:14%}.p15{width:15%}.p16{width:16%}.p17{width:17%}.p18{width:18%}.p19{width:19%}.p20{width:20%}.p21{width:21%}.p22{width:22%}.p23{width:23%}.p24{width:24%}.p25{width:25%}.p26{width:26%}.p27{width:27%}.p28{width:28%}.p29{width:29%}.p30{width:30%}.p31{width:31%}.p32{width:32%}.p33{width:33%}.p34{width:34%}.p35{width:35%}.p36{width:36%}.p37{width:37%}.p38{width:38%}.p39{width:39%}.p40{width:40%}.p41{width:41%}.p42{width:42%}.p43{width:43%}.p44{width:44%}.p45{width:45%}.p46{width:46%}.p47{width:47%}.p48{width:48%}.p49{width:49%}.p50{width:50%}.p51{width:51%}.p52{width:52%}.p53{width:53%}.p54{width:54%}.p55{width:55%}.p56{width:56%}.p57{width:57%}.p58{width:58%}.p59{width:59%}.p60{width:60%}.p61{width:61%}.p62{width:62%}.p63{width:63%}.p64{width:64%}.p65{width:65%}.p66{width:66%}.p67{width:67%}.p68{width:68%}.p69{width:69%}.p70{width:70%}.p71{width:71%}.p72{width:72%}.p73{width:73%}.p74{width:74%}.p75{width:75%}.p76{width:76%}.p77{width:77%}.p78{width:78%}.p79{width:79%}.p80{width:80%}.p81{width:81%}.p82{width:82%}.p83{width:83%}.p84{width:84%}.p85{width:85%}.p86{width:86%}.p87{width:87%}.p88{width:88%}.p89{width:89%}.p90{width:90%}.p91{width:91%}.p92{width:92%}.p93{width:93%}.p94{width:94%}.p95{width:95%}.p96{width:96%}.p97{width:97%}.p98{width:98%}.p99{width:99%}.p100{width:100%}
.srcline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.srcline .n{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.srcline .n.ok{color:var(--ok)}.srcline .n.warn{color:var(--warn)}.srcline .n.bad{color:var(--bad)}
.srcline .l{font-size:.8rem;color:var(--mute)}
@media (max-width:760px){.srcline{grid-template-columns:repeat(2,minmax(0,1fr))}}
