:root{--paper:#f3efe6;--ink:#1c1915;--brand:#8c3a2f;--accent:#c47a3a;--line:#d9d0c3;--quiet:#5c5348;--panel:rgba(255,250,244,0.78);--side:#2a1b17;--side-ink:#f4e8dc;--danger:#8c3a2f;--ok:#2f6b4f;--shadow:0 24px 60px rgba(42,27,23,0.18)}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{color:var(--ink);background:radial-gradient(900px 480px at 100% -10%,rgba(196,122,58,.2),transparent 55%),radial-gradient(700px 360px at 0 100%,rgba(140,58,47,.08),transparent 50%),linear-gradient(180deg,#f7f2e8,var(--paper));font-family:Atkinson Hyperlegible,Segoe UI,sans-serif}a{color:var(--brand)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brand);outline-offset:3px}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.side{background:linear-gradient(180deg,#3a241e,var(--side));color:var(--side-ink);padding:28px 18px;display:flex;flex-direction:column;gap:24px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.side .brand{font-family:Syne,sans-serif;font-weight:800;letter-spacing:.08em;color:#fff8f1;text-decoration:none}.side nav{display:flex;flex-direction:column;gap:4px}.side nav a{color:var(--side-ink);text-decoration:none;padding:10px 12px;border-left:3px solid transparent}.side nav a.active,.side nav a:hover{background:rgba(255,255,255,.06);border-left-color:var(--accent);color:#fff}.side .meta{margin-top:auto;font-size:.9rem}.content{padding:28px 32px 56px;max-width:1280px}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{width:min(460px,100%);background:var(--panel);border:1px solid var(--line);padding:28px;box-shadow:var(--shadow)}h1,h2,h3{font-family:Syne,sans-serif;letter-spacing:-.02em;margin:0 0 8px}.lede{margin:0}.lede,.muted{color:var(--quiet)}.muted{font-size:.85rem}.mono{font-family:ui-monospace,Menlo,monospace;font-size:.9rem}.break{word-break:break-word}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.page-head{justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:18px}.page-head,.stat-row{display:flex;flex-wrap:wrap}.stat-row{gap:10px}.stat{min-width:88px;background:var(--panel);border:1px solid var(--line);padding:10px 12px;font-size:.8rem;color:var(--quiet)}.stat span{display:block;font-family:Syne,sans-serif;font-size:1.35rem;color:var(--ink);line-height:1.1}.tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.danger,.danger-outline,.ghost-light,.icon-btn,.linkish,.tab{font:inherit;cursor:pointer}.tab{background:transparent;border:1px solid var(--line);color:var(--quiet);padding:8px 14px;font-family:Syne,sans-serif}.tab.active{background:var(--brand);border-color:var(--brand);color:#fffaf6}.ghost-light{border:1px solid var(--line);color:var(--ink)}.danger-outline,.ghost-light{background:transparent;padding:8px 12px}.danger-outline{border:1px solid var(--danger);color:var(--danger)}.danger{background:var(--danger);color:#fffaf6;border:none;padding:10px 14px;font-family:Syne,sans-serif}.linkish{background:none;border:none;color:var(--brand);padding:0;text-decoration:underline;text-underline-offset:2px}.panel{background:var(--panel);border:1px solid var(--line);padding:18px;margin:0 0 18px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.panel-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:end;margin-bottom:8px}.stack{flex-direction:column;gap:12px}.row,.stack{display:flex}.row{gap:8px;flex-wrap:wrap;margin:12px 0;align-items:end}.row.tight{margin:0}label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--quiet);flex:1 1;min-width:160px}button,input,select,textarea{font:inherit;padding:10px 12px}input,select,textarea{border:1px solid var(--line);background:#fff;width:100%}textarea{resize:vertical}button{background:var(--brand);color:#fffaf6;border:none;cursor:pointer;font-family:Syne,sans-serif;white-space:nowrap}button:disabled{opacity:.55;cursor:not-allowed}button.ghost{background:transparent;color:var(--side-ink);border:1px solid rgba(255,255,255,.25)}.err{color:var(--danger)}.ok{color:var(--ok)}.banner{padding:10px 12px;border:1px solid var(--line);background:#fff;margin:0 0 12px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;margin-top:8px}td,th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);font-size:.92rem;vertical-align:top}th{color:var(--quiet);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.url-cell{max-width:280px}pre{white-space:pre-wrap;background:#fff;padding:12px;overflow:auto}.badge,pre{border:1px solid var(--line)}.badge{display:inline-block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;margin-right:4px}.badge.soft{background:#fff;color:var(--quiet)}.badge.danger{border-color:var(--danger);color:var(--danger)}.badge.status-allowed,.badge.status-safe{border-color:var(--ok);color:var(--ok)}.badge.status-blocked,.badge.status-unsafe{border-color:var(--danger);color:var(--danger)}.badge.status-pending{border-color:var(--accent);color:var(--accent)}.list{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:10px}.list li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.compact{margin:8px 0 0;padding-left:18px}.compact-keys li{align-items:flex-start}.modal-backdrop{position:fixed;inset:0;background:rgba(28,25,21,.45);display:grid;place-items:center;padding:24px;z-index:50;animation:fade .16s ease}.modal{width:min(560px,100%);max-height:min(88vh,900px);overflow:auto;background:#fffaf4;border:1px solid var(--line);box-shadow:var(--shadow);animation:rise .18s ease}.modal-wide{width:min(920px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;background:#fffaf4}.modal-body{padding:18px}.icon-btn{background:transparent;border:1px solid var(--line);color:var(--ink);width:36px;height:36px;font-size:1.4rem;line-height:1;padding:0}.detail-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px}.detail-grid .full{grid-column:1/-1}.kv{display:grid;grid-template-columns:140px 1fr;grid-gap:8px 12px;gap:8px 12px;margin:0}.kv dt{color:var(--quiet);font-size:.85rem}.kv dd{margin:0}.modal-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@media (max-width:900px){.shell{grid-template-columns:1fr}.side{position:static;height:auto}.side nav{flex-direction:row;flex-wrap:wrap}.content{padding:20px 16px 40px}.detail-grid,.kv{grid-template-columns:1fr}}