*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --gold:#D4A843;--gold-dim:rgba(212,168,67,0.15);--gold-border:rgba(212,168,67,0.22);
  --bg:#141B27;--bg-card:#1C2535;--bg-raised:#232E42;
  --line:rgba(255,255,255,0.07);--line-strong:rgba(255,255,255,0.12);
  --text:#E8EDF4;--text-muted:#7A8FA8;--text-soft:#B0BFD0;
  --accent:#5B8FD4;--green:#27A563;--green-dim:rgba(39,165,99,0.12);--red:#E05555;--red-dim:rgba(224,85,85,0.12);
  --radius:11px;
}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh}
a{color:inherit;text-decoration:none}

/* ---------- Auth (login/register) ---------- */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.auth-card{background:var(--bg-card);border:1px solid var(--line-strong);border-radius:16px;padding:38px 34px;max-width:380px;width:100%}
.auth-logo{width:38px;height:38px;background:var(--gold);border-radius:9px;display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-weight:700;font-size:14px;color:#141B27;margin-bottom:20px}
.auth-card h1{font-family:'Playfair Display',serif;font-size:24px;margin-bottom:6px}
.auth-card p.sub{color:var(--text-muted);font-size:13px;margin-bottom:26px}
.field{margin-bottom:15px}
.field label{display:block;font-size:11px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}
.field input,.field select{width:100%;background:var(--bg-raised);border:1px solid var(--line-strong);border-radius:8px;padding:11px 13px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:14px}
.field input:focus,.field select:focus{outline:none;border-color:var(--gold)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:'DM Sans',sans-serif;font-weight:600;font-size:14px;padding:12px 22px;border-radius:8px;border:none;cursor:pointer;transition:opacity .15s,transform .12s}
.btn:hover{transform:translateY(-1px)}
.btn[disabled]{opacity:.6;cursor:not-allowed;transform:none}
.btn-gold{background:var(--gold);color:#141B27}
.btn-gold:hover{background:#E8BC55}
.btn-ghost{background:transparent;color:var(--text-soft);border:1px solid var(--line-strong)}
.btn-danger{background:var(--red);color:#fff}
.btn-block{width:100%}
.error-text{color:var(--red);font-size:12px;margin-top:10px;min-height:1.2em}
.auth-foot{text-align:center;font-size:13px;color:var(--text-muted);margin-top:20px}
.auth-foot a{color:var(--gold)}

/* ---------- Admin shell ---------- */
.shell{display:flex;min-height:100vh}
.sidebar{width:230px;background:var(--bg-card);border-right:1px solid var(--line);padding:24px 16px;flex-shrink:0;display:flex;flex-direction:column}
.sidebar .brand{display:flex;align-items:center;gap:10px;margin-bottom:30px;padding:0 6px}
.sidebar .brand .logo{width:32px;height:32px;background:var(--gold);border-radius:7px;display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-weight:700;font-size:12px;color:#141B27}
.sidebar .brand span{font-weight:600;font-size:14px}
.sidebar a.nav-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;font-size:13.5px;color:var(--text-muted);margin-bottom:3px}
.sidebar a.nav-link:hover{color:var(--text);background:rgba(255,255,255,0.04)}
.sidebar a.nav-link.active{color:var(--text);background:var(--bg-raised);font-weight:600}
.sidebar .spacer{flex:1}
.sidebar .signout{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;font-size:13.5px;color:var(--red);cursor:pointer}
.sidebar .signout:hover{background:var(--red-dim)}

.main{flex:1;padding:32px 38px;max-width:1200px}
.main h1{font-family:'Playfair Display',serif;font-size:1.6rem;margin-bottom:4px}
.main .lede{color:var(--text-muted);font-size:13.5px;margin-bottom:28px}

/* ---------- Stat cards ---------- */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:30px}
.stat-card{background:var(--bg-card);border:1px solid var(--line-strong);border-radius:var(--radius);padding:18px 20px}
.stat-card .num{font-family:'Playfair Display',serif;font-size:1.7rem}
.stat-card .label{font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-muted);margin-top:4px}

/* ---------- Tables ---------- */
.table-wrap{border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;overflow-x:auto}
table{width:100%;border-collapse:collapse;background:var(--bg-card)}
th,td{padding:11px 16px;text-align:left;font-size:13px;border-bottom:1px solid var(--line);white-space:nowrap}
th{background:var(--bg-raised);color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:0.04em}
tr:last-child td{border-bottom:none}
.pill{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600}
.pill.paid{background:var(--green-dim);color:var(--green)}

/* ---------- Toolbar / cards ---------- */
.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:10px}
.panel{background:var(--bg-card);border:1px solid var(--line-strong);border-radius:var(--radius);padding:22px 24px}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.nominee-card{background:var(--bg-raised);border:1px solid var(--line-strong);border-radius:9px;overflow:hidden}
.nominee-card img{width:100%;height:130px;object-fit:cover;background:var(--bg);display:block}
.nominee-card .body{padding:12px 14px}
.nominee-card .votes{color:var(--text-muted);font-size:12px;margin:4px 0 10px}
.category-block{margin-bottom:22px}
.category-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.category-head h3{font-size:15px;font-weight:600}
.category-head .count{color:var(--text-muted);font-size:12px;font-weight:400}
.empty{text-align:center;color:var(--text-muted);padding:40px;font-size:13.5px}

.toast{position:fixed;bottom:24px;right:24px;background:var(--bg-card);border:1px solid var(--line-strong);color:var(--text);padding:12px 18px;border-radius:9px;font-size:13px;opacity:0;transform:translateY(8px);transition:all .2s ease;z-index:300}
.toast.show{opacity:1;transform:translateY(0)}

@media(max-width:760px){
  .shell{flex-direction:column}
  .sidebar{width:100%;flex-direction:row;overflow-x:auto;align-items:center}
  .sidebar .brand{margin-bottom:0;margin-right:14px}
  .sidebar .spacer{display:none}
  .main{padding:20px}
}