:root{--bg:#f6f7f9;--card:#fff;--ink:#16202c;--mut:#5d6b7a;--line:#dde2e8;--acc:#0b5ea8;--acc2:#e8f1fa;--ok:#1a7f4b;--warn:#b26a00;--bad:#b3261e}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#10151b;--card:#18202a;--ink:#e6ebf1;--mut:#9aa8b7;--line:#2b3744;--acc:#5aa9ee;--acc2:#16314b;--ok:#4cc38a;--warn:#e0a03a;--bad:#f2766d}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 system-ui,"Segoe UI",Roboto,Arial,sans-serif}
.top{display:flex;gap:16px;align-items:center;padding:8px 16px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;flex-wrap:wrap}
.brand{color:var(--acc)}
nav{display:flex;gap:2px;flex-wrap:wrap;flex:1}
nav a{padding:6px 10px;border-radius:6px;color:var(--ink);text-decoration:none}
nav a.on,nav a:hover{background:var(--acc2);color:var(--acc)}
.who{color:var(--mut);font-size:12px}
.wrap{max-width:1200px;margin:0 auto;padding:16px}
h1{font-size:20px;margin:0 0 12px}h2{font-size:16px;margin:20px 0 8px}h3{font-size:14px;margin:12px 0 4px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.card,.box{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px}
.card b{display:block;font-size:26px;color:var(--acc)}.card span{color:var(--mut);font-size:12px}
.tblwrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:8px}
table{border-collapse:collapse;width:100%}
th,td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-size:12px;color:var(--mut);font-weight:600;white-space:nowrap}
tr:last-child td{border-bottom:0}
tr.link{cursor:pointer}tr.link:hover{background:var(--acc2)}
.tag{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;background:var(--acc2);color:var(--acc);white-space:nowrap}
.tag.ok{background:#e1f4ea;color:var(--ok)}.tag.warn{background:#fff1d6;color:var(--warn)}.tag.bad{background:#fde6e4;color:var(--bad)}
@media (prefers-color-scheme:dark){.tag.ok{background:#17382a}.tag.warn{background:#3b2e12}.tag.bad{background:#3d1d1a}}
.sc{display:inline-block;min-width:44px;text-align:center;padding:2px 6px;border-radius:6px;font-weight:600}
.s-hi{background:#e1f4ea;color:var(--ok)}.s-mid{background:#fff1d6;color:var(--warn)}.s-lo{background:var(--bg);color:var(--mut)}
@media (prefers-color-scheme:dark){.s-hi{background:#17382a}.s-mid{background:#3b2e12}}
button,.btn{font:inherit;padding:6px 12px;border-radius:6px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-block}
button.pri,.btn.pri{background:var(--acc);border-color:var(--acc);color:#fff}
button.bad{color:var(--bad);border-color:var(--bad)}
button:disabled{opacity:.5;cursor:not-allowed}
input,select,textarea{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);width:100%}
textarea{min-height:70px;resize:vertical}
label{display:block;font-size:12px;color:var(--mut);margin:8px 0 2px}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row>*{flex:0 0 auto}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:860px){.grid2{grid-template-columns:1fr}}
.mut{color:var(--mut)}.sm{font-size:12px}
ul.tight{margin:4px 0;padding-left:18px}
iframe.pdf{width:100%;height:78vh;border:1px solid var(--line);border-radius:8px;background:#fff}
dialog{border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);max-width:640px;width:calc(100% - 32px);padding:16px}
dialog::backdrop{background:rgba(0,0,0,.4)}
.toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:8px;z-index:20}
.q{padding:8px;border:1px solid var(--line);border-radius:8px;margin:6px 0;cursor:pointer;background:var(--card)}
.q.cur{border-color:var(--acc);background:var(--acc2)}.q.done{opacity:.6}
.live{height:44vh;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px}
.rec{color:var(--bad);font-weight:600}
.note{background:#fff8e1;border:1px solid #f0d78a;border-radius:8px;padding:8px 12px;margin:8px 0;color:#5b4500}
@media (prefers-color-scheme:dark){.note{background:#2b2410;border-color:#6b5a1c;color:#e8d58b}}
