:root {
  --gold: #d6a84f;
  --black: #080808;
  --charcoal: #171717;
  --panel: #151515;
  --panel-soft: #1d1d1d;
  --line: #333;
  --ink: #f7f4ec;
  --muted: #aaa;
  --green: #4caf7d;
  --amber: #d6a84f;
  --blue: #6ea8fe;
  --red: #e06b6b;
}

body { background: var(--black); color: var(--ink); min-height: 100vh; }
a { color: var(--gold); }
.navbar, footer { background: #0d0d0d; }
.text-gold { color: var(--gold); }
.btn-gold { background: var(--gold); border-color: var(--gold); color: #111; font-weight: 700; }
.btn-gold:hover { background: #efc66f; border-color: #efc66f; color: #111; }
.hero { background: linear-gradient(90deg, rgba(8,8,8,.95), rgba(8,8,8,.72)), radial-gradient(circle at top right, rgba(214,168,79,.22), transparent 36%), #111; }
.label { display: block; color: var(--gold); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.event-callout { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .75rem; }
.event-callout > div { background: #101010; border: 1px solid rgba(214, 168, 79, .42); border-radius: 8px; padding: 1rem; }
.event-callout strong { display: block; color: #fff; font-size: 1.15rem; line-height: 1.35; }
.signup-callout { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.date-apply { max-width: 680px; }
.date-apply-row { display: grid; grid-template-columns: minmax(220px, 1fr) auto; gap: .75rem; }
.selected-date-display { background: #101010; border: 1px solid rgba(214, 168, 79, .55); border-radius: 8px; color: #fff; font-size: 1.2rem; font-weight: 700; padding: .9rem 1rem; }
.panel, .stat, .timer { background: var(--charcoal); border: 1px solid var(--line); border-radius: 8px; padding: 1.25rem; }
.narrow { max-width: 820px; }
.form-control, .form-select { background-color: #111; border-color: #3a3a3a; color: #fff; }
.form-control:focus, .form-select:focus { background-color: #111; border-color: var(--gold); color: #fff; box-shadow: 0 0 0 .2rem rgba(214,168,79,.18); }
.stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .75rem; }
.stat span { display: block; color: var(--muted); font-size: .82rem; }
.stat strong { display: block; font-size: 1.7rem; color: #fff; }
.admin-shell { max-width: 1800px; }
.admin-hero { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; background: linear-gradient(135deg, #171717, #101010); border: 1px solid rgba(214,168,79,.28); border-radius: 8px; padding: 1.25rem; }
.readiness-score { min-width: 100px; text-align: right; }
.readiness-score strong { color: var(--gold); font-size: 2.5rem; line-height: 1; }
.readiness-score span { color: var(--muted); }
.attention-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .85rem; }
.attention-card { background: #111; border: 1px solid #2f2f2f; border-radius: 8px; padding: 1rem; min-height: 150px; }
.attention-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.attention-list li { display: flex; justify-content: space-between; gap: .7rem; font-size: .9rem; }
.attention-list span { color: var(--muted); font-size: .8rem; text-align: right; }
.quiet-ok { color: var(--green); font-weight: 700; }
.comms-list { display: grid; gap: .75rem; }
.comms-list div { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #292929; padding-bottom: .55rem; }
.comms-list span { color: var(--muted); }
.comms-list strong { color: #fff; }
.show-card { background: var(--panel); border: 1px solid #333; border-radius: 8px; padding: 1rem; color: var(--ink); }
.show-card.active { border-color: var(--gold); box-shadow: 0 0 0 1px rgba(214,168,79,.18); }
.show-date { display: block; color: #fff; font-weight: 800; }
.show-card small, .show-meta { color: var(--muted); }
.show-minutes { margin: 1rem 0 .35rem; }
.show-minutes strong { font-size: 1.8rem; color: #fff; margin-right: .35rem; }
.mini-progress { height: .45rem; background: #2b2b2b; }
.status-badge { display: inline-flex; align-items: center; border-radius: 999px; padding: .26rem .55rem; font-size: .78rem; font-weight: 800; white-space: nowrap; }
.status-confirmed { background: rgba(76,175,125,.18); color: #9df0c1; border: 1px solid rgba(76,175,125,.4); }
.status-pending { background: rgba(214,168,79,.15); color: #f0cb7a; border: 1px solid rgba(214,168,79,.4); }
.status-reserve { background: rgba(110,168,254,.16); color: #acd0ff; border: 1px solid rgba(110,168,254,.38); }
.status-cancelled { background: rgba(224,107,107,.15); color: #ffb1b1; border: 1px solid rgba(224,107,107,.38); }
.status-muted { background: #272727; color: #ccc; border: 1px solid #3a3a3a; }
.filter-bar { background: #101010; border: 1px solid #272727; border-radius: 8px; padding: .75rem; }
.applicant-table-wrap { border: 1px solid #292929; border-radius: 8px; }
.applicant-table th { color: #d8d8d8; font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; }
.action-cell { display: flex; align-items: center; gap: .45rem; min-width: 220px; }
.action-cell form { display: inline; }
.action-menu { position: relative; }
.action-menu summary { cursor: pointer; list-style: none; border: 1px solid #555; border-radius: 6px; padding: .25rem .5rem; color: #fff; font-size: .85rem; }
.action-menu[open] summary { border-color: var(--gold); }
.action-menu div { position: absolute; right: 0; z-index: 5; display: grid; gap: .35rem; min-width: 150px; background: #101010; border: 1px solid #444; border-radius: 8px; padding: .5rem; box-shadow: 0 12px 30px rgba(0,0,0,.45); }
.cockpit-strip { display: grid; grid-template-columns: repeat(4, minmax(160px, 1fr)); gap: .75rem; }
.cockpit-card { background: #151515; border: 1px solid #333; border-radius: 8px; padding: 1rem; }
.cockpit-card.live { border-color: var(--gold); }
.cockpit-card span { display: block; color: var(--gold); font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.cockpit-card strong { display: block; color: #fff; font-size: 1.35rem; }
.cockpit-card em { color: var(--muted); font-style: normal; }
.event-list .list-group-item { cursor: grab; }
.event-performer-row.active { border-color: var(--gold) !important; background: #201b10 !important; }
.event-row-main { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.timer { position: sticky; top: 1rem; text-align: center; }
#timerDisplay { font-variant-numeric: tabular-nums; font-size: clamp(4rem, 14vw, 8rem); line-height: 1; margin-bottom: 1rem; color: var(--gold); }
#timerDisplay.timer-danger { color: var(--red); }
.steps-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .75rem; }
.steps-grid div { background: #101010; border: 1px solid #2f2f2f; border-radius: 8px; padding: .9rem; }
.steps-grid strong, .steps-grid span { display: block; }
.steps-grid span { color: var(--muted); font-size: .92rem; margin-top: .25rem; }
.capacity-meter { height: .45rem; background: #2b2b2b; border-radius: 999px; overflow: hidden; }
.capacity-meter span { display: block; height: 100%; background: var(--gold); }
.stage-choice { background: #101010; border: 1px solid #333; border-radius: 8px; padding: .65rem .9rem .65rem 2.2rem; }
.thank-you-panel { text-align: center; }
.lineup-list .list-group-item { border-color: #333; }
.actions { display: flex; flex-wrap: wrap; gap: .35rem; min-width: 360px; }
.actions form { display: inline; }
@media (max-width: 992px) { .cockpit-strip { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) {
  .display-4 { font-size: 2.5rem; }
  .date-apply-row { grid-template-columns: 1fr; }
  .admin-hero { display: block; }
  .admin-hero > div + div { margin-top: 1rem; }
  .actions { min-width: 260px; }
  .table { font-size: .9rem; }
  .cockpit-strip { grid-template-columns: 1fr; }
  .event-row-main { align-items: flex-start; flex-direction: column; }
}
