/* ══════════════════════════════════════════════
   admin.css — Season Admin (pages/admin.html)
   Uses the site's :root tokens from css/style.css
══════════════════════════════════════════════ */

.adm-page { max-width: 1040px; padding-bottom: 7rem; }
.adm-card { margin-top: 1.25rem; }
.adm-card h2 { margin: 0 0 .35rem; font-family: 'Orbitron', sans-serif; font-size: 18px; }
.adm-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.adm-link-btn { display: inline-block; text-decoration: none; }
.adm-spacer { height: 1rem; }

/* ── Overview ── */
.adm-badge {
  font-family: 'Share Tech Mono', monospace; font-size: 12px; letter-spacing: .04em;
  padding: 4px 12px; border-radius: 999px; border: 1px solid var(--border-soft);
  background: rgba(255,255,255,.06); color: var(--text-dim);
}
.adm-b-run  { color: var(--green);  border-color: rgba(54,201,126,.5);  background: rgba(54,201,126,.1); }
.adm-b-wait { color: var(--gold-bright); border-color: rgba(255,154,82,.55); background: rgba(255,90,31,.12); }
.adm-b-done { color: var(--purple-bright); border-color: rgba(183,148,246,.5); background: rgba(124,58,237,.12); }

.adm-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-top: 1rem; }
.adm-stat { padding: 12px 14px; border: 1px solid var(--border-soft); background: var(--card-bg2); border-radius: var(--radius); }
.adm-stat-key { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--text-dim); }
.adm-stat-val { margin-top: 4px; font-family: 'Share Tech Mono', monospace; font-size: 16px; color: var(--text); word-break: break-word; }

.adm-warn { color: var(--gold-bright); font-size: 13px; margin-top: .75rem; }

/* ── Payout box ── */
.adm-payout-box {
  margin-top: 1rem; padding: 12px 16px; border: 1px solid var(--border-soft);
  border-radius: var(--radius); background: var(--card-bg2);
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.adm-payout-text { flex: 1 1 260px; }
.adm-payout-text strong { color: var(--gold-bright); }
.adm-payout-text .dash-note { margin: 4px 0 0; }
.adm-payout-btn {
  margin-top: 0; padding: 0.75rem 1.5rem; border-radius: 10px; border: none;
  background: var(--red, #e0382f); color: #fff; font-weight: 700; font: inherit;
  cursor: pointer; white-space: nowrap; transition: filter .15s, opacity .15s;
}
.adm-payout-btn:hover:not(:disabled) { filter: brightness(1.1); }
.adm-payout-btn:disabled { opacity: .5; cursor: not-allowed; }

/* ── Form fields ── */
.adm-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; margin-top: 1rem; }
.adm-span2 { grid-column: 1 / -1; }
.adm-field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--text-dim); }
.adm-field > span { display: flex; align-items: baseline; gap: 8px; justify-content: space-between; }
.adm-field small { font-size: 11px; opacity: .8; }
.adm-count { font-family: 'Share Tech Mono', monospace; }

.adm-page input[type="text"],
.adm-page input[type="number"],
.adm-page input[type="datetime-local"],
.adm-page select,
.adm-page textarea {
  width: 100%; padding: 9px 11px; font: inherit; font-size: 14px; color: var(--text);
  background: var(--dark2); border: 1px solid var(--border-soft); border-radius: var(--radius);
  outline: none; transition: border-color .15s, box-shadow .15s;
}
.adm-page textarea { resize: vertical; min-height: 78px; }
.adm-page input:focus, .adm-page select:focus, .adm-page textarea:focus {
  border-color: var(--gold-bright); box-shadow: 0 0 0 2px rgba(255,90,31,.2);
}
.adm-page input[type="datetime-local"] { color-scheme: dark; }
.adm-page input.adm-invalid { border-color: var(--red); box-shadow: 0 0 0 2px rgba(224,56,47,.25); }

.adm-quick { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.adm-quick-label { font-size: 12px; color: var(--text-dim); }

/* ── Buttons / chips ── */
.adm-chip {
  padding: 7px 14px; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer;
  color: var(--text); background: rgba(255,255,255,.07); border: 1px solid var(--border-soft);
  border-radius: 999px; transition: border-color .15s, background .15s, opacity .15s;
}
.adm-chip:hover:not(:disabled) { border-color: var(--gold-bright); background: rgba(255,90,31,.12); }
.adm-chip:disabled { opacity: .4; cursor: not-allowed; }
.adm-chip-ghost { background: transparent; }
.adm-chip-danger:hover:not(:disabled) { border-color: var(--red); background: rgba(224,56,47,.14); color: #ffb4ae; }

/* ── Bulk tool ── */
.adm-bulk { margin: 1rem 0; padding: 10px 14px; border: 1px dashed var(--border-soft); border-radius: var(--radius); background: var(--card-bg2); }
.adm-bulk summary { cursor: pointer; font-weight: 600; color: var(--gold-bright); }
.adm-bulk-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 10px; margin: 12px 0 6px; }
.adm-bulk-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--text-dim); }

/* ── Prize table ── */
.adm-prize-head, .adm-row {
  display: grid;
  grid-template-columns: 74px 1fr 1fr 1fr 1.5fr 1.3fr 34px;
  gap: 8px; align-items: center;
}
.adm-prize-head {
  margin-top: 1rem; padding: 0 8px 8px; font-size: 11px; text-transform: uppercase;
  letter-spacing: .08em; color: var(--text-dim); border-bottom: 1px solid var(--border-soft);
}
.adm-prizes { display: flex; flex-direction: column; }
.adm-row { padding: 7px 8px; border-bottom: 1px solid rgba(255,255,255,.05); }
.adm-row:nth-child(-n+3) { background: rgba(255,154,82,.05); }
.adm-row-bad { background: rgba(224,56,47,.07); }
.adm-rank { font-family: 'Orbitron', sans-serif; font-size: 14px; font-weight: 700; white-space: nowrap; }
.adm-cell { display: block; margin: 0; }
.adm-holder { font-size: 12px; color: var(--text-dim); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-x {
  width: 30px; height: 30px; cursor: pointer; color: var(--text-dim); font-size: 13px;
  background: transparent; border: 1px solid transparent; border-radius: var(--radius);
}
.adm-x:hover { color: var(--red); border-color: var(--red); }

/* ── History ── */
.adm-history { margin-top: .75rem; display: flex; flex-direction: column; gap: 8px; }
.adm-hist-row { padding: 10px 12px; border: 1px solid var(--border-soft); background: var(--card-bg2); border-radius: var(--radius); }
.adm-hist-title { font-weight: 700; }
.adm-hist-meta { margin-top: 2px; font-size: 12px; color: var(--text-dim); }

/* ── Sticky save bar ── */
.adm-savebar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
  background: rgba(26,21,18,.96); backdrop-filter: blur(6px);
  border-top: 1px solid var(--border);
}
.adm-savebar-inner {
  max-width: 1040px; margin: 0 auto; padding: 10px 16px;
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
}
.adm-dirty-text { flex: 1 1 220px; font-size: 13px; color: var(--text-dim); min-width: 0; }
.adm-dirty-yes { color: var(--gold-bright); font-weight: 600; }
.adm-dirty-bad { color: #ff8a80; font-weight: 600; }
.adm-sync { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-dim); cursor: pointer; }
.adm-save { margin: 0; background: linear-gradient(135deg, var(--gold), #c2410c); }
.adm-save:disabled { opacity: .4; cursor: not-allowed; filter: none; }

/* ── Toast ── */
.adm-toast {
  position: fixed; left: 50%; bottom: 86px; transform: translate(-50%, 20px); z-index: 60;
  max-width: min(92vw, 560px); padding: 11px 16px; font-size: 13px; line-height: 1.4;
  color: var(--text); background: var(--dark3); border: 1px solid var(--border-soft);
  border-radius: var(--radius); box-shadow: 0 8px 28px rgba(0,0,0,.45);
  opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s;
}
.adm-toast.show { opacity: 1; transform: translate(-50%, 0); }
.adm-toast.ok    { border-color: rgba(54,201,126,.6); }
.adm-toast.warn  { border-color: rgba(255,154,82,.7); }
.adm-toast.error { border-color: rgba(224,56,47,.7); }

/* ── Mobile: stack each prize row as a small card ── */
@media (max-width: 760px) {
  .adm-grid { grid-template-columns: 1fr; }
  .adm-prize-head { display: none; }
  .adm-row {
    grid-template-columns: 1fr 1fr 1fr; gap: 8px 8px; padding: 12px 8px;
    position: relative;
  }
  .adm-rank { grid-column: 1 / -1; padding-right: 40px; }
  .adm-cell::before {
    content: attr(data-label); display: block; margin-bottom: 3px;
    font-size: 10px; letter-spacing: .08em; color: var(--text-dim);
  }
  .adm-cell-item { grid-column: 1 / -1; }
  .adm-holder { grid-column: 1 / -1; white-space: normal; }
  .adm-x { position: absolute; top: 10px; right: 8px; }
  .adm-savebar-inner { gap: 8px; }
  .adm-sync { flex: 1 1 100%; order: 3; }
}

/* ── Admin sub-navigation (Season | Store) ── */
.adm-subnav { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 1rem; }
.adm-subnav-link {
  padding: 8px 18px; font-size: 14px; font-weight: 600; text-decoration: none; color: var(--text-dim);
  border: 1px solid var(--border-soft); border-radius: 999px; background: rgba(255,255,255,.04);
  transition: border-color .15s, color .15s, background .15s;
}
.adm-subnav-link:hover { color: var(--text); border-color: var(--gold-bright); }
.adm-subnav-link.active { color: var(--gold-bright); border-color: rgba(255,154,82,.55); background: rgba(255,90,31,.12); }

/* ── Last Season Record (top of page) ── */
.adm-last { border-color: rgba(183,148,246,.35); }
.adm-last-title { margin: .6rem 0 0; font-family: 'Cinzel', serif; font-size: 20px; font-weight: 700; color: var(--gold-bright); }
.adm-winners { margin-top: .75rem; max-height: 420px; overflow-y: auto; border: 1px solid var(--border-soft); border-radius: var(--radius); background: var(--card-bg2); }
.adm-win-row {
  display: grid; grid-template-columns: 74px 1.2fr .9fr 2fr; gap: 10px; align-items: center;
  padding: 8px 12px; border-bottom: 1px solid rgba(255,255,255,.05); font-size: 13px;
}
.adm-win-row:last-child { border-bottom: none; }
.adm-win-head {
  position: sticky; top: 0; z-index: 1; background: var(--dark3);
  font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--text-dim);
}
.adm-win-top { background: rgba(255,154,82,.06); }
.adm-win-rank { font-family: 'Orbitron', sans-serif; font-weight: 700; white-space: nowrap; }
.adm-win-name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-win-score { font-family: 'Share Tech Mono', monospace; color: var(--text); }
.adm-win-rewards { color: var(--text-dim); font-size: 12px; overflow-wrap: anywhere; }

/* ── New Season ── */
.adm-fieldset {
  margin: 0; padding: 10px 14px 12px; border: 1px solid var(--border-soft);
  border-radius: var(--radius); background: var(--card-bg2); min-width: 0;
}
.adm-fieldset legend { padding: 0 8px; font-size: 12px; font-weight: 700; color: var(--gold-bright); }
.adm-radio { display: flex; gap: 10px; align-items: flex-start; margin: 8px 0 0; font-size: 13px; line-height: 1.45; color: var(--text-dim); cursor: pointer; }
.adm-radio input { width: auto; margin-top: 3px; flex: 0 0 auto; accent-color: var(--gold-bright); }
.adm-radio b { color: var(--text); }
.adm-ns-btn { margin-top: .5rem; background: linear-gradient(135deg, var(--gold), #c2410c); }
.adm-card .adm-payout-box + .adm-payout-box { margin-top: .75rem; }

@media (max-width: 760px) {
  .adm-win-row { grid-template-columns: 62px 1fr 1fr; }
  .adm-win-head .adm-win-rewards, .adm-win-head div:nth-child(4) { display: none; }
  .adm-win-rewards { grid-column: 1 / -1; }
  .adm-win-head { grid-template-columns: 62px 1fr 1fr; }
}
