*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --red:#CC1717;--red-dark:#991010;--red-light:#E53030;
  --black:#0D0D0D;--gray-900:#1A1A1A;--gray-800:#252525;--gray-700:#333;
  --gray-600:#444;--gray-500:#666;--gray-400:#888;--gray-300:#AAA;--gray-100:#E5E5E5;
  --surface:#1E1E1E;--surface2:#2A2A2A;--surface3:#333;--white:#FFF;
  --green:#3ec46d;--ok:#3ec46d;
}
html,body{height:100%;font-family:'Barlow',sans-serif;background:var(--black);color:var(--gray-100);}
#app{min-height:100vh;display:flex;flex-direction:column;}
.hidden{display:none!important;}
a{color:var(--red-light);text-decoration:none;}

/* ---------- LOGIN ---------- */
#auth{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;}
.card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--gray-700);border-radius:14px;padding:32px;border-top:3px solid var(--red);}
.brand{text-align:center;margin-bottom:24px;}
.brand h1{font-family:'Barlow Condensed',sans-serif;font-size:28px;letter-spacing:2px;color:var(--white);}
.brand h1 b{color:var(--red);}
.brand span{font-size:12px;letter-spacing:3px;color:var(--gray-500);text-transform:uppercase;}

/* ---------- FORM ELEMENTS ---------- */
label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--gray-400);margin:14px 0 6px;}
input,select,textarea{width:100%;padding:11px 13px;background:var(--surface2);border:1px solid var(--gray-700);border-radius:8px;color:var(--white);font-size:15px;font-family:inherit;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--red);}
.btn{padding:11px 18px;background:var(--red);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:700;letter-spacing:.4px;cursor:pointer;font-family:inherit;}
.btn:hover{background:var(--red-light);}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.btn.full{width:100%;margin-top:20px;padding:13px;}
.btn.ghost{background:none;border:1px solid var(--gray-700);color:var(--gray-300);}
.btn.ghost:hover{border-color:var(--red);color:#fff;}
.btn.sm{padding:7px 12px;font-size:13px;}
.msg{margin-top:14px;font-size:13px;text-align:center;min-height:18px;}
.msg.err{color:var(--red-light);}
.msg.ok{color:var(--ok);}
.link{display:block;text-align:center;margin-top:18px;font-size:12px;color:var(--gray-500);cursor:pointer;text-decoration:underline;}

/* ---------- SHELL ---------- */
header{display:flex;align-items:center;justify-content:space-between;background:var(--gray-900);height:58px;padding:0 20px;border-bottom:3px solid var(--red);flex-shrink:0;}
header .logo{font-family:'Barlow Condensed',sans-serif;font-size:20px;letter-spacing:2px;color:#fff;cursor:pointer;}
header .logo b{color:var(--red);}
header .right{display:flex;align-items:center;gap:14px;font-size:14px;}
.badge{font-size:11px;text-transform:uppercase;letter-spacing:1px;background:var(--red-dark);color:#fff;padding:4px 10px;border-radius:20px;white-space:nowrap;}
.layout{flex:1;display:flex;min-height:0;}
nav.side{width:230px;background:var(--gray-900);border-right:1px solid var(--gray-800);padding:16px 0;flex-shrink:0;}
nav.side a{display:block;padding:11px 22px;color:var(--gray-300);font-size:14px;font-weight:500;cursor:pointer;border-left:3px solid transparent;}
nav.side a:hover{background:var(--surface);color:#fff;}
nav.side a.active{background:var(--surface);color:#fff;border-left-color:var(--red);}
nav.side .sec{padding:14px 22px 6px;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray-600);}
main.content{flex:1;padding:28px 32px;overflow:auto;}

/* ---------- PAGE HEADINGS ---------- */
.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap;}
.page-head h2{font-family:'Barlow Condensed',sans-serif;font-size:26px;color:#fff;}
.page-head .sub{color:var(--gray-400);font-size:14px;margin-top:2px;}

/* ---------- CARDS GRID ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;}
.mod{background:var(--surface);border:1px solid var(--gray-700);border-radius:12px;padding:20px;cursor:pointer;transition:border-color .15s;}
.mod:hover{border-color:var(--red);}
.mod.soon{opacity:.5;cursor:default;}
.mod.soon:hover{border-color:var(--gray-700);}
.mod h3{font-size:16px;color:#fff;margin-bottom:6px;}
.mod p{font-size:13px;color:var(--gray-400);}
.tag{display:inline-block;margin-top:12px;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--gray-500);border:1px solid var(--gray-700);padding:3px 8px;border-radius:6px;}

/* ---------- STAT CARDS ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;margin-bottom:24px;}
.stat{background:var(--surface);border:1px solid var(--gray-700);border-radius:12px;padding:18px;}
.stat .n{font-family:'Barlow Condensed',sans-serif;font-size:30px;color:#fff;}
.stat .l{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--gray-400);margin-top:2px;}

/* ---------- TABLE ---------- */
.table-wrap{background:var(--surface);border:1px solid var(--gray-700);border-radius:12px;overflow:hidden;}
table{width:100%;border-collapse:collapse;}
th,td{text-align:left;padding:13px 16px;font-size:14px;}
th{background:var(--gray-900);color:var(--gray-400);font-size:11px;text-transform:uppercase;letter-spacing:1px;}
td{border-top:1px solid var(--gray-800);color:var(--gray-100);}
tr:hover td{background:var(--surface2);}
.muted{color:var(--gray-500);}
.empty{padding:40px;text-align:center;color:var(--gray-500);}
.pill{font-size:11px;padding:3px 9px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px;}
.pill.active{background:rgba(62,196,109,.15);color:var(--green);}
.pill.suspended{background:rgba(204,23,23,.15);color:var(--red-light);}

/* ---------- MODAL ---------- */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100;}
.modal{width:100%;max-width:460px;background:var(--surface);border:1px solid var(--gray-700);border-radius:14px;border-top:3px solid var(--red);max-height:90vh;overflow:auto;}
.modal .m-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--gray-800);}
.modal .m-head h3{font-family:'Barlow Condensed',sans-serif;font-size:20px;color:#fff;letter-spacing:.5px;}
.modal .m-head .x{cursor:pointer;color:var(--gray-500);font-size:22px;line-height:1;}
.modal .m-body{padding:22px;}
.modal .m-foot{display:flex;gap:10px;justify-content:flex-end;padding:0 22px 22px;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}

/* ---------- FORM PAGE ---------- */
.form-card{background:var(--surface);border:1px solid var(--gray-700);border-radius:12px;padding:24px;max-width:580px;}
.form-actions{display:flex;gap:10px;margin-top:24px;}
.form-actions .spacer{flex:1;}
a.rowlink{color:#fff;font-weight:700;}
a.rowlink:hover{color:var(--red-light);}

/* ---------- TOAST ---------- */
#toasts{position:fixed;bottom:22px;right:22px;display:flex;flex-direction:column;gap:10px;z-index:200;}
.toast{background:var(--surface2);border:1px solid var(--gray-700);border-left:3px solid var(--red);padding:13px 18px;border-radius:8px;font-size:14px;color:#fff;min-width:220px;box-shadow:0 8px 24px rgba(0,0,0,.4);}
.toast.ok{border-left-color:var(--green);}
