/* ── ROOT ─────────────────────────────────────────────── */
:root,[data-bs-theme="dark"]{
  --bg:#07070c;--surface:#0e0e16;--surface-2:#15151f;--border:#1e1e2d;
  --accent:#00e5a0;--accent-hover:#00c98b;--accent-glow:rgba(0,229,160,.15);
  --text:#eae7e3;--text-muted:#6b6a73;
  --font-h:'Syne',sans-serif;--font-b:'Lora',serif;--font-m:'DM Mono',monospace;
  --bs-body-bg:var(--bg);--bs-body-color:var(--text);
  --bs-link-color:var(--accent);--bs-link-hover-color:var(--accent-hover);
  --bs-primary:var(--accent);
  --bs-primary-bg-subtle:rgba(0,229,160,.08);
  --bs-primary-border-subtle:rgba(0,229,160,.2);
  --bs-secondary-bg:var(--surface);--bs-tertiary-bg:var(--surface-2);
  --bs-border-color:var(--border);
}
body{font-family:var(--font-b);background:var(--bg);color:var(--text);min-height:100vh}
h1,h2,h3,h4,h5,h6,.navbar-brand,.stat-label,.form-label{font-family:var(--font-h)}
.font-mono,code,.regid-code{font-family:var(--font-m)!important}
.accent{color:var(--accent)}

/* ── NAVBAR ───────────────────────────────────────────── */
.ft-navbar{background:#050508!important;border-bottom:1px solid var(--border);padding:.6rem 0}
.ft-brand{font-family:var(--font-h);font-weight:700;font-size:1.1rem;color:var(--text)!important}
.ft-navbar .nav-link{font-family:var(--font-h);font-size:.85rem;letter-spacing:.03em;color:var(--text-muted)!important;transition:color .2s}
.ft-navbar .nav-link:hover{color:var(--accent)!important}

/* ── BUTTONS ──────────────────────────────────────────── */
.btn-accent{background:var(--accent);color:#000;font-family:var(--font-h);font-weight:600;border:none;transition:all .2s}
.btn-accent:hover{background:var(--accent-hover);color:#000;transform:translateY(-1px);box-shadow:0 4px 20px var(--accent-glow)}

/* ── CARDS ────────────────────────────────────────────── */
.card{background:var(--surface);border:1px solid var(--border);border-radius:12px}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;text-align:center;transition:border-color .2s}
.stat-card:hover{border-color:var(--accent)}
.stat-card.accent-card{border-color:rgba(0,229,160,.3);background:rgba(0,229,160,.04)}
.stat-card.error-card{border-color:rgba(255,71,87,.3);background:rgba(255,71,87,.04)}
.stat-card.error-card .stat-number{color:#ff4757}
.stat-number{font-family:var(--font-h);font-size:2rem;font-weight:700;line-height:1}
.stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:.5rem}

/* ── TABLE ────────────────────────────────────────────── */
.table-dark{--bs-table-bg:transparent;--bs-table-border-color:var(--border)}
.table th{font-family:var(--font-h);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}
.table td{font-size:.88rem}
.table-hover>tbody>tr:hover{background:rgba(0,229,160,.03)}
.regid-code{background:var(--surface-2);padding:2px 8px;border-radius:4px;font-size:.8rem;color:var(--accent)}
.bg-accent{background:var(--accent)!important;color:#000}

/* ── FORMS ────────────────────────────────────────────── */
.form-control,.form-select{background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-family:var(--font-b)}
.form-control:focus,.form-select:focus{background:var(--surface-2);border-color:var(--accent);color:var(--text);box-shadow:0 0 0 3px var(--accent-glow)}
::placeholder{color:var(--text-muted)!important;opacity:.6}

/* ── GLASS EFFECT ─────────────────────────────────────── */
.glass{background:rgba(255,255,255,.02);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.05);border-radius:16px}

/* ── LOGIN ────────────────────────────────────────────── */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(ellipse at 30% 20%,rgba(0,229,160,.08) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(14,165,233,.06) 0%,transparent 50%),var(--bg)}
.login-wrapper{width:100%;max-width:400px;padding:1rem}
.login-card{padding:2.5rem}
.login-brand{font-family:var(--font-h);font-weight:700;font-size:1.5rem;text-align:center;margin-bottom:.5rem}
.login-card h2{text-align:center;font-size:1rem;color:var(--text-muted);margin-bottom:1.5rem}

/* ── SCAN PAGE ────────────────────────────────────────── */
.scan-body{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:2rem 1rem;background:radial-gradient(ellipse at 30% 0%,rgba(0,229,160,.1) 0%,transparent 50%),radial-gradient(ellipse at 70% 100%,rgba(14,165,233,.08) 0%,transparent 50%),#07070c}
.scan-container{width:100%;max-width:420px;display:flex;flex-direction:column;gap:1.25rem}
.scan-header{text-align:center;padding:1rem 0}
.scan-event-badge{font-family:var(--font-h);font-weight:700;font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.scan-event-year{font-family:var(--font-h);font-size:2rem;font-weight:700;line-height:1}
.scan-date{text-align:center;font-family:var(--font-m);font-size:.85rem;color:var(--text-muted)}
.scan-card{padding:2rem;text-align:center}
.scan-avatar{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#0ea5e9);color:#000;font-family:var(--font-h);font-size:1.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}
.scan-name{font-family:var(--font-h);font-size:1.5rem;font-weight:700;margin:0 0 .25rem}
.scan-org{font-family:var(--font-h);font-size:.95rem;color:var(--accent);margin:0 0 .15rem}
.scan-title{font-size:.85rem;color:var(--text-muted);margin:0 0 1rem}
.scan-ticket{display:inline-block;padding:4px 14px;border-radius:20px;font-family:var(--font-h);font-size:.75rem;font-weight:600;letter-spacing:.04em}
.scan-ticket.premium{background:rgba(0,229,160,.12);color:var(--accent);border:1px solid rgba(0,229,160,.3)}
.scan-ticket.standard{background:rgba(255,255,255,.06);color:var(--text-muted);border:1px solid var(--border)}
.scan-days{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.scan-day-card{padding:1.5rem 1rem;text-align:center;transition:all .3s}
.scan-day-card.confirmed{border-color:rgba(0,229,160,.3);background:rgba(0,229,160,.05)}
.scan-day-card.just-confirmed{animation:cpulse .6s ease}
@keyframes cpulse{0%{transform:scale(1)}50%{transform:scale(1.03);box-shadow:0 0 30px var(--accent-glow)}100%{transform:scale(1)}}
.day-label{font-family:var(--font-h);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted)}
.day-date{font-family:var(--font-h);font-size:1.1rem;font-weight:700;margin:.25rem 0 1rem}
.day-confirmed{display:flex;flex-direction:column;align-items:center;gap:.5rem}
.confirm-check{width:48px;height:48px;border-radius:50%;background:var(--accent);color:#000;font-size:1.5rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.confirm-time{font-family:var(--font-m);font-size:.75rem;color:var(--accent)}
.scan-confirm-btn{background:var(--accent);color:#000;border:none;border-radius:10px;padding:.75rem 1rem;font-family:var(--font-h);font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s;width:100%}
.scan-confirm-btn:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 4px 20px var(--accent-glow)}
.scan-confirm-btn:active{transform:translateY(0)}
.scan-confirm-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
.scan-regid{text-align:center;font-family:var(--font-m);font-size:.75rem;color:var(--text-muted)}
.scan-error-icon{width:64px;height:64px;border-radius:50%;background:rgba(255,71,87,.1);color:#ff4757;font-size:2rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}

/* ── PRINT ────────────────────────────────────────────── */
.print-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}
.print-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;text-align:center;break-inside:avoid;page-break-inside:avoid}
.print-qr img{border-radius:8px}
.print-name{font-family:var(--font-h);font-weight:700;font-size:1rem;margin-top:.75rem}
.print-org{font-size:.85rem;color:var(--accent)}
.print-ticket{font-size:.75rem;color:var(--text-muted);margin:.25rem 0}
.print-regid{font-family:var(--font-m);font-size:.75rem;color:var(--text-muted)}

@media print{
  .no-print{display:none!important}
  body{background:#fff!important;color:#000!important}
  .ft-navbar,main>.alert{display:none!important}
  .print-grid{grid-template-columns:repeat(2,1fr);gap:1rem}
  .print-card{background:#fff!important;border:1px solid #ccc!important;color:#000!important}
  .print-name{color:#000!important}.print-org{color:#333!important}.print-ticket,.print-regid{color:#666!important}
}

@media(max-width:768px){
  .stat-number{font-size:1.5rem}
  .btn-group-sm .btn{padding:.2rem .35rem}
}