/* Gameplay 3.1 — host-only console layout. Original seat widths, table/spotlight
   sizing and media styles are preserved; measured dense-layout clearance
   overrides are isolated at the end of this file. */
.host-console-v31 #roleCard,
.host-console-v31 #privateMessages,
.host-console-v31 #resolution { display: none !important; }
.host-console-v31 .game:not(.hidden) #leftPanel { gap: 12px; }
.host-console-v31 #sidebarEyebrow { color: var(--gold); font-size: 11px; }
.host-console-v31 .phase-card { border-radius: 15px; padding: 14px; flex: 0 0 auto; }
.host-console-v31 .phase-card h2 { font-size: 26px; line-height: 1.12; overflow-wrap: anywhere; }
.host-console-v31 .phase-card-top { align-items: start; gap: 10px; }
.host-console-v31 .phase-card-top > div:first-child { min-width: 0; }
.host-console-v31 .phase-card .phase-hint { font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.host-sidebar-tabs { display: flex; gap: 4px; border: 1px solid var(--line); border-radius: 12px; padding: 4px; background: rgba(0,0,0,.15); flex: 0 0 auto; }
.host-sidebar-tabs button { flex: 1; border: 0; border-radius: 8px; background: transparent; color: var(--muted); padding: 9px 4px; font-size: 12px; font-weight: 750; cursor: pointer; }
.host-sidebar-tabs button[aria-selected="true"] { background: var(--cream); color: #211c16; box-shadow: 0 3px 12px #0002; }
.host-sidebar-tabs button:focus-visible, .host-details-panel:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.host-details-panel { min-height: 0; flex: 1; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; padding: 0 3px 8px 0; scrollbar-width: thin; scrollbar-color: #766348 transparent; }
.host-console-v31 .game:not(.hidden) .roster-card { padding-top: 0; border-top: 0; }
.host-console-v31 .game:not(.hidden) .roster-card .player-list { overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #766348 transparent; }
.host-console-v31 .game:not(.hidden) .host-control-helper { font-size: 14px !important; line-height: 1.5; overflow-wrap: anywhere; }
.host-console-v31 .game:not(.hidden) .night-director { display: grid; grid-template-columns: 1fr !important; gap: 12px !important; }
.host-console-v31 .game:not(.hidden) .night-sequence { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 6px !important; }
.host-console-v31 .game:not(.hidden) .night-sequence > div { padding: 10px; font-size: 12px; border-radius: 10px; }
.host-console-v31 .game:not(.hidden) .night-sequence > div.current { border-color: #b49a70; background: rgba(209,173,109,.12); color: #f2e6d3; }
.host-next-step { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 2px; color: var(--muted); font-size: 12px; }
.host-next-step strong { color: #d6c8b3; font-size: 13px; font-weight: 650; }
.host-console-v31 .game:not(.hidden) .night-focus { padding: 12px; gap: 10px; }
.host-console-v31 .game:not(.hidden) .night-focus-title { font-size: 10px; letter-spacing: .14em; color: #b8b5c4; }
.host-console-v31 .game:not(.hidden) .night-focus-list { grid-template-columns: 1fr; gap: 8px; }
.host-console-v31 .game:not(.hidden) .night-focus-item { padding: 10px; gap: 5px; }
.host-console-v31 .game:not(.hidden) .night-focus-item span { font-size: 12px; white-space: normal; overflow-wrap: anywhere; }
.host-console-v31 .game:not(.hidden) .night-focus-item b { font-size: 13px; white-space: normal; line-height: 1.4; overflow-wrap: anywhere; }
.host-private-help { border-top: 1px solid var(--line); padding: 12px 2px 4px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.host-private-help summary { cursor: pointer; }
.host-private-help p { margin: 10px 0 0; }
.host-step-explainer { padding: 14px; border: 1px solid var(--line); background: rgba(255,255,255,.025); border-radius: 12px; font-size: 13px; line-height: 1.5; color: var(--muted); }
.host-step-explainer b { color: var(--cream); }
.host-step-explainer p { margin: 10px 0 0; }
/* The public board is moved into this existing sidebar only for the host. */
.host-console-v31 #hostBoardSlot .public-board { display: flex; flex-direction: column; max-height: none !important; width: 100%; margin: 12px 0 0; padding: 12px !important; gap: 10px; overflow: visible; }
.host-console-v31 #hostBoardSlot .public-board-head { flex-wrap: wrap; gap: 6px; }
.host-console-v31 #hostBoardSlot .public-candidates { min-width: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.host-console-v31 #hostBoardSlot .public-candidate { min-width: 0; }
.host-console-v31 #hostBoardSlot .public-candidate span { white-space: normal; font-size: 12px; overflow-wrap: anywhere; }
.host-console-v31 #hostBoardSlot .public-candidate strong { font-size: 23px !important; }
.host-console-v31 #hostBoardSlot .public-ledger { display: grid; grid-template-columns: 1fr; gap: 5px; }
.host-console-v31 #hostBoardSlot .public-vote { font-size: 12px; padding: 7px; }
.host-console-v31 #hostBoardSlot .public-vote strong { font-size: 12px; }
.host-console-v31 #hostBoardSlot .public-vote span, .host-console-v31 #hostBoardSlot .public-vote strong { white-space: normal; overflow-wrap: anywhere; }
/* Single action row: no variable-height helper, description or vote board here. */
.host-console-v31 .game:not(.hidden) .host-controls { width: 100%; max-width: none; padding: 6px 8px 0 !important; margin: 0 !important; min-width: 0; }
.host-console-v31 .game:not(.hidden) .host-control-card { display: flex !important; justify-content: space-between; align-items: center; gap: 18px !important; width: 100%; height: 100%; min-height: 0; padding: 12px 16px !important; border: 1px solid rgba(209,173,109,.27); border-radius: 16px; background: linear-gradient(115deg,rgba(54,45,33,.78),rgba(31,26,22,.92)); box-shadow: 0 10px 32px #0003; }
.host-dock-copy { min-width: 0; display: grid; gap: 5px; }
.host-console-v31 .host-dock-copy .host-control-kicker { font-size: 11px; letter-spacing: .035em; color: #b8aa93; line-height: 1.35; }
.host-dock-copy strong { font: 400 22px/1.12 Georgia,serif; color: #e9ddc9; }
.host-console-v31 .game:not(.hidden) .host-control-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-width: 0 !important; flex: 0 1 auto; }
.host-console-v31 .game:not(.hidden) .host-control-actions button { min-height: 46px; padding: 10px 16px; font-size: 14px !important; white-space: normal; line-height: 1.3; }
.host-console-v31 .game:not(.hidden) .host-control-actions .host-primary { min-width: 210px; max-width: 310px; }
.host-console-v31 .host-control-actions button:disabled { opacity: .46; cursor: not-allowed; transform: none; filter: none; }
.host-console-v31 .host-control-actions button:focus-visible { outline: 2px solid #dac293; outline-offset: 3px; }
.host-console-v31 .host-control-actions .next-host-field { display: grid; gap: 3px; color: var(--muted); font-size: 10px; }
.host-console-v31 #nextModerator { width: 170px; max-width: 100%; padding: 8px; font-size: 13px; }
@media (min-width: 941px) {
  .host-console-v31 .game:not(.hidden) .table-stage { grid-template-rows: 0 minmax(0,1fr) 0 92px !important; gap: 0 !important; }
  .host-console-v31 .game:not(.hidden) .action-area { display: none !important; }
}
@media (min-width:941px) and (max-height:850px) {
  .host-console-v31 .game:not(.hidden) .table-stage { grid-template-rows: 0 minmax(0,1fr) 0 86px !important; }
  .host-console-v31 .game:not(.hidden) #leftPanel { gap: 9px; }
  .host-console-v31 .phase-card { padding: 12px; }
  .host-console-v31 .phase-card h2 { font-size: 23px; }
  .host-console-v31 .host-dock-copy strong { font-size: 20px; }
}
@media (min-width:941px) and (max-width:1280px) {
  .host-console-v31 .game:not(.hidden) .host-control-card { gap: 10px !important; padding: 10px !important; }
  .host-console-v31 .game:not(.hidden) .host-control-actions button { padding: 9px 11px; font-size: 13px !important; }
  .host-console-v31 .game:not(.hidden) .host-control-actions .host-primary { min-width: 170px; }
  .host-console-v31 .replay-control .host-dock-copy { display: none; }
}
@media (max-width:940px) {
  /* Narrow-screen fallback: keep all actions accessible, never hide an overflowed button. */
  .host-console-v31 .game:not(.hidden) .host-control-card { flex-wrap: wrap; height: auto; gap: 10px !important; }
  .host-console-v31 .game:not(.hidden) .host-control-actions { flex-wrap: wrap; justify-content: flex-start; width: 100%; }
  .host-console-v31 .game:not(.hidden) .host-control-actions .host-primary { min-width: 180px; flex: 1; }
  .host-console-v31 #hostDetailsPanel { max-height: 460px; flex: auto; }
  .host-console-v31 .game:not(.hidden) .action-area { display: none !important; }
}
/* Same central notification as eliminations; no modal focus or media changes. */
.night-result-detail { margin: 0; font-size: 14px; line-height: 1.5; color: var(--muted); }
.night-result-detail:empty { display: none; }
.night-result-overlay.victory .night-result-card { width: min(620px,calc(100vw - 40px)); padding: 36px; }
.night-result-overlay.victory .night-result-card strong { font-size: clamp(32px,4vw,48px); }
.night-result-overlay.win-town .night-result-card { border-color: rgba(155,187,136,.65); box-shadow: 0 30px 90px #0008,0 0 60px rgba(140,171,128,.10); }
.night-result-overlay.win-town .night-result-card .eyebrow { color: #b9ceab; }
.night-result-overlay.win-mafia .night-result-card { border-color: rgba(185,98,89,.65); box-shadow: 0 30px 90px #0008,0 0 60px rgba(185,79,71,.10); }
.night-result-overlay.win-mafia .night-result-card .eyebrow { color: #dfa59a; }
.night-result-progress:after { content: none !important; }
.night-result-progress > i { position: absolute; inset: 0; background: linear-gradient(90deg,#b6a27f,#e4d6bc); transform-origin: left; animation: nightNoticeProgress var(--notice-left,4000ms) linear forwards; }
@media (prefers-reduced-motion: reduce) { .night-result-progress > i { animation: none; } }
/* Measured collision guard for dense host layouts. Card sizes and the existing
   PLAYER_LAYOUTS remain intact; only these small clearances change. */
@media (min-width:941px) and (max-width:1800px) {
  .host-console-v31 #seats:is([data-count="10"],[data-count="11"]) .field-moderator-seat { top: min(23%,calc(35% - 118px)) !important; }
  .host-console-v31 #seats[data-count="12"] .field-moderator-seat { top: min(23%,calc(30% - 118px)) !important; }
}
@media (min-width:941px) and (max-width:1440px) and (max-height:850px) {
  .host-console-v31 #seats[data-count="10"] .player-seat:nth-child(7),
  .host-console-v31 #seats[data-count="10"] .player-seat:nth-child(8),
  .host-console-v31 #seats[data-count="11"] .player-seat:nth-child(7),
  .host-console-v31 #seats[data-count="11"] .player-seat:nth-child(9) { top: 91% !important; }
}
@media (min-width:941px) and (max-width:1440px) and (max-height:850px) {
  .host-console-v31 #seats[data-count="12"] .player-seat:nth-child(5),
  .host-console-v31 #seats[data-count="12"] .player-seat:nth-child(12) { top: 48% !important; }
  .host-console-v31 #seats[data-count="12"] .player-seat:nth-child(6),
  .host-console-v31 #seats[data-count="12"] .player-seat:nth-child(11) { top: 66% !important; }
  .host-console-v31 #seats[data-count="12"] .player-seat:nth-child(7),
  .host-console-v31 #seats[data-count="12"] .player-seat:nth-child(10) { top: 84% !important; }
}
@media (min-width:941px) {
  .host-console-v31 #seats .field-moderator-seat { left: max(8.5%,104px) !important; }
}
