:root { --field: #0e1d17; --control-border: #ffffff30; }
:root[data-theme="light"] {
  color-scheme: light;
  --bg: #f5f7f4; --panel: #fff; --line: #d5ddd6; --ink: #18251d;
  --muted: #526459; --accent: #2e6841; --dark: #fff;
  --field: #fff; --control-border: #b7c5bc;
}
input, textarea, select { background: var(--field); border-color: var(--control-border); }
button.secondary, .button.secondary { border-color: var(--control-border); }
:root[data-theme="light"] body:not(.home-screen) { background-image: none; }
:root[data-theme="light"] .notice { background: #edf5eb; border-color: #9fbf9d; }
:root[data-theme="light"] .error { background: #fff0ed; color: #9e2922; border-color: #d98e84; }
:root[data-theme="light"] .badge { background: #e5f0e5; }
:root[data-theme="light"] .progress { background: #d5ddd6; }
:root[data-theme="light"] .answer:has(input:checked) { background: #e9f3e7; }
.nav-links { align-items: center; }
.theme-switch { display: inline-flex; flex: 0 0 auto; gap: 2px; padding: 3px; border: 1px solid var(--control-border); border-radius: 999px; background: var(--field); }
button.theme-choice { display: inline-flex; width: 32px; min-height: 32px; height: 32px; padding: 6px; border-radius: 50%; background: transparent; color: var(--muted); }
.theme-choice svg { width: 19px; height: 19px; }
.theme-symbol { display: none; }
button.theme-choice[aria-pressed="true"] { background: var(--accent); color: var(--dark); }
.home-intro { display: flex; align-items: center; gap: 15px; margin-bottom: 20px; }
.home-intro .desc { flex: 1; margin: 0; text-align: left; }
:root[data-theme="light"] .home-screen .theme-switch { background: #f4f6fc; border-color: #cdd5e4; }
:root[data-theme="light"] .home-screen .theme-choice { color: #5b6474; }
:root[data-theme="light"] .home-screen .theme-choice[aria-pressed="true"] { background: #2563eb; color: #fff; }
body:not(.home-screen) .theme-switch { width: auto; height: 36px; padding: 0; gap: 5px; border: 0; border-radius: 0; background: transparent; }
body:not(.home-screen) button.theme-choice { width: 36px; min-height: 36px; height: 36px; padding: 0; border: 1px solid var(--control-border); border-radius: 9px; }
body:not(.home-screen) .theme-choice svg { display: none; }
body:not(.home-screen) .theme-symbol { display: block; font: 21px/1 system-ui, sans-serif; }
:root[data-theme="light"] body:not(.home-screen) .theme-switch { background: transparent; border: 0; }
:root[data-theme="light"] body:not(.home-screen) .theme-choice { color: #5b6474; }
:root[data-theme="light"] body:not(.home-screen) .theme-choice[aria-pressed="true"] { background: #2563eb; color: #fff; }
:root[data-theme="dark"] body:not(.home-screen) .theme-switch { background: transparent; border: 0; }
:root[data-theme="dark"] body:not(.home-screen) .theme-choice { color: #9fb3d1; }
:root[data-theme="dark"] body:not(.home-screen) .theme-choice[aria-pressed="true"] { background: #526c97; color: #fff; }
body:not(.home-screen) .theme-choice[aria-pressed="false"]:hover { background: #ffffff18; filter: none; }
.results-link span:last-child { display: none; }
@media(max-width:600px) {
  body:not(.home-screen) nav { gap: 8px; }
  body:not(.home-screen) .brand { min-width: 0; white-space: nowrap; }
  body:not(.home-screen) .nav-links { flex-wrap: nowrap; justify-content: flex-end; gap: 7px; }
  body:not(.home-screen) .rules-link { display: none; }
  body:not(.home-screen) .results-link span:first-child { display: none; }
  body:not(.home-screen) .results-link span:last-child { display: inline; }
  body:not(.home-screen) .theme-switch { height: 34px; }
  body:not(.home-screen) button.theme-choice { width: 34px; min-height: 34px; height: 34px; }
  .home-intro { gap: 7px; margin-bottom: 9px; }
}
@media(max-width:340px) { body:not(.home-screen) .brand span { display: none; } }
:root[data-theme="dark"] .home-screen { color-scheme: dark; }
:root[data-theme="dark"] .home-screen .home-card { background: #141d2bf5; color: #f1f4fa; }
:root[data-theme="dark"] .home-screen .desc,
:root[data-theme="dark"] .home-screen .home-schedule,
:root[data-theme="dark"] .home-screen .home-rules p,
:root[data-theme="dark"] .home-screen .small { color: #c3ccdb; }
:root[data-theme="dark"] .home-screen .home-results { color: #a8c6ff; }
:root[data-theme="dark"] .home-screen .home-rules { border-color: #ffffff30; }
:root[data-theme="dark"] .home-screen .button.secondary { background: #233552; color: #cbdfff; border-color: #526c97; }
.not-found-card h1 { font-size: clamp(26px, 5vw, 38px); letter-spacing: -1px; margin: 8px 0 20px; }
.not-found-number { font-size: clamp(70px, 14vw, 120px); line-height: 1; font-weight: 800; color: #2563eb; }
:root[data-theme="dark"] .not-found-number { color: #8db7ff; }
.timer-urgent { color: #ef4444 !important; animation: timer-pulse 1s ease-in-out infinite; }
:root[data-theme="light"] .timer-urgent { color: #c52222 !important; }
@keyframes timer-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }
@media(prefers-reduced-motion: reduce) { .timer-urgent { animation: none; } }

.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.question-editor { padding: 14px 16px 16px; margin: 16px 0; }
.question-editor .field { margin: 0 0 12px; }
.question-editor textarea { padding: 10px 12px; font-size: 16px; line-height: 1.45; }
.admin-answers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; }
.admin-answer { display: flex; align-items: center; gap: 8px; min-width: 0; }
.correct-choice { display: flex; flex: 0 0 auto; align-items: center; gap: 5px; margin: 0; cursor: pointer; font-size: 13px; }
.correct-choice input { margin: 0; width: 17px; height: 17px; }
.admin-answer > input { min-width: 0; padding: 9px 10px; font-size: 16px; }
.admin-answer:has(input[type="radio"]:checked) > input { border-color: var(--accent); }
@media(max-width:600px) { .admin-answers { grid-template-columns: 1fr; } .question-editor { padding: 12px; } }

.save-status { font-size: 13px; color: var(--muted); }
.save-status.save-error { color: #dc4444; }
[hidden] { display: none !important; }

/* Компактная рабочая админка. */
.admin-screen .shell { width: min(1180px, 100% - 32px); }
.admin-screen nav { padding: 14px 0; }
.admin-screen .narrow { max-width: none; margin: 22px auto 36px; }
.admin-screen h1 { font-size: 28px; margin: 8px 0 18px; }
.admin-screen h2 { font-size: 22px; margin: 14px 0 10px; }
.admin-screen .card { padding: 16px; border-radius: 14px; }
.admin-screen .field { margin: 8px 0; }
.admin-screen .actions { margin: 10px 0; gap: 8px; }
.admin-screen button, .admin-screen .button { min-height: 40px; padding: 9px 15px; font-size: 14px; }
.admin-screen .draft-meta { display: grid; grid-template-columns: 2fr .7fr 1.3fr; gap: 12px; align-items: end; }
.admin-screen [data-question-list] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.admin-screen .question-editor { margin: 0; min-width: 0; }
.admin-screen .reschedule-form { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; width: 100%; }
.reschedule-form label { margin: 0; }
.reschedule-form .small { flex-basis: 100%; }
.prize-contact { margin: 20px 0; }
.result-line { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.result-score { margin-bottom: 0; }
.result-time { white-space: nowrap; }
.personal-time { color: var(--muted); font-size: 12px; }
.ranking-note { display: grid; gap: 3px; }
.ranking-note span { color: var(--muted); font-size: 12px; line-height: 1.45; }
@media(max-width:800px) { .admin-screen .draft-meta { grid-template-columns: 1fr 1fr; } .admin-screen .draft-meta .field:first-child { grid-column: 1 / -1; } .admin-screen [data-question-list] { grid-template-columns: 1fr; } }

.participant-name { display: block; min-width: 120px; overflow-wrap: anywhere; }
.participant-name-form { display: grid; grid-template-columns: minmax(130px, 1fr) 36px 36px; align-items: center; gap: 6px; min-width: 240px; }
.participant-name-form input { min-width: 130px; padding: 8px 10px; }
.participant-name-form button { width: 36px; min-height: 36px; padding: 0; white-space: nowrap; }
.prize-actions { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.prize-icon-button { width: 36px; min-height: 36px !important; padding: 7px !important; }
.prize-icon-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.delete-short { display: none; }
.admin-results { margin-top: 24px; }
.admin-results-picker { margin: 8px 0 14px; }
.admin-results-picker .active { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, transparent); }
.prize-title { margin-top: 18px !important; }
.admin-prize-wrap { margin-top: 8px; }
.admin-event-card { margin: 18px 0; }
.admin-manage-link { display: none; }

/* Удобное чтение и ввод на небольших экранах. */
@media (max-width: 600px) {
  input, textarea, select { font-size: 16px; min-width: 0; }
  .narrow, .card, .answer, .row > *, .home-card { min-width: 0; overflow-wrap: anywhere; }
  .answer span { min-width: 0; overflow-wrap: anywhere; }
  .admin-screen .draft-meta { grid-template-columns: minmax(0, 1fr); }
  .admin-screen .draft-meta .field:first-child { grid-column: auto; }
  .reschedule-form label { min-width: 0; max-width: 100%; }
  input[type="datetime-local"] { max-width: 100%; }

  body:not(.home-screen):not(.admin-screen) .shell { width: calc(100% - 16px); }
  body:not(.home-screen):not(.admin-screen) nav { padding: 9px 0; }
  body:not(.home-screen):not(.admin-screen) .brand { font-size: 17px; }
  body:not(.home-screen):not(.admin-screen) .nav-links { font-size: 11px; }
  body:not(.home-screen):not(.admin-screen) .narrow { margin: 12px auto 20px; }
  body:not(.home-screen):not(.admin-screen) .narrow h1 { margin: 8px 0 10px; font-size: 28px; line-height: 1.1; }
  body:not(.home-screen):not(.admin-screen) h2 { margin: 8px 0 10px; font-size: 21px; line-height: 1.2; }
  body:not(.home-screen):not(.admin-screen) .card { padding: 14px; border-radius: 14px; }
  body:not(.home-screen):not(.admin-screen) .actions { margin: 12px 0 8px; gap: 7px; }
  body:not(.home-screen):not(.admin-screen) button,
  body:not(.home-screen):not(.admin-screen) .button { min-height: 42px; padding: 9px 15px; }
  body:not(.home-screen):not(.admin-screen) .notice { margin: 10px 0; padding: 10px 12px; }
  body:not(.home-screen):not(.admin-screen) .progress { margin: 10px 0 14px; }
  body:not(.home-screen):not(.admin-screen) .answer { gap: 10px; margin: 7px 0; padding: 11px; }
  body:not(.home-screen):not(.admin-screen) .timer { margin: 8px 0; }

  .results-page > h1 { margin-bottom: 7px !important; }
  .results-page .result-summary { padding: 10px 12px !important; }
  .results-page .result-summary .eyebrow { line-height: 1.2; }
  .results-page .result-line { margin-top: 5px; gap: 6px 12px; flex-wrap: nowrap; }
  .results-page .result-score { margin: 0 !important; font-size: 25px; line-height: 1; letter-spacing: 0; }
  .results-page .result-time { font-size: 12px; line-height: 1.3; text-align: right; white-space: normal; }
  .results-page .personal-time { display: block; font-size: 10px; }
  .results-page .ranking-note { margin: 7px 0; padding: 7px 9px; line-height: 1.25; }
  .results-page .ranking-note span { font-size: 11px; line-height: 1.3; }
  .results-page th, .results-page td { padding: 7px 4px; font-size: 12px; }
  .results-page .personal-rank { margin: 8px 0; font-size: 13px; }
  .results-page > .actions { margin-top: 7px !important; }
  .results-page > .small { margin: 5px 0; line-height: 1.3; }

  .admin-screen .shell { width: calc(100% - 16px); }
  .admin-screen nav { padding: 9px 0; }
  .admin-screen .brand { font-size: 17px; }
  .admin-screen .nav-links > a { display: none; }
  .admin-screen .narrow { margin: 12px auto 24px; }
  .admin-screen h1 { font-size: 22px; margin: 2px 0 10px; letter-spacing: -.5px; }
  .admin-screen h2 { font-size: 18px; margin: 10px 0 6px; letter-spacing: -.35px; }
  .admin-screen h3 { font-size: 16px; margin: 4px 0; }
  .admin-screen .card { padding: 11px; border-radius: 11px; }
  .admin-screen .actions { margin: 7px 0; gap: 6px; }
  .admin-screen button, .admin-screen .button { min-height: 36px; padding: 7px 10px; font-size: 12px; border-radius: 9px; }
  .admin-screen .field { margin: 6px 0; }
  .admin-screen .small { line-height: 1.4; }
  .admin-participants-view > .eyebrow,
  .admin-participants-view > h1 { display: none; }
  .admin-participants-view > .row { justify-content: flex-end; }
  .admin-participants-view > .row > .button { display: none; }
  .admin-participants-view .admin-events-title,
  .admin-participants-view .admin-event-card { display: none; }
  .admin-results { margin-top: 12px; }
  .admin-results-picker { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px; }
  .admin-results-picker .button { flex: 0 0 auto; }
  .admin-events-title { margin-top: 18px !important; }
  .admin-event-card { margin: 8px 0; }

  .admin-prize-wrap { overflow: visible; }
  .admin-prize-table, .admin-prize-table tbody { display: block; width: 100%; }
  .admin-prize-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .admin-prize-table tr { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto auto; gap: 2px 5px; align-items: center; margin: 0 0 3px; padding: 4px 5px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); }
  .admin-prize-table td { padding: 0; border: 0; min-width: 0; }
  .admin-prize-table .prize-place { grid-column: 1; grid-row: 1 / 3; align-self: start; padding-top: 3px; color: var(--accent); font-size: 14px; font-weight: 800; }
  .admin-prize-table .prize-name { grid-column: 2; grid-row: 1; }
  .admin-prize-table .participant-name { min-width: 0; font-size: 12px; font-weight: 700; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .admin-prize-table .participant-name-form { grid-template-columns: minmax(0, 1fr) 28px 28px; gap: 3px; min-width: 0; }
  .admin-prize-table .participant-name-form input { min-width: 0; height: 28px; padding: 3px 6px; }
  .admin-prize-table .participant-name-form button { width: 28px; min-height: 28px; padding: 0; font-size: 14px; }
  .admin-prize-table .prize-actions { grid-column: 4; grid-row: 1; gap: 3px; }
  .admin-prize-table .prize-actions button { min-height: 26px; }
  .admin-prize-table .prize-icon-button { width: 26px; min-height: 26px !important; padding: 5px !important; }
  .admin-prize-table .prize-delete { min-width: 30px; padding: 4px 5px; }
  .admin-prize-table .delete-full { display: none; }
  .admin-prize-table .delete-short { display: inline; }
  .admin-prize-table tr.participant-editing .prize-name { grid-column: 2 / -1; }
  .admin-prize-table tr.participant-editing .prize-actions { display: none; }
  .admin-prize-table .prize-score { grid-column: 3; grid-row: 1; font-size: 11px; font-weight: 700; white-space: nowrap; }
  .admin-prize-table .prize-score::before { content: none; }
  .admin-prize-table .prize-time { grid-column: 3 / -1; grid-row: 2; color: var(--muted); font-size: 10px; line-height: 1.1; text-align: right; white-space: nowrap; }
  .admin-prize-table .prize-time::before { content: none; }
  .admin-prize-table .prize-contact-value { grid-column: 2; grid-row: 2; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .admin-prize-table .prize-contact-value::before { content: none; }
  .admin-manage-link { display: flex; justify-content: center; }
  .admin-prize-table .prize-empty { display: block; }
}
