:root{
  --bg:#0b1017;--panel:#111923;--panel2:#16212d;--line:#263342;--text:#e9f0f7;--muted:#92a2b3;
  --accent:#71d7a4;--accent2:#56a8ff;--danger:#ff7f87;--warn:#f2c56b;--radius:14px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select{font:inherit}
button{cursor:pointer}
a{color:inherit}
.app-shell{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:100vh}
.sidebar{border-right:1px solid var(--line);padding:22px 16px;display:flex;flex-direction:column;gap:26px;background:#0d141d}
.brand{display:flex;align-items:center;gap:11px;padding:0 8px}.brand strong{display:block;font-size:14px}.brand span{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.brand-mark{width:36px;height:36px;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;font-weight:800;letter-spacing:-1px;background:var(--panel2);color:var(--accent)}
nav{display:grid;gap:6px}.nav-btn{border:0;background:transparent;color:var(--muted);text-align:left;padding:11px 12px;border-radius:9px}.nav-btn:hover,.nav-btn.active{background:var(--panel2);color:var(--text)}.nav-btn.active{box-shadow:inset 3px 0 0 var(--accent)}
.sidebar-footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px}.user-pill{font-size:12px;color:var(--muted);max-width:120px;overflow:hidden;text-overflow:ellipsis}
.main{padding:28px;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.topbar h1{font-size:26px;margin:2px 0 0}.topbar-actions{display:flex;gap:8px;align-items:center}
.eyebrow{font-size:10px;font-weight:800;letter-spacing:.16em;color:var(--accent);margin:0}.muted{color:var(--muted)}.small{font-size:12px}.fineprint{font-size:11px;color:var(--muted);margin-top:18px}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.metric span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.metric strong{display:block;font-size:24px;margin-top:8px;word-break:break-word}.metric small{color:var(--muted)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:17px;min-width:0;margin-bottom:16px}.panel h2{font-size:15px;margin:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.panel-head>div{min-width:0}.panel-head p{margin:4px 0 0}
.two-col{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:16px}.top-align{align-items:start}
.kv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.kv{padding:10px 11px;background:var(--panel2);border-radius:9px}.kv span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em}.kv strong{display:block;margin-top:5px;font-size:13px;overflow-wrap:anywhere}
.badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--line);white-space:nowrap}.badge.safe{color:var(--accent);border-color:#2e654d;background:#10271d}.badge.danger{color:var(--danger);border-color:#63373b;background:#291417}.badge.warn{color:var(--warn);border-color:#67552e;background:#291f10}.badge.neutral{color:var(--muted)}
.view{display:none}.view.active{display:block}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stack{display:grid;gap:12px}.span-2{grid-column:1/-1}
label{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:700}input,select{width:100%;min-width:0;border:1px solid var(--line);background:#0c131c;color:var(--text);border-radius:8px;padding:10px 11px;outline:none}input:focus,select:focus{border-color:var(--accent2);box-shadow:0 0 0 3px rgba(86,168,255,.12)}
button.primary,button.ghost,.link-btn{border-radius:8px;padding:10px 13px;font-weight:750;border:1px solid transparent}.primary{background:var(--accent);color:#07120d}.primary:hover{filter:brightness(1.05)}.ghost{background:transparent;color:var(--text);border-color:var(--line)!important}.ghost:hover{background:var(--panel2)}.compact{padding:6px 9px;font-size:11px}.link-btn{background:transparent;color:var(--accent2);padding:4px 0}.filter{max-width:250px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:10px 11px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;background:#0e1620;position:sticky;top:0}tbody tr:last-child td{border-bottom:0}td.actions{white-space:nowrap}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.truncate{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.job-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.job-row:last-child{border-bottom:0}.job-row strong{display:block;font-size:12px}.job-row span{font-size:11px;color:var(--muted)}
.drawer{position:fixed;right:22px;bottom:22px;width:min(780px,calc(100vw - 44px));max-height:72vh;background:#0d151f;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 18px 60px rgba(0,0,0,.45);z-index:10;overflow:auto}.drawer.hidden,.toast.hidden{display:none}.drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.drawer-head h2{margin:2px 0 0;font-size:16px}.preview-text{white-space:pre-wrap;word-break:break-word;background:#091019;border:1px solid var(--line);padding:12px;border-radius:9px;max-height:52vh;overflow:auto;font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.preview-table{overflow:auto;max-height:52vh}
.toast{position:fixed;right:24px;top:18px;background:var(--panel2);border:1px solid var(--line);padding:11px 14px;border-radius:9px;z-index:20;max-width:360px;font-size:12px}.toast.error{border-color:#63373b;color:#ffd7da}.toast.ok{border-color:#2e654d;color:#caf9df}
.empty-state{color:var(--muted);padding:28px 8px;text-align:center}.alert{padding:10px 12px;border-radius:8px;font-size:12px;margin:12px 0}.alert.error{background:#291417;border:1px solid #63373b;color:#ffd7da}
.login-body{display:grid;place-items:center;padding:28px;min-height:100vh}.login-shell{width:min(430px,100%)}.login-card{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:28px}.login-card .brand-mark{margin-bottom:18px}.login-card h1{font-size:24px;margin:6px 0}.login-card .muted{line-height:1.55;margin-bottom:20px}
@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;border-right:0;border-bottom:1px solid var(--line);padding:12px;gap:12px}.brand{display:none}nav{display:flex;overflow:auto}.nav-btn{white-space:nowrap}.sidebar-footer{display:none}.main{padding:18px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}}
@media(max-width:600px){.main{padding:12px}.topbar{align-items:flex-start}.cards{grid-template-columns:1fr 1fr}.metric strong{font-size:18px}.form-grid,.kv-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.panel{padding:13px}.drawer{right:8px;bottom:8px;width:calc(100vw - 16px)}}
