:root {
  --ado-ink: #090a08;
  --ado-ink-2: #11130f;
  --ado-panel: #181b15;
  --ado-paper: #f3efdc;
  --ado-muted: #b9b7a9;
  --ado-lime: #c8ff32;
  --ado-lime-dark: #92c600;
  --ado-red: #ff4b36;
  --ado-line: rgba(243, 239, 220, 0.15);
  --ado-shadow: 0 24px 70px rgba(0, 0, 0, 0.42);
}

.page-manage,
.page-tournament,
.page-scorer,
.page-register {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  background:
    radial-gradient(circle at 92% 0%, rgba(200, 255, 50, 0.09), transparent 28rem),
    linear-gradient(180deg, var(--ado-ink-2), var(--ado-ink));
  color: var(--ado-paper);
}

.page-manage::before,
.page-tournament::before,
.page-register::before {
  position: fixed;
  inset: 0;
  z-index: -1;
  background-image: linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px);
  background-size: 56px 56px;
  content: "";
  pointer-events: none;
}

.page-manage .hero,
.page-manage .card,
.page-manage .modalbox,
.page-tournament .hero,
.page-tournament .panel,
.page-tournament .player-item,
.page-tournament .group-card,
.page-tournament .board-card,
.page-tournament .match-box,
.page-tournament .encounter-card,
.page-tournament .empty-card,
.page-tournament .round-card,
.page-tournament .stats-card,
.page-tournament .qualifier-card,
.page-tournament .nfl-match,
.page-tournament .modal,
.page-tournament .draw-modal {
  border-color: var(--ado-line);
  background: linear-gradient(180deg, rgba(25, 28, 22, .98), rgba(14, 16, 12, .98));
  box-shadow: var(--ado-shadow);
}

.page-manage .hero,
.page-tournament .hero {
  border-top: 3px solid var(--ado-lime);
}

.page-manage .title,
.page-tournament h1,
.page-tournament h2,
.page-scorer h1,
.page-scorer h2,
.page-register h1,
.page-register h2 {
  font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  font-weight: 900;
  letter-spacing: -.035em;
  text-transform: uppercase;
}

.page-manage .title {
  line-height: .9;
}

.page-manage .btn,
.page-tournament .btn {
  border-color: var(--ado-line);
  border-radius: 999px;
  background: rgba(243, 239, 220, .07);
  color: var(--ado-paper);
}

.page-manage .btn.primary,
.page-manage .btn.green,
.page-tournament .btn.primary,
.page-tournament .tab.active,
.page-tournament .paneaction.primary {
  border-color: transparent;
  background: var(--ado-lime);
  color: var(--ado-ink);
}

.page-manage .btn.red,
.page-tournament .btn.red,
.page-tournament .dialogbtn.danger {
  background: var(--ado-red);
}

.page-manage .eyebrow,
.page-manage .back-link,
.page-tournament .cockpit-back,
.page-tournament .chip,
.page-tournament .draw-target {
  color: var(--ado-lime);
}

.page-tournament .preview-tile,
.page-tournament .state-banner,
.page-tournament .table-shell,
.page-tournament .nfl-player,
.page-tournament .enc-item-clean,
.page-tournament .match-box.compact {
  border-color: var(--ado-line);
  background: rgba(243, 239, 220, .045);
}

.page-tournament .chip,
.page-tournament .enc-board,
.page-tournament .badge.done,
.page-tournament .badge.live {
  border-color: rgba(200, 255, 50, .24);
  background: rgba(200, 255, 50, .10);
  color: #e6ffa5;
}

.page-tournament .field input,
.page-tournament .field select,
.page-tournament .field textarea,
.page-manage input,
.page-manage select {
  border-color: var(--ado-line);
  background: rgba(9, 10, 8, .72);
  color: var(--ado-paper);
}

.page-scorer .topbar,
.page-scorer .players,
.page-scorer .hero,
.page-scorer .entrybar,
.page-scorer .modebar,
.page-scorer .padwrap,
.page-scorer .actions {
  border-color: var(--ado-line);
  background: rgba(20, 23, 17, .97);
  box-shadow: 0 12px 34px rgba(0,0,0,.2);
}

.page-scorer .ptab.active,
.page-scorer .selecttile.active,
.page-scorer .paneaction.primary,
.page-scorer .dialogbtn.starter-start-btn {
  border-color: transparent;
  background: var(--ado-lime);
  color: var(--ado-ink);
}

.page-scorer .remain,
.page-scorer .checkout,
.page-scorer .legpill {
  color: var(--ado-lime);
}

.ado-page {
  width: min(calc(100% - 32px), 980px);
  margin: 0 auto;
  padding: 28px 0 70px;
}

.ado-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 44px;
}

.ado-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--ado-paper);
  font-size: .9rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}

.ado-brand-mark {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  transform: rotate(-4deg);
  border: 2px solid var(--ado-lime);
  color: var(--ado-lime);
  font-size: .8rem;
  letter-spacing: -.06em;
}

.ado-back {
  color: var(--ado-muted);
  font-size: .9rem;
  font-weight: 750;
  text-decoration: none;
}

.ado-back:hover { color: var(--ado-paper); }

.ado-panel {
  overflow: hidden;
  border: 1px solid var(--ado-line);
  border-top: 3px solid var(--ado-lime);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(25, 28, 22, .98), rgba(14, 16, 12, .98));
  box-shadow: var(--ado-shadow);
}

.ado-panel-head,
.ado-panel-body {
  padding: clamp(22px, 5vw, 44px);
}

.ado-panel-head {
  border-bottom: 1px solid var(--ado-line);
}

.ado-kicker {
  margin: 0 0 10px;
  color: var(--ado-lime);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.ado-panel h1 {
  margin: 0;
  font-size: clamp(3.2rem, 10vw, 6.6rem);
  line-height: .82;
}

.ado-lead {
  max-width: 650px;
  margin: 22px 0 0;
  color: var(--ado-muted);
  font-size: 1.05rem;
}

.ado-event-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.ado-event-meta span {
  padding: 8px 12px;
  border: 1px solid var(--ado-line);
  border-radius: 999px;
  color: var(--ado-muted);
  font-size: .84rem;
  font-weight: 750;
}

.ado-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.ado-field { display: grid; gap: 8px; }
.ado-field.full { grid-column: 1 / -1; }
.ado-field label { color: var(--ado-muted); font-size: .86rem; font-weight: 800; }

.ado-field input,
.ado-field textarea {
  width: 100%;
  min-height: 50px;
  padding: 13px 14px;
  border: 1px solid var(--ado-line);
  border-radius: 14px;
  outline: none;
  background: rgba(9,10,8,.7);
  color: var(--ado-paper);
  font: inherit;
}

.ado-field textarea { min-height: 96px; resize: vertical; }
.ado-field input:focus,
.ado-field textarea:focus { border-color: var(--ado-lime); box-shadow: 0 0 0 3px rgba(200,255,50,.12); }

.ado-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--ado-muted);
  font-size: .9rem;
}

.ado-check input { width: 20px; height: 20px; accent-color: var(--ado-lime); }

.ado-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 22px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--ado-lime);
  color: var(--ado-ink);
  cursor: pointer;
  font: inherit;
  font-size: .9rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-decoration: none;
  text-transform: uppercase;
}

.ado-button.secondary { border-color: var(--ado-line); background: transparent; color: var(--ado-paper); }
.ado-button:disabled { cursor: not-allowed; opacity: .5; }
.page-register h1 { line-height: 1; font-size: clamp(2.75rem, 8vw, 5.8rem); overflow-wrap: anywhere; }
.ado-check.full { grid-column: 1 / -1; }
.ado-check input { flex-shrink: 0; }
.ado-form-title { margin: 0 0 12px; font-size: clamp(1.8rem, 5vw, 2.4rem); line-height: 1.12; }
.ado-form-intro { color: var(--ado-muted); margin: 0 0 28px; }
.ado-field label, .ado-event-meta span { font-size: .9rem; }
.ado-field small, .ado-fineprint { font-size: .875rem; color: var(--ado-muted); line-height: 1.6; }
.ado-field label span { font-weight: 400; }
#submitButton { margin-top: 28px; }
.ado-group { margin-top: 30px; padding-top: 28px; border-top: 1px solid var(--ado-line); }
.ado-group h2 { font-size: 1.8rem; margin: 8px 0 12px; line-height: 1.1; }
.ado-group p { max-width: 650px; }
.ado-group .ado-button { text-transform: none; letter-spacing: 0; }
.ado-share { margin: 28px 0; text-align: center; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.ado-share p { flex-basis: 100%; }
.ado-share p { color: var(--ado-muted); overflow-wrap: anywhere; }
.ado-button:focus-visible, .ado-back:focus-visible { outline: 3px solid var(--ado-paper); outline-offset: 4px; }
[hidden] { display: none !important; }
.ado-status { min-height: 24px; margin-top: 14px; color: var(--ado-muted); font-size: .9rem; }
.ado-status.error { color: #ff9e91; }
.ado-success { padding: 30px; border: 1px solid rgba(200,255,50,.28); border-radius: 18px; background: rgba(200,255,50,.08); }
.ado-success h2 { margin: 0 0 10px; color: var(--ado-lime); font-size: 2rem; }

.checkin-dialog {
  width: min(920px, calc(100vw - 28px));
  max-height: min(820px, calc(100vh - 28px));
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--ado-line);
  border-radius: 24px;
  background: var(--ado-ink-2);
  color: var(--ado-paper);
  box-shadow: var(--ado-shadow);
}

.checkin-dialog::backdrop { background: rgba(0,0,0,.78); backdrop-filter: blur(7px); }
.checkin-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:24px; border-bottom:1px solid var(--ado-line); }
.checkin-head h2 { margin:0 0 5px; }
.checkin-head p { margin:0; color:var(--ado-muted); }
.checkin-close { width:42px; height:42px; border:1px solid var(--ado-line); border-radius:50%; background:transparent; color:var(--ado-paper); cursor:pointer; font-size:1.2rem; }
.checkin-tools { display:flex; flex-wrap:wrap; gap:10px; padding:16px 24px; border-bottom:1px solid var(--ado-line); }
.checkin-stat { padding:8px 12px; border:1px solid var(--ado-line); border-radius:999px; color:var(--ado-muted); font-size:.82rem; font-weight:800; }
.checkin-stat strong { color:var(--ado-paper); }
.checkin-list { display:grid; gap:10px; max-height:480px; overflow:auto; padding:18px 24px; }
.checkin-row { display:grid; grid-template-columns:minmax(180px,1fr) auto auto; align-items:center; gap:16px; padding:14px; border:1px solid var(--ado-line); border-radius:16px; background:rgba(243,239,220,.035); }
.checkin-name strong,.checkin-name span { display:block; }
.checkin-name span { color:var(--ado-muted); font-size:.8rem; }
.checkin-toggle { display:flex; align-items:center; gap:8px; color:var(--ado-muted); font-size:.84rem; font-weight:800; }
.checkin-toggle input { width:22px; height:22px; accent-color:var(--ado-lime); }
.checkin-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; padding:18px 24px; border-top:1px solid var(--ado-line); }
.checkin-empty { padding:30px; text-align:center; color:var(--ado-muted); }

.registrations-dialog { width:min(960px, calc(100vw - 28px)); }
.registrations-title { margin:4px 0 6px; font-family:Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size:clamp(2rem, 6vw, 3.7rem); line-height:.95; letter-spacing:-.035em; text-transform:uppercase; }
.registrations-summary { display:flex; flex-wrap:wrap; gap:10px; padding:16px 24px 0; }
.registrations-search-wrap { display:grid; gap:7px; padding:16px 24px 0; }
.registrations-search-wrap label { color:var(--ado-muted); font-size:.9rem; font-weight:800; }
.registrations-search-wrap input { width:100%; min-height:48px; margin:0; }
.registrations-dialog .ado-status { margin:10px 24px 0; }
.registrations-list { display:grid; gap:10px; max-height:480px; overflow:auto; padding:10px 24px 20px; }
.registration-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:22px; align-items:center; padding:16px; border:1px solid var(--ado-line); border-radius:16px; background:rgba(243,239,220,.035); }
.registration-row.cancelled { opacity:.62; }
.registration-name { display:flex; align-items:center; flex-wrap:wrap; gap:9px; font-size:1rem; }
.registration-cancelled { padding:4px 7px; border-radius:999px; background:rgba(255,75,54,.14); color:#ffb2a8; font-size:.72rem; font-weight:900; text-transform:uppercase; }
.registration-meta,.registration-note { margin-top:5px; color:var(--ado-muted); font-size:.84rem; line-height:1.45; }
.registration-contact { display:inline-flex; margin-top:7px; color:var(--ado-lime); font-size:.9rem; font-weight:800; text-decoration:none; }
.registration-note { padding:8px 10px; border-left:2px solid rgba(200,255,50,.42); background:rgba(200,255,50,.04); }
.registration-controls { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:14px; }
.registration-cancel { padding:8px 11px; border:1px solid rgba(255,75,54,.35); border-radius:999px; background:transparent; color:#ffb2a8; cursor:pointer; font:inherit; font-size:.8rem; font-weight:800; }

@media (max-width: 680px) {
  .ado-page { width:min(calc(100% - 20px), 980px); padding-top:14px; }
  .ado-page-header { margin-bottom:20px; }
  .ado-form-grid { grid-template-columns:1fr; }
  .ado-field.full { grid-column:auto; }
  .checkin-row { grid-template-columns:1fr 1fr; }
  .checkin-name { grid-column:1 / -1; }
  .checkin-actions .ado-button { width:100%; }
  .registration-row { grid-template-columns:1fr; gap:14px; }
  .registration-controls { justify-content:flex-start; }
}
