:root{color-scheme:dark;--bg: #02060f;--panel: #050d22;--panel2: #081633;--border: rgba(255,255,255,.09);--text: #f4f8ff;--muted: #98a8c6;--accent: #029de2;--accent2: #01b9f1;--accent-deep: #0e3f8a;--ok: #01b9f1;--warn: #ffb454;--bad: #fb030c;--split: linear-gradient(100deg, #fb030c 0 49.5%, #01b9f1 50.5% 100%);--glow-blue: 0 0 32px rgba(2,157,226,.3);--glow-red: 0 0 32px rgba(251,3,12,.3)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Segoe UI Variable Text,Segoe UI,system-ui,-apple-system,Roboto,sans-serif}a{color:var(--accent2);text-decoration:none}h1{font-size:22px;margin:0 0 4px}h2{font-size:16px;margin:0 0 12px}.sub{color:var(--muted);margin:0 0 20px}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.side{background:linear-gradient(180deg,var(--panel),var(--bg));box-shadow:inset -1px 0 0 var(--border),inset 0 3px #fb030c;border-image:none;border-right:1px solid var(--border);padding:18px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;padding:4px 10px 16px;letter-spacing:.3px}.brand img{width:34px;height:auto;display:block}.brand span{background:linear-gradient(100deg,#fb030c,#029de2 60%,#01b9f1);-webkit-background-clip:text;background-clip:text;color:transparent}.nav a{display:block;padding:8px 10px;border-radius:8px;color:var(--muted)}.nav a:hover{background:var(--panel2);color:var(--text)}.nav a.active{background:linear-gradient(135deg,var(--accent-deep),var(--accent));color:#fff;box-shadow:var(--glow-blue)}.me{margin-top:auto;border-top:1px solid var(--border);padding:12px 10px 0;color:var(--muted);font-size:12px}.main{padding:28px 32px;max-width:1200px;width:100%}.card{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--border);border-radius:14px;padding:18px;margin-bottom:18px}.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:18px}.stat{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--border);border-radius:14px;padding:16px}.stat b{display:block;font-size:26px;font-family:Segoe UI Variable Display,Segoe UI,system-ui,sans-serif}.stat span{color:var(--muted);font-size:12px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.5px}tr:last-child td{border-bottom:0}.tablewrap{overflow-x:auto}input,select,textarea{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);border-color:transparent}label{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.form{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.full{grid-column:1 / -1}.check{display:flex;align-items:center;gap:8px;color:var(--text);font-size:14px}button,.btn{background:linear-gradient(135deg,var(--accent-deep),var(--accent));color:#fff;border:0;border-radius:8px;padding:8px 14px;font:inherit;font-weight:600;cursor:pointer;display:inline-block}button:hover{filter:brightness(1.12);box-shadow:var(--glow-blue)}button.ghost{background:#ffffff0a;border:1px solid var(--border);color:var(--text)}button.danger{background:linear-gradient(135deg,#8a0a1c,#fb030c)}button.danger:hover{box-shadow:var(--glow-red)}button.ok{background:linear-gradient(135deg,#0795c4,#01b9f1);color:#00121f}button:disabled{opacity:.5;cursor:not-allowed}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:var(--panel2);border:1px solid var(--border)}.badge.active{color:var(--bad);border-color:var(--bad)}.badge.pending{color:var(--warn);border-color:var(--warn)}.badge.revoked,.badge.expired,.badge.completed,.badge.denied,.badge.rejected{color:var(--muted)}.badge.accepted{color:var(--ok);border-color:var(--ok)}.msg{padding:10px 12px;border-radius:8px;margin-bottom:14px}.msg.err{background:#fb030c1a;border:1px solid var(--bad)}.msg.ok{background:#01b9f11a;border:1px solid var(--ok)}.muted{color:var(--muted)}.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}.evid{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.evid a{background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:6px 10px}.evid img{max-width:160px;max-height:110px;display:block;border-radius:6px;margin-bottom:4px}.permgrid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-top:12px}.permgrid>div{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--panel2);border-radius:8px;padding:6px 10px}.permgrid select{width:130px;padding:4px 6px}.center{min-height:100vh;display:grid;place-items:center;padding:20px}.login{max-width:380px;text-align:center}@media (max-width: 800px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap}.me{margin:0;border:0;padding:0}.main{padding:18px 16px}}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.on{background:var(--ok);box-shadow:0 0 0 3px #01b9f140}.dot.off{background:var(--bad)}.badge.suspended{color:var(--warn);border-color:var(--warn)}.badge.applied,.badge.good{color:var(--ok);border-color:var(--ok)}.badge.failed,.badge.bad{color:var(--bad);border-color:var(--bad)}.tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.two{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.timeline{list-style:none;margin:0;padding:0}.timeline li{padding:8px 0;border-bottom:1px solid var(--border)}.timeline li:last-child{border-bottom:0}.preview{background:var(--panel2);border-left:4px solid var(--accent);border-radius:6px;padding:12px 14px;white-space:pre-wrap}.preview b.t{display:block;margin-bottom:6px}.chart{width:100%;height:auto;display:block}.chart text{fill:var(--muted);font-size:11px}.legend{display:flex;gap:14px;flex-wrap:wrap;margin:6px 0 10px;color:var(--muted);font-size:12px}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}.hbar{display:grid;grid-template-columns:150px 1fr 40px;gap:10px;align-items:center;margin:6px 0;font-size:13px}.hbar .track{background:var(--panel2);border-radius:4px;height:10px}.hbar .fill{height:10px;border-radius:0 4px 4px 0;background:linear-gradient(90deg,#0e3f8a,#01b9f1)}.help{color:var(--muted);font-size:12px;margin-top:4px}.pub{max-width:640px;margin:0 auto;padding:32px 16px}.rule{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:10px;opacity:.75}.rule.on{opacity:1;border-color:#029de280}.ladder-row{display:grid;grid-template-columns:100px 190px minmax(160px,1fr) 60px auto;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}.ladder-row:last-of-type{border-bottom:0}@media (max-width: 800px){.ladder-row{grid-template-columns:1fr 1fr}}.login{position:relative}.login .logo{width:120px;height:auto;margin:0 auto 14px;display:block;filter:drop-shadow(0 0 28px rgba(2,157,226,.35))}.login:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:12px 12px 0 0;background:var(--split)}.splitrule{height:3px;border:0;border-radius:3px;background:var(--split);margin:0 0 18px;opacity:.9}:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}.badge.answered{color:var(--ok);border-color:var(--ok)}.badge.overdue{color:#fff;background:var(--bad);border-color:var(--bad)}.badge.open{color:var(--warn);border-color:var(--warn)}.thread{display:grid;gap:10px;margin-bottom:16px}.bubble{max-width:85%;padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:var(--panel2);white-space:pre-wrap;overflow-wrap:anywhere}.bubble.staff{justify-self:end;background:linear-gradient(135deg,#0e3f8a8c,#029de240);border-color:#029de266}.bubble.system{justify-self:center;color:var(--muted);font-size:13px}.bubble small{display:block;color:var(--muted);margin-bottom:4px;font-size:11px}@media (prefers-reduced-motion: reduce){button:hover{box-shadow:none}}.authwrap{width:100%;max-width:520px;display:grid;gap:16px;justify-items:center;text-align:center}.authwrap h1{margin:0}.authwrap .card{width:100%;margin:0}.stepper{list-style:none;margin:0;padding:0;display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.stepper li{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid var(--border);color:var(--muted);font-size:13px}.stepper li span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--panel2);font-size:12px;font-weight:700}.stepper .is-done{color:var(--accent2);border-color:#01b9f180}.stepper .is-now{color:var(--text);border-color:var(--accent2);box-shadow:var(--glow-blue)}.qr{background:#fff;padding:10px;border-radius:12px;display:block;margin:12px auto}.secret{font-family:ui-monospace,Menlo,Consolas,monospace;color:var(--accent2);word-break:break-all}.codes{list-style:none;margin:12px 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.codes li{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px;text-align:center;letter-spacing:.06em}.codeinput{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:22px;letter-spacing:.3em;text-align:center}.policylist{margin:12px 0;padding-left:22px;display:grid;gap:8px}.linkbtn{background:none;border:0;color:var(--accent2);cursor:pointer;padding:6px 0 0;font:inherit;box-shadow:none}.linkbtn:hover{text-decoration:underline;background:none;box-shadow:none;filter:none}.btn.disabled{opacity:.5;pointer-events:none}.modal{position:fixed;inset:0;background:#02060fcc;backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;z-index:100}.modal .card{max-width:420px;margin:0}.switch{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--border)}.switch input{width:20px;height:20px;margin-top:3px;flex:none}.switch label{display:grid;gap:2px;color:var(--text);font-size:14px;margin:0}.switch label span{font-size:13px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto}
