@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap');
@import url('https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css');

:root{
  --bg:#0b0c0f;
  --panel:#1a1c20;
  --panel-2:#121317;
  --text:#e5e7eb;
  --muted:#9ca3af;
  --primary:#2d2f36;
  --primary-2:#1f2126;
  --success:#2f353c;
  --warning:#3a3f46;
  --danger:#383c42;
}

html,body{height:100%;}
body { background: radial-gradient(1200px 600px at 10% -10%, var(--panel-2), var(--bg)); font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif; color: var(--text); }

.container{ max-width: 1000px; }

h1,h2,h3{ font-weight:700; letter-spacing:.2px; }
.card { background: var(--panel); border: none; border-radius: 16px; box-shadow: 0 10px 24px rgba(0,0,0,.3); transition: transform .2s ease, box-shadow .2s ease; }
.card:hover{ transform: translateY(-2px); box-shadow: 0 14px 32px rgba(0,0,0,.12); }
.card-title{ font-weight:600; }

.btn { border-radius: 12px; padding:.6rem 1rem; font-weight:600; color: var(--text); }
.btn-primary{ background: linear-gradient(180deg, var(--primary), var(--primary-2)); border:none; }
.btn-danger{ background: linear-gradient(180deg, var(--danger), #2b2f35); border:none; }
.btn-user{ background: linear-gradient(180deg, #2563eb, #1e40af); border:none; }
.btn-user-outline{ background: transparent; border:1px solid #2563eb; color:#93c5fd; }
.btn-admin{ background: linear-gradient(180deg, #10b981, #0f9d7a); border:none; }
.btn-admin-outline{ background: transparent; border:1px solid #10b981; color:#a7f3d0; }
.btn-guest{ background: linear-gradient(180deg, #f59e0b, #d97706); border:none; color:#111827; }
.btn-guest-outline{ background: transparent; border:1px solid #f59e0b; color:#fde68a; }
.btn-outline-secondary{ border-radius: 12px; }
.btn:focus,.btn:hover{ filter: brightness(.95); }
.btn i{ margin-right: .5rem; }
.
.btn-outline-secondary{ border-color:#2b2f35; color:#cbd5e1; }
.btn-outline-secondary:hover{ background:#111318; }

.alert{ border-radius: 12px; color: var(--text); }

.form-control{ border-radius: 12px; border-color:#2b2f35; background:#0f1014; color: var(--text); }
.form-control:focus{ border-color: #4b5563; box-shadow: 0 0 0 .2rem rgba(75,85,99,.25); }
.form-label{ font-weight:600; }

.table{ border-radius: 12px; overflow:hidden; }
.table thead th{ background:#0f1014; color: var(--text); }
.table{ 
  --bs-table-color: var(--text);
  --bs-table-bg: #14161b;
  --bs-table-border-color: #2b2f35;
  --bs-table-striped-bg: #101318;
  --bs-table-striped-color: var(--text);
  --bs-table-hover-bg: #181b21;
  --bs-table-hover-color: var(--text);
}
.table-striped > tbody > tr:nth-of-type(odd){ background-color: var(--bs-table-striped-bg) !important; color: var(--bs-table-striped-color) !important; }
.table tbody tr{ background-color: var(--bs-table-bg) !important; color: var(--bs-table-color) !important; }
.table-hover > tbody > tr:hover{ background-color: var(--bs-table-hover-bg) !important; color: var(--bs-table-hover-color) !important; }

.row-expired{ background:#381416 !important; color:#fca5a5; }
.row-expired td, .row-expired th{ border-color:#5b1f23 !important; }

a[href*="?lang="]{ display:inline-block; padding:.25rem .6rem; border-radius: 999px; background:#111318; color: var(--text); text-decoration:none; border:1px solid #2b2f35; }
a[href*="?lang="]:hover{ background:#171a1f; }

#qr{ padding: .5rem; }

.bg-gray{ background-color:#2b2f35 !important; }

.app-header{ position: sticky; top:0; z-index: 1000; background: linear-gradient(180deg, #0f1014, #0b0c0f); border-bottom: 1px solid #20252b; }
.app-header .brand{ color: var(--text); font-weight:700; text-decoration: none; }
.app-header .nav-link{ color: var(--muted); margin-right:.75rem; }
.app-header .nav-link:hover{ color: var(--text); }

.app-footer{ margin-top: 2rem; padding: 1rem 0; background: linear-gradient(180deg, #0b0c0f, #0f1014); border-top: 1px solid #20252b; color: var(--muted); }

.container-panel{ background: var(--panel); border-radius: 16px; padding: 1.25rem; box-shadow: 0 10px 24px rgba(0,0,0,.3); }
.section-title{ font-weight:700; margin-bottom: .75rem; }

.tag{ display:inline-block; padding:.25rem .5rem; border-radius:999px; font-size:.85rem; }
.tag-user{ background:#1e40af; color:#bfdbfe; border:1px solid #2563eb; }
.tag-admin{ background:#065f46; color:#a7f3d0; border:1px solid #10b981; }
.tag-guest{ background:#7c2d12; color:#fde68a; border:1px solid #f59e0b; }
.bg-light{ background-color: var(--bg) !important; }
.text-muted{ color: var(--muted) !important; }
.card-body{ background: transparent; color: var(--text); }
.form-select{ border-radius: 12px; border-color:#2b2f35; background:#0f1014; color: var(--text); }
.dropdown-menu{ background:#0f1014; color: var(--text); border:1px solid #2b2f35; }
.bg-white{ background-color:#2b2f35 !important; }
