:root {
  --helios-cachemire:   #F2EEE9;
  --helios-champagne:   #E8D8C4;
  --helios-sauge:       #8A8467;
  --helios-terre:       #C7B7A3;
  --helios-vin:         #721321;
  --helios-vin-dark:    #5a0f1a;
  --helios-warm-black:  #1C1916;
  --font-title: 'Forum', Georgia, serif;
  --font-body:  'Libre Baskerville', Georgia, serif;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: var(--font-body); background: var(--helios-cachemire); color: var(--helios-warm-black); }
h1,h2,h3 { font-family: var(--font-title); }
a { color: inherit; }
button { font-family: var(--font-body); }

/* ── Admin Layout ─────────────────────────── */
.admin-shell { display: flex; min-height: 100vh; background: var(--helios-cachemire); }

.admin-sidebar { width: 240px; flex-shrink: 0; background: #721321; display: flex; flex-direction: column; justify-content: space-between; padding: 2rem 1.25rem; }
.admin-sidebar-logo { margin-bottom: 2.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(242,238,233,.12); display: flex; justify-content: center; }
.admin-sidebar-nav { display: flex; flex-direction: column; gap: .25rem; }
.admin-sidebar-footer { border-top: 1px solid rgba(242,238,233,.08); padding-top: 1.25rem; }

.admin-nav-link { display: flex; align-items: center; gap: .625rem; padding: .625rem .875rem; border-radius: .5rem; font-size: .875rem; font-family: var(--font-body); color: rgba(242,238,233,.55); text-decoration: none; transition: background .15s, color .15s; }
.admin-nav-link:hover { background: rgba(242,238,233,.08); color: rgba(242,238,233,.9); }
.admin-logout-btn { display: flex; align-items: center; gap: .5rem; font-size: .8125rem; font-family: var(--font-body); color: rgba(242,238,233,.35); text-decoration: none; transition: color .15s; }
.admin-logout-btn:hover { color: rgba(242,238,233,.8); }

.admin-topbar { display: none; }
.admin-main { flex: 1; overflow: auto; min-width: 0; }
.admin-page { padding: 2.5rem; }
.admin-page-narrow { padding: 2.5rem; max-width: 900px; }
.admin-stats-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-bottom: 2.5rem; }
.admin-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.admin-events-grid { display: grid; grid-template-columns: 1fr 340px; gap: 1.5rem; align-items: start; }

/* ── Shared card ─────────────────────────── */
.card { background: white; border-radius: .875rem; border: 1px solid rgba(232,216,196,.6); box-shadow: 0 2px 12px rgba(28,25,22,.04); overflow: hidden; }
.card-header { padding: 1.25rem 1.5rem; border-bottom: 1px solid var(--helios-champagne); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.card-header h2 { font-family: var(--font-title); font-size: 1.125rem; font-weight: 400; color: var(--helios-warm-black); }
.card-body { padding: 1.5rem; }

/* ── Buttons ─────────────────────────────── */
.btn-primary { display: inline-flex; align-items: center; gap: .5rem; padding: .625rem 1.25rem; background: var(--helios-vin); color: white; border: none; border-radius: .5rem; font-size: .875rem; font-family: var(--font-body); font-weight: 700; text-decoration: none; cursor: pointer; transition: background .15s; }
.btn-primary:hover { background: var(--helios-vin-dark); }
.btn-secondary { background: none; border: 1px solid var(--helios-champagne); border-radius: .375rem; padding: .375rem .5rem; font-size: .75rem; font-family: var(--font-body); color: var(--helios-sauge); cursor: pointer; transition: all .15s; text-decoration: none; display: inline-flex; align-items: center; }
.btn-danger { background: none; border: 1px solid rgba(114,19,33,.2); border-radius: .375rem; padding: .3rem .625rem; font-size: .75rem; font-family: var(--font-body); color: rgba(114,19,33,.6); cursor: pointer; transition: all .15s; }

/* ── Tables ──────────────────────────────── */
.data-table { width: 100%; border-collapse: collapse; }
.data-table thead tr { background: var(--helios-cachemire); }
.data-table th { padding: .75rem 1.25rem; text-align: left; font-size: .75rem; font-family: var(--font-body); color: var(--helios-sauge); font-weight: 400; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.data-table td { padding: 1rem 1.25rem; font-family: var(--font-body); font-size: .875rem; color: var(--helios-warm-black); }
.data-table tbody tr + tr { border-top: 1px solid var(--helios-champagne); }

/* ── Badge ───────────────────────────────── */
.badge-active   { display: inline-block; font-size: .75rem; font-family: var(--font-body); padding: .2rem .625rem; border-radius: 999px; background: rgba(114,19,33,.08); color: var(--helios-vin); }
.badge-inactive { display: inline-block; font-size: .75rem; font-family: var(--font-body); padding: .2rem .625rem; border-radius: 999px; background: rgba(138,132,103,.1); color: var(--helios-sauge); }

/* ── Code chip ───────────────────────────── */
.code-chip { font-family: monospace; font-size: .875rem; background: var(--helios-cachemire); padding: .25rem .625rem; border-radius: .25rem; color: var(--helios-vin); letter-spacing: .12em; }

/* ── Forms ───────────────────────────────── */
.form-group { margin-bottom: 1rem; }
.form-label { display: block; font-size: .8rem; font-family: var(--font-body); color: var(--helios-sauge); letter-spacing: .05em; text-transform: uppercase; margin-bottom: .5rem; }
.form-input { width: 100%; padding: .75rem 1rem; background: var(--helios-cachemire); border: 1px solid var(--helios-champagne); border-radius: .5rem; font-size: .9375rem; font-family: var(--font-body); color: var(--helios-warm-black); outline: none; transition: border-color .15s, box-shadow .15s; }
.form-input:focus { border-color: var(--helios-vin); box-shadow: 0 0 0 3px rgba(114,19,33,.1); }

/* ── Alert ───────────────────────────────── */
.alert-error { font-size: .8125rem; font-family: var(--font-body); color: #9B1C2C; background: #FDF2F4; border: 1px solid rgba(114,19,33,.2); border-radius: .5rem; padding: .625rem .875rem; margin-bottom: 1rem; }
.alert-success { font-size: .8125rem; font-family: var(--font-body); color: var(--helios-vin); background: rgba(114,19,33,.04); border: 1px solid rgba(114,19,33,.2); border-radius: .5rem; padding: .625rem .875rem; margin-bottom: 1rem; }

/* ── Drop zone ───────────────────────────── */
.drop-zone { border: 2px dashed var(--helios-champagne); border-radius: .75rem; padding: 2rem; text-align: center; cursor: pointer; background: var(--helios-cachemire); transition: all .2s; margin-bottom: 1rem; }
.drop-zone:hover, .drop-zone.drag-over { border-color: var(--helios-vin); background: rgba(114,19,33,.04); }

/* ── Public pages ────────────────────────── */
.public-header { border-bottom: 1px solid var(--helios-champagne); background: white; padding: 1rem 2rem; display: flex; align-items: center; justify-content: center; }
.public-container { max-width: 680px; margin: 0 auto; padding: 2.5rem 1.5rem; }

/* ── Login page ──────────────────────────── */
.login-main { min-height: 100vh; display: flex; }
.login-brand { display: none; position: relative; overflow: hidden; flex-direction: column; justify-content: space-between; align-items: center; padding: 3.5rem; background: linear-gradient(160deg,#721321 0%,#5a0f1a 45%,#6b1220 75%,#721321 100%); }
.login-right { flex: 1; display: flex; align-items: center; justify-content: center; padding: 3rem 2rem; }
.login-card { background: white; border-radius: 1.125rem; padding: 2.25rem; box-shadow: 0 4px 28px rgba(28,25,22,.07),0 1px 4px rgba(28,25,22,.04); border: 1px solid rgba(232,216,196,.6); width: 100%; max-width: 380px; }
.google-btn { width: 100%; display: flex; align-items: center; justify-content: center; gap: .75rem; padding: .75rem 1.25rem; background: white; border: 1px solid var(--helios-champagne); border-radius: .5rem; font-size: .9375rem; font-family: var(--font-body); color: var(--helios-warm-black); cursor: pointer; box-shadow: 0 1px 4px rgba(28,25,22,.06); transition: box-shadow .15s, border-color .15s; }
.google-btn:hover { border-color: var(--helios-terre); box-shadow: 0 2px 8px rgba(28,25,22,.1); }

/* ── File list ───────────────────────────── */
.file-list { list-style: none; border: 1px solid var(--helios-champagne); border-radius: .5rem; overflow: hidden; margin-bottom: 1rem; }
.file-list li { display: flex; align-items: center; justify-content: space-between; padding: .5rem .75rem; background: white; font-size: .8125rem; font-family: var(--font-body); }
.file-list li + li { border-top: 1px solid var(--helios-champagne); }

/* ── Responsive ──────────────────────────── */
@media (min-width: 1024px) {
  .login-brand { display: flex; width: 55%; }
  .login-mobile-logo { display: none; }
  .login-card-logo { display: block; }
}
.login-card-logo { display: none; }

@media (max-width: 860px) {
  .admin-shell { flex-direction: column; }
  .admin-sidebar { display: none; }
  .admin-topbar { display: flex; align-items: center; gap: .75rem; background: #721321; padding: .625rem 1rem; position: sticky; top: 0; z-index: 50; }
  .admin-topbar-nav { display: flex; align-items: center; gap: .25rem; flex: 1; }
  .admin-topbar-link { display: flex; align-items: center; gap: .4rem; padding: .5rem .75rem; border-radius: .5rem; font-size: .8125rem; font-family: var(--font-body); color: rgba(242,238,233,.6); text-decoration: none; transition: background .15s, color .15s; }
  .admin-topbar-link:hover { background: rgba(242,238,233,.08); color: rgba(242,238,233,.95); }
  .admin-topbar-logout { background: none; border: none; cursor: pointer; color: rgba(242,238,233,.45); padding: .5rem; border-radius: .375rem; display: flex; align-items: center; text-decoration: none; transition: color .15s; }
  .admin-topbar-logout:hover { color: rgba(242,238,233,.9); }
  .admin-page, .admin-page-narrow { padding: 1rem; max-width: 100%; }
  .admin-stats-grid { grid-template-columns: repeat(2,1fr); }
  .admin-events-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .admin-stats-grid { grid-template-columns: 1fr; }
  .admin-topbar-link span { display: none; }
}
