:root{
  --bg:#f1f3f5;
  --paper:#ffffff;
  --ink:#1c2430;
  --mute:#5c6673;
  --line:#d8dde4;
  --navy:#1e3a4c;
  --accent:#2a6f62;
  --good:#1f8a5b;
  --bad:#b42318;
  --warn:#9a6b12;
  --code:#1e3a4c;
  --side-w:248px;
  --top-h:60px;
  --sans:"Outfit",ui-sans-serif,system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.5}
body{display:flex;min-height:100vh}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
code,pre{font-family:var(--mono)}
button,.btn{font:inherit}

/* Status lights */
.light{
  width:9px;height:9px;border-radius:50%;flex:0 0 9px;
  background:#9aa6b5;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)
}
.light.on{background:var(--good);box-shadow:0 0 0 3px rgba(31,138,91,.18)}
.light.off{background:var(--bad);box-shadow:0 0 0 3px rgba(180,35,24,.14)}
.light.warn{background:#d4a017;box-shadow:0 0 0 3px rgba(212,160,23,.18)}
.light.pulse{animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.45}}

.status-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 0;border-bottom:1px solid var(--line)
}
.status-row:last-child{border-bottom:0}
.status-left{display:flex;align-items:center;gap:10px;min-width:0}
.status-left b{color:var(--navy);font-weight:650}
.status-left span{display:block;color:var(--mute);font-size:12px}
.status-right{display:flex;align-items:center;gap:8px;color:var(--mute);font-size:12px;white-space:nowrap}

/* Sidebar */
.side{
  position:fixed;inset:0 auto 0 0;width:var(--side-w);z-index:40;
  background:var(--paper);border-right:1px solid var(--line);
  display:flex;flex-direction:column;padding:14px 12px;overflow:auto
}
.brand{padding:8px 10px 14px;font-weight:700;letter-spacing:-.03em;font-size:18px;color:var(--navy)}
.brand em{color:var(--accent);font-style:normal}
.desk-tag{display:block;margin-top:4px;font-family:var(--mono);font-size:11px;color:var(--mute);font-weight:500}
.nav-group{margin:10px 8px 6px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#8a93a1;font-weight:650}
.navbtn{
  display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;
  border:0;color:var(--mute);padding:9px 10px;border-radius:6px;cursor:pointer
}
.navbtn svg{width:16px;height:16px;flex:0 0 16px}
.navbtn .nav-label{flex:1;min-width:0}
.navbtn .nav-light{margin-left:auto}
.navbtn:hover{background:#eef1f3;color:var(--navy)}
.navbtn.on{background:#e8f1ef;color:var(--navy);font-weight:650}
.side-status{
  margin:12px 6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#f7f8fa
}
.side-status .rowish{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;font-size:12px;color:var(--mute)}
.side-status .rowish b{color:var(--ink);font-weight:650;display:flex;align-items:center;gap:8px}
.side .foot{margin-top:auto;padding:12px 10px;color:var(--mute);font-size:12px;line-height:1.5}
.scrim{display:none;position:fixed;inset:0;background:rgba(28,36,48,.35);z-index:30}

/* Main */
.main{flex:1;min-width:0;margin-left:var(--side-w);display:flex;flex-direction:column;min-height:100vh}
.top{
  position:sticky;top:0;z-index:20;min-height:var(--top-h);
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:10px 20px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px)
}
.top-left{display:flex;align-items:center;gap:10px;min-width:0}
.top h1{margin:0;font-size:18px;letter-spacing:-.03em;font-weight:650;color:var(--navy)}
.top-sub{color:var(--mute);font-size:12px;margin-top:2px}
.top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.content{padding:18px 20px 36px;overflow:auto}
.view{display:none}.view.on{display:block}

/* Cards / layout */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.page-head h2{margin:0;font-size:20px;color:var(--navy);letter-spacing:-.02em}
.page-head p{margin:4px 0 0;color:var(--mute);font-size:13px}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.kpi{
  background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:14px 16px;
  display:flex;flex-direction:column;gap:6px
}
.kpi .kpi-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.kpi b{display:block;font-size:24px;letter-spacing:-.04em;color:var(--navy)}
.kpi span{color:var(--mute);font-size:12px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:14px}
.card h2,.card h3{margin:0 0 8px;font-size:15px;color:var(--navy)}
.sub{color:var(--mute);font-size:13px;line-height:1.45;margin:0 0 12px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.split{display:grid;grid-template-columns:minmax(260px,320px) 1fr;gap:14px;align-items:start}

/* Forms */
label{display:block;font-size:12px;color:var(--mute);margin:10px 0 5px}
input[type=text],input[type=email],input[type=url],input[type=number],input[type=search],input[type=password],select,textarea{
  width:100%;padding:10px 11px;border-radius:6px;border:1px solid var(--line);background:#fff;color:var(--ink);font:inherit
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,111,98,.12)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.toggles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.tog{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#f7f8fa;border:1px solid var(--line);border-radius:6px;padding:10px}
.sports{max-height:180px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:8px;background:#fff}
.sports label{display:flex;align-items:center;gap:8px;margin:4px 0;color:var(--ink);font-size:13px}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.filters{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.filter{
  border:1px solid var(--line);background:#fff;color:var(--mute);border-radius:99px;
  padding:6px 12px;font-size:12px;font-weight:650;cursor:pointer
}
.filter.on,.filter:hover{border-color:var(--navy);color:var(--navy);background:#eef1f3}

button,.btn{
  border:1px solid var(--navy);border-radius:6px;padding:9px 14px;font-weight:650;cursor:pointer;background:#fff;color:var(--navy)
}
button:hover,.btn:hover{background:#eef1f3}
.primary{background:var(--navy);color:#fbfbfc;border-color:var(--navy)}
.primary:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.ghost{background:#fff;color:var(--navy)}
.danger{background:#fff;color:var(--bad);border-color:#e8c4c0}
.mintbtn{background:var(--accent);border-color:var(--accent);color:#fff}
.mintbtn:hover{filter:brightness(.95)}
.mintbtn[disabled]{opacity:.55;cursor:wait}

.pill{
  display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:99px;
  font-size:11px;margin-right:4px;background:#eef1f3;color:var(--mute);font-weight:650
}
.pill .light{width:7px;height:7px;flex-basis:7px}
.pill.off{background:#fdecea;color:var(--bad)}
.pill.ok{background:#e6f2ee;color:var(--good)}
.pill.warn{background:#fff6e0;color:var(--warn)}

.list{display:flex;flex-direction:column;gap:8px;max-height:58vh;overflow:auto}
.item{
  text-align:left;background:#fff;border:1px solid var(--line);border-radius:8px;padding:11px;cursor:pointer;width:100%
}
.item:hover{border-color:#b7c0cb}
.item.active{border-color:var(--accent);box-shadow:0 0 0 3px rgba(42,111,98,.1)}
.item .n{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:650;font-size:13px;color:var(--navy)}
.item .m{color:var(--mute);font-size:11px;margin-top:3px}
.item .flags{margin-top:6px}

table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line)}
th{color:var(--mute);font-weight:650;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.pack{background:#f7f8fa;border:1px solid var(--line);border-radius:8px;padding:14px;margin-top:14px}
pre{white-space:pre-wrap;word-break:break-all;background:var(--code);color:#eef3f1;padding:10px;border-radius:6px;font-size:12px;overflow:auto;margin:0}
.ok{color:var(--good)} .bad{color:var(--bad)} .warn{color:var(--warn)}
.hidden{display:none}
.host{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}
.act{
  display:grid;grid-template-columns:18px 140px 1fr;gap:10px;align-items:center;
  font-size:12px;padding:10px 0;border-bottom:1px solid var(--line);color:var(--mute)
}
.act b{color:var(--ink);font-weight:650}
.quick{
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px
}
.quick button{
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px;text-align:left;height:100%
}
.quick strong{color:var(--navy)}
.quick span{color:var(--mute);font-size:12px;font-weight:500}
.ham,.close-side{
  display:none;background:#fff;border:1px solid var(--line);color:var(--ink);
  border-radius:6px;padding:8px 10px;cursor:pointer
}
.toast{
  position:fixed;right:18px;bottom:18px;background:var(--navy);color:#fff;border-radius:8px;
  padding:10px 12px;font-size:13px;display:none;z-index:60;max-width:min(90vw,360px)
}
.toast.on{display:block}
details{margin-top:10px}
summary{cursor:pointer;color:var(--mute);font-size:12px}
.empty{padding:24px;text-align:center;color:var(--mute);border:1px dashed var(--line);border-radius:8px}

@media(max-width:1100px){
  .kpis,.quick{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  .side{transform:translateX(-105%);transition:transform .2s ease}
  .side.open{transform:translateX(0)}
  .scrim.on{display:block}
  .main{margin-left:0}
  .ham,.close-side{display:inline-flex;align-items:center}
  .split,.grid-2,.row,.kpis,.quick,.grid-3{grid-template-columns:1fr}
  .act{grid-template-columns:18px 1fr}
  .act .when{grid-column:2}
  .top-actions .mintbtn span.hide-sm{display:none}
}
@media (prefers-reduced-motion:reduce){
  .light.pulse,.side{animation:none;transition:none}
}
