:root{--bg:#f6f7f9;--panel:#ffffff;--border:#e2e5ea;--text:#1b1f24;--muted:#6b7280;--accent:#1f2937;--link:#2563eb;--warn:#b45309;--danger:#b91c1c;--ok:#15803d}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}.app-header{display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;background:var(--accent);color:#fff}.app-header .brand{font-weight:600;font-size:15px;color:#fff}.app-header nav{display:flex;gap:1rem}.app-header nav a{color:#cbd5e1;font-weight:500}.app-header nav a:hover{color:#fff;text-decoration:none}.container{max-width:1040px;margin:0 auto;padding:1.5rem}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1.25rem;margin-bottom:1.25rem}h1{font-size:20px;margin:0 0 1rem}h2{font-size:15px;margin:0 0 .75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.search-form{display:flex;gap:.5rem;margin-bottom:1.25rem}.search-form input[type=text]{flex:1 1;padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px;font-size:14px}.search-form button{padding:.5rem 1rem;background:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.mono,td.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.badge{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:11.5px;font-weight:600;border:1px solid transparent}.badge-ok{color:var(--ok);background:#f0fdf4;border-color:#bbf7d0}.badge-warn{color:var(--warn);background:#fffbeb;border-color:#fde68a}.badge-danger{color:var(--danger);background:#fef2f2;border-color:#fecaca}.badge-muted{background:#f3f4f6;border-color:#e5e7eb}.badge-muted,.muted{color:var(--muted)}.kv{display:grid;grid-template-columns:180px 1fr;grid-gap:.4rem 1rem;gap:.4rem 1rem}.kv dt{color:var(--muted)}.kv dd{margin:0}.state{max-width:560px;margin:4rem auto;text-align:center}.state h1{font-size:18px}.pagination{display:flex;gap:1rem;align-items:center;margin-top:1rem;color:var(--muted)}.manage-section{padding:.75rem 0;border-top:1px solid var(--border)}.manage-section:first-of-type{border-top:none}.manage-section-title{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin-bottom:.5rem}.manage-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.4rem}.manage-label{min-width:220px}.manage-disable button,.manage-row button,.manage-row select{padding:.35rem .7rem;border:1px solid var(--border);border-radius:6px;font-size:13px;background:#fff;cursor:pointer}.manage-disable button,.manage-row button{background:var(--accent);color:#fff;border-color:var(--accent)}button:disabled{opacity:.6;cursor:default}.btn-danger{background:var(--danger)!important;border-color:var(--danger)!important}.manage-disable{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start}.manage-disable textarea{width:100%;max-width:520px;padding:.5rem;border:1px solid var(--border);border-radius:6px;font-family:inherit;font-size:13px}.form-msg{flex-basis:100%;margin:.25rem 0 0;font-size:13px}.form-ok{color:var(--ok)}.form-err{color:var(--danger)}.app-header nav{flex:1 1}.app-header nav .signout-form{margin-left:auto}.link-button{background:none;border:none;padding:0;font:inherit;font-weight:500;color:#cbd5e1;cursor:pointer}.link-button:hover{color:#fff}.button{display:inline-block;padding:.5rem 1rem;border:1px solid var(--border);border-radius:6px;background:#fff;font-weight:500;cursor:pointer}.button:hover{text-decoration:none}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.data-table{width:100%;border-collapse:collapse}.req-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.75rem}.req-list>li{border-left:3px solid var(--border);padding-left:.75rem}.panel.gate-blocked{border-color:var(--danger)}.markdown-raw{white-space:pre-wrap;word-break:break-word;max-height:480px;overflow:auto;font-size:12px;background:var(--panel-muted,#f6f8fa);padding:.75rem;border-radius:6px}