:root{--bg:#f7f8fa;--card:#fff;--ink:#14171c;--mute:#5b6572;--line:#dfe3e9;--acc:#2457d6;--acc-ink:#fff;--ok:#157347;--okbg:#e5f4ec;--warn:#9a6700;--warnbg:#fff4d6;--bad:#b42318;--badbg:#fde8e6;--code:#eef1f5;--radius:12px}
@media (prefers-color-scheme:dark){:root{--bg:#0f1216;--card:#171b21;--ink:#e8ebf0;--mute:#98a2b0;--line:#2a313b;--acc:#6b93ff;--acc-ink:#0b1020;--ok:#5fd18f;--okbg:#12281c;--warn:#f0c34e;--warnbg:#2e2610;--bad:#ff8a80;--badbg:#321816;--code:#1e242c}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;overflow-x:hidden}
a{color:var(--acc)}
h1{font-size:1.9rem;line-height:1.2;margin:.2em 0 .4em}h2{font-size:1.3rem;margin:0 0 .6em}h3{font-size:1.05rem;margin:1em 0 .3em}
p{margin:.5em 0}
code,pre,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88rem}
pre{background:var(--code);padding:12px;border-radius:8px;overflow-x:auto;white-space:pre-wrap;word-break:break-all;margin:.5em 0}
.top{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--card);border-bottom:1px solid var(--line)}
.brand{font-weight:700;color:var(--ink);text-decoration:none;font-size:1.1rem;min-height:44px;display:inline-flex;align-items:center}
#nav{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
#nav a:not(.btn){min-height:44px;display:inline-flex;align-items:center}
.who{color:var(--mute);font-size:.9rem}
.wrap{max-width:960px;margin:0 auto;padding:20px 16px 56px}
.narrow{max-width:520px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:0 0 16px}
.btn,button{font:inherit;min-height:44px;min-width:44px;padding:8px 16px;border-radius:10px;border:1px solid var(--acc);background:var(--acc);color:var(--acc-ink);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn.ghost,button.ghost{background:transparent;color:var(--acc)}
.btn.danger,button.danger{background:var(--bad);border-color:var(--bad);color:#fff}
.btn.big{font-size:1.05rem;padding:10px 22px}
button[disabled]{opacity:.55;cursor:not-allowed}
:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
label{display:block;font-weight:600;margin:.8em 0 .25em}
.hint{color:var(--mute);font-size:.88rem;font-weight:400}
input,select,textarea{font:inherit;width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
input[type=checkbox]{width:auto;min-height:0;width:20px;height:20px;vertical-align:middle;margin-right:8px}
textarea{min-height:140px;font-family:ui-monospace,Menlo,monospace;font-size:.85rem}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.row>*{flex:0 1 auto}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:640px){.grid2{grid-template-columns:1fr}}
.notice{padding:10px 12px;border-radius:8px;margin:.6em 0;border:1px solid var(--line)}
.notice[hidden]{display:none}
.notice.err{background:var(--badbg);color:var(--bad);border-color:var(--bad)}
.notice.ok{background:var(--okbg);color:var(--ok);border-color:var(--ok)}
.notice.warn{background:var(--warnbg);color:var(--warn);border-color:var(--warn)}
.pill{display:inline-block;padding:1px 10px;border-radius:99px;font-size:.8rem;font-weight:600;border:1px solid var(--line)}
.pill.allow,.pill.pass{background:var(--okbg);color:var(--ok);border-color:var(--ok)}
.pill.deny{background:var(--badbg);color:var(--bad);border-color:var(--bad)}
.pill.defer{background:var(--warnbg);color:var(--warn);border-color:var(--warn)}
.hero{padding:36px 0 8px}.hero p.lead{font-size:1.2rem;color:var(--mute);max-width:640px}
.steps{counter-reset:s;list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.steps li{counter-increment:s;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px}
.steps li::before{content:counter(s);display:flex;width:28px;height:28px;border-radius:50%;background:var(--acc);color:var(--acc-ink);align-items:center;justify-content:center;font-weight:700;margin-bottom:6px}
.bar{height:14px;border-radius:7px;background:var(--code);overflow:hidden;margin:6px 0}
.bar>i{display:block;height:100%;background:var(--acc)}.bar.hot>i{background:var(--bad)}
.tablewrap{overflow-x:auto}
table{border-collapse:collapse;width:100%}
th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top;font-size:.9rem}
@media (max-width:640px){
 table.stack thead{display:none}
 table.stack tr{display:block;border-bottom:1px solid var(--line);padding:6px 0}
 table.stack td{display:block;border:0;padding:2px 0}
 table.stack td[data-l]::before{content:attr(data-l) ": ";color:var(--mute)}
}
.keycard{font-family:ui-monospace,Menlo,monospace;font-size:1.3rem;letter-spacing:.04em;padding:12px;background:var(--code);border-radius:8px;text-align:center;word-break:break-all}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px}
.kv dt{color:var(--mute)}.kv dd{margin:0;word-break:break-word}
@media (max-width:480px){.kv{grid-template-columns:1fr}.kv dt{margin-top:6px}}
.human li{margin:.25em 0}
.pending-dot{background:var(--warn);color:#000;border-radius:99px;padding:0 9px;font-size:.85rem;margin-left:6px}
details summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
footer{max-width:960px;margin:0 auto;padding:0 16px 40px;color:var(--mute);font-size:.88rem}
.tabs{display:flex;gap:8px;flex-wrap:wrap}
@media (prefers-reduced-motion:no-preference){.btn,button{transition:filter .15s}.btn:hover,button:hover{filter:brightness(1.08)}}
