
:root{
  --bg:#071018;--panel:#0f1b26;--panel2:#142533;--line:#24394b;--text:#edf5fb;
  --muted:#91a8b9;--green:#36d38d;--red:#ff6677;--amber:#ffc85f;--blue:#65a9ff;
  --purple:#b58cff;--cyan:#2bd8c6;--shadow:0 18px 52px rgba(0,0,0,.3);--radius:16px
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:linear-gradient(145deg,#071018,#0b1620 60%,#071018);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
a{text-decoration:none;color:inherit}button,input,select{font:inherit}
.layout{display:grid;grid-template-columns:288px 1fr;min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;overflow:auto;background:rgba(5,12,18,.97);border-right:1px solid var(--line);padding:18px 13px}
.brand{display:flex;gap:12px;align-items:center;padding:8px 10px 17px;border-bottom:1px solid var(--line);margin-bottom:14px}
.logo{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--cyan),var(--blue));font-weight:900;color:#03110e;box-shadow:0 0 28px rgba(43,216,198,.22)}
.brand h1{font-size:15px;margin:0}.brand p{font-size:11px;color:var(--muted);margin:4px 0 0}
.group{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#6f8798;margin:16px 10px 6px}
.nav a{display:flex;gap:10px;align-items:center;padding:10px 11px;border-radius:11px;color:#b9cad6;margin:3px 0}
.nav a:hover,.nav a.active{background:#142634;color:white}.nav a.active{box-shadow:inset 3px 0 0 var(--cyan)}
.nav i{width:9px;height:9px;border-radius:50%;background:#536d80}.nav a.active i{background:var(--cyan);box-shadow:0 0 12px var(--cyan)}
.main{min-width:0}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;gap:14px;align-items:center;padding:15px 24px;background:rgba(8,16,24,.9);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.topbar h2{font-size:18px;margin:0}.topbar small{color:var(--muted)}.statusline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pill{border-radius:999px;border:1px solid var(--line);padding:7px 10px;font-size:12px;background:#10202d;color:#c2d3df}
.pill.good{border-color:rgba(54,211,141,.38);color:var(--green)}.pill.bad{border-color:rgba(255,102,119,.38);color:var(--red)}.pill.warn{border-color:rgba(255,200,95,.38);color:var(--amber)}.pill.info{border-color:rgba(101,169,255,.38);color:var(--blue)}
.content{padding:24px}.hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.hero h3{margin:0 0 7px;font-size:25px}.hero p{margin:0;color:var(--muted);max-width:900px;line-height:1.55}
.help{display:inline-flex;gap:7px;align-items:center;color:#b8c9d5;font-size:12px;background:#0d1a24;border:1px solid var(--line);padding:8px 10px;border-radius:10px}
.grid{display:grid;gap:16px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{background:linear-gradient(180deg,rgba(18,33,46,.98),rgba(11,23,33,.98));border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);min-width:0}
.card h4{margin:0 0 12px}.metric .label{font-size:12px;color:var(--muted)}.metric .value{font-size:24px;font-weight:850;margin:7px 0;font-variant-numeric:tabular-nums}.metric .sub{font-size:12px;color:#9fb4c3;line-height:1.4}
.positive{color:var(--green)!important}.negative{color:var(--red)!important}.warning{color:var(--amber)!important}.info{color:var(--blue)!important}.research{color:var(--purple)!important}.neutral{color:var(--text)!important}
.stack{display:grid;gap:16px;margin-top:16px}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn{border:1px solid var(--line);background:#132635;color:#eef6fb;border-radius:10px;padding:9px 12px;cursor:pointer}
.btn:hover{filter:brightness(1.13)}.btn.primary{background:linear-gradient(135deg,var(--cyan),#53b9ff);color:#04120f;border:0;font-weight:800}.btn.danger{background:#39171e;border-color:#71303c;color:#ffc2c8}.btn.warn{background:#382c13;border-color:#6b5425;color:#ffe1a0}.btn:disabled{opacity:.4;cursor:not-allowed}
.range{display:flex;gap:6px;flex-wrap:wrap}.range button{border:1px solid var(--line);background:#0c1923;color:#9db3c2;border-radius:9px;padding:7px 10px;cursor:pointer}.range button.active{background:var(--cyan);color:#04120f;border-color:transparent;font-weight:850}
.control-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.field{display:grid;gap:7px}.field label{font-size:12px;color:#a9bfcd}.field input,.field select{width:100%;background:#09141d;border:1px solid var(--line);color:white;border-radius:10px;padding:10px}
.table-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.table-head h4{margin:0}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;min-width:980px}th,td{padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap;text-align:left;font-size:12px}th{color:#8fa8ba;background:#0c1923;position:sticky;top:0;z-index:1}td{color:#dce8ef}
.tablewrap.wide table{min-width:2250px}.tablewrap.wide th:first-child,.tablewrap.wide td:first-child{position:sticky;left:0;background:#0f1d28;z-index:2}
.chart{height:275px;position:relative}.chart canvas{width:100%;height:100%}.explain{background:#0c1923;border-left:3px solid var(--blue);padding:12px 14px;border-radius:10px;color:#b9cad6;font-size:12px;line-height:1.55}.explain.good{border-color:var(--green)}.explain.warn{border-color:var(--amber)}.explain.bad{border-color:var(--red)}
.live-panel{background:linear-gradient(135deg,#2c1820,#171722);border:1px solid #6f3441}.live-panel.unlocked{background:linear-gradient(135deg,#10271f,#102128);border-color:#2a7358}
.big-state{font-size:34px;font-weight:900;margin:8px 0}.audit{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;background:#08131b;border:1px solid var(--line);border-radius:10px;padding:12px;white-space:pre-wrap;color:#b7cfde;max-height:220px;overflow:auto}
.role-note{padding:10px 12px;border-radius:10px;background:#101f2b;border:1px dashed #365066;color:#b4c7d4;font-size:12px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.68);display:none;align-items:center;justify-content:center;z-index:60;padding:20px}.modal.show{display:flex}.modalbox{width:min(560px,100%);background:#0e1c27;border:1px solid var(--line);border-radius:17px;padding:20px;box-shadow:var(--shadow)}.modalbox h3{margin-top:0}
.toast{position:fixed;right:22px;bottom:22px;background:#10261f;border:1px solid #2f765e;color:#caffea;padding:12px 15px;border-radius:12px;display:none;z-index:80;box-shadow:var(--shadow)}.toast.show{display:block}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(470px,100%);background:linear-gradient(180deg,#122231,#0b1721);border:1px solid var(--line);border-radius:22px;padding:26px;box-shadow:var(--shadow)}
.login-card h1{margin:0 0 8px}.login-card p{color:var(--muted);line-height:1.5}.login-actions{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:18px}.login-note{font-size:11px;color:#8098aa;margin-top:15px}
.hidden{display:none!important}
@media(max-width:1220px){.metrics{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:940px){.layout{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.metrics{grid-template-columns:repeat(2,1fr)}.topbar{position:relative}.content{padding:15px}.control-grid{grid-template-columns:1fr}}
@media(max-width:600px){.metrics,.form-grid{grid-template-columns:1fr}.hero{flex-direction:column}}

/* V5 additions */
.user-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.resource-gauge{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.resource-gauge .big{font-size:28px;font-weight:900}
.spark{height:8px;border-radius:999px;background:#08131b;border:1px solid var(--line);overflow:hidden;margin-top:12px}
.spark span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--cyan))}
.worker-state{font-weight:800}.worker-state.HEALTHY{color:var(--green)}.worker-state.DEGRADED{color:var(--amber)}.worker-state.FAIL_CLOSED{color:var(--red)}.worker-state.RECOVERING{color:var(--purple)}
.user-status{font-weight:800}.user-status.ACTIVE{color:var(--green)}.user-status.DISABLED{color:var(--red)}
.auth-error{display:none;margin-top:12px;padding:10px 12px;border:1px solid rgba(255,102,119,.45);background:#2b151b;color:#ffc2ca;border-radius:10px;font-size:12px}
.auth-error.show{display:block}
@media(max-width:1220px){.health-grid,.user-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.health-grid,.user-grid{grid-template-columns:1fr}}

.login-brand{border:0;padding-left:0}.login-password-field{margin-top:14px}.empty-state{color:var(--muted);text-align:center;padding:24px}.bootstrap-card{margin-top:16px}.nav [data-logout]{color:#ffc2c8}.worker-state.FAILED,.worker-state.STALE{color:var(--red)}.worker-state.WAITING,.worker-state.BLOCKED,.worker-state.THROTTLED{color:var(--amber)}.worker-state.RECOVERED{color:var(--purple)}
