:root{--bg:#F4F6FB;--card:#fff;--text:#0F172A;--muted:#475569;--border:#CBD5E1;--accent:#1E3A8A;--accent-text:#fff;--danger:#991B1B;
  --table-header-bg:#1E3A8A;--table-row-odd:#fff;--table-row-even:#EEF2FF;--table-row-hover:#DBEAFE;--table-row-selected:#BFD3FF;--table-cell-text:#0F172A;
  --b-hi-bg:#DCFCE7;--b-hi-tx:#14532D;--b-md-bg:#FEF08A;--b-md-tx:#713F12;--b-lo-bg:#FECACA;--b-lo-tx:#7F1D1D;--star:#92400E}
[data-theme=dark]{color-scheme:dark;--bg:#0B1220;--card:#162033;--text:#E8EEF8;--muted:#B6C2D6;--border:#334155;--accent:#7FA2FF;--accent-text:#0B1220;--danger:#FCA5A5;
  --table-row-odd:#162033;--table-row-even:#1B2740;--table-row-hover:#26365A;--table-row-selected:#3B5CB8;--table-cell-text:#E8EEF8;--star:#FCD34D;
  --b-hi-bg:#14532D;--b-hi-tx:#DCFCE7;--b-md-bg:#713F12;--b-md-tx:#FEF9C3;--b-lo-bg:#7F1D1D;--b-lo-tx:#FEE2E2}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:16px;line-height:1.5;background:var(--bg);color:var(--text)}
[hidden]{display:none!important}
.muted{color:var(--muted)}
.err{color:var(--danger);min-height:1.5em;margin:.5rem 0 0}
#login{display:flex;align-items:center;justify-content:center;min-height:100%;padding:16px}
.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:28px;width:100%;max-width:400px}
.card h1{margin:0 0 4px;font-size:24px}
label{display:block;font-weight:600;margin:14px 0 4px;font-size:15px}
input,select{font:inherit;width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text)}
.btn{font:inherit;font-weight:600;background:var(--accent);color:var(--accent-text);border:0;border-radius:8px;padding:9px 18px;cursor:pointer}
.card .btn{margin-top:18px;width:100%}
.btn:disabled{opacity:.55;cursor:wait}
.btn-link{font:inherit;background:none;border:0;color:var(--text);text-decoration:underline;cursor:pointer;padding:4px 6px}
.app-layout{height:100vh;display:flex;flex-direction:column;overflow:hidden}
.topbar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#1E3A8A;color:#fff;padding:10px 24px}
.brand{font-size:20px;font-weight:700}.brand .sub{font-size:14px;font-weight:400;margin-left:12px;color:#DBE5FF}
.who{display:flex;align-items:center;gap:12px;font-size:15px}
.who .btn-link{color:#fff}
.chip{background:rgba(255,255,255,.16);border-radius:999px;padding:3px 12px;font-size:14px}
#themeSlot button{background:rgba(255,255,255,.16);border:0;color:#fff;border-radius:8px;padding:6px 8px;cursor:pointer;display:flex}
.main-content{flex:1;min-height:0;display:flex;flex-direction:column;padding:14px 24px 8px;overflow:hidden}
.filter-bar{flex-shrink:0;display:flex;align-items:center;gap:12px;margin-bottom:10px}
.filter-bar label{margin:0}.filter-bar select{width:260px}.spacer{flex:1}
.runpanel{flex-shrink:0;display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px 16px;margin-bottom:10px}
.runpanel .field{width:200px}.runpanel .field:nth-child(2),.runpanel .field:nth-child(3){width:130px}.runpanel label{margin-top:0}
.runmsg{flex-basis:100%;margin:0;min-height:1.5em}
.table-wrap-outer{flex:1;min-height:0;display:flex;flex-direction:column}
.table-wrap-outer .data-table-wrap{flex:1;min-height:0}
.foot{flex-shrink:0;font-size:14px;margin:6px 0 0}
.data-table td,.data-table th{font-size:15px}.data-table th{font-size:16px}
.data-table td a{color:inherit;text-decoration:underline}
.stars{color:var(--star);letter-spacing:1px;margin-right:6px}
.badge{display:inline-block;font-size:13px;font-weight:700;border-radius:999px;padding:1px 9px;margin-left:6px;text-transform:uppercase;letter-spacing:.3px}
.badge.high{background:var(--b-hi-bg);color:var(--b-hi-tx)}.badge.medium{background:var(--b-md-bg);color:var(--b-md-tx)}.badge.low{background:var(--b-lo-bg);color:var(--b-lo-tx)}
.dash{color:var(--muted)}
@media (max-width:900px){.brand .sub{display:none}.main-content{padding:10px 12px}}

::placeholder{color:var(--muted);opacity:1}
