/* Палитра этапов действует только в открытой партии Мафии. */
:root[data-mafia-scene="night"]{color-scheme:dark;--bg:#101a29;--surface:#192638;--soft:#23334a;--ink:#f6f0e6;--muted:#afbdd0;--accent:#d8c18e;--accent-text:#172130;--line:#35475f;--blue:#263d55;--rose:#3b3048;--focus:#f1d8a4;--danger:#ffb1b9;--success:#a4d4bd}
:root[data-mafia-scene="day"]{color-scheme:light;--bg:#f7f1e7;--surface:#fffaf3;--soft:#f0e7d8;--ink:#3d352c;--muted:#7c7063;--accent:#80684f;--accent-text:#fffaf3;--line:#e6dac8;--blue:#e5eacb;--rose:#f0e0d8;--focus:#67503b;--danger:#962f3f;--success:#3f6650}
:root[data-mafia-scene="vote"]{color-scheme:light;--bg:#f2edf5;--surface:#fffafc;--soft:#e9e0ee;--ink:#3d3048;--muted:#796d84;--accent:#6b527e;--accent-text:#fffafc;--line:#d9cce2;--blue:#e2d9ed;--rose:#f1dfe5;--focus:#6b527e;--danger:#962f3f;--success:#3f6650}
:root[data-mafia-scene] body{transition:background-color .45s ease,color .3s ease}
:root[data-mafia-scene] #game-live,:root[data-mafia-scene] .gp-table,:root[data-mafia-scene] .handoff{--game-ink:var(--accent)!important;--game-paper:var(--surface)!important;--game-soft:var(--soft)!important;--game-edge:var(--line)!important;--handoff-paper:var(--surface);--handoff-ink:var(--accent);--handoff-edge:var(--line)}
:root[data-mafia-scene] .game-dock,:root[data-mafia-scene] .game-menu-body{background:var(--surface);color:var(--ink);border-color:var(--line)}
:root[data-mafia-scene] .game-heading-art{background:var(--soft)!important}
.mafia-console{display:grid;gap:16px;min-width:0;max-width:1100px;margin-inline:auto;text-align:left}
.mafia-console [hidden]{display:none!important}
.mafia-scene{display:flex;position:relative;align-items:center;gap:20px;padding:26px;border:1px solid var(--line);border-radius:24px;background:var(--surface);overflow:hidden;isolation:isolate}
.mafia-scene-emblem{display:grid;place-items:center;width:76px;height:76px;flex:none;border:1px solid var(--line);border-radius:50%;background:var(--soft);color:var(--accent)}
.mafia-scene-emblem>svg{width:44px;height:44px}
.mafia-scene-copy{min-width:0;flex:1}
.mafia-scene-eyebrow{margin:0 0 5px;font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:var(--muted)}
.mafia-scene h2{margin:0;font-size:clamp(25px,3vw,34px);line-height:1.2;letter-spacing:-.7px;color:var(--ink)}
.mafia-scene-hint{margin:10px 0 0;max-width:650px;font-size:14px;line-height:1.55;color:var(--muted)}
.mafia-scene-timer{flex:none;font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink)}
:root[data-mafia-scene="night"] .mafia-scene{background:radial-gradient(ellipse at 5% 0,#31445c 0,transparent 65%),var(--surface)}
:root[data-mafia-scene="night"] .mafia-scene-emblem{box-shadow:0 0 40px #dbc99616}
:root[data-mafia-scene="day"] .mafia-scene{background:radial-gradient(ellipse at 3% 0,#f8e5b5 0,transparent 70%),var(--surface)}
:root[data-mafia-scene="vote"] .mafia-scene{background:radial-gradient(ellipse at 3% 0,#e4d5ee 0,transparent 70%),var(--surface)}
.mafia-console-progress{margin:0;padding-inline:4px;font-size:13px;line-height:1.5;color:var(--muted)}
.mafia-console .mafia-role-panel,.mafia-console .mafia-manual{margin:0;padding:0;border:1px solid var(--line);border-radius:18px;background:var(--surface);overflow:hidden}
.mafia-console details>summary{min-height:54px;padding:16px 18px;font-size:14px;font-weight:750;color:var(--ink);cursor:pointer;list-style:none;display:flex;align-items:center;gap:12px}
.mafia-console details>summary::-webkit-details-marker{display:none}
.mafia-console details>summary::after{content:'+';margin-left:auto;font-size:23px;line-height:1;font-weight:500;color:var(--muted)}
.mafia-console details[open]>summary::after{content:'−'}
.mafia-console details>summary:focus-visible,.mafia-console select:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
.mafia-private-body{padding:0 16px 16px}
.mafia-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:4px}
.mafia-choice-card{display:grid;align-content:start;gap:10px;min-width:0;margin:0;padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--bg)}
.mafia-choice-card.is-saved{border-color:var(--success)}
.mafia-choice-heading{display:grid;gap:6px;min-width:0}
.mafia-choice-heading .mafia-role-badge{font-size:14px;line-height:1.4;gap:10px}
.mafia-choice-owner{font-size:13px;font-weight:600;color:var(--muted);overflow-wrap:anywhere}
.mafia-choice-label{font-size:14px;font-weight:750;line-height:1.4;margin-top:4px}
.mafia-choice-hint{margin:0;font-size:12px;line-height:1.6;color:var(--muted)}
.mafia-choice-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start;margin-top:2px}
.mafia-choice-controls .field{min-width:0;width:100%;min-height:46px;font-size:16px;padding:10px;color:var(--ink);background:var(--surface);border-color:var(--line)}
.mafia-choice-controls .btn{min-height:46px;padding:10px 13px;font-size:12px;background:var(--soft);border-color:var(--line);color:var(--ink)}
.mafia-choice-status{margin:0;font-size:12px;line-height:1.5;color:var(--muted);min-height:18px}
.mafia-choice-card.is-saved .mafia-choice-status{color:var(--success)}
.mafia-console .mafia-composition{margin-top:14px;border-top:1px solid var(--line)}
.mafia-console .mafia-composition>summary{padding-inline:2px;font-size:13px}
.mafia-role-roster,.mafia-city-roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mafia-role-person{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--bg)}
.mafia-role-person .mafia-player-name{font-size:15px;overflow-wrap:anywhere}
.mafia-role-person .mafia-role-badge{font-size:11px;letter-spacing:.01em}
.mafia-role-person .mafia-role-badge svg{width:20px;height:20px}
.mafia-role-report{margin:0;font-size:12px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere;white-space:pre-line}
.mafia-city-person{display:grid;gap:6px;min-width:0;padding:16px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}
.mafia-city-person>strong{font-size:15px;overflow-wrap:anywhere}
.mafia-city-person .small{font-size:12px;line-height:1.45;color:var(--muted)}
.mafia-city-person .btn{min-height:42px;width:100%;padding:9px 8px;margin-top:5px;font-size:12px;background:var(--soft);border-color:var(--line);color:var(--ink)}
.mafia-city-person.is-marked{border-color:var(--danger)}
.mafia-city-person.is-marked .small{color:var(--danger)}
.mafia-city-person.is-out,.mafia-role-person.is-out{opacity:.55}
.mafia-manual>.small{margin:0;padding:0 18px 15px}
.mafia-manual>.mafia-city-roster{padding:0 16px 16px}
.mafia-outcome{margin:0;padding:16px 18px;border:1px solid var(--line);border-radius:16px;font-size:14px;line-height:1.65;background:var(--surface);white-space:pre-line}
.settings-mafia-composition{margin:0 0 14px;font-size:13px;line-height:1.65;padding:12px;border-radius:12px;background:var(--soft);color:var(--ink)}
@media(min-width:1000px){.mafia-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mafia-choice-controls{grid-template-columns:1fr}.mafia-choice-controls .btn{justify-self:start}}
@media(max-width:640px){.mafia-console{gap:12px}.mafia-scene{padding:20px 18px;gap:14px;align-items:flex-start;border-radius:20px;flex-wrap:wrap}.mafia-scene-emblem{width:54px;height:54px}.mafia-scene-emblem>svg{width:32px;height:32px}.mafia-scene-copy{flex-basis:calc(100% - 70px)}.mafia-scene h2{font-size:25px}.mafia-scene-hint{font-size:13px;margin-top:8px}.mafia-scene-timer{margin-left:auto;font-size:20px}.mafia-private-body{padding:0 12px 12px}.mafia-choice-grid{grid-template-columns:1fr;gap:10px}.mafia-choice-card{padding:15px}.mafia-choice-controls{grid-template-columns:1fr}.mafia-choice-controls .btn{justify-self:start;min-height:44px;padding-inline:18px}.mafia-role-roster,.mafia-city-roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mafia-city-person{padding:13px 11px}.mafia-role-person{padding:12px 10px}.mafia-console details>summary{font-size:13px;padding:15px 14px;min-height:52px}.mafia-manual>.mafia-city-roster{padding:0 12px 12px}}
@media(prefers-reduced-motion:reduce){:root[data-mafia-scene] body{transition:none}}

/* Согласует цвета всех общих контролов с этапом, независимо от сохранённой темы. */
:root[data-mafia-scene] body[data-route="game"]{--game-tint:var(--soft);--game-ink:var(--accent);--game-paper:var(--surface);--game-edge:var(--line);--game-faint:var(--bg);--game-caption:var(--muted)}
:root[data-mafia-scene] .game-dock .btn-primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}
:root[data-mafia-scene] .game-dock .btn-primary:disabled{background:var(--soft);color:var(--muted);border-color:var(--line);opacity:1}
:root[data-mafia-scene] .gp-table.gp-mafia .gp-scene{grid-template-columns:64px minmax(0,1fr);gap:12px 16px}
:root[data-mafia-scene] .gp-table.gp-mafia .gp-scene::before{display:none}
:root[data-mafia-scene] .gp-table.gp-mafia .gp-scene-symbol{display:block;grid-column:1;grid-row:1/3;width:60px;height:60px;margin:0;padding:12px;border:1px solid var(--line);border-radius:50%;background:var(--soft);color:var(--accent)}
@media(max-width:480px){:root[data-mafia-scene] .gp-table.gp-mafia .gp-scene{grid-template-columns:1fr;justify-items:center;text-align:center}:root[data-mafia-scene] .gp-table.gp-mafia .gp-scene-symbol{grid-column:1;grid-row:auto}:root[data-mafia-scene] .gp-table.gp-mafia .gp-scene>.gp-prompt,:root[data-mafia-scene] .gp-table.gp-mafia .gp-scene>.gp-next-step{grid-column:1;text-align:center}}

/* Выбор цели: компактная кнопка и отдельная панель вместо системного select. */
.mafia-target-picker{min-width:0;width:100%}
.mafia-target-picker>select[hidden]{display:none!important}
.mafia-target-picker .mafia-target-trigger{display:flex;align-items:center;gap:11px;width:100%;min-height:64px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background-color .15s;touch-action:manipulation}
.mafia-target-picker .mafia-target-trigger:hover:not(:disabled){border-color:var(--accent);background:var(--soft)}
.mafia-target-picker.has-value .mafia-target-trigger{border-color:var(--accent);background:var(--soft)}
.mafia-target-picker .mafia-target-trigger:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.mafia-target-trigger:disabled{cursor:default;opacity:.55}
.mafia-target-avatar{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:12px;background:var(--soft);color:var(--accent);font-size:16px;font-weight:800;line-height:1}
.has-value .mafia-target-trigger .mafia-target-avatar{background:var(--surface)}
.mafia-target-avatar>svg{width:21px;height:21px}
.mafia-target-caption{display:grid;gap:3px;min-width:0;flex:1}
.mafia-target-caption>strong{font-size:14px;font-weight:750;line-height:1.35;overflow-wrap:anywhere}
.mafia-target-caption>small{font-size:10px;font-weight:500;line-height:1.4;color:var(--muted)}
.mafia-target-trigger>svg{width:17px;height:17px;flex:none;color:var(--muted)}
:root:has(.mafia-target-dialog[open]){overflow:hidden}
.mafia-target-dialog{box-sizing:border-box;width:min(480px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 48px);padding:0;margin:auto;border:1px solid var(--line);border-radius:24px;background:var(--surface);color:var(--ink);box-shadow:0 24px 100px #0005;overflow:auto;overscroll-behavior:contain;text-align:left;scrollbar-gutter:stable}
.mafia-target-dialog[open]{display:flex;flex-direction:column;animation:mafia-picker-in .18s ease-out}
.mafia-target-dialog::backdrop{background:#080e1a9c;backdrop-filter:blur(5px)}
.mafia-target-dialog [hidden]{display:none!important}
.mafia-target-head{display:grid;grid-template-columns:minmax(0,1fr) 40px;align-items:center;gap:10px 16px;padding:22px 22px 16px;flex:none}
.mafia-target-eyebrow{font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.mafia-target-head>h2{grid-column:1/-1;margin:0;font-size:24px;line-height:1.25;font-weight:800;letter-spacing:-.5px;overflow-wrap:anywhere;text-wrap:balance}
.mafia-target-dialog .mafia-target-close{display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--soft);color:var(--ink);cursor:pointer;justify-self:end;touch-action:manipulation}
.mafia-target-close>svg{width:18px;height:18px}
.mafia-target-search-label{margin:0 22px 6px;font-size:12px;font-weight:650}
.mafia-target-dialog .mafia-target-search{box-sizing:border-box;width:calc(100% - 44px);margin:0 22px 14px;background:var(--bg);color:var(--ink);border-color:var(--line);font-size:16px;min-height:46px}
.mafia-target-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:2px 22px 20px}
.mafia-target-dialog .mafia-target-option{position:relative;display:flex;align-items:center;gap:10px;min-width:0;min-height:76px;padding:12px 10px;border:1px solid var(--line);border-radius:15px;background:var(--bg);color:var(--ink);font:inherit;cursor:pointer;text-align:left;touch-action:manipulation}
.mafia-target-option:hover{border-color:var(--accent)}
.mafia-target-option-name{min-width:0;font-size:14px;font-weight:700;line-height:1.4;overflow-wrap:anywhere;padding-right:12px}
.mafia-target-dialog .mafia-target-option[aria-pressed="true"]{border-color:var(--accent);background:var(--soft);box-shadow:inset 0 0 0 1px var(--accent)}
.mafia-target-check{display:none;position:absolute;top:6px;right:6px;width:17px;height:17px;border-radius:50%;background:var(--accent);color:var(--accent-text);place-items:center}
.mafia-target-check>svg{width:12px;height:12px}
.mafia-target-option[aria-pressed="true"] .mafia-target-check{display:grid}
.mafia-target-footer{flex:none;padding:0 22px 22px}
.mafia-target-footer>p{margin:0;font-size:12px;line-height:1.6;color:var(--muted)}
.mafia-target-dialog .mafia-target-skip{width:100%;min-height:44px;margin:14px 0 0;padding:11px 14px;background:transparent;color:var(--muted);border:1px dashed var(--line);border-radius:12px;font:inherit;font-size:13px;font-weight:650;cursor:pointer;touch-action:manipulation}
.mafia-target-dialog .mafia-target-skip[aria-pressed="true"]{border-color:var(--accent);color:var(--ink);background:var(--soft)}
.mafia-target-dialog button:focus-visible,.mafia-target-dialog input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.mafia-target-empty{margin:0;padding:4px 22px 22px;font-size:14px;color:var(--muted)}
@keyframes mafia-picker-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:640px){.mafia-target-dialog{width:100%;max-height:calc(100dvh - 64px);margin:auto 0 0;border-radius:24px 24px 0 0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom);scrollbar-gutter:auto}.mafia-target-head{padding:20px 18px 16px}.mafia-target-head>h2{font-size:23px}.mafia-target-list{padding:2px 18px 18px;gap:8px}.mafia-target-footer{padding:0 18px 22px}.mafia-target-search-label{margin-inline:18px}.mafia-target-dialog .mafia-target-search{margin-inline:18px;width:calc(100% - 36px)}}
@media(max-width:360px){.mafia-target-option .mafia-target-avatar{width:30px;height:34px;border-radius:10px;font-size:14px}.mafia-target-dialog .mafia-target-option{gap:7px;padding:12px 8px;min-height:70px}.mafia-target-option-name{font-size:13px}.mafia-target-head>h2{font-size:21px}}
@media(prefers-reduced-motion:reduce){.mafia-target-dialog[open]{animation:none}.mafia-target-trigger{transition:none}}
