:root{--bg:#0a0d0f;--surface:#11171a;--surface-raised:#182024;--border:hsla(0,0%,100%,.08);--text:#e8eef0;--text-muted:#8a979b;--primary:#2bd4c4;--primary-strong:#1fb3a6;--primary-soft:rgba(43,212,196,.14);--danger:#ff5c7a;--success:#3ddc97;--radius:14px;--font:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px}a{color:inherit;text-decoration:none}code{font-family:var(--mono);font-size:.85em}h1{font-size:24px;font-weight:700;letter-spacing:-.02em;margin:0 0 6px}h3{font-size:16px;font-weight:650;margin:0}.muted{color:var(--text-muted)}.app{min-height:100vh}.topbar{display:flex;align-items:center;gap:24px;padding:0 24px;height:58px;border-bottom:1px solid var(--border);background:var(--surface);position:-webkit-sticky;position:sticky;top:0;z-index:10}.brand{font-weight:700;letter-spacing:-.02em}.brand span{color:var(--primary)}.nav{display:flex;gap:4px;margin-left:8px}.nav a{padding:7px 12px;border-radius:10px;color:var(--text-muted);font-weight:550}.nav a:hover{color:var(--text);background:var(--surface-raised)}.user{margin-left:auto;display:flex;align-items:center;gap:12px;color:var(--text-muted)}.content{max-width:1100px;margin:0 auto;padding:28px 24px 60px}.btn-ghost,.btn-primary{font:inherit;font-weight:600;cursor:pointer;border-radius:10px;padding:8px 14px;border:1px solid transparent}.btn-primary{background:var(--primary);color:#06201d}.btn-primary:hover{background:var(--primary-strong)}.btn-primary:disabled{opacity:.55;cursor:default}.btn-ghost{background:transparent;border-color:var(--border);color:var(--text)}.btn-ghost:hover{background:var(--surface-raised)}.btn-block{width:100%}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:16px;gap:16px;margin-top:18px}.card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.fields{gap:10px}.field,.fields{display:flex;flex-direction:column}.field{gap:4px}.field span{font-size:12px;color:var(--text-muted)}.field input[type=number],input[type=password],input[type=text],select{font:inherit;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;width:100%}select{cursor:pointer}.features{margin-top:14px}.checks{display:flex;flex-direction:column;gap:7px;margin-top:8px}.check{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.check input{accent-color:var(--primary);width:15px;height:15px}.table{width:100%;border-collapse:collapse;margin-top:18px}.table td,.table th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top}.table th{font-size:12px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.ok{color:var(--success)}.error,.ok{margin:10px 0 0;font-size:13px}.error{color:var(--danger)}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:360px;background:var(--surface-raised);border:1px solid var(--border);border-radius:20px;padding:32px;text-align:center}.brand-lg{font-size:26px;font-weight:700;letter-spacing:-.03em}.brand-lg span{color:var(--primary)}.login-card form{margin-top:22px}.login-form{display:flex;flex-direction:column;gap:12px;text-align:left}.login-form .field span{font-size:12px;color:var(--text-muted)}.login-form button{margin-top:6px}.fineprint{margin-top:18px;font-size:12px;color:var(--text-muted)}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.section-gap{margin-top:26px}.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;background:var(--primary-soft);color:var(--primary);font-weight:600}.pill.warn{background:rgba(255,92,122,.14);color:var(--danger)}.back-link{color:var(--text-muted);font-size:13px}.back-link:hover{color:var(--text)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.seg button{font:inherit;font-weight:600;padding:5px 10px;background:transparent;color:var(--text-muted);border:none;cursor:pointer}.seg button.active{background:var(--surface-raised);color:var(--text)}.seg button.active.grant{background:var(--primary);color:#06201d}.seg button.active.deny{background:var(--danger);color:#2a0610}