:root{
  --bg:#170d2b; --bg2:#1f1340; --card:#241652; --card2:#2c1a63;
  --line:#3a2780; --purple:#7c3aed; --purple2:#a78bfa;
  --gold:#d4af37; --gold2:#f0d98a; --text:#ece8ff; --muted:#a99fd6;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",system-ui,sans-serif;background:
  radial-gradient(1200px 600px at 80% -10%,#2a1a63 0,transparent 60%),var(--bg);
  color:var(--text)}
a{color:var(--purple2);text-decoration:none}
.muted{color:var(--muted)} .small{font-size:.85rem}
h1{margin:0;font-size:1.7rem} h3{margin:1.2rem 0 .5rem;color:var(--gold2)}

/* layout */
.layout{display:flex;min-height:100vh}
.side{width:240px;background:linear-gradient(180deg,var(--bg2),var(--bg));
  border-right:1px solid var(--line);padding:22px 16px;display:flex;flex-direction:column;gap:6px}
.brand{font-size:1.25rem;font-weight:700;margin-bottom:18px;letter-spacing:.3px}
.brand em{color:var(--gold);font-style:normal}
.brand .logo{color:var(--gold)}
.brand.big{font-size:1.6rem}
.side nav{display:flex;flex-direction:column;gap:4px;flex:1}
.side nav a{padding:10px 12px;border-radius:10px;color:var(--text);font-weight:500}
.side nav a:hover{background:var(--card)}
.side nav a.on{background:linear-gradient(90deg,var(--purple),transparent);
  box-shadow:inset 3px 0 0 var(--gold)}
.logout{color:var(--muted);padding:10px 12px}
.main{flex:1;padding:28px 34px;max-width:1100px}

/* generic */
.card{background:linear-gradient(180deg,var(--card),var(--card2));
  border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:18px;
  box-shadow:0 10px 30px rgba(0,0,0,.25)}
.head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.btn{display:inline-block;padding:10px 16px;border-radius:10px;border:1px solid var(--line);
  background:var(--card2);color:var(--text);cursor:pointer;font-weight:600;font-size:.92rem}
.btn:hover{border-color:var(--purple2)}
.btn.gold{background:linear-gradient(90deg,var(--gold),var(--gold2));color:#2a1500;border:0}
.btn.gold:hover{filter:brightness(1.07)}
.btn.ghost{background:transparent}
.btn.danger{background:#3a1530;border-color:#7a2a52;color:#ffb4d6}
.badge{padding:3px 10px;border-radius:20px;font-size:.75rem;background:var(--card);border:1px solid var(--line)}
.badge.live{background:#143a26;color:#7ee2a8;border-color:#1f6b43}
.badge.off{background:#3a2a14;color:#e2c27e;border-color:#6b521f}
.flash{padding:11px 14px;border-radius:10px;margin-bottom:14px;border:1px solid var(--line)}
.flash.ok{background:#143a26;border-color:#1f6b43;color:#aef0c8}
.flash.error{background:#3a1520;border-color:#7a2a3e;color:#ffb4c4}

/* stats + grid */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}
.stat{text-align:center;padding:18px}
.stat b{display:block;font-size:2rem;color:var(--gold2)}
.stat span{color:var(--muted);font-size:.85rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.page-top{display:flex;align-items:center;gap:12px}
.page-top h3{margin:0;color:var(--text)}
.dot{width:34px;height:34px;border-radius:10px;flex:none;box-shadow:0 0 0 2px var(--gold)}
.page-top .badge{margin-left:auto}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.chip{font-size:.75rem;background:var(--bg2);border:1px solid var(--line);padding:4px 10px;border-radius:20px;color:var(--muted)}
.page-actions{display:flex;gap:8px}
.page-actions form{margin:0}
.empty{text-align:center;color:var(--muted)}

/* forms */
.form label{display:block;margin:10px 0;font-size:.85rem;color:var(--muted)}
.form input,.form select{width:100%;margin-top:5px;padding:10px 12px;border-radius:10px;
  background:var(--bg2);border:1px solid var(--line);color:var(--text);font-size:.95rem}
.form input[type=color]{height:42px;padding:4px}
.row{display:flex;gap:14px;flex-wrap:wrap}
.row>label{flex:1;min-width:160px}
.chk{display:flex;align-items:center;gap:8px;margin-top:26px}
.chk input{width:auto}
.form-actions{display:flex;gap:10px;margin-top:18px}

/* table */
.tbl{width:100%;border-collapse:collapse}
.tbl th,.tbl td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line)}
.tbl th{color:var(--muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px}

/* login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}
.login{width:340px;text-align:center}
.login input{width:100%;padding:12px;border-radius:10px;background:var(--bg2);
  border:1px solid var(--line);color:var(--text);margin:14px 0}
.login .btn{width:100%}
