:root{--ink:#1c1b2b;--muted:#66647a;--line:#dedcec;--bg:#f4f3fa;--card:#fff;--primary:#5d3f8f;--primary-d:#47306f;--accent:#f28c28;--ok:#1f7a4d;--bad:#b3261e;--warn:#9a5b00;--r:10px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--primary)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #2b6cff;outline-offset:2px}
.skip{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:8px 12px;z-index:50}
.skip:focus{left:8px;top:8px}
.top{background:var(--primary);color:#fff}
.bar{max-width:1200px;margin:0 auto;padding:10px 16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.brand{color:#fff;font-weight:700;text-decoration:none;margin-right:8px}
.nav{display:flex;flex-wrap:wrap;gap:2px;flex:1}
.nav a{color:#fff;text-decoration:none;padding:6px 10px;border-radius:8px;opacity:.92}
.nav a:hover,.nav a[aria-current=page]{background:rgba(255,255,255,.18);opacity:1}
.who{display:flex;gap:8px;align-items:center;font-size:13px}
.who form{margin:0}
.who select{max-width:180px}
main{max-width:1200px;margin:0 auto;padding:20px 16px 60px}
h1{font-size:24px;margin:0 0 14px}
h2{font-size:18px;margin:26px 0 10px}
h3{font-size:15px;margin:16px 0 6px}
.lead{color:var(--muted);margin:0 0 16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin:0 0 16px}
.card.narrow{max-width:460px;margin:8vh auto}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.stat{font-size:28px;font-weight:700;line-height:1.1}
.stat small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:4px}
table{width:100%;border-collapse:collapse;background:var(--card)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--card);margin:0 0 16px}
.tablewrap table{margin:0}
th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#faf9fe;white-space:nowrap}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;white-space:nowrap}
.muted{color:var(--muted)}
.small{font-size:13px}
.badge{display:inline-block;padding:1px 9px;border-radius:99px;font-size:12px;font-weight:600;background:#ece9f6;color:#3a3358}
.badge.ok{background:#dff3e8;color:var(--ok)}
.badge.bad{background:#fbe3e1;color:var(--bad)}
.badge.warn{background:#fdf0d6;color:var(--warn)}
label{display:block;font-weight:600;margin:12px 0 4px}
label.inline{display:inline-flex;gap:8px;align-items:center;font-weight:400;margin:6px 14px 6px 0}
input[type=text],input[type=email],input[type=password],input[type=url],input[type=number],input[type=date],input[type=file],select,textarea{width:100%;padding:8px 10px;border:1px solid #b9b6cf;border-radius:8px;background:#fff;font:inherit;color:inherit}
input[type=color]{width:56px;height:36px;padding:2px;border:1px solid #b9b6cf;border-radius:8px;background:#fff}
textarea{min-height:90px;resize:vertical}
.row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end}
.btn,button{display:inline-block;padding:8px 16px;border:1px solid var(--primary);border-radius:8px;background:var(--primary);color:#fff;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover,button:hover{background:var(--primary-d)}
.btn.sec,button.sec{background:#fff;color:var(--primary)}
.btn.sec:hover,button.sec:hover{background:#f0edf9}
.btn.danger,button.danger{background:var(--bad);border-color:var(--bad)}
.btn.small,button.small{padding:3px 10px;font-size:13px}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;align-items:center}
.flash{padding:10px 14px;border-radius:8px;margin:0 0 12px;border:1px solid}
.flash.ok{background:#e8f6ee;border-color:#a9d9bd}
.flash.error{background:#fdeceb;border-color:#f0b8b4}
.flash.warn{background:#fff6e0;border-color:#efd391}
code,pre,textarea.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
textarea.code{background:#f7f6fb;min-height:76px}
.copy{display:flex;gap:8px;align-items:flex-start}
.copy textarea{flex:1}
details{margin:10px 0}
summary{cursor:pointer;font-weight:600}
.pager{display:flex;gap:10px;align-items:center;margin:10px 0}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px}
.kv dt{color:var(--muted)}
.kv dd{margin:0}
iframe.preview{width:100%;height:760px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
body.auth{display:flex;min-height:100vh;align-items:center;justify-content:center;padding:16px}
body.auth .card{width:100%;max-width:440px}
.codes{columns:2;font-family:ui-monospace,monospace;font-size:15px}
@media (max-width:640px){h1{font-size:21px}.nav{order:3;flex-basis:100%}.card{padding:14px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
