:root {
  --on-purple: #ffffff;
  --on-purple-dark: #ffffff;
  --on-teal: #000000;
  --on-red: #000000;
  --on-green: #000000;
  --on-hero: #ffffff;
  --semantic-error-text: #991b1b;
  --semantic-warning-text: #78350f;
  --hero-end: #5b21b6;
  --neo-shadow-x: calc(20px * var(--shadow-strength));
  --neo-shadow-y: calc(20px * var(--shadow-strength));
}
html { scroll-padding-top: var(--admin-scroll-offset, 0px); }
.login-family { max-width: 520px; margin-block: 28px; }
.login-family form { margin-top: 20px; }
.login-family .form-control { padding: 12px; width: 100%; }
.btn-primary { color: var(--on-purple); }
.btn-danger { color: var(--on-red); }
.btn-accent { color: var(--on-teal); }
.letter-badge, .letter-inline, .gradient-card, .gradient-card p, .gradient-card h2 { color: var(--on-purple-dark); }
.player-btn.selected, .admin-topbar, .admin-topbar .btn-ghost:not(:disabled) { color: var(--on-purple-dark); }
.player-btn:not(.selected) { color: var(--player-card-foreground, #000000); }
.player-btn-color-1 { --player-card-foreground: var(--on-player-color-1, #000000); }
.player-btn-color-2 { --player-card-foreground: var(--on-player-color-2, #000000); }
.player-btn-color-3 { --player-card-foreground: var(--on-player-color-3, #000000); }
.player-btn-color-4 { --player-card-foreground: var(--on-player-color-4, #000000); }
th { background: var(--surface-alt); color: var(--text-primary); }
.render-preview, .editor-toolbar button:hover, .token-chip:hover { background: var(--surface-alt); color: var(--text-primary); }
.message-save-button { color: #ffffff; }
.admin-topbar .eyebrow, .gradient-card .eyebrow { color: inherit; }
.hero { color: var(--on-hero); }
.hero p { color: inherit; }
.game-nav .btn-ghost, #draft-recovery .btn-ghost { color: var(--text-primary); background: var(--surface); border-color: var(--neo-border); }
.btn:focus-visible, button:focus-visible, a:focus-visible, summary:focus-visible,
input:focus-visible, textarea:focus-visible, select:focus-visible,
.answer-input:focus-visible, .form-control:focus-visible, .pin-input:focus-visible,
.range-input:focus-visible, .color-swatch-input:focus-visible, .player-btn:focus-visible {
  outline: 3px solid var(--focus-dark);
  outline-offset: 3px;
  box-shadow: 0 0 0 3px var(--focus-light);
}
.timer-text.warning { color: var(--semantic-warning-text); }
.timer-text.danger { color: var(--semantic-error-text); }
.inline-success-indicator { color: var(--on-green); }
.question-hint { color: var(--text-muted); }
.results-grid { grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); }
.mini-player-grid { grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); }
.result-card, .mini-player-card, .game-history-card, .admin-main, .admin-grid > *, .results-grid > *, .mini-player-grid > * { min-width: 0; }
.result-answer-row { display: grid; grid-template-columns: auto minmax(0, 1fr); }
.result-answer-row .q-answer { grid-column: 2; text-align: start; }
.result-answer-row > *, .mini-answer-row > *, .player-header > *, .player-header h3, .chip, .mini-player-header { min-width: 0; overflow-wrap: anywhere; }
.mini-answer-row strong { flex: 1; text-align: end; }
.card, .section-header-card, .status-msg, .render-preview, .code-preview { overflow-wrap: anywhere; }
.table-wrapper { max-width: 100%; }
.answer-input[readonly] { background: var(--surface-alt); }
.delivery-list { display: grid; gap: 12px; margin-block: 12px; }
.delivery-item { border: var(--border-soft); border-radius: var(--radius-md); padding: 12px; min-width: 0; }
.delivery-item .button-row { margin-top: 8px; }
.override-default { display: block; overflow-wrap: anywhere; margin-top: 6px; color: var(--text-muted); }
#deployment-effective { white-space: pre-line; overflow-wrap: anywhere; }
.token-mark { background: var(--purple-light); color: var(--on-purple-light, #000000); }
.btn[aria-disabled="true"] { cursor: progress; opacity: 0.65; }
.status-msg.info { color: var(--text-primary); background: var(--surface-alt); }
@media (max-width: 540px) {
  .admin-grid.three-overview-cols { grid-template-columns: minmax(0, 1fr); }
  .timer-card { position: static; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .inline-success-indicator { transform: none; }
}
