:root{--navy: #333c4e;--navy-2: #212934;--navy-3: #1a212a;--accent: #d8642a;--accent-light: #f09a3e;--paper: #f2f1ef;--card: #ffffff;--ink: #2b3038;--muted: #737d87;--line: #dfdcd9;--sidebar-bg: #212934;--sidebar-text: #c8cdd4;--ok: #2f6b4f;--ok-soft: #eaf3ee;--warn: #8a5a12;--warn-soft: #fdf3e2;--danger: #8a2f2f;--danger-soft: #fbeceb;--shadow-sm: 0 1px 2px rgba(33, 41, 52, .07);--shadow: 0 6px 26px rgba(33, 41, 52, .12);--radius: 8px;--sidebar-w: 240px;--sans: "Segoe UI", system-ui, -apple-system, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}body{font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--ink);background:var(--paper)}h1,h2,h3{margin:0;font-weight:600}a{color:var(--accent)}:focus-visible{outline:3px solid var(--accent-light);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.admin-auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 20px;background:radial-gradient(circle at 50% 0%,#2b3542,#171d24 70%)}.admin-auth-box{width:100%;max-width:400px;background:#262f3b;border:1px solid #38424f;border-radius:12px;box-shadow:var(--shadow);padding:30px;color:#e7eaee}.admin-auth-box h1{font-size:19px;margin:0 0 4px}.admin-auth-box .kicker{color:var(--accent-light);font-size:11px;letter-spacing:.16em;text-transform:uppercase;margin:0 0 18px;font-weight:700}.admin-auth-box .lede{color:#9aa4b0;margin:0 0 20px}.admin-auth-box label{color:#9aa4b0}.admin-auth-box input{background:#1b222b;border:1px solid #3b4553;color:#e7eaee}.admin-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex:none;background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;padding:20px 14px;gap:4px}.sidebar-brand{padding:4px 8px 18px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:14px}.sidebar-brand .name{color:#fff;font-weight:700;font-size:16px;letter-spacing:.04em;text-decoration:none;display:block}.sidebar-brand .name em{color:var(--accent);font-style:normal}.sidebar-brand .role{display:block;margin-top:3px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-light);font-weight:700}.sidebar a,.sidebar button{display:block;width:100%;text-align:left;font:inherit;color:var(--sidebar-text);background:none;border:0;border-radius:7px;padding:9px 12px;text-decoration:none;cursor:pointer}.sidebar a:hover,.sidebar button:hover{background:#ffffff14;color:#fff}.sidebar a[aria-current=page]{background:#d8642a2e;color:#fff;font-weight:600}.sidebar-foot{margin-top:auto;padding:14px 12px 0;border-top:1px solid rgba(255,255,255,.1);font-size:12px;color:#8e97a2}.sidebar-foot strong{display:block;color:#fff;font-size:13px}.admin-main{flex:1;min-width:0;padding:26px 30px 60px}.page-head{margin:0 0 20px}.page-head .kicker{margin:0 0 4px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700}.page-head h1{font-size:22px}.page-head p{margin:6px 0 0;color:var(--muted);max-width:80ch}.crumb{display:inline-block;margin:0 0 12px;color:var(--muted);text-decoration:none;font-size:13px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px 20px;margin:0 0 18px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 14px}.panel-head h2{font-size:16px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 20px}.tabs a{padding:10px 16px;color:var(--muted);text-decoration:none;font-weight:600;border-bottom:3px solid transparent;margin-bottom:-1px}.tabs a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.btn{font:inherit;font-weight:600;border:1px solid transparent;border-radius:7px;padding:8px 14px;cursor:pointer;background:var(--accent);color:#fff}.btn:hover:not(:disabled){background:#c4551f}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:#fff;color:var(--ink);border-color:var(--line)}.btn-secondary:hover:not(:disabled){background:#f4f2f1}.btn-danger{background:#fff;color:var(--danger);border-color:#e4c3c1}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-sm{padding:5px 10px;font-size:13px}.btn-block{width:100%}.row-actions{display:flex;gap:6px;flex-wrap:wrap}.toolbar{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin:0 0 16px}.field{display:block;margin:0 0 14px}.field>label,.field-label{display:block;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:0 0 5px}.field input,.field select,.field textarea{font:inherit;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink)}.field-help{display:block;margin:5px 0 0;color:var(--muted);font-size:12px}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 16px}.check{display:inline-flex;align-items:center;gap:8px;font-weight:600}.check input{width:auto}.sql-editor textarea{font-family:var(--mono);font-size:13px;line-height:1.6;min-height:220px;resize:vertical;background:#fbfaf9}.multiselect{border:1px solid var(--line);border-radius:7px;background:#fff;max-height:190px;overflow-y:auto;padding:6px}.multiselect label{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:5px;font-weight:400;text-transform:none;letter-spacing:0;font-size:13px;color:var(--ink);margin:0}.multiselect label:hover{background:#f4f2f1}.multiselect input{width:auto}.param-list{display:grid;gap:12px;margin:0 0 14px}.param-card{border:1px solid var(--line);border-radius:7px;padding:14px 16px 2px;background:#fbfaf9}.param-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}.param-card-head strong{font-family:var(--mono);font-size:13px;color:var(--accent)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{background:var(--navy);color:#fff;text-align:left;padding:8px 11px;font-weight:600;white-space:nowrap}table.data td{padding:7px 11px;border-top:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}table.data tbody tr:hover td{background:#f7f5f4}table.data td.num{text-align:right;font-variant-numeric:tabular-nums}table.data a{font-weight:600;text-decoration:none}table.data .mono{font-family:var(--mono);font-size:12px}.pill{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;border-radius:999px;padding:3px 10px;border:1px solid transparent;white-space:nowrap}.pill-ok{background:var(--ok-soft);border-color:#c5ddcf;color:var(--ok)}.pill-warn{background:var(--warn-soft);border-color:#eed9b4;color:var(--warn)}.pill-muted{background:var(--paper);border-color:var(--line);color:var(--muted)}.pill-danger{background:var(--danger-soft);border-color:#e4c3c1;color:var(--danger)}.alert{border-radius:7px;padding:11px 13px;margin:0 0 14px;border:1px solid transparent}.alert-error{background:var(--danger-soft);border-color:#e4c3c1;color:var(--danger)}.alert-ok{background:var(--ok-soft);border-color:#c5ddcf;color:var(--ok)}.alert-info{background:#fff;border-color:var(--line);color:var(--muted)}.alert-secret{background:var(--warn-soft);border-color:#eed9b4;color:var(--warn)}.alert-secret code{display:inline-block;font-family:var(--mono);font-size:15px;letter-spacing:.06em;background:#fff;border:1px solid #eed9b4;border-radius:6px;padding:5px 10px;margin:6px 0;-webkit-user-select:all;user-select:all}.alert pre{font-family:var(--mono);font-size:12.5px;white-space:pre-wrap;margin:6px 0 0}.stats-bar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.chip{font-size:12px;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:4px 11px}.chip strong{color:var(--ink)}.empty{padding:34px 20px;text-align:center;color:var(--muted)}@media (max-width: 900px){.admin-shell{flex-direction:column}.sidebar{width:100%}.admin-main{padding:20px 16px 40px}}
