:root {
    --bg: #0f172a;
    --panel: #111827;
    --panel-2: #172033;
    --text: #e5e7eb;
    --muted: #9ca3af;
    --line: rgba(255, 255, 255, .1);
    --accent: #38bdf8;
    --success: #22c55e;
    --danger: #ef4444;
    --warning: #f59e0b;
    --shadow: 0 18px 50px rgba(0, 0, 0, .28);
}

* { box-sizing: border-box; }
html {
    min-height: 100%;
    background: #020617;
}
body {
    min-height: 100%;
    margin: 0;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background-color: #020617;
    background-image: radial-gradient(ellipse 140% 120% at 0% 0%, #1e3a8a 0%, #0f172a 42%, #020617 100%);
    background-repeat: no-repeat;
    background-size: 100% 100%;
    color: var(--text);
}

a { color: var(--accent); }
input, select {
    font: inherit;
}
button:not(#map button):not(#streetView button) {
    font: inherit;
}
button:not(#map button):not(#streetView button) {
    border: 0;
    border-radius: 14px;
    padding: 12px 16px;
    color: #06111f;
    background: linear-gradient(135deg, #7dd3fc, #38bdf8);
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(56, 189, 248, .22);
}
button:not(#map button):not(#streetView button):hover { filter: brightness(1.06); }
button:not(#map button):not(#streetView button):disabled { cursor: wait; opacity: .7; }
button.secondary:not(#map button):not(#streetView button) {
    color: var(--text);
    background: rgba(255,255,255,.08);
    box-shadow: none;
    border: 1px solid var(--line);
}

button.start-button:not(#map button):not(#streetView button) {
    color: #022c22;
    background: linear-gradient(135deg, #86efac, #22c55e);
    box-shadow: 0 10px 24px rgba(34, 197, 94, .24);
}
button.start-button.needs-players:not(#map button):not(#streetView button),
button.start-button.needs-players:not(#map button):not(#streetView button):disabled {
    color: #fff7ed;
    background: linear-gradient(135deg, #f87171, #dc2626);
    box-shadow: 0 10px 24px rgba(220, 38, 38, .3);
    opacity: .92;
}

button.reset-button:not(#map button):not(#streetView button) {
    color: #2b1700;
    background: linear-gradient(135deg, #fcd34d, #f59e0b);
    box-shadow: 0 10px 24px rgba(245, 158, 11, .22);
    border: 1px solid rgba(255, 255, 255, .16);
}
input, select {
    width: 100%;
    margin-top: 7px;
    border: 1px solid var(--line);
    background: rgba(2, 6, 23, .65);
    color: var(--text);
    border-radius: 12px;
    padding: 12px 13px;
    outline: none;
}
input:focus, select:focus {
    border-color: rgba(56, 189, 248, .8);
    box-shadow: 0 0 0 4px rgba(56, 189, 248, .14);
}
label { color: #cbd5e1; font-weight: 650; }

.page-lobby {
    min-height: 100%;
    padding: 36px;
}
.hero {
    max-width: 1100px;
    margin: 0 auto 24px;
    padding: 34px;
    border-radius: 28px;
    background: linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.04));
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
}
.eyebrow {
    margin: 0 0 8px;
    color: var(--accent);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
}
h1, h2 { margin-top: 0; }
.hero h1 {
    font-size: clamp(44px, 7vw, 82px);
    margin: 0;
    line-height: .92;
}
.hero-text {
    max-width: 720px;
    font-size: 18px;
    color: #cbd5e1;
    margin-bottom: 0;
}
.lobby-grid {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}
.card {
    border-radius: 24px;
    background: rgba(17, 24, 39, .82);
    border: 1px solid var(--line);
    padding: 24px;
    box-shadow: var(--shadow);
    backdrop-filter: blur(16px);
}
.howto {
    max-width: 1100px;
    margin: 22px auto 0;
}
.stack { display: grid; gap: 16px; }
.two-cols {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.muted { color: var(--muted); }
.form-message { min-height: 22px; color: var(--muted); margin: 0; }
.form-message.success { color: var(--success); }
.form-message.error { color: #fca5a5; }

.page-game {
    height: 100vh;
    overflow: hidden;
    background: #020617;
}
.game-shell {
    display: grid;
    grid-template-columns: 360px 1fr;
    height: 100vh;
}
.side-panel {
    overflow: auto;
    padding: 22px;
    background: rgba(15, 23, 42, .96);
    border-right: 1px solid var(--line);
}
.room-header {
    display: grid;
    gap: 10px;
    margin-bottom: 24px;
}
.room-header h1 {
    font-size: 44px;
    margin: 0;
    letter-spacing: .06em;
}
.panel-section, .join-inline {
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .04);
    border-radius: 18px;
    padding: 16px;
    margin-bottom: 14px;
}
.panel-section h2, .join-inline h2 {
    font-size: 15px;
    margin: 0 0 12px;
    color: #f8fafc;
}
.status-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 8px 12px;
    font-size: 13px;
    font-weight: 900;
    background: rgba(245, 158, 11, .14);
    color: #fbbf24;
    margin-bottom: 12px;
}
.status-badge[data-status="playing"] {
    color: #86efac;
    background: rgba(34, 197, 94, .14);
}
.status-badge[data-status="finished"] {
    color: #fca5a5;
    background: rgba(239, 68, 68, .14);
}

.status-role-section {
    background: linear-gradient(180deg, rgba(14, 165, 233, .08), rgba(255, 255, 255, .035));
}
.status-role-card {
    display: grid;
    gap: 10px;
    margin-bottom: 12px;
}
.status-role-block {
    border: 1px solid rgba(148, 163, 184, .18);
    border-radius: 14px;
    padding: 10px 12px;
    background: rgba(2, 6, 23, .20);
}
.panel-mini-label {
    display: block;
    margin-bottom: 6px;
    color: #94a3b8;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.current-player-box {
    margin: 0;
    overflow-wrap: anywhere;
}
.status-role-current-state .status-badge {
    margin-bottom: 0;
}
.status-actions {
    display: grid;
    gap: 8px;
}
.status-actions button {
    width: 100%;
}
.players-list, .checkpoint-list {
    display: grid;
    gap: 9px;
}
.player-row, .checkpoint-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: center;
    padding: 10px;
    border-radius: 14px;
    background: rgba(2, 6, 23, .32);
}
.player-row small, .checkpoint-row small {
    display: block;
    color: var(--muted);
    margin-top: 2px;
}

.player-state {
    font-weight: 700;
}
.player-state-found {
    color: var(--success);
}
.player-state-active {
    color: #bfdbfe;
}
.player-state-warning {
    color: var(--warning);
}
.player-state-muted {
    color: var(--muted);
    font-weight: 600;
}
.dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--muted);
}
.dot.online { background: var(--success); box-shadow: 0 0 0 4px rgba(34,197,94,.16); }
.dot.offline { background: #64748b; }
.checkpoint-row > span {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: rgba(148, 163, 184, .18);
    font-weight: 900;
}
.checkpoint-row.done {
    border: 1px solid rgba(34,197,94,.28);
}
.checkpoint-row.done > span {
    background: rgba(34,197,94,.22);
    color: #86efac;
}
.checkpoint-row.next {
    border: 1px solid rgba(56, 189, 248, .4);
    background: rgba(56, 189, 248, .08);
}
.progress-line {
    padding: 8px 0;
    color: #cbd5e1;
}
.small-help p { margin-bottom: 0; color: var(--muted); }
.play-area {
    position: relative;
    min-width: 0;
    min-height: 0;
}
.map-pane {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: #111827;
}
.hidden { display: none !important; }
.missing-key {
    position: absolute;
    inset: 0;
    z-index: 5;
    display: grid;
    place-content: center;
    text-align: center;
    padding: 24px;
    background: #020617;
}
.missing-key code {
    background: rgba(255,255,255,.1);
    border-radius: 8px;
    padding: 3px 6px;
}
.spectator-hint {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 4;
    max-width: 320px;
    border-radius: 16px;
    padding: 16px;
    background: rgba(15, 23, 42, .9);
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
}
.spectator-hint p { margin-bottom: 0; color: var(--muted); }
.toast-host {
    --toast-top: 18px;
    position: fixed;
    left: 50%;
    top: var(--toast-top);
    z-index: 99;
    width: min(92vw, 520px);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    pointer-events: none;
    transform: translateX(-50%);
    transition: top .18s ease;
}
.toast {
    max-width: 100%;
    transform: translateY(-16px);
    opacity: 0;
    padding: 12px 18px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .95);
    color: #f8fafc;
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
    transition: .2s ease;
    text-align: center;
    pointer-events: none;
}
.toast.show {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 900px) {
    .page-lobby { padding: 18px; }
    .lobby-grid { grid-template-columns: 1fr; }
    .game-shell { grid-template-columns: 1fr; grid-template-rows: 46vh 54vh; }
    .side-panel { order: 2; border-right: 0; border-top: 1px solid var(--line); }
    .play-area { order: 1; }
}

@media (max-width: 560px) {
    .two-cols { grid-template-columns: 1fr; }
    .hero, .card { padding: 18px; border-radius: 18px; }
    .room-header h1 { font-size: 34px; }
}

.driver-controls {
    position: absolute;
    left: 18px;
    bottom: 18px;
    z-index: 8;
    max-width: min(520px, calc(100% - 36px));
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(15, 23, 42, .86);
    box-shadow: var(--shadow);
    backdrop-filter: blur(12px);
}
.driver-control-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 8px 0;
}
.driver-controls button {
    padding: 9px 12px;
    border-radius: 12px;
}
.driver-controls button:disabled {
    cursor: not-allowed;
    opacity: .45;
}
.driver-controls p {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 12px;
}
.streetview-notice {
    margin-bottom: 8px;
    padding: 9px 10px;
    border-radius: 12px;
    background: rgba(56, 189, 248, .12);
    color: #bae6fd;
    font-size: 13px;
    font-weight: 700;
}
.streetview-notice[data-kind="error"] {
    background: rgba(239, 68, 68, .15);
    color: #fecaca;
}
.streetview-links-info {
    color: #e2e8f0;
    font-size: 13px;
    font-weight: 800;
}

@media (max-width: 560px) {
    .driver-controls {
        left: 10px;
        right: 10px;
        bottom: 10px;
        max-width: none;
    }
}
.mode-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.mode-list article {
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(2, 6, 23, .25);
}
.mode-list h3 {
    margin: 0 0 6px;
    color: #f8fafc;
}
.mode-list p { margin: 0; color: var(--muted); }
.timer-box {
    margin: 0 0 12px;
    font-weight: 900;
    color: #fde68a;
}
button.trap-button {
    color: #022c22;
    background: linear-gradient(135deg, #86efac, #22c55e);
    box-shadow: 0 10px 24px rgba(34, 197, 94, .22);
}
@media (max-width: 700px) {
    .mode-list { grid-template-columns: 1fr; }
}

/* Lobby layout with side information panel */
.lobby-layout {
    max-width: 1440px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    gap: 22px;
    align-items: start;
}
.lobby-main { min-width: 0; }
.lobby-layout .hero,
.lobby-layout .lobby-grid {
    max-width: none;
}
.lobby-sidebar {
    position: sticky;
    top: 24px;
    display: grid;
    gap: 22px;
    max-height: calc(100vh - 48px);
    overflow: auto;
    padding-right: 3px;
}
.sidebar-card { margin: 0; }
.mode-list-sidebar {
    grid-template-columns: 1fr;
}
.help-card h3 {
    margin: 18px 0 8px;
    font-size: 15px;
    color: #f8fafc;
}
.compact-list {
    margin: 10px 0 0;
    padding-left: 19px;
    color: #cbd5e1;
}
.compact-list li { margin-bottom: 7px; }
.card code,
.code-sample code {
    background: rgba(255,255,255,.08);
    border-radius: 6px;
    padding: 2px 5px;
}
.code-sample {
    max-height: 420px;
    overflow: auto;
    margin: 10px 0 0;
    padding: 14px;
    border-radius: 16px;
    border: 1px solid var(--line);
    background: rgba(2, 6, 23, .55);
    color: #dbeafe;
    font-size: 12px;
    line-height: 1.5;
}
.code-sample code {
    background: transparent;
    padding: 0;
    border-radius: 0;
}

@media (max-width: 1180px) {
    .lobby-layout { grid-template-columns: 1fr; }
    .lobby-sidebar {
        position: static;
        max-height: none;
        overflow: visible;
    }
}

/* AdSense slots */
.ad-box {
    width: 100%;
    margin: 18px 0;
    padding: 10px;
    border: 1px dashed rgba(148, 163, 184, 0.45);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.72);
    overflow: hidden;
}

.ad-label {
    display: block;
    margin-bottom: 8px;
    font-size: 0.72rem;
    line-height: 1;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.ad-lobby-top {
    min-height: 110px;
}

.ad-sidebar,
.ad-game-sidebar {
    min-height: 250px;
}

.ad-game-bottom {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    z-index: 15;
    max-width: 970px;
    min-height: 90px;
    margin: 0 auto;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(8px);
}

@media (max-width: 900px) {
    .ad-game-bottom {
        position: static;
        margin: 12px;
    }
}

/* Game improvements: map stage + non-overlay bottom ad */
.play-area {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    gap: 0;
    background: #020617;
}
.map-stage {
    position: relative;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
}
.map-stage .map-pane {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

/* Mobile gameplay ergonomics: let Google Maps/Street View capture one-finger gestures inside the game panes. */
.map-stage #map,
.map-stage #streetView {
    touch-action: none;
    overscroll-behavior: contain;
}

.map-stage button,
.map-stage a,
.map-stage input,
.map-stage select,
.map-stage textarea,
.side-panel button,
.side-panel a,
.side-panel input,
.side-panel select,
.side-panel textarea {
    touch-action: manipulation;
}
.ad-game-bottom {
    position: static;
    left: auto;
    right: auto;
    bottom: auto;
    z-index: auto;
    max-width: none;
    min-height: 90px;
    margin: 0;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(8px);
}
.start-lock {
    position: absolute;
    inset: 0;
    z-index: 9;
    display: grid;
    place-content: center;
    text-align: center;
    padding: 24px;
    pointer-events: none;
    background: radial-gradient(circle at center, rgba(15, 23, 42, .66), rgba(2, 6, 23, .28));
}
.start-lock h2 {
    margin: 0 0 8px;
    font-size: clamp(24px, 4vw, 44px);
}
.start-lock p {
    margin: 0;
    color: #cbd5e1;
    font-weight: 700;
}
.stats-list {
    display: grid;
    gap: 10px;
}
.team-stat {
    padding: 11px;
    border-radius: 14px;
    border: 1px solid color-mix(in srgb, var(--team-color) 45%, transparent);
    background: linear-gradient(135deg, color-mix(in srgb, var(--team-color) 16%, transparent), rgba(2, 6, 23, .28));
}
.team-stat.winner {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--team-color) 42%, transparent);
}
.team-stat-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}
.team-stat-head span {
    font-weight: 900;
    color: #f8fafc;
}
.team-stat small {
    display: block;
    color: #cbd5e1;
    margin-top: 2px;
}
.help-menu summary {
    cursor: pointer;
    font-weight: 900;
    color: #f8fafc;
    list-style-position: inside;
}
.help-menu-content {
    margin-top: 14px;
    color: var(--muted);
}
.help-menu-content h3 {
    margin: 14px 0 8px;
    color: #f8fafc;
    font-size: 14px;
}
.help-menu-content p { margin-top: 0; }

@media (max-width: 900px) {
    .game-shell { grid-template-rows: 48vh 52vh; }
    .ad-game-bottom { min-height: 72px; }
}

/* Lobby menu */
.hero-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}
.hero-menu a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 13px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, .08);
    color: #e0f2fe;
    font-weight: 800;
    text-decoration: none;
}
.hero-menu a:hover { background: rgba(56, 189, 248, .16); }
.menu-card { display: grid; gap: 14px; }
.menu-details {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(2, 6, 23, .25);
    padding: 12px;
}
.menu-details summary {
    cursor: pointer;
    color: #f8fafc;
    font-weight: 900;
}
.menu-details[open] summary { margin-bottom: 12px; }
.compact-help { padding: 0; background: transparent; border: 0; box-shadow: none; }
.compact-help p { color: var(--muted); }


.map-label {
    position: absolute;
    transform: translate(-50%, calc(-100% - 16px));
    max-width: 180px;
    padding: 6px 9px;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(17, 24, 39, .96), rgba(59, 7, 100, .92));
    color: #fff;
    border: 1px solid var(--label-color, #8b5cf6);
    box-shadow: 0 0 0 2px rgba(0,0,0,.28), 0 10px 24px rgba(0,0,0,.42);
    font-size: 12px;
    font-weight: 900;
    line-height: 1.1;
    text-align: center;
    white-space: nowrap;
    pointer-events: none;
    z-index: 10;
    text-shadow: 0 1px 2px rgba(0,0,0,.85);
}
.map-label::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -6px;
    width: 10px;
    height: 10px;
    transform: translateX(-50%) rotate(45deg);
    background: rgba(17, 24, 39, .96);
    border-right: 1px solid var(--label-color, #8b5cf6);
    border-bottom: 1px solid var(--label-color, #8b5cf6);
}
.player-map-label {
    background: linear-gradient(135deg, rgba(2, 6, 23, .98), rgba(88, 28, 135, .94));
    box-shadow: 0 0 0 2px rgba(0,0,0,.32), 0 12px 26px rgba(0,0,0,.48);
}
.checkpoint-map-label {
    transform: translate(-50%, calc(-100% - 18px));
    background: linear-gradient(135deg, rgba(15, 23, 42, .98), rgba(49, 46, 129, .94));
}
.checkpoint-map-label.done {
    background: linear-gradient(135deg, rgba(6, 78, 59, .98), rgba(20, 83, 45, .94));
}
.checkpoint-map-label.next {
    outline: 2px solid rgba(255,255,255,.35);
}

.modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: grid;
    place-items: center;
    padding: 22px;
    background: rgba(2, 6, 23, .72);
    backdrop-filter: blur(10px);
}
.modal-card {
    position: relative;
    width: min(920px, 96vw);
    max-height: 88vh;
    overflow: auto;
    padding: 26px;
    border-radius: 26px;
    background: linear-gradient(135deg, rgba(15, 23, 42, .98), rgba(46, 16, 101, .96));
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 30px 90px rgba(0,0,0,.48);
}
.modal-card h2 { margin-bottom: 18px; }
.modal-close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 42px;
    height: 42px;
    padding: 0;
    border-radius: 999px;
    color: #fff;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.16);
    box-shadow: none;
    font-size: 28px;
    line-height: 1;
}
.final-summary-content h3 { margin: 18px 0 10px; }
.summary-headline,
.summary-kpis {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.summary-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.summary-headline span,
.summary-kpis span {
    padding: 14px;
    border-radius: 18px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.1);
}
.summary-headline strong,
.summary-kpis strong { display: block; font-size: 22px; }
.summary-headline small,
.summary-kpis small { color: var(--muted); font-weight: 700; }
.my-summary {
    margin-top: 14px;
    padding: 16px;
    border-radius: 20px;
    border: 1px solid var(--team-color, #8b5cf6);
    background: rgba(2, 6, 23, .46);
}
.summary-table-wrap { overflow-x: auto; border-radius: 18px; border: 1px solid rgba(255,255,255,.1); }
.summary-table { width: 100%; border-collapse: collapse; min-width: 680px; }
.summary-table th,
.summary-table td { padding: 12px 14px; border-bottom: 1px solid rgba(255,255,255,.08); text-align: left; }
.summary-table th { color: #cbd5e1; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; background: rgba(255,255,255,.05); }
.summary-table td small { display: block; color: var(--muted); margin-top: 3px; }
.summary-color-dot { display: inline-block; width: 10px; height: 10px; margin-right: 8px; border-radius: 999px; background: var(--team-color, #8b5cf6); box-shadow: 0 0 0 3px rgba(255,255,255,.08); }
.player-route-legend {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 10px;
    margin-top: 10px;
}
.player-route-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 12px;
    border-radius: 16px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.1);
}
.player-route-row .summary-color-dot { flex: 0 0 auto; }
.player-route-row .route-color-dot { background: var(--route-color, var(--team-color, #8b5cf6)); }
.player-route-row strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.player-route-row small { margin-left: auto; color: var(--muted); font-weight: 700; white-space: nowrap; }
#finalSummaryBtn { width: 100%; margin-top: 12px; }

@media (max-width: 720px) {
    .summary-headline,
    .summary-kpis { grid-template-columns: 1fr; }
    .modal-card { padding: 22px 16px; }
    .map-label { max-width: 140px; font-size: 11px; }
}

/* Pre-game setup / reusable rooms */
.setup-panel {
    border-color: rgba(139, 92, 246, .45);
    background: linear-gradient(180deg, rgba(49, 46, 129, .25), rgba(15, 23, 42, .72));
}

.setup-panel h3 {
    margin: 6px 0 4px;
    font-size: 14px;
}

.setup-room-options,
.setup-player-options {
    padding: 12px;
    border: 1px solid rgba(148, 163, 184, .22);
    border-radius: 16px;
    background: rgba(2, 6, 23, .32);
}

.ready-waiting {
    padding: 12px;
    border: 1px solid rgba(34, 197, 94, .34);
    border-radius: 16px;
    background: rgba(20, 83, 45, .16);
}

.ready-waiting p {
    margin: 4px 0 10px;
}

.setup-summary {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(148, 163, 184, .18);
}

.setup-summary h3 {
    margin-top: 0;
}

.ready-count {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    color: #e9d5ff;
    background: rgba(88, 28, 135, .5);
    border: 1px solid rgba(216, 180, 254, .2);
    font-size: 12px;
    font-weight: 800;
}

.setup-summary-list {
    display: grid;
    gap: 8px;
    margin-top: 8px;
}

.setup-summary-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: center;
    padding: 9px 10px;
    border-radius: 14px;
    background: rgba(15, 23, 42, .62);
    border: 1px solid color-mix(in srgb, var(--team-color) 45%, rgba(148, 163, 184, .22));
    box-shadow: 0 0 18px color-mix(in srgb, var(--team-color) 20%, transparent);
}

.setup-summary-row small {
    display: block;
    margin-top: 2px;
    color: var(--muted);
}

.info-box {
    padding: 11px 12px;
    border-radius: 14px;
    background: rgba(88, 28, 135, .18);
    border: 1px solid rgba(216, 180, 254, .18);
    color: var(--text);
}

.info-box.small {
    font-size: 13px;
    line-height: 1.45;
}

/* Layout stabilization: avoid polling redraws + fixed map from breaking scroll/adaptation */
.game-shell {
    grid-template-columns: minmax(320px, 360px) minmax(0, 1fr);
    min-width: 0;
}
.side-panel,
.play-area,
.map-stage {
    min-width: 0;
}
.side-panel {
    scrollbar-gutter: stable;
}
.setup-panel select,
.setup-panel input {
    min-width: 0;
}

@media (max-width: 900px) {
    .page-game {
        height: auto;
        min-height: 100vh;
        overflow: auto;
    }

    .game-shell {
        display: flex;
        flex-direction: column;
        height: auto;
        min-height: 100vh;
    }

    .play-area {
        order: 1;
        min-height: 480px;
    }

    .map-stage {
        min-height: 410px;
    }

    .side-panel {
        order: 2;
        max-height: none;
        overflow: visible;
        border-right: 0;
        border-top: 1px solid var(--line);
    }
}

@media (max-width: 520px) {
    .play-area {
        min-height: 430px;
    }

    .map-stage {
        min-height: 360px;
    }

    .side-panel {
        padding: 14px;
    }
}

/* Empty/error state with the same visual language as the game */
.page-empty-state {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
}
.empty-state-card {
    width: min(720px, 100%);
    text-align: center;
    padding: 36px;
    border-radius: 28px;
    background: linear-gradient(135deg, rgba(17, 24, 39, .94), rgba(46, 16, 101, .88));
    border: 1px solid rgba(255,255,255,.13);
    box-shadow: var(--shadow);
}
.empty-state-card h1 {
    font-size: clamp(28px, 5vw, 52px);
    margin: 0 0 12px;
}
.button-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 18px;
    min-height: 46px;
    padding: 12px 18px;
    border-radius: 14px;
    color: #06111f;
    background: linear-gradient(135deg, #7dd3fc, #38bdf8);
    font-weight: 900;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(56, 189, 248, .22);
}

/* More configurable pre-game options */
.config-fieldset {
    margin: 0;
    padding: 12px;
    border: 1px solid rgba(148, 163, 184, .22);
    border-radius: 16px;
    background: rgba(2, 6, 23, .26);
    display: grid;
    gap: 12px;
}
.config-fieldset legend {
    padding: 0 6px;
    color: #e9d5ff;
    font-weight: 900;
}
.checkbox-line {
    display: flex;
    align-items: center;
    gap: 10px;
}
.checkbox-line input {
    width: auto;
    margin: 0;
}

/* Fix scroll/adaptation and make the Google area resizable on desktop */
.page-game {
    height: auto;
    min-height: 100vh;
    overflow: auto;
}
.game-shell {
    --side-panel-width: 360px;
    display: grid;
    grid-template-columns: minmax(300px, var(--side-panel-width)) 8px minmax(360px, 1fr);
    min-height: 100vh;
    height: auto;
    min-width: 0;
}
.side-panel {
    max-height: 100vh;
    overflow: auto;
    scrollbar-gutter: stable;
}
.play-area {
    min-height: 100vh;
    min-width: 0;
    overflow: hidden;
}
.map-stage {
    min-height: 0;
}
.layout-resize-handle {
    width: 8px;
    min-height: 100%;
    cursor: col-resize;
    background: linear-gradient(180deg, rgba(148, 163, 184, .16), rgba(139, 92, 246, .22));
    border-left: 1px solid rgba(255,255,255,.06);
    border-right: 1px solid rgba(255,255,255,.06);
}
.layout-resize-handle:hover,
body.is-resizing-layout .layout-resize-handle {
    background: linear-gradient(180deg, rgba(56, 189, 248, .32), rgba(139, 92, 246, .36));
}

.ad-box {
    color: #1e293b;
}
.ad-game-bottom {
    display: block;
    min-height: 96px;
    position: static !important;
    margin: 0 !important;
    border-radius: 0 !important;
}
.ad-game-bottom .adsbygoogle {
    min-height: 90px;
}

.streetview-player-overlay {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 8;
    width: min(320px, calc(100% - 32px));
    padding: 12px;
    border-radius: 18px;
    background: rgba(15, 23, 42, .88);
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: var(--shadow);
    backdrop-filter: blur(12px);
    pointer-events: none;
}
.streetview-player-overlay > strong {
    display: block;
    margin-bottom: 8px;
    color: #f8fafc;
}
.streetview-overlay-list {
    display: grid;
    gap: 8px;
}
.streetview-overlay-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 9px;
    align-items: center;
    padding: 8px 9px;
    border-radius: 14px;
    background: linear-gradient(135deg, color-mix(in srgb, var(--team-color) 24%, rgba(2, 6, 23, .88)), rgba(46, 16, 101, .72));
    border: 1px solid color-mix(in srgb, var(--team-color) 46%, transparent);
}
.streetview-overlay-row > span {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: rgba(0,0,0,.35);
    color: #fff;
    font-weight: 900;
}
.streetview-overlay-row b,
.streetview-overlay-row small {
    display: block;
}
.streetview-overlay-row small {
    margin-top: 2px;
    color: #cbd5e1;
}

.distance-pulse-overlay {
    position: absolute;
    top: 18px;
    left: 50%;
    z-index: 10;
    width: min(420px, calc(100% - 36px));
    padding: 14px 16px;
    border-radius: 20px;
    background: rgba(15, 23, 42, .92);
    color: #f8fafc;
    border: 1px solid rgba(255,255,255,.16);
    box-shadow: var(--shadow);
    backdrop-filter: blur(14px);
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, -14px) scale(.98);
    transition: opacity .22s ease, transform .22s ease;
}
.distance-pulse-overlay.show {
    opacity: 1;
    transform: translate(-50%, 0) scale(1);
}
.distance-pulse-overlay::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(135deg, rgba(56,189,248,.24), rgba(139,92,246,.16));
    z-index: -1;
}
.distance-pulse-overlay[data-tone="success"]::before {
    background: linear-gradient(135deg, rgba(34,197,94,.34), rgba(14,165,233,.16));
}
.distance-pulse-overlay[data-tone="warning"]::before {
    background: linear-gradient(135deg, rgba(245,158,11,.34), rgba(239,68,68,.16));
}
.distance-pulse-overlay strong,
.distance-pulse-overlay span,
.distance-pulse-overlay small {
    display: block;
}
.distance-pulse-overlay strong {
    font-size: .96rem;
    margin-bottom: 4px;
}
.distance-pulse-overlay span {
    font-size: 1.08rem;
    font-weight: 800;
}
.distance-pulse-overlay small {
    margin-top: 5px;
    color: #cbd5e1;
}

@media (max-width: 900px) {
    .distance-pulse-overlay {
        top: 12px;
        width: min(360px, calc(100% - 24px));
        padding: 12px 14px;
    }
    .distance-pulse-overlay span {
        font-size: 1rem;
    }

    .game-shell {
        display: flex;
        flex-direction: column;
        min-height: 100vh;
    }
    .layout-resize-handle { display: none; }
    .play-area {
        min-height: 560px;
        height: auto;
        overflow: visible;
    }
    .map-stage { min-height: 460px; }
    .side-panel {
        max-height: none;
        overflow: visible;
    }
}


.code-example {
    margin: 16px 0;
    padding: 16px;
    overflow-x: auto;
    border-radius: 16px;
    background: rgba(2, 6, 23, .78);
    border: 1px solid var(--line);
    color: #e5e7eb;
    font-size: 13px;
    line-height: 1.55;
}
.code-example code {
    font-family: "Cascadia Code", "Fira Code", Consolas, monospace;
}

.street-search-overlay {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 16;
    transform: translate(-50%, -50%);
    width: min(420px, calc(100% - 34px));
    padding: 22px 24px;
    border-radius: 22px;
    background: radial-gradient(circle at top, rgba(88, 28, 135, .96), rgba(15, 23, 42, .94));
    border: 1px solid rgba(216, 180, 254, .34);
    box-shadow: 0 24px 70px rgba(0,0,0,.58), 0 0 0 1px rgba(255,255,255,.06);
    text-align: center;
    color: #f8fafc;
    pointer-events: none;
}
.street-search-overlay strong {
    display: block;
    margin-top: 12px;
    font-size: 19px;
}
.street-search-overlay span {
    display: block;
    margin-top: 8px;
    color: #d8b4fe;
    font-size: 13px;
}
.street-search-spinner {
    width: 38px;
    height: 38px;
    margin: 0 auto;
    border-radius: 999px;
    border: 4px solid rgba(255,255,255,.18);
    border-top-color: #d8b4fe;
    animation: street-search-spin .8s linear infinite;
}
@keyframes street-search-spin {
    to { transform: rotate(360deg); }
}

/* Últimos ajustes: UI de juego más limpia */
.countdown-overlay {
    position: absolute;
    left: 50%;
    top: 18px;
    z-index: 12;
    transform: translateX(-50%);
    min-width: 116px;
    padding: 9px 14px;
    border-radius: 18px;
    text-align: center;
    font-size: clamp(18px, 3.5vw, 43px);
    font-weight: 1000;
    letter-spacing: .035em;
    line-height: 1;
    color: #f8fafc;
    background: radial-gradient(circle at top, rgba(88, 28, 135, .92), rgba(15, 23, 42, .88));
    border: 1px solid rgba(216, 180, 254, .3);
    box-shadow: 0 14px 44px rgba(0,0,0,.44), 0 0 0 1px rgba(255,255,255,.06);
    pointer-events: none;
    text-shadow: 0 2px 9px rgba(0,0,0,.75);
}
.countdown-overlay::before {
    content: "Tiempo restante";
    display: block;
    margin-bottom: 5px;
    color: #d8b4fe;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.countdown-overlay[data-urgent="1"] {
    background: radial-gradient(circle at top, rgba(185, 28, 28, .94), rgba(15, 23, 42, .9));
    border-color: rgba(252, 165, 165, .46);
    color: #fff7ed;
}
.countdown-overlay[data-paused="1"] {
    background: radial-gradient(circle at top, rgba(30, 64, 175, .94), rgba(15, 23, 42, .9));
    border-color: rgba(147, 197, 253, .48);
}
.countdown-overlay[data-paused="1"]::before {
    content: "Tiempo pausado";
    color: #bfdbfe;
}

.countdown-overlay[data-critical="1"] {
    animation: countdown-critical-blink .42s steps(2, jump-none) infinite;
    box-shadow: 0 14px 44px rgba(0,0,0,.48), 0 0 30px rgba(248, 113, 113, .55);
}

@keyframes countdown-critical-blink {
    0%, 100% {
        opacity: 1;
        transform: translateX(-50%) scale(1);
    }
    50% {
        opacity: .36;
        transform: translateX(-50%) scale(1.06);
    }
}

/* Public website: clearer home, real menu and standalone pages */
.page-site {
    min-height: 100vh;
    padding: 0;
    overflow-x: hidden;
}
.site-header {
    position: sticky;
    top: 0;
    z-index: 40;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;
    width: min(1180px, calc(100% - 36px));
    margin: 18px auto 0;
    padding: 12px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 22px;
    background: rgba(15, 23, 42, .82);
    box-shadow: 0 16px 46px rgba(0,0,0,.28);
    backdrop-filter: blur(18px);
}
.site-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #f8fafc;
    text-decoration: none;
    min-width: 0;
}
.brand-mark {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 16px;
    background: rgba(15, 23, 42, .72);
    border: 1px solid rgba(186, 230, 253, .24);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .08),
        0 10px 28px rgba(56, 189, 248, .14);
    overflow: hidden;
    flex: 0 0 auto;
}

.brand-globe {
    position: relative;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    overflow: hidden;
    border: 1.5px solid rgba(186, 230, 253, .78);
    background:
        radial-gradient(circle at 32% 28%, rgba(255, 255, 255, .95) 0 2px, transparent 3px),
        linear-gradient(135deg, rgba(56, 189, 248, .95), rgba(34, 197, 94, .76) 54%, rgba(14, 165, 233, .92));
    box-shadow:
        0 0 0 5px rgba(56, 189, 248, .10),
        0 0 18px rgba(56, 189, 248, .36);
    animation: maps-globe-float 1.8s ease-in-out infinite;
}

.brand-globe::before {
    content: "";
    position: absolute;
    inset: 4px 7px;
    border-radius: 999px;
    border-left: 1.5px solid rgba(255, 255, 255, .62);
    border-right: 1.5px solid rgba(255, 255, 255, .42);
}

.brand-globe::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, transparent 0 46%, rgba(255, 255, 255, .34) 47% 50%, transparent 51% 100%),
        linear-gradient(0deg, transparent 0 30%, rgba(255, 255, 255, .30) 31% 33%, transparent 34% 62%, rgba(255, 255, 255, .24) 63% 65%, transparent 66% 100%);
    border-radius: inherit;
    animation: maps-globe-grid 1.15s linear infinite;
}
.site-brand strong,
.site-brand small { display: block; }
.site-brand small { color: var(--muted); font-size: 11px; margin-top: 2px; }
.site-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 0;
}
.site-nav a,
.nav-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 9px 12px;
    border-radius: 999px;
    color: #dbeafe;
    text-decoration: none;
    font-weight: 850;
    white-space: nowrap;
}
.site-nav a:hover,
.site-nav a[aria-current="page"] {
    background: rgba(56, 189, 248, .14);
    color: #f8fafc;
}
.nav-cta {
    color: #06111f;
    background: linear-gradient(135deg, #7dd3fc, #38bdf8);
    box-shadow: 0 10px 24px rgba(56, 189, 248, .2);
}
.site-main {
    width: min(1180px, calc(100% - 36px));
    margin: 28px auto 0;
    display: grid;
    gap: 28px;
}
.narrow-main { width: min(1040px, calc(100% - 36px)); }
.home-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr);
    gap: 22px;
    align-items: stretch;
}
.hero-copy,
.hero-panel,
.page-title-card,
.content-section,
.play-section {
    border: 1px solid var(--line);
    border-radius: 30px;
    background: linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.045));
    box-shadow: var(--shadow);
    backdrop-filter: blur(16px);
}
.hero-copy { padding: clamp(26px, 5vw, 52px); }
.hero-copy h1,
.page-title-card h1 {
    margin: 0;
    font-size: clamp(38px, 6.5vw, 76px);
    line-height: .95;
    letter-spacing: -.04em;
}
.hero-copy .hero-text,
.page-title-card p {
    max-width: 760px;
    margin: 18px 0 0;
    color: #cbd5e1;
    font-size: 18px;
    line-height: 1.55;
}
.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}
.button-link.primary { margin-top: 0; }
.button-link.secondary-link {
    margin-top: 0;
    color: #e0f2fe;
    background: rgba(255,255,255,.08);
    border: 1px solid var(--line);
    box-shadow: none;
}
.hero-panel {
    padding: 22px;
    display: grid;
    gap: 14px;
}
.stat-card {
    padding: 18px;
    border-radius: 22px;
    background: rgba(2, 6, 23, .34);
    border: 1px solid rgba(255,255,255,.09);
}
.stat-card strong {
    display: block;
    font-size: clamp(26px, 4vw, 42px);
    line-height: 1;
    color: #f8fafc;
}
.stat-card span { display: block; margin-top: 7px; color: var(--muted); font-weight: 750; }
.play-section,
.content-section,
.page-title-card { padding: 26px; }
.section-heading { margin-bottom: 20px; }
.section-heading h2,
.page-title-card h1 { margin-top: 0; }
.section-heading p { margin: 6px 0 0; color: var(--muted); }
.split-heading {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 16px;
}
.text-link {
    color: #bae6fd;
    font-weight: 900;
    text-decoration: none;
}
.text-link:hover { text-decoration: underline; }
.action-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
.action-card h3,
.info-card h3,
.mode-card h3,
.place-card h2 { margin: 0 0 6px; }
.card-heading-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}
.card-heading-row p { margin: 0; color: var(--muted); }
.step-badge {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    border-radius: 14px;
    color: #020617;
    background: linear-gradient(135deg, #7dd3fc, #c084fc);
    font-weight: 1000;
}
.info-grid {
    display: grid;
    gap: 16px;
}
.info-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.info-card,
.mode-card,
.place-pill {
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 22px;
    background: rgba(2, 6, 23, .3);
    padding: 18px;
}
.info-card p,
.mode-card p { color: var(--muted); }
.mode-grid,
.place-grid-full {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.mode-tag,
.chip {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 5px 9px;
    border-radius: 999px;
    background: rgba(139, 92, 246, .16);
    color: #e9d5ff;
    border: 1px solid rgba(216, 180, 254, .18);
    font-size: 12px;
    font-weight: 900;
}
.mode-card h3 { margin-top: 12px; }
.mode-card small { color: #cbd5e1; font-weight: 750; }
.place-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.place-pill strong,
.place-pill span { display: block; }
.place-pill span { margin-top: 4px; color: var(--muted); }
.site-footer {
    width: min(1180px, calc(100% - 36px));
    margin: 28px auto 0;
    padding: 22px 0 34px;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    color: var(--muted);
    border-top: 1px solid rgba(255,255,255,.1);
}
.site-footer strong { display: block; color: #f8fafc; }
.site-footer nav {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.site-footer a { color: #bae6fd; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.mode-detail-list,
.docs-content { display: grid; gap: 18px; }
.mode-detail-card { padding: 24px; }
.mode-detail-header {
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: 18px;
    margin-bottom: 18px;
}
.mode-detail-header h2 { margin: 10px 0 8px; }
.mode-detail-header p { margin: 0; color: var(--muted); }
.detail-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,.09);
}
.detail-columns h3,
.doc-section h2 { margin-top: 0; }
.chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.clean-list { margin: 0; padding-left: 20px; color: #cbd5e1; }
.clean-list li { margin-bottom: 8px; }
.clean-list.ordered { padding-left: 22px; }
.place-grid-full { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.place-card { box-shadow: none; }
.docs-layout {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}
.docs-toc {
    position: sticky;
    top: 104px;
    display: grid;
    gap: 8px;
    padding: 14px;
    border-radius: 18px;
    background: rgba(15,23,42,.82);
    border: 1px solid var(--line);
}
.docs-toc a {
    padding: 9px 10px;
    border-radius: 12px;
    color: #dbeafe;
    text-decoration: none;
    font-weight: 800;
}
.docs-toc a:hover { background: rgba(56,189,248,.14); }
.doc-section p { color: #cbd5e1; line-height: 1.6; }

@media (max-width: 900px) {
    .site-header {
        grid-template-columns: 1fr auto;
        width: min(100% - 24px, 1180px);
        margin-top: 12px;
    }
    .site-nav {
        order: 3;
        grid-column: 1 / -1;
        overflow-x: auto;
        justify-content: start;
        padding-bottom: 2px;
    }
    .site-main,
    .narrow-main,
    .site-footer { width: min(100% - 24px, 1180px); }
    .home-hero,
    .action-grid,
    .mode-grid,
    .place-grid-full,
    .detail-columns,
    .docs-layout { grid-template-columns: 1fr; }
    .info-grid.three { grid-template-columns: 1fr; }
    .place-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mode-detail-header,
    .split-heading,
    .site-footer { align-items: start; flex-direction: column; }
    .docs-toc { position: static; }
}

@media (max-width: 560px) {
    .site-header { border-radius: 18px; }
    .nav-cta { display: none; }
    .hero-copy,
    .play-section,
    .content-section,
    .page-title-card { padding: 20px; border-radius: 22px; }
    .place-strip { grid-template-columns: 1fr; }
}

.page-site.page-empty-state {
    display: block;
    min-height: 100vh;
    padding: 0;
}
.page-site.page-empty-state .empty-state-card {
    margin: 72px auto;
}


.place-country-list {
    display: grid;
    gap: 28px;
}
.place-country-section {
    display: grid;
    gap: 14px;
}
.place-country-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 0 2px;
}
.place-country-title h2 {
    margin: 0;
    color: #f8fafc;
    font-size: clamp(22px, 2vw, 30px);
}
.place-country-title span {
    color: var(--muted);
    font-weight: 900;
}

.place-card-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 14px;
}
.point-count-badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 6px 10px;
    border-radius: 999px;
    color: #f8fafc;
    background: rgba(88, 28, 135, .68);
    border: 1px solid rgba(216, 180, 254, .26);
    font-size: 12px;
    font-weight: 1000;
    white-space: nowrap;
}
.place-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 14px 0;
}
.place-stats div {
    padding: 10px;
    border-radius: 14px;
    background: rgba(15, 23, 42, .58);
    border: 1px solid rgba(255, 255, 255, .08);
}
.place-stats dt {
    color: var(--muted);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.place-stats dd {
    margin: 4px 0 0;
    color: #f8fafc;
    font-size: 20px;
    font-weight: 1000;
}
.place-author {
    margin: 0 0 14px;
    color: #cbd5e1;
    font-size: 13px;
    font-weight: 750;
}
.place-pill small {
    display: block;
    margin-top: 8px;
    color: #c4b5fd;
    font-weight: 850;
}

@media (max-width: 640px) {
    .place-card-head {
        display: grid;
    }
    .point-count-badge {
        justify-self: start;
    }
    .place-stats {
        grid-template-columns: 1fr;
    }
}

.winner-animation {
    position: relative;
    overflow: hidden;
    margin: 0 0 18px;
    padding: 24px 18px;
    border-radius: 24px;
    text-align: center;
    border: 1px solid color-mix(in srgb, var(--winner-color) 72%, white 12%);
    background: radial-gradient(circle at top, color-mix(in srgb, var(--winner-color) 32%, transparent), rgba(2, 6, 23, .62));
    box-shadow: 0 0 42px color-mix(in srgb, var(--winner-color) 24%, transparent);
    animation: winner-pop .72s cubic-bezier(.2, 1.25, .3, 1) both;
}
.winner-animation strong {
    position: relative;
    z-index: 1;
    display: block;
    color: #fff;
    font-size: clamp(28px, 5vw, 52px);
    line-height: 1.02;
    text-shadow: 0 0 24px color-mix(in srgb, var(--winner-color) 65%, transparent), 0 2px 16px rgba(0,0,0,.55);
}
.winner-animation span {
    position: relative;
    z-index: 1;
    display: block;
    margin-top: 8px;
    color: #e2e8f0;
    font-weight: 800;
}
.winner-animation-negative {
    --winner-color: #ef4444;
    background: radial-gradient(circle at top, rgba(239, 68, 68, .28), rgba(2, 6, 23, .68));
}
.winner-burst {
    position: absolute;
    inset: -35%;
    background:
        conic-gradient(from 0deg, transparent 0 8%, color-mix(in srgb, var(--winner-color) 88%, white 10%) 9% 10%, transparent 11% 19%, rgba(255,255,255,.75) 20% 21%, transparent 22% 31%, color-mix(in srgb, var(--winner-color) 76%, white 18%) 32% 33%, transparent 34% 100%);
    opacity: .34;
    animation: winner-spin 3.2s linear infinite;
}
@keyframes winner-pop {
    from { transform: scale(.86); opacity: 0; filter: blur(6px); }
    to { transform: scale(1); opacity: 1; filter: blur(0); }
}
@keyframes winner-spin {
    to { transform: rotate(360deg); }
}


/* Final responsive ad sizing: keep AdSense visible but prevent it from taking over the game screen. */
.ad-box {
    box-sizing: border-box;
    max-width: 100%;
    overflow: hidden;
}
.ad-box .adsbygoogle {
    max-width: 100%;
    overflow: hidden;
}
.ad-horizontal {
    min-height: 72px;
    max-height: 118px;
}
.ad-horizontal .adsbygoogle {
    min-height: 60px !important;
    max-height: 102px !important;
}
.ad-lobby-top {
    width: min(100%, 970px);
    min-height: 90px;
    max-height: 126px;
    margin-left: auto;
    margin-right: auto;
}
.ad-game-bottom {
    height: clamp(64px, 9vh, 96px) !important;
    min-height: 64px !important;
    max-height: 96px !important;
    padding: 6px 10px !important;
    flex: 0 0 auto;
}
.ad-game-bottom .ad-label {
    margin-bottom: 4px;
    font-size: 0.62rem;
}
.ad-game-bottom .adsbygoogle {
    height: calc(100% - 16px) !important;
    min-height: 50px !important;
    max-height: 78px !important;
}
.ad-game-sidebar {
    min-height: 160px;
    max-height: min(300px, 32vh);
}
.ad-game-sidebar .adsbygoogle {
    min-height: 140px !important;
    max-height: min(280px, 30vh) !important;
}
@media (max-width: 900px) {
    .ad-lobby-top {
        min-height: 74px;
        max-height: 96px;
    }
    .ad-game-bottom {
        height: clamp(54px, 8vh, 72px) !important;
        min-height: 54px !important;
        max-height: 72px !important;
        padding: 4px 8px !important;
    }
    .ad-game-bottom .ad-label {
        display: none;
    }
    .ad-game-bottom .adsbygoogle {
        height: 100% !important;
        min-height: 50px !important;
        max-height: 64px !important;
    }
    .ad-game-sidebar {
        min-height: 90px;
        max-height: 120px;
    }
    .ad-game-sidebar .adsbygoogle {
        min-height: 72px !important;
        max-height: 104px !important;
    }
}
@media (max-width: 520px) {
    .ad-box {
        margin: 10px 0;
        padding: 6px;
        border-radius: 12px;
    }
    .ad-game-bottom {
        height: 56px !important;
        min-height: 56px !important;
        max-height: 56px !important;
    }
}



/* Collapsible game side panel */
.room-header-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.side-panel {
    grid-column: 1;
    grid-row: 1;
}

.layout-resize-handle {
    grid-column: 2;
    grid-row: 1;
}

.play-area {
    grid-column: 3;
    grid-row: 1;
}

.icon-toggle,
.side-panel-open {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    min-width: 40px;
    padding: 0 !important;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,.16);
    background: linear-gradient(135deg, rgba(15,23,42,.96), rgba(46,16,101,.92));
    color: #f8fafc;
    box-shadow: 0 10px 28px rgba(0,0,0,.28);
    cursor: pointer;
    transition: transform .16s ease, border-color .16s ease, background .16s ease, opacity .16s ease;
    font-size: 22px;
    line-height: 1;
}

.icon-toggle:hover,
.side-panel-open:hover {
    transform: translateY(-1px) scale(1.04);
    border-color: rgba(56,189,248,.48);
    background: linear-gradient(135deg, rgba(30,41,59,.98), rgba(76,29,149,.95));
}

.icon-toggle:active,
.side-panel-open:active {
    transform: translateY(0) scale(.98);
}

.toggle-icon {
    display: block;
    transform: translateY(-1px);
}

.side-panel-open {
    display: none;
    position: fixed;
    top: 14px;
    left: 14px;
    z-index: 120;
    backdrop-filter: blur(14px);
}

.game-shell.is-side-collapsed {
    grid-template-columns: minmax(0, 1fr) !important;
}

.game-shell.is-side-collapsed .side-panel {
    display: none !important;
}

.game-shell.is-side-collapsed .layout-resize-handle {
    display: none !important;
}

.game-shell.is-side-collapsed .side-panel-open {
    display: inline-flex;
}

.game-shell.is-side-collapsed .play-area {
    grid-column: 1 / -1;
    grid-row: 1;
    display: block !important;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 100vh;
}

.game-shell.is-side-collapsed .map-stage {
    min-height: calc(100vh - 120px);
}

@media (max-width: 900px) {
    .room-header-actions {
        justify-content: flex-start;
    }

    .side-panel,
    .play-area,
    .layout-resize-handle {
        grid-column: auto;
        grid-row: auto;
    }

    .game-shell.is-side-collapsed {
        display: block;
    }

    .game-shell.is-side-collapsed .side-panel {
        display: none !important;
    }

    .game-shell.is-side-collapsed .play-area {
        min-height: 100vh;
    }

    .game-shell.is-side-collapsed .map-stage {
        min-height: calc(100vh - 80px);
    }

    .game-shell.is-side-collapsed .side-panel-open {
        top: 10px;
        left: 10px;
        width: 38px;
        height: 38px;
        min-width: 38px;
        font-size: 20px;
    }
}

/* Room leave/disband controls */
.danger-button {
    border: 1px solid rgba(248, 113, 113, .35);
    background: linear-gradient(135deg, rgba(127, 29, 29, .92), rgba(185, 28, 28, .86));
    color: #fff;
    box-shadow: 0 10px 24px rgba(127, 29, 29, .24);
}

.danger-button:hover:not(:disabled) {
    transform: translateY(-1px);
    border-color: rgba(252, 165, 165, .65);
    background: linear-gradient(135deg, rgba(153, 27, 27, .96), rgba(220, 38, 38, .92));
}

.danger-button:disabled {
    opacity: .55;
    cursor: wait;
}

/* Host moderation controls */
.player-row-main {
    min-width: 0;
}

.player-row-header {
    display: flex;
    gap: 8px;
    align-items: center;
    justify-content: space-between;
    min-width: 0;
}

.player-row-header strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.player-actions {
    display: inline-flex;
    gap: 6px;
    flex: 0 0 auto;
}

.mini-danger {
    min-height: 28px;
    padding: 5px 8px;
    border-radius: 9px;
    border: 1px solid rgba(248, 113, 113, .35);
    background: rgba(127, 29, 29, .35);
    color: #fecaca;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
}

.mini-danger:hover:not(:disabled) {
    background: rgba(185, 28, 28, .55);
    color: #fff;
}

.mini-danger.strong {
    border-color: rgba(251, 113, 133, .55);
    background: rgba(159, 18, 57, .48);
}

@media (max-width: 520px) {
    .player-row-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .player-actions {
        width: 100%;
    }

    .player-actions .mini-danger {
        flex: 1;
    }
}


.app-meta {
    display: block;
    margin-top: 6px;
    color: #94a3b8;
    font-size: 12px;
    letter-spacing: .02em;
}

.game-version-footer {
    margin-top: auto;
    padding: 14px 0 0;
    border-top: 1px solid rgba(148, 163, 184, .18);
    color: #94a3b8;
    font-size: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.game-version-footer strong {
    color: #c4b5fd;
    font-size: 12px;
    font-weight: 800;
}


/* GeoGames 1.0.7 cost/ad pass: compact AdSense banner inside the side panel. */
.ad-game-sidebar-compact {
    min-height: 96px;
    max-height: 180px;
    margin: 12px 0 14px;
    padding: 8px;
    border-radius: 14px;
}
.ad-game-sidebar-compact .ad-label {
    margin-bottom: 5px;
    font-size: 0.62rem;
}
.ad-game-sidebar-compact .adsbygoogle {
    display: block;
    width: 100%;
    min-height: 72px !important;
    max-height: 150px !important;
}
@media (max-width: 900px) {
    .ad-game-sidebar-compact {
        min-height: 74px;
        max-height: 112px;
        margin: 10px 0;
        padding: 6px;
    }
    .ad-game-sidebar-compact .adsbygoogle {
        min-height: 60px !important;
        max-height: 96px !important;
    }
}


/* Central message shown while Google Maps/Street View is intentionally deferred or loading. */
.maps-loading-overlay {
    position: absolute;
    inset: 0;
    z-index: 6;
    display: grid;
    place-items: center;
    padding: 24px;
    pointer-events: none;
    text-align: center;
    background:
        radial-gradient(circle at center, rgba(15, 23, 42, .58), rgba(2, 6, 23, .18) 52%, rgba(2, 6, 23, .08));
}

.maps-loading-card {
    width: min(420px, calc(100% - 32px));
    padding: 22px 24px;
    border-radius: 22px;
    border: 1px solid rgba(148, 163, 184, .28);
    background: rgba(15, 23, 42, .9);
    box-shadow: 0 24px 70px rgba(0, 0, 0, .42);
    backdrop-filter: blur(16px);
}

.maps-loading-card h2 {
    margin: 0 0 8px;
    font-size: clamp(1.2rem, 2.5vw, 1.65rem);
}

.maps-loading-card p {
    margin: 0;
    color: #cbd5e1;
    line-height: 1.55;
}

.maps-loading-globe {
    position: relative;
    width: 58px;
    height: 58px;
    margin: 0 auto 16px;
    border-radius: 999px;
    overflow: hidden;
    border: 2px solid rgba(186, 230, 253, .72);
    background:
        radial-gradient(circle at 32% 28%, rgba(255, 255, 255, .95) 0 4px, transparent 5px),
        linear-gradient(135deg, rgba(56, 189, 248, .92), rgba(34, 197, 94, .78) 54%, rgba(14, 165, 233, .9));
    box-shadow:
        0 0 0 8px rgba(56, 189, 248, .10),
        0 0 28px rgba(56, 189, 248, .38);
    animation: maps-globe-float 1.8s ease-in-out infinite;
}

.maps-loading-globe::before {
    content: "";
    position: absolute;
    inset: 7px 12px;
    border-radius: 999px;
    border-left: 2px solid rgba(255, 255, 255, .62);
    border-right: 2px solid rgba(255, 255, 255, .42);
}

.maps-loading-globe::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, transparent 0 46%, rgba(255, 255, 255, .34) 47% 50%, transparent 51% 100%),
        linear-gradient(0deg, transparent 0 30%, rgba(255, 255, 255, .30) 31% 33%, transparent 34% 62%, rgba(255, 255, 255, .24) 63% 65%, transparent 66% 100%);
    border-radius: inherit;
    animation: maps-globe-grid 1.15s linear infinite;
}

.maps-loading-overlay[data-tone="info"] .maps-loading-globe {
    border-color: rgba(221, 214, 254, .76);
    box-shadow:
        0 0 0 8px rgba(167, 139, 250, .10),
        0 0 28px rgba(167, 139, 250, .34);
}

.maps-loading-overlay[data-tone="error"] .maps-loading-globe {
    display: none;
}

.maps-loading-overlay[data-tone="error"] .maps-loading-card {
    border-color: rgba(248, 113, 113, .42);
}

.maps-loading-overlay[data-tone="error"] .maps-loading-card h2 {
    color: #fecaca;
}

@keyframes maps-globe-float {
    0%, 100% { transform: translateY(0) scale(1); }
    50% { transform: translateY(-4px) scale(1.03); }
}

@keyframes maps-globe-grid {
    to { transform: translateX(10px); }
}

@media (max-width: 560px) {
    .maps-loading-overlay {
        padding: 16px;
    }

    .maps-loading-card {
        padding: 18px;
        border-radius: 18px;
    }
}

/* GeoGames 1.0.9: GG monogram inside the animated globe brand mark. */
.brand-globe,
.maps-loading-globe {
    display: grid;
    place-items: center;
}

.brand-globe::before,
.brand-globe::after,
.maps-loading-globe::before,
.maps-loading-globe::after {
    z-index: 1;
    pointer-events: none;
}

.globe-gg {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64%;
    height: 42%;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .46);
    background: rgba(15, 23, 42, .36);
    color: rgba(255, 255, 255, .96);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -.12em;
    text-indent: -.08em;
    text-shadow: 0 1px 3px rgba(15, 23, 42, .86);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .24),
        0 2px 8px rgba(15, 23, 42, .24);
}

.brand-globe .globe-gg {
    font-size: 9px;
}

.maps-loading-globe .globe-gg {
    font-size: 17px;
    border-width: 1.5px;
}

/* GeoGames 1.0.10: larger animated brand logo on the home screen. */
.page-home .site-brand {
    gap: clamp(16px, 2.4vw, 28px);
}

.page-home .site-brand .brand-mark {
    width: 132px;
    height: 132px;
    border-radius: 42px;
    border-color: rgba(186, 230, 253, .32);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .10),
        0 18px 44px rgba(56, 189, 248, .20);
}

.page-home .site-brand .brand-globe {
    width: 90px;
    height: 90px;
    border-width: 3px;
    box-shadow:
        0 0 0 12px rgba(56, 189, 248, .10),
        0 0 34px rgba(56, 189, 248, .40);
}

.page-home .site-brand .brand-globe::before {
    inset: 12px 21px;
    border-left-width: 3px;
    border-right-width: 3px;
}

.page-home .site-brand .globe-gg {
    font-size: 27px;
    border-width: 2px;
}

@media (max-width: 720px) {
    .page-home .site-brand .brand-mark {
        width: 88px;
        height: 88px;
        border-radius: 28px;
    }

    .page-home .site-brand .brand-globe {
        width: 60px;
        height: 60px;
        border-width: 2px;
        box-shadow:
            0 0 0 8px rgba(56, 189, 248, .10),
            0 0 26px rgba(56, 189, 248, .36);
    }

    .page-home .site-brand .brand-globe::before {
        inset: 8px 14px;
        border-left-width: 2px;
        border-right-width: 2px;
    }

    .page-home .site-brand .globe-gg {
        font-size: 18px;
    }
}

/* GeoGames 1.0.11: single stretched page background gradient, no repeated gradient cuts on long pages. */

/* GeoGames 1.0.12: large GG globe brand on every public page and 2x brand text. */
.page-site .site-brand {
    gap: clamp(16px, 2.4vw, 28px);
}

.page-site .site-brand .brand-mark {
    width: 132px;
    height: 132px;
    border-radius: 42px;
    border-color: rgba(186, 230, 253, .32);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .10),
        0 18px 44px rgba(56, 189, 248, .20);
}

.page-site .site-brand .brand-globe {
    width: 90px;
    height: 90px;
    border-width: 3px;
    box-shadow:
        0 0 0 12px rgba(56, 189, 248, .10),
        0 0 34px rgba(56, 189, 248, .40);
}

.page-site .site-brand .brand-globe::before {
    inset: 12px 21px;
    border-left-width: 3px;
    border-right-width: 3px;
}

.page-site .site-brand .globe-gg {
    font-size: 27px;
    border-width: 2px;
}

.page-site .site-brand strong {
    font-size: clamp(28px, 3vw, 32px);
    line-height: .92;
    letter-spacing: -.04em;
}

.page-site .site-brand small {
    font-size: clamp(18px, 2vw, 22px);
    line-height: 1.05;
    margin-top: 6px;
}

@media (max-width: 720px) {
    .page-site .site-brand {
        gap: 14px;
    }

    .page-site .site-brand .brand-mark {
        width: 88px;
        height: 88px;
        border-radius: 28px;
    }

    .page-site .site-brand .brand-globe {
        width: 60px;
        height: 60px;
        border-width: 2px;
        box-shadow:
            0 0 0 8px rgba(56, 189, 248, .10),
            0 0 26px rgba(56, 189, 248, .36);
    }

    .page-site .site-brand .brand-globe::before {
        inset: 8px 14px;
        border-left-width: 2px;
        border-right-width: 2px;
    }

    .page-site .site-brand .globe-gg {
        font-size: 18px;
    }

    .page-site .site-brand strong {
        font-size: 24px;
    }

    .page-site .site-brand small {
        font-size: 16px;
    }
}

@media (max-width: 420px) {
    .page-site .site-brand .brand-mark {
        width: 72px;
        height: 72px;
        border-radius: 24px;
    }

    .page-site .site-brand .brand-globe {
        width: 50px;
        height: 50px;
    }

    .page-site .site-brand .globe-gg {
        font-size: 15px;
    }

    .page-site .site-brand strong {
        font-size: 21px;
    }

    .page-site .site-brand small {
        font-size: 14px;
    }
}



/* Chat overlay in play area */
.chat-overlay-host {
    position: absolute;
    left: clamp(14px, 2.4vw, 28px);
    top: 50%;
    z-index: 13;
    width: min(380px, calc(100% - 32px));
    display: flex;
    flex-direction: column;
    gap: 9px;
    pointer-events: none;
    transform: translateY(-50%);
}

.chat-overlay-message {
    --chat-team-color: #38bdf8;
    max-width: 100%;
    padding: 10px 12px 11px 13px;
    border-radius: 16px;
    color: #f8fafc;
    background: linear-gradient(135deg, rgba(15, 23, 42, .92), rgba(15, 23, 42, .72));
    border: 1px solid rgba(148, 163, 184, .18);
    box-shadow:
        inset 3px 0 0 var(--chat-team-color),
        0 16px 34px rgba(2, 6, 23, .42),
        0 0 18px rgba(56, 189, 248, .10);
    opacity: 0;
    transform: translateX(-26px) scale(.98);
    filter: blur(2px);
    transition:
        opacity .22s ease,
        transform .22s ease,
        filter .22s ease;
    overflow: hidden;
}

.chat-overlay-message.is-visible {
    opacity: 1;
    transform: translateX(0) scale(1);
    filter: blur(0);
}

.chat-overlay-message.is-leaving {
    opacity: 0;
    transform: translateX(-18px) scale(.985);
    filter: blur(2px);
}

.chat-overlay-message.scope-team {
    background: linear-gradient(135deg, rgba(20, 83, 45, .90), rgba(15, 23, 42, .78));
    border-color: rgba(74, 222, 128, .25);
    box-shadow:
        inset 3px 0 0 var(--chat-team-color),
        0 16px 34px rgba(2, 6, 23, .42),
        0 0 20px rgba(34, 197, 94, .12);
}

.chat-overlay-meta {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    margin-bottom: 4px;
    font-size: 11px;
    line-height: 1.2;
}

.chat-overlay-meta strong {
    color: #ffffff;
    font-size: 12px;
    font-weight: 900;
    text-shadow: 0 1px 2px rgba(2, 6, 23, .45);
}

.chat-overlay-scope {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 7px;
    border-radius: 999px;
    color: #bae6fd;
    background: rgba(56, 189, 248, .14);
    border: 1px solid rgba(125, 211, 252, .20);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .03em;
}

.chat-overlay-message.scope-team .chat-overlay-scope {
    color: #bbf7d0;
    background: rgba(34, 197, 94, .15);
    border-color: rgba(74, 222, 128, .24);
}

.chat-overlay-text {
    color: #e5e7eb;
    font-size: 13px;
    line-height: 1.35;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

@media (max-width: 900px) {
    .chat-overlay-host {
        left: 12px;
        top: 48%;
        width: min(340px, calc(100% - 24px));
    }

    .chat-overlay-message {
        padding: 9px 10px 10px 11px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .chat-overlay-message,
    .chat-overlay-message.is-visible,
    .chat-overlay-message.is-leaving {
        transition: opacity .12s linear;
        transform: none;
        filter: none;
    }
}

/* Room chat */
.panel-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.panel-title-row h2 {
    margin: 0;
}

.chat-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 4px 8px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #bae6fd;
    background: rgba(56, 189, 248, .12);
    border: 1px solid rgba(125, 211, 252, .18);
}

.chat-badge-team {
    color: #bbf7d0;
    background: rgba(34, 197, 94, .14);
    border-color: rgba(74, 222, 128, .28);
}

.chat-scope-toggle {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    margin: -2px 0 10px;
    padding: 4px;
    border-radius: 14px;
    background: rgba(2, 6, 23, .26);
    border: 1px solid rgba(148, 163, 184, .12);
}

.chat-scope-toggle button {
    min-height: 30px;
    padding: 6px 8px;
    border-radius: 11px;
    border: 1px solid transparent;
    background: transparent;
    color: #94a3b8;
    cursor: pointer;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.chat-scope-toggle button.active {
    color: #f8fafc;
    background: rgba(56, 189, 248, .16);
    border-color: rgba(125, 211, 252, .30);
    box-shadow: 0 0 18px rgba(56, 189, 248, .12);
}

.chat-scope-toggle button[data-chat-scope="team"].active {
    background: rgba(34, 197, 94, .16);
    border-color: rgba(74, 222, 128, .30);
    box-shadow: 0 0 18px rgba(34, 197, 94, .12);
}

.chat-scope-toggle button:disabled {
    cursor: not-allowed;
    opacity: .45;
}

.chat-section {
    background: linear-gradient(180deg, rgba(56, 189, 248, .07), rgba(255, 255, 255, .035));
}

.chat-messages {
    max-height: 220px;
    overflow: auto;
    display: grid;
    gap: 8px;
    padding: 8px;
    margin-bottom: 10px;
    border-radius: 14px;
    background: rgba(2, 6, 23, .28);
    border: 1px solid rgba(148, 163, 184, .12);
    scrollbar-width: thin;
}

.chat-empty {
    margin: 0;
    font-size: 13px;
}

.chat-message {
    position: relative;
    padding: 8px 10px 9px 12px;
    border-radius: 14px;
    background: rgba(15, 23, 42, .72);
    border: 1px solid rgba(148, 163, 184, .13);
    box-shadow: inset 3px 0 0 var(--chat-team-color, #38bdf8);
}

.chat-message.mine {
    background: rgba(14, 165, 233, .14);
    border-color: rgba(125, 211, 252, .22);
}

.chat-message.scope-team {
    background: linear-gradient(180deg, rgba(22, 101, 52, .34), rgba(15, 23, 42, .78));
    border-color: rgba(74, 222, 128, .28);
    box-shadow:
        inset 3px 0 0 var(--chat-team-color, #22c55e),
        0 0 16px rgba(34, 197, 94, .08);
}

.chat-message.scope-team.mine {
    background: linear-gradient(180deg, rgba(34, 197, 94, .22), rgba(14, 165, 233, .10));
    border-color: rgba(125, 211, 252, .24);
}

.chat-message-meta {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    margin-bottom: 4px;
    font-size: 11px;
    line-height: 1.2;
    color: #94a3b8;
}

.chat-message-meta strong {
    color: #f8fafc;
    font-size: 12px;
}

.chat-message-meta span {
    color: var(--chat-team-color, #38bdf8);
    font-weight: 800;
}

.chat-scope-pill {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 6px;
    border-radius: 999px;
    background: rgba(56, 189, 248, .10);
    border: 1px solid rgba(125, 211, 252, .16);
    color: #bae6fd;
    font-style: normal;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .03em;
}

.chat-message.scope-team .chat-scope-pill {
    color: #bbf7d0;
    background: rgba(34, 197, 94, .12);
    border-color: rgba(74, 222, 128, .20);
}

.chat-message-meta time {
    margin-left: auto;
    color: #64748b;
}

.chat-message-text {
    color: #e5e7eb;
    font-size: 13px;
    line-height: 1.35;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.chat-emoji-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 8px;
}

.chat-emoji-bar button {
    width: 30px;
    height: 30px;
    padding: 0;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, .16);
    background: rgba(15, 23, 42, .62);
    color: #f8fafc;
    cursor: pointer;
    font-size: 15px;
    line-height: 1;
}

.chat-emoji-bar button:hover:not(:disabled),
.chat-emoji-bar button:focus-visible:not(:disabled) {
    transform: translateY(-1px);
    border-color: rgba(125, 211, 252, .42);
    background: rgba(56, 189, 248, .14);
}

.chat-emoji-bar button:disabled {
    cursor: not-allowed;
    opacity: .42;
}

.chat-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px;
}

.chat-form input {
    min-width: 0;
}

.chat-form button {
    padding-inline: 12px;
}

.chat-status {
    min-height: 18px;
    margin-top: 7px;
}

@media (max-width: 900px) {
    .chat-messages {
        max-height: 180px;
    }
}

/* Monetag integration 1.0.17-beta
   Ads stay outside the Street View/map interaction area to avoid accidental clicks. */
.monetag-box {
    contain: layout paint;
}

.monetag-zone {
    width: 100%;
    min-height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.monetag-game-sidebar {
    margin: 12px 0;
}

.monetag-game-sidebar .monetag-zone {
    min-height: 90px;
}

.monetag-game-bottom {
    flex: 0 0 auto;
    margin: 10px auto 0;
    max-width: min(970px, calc(100vw - 24px));
    width: 100%;
    z-index: 1;
}

.monetag-game-bottom .monetag-zone {
    min-height: 76px;
}

@media (max-width: 900px) {
    .monetag-game-sidebar {
        display: none;
    }

    .monetag-game-bottom {
        max-width: calc(100vw - 12px);
        margin-top: 8px;
        border-radius: 12px;
    }

    .monetag-game-bottom .monetag-zone {
        min-height: 64px;
    }
}

/* GeoGames 1.0.18: Monetag-only ad layout + friendly adblock/support notice */
.monetag-lobby-top {
    max-width: 980px;
    margin: 18px auto;
}

.monetag-box .ad-label,
.ad-box .ad-label {
    user-select: none;
}

.adblock-support {
    position: fixed;
    left: 22px;
    bottom: 22px;
    z-index: 12000;
    width: min(460px, calc(100vw - 28px));
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px;
    padding: 16px;
    border-radius: 22px;
    border: 1px solid rgba(125, 211, 252, 0.28);
    background:
        radial-gradient(circle at 8% 4%, rgba(56, 189, 248, 0.26), transparent 32%),
        linear-gradient(145deg, rgba(7, 15, 32, 0.96), rgba(13, 26, 56, 0.94));
    color: #eaf7ff;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.42), 0 0 40px rgba(14, 165, 233, 0.18);
    backdrop-filter: blur(18px);
    transform: translateY(18px) scale(0.98);
    opacity: 0;
    pointer-events: none;
    transition: transform 220ms ease, opacity 220ms ease;
}

.adblock-support.hidden {
    display: none;
}

.adblock-support.is-visible {
    transform: translateY(0) scale(1);
    opacity: 1;
    pointer-events: auto;
}

.adblock-support-glow {
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(135deg, rgba(14, 165, 233, 0.16), transparent 38%, rgba(129, 140, 248, 0.18));
    mask: linear-gradient(#000, #000) content-box, linear-gradient(#000, #000);
    mask-composite: exclude;
    padding: 1px;
}

.adblock-support-icon {
    width: 54px;
    height: 54px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    font-weight: 900;
    letter-spacing: -0.08em;
    color: white;
    background: radial-gradient(circle at 32% 24%, #7dd3fc, #2563eb 48%, #0f172a 100%);
    box-shadow: inset 0 0 18px rgba(255,255,255,0.22), 0 10px 30px rgba(37,99,235,0.35);
}

.adblock-support-copy {
    position: relative;
    min-width: 0;
}

.adblock-support-kicker {
    margin: 0 0 4px;
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #93c5fd;
    font-weight: 800;
}

.adblock-support h2 {
    margin: 0 0 8px;
    font-size: 1.04rem;
    line-height: 1.18;
    color: #ffffff;
}

.adblock-support p {
    margin: 0;
    color: rgba(234, 247, 255, 0.86);
    font-size: 0.92rem;
    line-height: 1.42;
}

.adblock-support-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.adblock-support-link,
.adblock-support-close {
    appearance: none;
    border: 0;
    border-radius: 999px;
    padding: 8px 12px;
    font-weight: 800;
    font-size: 0.86rem;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
}

.adblock-support-link {
    color: #07101f;
    background: #bae6fd;
}

.adblock-support-close {
    color: #e0f2fe;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.14);
}

.adblock-support-link:hover,
.adblock-support-close:hover {
    transform: translateY(-1px);
    filter: brightness(1.05);
}

@media (max-width: 640px) {
    .adblock-support {
        left: 14px;
        right: 14px;
        bottom: 14px;
        width: auto;
        grid-template-columns: 1fr;
        padding: 14px;
    }

    .adblock-support-icon {
        width: 44px;
        height: 44px;
        border-radius: 15px;
    }
}

/* GeoGames 1.0.19: Monetag contained slots + centered support notice.
   The old AdSense containers are hidden; Monetag gets its own fixed slots. */
body .adsbygoogle,
body .ad-box:not(.monetag-box) {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 0 !important;
    max-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
}

body .monetag-box {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    color: #dbeafe !important;
    background:
        radial-gradient(circle at 10% 0%, rgba(56, 189, 248, 0.16), transparent 32%),
        linear-gradient(145deg, rgba(15, 23, 42, 0.96), rgba(2, 6, 23, 0.92)) !important;
    border: 1px solid rgba(148, 163, 184, 0.22) !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.03) !important;
}

body .monetag-label {
    display: block !important;
    margin: 0 0 5px !important;
    color: rgba(219, 234, 254, 0.62) !important;
    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.11em !important;
    user-select: none !important;
}

body .monetag-zone {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    border-radius: inherit !important;
    background: rgba(2, 6, 23, 0.35) !important;
}

body .monetag-frame-wrap {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: inherit !important;
    overflow: hidden !important;
    border-radius: inherit !important;
}

body .monetag-frame {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: inherit !important;
    border: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
}

body .monetag-lobby-top {
    width: min(100%, 980px) !important;
    height: 118px !important;
    min-height: 118px !important;
    max-height: 118px !important;
    margin: 18px auto !important;
    padding: 8px !important;
    border-radius: 18px !important;
}

body .monetag-lobby-top .monetag-zone,
body .monetag-lobby-top .monetag-frame-wrap,
body .monetag-lobby-top .monetag-frame {
    height: calc(118px - 8px - 8px - 15px) !important;
    min-height: 82px !important;
}

body .monetag-game-sidebar,
body .ad-game-sidebar.monetag-box,
body .ad-game-sidebar-compact.monetag-box {
    display: block !important;
    width: 100% !important;
    height: 132px !important;
    min-height: 132px !important;
    max-height: 132px !important;
    margin: 12px 0 14px !important;
    padding: 8px !important;
    border-radius: 16px !important;
    flex: 0 0 auto !important;
}

body .monetag-game-sidebar .monetag-zone,
body .monetag-game-sidebar .monetag-frame-wrap,
body .monetag-game-sidebar .monetag-frame {
    height: 104px !important;
    min-height: 104px !important;
    max-height: 104px !important;
}

body .monetag-game-bottom,
body .ad-game-bottom.monetag-box {
    position: static !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    z-index: 1 !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: 98px !important;
    min-height: 98px !important;
    max-height: 98px !important;
    margin: 0 !important;
    padding: 7px 12px !important;
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
    flex: 0 0 98px !important;
    transform: none !important;
}

body .monetag-game-bottom .monetag-zone,
body .monetag-game-bottom .monetag-frame-wrap,
body .monetag-game-bottom .monetag-frame {
    height: 74px !important;
    min-height: 74px !important;
    max-height: 74px !important;
}

body .map-stage > .monetag-box,
body #map > .monetag-box {
    display: none !important;
}

@media (max-width: 900px) {
    body .monetag-game-sidebar,
    body .ad-game-sidebar.monetag-box,
    body .ad-game-sidebar-compact.monetag-box {
        display: none !important;
    }

    body .monetag-game-bottom,
    body .ad-game-bottom.monetag-box {
        height: 76px !important;
        min-height: 76px !important;
        max-height: 76px !important;
        padding: 6px 8px !important;
        flex-basis: 76px !important;
    }

    body .monetag-game-bottom .monetag-label {
        display: none !important;
    }

    body .monetag-game-bottom .monetag-zone,
    body .monetag-game-bottom .monetag-frame-wrap,
    body .monetag-game-bottom .monetag-frame {
        height: 64px !important;
        min-height: 64px !important;
        max-height: 64px !important;
    }

    body .monetag-lobby-top {
        height: 92px !important;
        min-height: 92px !important;
        max-height: 92px !important;
        margin: 12px auto !important;
        border-radius: 14px !important;
    }

    body .monetag-lobby-top .monetag-zone,
    body .monetag-lobby-top .monetag-frame-wrap,
    body .monetag-lobby-top .monetag-frame {
        height: 66px !important;
        min-height: 66px !important;
        max-height: 66px !important;
    }
}

/* Centered, readable, dismissible support notice. */
body .adblock-support {
    position: fixed !important;
    inset: 0 !important;
    z-index: 12000 !important;
    display: grid !important;
    place-items: center !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 18px !important;
    background: rgba(2, 6, 23, 0.62) !important;
    backdrop-filter: blur(8px) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: none !important;
    transition: opacity 220ms ease !important;
}

body .adblock-support.hidden {
    display: none !important;
}

body .adblock-support.is-visible {
    opacity: 1 !important;
    pointer-events: auto !important;
}

body .adblock-support-card {
    position: relative !important;
    width: min(680px, calc(100vw - 28px)) !important;
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    gap: 18px !important;
    padding: 24px !important;
    border-radius: 28px !important;
    border: 1px solid rgba(125, 211, 252, 0.34) !important;
    background:
        radial-gradient(circle at 10% 0%, rgba(56, 189, 248, 0.28), transparent 34%),
        radial-gradient(circle at 92% 12%, rgba(129, 140, 248, 0.22), transparent 34%),
        linear-gradient(145deg, rgba(7, 15, 32, 0.98), rgba(13, 26, 56, 0.96)) !important;
    color: #eaf7ff !important;
    box-shadow: 0 30px 90px rgba(0,0,0,0.55), 0 0 48px rgba(14,165,233,0.20) !important;
    transform: translateY(14px) scale(0.985) !important;
    transition: transform 220ms ease !important;
}

body .adblock-support.is-visible .adblock-support-card {
    transform: translateY(0) scale(1) !important;
}

body .adblock-support-x {
    position: absolute !important;
    top: 12px !important;
    right: 14px !important;
    width: 34px !important;
    height: 34px !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: #e0f2fe !important;
    background: rgba(255,255,255,0.10) !important;
    font-size: 24px !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

body .adblock-support-icon {
    width: 68px !important;
    height: 68px !important;
    border-radius: 22px !important;
    display: grid !important;
    place-items: center !important;
    font-weight: 950 !important;
    font-size: 1.15rem !important;
    letter-spacing: -0.08em !important;
    color: #fff !important;
    background: radial-gradient(circle at 32% 24%, #7dd3fc, #2563eb 48%, #0f172a 100%) !important;
    box-shadow: inset 0 0 20px rgba(255,255,255,0.22), 0 14px 34px rgba(37,99,235,0.34) !important;
}

body .adblock-support-copy {
    min-width: 0 !important;
    padding-right: 28px !important;
}

body .adblock-support-kicker {
    margin: 0 0 7px !important;
    font-size: 0.76rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.13em !important;
    color: #93c5fd !important;
    font-weight: 900 !important;
}

body .adblock-support h2 {
    margin: 0 0 10px !important;
    color: #ffffff !important;
    font-size: clamp(1.35rem, 3vw, 2rem) !important;
    line-height: 1.08 !important;
}

body .adblock-support p {
    margin: 0 !important;
    color: rgba(234, 247, 255, 0.88) !important;
    font-size: 1rem !important;
    line-height: 1.58 !important;
}

body .adblock-support-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin-top: 18px !important;
}

body .adblock-support-link,
body .adblock-support-close {
    appearance: none !important;
    border: 0 !important;
    border-radius: 999px !important;
    padding: 11px 15px !important;
    font-weight: 900 !important;
    font-size: 0.92rem !important;
    line-height: 1 !important;
    text-decoration: none !important;
    cursor: pointer !important;
}

body .adblock-support-link {
    color: #07101f !important;
    background: #bae6fd !important;
}

body .adblock-support-link.primary {
    background: linear-gradient(135deg, #c4b5fd, #7dd3fc) !important;
}

body .adblock-support-close {
    color: #e0f2fe !important;
    background: rgba(255,255,255,0.12) !important;
    border: 1px solid rgba(255,255,255,0.16) !important;
}

body .adblock-support-link:hover,
body .adblock-support-close:hover,
body .adblock-support-x:hover {
    transform: translateY(-1px) !important;
    filter: brightness(1.06) !important;
}

@media (max-width: 640px) {
    body .adblock-support-card {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        padding: 22px 18px 18px !important;
        border-radius: 24px !important;
    }

    body .adblock-support-icon {
        width: 52px !important;
        height: 52px !important;
        border-radius: 18px !important;
    }

    body .adblock-support-copy {
        padding-right: 0 !important;
    }

    body .adblock-support-actions {
        flex-direction: column !important;
    }

    body .adblock-support-link,
    body .adblock-support-close {
        width: 100% !important;
        text-align: center !important;
    }
}

/* GeoGames 1.0.20: Monetag In-Page Push raw loaders.
   These tags are not fixed display banners, so they are loaded without reserving
   empty AdSense-style holes. Real banner/display tags can still use mode=slot. */
body .monetag-raw-loader {
    position: absolute !important;
    left: -10000px !important;
    top: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    min-width: 1px !important;
    min-height: 1px !important;
    max-width: 1px !important;
    max-height: 1px !important;
    overflow: hidden !important;
    opacity: 0.01 !important;
    pointer-events: none !important;
    z-index: -1 !important;
}

body .monetag-raw-loader script {
    display: block !important;
}

/* GeoGames 1.0.21 host cleanup */
.host-cleanup-button {
    width: 100%;
    margin-top: 8px;
    border-color: rgba(125, 211, 252, .28);
    background: rgba(14, 165, 233, .12);
}

.host-cleanup-button:not(.hidden)::before {
    content: "🧹 ";
}

/* GeoGames 1.0.22: room victory counters + stronger map viewport preservation. */
.player-name-with-wins {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.player-name-with-wins .victory-badge {
    flex: 0 0 auto;
}

.current-player-name {
    max-width: 100%;
}

.victory-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 900;
    letter-spacing: .01em;
    border: 1px solid rgba(255, 255, 255, .25);
    box-shadow: 0 0 0 1px rgba(15, 23, 42, .35), 0 8px 16px rgba(0, 0, 0, .22);
    white-space: nowrap;
}

.victory-gold {
    color: #3b2600;
    background: linear-gradient(135deg, #fff7ad, #facc15 48%, #d97706);
    border-color: rgba(253, 224, 71, .85);
    box-shadow: 0 0 16px rgba(250, 204, 21, .34), 0 8px 16px rgba(0, 0, 0, .24);
}

.victory-silver {
    color: #1e293b;
    background: linear-gradient(135deg, #f8fafc, #cbd5e1 52%, #94a3b8);
    border-color: rgba(226, 232, 240, .85);
    box-shadow: 0 0 14px rgba(226, 232, 240, .28), 0 8px 16px rgba(0, 0, 0, .22);
}

.victory-bronze {
    color: #2a1305;
    background: linear-gradient(135deg, #fed7aa, #c77730 50%, #92400e);
    border-color: rgba(251, 146, 60, .8);
    box-shadow: 0 0 14px rgba(251, 146, 60, .28), 0 8px 16px rgba(0, 0, 0, .22);
}

.victory-diamond {
    color: #052e3f;
    background: linear-gradient(135deg, #ecfeff, #67e8f9 45%, #22d3ee 72%, #38bdf8);
    border-color: rgba(125, 211, 252, .85);
    box-shadow: 0 0 16px rgba(34, 211, 238, .30), 0 8px 16px rgba(0, 0, 0, .22);
}

@media (max-width: 620px) {
    .victory-badge {
        min-width: 28px;
        padding: 2px 6px;
        font-size: 10px;
    }
}

/* GeoGames 1.0.26: Adsterra fixed banner slots. Monetag can remain installed but disabled. */
body .adsterra-box {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    color: #dbeafe !important;
    background:
        radial-gradient(circle at 10% 0%, rgba(56, 189, 248, 0.16), transparent 32%),
        linear-gradient(145deg, rgba(15, 23, 42, 0.96), rgba(2, 6, 23, 0.92)) !important;
    border: 1px solid rgba(148, 163, 184, 0.22) !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.03) !important;
}

body .adsterra-label {
    display: block !important;
    margin: 0 0 5px !important;
    color: rgba(219, 234, 254, 0.62) !important;
    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.11em !important;
    user-select: none !important;
}

body .adsterra-zone {
    position: relative !important;
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    border-radius: inherit !important;
    background: rgba(2, 6, 23, 0.35) !important;
}

body .adsterra-zone iframe,
body .adsterra-zone ins,
body .adsterra-zone div {
    max-width: 100% !important;
}

body .adsterra-lobby-top {
    width: min(100%, 980px) !important;
    height: 118px !important;
    min-height: 118px !important;
    max-height: 118px !important;
    margin: 18px auto !important;
    padding: 8px !important;
    border-radius: 18px !important;
}

body .adsterra-lobby-top .adsterra-zone {
    height: 90px !important;
    min-height: 90px !important;
    max-height: 90px !important;
}

body .adsterra-game-sidebar,
body .ad-game-sidebar.adsterra-box,
body .ad-game-sidebar-compact.adsterra-box {
    display: block !important;
    width: 100% !important;
    height: 286px !important;
    min-height: 286px !important;
    max-height: 286px !important;
    margin: 12px 0 14px !important;
    padding: 8px !important;
    border-radius: 16px !important;
    flex: 0 0 auto !important;
}

body .adsterra-game-sidebar .adsterra-zone {
    height: 250px !important;
    min-height: 250px !important;
    max-height: 250px !important;
}

body .adsterra-game-bottom,
body .ad-game-bottom.adsterra-box {
    position: static !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    z-index: 1 !important;
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: 112px !important;
    min-height: 112px !important;
    max-height: 112px !important;
    margin: 0 !important;
    padding: 7px 12px !important;
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
    flex: 0 0 112px !important;
    transform: none !important;
}

body .adsterra-game-bottom .adsterra-zone {
    height: 90px !important;
    min-height: 90px !important;
    max-height: 90px !important;
}

body .map-stage > .adsterra-box,
body #map > .adsterra-box {
    display: none !important;
}

@media (max-width: 900px) {
    body .adsterra-game-sidebar,
    body .ad-game-sidebar.adsterra-box,
    body .ad-game-sidebar-compact.adsterra-box {
        display: none !important;
    }

    body .adsterra-game-bottom,
    body .ad-game-bottom.adsterra-box {
        height: 76px !important;
        min-height: 76px !important;
        max-height: 76px !important;
        padding: 6px 8px !important;
        flex-basis: 76px !important;
    }

    body .adsterra-game-bottom .adsterra-label {
        display: none !important;
    }

    body .adsterra-game-bottom .adsterra-zone {
        height: 64px !important;
        min-height: 64px !important;
        max-height: 64px !important;
    }

    body .adsterra-lobby-top {
        height: 92px !important;
        min-height: 92px !important;
        max-height: 92px !important;
        margin: 12px auto !important;
        border-radius: 14px !important;
    }

    body .adsterra-lobby-top .adsterra-zone {
        height: 66px !important;
        min-height: 66px !important;
        max-height: 66px !important;
    }
}

/* GeoGames 1.0.27: Adsterra exact-size sponsor slots.
   The previous AdSense-era containers were wider/taller than the real creative.
   These rules make the visible box match the configured banner size. */
body .gg-sponsor-slot,
body .adsterra-box {
    box-sizing: border-box !important;
    position: relative !important;
    display: block !important;
    width: var(--sponsor-width, 728px) !important;
    height: var(--sponsor-height, 90px) !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: calc(100vw - 24px) !important;
    max-height: none !important;
    padding: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: visible !important;
    color: #dbeafe !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    transform: none !important;
}

body .gg-sponsor-label,
body .adsterra-label {
    position: absolute !important;
    left: 8px !important;
    top: -18px !important;
    z-index: 2 !important;
    display: inline-flex !important;
    align-items: center !important;
    height: 16px !important;
    padding: 0 7px !important;
    margin: 0 !important;
    border-radius: 999px !important;
    color: rgba(226, 232, 240, 0.72) !important;
    background: rgba(15, 23, 42, 0.72) !important;
    border: 1px solid rgba(148, 163, 184, 0.18) !important;
    font-size: 9px !important;
    line-height: 1 !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.09em !important;
    pointer-events: none !important;
    user-select: none !important;
}

body .gg-sponsor-frame,
body .adsterra-zone {
    box-sizing: border-box !important;
    position: relative !important;
    display: block !important;
    width: var(--sponsor-width, 728px) !important;
    height: var(--sponsor-height, 90px) !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: 100% !important;
    padding: 0 !important;
    margin: 0 auto !important;
    overflow: hidden !important;
    border-radius: 10px !important;
    background: rgba(2, 6, 23, 0.24) !important;
    border: 1px solid rgba(148, 163, 184, 0.18) !important;
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.18) !important;
}

body .gg-sponsor-frame iframe,
body .gg-sponsor-frame ins,
body .gg-sponsor-frame div,
body .adsterra-zone iframe,
body .adsterra-zone ins,
body .adsterra-zone div {
    max-width: 100% !important;
}

body .adsterra-lobby-top,
body .gg-sponsor-lobby-top,
body .ad-lobby-top.adsterra-box {
    width: 728px !important;
    height: 90px !important;
    min-height: 90px !important;
    max-height: 90px !important;
    margin-top: 28px !important;
    margin-bottom: 22px !important;
    padding: 0 !important;
    border-radius: 10px !important;
}

body .adsterra-game-sidebar,
body .gg-sponsor-game-sidebar,
body .ad-game-sidebar.adsterra-box,
body .ad-game-sidebar-compact.adsterra-box {
    width: 300px !important;
    height: 250px !important;
    min-height: 250px !important;
    max-height: 250px !important;
    margin: 24px auto 16px !important;
    padding: 0 !important;
    flex: 0 0 250px !important;
    border-radius: 10px !important;
}

body .adsterra-game-bottom,
body .gg-sponsor-game-bottom,
body .ad-game-bottom.adsterra-box {
    position: static !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    z-index: 1 !important;
    width: 728px !important;
    height: 90px !important;
    min-height: 90px !important;
    max-height: 90px !important;
    margin: 22px auto 8px !important;
    padding: 0 !important;
    flex: 0 0 90px !important;
    border-radius: 10px !important;
}

body .gg-sponsor-global-footer {
    width: 728px !important;
    height: 90px !important;
    min-height: 90px !important;
    max-height: 90px !important;
    margin: 28px auto 18px !important;
    padding: 0 !important;
}

body .map-stage > .gg-sponsor-slot,
body .map-stage > .adsterra-box,
body #map > .gg-sponsor-slot,
body #map > .adsterra-box {
    display: none !important;
}

@media (max-width: 760px) {
    body .gg-sponsor-slot,
    body .adsterra-box {
        max-width: calc(100vw - 20px) !important;
    }

    body .adsterra-lobby-top,
    body .gg-sponsor-lobby-top,
    body .ad-lobby-top.adsterra-box,
    body .adsterra-game-bottom,
    body .gg-sponsor-game-bottom,
    body .ad-game-bottom.adsterra-box,
    body .gg-sponsor-global-footer {
        display: none !important;
    }

    body .adsterra-game-sidebar,
    body .gg-sponsor-game-sidebar,
    body .ad-game-sidebar.adsterra-box,
    body .ad-game-sidebar-compact.adsterra-box {
        display: none !important;
    }
}

/* GeoGames 1.0.28: victory badge polish + host moderation moved below player name. */
.player-row {
    align-items: flex-start;
}

.player-row-main {
    min-width: 0;
    width: 100%;
}

.player-row-header {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-width: 0;
    gap: 8px;
}

.player-row-header strong.player-name-with-wins,
.player-name-with-wins.current-player-name {
    width: 100%;
    max-width: 100%;
}

.player-name-with-wins {
    display: inline-grid;
    grid-template-columns: minmax(0, auto) auto auto;
    align-items: center;
    justify-content: start;
    gap: 6px;
    min-width: 0;
    max-width: 100%;
    vertical-align: middle;
}

.player-name-text {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.player-host-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 18px;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .035em;
    text-transform: uppercase;
    color: #dbeafe;
    background: rgba(59, 130, 246, .18);
    border: 1px solid rgba(147, 197, 253, .30);
    flex: 0 0 auto;
}

.victory-badge {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    flex: 0 0 auto;
    min-width: 34px;
    min-height: 22px;
    padding: 2px 8px 2px 5px;
    border-radius: 999px;
    font-size: 11px;
    line-height: 1;
    font-weight: 950;
    letter-spacing: .01em;
    border: 1px solid rgba(255, 255, 255, .26);
    box-shadow: 0 0 0 1px rgba(15, 23, 42, .44), 0 8px 17px rgba(0, 0, 0, .26);
    white-space: nowrap;
    transform: translateY(-1px);
}

.victory-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    line-height: 1;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, .28));
}

.victory-count {
    min-width: 10px;
    text-align: center;
}

.victory-gold {
    color: #321d00;
    background: linear-gradient(135deg, #fff8bf 0%, #facc15 46%, #f59e0b 72%, #92400e 100%);
    border-color: rgba(253, 224, 71, .96);
    box-shadow: 0 0 0 1px rgba(113, 63, 18, .30), 0 0 18px rgba(250, 204, 21, .43), 0 8px 17px rgba(0, 0, 0, .28);
}

.victory-silver {
    color: #152033;
    background: linear-gradient(135deg, #ffffff 0%, #e2e8f0 44%, #94a3b8 78%, #64748b 100%);
    border-color: rgba(241, 245, 249, .92);
    box-shadow: 0 0 0 1px rgba(51, 65, 85, .22), 0 0 16px rgba(226, 232, 240, .34), 0 8px 17px rgba(0, 0, 0, .24);
}

.victory-bronze {
    color: #291204;
    background: linear-gradient(135deg, #ffedd5 0%, #fb923c 44%, #b45309 76%, #78350f 100%);
    border-color: rgba(251, 146, 60, .92);
    box-shadow: 0 0 0 1px rgba(120, 53, 15, .25), 0 0 16px rgba(251, 146, 60, .34), 0 8px 17px rgba(0, 0, 0, .24);
}

.victory-diamond {
    color: #042f3d;
    background: linear-gradient(135deg, #ecfeff 0%, #a5f3fc 36%, #22d3ee 70%, #38bdf8 100%);
    border-color: rgba(125, 211, 252, .92);
    box-shadow: 0 0 0 1px rgba(14, 116, 144, .25), 0 0 16px rgba(34, 211, 238, .36), 0 8px 17px rgba(0, 0, 0, .24);
}

.victory-team {
    color: #082f49;
    background: linear-gradient(135deg, #e0f2fe 0%, #7dd3fc 42%, #0284c7 78%, #075985 100%);
    border-color: rgba(125, 211, 252, .94);
    box-shadow: 0 0 0 1px rgba(3, 105, 161, .28), 0 0 16px rgba(56, 189, 248, .34), 0 8px 17px rgba(0, 0, 0, .24);
}

.player-actions-bottom {
    display: flex;
    width: 100%;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 9px;
    padding-top: 8px;
    border-top: 1px solid rgba(148, 163, 184, .13);
}

.player-actions-bottom .mini-danger {
    min-height: 30px;
    padding: 6px 10px;
    border-radius: 10px;
}

@media (max-width: 520px) {
    .player-name-with-wins {
        grid-template-columns: minmax(0, auto) auto;
        gap: 5px;
    }

    .player-host-chip {
        grid-column: 1 / -1;
        justify-self: start;
    }

    .victory-badge {
        min-width: 30px;
        min-height: 20px;
        padding: 2px 7px 2px 4px;
        font-size: 10px;
    }

    .victory-icon {
        font-size: 12px;
    }

    .player-actions-bottom {
        justify-content: stretch;
    }

    .player-actions-bottom .mini-danger {
        flex: 1 1 110px;
    }
}

/* GeoGames 1.0.29: banner-only Adsterra sandbox.
   Ads must remain inside fixed banner slots and never cover the map/game. */
body .gg-sponsor-slot[data-gg-ad-mode="sandbox"],
body .adsterra-box[data-gg-ad-mode="sandbox"] {
    overflow: visible !important;
    isolation: isolate !important;
}

body .gg-sponsor-frame .gg-adsterra-sandbox,
body .adsterra-zone .gg-adsterra-sandbox {
    display: block !important;
    width: var(--sponsor-width, 728px) !important;
    height: var(--sponsor-height, 90px) !important;
    min-width: var(--sponsor-width, 728px) !important;
    min-height: var(--sponsor-height, 90px) !important;
    max-width: 100% !important;
    max-height: 100% !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 auto !important;
    overflow: hidden !important;
    background: transparent !important;
}

body > iframe[src*="effectivecpmnetwork.com"],
body > iframe[src*="pl29487539.effectivecpmnetwork.com"] {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    pointer-events: none !important;
    visibility: hidden !important;
}

/* GeoGames 1.0.32: unified mode/objective and preparation players. */
.mode-box-unified {
    display: grid;
    gap: 8px;
}

.mode-box-title {
    display: grid;
    gap: 3px;
}

.mode-box-title strong {
    color: var(--text);
    font-size: 15px;
    line-height: 1.15;
}

.mode-box-title span {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.25;
}

.mode-box-objective {
    margin: 2px 0 0;
    padding: 9px 10px;
    border-radius: 13px;
    color: #dbeafe;
    background: linear-gradient(135deg, rgba(37, 99, 235, .20), rgba(124, 58, 237, .18));
    border: 1px solid rgba(147, 197, 253, .18);
    font-size: 12px;
    line-height: 1.35;
}

.mode-box-objective strong {
    color: #bfdbfe;
}

.players-panel-merged {
    display: none !important;
}

.setup-summary-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.setup-summary-head h3 {
    margin: 0;
}

.setup-summary-head .ready-count {
    margin: 0;
    white-space: nowrap;
}

.setup-player-row {
    align-items: flex-start;
}

.setup-player-row .summary-color-dot {
    width: 12px;
    height: 12px;
    margin: 4px 0 0;
    background: var(--team-color, #8b5cf6);
    border: 2px solid rgba(255, 255, 255, .18);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--team-color, #8b5cf6) 28%, transparent);
}

.setup-player-row .summary-color-dot.online {
    background: var(--success);
    border-color: color-mix(in srgb, var(--team-color, #8b5cf6) 60%, rgba(255, 255, 255, .35));
    box-shadow: 0 0 0 3px rgba(34, 197, 94, .16), 0 0 16px color-mix(in srgb, var(--team-color, #8b5cf6) 20%, transparent);
}

.setup-player-row .summary-color-dot.offline {
    background: #64748b;
    border-color: rgba(148, 163, 184, .28);
    box-shadow: 0 0 0 3px rgba(100, 116, 139, .14);
}

.setup-player-info {
    min-width: 0;
    width: 100%;
}

.setup-player-info > strong.player-name-with-wins {
    max-width: 100%;
}

.setup-player-info small {
    margin-top: 4px;
}

.setup-player-actions {
    justify-content: flex-end;
}

@media (max-width: 520px) {
    .setup-summary-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .setup-player-actions {
        justify-content: stretch;
    }
}

/* GeoGames 1.0.33 waiting-room unified setup */
.maps-loading-overlay.maps-loading-overlay-waiting {
    pointer-events: auto;
    overflow: auto;
    padding: 18px;
    align-items: center;
}

.maps-loading-overlay-waiting .maps-loading-card {
    width: min(920px, calc(100vw - 36px));
    max-height: min(840px, calc(100vh - 36px));
    overflow: auto;
    text-align: left;
    padding: 22px;
}

.maps-loading-overlay-waiting .maps-loading-globe {
    width: 44px;
    height: 44px;
    margin-bottom: 12px;
}

.maps-loading-overlay-waiting .maps-loading-card h2 {
    text-align: center;
    margin-bottom: 14px;
}

.maps-loading-text {
    display: block;
    margin: 0;
    color: #cbd5e1;
}

.waiting-room-panel {
    display: grid;
    gap: 12px;
}

.waiting-room-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(240px, .65fr);
    gap: 12px;
}

.waiting-room-card {
    border: 1px solid rgba(148, 163, 184, .24);
    background: rgba(15, 23, 42, .58);
    border-radius: 18px;
    padding: 14px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
}

.waiting-room-card-main h3 {
    margin: 4px 0 8px;
    font-size: clamp(1.1rem, 2vw, 1.45rem);
}

.waiting-room-card-main p,
.waiting-room-ok,
.waiting-room-warning,
.waiting-room-note {
    margin: 0;
    line-height: 1.45;
}

.waiting-room-kicker {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
    color: #93c5fd;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.waiting-room-place {
    margin-top: 12px;
    padding: 9px 10px;
    border-radius: 13px;
    background: rgba(2, 6, 23, .34);
    color: #e2e8f0;
}

.waiting-room-field {
    display: grid;
    gap: 6px;
    margin-bottom: 10px;
    color: #dbeafe;
    font-size: .82rem;
    font-weight: 700;
}

.waiting-room-field select {
    width: 100%;
    border: 1px solid rgba(148, 163, 184, .35);
    border-radius: 12px;
    background: rgba(15, 23, 42, .95);
    color: #f8fafc;
    padding: 9px 10px;
}

.waiting-room-ready-btn {
    width: 100%;
    min-height: 40px;
    border: 0;
    border-radius: 999px;
    color: #02111f;
    font-weight: 900;
    cursor: pointer;
    background: linear-gradient(135deg, #22c55e, #67e8f9);
    box-shadow: 0 12px 28px rgba(34, 197, 94, .20);
}

.waiting-room-ready-btn.secondary {
    color: #e2e8f0;
    background: rgba(148, 163, 184, .16);
    border: 1px solid rgba(148, 163, 184, .30);
    box-shadow: none;
}

.waiting-settings-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.waiting-settings-list span {
    padding: 8px 9px;
    border-radius: 12px;
    background: rgba(2, 6, 23, .30);
    color: #cbd5e1;
    line-height: 1.35;
}

.waiting-settings-list strong {
    color: #f8fafc;
}

.waiting-room-players-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.waiting-room-ok {
    color: #bbf7d0;
}

.waiting-room-warning {
    color: #fecaca;
}

.waiting-player-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.waiting-player-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    padding: 7px 10px;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, .22);
    background: rgba(2, 6, 23, .34);
    color: #e2e8f0;
    font-size: .82rem;
    white-space: nowrap;
}

.waiting-player-pill.ready {
    border-color: rgba(34, 197, 94, .38);
}

.waiting-player-pill.pending {
    opacity: .82;
}

.setup-room-options.autosave-enabled button[type="submit"] {
    display: none !important;
}

@media (max-width: 760px) {
    .maps-loading-overlay.maps-loading-overlay-waiting {
        align-items: start;
        padding: 12px;
    }
    .maps-loading-overlay-waiting .maps-loading-card {
        width: min(100%, calc(100vw - 24px));
        max-height: calc(100vh - 24px);
        padding: 16px;
        border-radius: 18px;
    }
    .waiting-room-grid,
    .waiting-settings-list {
        grid-template-columns: 1fr;
    }
    .waiting-player-pill {
        white-space: normal;
    }
}

/* GeoGames 1.0.35 waiting host editable settings */
.mode-box-objective-block { display: grid; gap: 8px; }
.mode-objective-settings { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.mode-objective-settings span { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; padding: 5px 8px; border-radius: 999px; border: 1px solid rgba(148, 163, 184, .22); background: rgba(15, 23, 42, .42); color: #cbd5e1; font-size: .76rem; line-height: 1.25; }
.mode-objective-settings strong { color: #f8fafc; }
.waiting-room-card-main .mode-box-objective-block { margin-top: 8px; }
.waiting-host-settings-editor { display: grid; gap: 12px; }
.waiting-host-fields-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.waiting-room-field-wide { grid-column: 1 / -1; }
.waiting-room-field input, .waiting-room-field select { width: 100%; min-height: 38px; border: 1px solid rgba(148, 163, 184, .35); border-radius: 12px; background: rgba(15, 23, 42, .95); color: #f8fafc; padding: 8px 10px; outline: none; }
.waiting-room-field input:focus, .waiting-room-field select:focus { border-color: rgba(96, 165, 250, .78); box-shadow: 0 0 0 3px rgba(96, 165, 250, .18); }
.waiting-room-field-check { grid-template-columns: 1fr auto; grid-auto-flow: column; align-items: center; min-height: 38px; padding: 8px 10px; border-radius: 12px; background: rgba(15, 23, 42, .45); border: 1px solid rgba(148, 163, 184, .24); }
.waiting-room-field-check input { width: 20px; min-height: 20px; padding: 0; accent-color: #38bdf8; }
.waiting-room-autosave-note { padding: 8px 10px; border-radius: 12px; background: rgba(14, 165, 233, .12); border: 1px solid rgba(56, 189, 248, .22); color: #bae6fd; }
.setup-room-options.central-edit-source { display: none !important; }
@media (max-width: 760px) { .waiting-host-fields-grid { grid-template-columns: 1fr; } }

/* GeoGames 1.0.36 waiting-room usability */
.maps-loading-overlay-waiting .maps-loading-card,
.maps-loading-overlay-waiting .maps-loading-box,
.maps-loading-overlay-waiting .modal-card {
  max-height: min(88vh, 920px);
  overflow: auto;
  overscroll-behavior: contain;
}
.waiting-room-panel { gap: 12px; }
.waiting-host-settings-editor { gap: 10px; }
.waiting-host-fields-grid { gap: 8px; }
.waiting-room-field { min-width: 0; }
.waiting-room-field input,
.waiting-room-field select {
  min-height: 36px;
  font-size: .92rem;
}
.waiting-room-autosave-note { display: none !important; }
.waiting-settings-strip,
.setup-settings-strip,
.waiting-settings-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0;
}
.waiting-settings-strip span,
.setup-settings-strip span,
.waiting-settings-list span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  padding: 5px 8px;
  border-radius: 999px;
  border: 1px solid rgba(148, 163, 184, .22);
  background: rgba(15, 23, 42, .42);
  color: #cbd5e1;
  font-size: .74rem;
  line-height: 1.22;
}
.waiting-settings-strip strong,
.setup-settings-strip strong,
.waiting-settings-list strong { color: #f8fafc; }
.waiting-player-card-list {
  display: grid;
  gap: 8px;
}
.waiting-player-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  padding: 8px 10px;
  border-radius: 14px;
  border: 1px solid rgba(148, 163, 184, .18);
  background: linear-gradient(135deg, rgba(15, 23, 42, .58), rgba(30, 41, 59, .34));
  box-shadow: inset 3px 0 0 var(--team-color, rgba(148, 163, 184, .55));
}
.waiting-player-card-main { min-width: 0; }
.waiting-player-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}
.waiting-player-card-head strong { min-width: 0; overflow-wrap: anywhere; }
.waiting-player-badges { display: inline-flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; }
.waiting-player-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  border-radius: 999px;
  border: 1px solid rgba(148, 163, 184, .24);
  background: rgba(15, 23, 42, .5);
  color: #cbd5e1;
  font-size: .68rem;
  line-height: 1.2;
  white-space: nowrap;
}
.waiting-player-badge.host { color: #fde68a; border-color: rgba(250, 204, 21, .32); background: rgba(250, 204, 21, .12); }
.waiting-player-badge.ready { color: #bbf7d0; border-color: rgba(34, 197, 94, .3); background: rgba(34, 197, 94, .12); }
.waiting-player-badge.pending { color: #fecaca; border-color: rgba(248, 113, 113, .28); background: rgba(248, 113, 113, .1); }
@media (min-width: 980px) {
  .waiting-host-fields-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .waiting-room-field-wide { grid-column: span 2; }
}
@media (max-width: 620px) {
  .waiting-player-card-head { align-items: flex-start; flex-direction: column; }
  .waiting-player-badges { justify-content: flex-start; }
}

/* GeoGames 1.0.37 waiting-room compact controls */
.waiting-host-fields-grid {
  display: flex !important;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px 10px !important;
}
.waiting-room-field-wide { grid-column: auto !important; }
.waiting-room-field {
  flex: 0 1 auto;
}
.waiting-room-field-mode {
  flex-basis: 180px;
  max-width: 230px;
}
.waiting-room-field-preset {
  flex: 1 1 240px;
  min-width: 210px;
}
.waiting-room-field-grow {
  flex: 1 1 220px;
  min-width: 190px;
}
.waiting-room-field-compact {
  flex: 0 0 126px;
  max-width: 136px;
}
.waiting-room-field-tiny {
  flex: 0 0 92px;
  max-width: 100px;
}
.waiting-room-field-compact input,
.waiting-room-field-tiny input,
.waiting-room-time-minutes input {
  width: 100%;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.waiting-room-time-cluster {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: flex-end;
  gap: 8px;
  width: auto;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.waiting-room-time-minutes {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 74px;
  min-width: 74px;
  color: rgba(226, 232, 240, .78);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .01em;
}
.waiting-room-time-enabled {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 7px 10px;
  border-radius: 12px;
  border: 1px solid rgba(148, 163, 184, .22);
  background: rgba(15, 23, 42, .42);
  color: rgba(226, 232, 240, .86);
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.1;
  white-space: nowrap;
  cursor: pointer;
}
.waiting-room-time-enabled input {
  width: 16px;
  height: 16px;
  margin: 0;
  flex: 0 0 auto;
}
.waiting-room-field-fit {
  flex: 0 1 auto;
  width: auto;
  max-width: max-content;
}
.waiting-room-field-fit select {
  width: auto;
  min-width: 135px;
  max-width: 205px;
}
.waiting-room-overlay-field {
  max-width: 214px;
}
.waiting-room-ready-btn.is-loading,
.waiting-room-ready-btn:disabled {
  opacity: .72;
  cursor: wait;
  filter: saturate(.85);
}
@media (max-width: 720px) {
  .waiting-room-field-mode,
  .waiting-room-field-preset,
  .waiting-room-field-grow,
  .waiting-room-field-compact,
  .waiting-room-field-tiny,
  .waiting-room-field-fit,
  .waiting-room-overlay-field {
    flex: 1 1 100%;
    max-width: none;
  }
  .waiting-room-field-fit select {
    width: 100%;
    max-width: none;
  }
  .waiting-room-time-cluster {
    flex: 1 1 100%;
  }
}

/* GeoGames 1.0.38 waiting-room no duplicate settings */
.waiting-host-settings-editor {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.waiting-host-time-row {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 8px;
  width: 100%;
  margin-top: -2px;
}
.waiting-host-time-row .waiting-room-time-cluster {
  flex: 0 0 auto;
  width: auto;
  max-width: max-content;
}
.waiting-room-players > .waiting-settings-strip,
.setup-summary-head + .setup-settings-strip {
  display: none !important;
}
@media (max-width: 720px) {
  .waiting-host-time-row,
  .waiting-host-time-row .waiting-room-time-cluster {
    width: 100%;
    max-width: none;
  }
}

/* GeoGames 1.0.39 waiting-room unit controls */
.waiting-room-field-has-unit {
  gap: 5px;
}
.waiting-room-number-unit {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: 100%;
  min-width: 0;
}
.waiting-room-number-unit input[type="number"] {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 72px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.waiting-room-field-tiny .waiting-room-number-unit input[type="number"] {
  max-width: 58px;
}
.waiting-room-time-minutes .waiting-room-number-unit input[type="number"] {
  max-width: 52px;
}
.waiting-room-number-unit-label {
  flex: 0 0 auto;
  min-width: 20px;
  padding: 0 2px;
  color: rgba(226, 232, 240, .72);
  font-size: .78rem;
  font-weight: 800;
  line-height: 1;
  text-align: left;
  letter-spacing: .01em;
}
@media (max-width: 720px) {
  .waiting-room-number-unit input[type="number"] {
    max-width: none;
  }
}

/* GeoGames 1.0.41 waiting-player status dot colors
   Gris = ausente/offline, ámbar = presente/online, verde = listo. */
.summary-color-dot.status-absent,
.summary-color-dot.offline,
.dot.status-absent,
.dot.offline {
  background: #64748b !important;
  box-shadow: 0 0 0 4px rgba(100, 116, 139, .14) !important;
}
.summary-color-dot.status-present,
.summary-color-dot.online:not(.status-ready),
.dot.status-present,
.dot.online:not(.status-ready) {
  background: #f59e0b !important;
  border-color: rgba(251, 191, 36, .58) !important;
  box-shadow: 0 0 0 4px rgba(245, 158, 11, .18), 0 0 12px rgba(245, 158, 11, .24) !important;
}
.summary-color-dot.status-ready,
.summary-color-dot.ready,
.dot.status-ready,
.dot.ready {
  background: #22c55e !important;
  border-color: rgba(134, 239, 172, .68) !important;
  box-shadow: 0 0 0 4px rgba(34, 197, 94, .20), 0 0 14px rgba(34, 197, 94, .38) !important;
  transform: scale(1.08);
}

/* GeoGames 1.0.46 status dot v2
   Punto de estado nuevo y aislado del color de equipo.
   Gris = ausente/offline, ámbar = presente/pendiente, verde = listo. */
.gg-status-dot-v2 {
  width: 12px !important;
  height: 12px !important;
  min-width: 12px !important;
  max-width: 12px !important;
  flex: 0 0 12px !important;
  display: inline-block !important;
  border-radius: 999px !important;
  border-width: 2px !important;
  border-style: solid !important;
  box-sizing: border-box !important;
  align-self: flex-start !important;
  margin-top: .34rem !important;
  position: relative !important;
  z-index: 3 !important;
  opacity: 1 !important;
  filter: none !important;
  background-image: none !important;
  transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease !important;
}

.gg-status-dot-v2::before,
.gg-status-dot-v2::after {
  content: none !important;
  display: none !important;
}

.gg-status-dot-v2--absent,
.gg-status-dot-v2[data-presence-status="absent"] {
  background: #64748b !important;
  background-color: #64748b !important;
  border-color: rgba(148, 163, 184, .6) !important;
  box-shadow: 0 0 0 4px rgba(100, 116, 139, .14) !important;
  transform: none !important;
}

.gg-status-dot-v2--present,
.gg-status-dot-v2[data-presence-status="present"] {
  background: #f59e0b !important;
  background-color: #f59e0b !important;
  border-color: rgba(251, 191, 36, .75) !important;
  box-shadow: 0 0 0 4px rgba(245, 158, 11, .18), 0 0 12px rgba(245, 158, 11, .28) !important;
  transform: none !important;
}

.gg-status-dot-v2--ready,
.gg-status-dot-v2[data-presence-status="ready"],
.gg-status-dot-v2[data-ready="1"] {
  background: #22c55e !important;
  background-color: #22c55e !important;
  border-color: rgba(134, 239, 172, .9) !important;
  box-shadow: 0 0 0 4px rgba(34, 197, 94, .20), 0 0 14px rgba(34, 197, 94, .45) !important;
  transform: scale(1.08) !important;
}

/* GeoGames 1.0.47 pre-game countdown start */
.countdown-overlay[data-pregame="1"] {
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%) scale(1);
    min-width: min(330px, 74vw);
    padding: 24px 30px 26px;
    border-radius: 30px;
    display: grid;
    place-items: center;
    gap: 8px;
    text-align: center;
    z-index: 32;
    font-size: unset;
    letter-spacing: normal;
    line-height: 1;
    background:
        radial-gradient(circle at 50% 0%, rgba(59, 130, 246, .98), rgba(15, 23, 42, .94) 58%, rgba(2, 6, 23, .94));
    border: 1px solid rgba(191, 219, 254, .48);
    box-shadow:
        0 28px 90px rgba(0,0,0,.62),
        0 0 0 1px rgba(255,255,255,.08),
        0 0 34px rgba(59, 130, 246, .38);
    animation: geogames-pregame-enter .18s ease-out both;
}
.countdown-overlay[data-pregame="1"]::before {
    content: none !important;
    display: none !important;
}
.countdown-overlay[data-pregame="1"][data-critical="1"] {
    animation: geogames-pregame-pulse .38s ease-in-out infinite alternate;
}
.pregame-countdown-label {
    color: #bfdbfe;
    font-size: clamp(15px, 2.6vw, 24px);
    font-weight: 950;
    letter-spacing: .18em;
    text-transform: uppercase;
    text-shadow: 0 2px 12px rgba(0,0,0,.58);
}
.pregame-countdown-number {
    display: block;
    color: #ffffff;
    font-size: clamp(74px, 17vw, 166px);
    font-weight: 1000;
    letter-spacing: -.08em;
    line-height: .86;
    text-shadow:
        0 4px 18px rgba(0,0,0,.72),
        0 0 34px rgba(147, 197, 253, .42);
}
.countdown-overlay[data-pregame="1"][data-critical="1"] .pregame-countdown-number {
    color: #bbf7d0;
    text-shadow:
        0 4px 18px rgba(0,0,0,.72),
        0 0 38px rgba(34, 197, 94, .58);
}
@keyframes geogames-pregame-enter {
    from { opacity: 0; transform: translate(-50%, -50%) scale(.86); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@keyframes geogames-pregame-pulse {
    from { transform: translate(-50%, -50%) scale(1); }
    to { transform: translate(-50%, -50%) scale(1.055); }
}
/* GeoGames 1.0.47 pre-game countdown end */


/* GeoGames 1.0.61 countdown blur only */
.map-stage.pregame-blur-active > :not(#countdownOverlay) {
    filter: blur(12px);
    transition: filter 160ms ease;
    pointer-events: none !important;
    user-select: none;
}

#countdownOverlay.countdown-overlay[data-pregame="1"] {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

/* GeoGames 1.0.62: result buttons spacing and diamond summary. */
#startGameBtn,
#resetRoomBtn,
#abandonGameBtn,
#roomExitBtn,
#statusSummaryBtn {
    margin-top: 10px;
}

#resetRoomBtn,
#statusSummaryBtn {
    padding-left: 18px;
    padding-right: 18px;
}

#resetRoomBtn:not(.hidden),
#statusSummaryBtn:not(.hidden) {
    display: block;
    width: 100%;
}

button#resetRoomBtn.reset-button {
    letter-spacing: .01em;
}

button#statusSummaryBtn.result-diamond-button,
button#statusSummaryBtn.secondary.result-diamond-button {
    color: #052e3f;
    background: linear-gradient(135deg, #ecfeff 0%, #a5f3fc 32%, #67e8f9 56%, #22d3ee 76%, #38bdf8 100%);
    border: 1px solid rgba(125, 211, 252, .92);
    box-shadow: 0 0 18px rgba(34, 211, 238, .28), 0 10px 24px rgba(14, 165, 233, .22);
    text-shadow: 0 1px 0 rgba(255, 255, 255, .32);
}

button#statusSummaryBtn.result-diamond-button:hover:not(:disabled) {
    transform: translateY(-1px);
    filter: brightness(1.06);
}

button#statusSummaryBtn.result-diamond-button:disabled {
    opacity: .72;
}
/* End GeoGames 1.0.62 result buttons */



/* GeoGames 1.0.66 patch: meetup separation controls side-by-side */
.waiting-host-separation-grid .waiting-room-field-compact {
  flex: 0 1 148px;
  max-width: 160px;
}
@media (max-width: 720px) {
  .waiting-host-separation-grid .waiting-room-field-compact {
    flex: 1 1 calc(50% - 6px);
    max-width: none;
  }
}
@media (max-width: 430px) {
  .waiting-host-separation-grid .waiting-room-field-compact {
    flex: 1 1 100%;
  }
}

/* GeoGames 1.0.66 patch: unified mode settings layout */
.waiting-host-common-grid,
.waiting-host-separation-grid,
.waiting-host-mode-grid {
  align-items: flex-end;
}
.waiting-host-separation-grid {
  padding-top: 2px;
}
.waiting-room-field-separation-min,
.waiting-room-field-separation-max {
  order: 0;
}
.waiting-host-mode-grid .waiting-room-field-tiny,
.waiting-host-mode-grid .waiting-room-field-compact,
.waiting-host-separation-grid .waiting-room-field-compact {
  flex: 0 1 148px;
  max-width: 162px;
}
.waiting-host-mode-grid .waiting-room-field-grow,
.waiting-host-separation-grid .waiting-room-field-grow {
  flex: 1 1 260px;
  min-width: 220px;
}
@media (max-width: 720px) {
  .waiting-host-mode-grid .waiting-room-field-tiny,
  .waiting-host-mode-grid .waiting-room-field-compact,
  .waiting-host-separation-grid .waiting-room-field-compact,
  .waiting-host-mode-grid .waiting-room-field-grow,
  .waiting-host-separation-grid .waiting-room-field-grow {
    flex: 1 1 calc(50% - 6px);
    max-width: none;
    min-width: 0;
  }
}
@media (max-width: 430px) {
  .waiting-host-mode-grid .waiting-room-field-tiny,
  .waiting-host-mode-grid .waiting-room-field-compact,
  .waiting-host-separation-grid .waiting-room-field-compact,
  .waiting-host-mode-grid .waiting-room-field-grow,
  .waiting-host-separation-grid .waiting-room-field-grow {
    flex: 1 1 100%;
  }
}

/* GeoGames 1.0.66 patch: Solo Rally mode refresh + waiting players scroll */
.maps-loading-overlay-waiting .maps-loading-card,
.maps-loading-overlay-waiting .maps-loading-box,
.maps-loading-overlay-waiting .modal-card {
  width: min(1080px, calc(100vw - 36px));
}

.waiting-room-grid-main {
  grid-template-columns: minmax(0, 1.45fr) minmax(290px, .7fr);
}

.waiting-player-card-list {
  max-height: calc((64px * 3) + 18px);
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 5px;
  margin-right: -3px;
  scrollbar-gutter: stable;
}

.waiting-player-card-list .waiting-player-card {
  min-height: 58px;
}

@media (max-width: 760px) {
  .maps-loading-overlay-waiting .maps-loading-card,
  .maps-loading-overlay-waiting .maps-loading-box,
  .maps-loading-overlay-waiting .modal-card {
    width: min(100%, calc(100vw - 24px));
  }

  .waiting-room-grid-main {
    grid-template-columns: 1fr;
  }

  .waiting-player-card-list {
    max-height: calc((72px * 3) + 18px);
  }
}

/* GeoGames 1.0.66 patch: waiting room team selector + numeric sizing */
.maps-loading-overlay-waiting .maps-loading-card,
.maps-loading-overlay-waiting .maps-loading-box,
.maps-loading-overlay-waiting .modal-card {
  width: min(1120px, calc(100vw - 32px));
  max-height: min(96vh, 1100px);
}

.waiting-host-mode-grid .waiting-room-field-tiny,
.waiting-host-mode-grid .waiting-room-field-compact,
.waiting-host-separation-grid .waiting-room-field-compact {
  flex: 0 0 126px;
  max-width: 136px;
}

.waiting-host-mode-grid .waiting-room-field-tiny input[type="number"],
.waiting-host-mode-grid .waiting-room-field-compact input[type="number"],
.waiting-host-separation-grid .waiting-room-field-compact input[type="number"],
.waiting-room-number-unit input[type="number"] {
  max-width: 64px;
  min-width: 54px;
}

.waiting-player-card-list {
  min-height: calc((64px * 2) + 10px);
  max-height: calc((64px * 3) + 18px);
}

@media (max-width: 760px) {
  .maps-loading-overlay-waiting .maps-loading-card,
  .maps-loading-overlay-waiting .maps-loading-box,
  .maps-loading-overlay-waiting .modal-card {
    width: min(100%, calc(100vw - 20px));
    max-height: calc(100vh - 20px);
  }

  .waiting-player-card-list {
    min-height: calc((72px * 2) + 10px);
    max-height: calc((72px * 3) + 18px);
  }
}

/* GeoGames 1.0.66 patch: waiting room player cards as compact tiles */
.waiting-room-players .waiting-player-card-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  align-items: stretch;
  gap: 10px;
  min-height: calc((104px * 2) + 10px);
  max-height: calc((104px * 3) + 24px);
  overflow-y: auto;
  overflow-x: hidden;
  padding: 2px 8px 2px 2px;
  margin-right: -5px;
  scrollbar-gutter: stable;
}

.waiting-room-players .waiting-player-card-list .waiting-player-card {
  min-height: 98px;
  height: 100%;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-content: stretch;
  gap: 8px;
  padding: 10px;
  border-radius: 18px;
  border-color: rgba(148, 163, 184, .24);
  background:
    linear-gradient(180deg, rgba(15, 23, 42, .76), rgba(15, 23, 42, .52)),
    radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--team-color, #64748b) 28%, transparent), transparent 46%);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.03),
    inset 4px 0 0 var(--team-color, rgba(148, 163, 184, .55));
}

.waiting-room-players .waiting-player-card-main {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 7px;
}

.waiting-room-players .waiting-player-card-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 8px;
}

.waiting-room-players .waiting-player-card-head strong {
  line-height: 1.18;
  overflow-wrap: anywhere;
}

.waiting-room-players .waiting-player-card small {
  display: block;
  color: #cbd5e1;
  line-height: 1.25;
}

.waiting-room-players .waiting-player-badges {
  justify-content: flex-end;
  max-width: 96px;
}

.waiting-room-players .waiting-player-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: auto;
}

.waiting-room-players .waiting-player-actions .mini-danger {
  flex: 1 1 72px;
  justify-content: center;
  min-height: 28px;
  padding: 5px 8px;
}

@media (max-width: 760px) {
  .waiting-room-players .waiting-player-card-list {
    grid-template-columns: 1fr;
    min-height: calc((104px * 2) + 10px);
    max-height: calc((104px * 3) + 24px);
  }
}

@media (max-width: 430px) {
  .waiting-room-players .waiting-player-card-head {
    grid-template-columns: 1fr;
  }
  .waiting-room-players .waiting-player-badges {
    justify-content: flex-start;
    max-width: none;
  }
}


/* GeoGames 1.0.66: Solo Rally hints and objective cards */
.solo-rally-player-objectives {
  display: grid;
  gap: 7px;
  margin-top: 8px;
}
.solo-rally-objective-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.solo-rally-objective-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  padding: 5px 7px;
  border-radius: 11px;
  border: 1px solid rgba(148, 163, 184, .18);
  background: rgba(15, 23, 42, .46);
  color: rgba(226, 232, 240, .82);
  font-size: .73rem;
  font-weight: 800;
  line-height: 1.1;
}
.solo-rally-objective-chip > span {
  display: inline-grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  border-radius: 7px;
  background: rgba(148, 163, 184, .18);
  color: #cbd5e1;
  font-size: .68rem;
}
.solo-rally-objective-chip.done {
  border-color: rgba(34, 197, 94, .42);
  background: rgba(22, 101, 52, .20);
  color: #bbf7d0;
}
.solo-rally-objective-chip.done > span {
  background: rgba(34, 197, 94, .25);
  color: #86efac;
}
.solo-rally-objective-chip.active {
  border-color: rgba(56, 189, 248, .52);
  background: rgba(14, 116, 144, .22);
  color: #bae6fd;
}
.solo-rally-hint-card {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 10px;
  padding: 10px 11px;
  border-radius: 15px;
  border: 1px solid rgba(148, 163, 184, .20);
  background: rgba(15, 23, 42, .54);
}
.solo-rally-hint-card strong { color: #f8fafc; }
.solo-rally-hint-card small {
  display: block;
  margin-top: 2px;
  color: rgba(203, 213, 225, .82);
  font-weight: 700;
}
.solo-rally-hint-card.active {
  border-color: rgba(56, 189, 248, .55);
  background: linear-gradient(135deg, rgba(14, 116, 144, .30), rgba(30, 41, 59, .72));
  box-shadow: 0 12px 28px rgba(8, 47, 73, .25);
}
.solo-rally-hint-card.waiting { opacity: .9; }
.solo-rally-hint-card.success {
  border-color: rgba(34, 197, 94, .42);
  background: rgba(22, 101, 52, .20);
}
.solo-rally-hint-arrow {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 14px;
  background: rgba(56, 189, 248, .18);
  color: #7dd3fc;
  font-size: 1.35rem;
  font-weight: 1000;
  transform: rotate(var(--hint-bearing, 0deg));
  transform-origin: center;
}
.checkpoint-row.next .solo-rally-hint-arrow { transform: rotate(var(--hint-bearing, 0deg)); }
@media (max-width: 760px) {
  .solo-rally-objective-chip { flex: 1 1 100%; }
}

/* GeoGames 1.0.68: pre-game Street View preparation and Solo Rally screen hints */
.maps-loading-overlay-progress {
    pointer-events: auto;
    z-index: 34;
}
.maps-loading-overlay-progress .maps-loading-card {
    width: min(520px, calc(100vw - 34px));
    text-align: center;
}
.pregame-load-progress {
    display: grid;
    gap: 10px;
    justify-items: center;
    margin-top: 4px;
}
.pregame-load-progress p {
    margin: 0;
    color: #e0f2fe;
    font-weight: 900;
    line-height: 1.45;
}
.pregame-load-progress small {
    color: #bae6fd;
    font-weight: 800;
}
.pregame-progress-track,
.street-search-progress {
    width: min(360px, 100%);
    height: 12px;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(15, 23, 42, .68);
    border: 1px solid rgba(125, 211, 252, .22);
    box-shadow: inset 0 1px 3px rgba(0,0,0,.34);
}
.pregame-progress-track i,
.street-search-progress i {
    display: block;
    width: 0%;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #38bdf8, #22c55e, #a7f3d0);
    box-shadow: 0 0 18px rgba(56, 189, 248, .45);
    transition: width .22s ease;
}
.street-search-progress {
    margin: 14px auto 0;
    height: 10px;
    border-color: rgba(216, 180, 254, .28);
}
.street-search-progress i {
    background: linear-gradient(90deg, #a78bfa, #38bdf8, #22c55e);
}
.solo-rally-hint-overlay {
    position: absolute;
    left: 50%;
    top: 30%;
    z-index: 24;
    transform: translate(-50%, -50%);
    width: min(520px, calc(100% - 34px));
    pointer-events: none;
}
.solo-rally-screen-hint {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 16px;
    padding: 18px 20px;
    border-radius: 26px;
    color: #f8fafc;
    border: 1px solid rgba(125, 211, 252, .44);
    background: radial-gradient(circle at 20% 0%, rgba(14, 165, 233, .92), rgba(15, 23, 42, .94) 62%);
    box-shadow: 0 26px 82px rgba(2, 6, 23, .64), 0 0 0 1px rgba(255,255,255,.07);
    backdrop-filter: blur(14px);
    animation: solo-rally-hint-pop .18s ease-out both;
}
.solo-rally-screen-hint-arrow {
    display: grid;
    place-items: center;
    width: 68px;
    height: 68px;
    border-radius: 22px;
    background: rgba(2, 6, 23, .36);
    border: 1px solid rgba(186, 230, 253, .34);
    color: #e0f2fe;
    font-size: 2.35rem;
    font-weight: 1000;
    transform: rotate(var(--hint-bearing, 0deg));
    transform-origin: center;
    transition: transform .12s linear;
    text-shadow: 0 3px 12px rgba(0,0,0,.56);
}
.solo-rally-screen-hint-copy {
    display: grid;
    gap: 4px;
    text-align: left;
}
.solo-rally-screen-hint-label {
    color: #bae6fd;
    font-size: .76rem;
    font-weight: 1000;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.solo-rally-screen-hint-copy strong {
    font-size: clamp(1.18rem, 3vw, 1.85rem);
    line-height: 1.05;
}
.solo-rally-screen-hint-copy small {
    color: #dcfce7;
    font-size: .95rem;
    font-weight: 900;
}
@keyframes solo-rally-hint-pop {
    from { opacity: 0; transform: translateY(-8px) scale(.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
.gg-sponsor-slot[data-gg-ad-state="loading"] .gg-sponsor-frame::after,
.gg-sponsor-slot[data-gg-ad-state="empty"] .gg-sponsor-frame::after {
    content: "Publicidad cargando…";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: rgba(203, 213, 225, .72);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .02em;
    background: linear-gradient(135deg, rgba(15,23,42,.62), rgba(2,6,23,.36));
    pointer-events: none;
}
.gg-sponsor-slot[data-gg-ad-state="empty"] .gg-sponsor-frame::after {
    content: "Publicidad no cargada · apoya GeoGames desactivando bloqueadores";
    padding: 8px;
    text-align: center;
    color: rgba(254, 240, 138, .82);
}
@media (max-width: 640px) {
    .solo-rally-hint-overlay { top: 30%; }
    .solo-rally-screen-hint {
        grid-template-columns: 1fr;
        justify-items: center;
        text-align: center;
    }
    .solo-rally-screen-hint-copy { text-align: center; }
}


/* GeoGames 1.0.68: Solo Rally final destinations and more visible hint overlay */
.solo-rally-hint-overlay:not(.hidden) {
    display: block;
}
.solo-rally-screen-hint {
    min-height: 104px;
}
.solo-rally-final-objectives {
    margin: 18px 0 6px;
}
.solo-rally-final-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}
.solo-rally-final-card {
    padding: 13px;
    border-radius: 18px;
    border: 1px solid color-mix(in srgb, var(--team-color, #38bdf8) 42%, rgba(148, 163, 184, .22));
    background: linear-gradient(145deg, color-mix(in srgb, var(--team-color, #38bdf8) 14%, rgba(15, 23, 42, .92)), rgba(2, 6, 23, .74));
    box-shadow: 0 16px 38px rgba(2, 6, 23, .24);
}
.solo-rally-final-card header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.solo-rally-final-card header strong {
    color: #f8fafc;
}
.solo-rally-final-card header small {
    color: #cbd5e1;
    font-weight: 900;
}
.solo-rally-final-destinations {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}
.solo-rally-final-destination {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, .20);
    background: rgba(15, 23, 42, .54);
    color: rgba(226, 232, 240, .82);
    font-size: .78rem;
    font-weight: 900;
}
.solo-rally-final-destination b {
    display: inline-grid;
    place-items: center;
    min-width: 19px;
    height: 19px;
    border-radius: 7px;
    background: rgba(148, 163, 184, .18);
    color: #cbd5e1;
    font-size: .68rem;
}
.solo-rally-final-destination.done {
    border-color: rgba(34, 197, 94, .46);
    background: rgba(22, 101, 52, .26);
    color: #bbf7d0;
}
.solo-rally-final-destination.done b {
    background: rgba(34, 197, 94, .28);
    color: #86efac;
}

/* GeoGames 1.0.68 hotfix: persistent Solo Rally compass without 1-second flicker */
.solo-rally-hint-card.compass {
    border-color: rgba(125, 211, 252, .34);
    background: linear-gradient(135deg, rgba(15, 23, 42, .72), rgba(8, 47, 73, .40));
    box-shadow: 0 12px 28px rgba(2, 6, 23, .20);
}
.solo-rally-hint-card.compass .solo-rally-hint-arrow {
    background: rgba(14, 165, 233, .16);
    color: #bae6fd;
}
.solo-rally-screen-hint {
    animation: none !important;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.solo-rally-hint-overlay:not(.is-active-hint) .solo-rally-screen-hint {
    border-color: rgba(148, 163, 184, .34);
    background: radial-gradient(circle at 20% 0%, rgba(14, 116, 144, .72), rgba(15, 23, 42, .92) 62%);
    box-shadow: 0 22px 70px rgba(2, 6, 23, .54), 0 0 0 1px rgba(255,255,255,.06);
}
.solo-rally-hint-overlay.is-active-hint .solo-rally-screen-hint {
    border-color: rgba(125, 211, 252, .58);
    box-shadow: 0 26px 82px rgba(2, 6, 23, .64), 0 0 24px rgba(56, 189, 248, .18);
}

/* GeoGames 1.0.68 hotfix: central Solo Rally hint only appears during active clue windows. */
.solo-rally-hint-overlay.hidden {
    display: none !important;
}

/* GeoGames 1.0.68 hotfix: live Solo Rally clue arrow follows Street View heading smoothly. */

/* GeoGames 1.0.69: manual clue button and generic clue overlay */
.manual-hint-control {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0 0 8px;
    padding: 9px 10px;
    border-radius: 14px;
    border: 1px solid rgba(125, 211, 252, .28);
    background: linear-gradient(135deg, rgba(14, 165, 233, .18), rgba(15, 23, 42, .68));
    color: #dbeafe;
    font-size: 12px;
    font-weight: 1000;
    letter-spacing: .02em;
}
.manual-hint-control.hidden {
    display: none !important;
}
.manual-hint-control span {
    white-space: nowrap;
}
.manual-hint-control button {
    padding: 7px 10px;
    border-radius: 11px;
    font-size: 12px;
}
.manual-screen-hint .solo-rally-screen-hint-label {
    color: #bfdbfe;
}
@media (max-width: 560px) {
    .manual-hint-control {
        align-items: stretch;
        flex-direction: column;
    }
    .manual-hint-control button {
        width: 100%;
    }
}

/* GeoGames 1.0.69 hotfix: compact manual/solo hint popup. */
.solo-rally-hint-overlay {
    width: min(285px, calc(100% - 28px));
    top: 28%;
}
.solo-rally-screen-hint {
    min-height: 0;
    gap: 9px;
    padding: 9px 11px;
    border-radius: 17px;
}
.solo-rally-screen-hint-arrow {
    width: 38px;
    height: 38px;
    border-radius: 13px;
    font-size: 1.42rem;
}
.solo-rally-screen-hint-copy {
    gap: 2px;
}
.solo-rally-screen-hint-label {
    font-size: .58rem;
    letter-spacing: .11em;
}
.solo-rally-screen-hint-copy strong {
    font-size: clamp(.86rem, 1.8vw, 1.08rem);
    line-height: 1.05;
}
.solo-rally-screen-hint-copy small {
    font-size: .72rem;
    line-height: 1.2;
}
@media (max-width: 640px) {
    .solo-rally-hint-overlay { width: min(275px, calc(100% - 22px)); top: 27%; }
    .solo-rally-screen-hint { grid-template-columns: auto 1fr; justify-items: stretch; text-align: left; }
    .solo-rally-screen-hint-copy { text-align: left; }
}

/* GeoGames 1.0.70: round compass-style outline for clue arrow. */
.solo-rally-screen-hint-arrow {
    position: relative;
    width: 46px;
    height: 46px;
    border-radius: 999px;
    background:
        radial-gradient(circle at 35% 30%, rgba(255,255,255,.18), rgba(255,255,255,0) 38%),
        radial-gradient(circle at center, rgba(14, 165, 233, .14), rgba(2, 6, 23, .28) 68%, rgba(2, 6, 23, .42) 100%);
    border: 1px solid rgba(186, 230, 253, .42);
    box-shadow:
        inset 0 0 0 2px rgba(125, 211, 252, .10),
        inset 0 0 18px rgba(255,255,255,.05),
        0 6px 18px rgba(2, 6, 23, .28);
}
.solo-rally-screen-hint-arrow::before {
    content: "";
    position: absolute;
    inset: 5px;
    border-radius: 50%;
    border: 1px solid rgba(191, 219, 254, .18);
    pointer-events: none;
}
.solo-rally-screen-hint-arrow::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 4px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #e0f2fe;
    box-shadow: 0 0 10px rgba(224, 242, 254, .55);
    transform: translateX(-50%) rotate(calc(var(--hint-bearing, 0deg) * -1));
    transform-origin: center;
    pointer-events: none;
}


/* GeoGames 1.1.0-beta: Escondite mode */
.hide-seek-hide-btn {
    border-color: rgba(34, 197, 94, .42) !important;
    background: linear-gradient(135deg, rgba(34, 197, 94, .22), rgba(15, 23, 42, .72)) !important;
}
.hide-seek-panel {
    display: grid;
    gap: 8px;
}
.hide-seek-panel .hide-seek-submit-guess {
    width: 100%;
}
.hide-seek-score-list {
    display: grid;
    gap: 6px;
    margin-top: 6px;
}
.hide-seek-score-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 7px 9px;
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, .18);
    background: rgba(15, 23, 42, .54);
}
.hide-seek-score-row.me {
    border-color: rgba(125, 211, 252, .42);
    background: rgba(14, 165, 233, .16);
}
.success-text { color: #86efac; font-weight: 900; }

/* GeoGames 1.1.0-beta: Escondite turn controls. */
.hide-seek-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}
.hide-seek-actions button {
    flex: 1 1 120px;
}


/* GeoGames 1.1.0-beta hotfix: Escondite setup simplification and square waiting-player cards. */
.setup-room-options.hide-seek-options label:has(#setupPresetSelect),
.setup-room-options.hide-seek-options label:has(#streetviewOverlaySelect),
.setup-room-options.hide-seek-options label:has(#maxSpawnDistance) {
  display: none !important;
}
.waiting-host-common-grid-hide-seek {
  align-items: flex-end;
}
.waiting-host-common-grid-hide-seek .waiting-room-field-mode {
  flex: 0 1 230px;
}
.waiting-room-place-auto {
  display: grid;
  gap: 3px;
  border-color: rgba(56, 189, 248, .22);
  background: linear-gradient(135deg, rgba(14, 165, 233, .13), rgba(2, 6, 23, .34));
}
.waiting-room-place-auto span {
  color: #bfdbfe;
  font-size: .78rem;
  font-weight: 800;
}
.maps-loading-overlay-waiting .waiting-player-card-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: 9px;
  align-items: stretch;
}
.maps-loading-overlay-waiting .waiting-player-card {
  width: 100%;
  max-width: 178px;
  min-height: 142px;
  aspect-ratio: 1 / .86;
  justify-self: center;
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
  gap: 7px;
  padding: 10px;
  border-radius: 18px;
}
.maps-loading-overlay-waiting .waiting-player-card > .summary-color-dot {
  justify-self: start;
}
.maps-loading-overlay-waiting .waiting-player-card-main {
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 6px;
  min-width: 0;
}
.maps-loading-overlay-waiting .waiting-player-card-head {
  align-items: flex-start;
  flex-direction: column;
  gap: 5px;
}
.maps-loading-overlay-waiting .waiting-player-card-head strong {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.15;
}
.maps-loading-overlay-waiting .waiting-player-card small {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.22;
}
.maps-loading-overlay-waiting .waiting-player-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 2px;
}
.maps-loading-overlay-waiting .waiting-player-actions button {
  flex: 1 1 auto;
  min-width: 62px;
}
@media (max-width: 560px) {
  .maps-loading-overlay-waiting .waiting-player-card-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .maps-loading-overlay-waiting .waiting-player-card {
    max-width: none;
    min-height: 132px;
  }
}

/* GeoGames 1.1.0-beta hotfix: waiting-room player cards adapt to long player names. */
.maps-loading-overlay-waiting .waiting-player-card-list {
  grid-template-columns: repeat(auto-fit, minmax(190px, max-content));
  justify-content: center;
}
.maps-loading-overlay-waiting .waiting-player-card {
  width: max-content;
  min-width: 190px;
  max-width: min(100%, 270px);
  min-height: 128px;
  aspect-ratio: auto;
}
.maps-loading-overlay-waiting .waiting-player-card-main {
  min-width: min(210px, 100%);
}
.maps-loading-overlay-waiting .waiting-player-card-head strong {
  display: block;
  max-width: 100%;
  overflow: visible;
  overflow-wrap: anywhere;
  word-break: break-word;
  -webkit-line-clamp: unset;
  -webkit-box-orient: unset;
  line-height: 1.16;
}
.maps-loading-overlay-waiting .waiting-player-badges {
  max-width: 100%;
}
@media (max-width: 560px) {
  .maps-loading-overlay-waiting .waiting-player-card-list {
    grid-template-columns: 1fr;
    justify-content: stretch;
  }
  .maps-loading-overlay-waiting .waiting-player-card {
    width: 100%;
    max-width: none;
    min-width: 0;
  }
}

/* GeoGames 1.1.0-beta hotfix: Escondite map-first hiding flow. */
.waiting-host-common-grid-hide-seek {
  grid-template-columns: minmax(180px, 260px);
}
.waiting-room-place-auto span {
  display: none !important;
}
.hide-seek-panel .progress-line {
  margin-top: 8px;
}
.spectator-hint h2 {
  margin-bottom: 6px;
}

/* GeoGames 1.1.0-beta hotfix: Escondite Google-Maps-like selection and guessing split view. */
.map-stage.hide-seek-map-selecting #map {
    cursor: crosshair;
}
.hide-seek-pegman-card {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 12px;
}
.hide-seek-pegman {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 999px;
    background: radial-gradient(circle at 35% 25%, #fde68a, #f59e0b 62%, #92400e);
    box-shadow: 0 10px 24px rgba(2, 6, 23, .28), inset 0 0 0 2px rgba(255,255,255,.38);
    font-size: 25px;
}
.map-stage.hide-seek-guess-split #streetView {
    display: block !important;
    inset: 0 0 42% 0;
    height: 58%;
    border-bottom: 2px solid rgba(125, 211, 252, .42);
}
.map-stage.hide-seek-guess-split #map {
    display: block !important;
    inset: 58% 0 0 0;
    height: 42%;
}
.map-stage.hide-seek-guess-split #spectatorHint {
    top: calc(58% + 12px);
    right: 14px;
    max-width: 360px;
    z-index: 7;
}
.map-stage.hide-seek-guess-split #driverControls {
    left: 14px;
    bottom: calc(42% + 14px);
    max-width: min(500px, calc(100% - 28px));
}
.map-stage.hide-seek-guess-split #driverControls #hideSeekHideBtn,
.map-stage.hide-seek-guess-split #driverControls #hintControl {
    display: none !important;
}
.map-stage.hide-seek-guess-split #driverControls p::before {
    content: "Vista del jugador objetivo · ";
    color: #bae6fd;
    font-weight: 900;
}
@media (max-width: 760px) {
    .map-stage.hide-seek-guess-split #streetView { inset: 0 0 48% 0; height: 52%; }
    .map-stage.hide-seek-guess-split #map { inset: 52% 0 0 0; height: 48%; }
    .map-stage.hide-seek-guess-split #driverControls {
        bottom: calc(48% + 10px);
        max-width: calc(100% - 20px);
    }
    .map-stage.hide-seek-guess-split #spectatorHint {
        top: calc(52% + 10px);
        left: 10px;
        right: 10px;
        max-width: none;
        padding: 10px 12px;
    }
}

/* GeoGames 1.1.0-beta hotfix: Escondite round summaries and selection confirmation. */
.hide-seek-panel .hide-seek-confirm-start {
    width: 100%;
}
.hide-seek-result-list {
    display: grid;
    gap: 7px;
    margin: 8px 0;
}
.hide-seek-result-row {
    display: grid;
    grid-template-columns: minmax(90px, 1fr) minmax(90px, 1fr) auto auto;
    align-items: center;
    gap: 7px;
    padding: 8px 9px;
    border-radius: 13px;
    border: 1px solid rgba(148, 163, 184, .20);
    background: rgba(15, 23, 42, .56);
    color: #e2e8f0;
    font-size: .82rem;
}
.hide-seek-result-row b {
    color: #bbf7d0;
    white-space: nowrap;
}
.hide-seek-result-row small {
    color: #bae6fd;
    font-weight: 900;
    white-space: nowrap;
}
@media (max-width: 620px) {
    .hide-seek-result-row {
        grid-template-columns: 1fr auto;
    }
    .hide-seek-result-row span {
        grid-column: 1 / -1;
    }
}

/* GeoGames 1.1.0-beta hotfix: Escondite hiding uses Street View plus adjustable minimap. */
.map-stage.hide-seek-hiding-split #streetView {
    display: block !important;
    inset: 0;
    height: 100%;
}
.map-stage.hide-seek-hiding-split #map {
    display: block !important;
    position: absolute;
    right: 14px;
    bottom: 14px;
    left: auto;
    top: auto;
    width: min(34%, 430px);
    height: min(34%, 310px);
    min-width: 240px;
    min-height: 180px;
    max-width: calc(100% - 28px);
    max-height: calc(100% - 28px);
    z-index: 8;
    resize: both;
    overflow: hidden;
    border-radius: 20px;
    border: 2px solid rgba(125, 211, 252, .58);
    box-shadow: 0 22px 70px rgba(2, 6, 23, .52), 0 0 0 1px rgba(255,255,255,.10);
}
.map-stage.hide-seek-hiding-split #driverControls {
    bottom: calc(min(34%, 310px) + 26px);
}
.map-stage.hide-seek-hiding-split.hide-seek-map-selecting #map {
    cursor: crosshair;
}
@media (max-width: 760px) {
    .map-stage.hide-seek-hiding-split #map {
        right: 10px;
        bottom: 10px;
        width: min(48%, 320px);
        height: min(34%, 230px);
        min-width: 180px;
        min-height: 140px;
        border-radius: 16px;
    }
    .map-stage.hide-seek-hiding-split #driverControls {
        bottom: calc(min(34%, 230px) + 22px);
        max-width: calc(100% - 20px);
    }
}

/* GeoGames 1.1.0-beta hotfix: make pending hide-seek map selection action visible. */
.hide-seek-pegman-card .hide-seek-confirm-start {
    margin-top: 10px;
    pointer-events: auto;
}
.hide-seek-pegman-card {
    pointer-events: auto;
}


/* GeoGames 1.1.0-beta hotfix: visible Hide & Seek guessing action and round summary overlay. */
.hide-seek-guess-callout,
.hide-seek-round-summary-card {
    display: grid;
    gap: 9px;
    max-width: min(420px, calc(100vw - 36px));
    margin: 0 auto;
    padding: 14px 16px;
    border-radius: 20px;
    border: 1px solid rgba(125, 211, 252, .38);
    background: linear-gradient(145deg, rgba(15, 23, 42, .92), rgba(8, 47, 73, .78));
    box-shadow: 0 20px 54px rgba(2, 6, 23, .42);
}
.hide-seek-guess-callout h2,
.hide-seek-round-summary-card h2 {
    margin: 0;
}
.hide-seek-guess-callout p,
.hide-seek-round-summary-card p {
    margin: 0;
}
.hide-seek-guess-callout button {
    width: 100%;
}
.hide-seek-guess-callout button:disabled {
    opacity: .58;
    cursor: not-allowed;
}
.hide-seek-round-summary-card .hide-seek-result-list {
    max-height: min(220px, 38vh);
    overflow: auto;
}
.map-stage.hide-seek-guess-split .spectator-hint {
    pointer-events: auto;
    max-width: min(440px, calc(100% - 28px));
}

/* GeoGames 1.1.0-beta hotfix: Hide & Seek round summary comparison lines. */
.hide-seek-distance-label {
    padding: 5px 8px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .88);
    border: 1px solid color-mix(in srgb, var(--label-color, #38bdf8) 54%, rgba(255,255,255,.18));
    color: #f8fafc;
    font-size: 11px;
    font-weight: 1000;
    white-space: nowrap;
    box-shadow: 0 8px 18px rgba(2, 6, 23, .32), 0 0 14px color-mix(in srgb, var(--label-color, #38bdf8) 28%, transparent);
}

/* GeoGames 1.1.0-beta hotfix: readable Hide & Seek comparison labels on Google Maps. */
.hide-seek-distance-label {
    color: #0f172a !important;
    background: linear-gradient(135deg, rgba(255, 251, 235, .98), rgba(224, 242, 254, .96)) !important;
    border: 2px solid color-mix(in srgb, var(--label-color, #0284c7) 72%, #0f172a 28%) !important;
    text-shadow: none !important;
    box-shadow: 0 0 0 2px rgba(255,255,255,.92), 0 10px 22px rgba(2, 6, 23, .34) !important;
}
.hide-seek-distance-label::after {
    background: rgba(255, 251, 235, .98) !important;
    border-right: 2px solid color-mix(in srgb, var(--label-color, #0284c7) 72%, #0f172a 28%) !important;
    border-bottom: 2px solid color-mix(in srgb, var(--label-color, #0284c7) 72%, #0f172a 28%) !important;
}

/* GeoGames 1.1.0-beta hotfix: high-contrast distance/meters labels on map. */
.hide-seek-distance-label,
.map-label.hide-seek-distance-label {
    color: #111827 !important;
    background: linear-gradient(135deg, #fff7ed 0%, #fef3c7 48%, #e0f2fe 100%) !important;
    border: 2px solid color-mix(in srgb, var(--label-color, #0284c7) 68%, #111827 32%) !important;
    text-shadow: none !important;
    font-weight: 1000 !important;
    box-shadow:
        0 0 0 2px rgba(255,255,255,.96),
        0 10px 24px rgba(15, 23, 42, .38) !important;
}
.hide-seek-distance-label::after,
.map-label.hide-seek-distance-label::after {
    background: #fef3c7 !important;
    border-right: 2px solid color-mix(in srgb, var(--label-color, #0284c7) 68%, #111827 32%) !important;
    border-bottom: 2px solid color-mix(in srgb, var(--label-color, #0284c7) 68%, #111827 32%) !important;
}


/* GeoGames 1.1.0-beta hotfix: force readable Hide & Seek distance/score labels. */
.hide-seek-distance-label,
.map-label.hide-seek-distance-label,
.gm-style .hide-seek-distance-label,
.gm-style .map-label.hide-seek-distance-label {
    color: #111827 !important;
    background: linear-gradient(135deg, #fff7ed 0%, #fef3c7 52%, #e0f2fe 100%) !important;
    border: 2px solid var(--label-color, #0284c7) !important;
    text-shadow: none !important;
    font-weight: 1000 !important;
    box-shadow: 0 0 0 2px rgba(255,255,255,.96), 0 10px 24px rgba(15,23,42,.38) !important;
}
.hide-seek-distance-label::after,
.map-label.hide-seek-distance-label::after,
.gm-style .hide-seek-distance-label::after,
.gm-style .map-label.hide-seek-distance-label::after {
    background: #fef3c7 !important;
    border-right: 2px solid var(--label-color, #0284c7) !important;
    border-bottom: 2px solid var(--label-color, #0284c7) !important;
}

/* GeoGames 1.1.0-beta hotfix: avoid overlapping Hide & Seek labels on the round map. */
.map-label.hide-seek-spot-label {
    transform: translate(-50%, calc(-100% - 38px)) !important;
    z-index: 42 !important;
    max-width: 220px;
    color: #052e16 !important;
    background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%) !important;
    border: 2px solid #16a34a !important;
    text-shadow: none !important;
    box-shadow: 0 0 0 2px rgba(255,255,255,.96), 0 12px 26px rgba(15,23,42,.36) !important;
}
.map-label.hide-seek-spot-label::after {
    background: #bbf7d0 !important;
    border-right: 2px solid #16a34a !important;
    border-bottom: 2px solid #16a34a !important;
}
.map-label.hide-seek-distance-label,
.gm-style .map-label.hide-seek-distance-label,
.hide-seek-distance-label,
.gm-style .hide-seek-distance-label {
    transform: translate(-50%, 14px) !important;
    z-index: 36 !important;
    min-width: max-content;
}
.map-label.hide-seek-distance-label::after,
.gm-style .map-label.hide-seek-distance-label::after,
.hide-seek-distance-label::after,
.gm-style .hide-seek-distance-label::after {
    top: -6px !important;
    bottom: auto !important;
    transform: translateX(-50%) rotate(225deg) !important;
}


/* GeoGames 1.1.0-beta production hotfix: one clear Hide & Seek label per point.
   Google Maps native marker labels are intentionally not used for revealed Hide & Seek points. */
.map-label.hide-seek-point-label,
.gm-style .map-label.hide-seek-point-label {
    max-width: 240px !important;
    min-width: max-content;
    padding: 6px 10px !important;
    border-radius: 999px !important;
    text-shadow: none !important;
    font-weight: 1000 !important;
    letter-spacing: .01em;
    z-index: 48 !important;
    box-shadow: 0 0 0 2px rgba(255,255,255,.96), 0 12px 28px rgba(15,23,42,.38) !important;
}
.map-label.hide-seek-point-label::after,
.gm-style .map-label.hide-seek-point-label::after {
    border-right-width: 2px !important;
    border-bottom-width: 2px !important;
}
.map-label.hide-seek-spot-label,
.gm-style .map-label.hide-seek-spot-label {
    transform: translate(-50%, calc(-100% - 44px)) !important;
    color: #052e16 !important;
    background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%) !important;
    border: 2px solid #16a34a !important;
}
.map-label.hide-seek-spot-label::after,
.gm-style .map-label.hide-seek-spot-label::after {
    background: #bbf7d0 !important;
    border-right-color: #16a34a !important;
    border-bottom-color: #16a34a !important;
}
.map-label.hide-seek-guess-label,
.gm-style .map-label.hide-seek-guess-label {
    transform: translate(-50%, calc(-100% - 18px)) !important;
    color: #111827 !important;
    background: linear-gradient(135deg, #fff7ed 0%, #fde68a 100%) !important;
    border: 2px solid var(--label-color, #f59e0b) !important;
}
.map-label.hide-seek-guess-label::after,
.gm-style .map-label.hide-seek-guess-label::after {
    background: #fde68a !important;
    border-right-color: var(--label-color, #f59e0b) !important;
    border-bottom-color: var(--label-color, #f59e0b) !important;
}

/* GeoGames 1.1.0-beta production hotfix: Hide & Seek revealed house uses the marker only.
   The former green HTML spot label is hidden as a defensive cache-safe fallback. */
.map-label.hide-seek-spot-label,
.gm-style .map-label.hide-seek-spot-label {
    display: none !important;
}

.hide-seek-round-transition {
    z-index: 12000;
    cursor: default;
    background: rgba(2, 6, 23, .48);
    backdrop-filter: blur(6px);
}
.hide-seek-round-transition.hidden {
    display: none !important;
}
.hide-seek-round-transition-card {
    width: min(980px, 96vw);
    max-height: min(86vh, 760px);
    padding: 24px;
    background: linear-gradient(135deg, rgba(15, 23, 42, .98), rgba(30, 64, 175, .94));
    border: 1px solid rgba(147, 197, 253, .34);
}
.hide-seek-round-transition-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    margin-bottom: 14px;
}
.hide-seek-round-kicker {
    grid-column: 1 / -1;
    width: max-content;
    padding: 5px 10px;
    border-radius: 999px;
    color: #dbeafe;
    background: rgba(59, 130, 246, .18);
    border: 1px solid rgba(147, 197, 253, .24);
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .12em;
}
.hide-seek-round-transition-header h2 {
    margin: 0;
    font-size: clamp(24px, 4vw, 42px);
}
.hide-seek-round-countdown {
    display: grid;
    place-items: center;
    min-width: 152px;
    padding: 12px 14px;
    border-radius: 22px;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.18);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
}
.hide-seek-round-countdown strong {
    font-size: clamp(38px, 6vw, 72px);
    line-height: .9;
}
.hide-seek-round-countdown span {
    margin-top: 6px;
    color: #dbeafe;
    font-size: 13px;
    font-weight: 800;
    text-align: center;
}
.hide-seek-round-best {
    margin: 0 0 16px;
    padding: 12px 14px;
    border-radius: 18px;
    color: #eff6ff;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
}
.hide-seek-round-transition-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr);
    gap: 16px;
}
.hide-seek-round-transition-grid section {
    min-width: 0;
    padding: 14px;
    border-radius: 20px;
    background: rgba(15, 23, 42, .42);
    border: 1px solid rgba(255,255,255,.11);
}
.hide-seek-round-transition-grid h3 {
    margin: 0 0 10px;
}
.hide-seek-round-transition-note {
    margin-top: 14px;
}
@media (max-width: 760px) {
    .hide-seek-round-transition-header,
    .hide-seek-round-transition-grid {
        grid-template-columns: 1fr;
    }
    .hide-seek-round-countdown {
        min-width: 0;
    }
}

/* GeoGames 1.1.0-beta production fix: start/origin marker labels for moving players. */
.player-start-map-label,
.gm-style .player-start-map-label {
    transform: translate(-50%, calc(-100% - 18px));
    background: linear-gradient(135deg, rgba(3, 7, 18, .98), rgba(30, 64, 175, .94));
    border-color: var(--label-color, #60a5fa);
    box-shadow: 0 0 0 2px rgba(0,0,0,.36), 0 10px 24px rgba(0,0,0,.46);
}
.player-start-map-label::after,
.gm-style .player-start-map-label::after {
    background: rgba(3, 7, 18, .98);
    border-color: var(--label-color, #60a5fa);
}


/* GeoGames 1.1.0-beta hotfix: visible cleanup button, start pins without overlap, trophies under the name. */
#kickInactiveBtn.host-cleanup-button {
    width: 100%;
    margin-top: 8px;
}

.player-name-with-wins,
.player-row-header strong.player-name-with-wins,
.player-name-with-wins.current-player-name,
.setup-player-info > strong.player-name-with-wins {
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 3px !important;
    min-width: 0 !important;
    max-width: 100% !important;
    width: auto;
    line-height: 1.15;
}

.player-name-main {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    max-width: 100%;
}

.player-victory-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 5px;
    margin-top: 2px;
}

.player-victory-row .victory-badge {
    margin-top: 0;
}

.player-start-map-label,
.gm-style .player-start-map-label {
    transform: translate(-50%, calc(-100% - 26px));
    white-space: nowrap;
    max-width: 190px;
}


/* GeoGames 1.1.0-beta hotfix: waiting-room player names keep trophies on a second line. */
.player-name-stack,
.waiting-room-players .player-name-stack,
.maps-loading-overlay-waiting .player-name-stack,
.setup-summary-list .player-name-stack,
.player-row .player-name-stack {
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 3px !important;
    min-width: 0 !important;
    max-width: 100% !important;
    line-height: 1.15 !important;
    vertical-align: top;
}
.waiting-room-players .player-name-with-wins,
.maps-loading-overlay-waiting .waiting-player-card-head strong.player-name-with-wins,
.setup-summary-list strong.player-name-with-wins,
.player-row-header strong.player-name-with-wins {
    display: block !important;
    overflow: visible !important;
    -webkit-line-clamp: unset !important;
    -webkit-box-orient: unset !important;
}
.waiting-room-players .player-victory-row,
.maps-loading-overlay-waiting .player-victory-row,
.setup-summary-list .player-victory-row,
.player-row .player-victory-row {
    display: flex !important;
    width: 100%;
    margin-top: 3px;
}
.waiting-room-players .waiting-player-card small,
.maps-loading-overlay-waiting .waiting-player-card small {
    margin-top: 2px;
}

/* GeoGames 1.1.0-beta hotfix: player names are capped at 20 chars and shown fully in cards. */
.waiting-room-players .player-name-text,
.maps-loading-overlay-waiting .player-name-text,
.setup-summary-list .player-name-text,
.player-row-header .player-name-text {
    display: inline !important;
    max-width: 100% !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}
.waiting-room-players .player-name-main,
.maps-loading-overlay-waiting .player-name-main,
.setup-summary-list .player-name-main,
.player-row-header .player-name-main {
    flex-wrap: wrap !important;
    align-items: flex-start !important;
}

/* GeoGames 1.1.0-beta hotfix: Hide & Seek Pegman minimap resize controls. */
.hide-seek-map-resize-controls {
    position: absolute;
    display: flex;
    gap: 8px;
    z-index: 18;
    pointer-events: auto;
}
.hide-seek-map-resize-controls.hidden {
    display: none !important;
}
.hide-seek-map-resize-button {
    width: 38px;
    height: 38px;
    padding: 0;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.22);
    background: rgba(15, 23, 42, .88);
    color: #e0f2fe;
    font-size: 20px;
    font-weight: 900;
    line-height: 1;
    box-shadow: 0 12px 34px rgba(2, 6, 23, .42), inset 0 1px 0 rgba(255,255,255,.16);
    backdrop-filter: blur(10px);
}
.hide-seek-map-resize-button:hover:not(:disabled) {
    transform: translateY(-1px);
    background: rgba(14, 165, 233, .92);
    color: #00111f;
}
.hide-seek-map-resize-button:disabled {
    opacity: .42;
    cursor: not-allowed;
}
.map-stage.hide-seek-hiding-split.hide-seek-map-size-0 #map {
    width: min(28%, 360px);
    height: min(28%, 240px);
    min-width: 220px;
    min-height: 160px;
}
.map-stage.hide-seek-hiding-split.hide-seek-map-size-1 #map {
    width: min(34%, 430px);
    height: min(34%, 310px);
}
.map-stage.hide-seek-hiding-split.hide-seek-map-size-2 #map {
    width: min(52%, 640px);
    height: min(46%, 430px);
}
.map-stage.hide-seek-hiding-split.hide-seek-map-size-3 #map {
    width: min(72%, 900px);
    height: min(62%, 620px);
}
.map-stage.hide-seek-hiding-split.hide-seek-map-size-0 #driverControls { bottom: calc(min(28%, 240px) + 26px); }
.map-stage.hide-seek-hiding-split.hide-seek-map-size-1 #driverControls { bottom: calc(min(34%, 310px) + 26px); }
.map-stage.hide-seek-hiding-split.hide-seek-map-size-2 #driverControls { bottom: calc(min(46%, 430px) + 26px); }
.map-stage.hide-seek-hiding-split.hide-seek-map-size-3 #driverControls { bottom: calc(min(62%, 620px) + 26px); }
.map-stage.hide-seek-hiding-split .hide-seek-map-resize-controls {
    right: 22px;
    bottom: calc(min(34%, 310px) + 26px);
}
.map-stage.hide-seek-hiding-split.hide-seek-map-size-0 .hide-seek-map-resize-controls { bottom: calc(min(28%, 240px) + 26px); }
.map-stage.hide-seek-hiding-split.hide-seek-map-size-1 .hide-seek-map-resize-controls { bottom: calc(min(34%, 310px) + 26px); }
.map-stage.hide-seek-hiding-split.hide-seek-map-size-2 .hide-seek-map-resize-controls { bottom: calc(min(46%, 430px) + 26px); }
.map-stage.hide-seek-hiding-split.hide-seek-map-size-3 .hide-seek-map-resize-controls { bottom: calc(min(62%, 620px) + 26px); }
@media (max-width: 760px) {
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-0 #map {
        width: min(46%, 260px);
        height: min(30%, 190px);
        min-width: 170px;
        min-height: 130px;
    }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-1 #map {
        width: min(54%, 330px);
        height: min(36%, 240px);
    }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-2 #map {
        width: min(74%, 470px);
        height: min(48%, 340px);
    }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-3 #map {
        width: calc(100% - 20px);
        height: min(64%, 470px);
    }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-0 #driverControls { bottom: calc(min(30%, 190px) + 22px); }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-1 #driverControls { bottom: calc(min(36%, 240px) + 22px); }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-2 #driverControls { bottom: calc(min(48%, 340px) + 22px); }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-3 #driverControls { bottom: calc(min(64%, 470px) + 22px); }
    .map-stage.hide-seek-hiding-split .hide-seek-map-resize-controls {
        right: 16px;
        gap: 6px;
    }
    .hide-seek-map-resize-button {
        width: 34px;
        height: 34px;
        font-size: 18px;
    }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-0 .hide-seek-map-resize-controls { bottom: calc(min(30%, 190px) + 22px); }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-1 .hide-seek-map-resize-controls { bottom: calc(min(36%, 240px) + 22px); }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-2 .hide-seek-map-resize-controls { bottom: calc(min(48%, 340px) + 22px); }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-3 .hide-seek-map-resize-controls { bottom: calc(min(64%, 470px) + 22px); }
}


/* GeoGames 1.1.0-beta hotfix: Hide & Seek competition history, podium cups and guessing start flag. */
.hide-seek-rank-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    margin-right: 4px;
    font-weight: 900;
}

.hide-seek-competition-history {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid rgba(148, 163, 184, .18);
}
.hide-seek-competition-history h3 {
    margin: 0 0 8px;
    font-size: 14px;
    color: #e0f2fe;
}
.hide-seek-competition-totals {
    display: grid;
    gap: 7px;
}
.hide-seek-competition-total {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 8px;
    align-items: center;
    padding: 8px 9px;
    border-radius: 14px;
    background: rgba(15, 23, 42, .56);
    border: 1px solid rgba(148, 163, 184, .18);
}
.hide-seek-competition-total.me {
    border-color: rgba(56, 189, 248, .56);
    box-shadow: inset 0 0 0 1px rgba(56, 189, 248, .12);
}
.hide-seek-competition-total strong {
    min-width: 0;
    overflow-wrap: anywhere;
}
.hide-seek-competition-total span {
    font-weight: 900;
    white-space: nowrap;
}
.hide-seek-competition-total small {
    grid-column: 1 / -1;
    color: #bfdbfe;
}
.hide-seek-competition-games {
    display: grid;
    gap: 7px;
    margin-top: 10px;
}
.hide-seek-competition-game {
    padding: 8px 10px;
    border-radius: 14px;
    background: rgba(15, 23, 42, .44);
    border: 1px solid rgba(148, 163, 184, .16);
}
.hide-seek-competition-game summary {
    cursor: pointer;
    font-weight: 900;
    color: #dbeafe;
}
.hide-seek-competition-game div {
    display: grid;
    gap: 5px;
    margin-top: 7px;
}
.hide-seek-competition-game span {
    color: #e5e7eb;
    font-size: 13px;
}
.hide-seek-competition-history.compact .hide-seek-competition-total {
    padding: 6px 8px;
}
.hide-seek-return-start-btn {
    border-color: rgba(250, 204, 21, .5) !important;
    background: linear-gradient(135deg, rgba(120, 53, 15, .92), rgba(234, 179, 8, .82)) !important;
    color: #fff7ed !important;
    font-weight: 900;
}
/* GeoGames 1.1.0-beta: Escondite countdown before guessing. */
.pregame-countdown-subtitle {
    display: block;
    max-width: min(520px, 78vw);
    color: rgba(219, 234, 254, .92);
    font-size: clamp(13px, 2.1vw, 18px);
    font-weight: 800;
    line-height: 1.25;
    text-shadow: 0 2px 10px rgba(0,0,0,.55);
}
.hide-seek-prep-label {
    max-width: min(620px, 82vw);
    line-height: 1.18;
    letter-spacing: .08em;
}
.hide-seek-prep-callout strong {
    color: #bbf7d0;
}


/* GeoGames 1.1.0-beta hotfix: final Hide & Seek round details grouped by round. */
.hide-seek-final-rounds {
    display: grid;
    gap: 10px;
    margin: 10px 0 14px;
}
.hide-seek-final-round-group {
    border: 1px solid rgba(148, 163, 184, .24);
    border-radius: 16px;
    background: rgba(15, 23, 42, .58);
    overflow: hidden;
}
.hide-seek-final-round-group summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 13px;
    cursor: pointer;
    color: #f8fafc;
    font-weight: 900;
}
.hide-seek-final-round-group summary span {
    color: #bae6fd;
    font-size: .82rem;
    white-space: nowrap;
}
.hide-seek-final-round-body {
    display: grid;
    gap: 8px;
    padding: 0 13px 13px;
}
.hide-seek-final-round-body h4 {
    margin: 4px 0 0;
    color: #e0f2fe;
    font-size: .82rem;
    letter-spacing: .02em;
    text-transform: uppercase;
}
.hide-seek-round-total-list {
    display: grid;
    gap: 7px;
}
.hide-seek-round-total-row {
    display: grid;
    grid-template-columns: minmax(130px, 1fr) auto minmax(130px, auto);
    align-items: center;
    gap: 9px;
    padding: 8px 9px;
    border-radius: 13px;
    border: 1px solid rgba(34, 197, 94, .20);
    background: rgba(2, 6, 23, .36);
    color: #e2e8f0;
    font-size: .82rem;
}
.hide-seek-round-total-row b {
    color: #bbf7d0;
    white-space: nowrap;
}
.hide-seek-round-total-row small {
    color: #c4b5fd;
    font-weight: 800;
    white-space: nowrap;
}
@media (max-width: 620px) {
    .hide-seek-final-round-group summary {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }
    .hide-seek-final-round-group summary span {
        white-space: normal;
    }
    .hide-seek-round-total-row {
        grid-template-columns: 1fr auto;
    }
    .hide-seek-round-total-row small {
        grid-column: 1 / -1;
        white-space: normal;
    }
}

/* Hotfix Escondite: el tiempo del modo es por cada escondite a descubrir y se configura en segundos. */
.setup-room-options.hide-seek-options label:has(#timeLimitMinutes) {
  display: none !important;
}


/* GeoGames 1.1.0-beta hotfix: sidebar hide button floats outside the side panel, over the map edge. */
.side-panel {
    position: relative;
}

.side-panel-frame-toggle {
    position: fixed;
    top: 22px;
    left: calc(var(--side-panel-width, 360px) + 16px);
    z-index: 950;
    display: inline-flex;
    margin: 0;
    transform: none;
    backdrop-filter: blur(14px);
}

.side-panel-frame-toggle + .room-header {
    margin-top: 0;
    padding-top: 0;
    padding-right: 0;
}

.side-panel-frame-toggle + .room-header .room-header-actions {
    padding-right: 0;
}

.side-panel-frame-toggle:hover {
    transform: translateY(-1px) scale(1.04);
}

.side-panel-frame-toggle:active {
    transform: translateY(0) scale(.98);
}

.game-shell.is-side-collapsed .side-panel-frame-toggle {
    display: none !important;
}

@media (max-width: 900px) {
    .side-panel-frame-toggle {
        top: 12px;
        left: auto;
        right: 12px;
        z-index: 950;
    }

    .side-panel-frame-toggle:hover {
        transform: translateY(-1px) scale(1.04);
    }

    .side-panel-frame-toggle:active {
        transform: translateY(0) scale(.98);
    }
}


/* GeoGames hotfix: avoid map flicker and drag focus loss while the map is being dragged. */
body.map-dragging-active .side-panel-frame-toggle,
body.map-dragging-active .side-panel-open {
    pointer-events: none;
    opacity: .58;
    transform: none !important;
}

.side-panel-frame-toggle,
.side-panel-open {
    touch-action: manipulation;
    user-select: none;
}


/* GeoGames 1.1.2: Scotland Yard police minimap for manual trap placement. */
.map-stage.scotland-trap-map-selecting #map {
    cursor: crosshair;
}
.map-stage.scotland-cop-map-split #streetView {
    display: block !important;
    inset: 0;
    height: 100%;
}
.map-stage.scotland-cop-map-split #map {
    display: block !important;
    position: absolute;
    right: 14px;
    bottom: 14px;
    left: auto;
    top: auto;
    width: min(34%, 430px);
    height: min(34%, 310px);
    min-width: 240px;
    min-height: 180px;
    max-width: calc(100% - 28px);
    max-height: calc(100% - 28px);
    z-index: 8;
    resize: both;
    overflow: hidden;
    border-radius: 20px;
    border: 2px solid rgba(34, 197, 94, .62);
    box-shadow: 0 22px 70px rgba(2, 6, 23, .52), 0 0 0 1px rgba(255,255,255,.10);
}
.map-stage.scotland-cop-map-split #driverControls {
    bottom: calc(min(34%, 310px) + 26px);
}
.map-stage.scotland-cop-map-split .hide-seek-map-resize-controls {
    right: 22px;
    bottom: calc(min(34%, 310px) + 26px);
}
.map-stage.scotland-cop-map-split.hide-seek-map-size-0 #map {
    width: min(28%, 360px);
    height: min(28%, 240px);
    min-width: 220px;
    min-height: 160px;
}
.map-stage.scotland-cop-map-split.hide-seek-map-size-1 #map {
    width: min(34%, 430px);
    height: min(34%, 310px);
}
.map-stage.scotland-cop-map-split.hide-seek-map-size-2 #map {
    width: min(52%, 640px);
    height: min(46%, 430px);
}
.map-stage.scotland-cop-map-split.hide-seek-map-size-3 #map {
    width: min(72%, 900px);
    height: min(62%, 620px);
}
.map-stage.scotland-cop-map-split.hide-seek-map-size-0 #driverControls { bottom: calc(min(28%, 240px) + 26px); }
.map-stage.scotland-cop-map-split.hide-seek-map-size-1 #driverControls { bottom: calc(min(34%, 310px) + 26px); }
.map-stage.scotland-cop-map-split.hide-seek-map-size-2 #driverControls { bottom: calc(min(46%, 430px) + 26px); }
.map-stage.scotland-cop-map-split.hide-seek-map-size-3 #driverControls { bottom: calc(min(62%, 620px) + 26px); }
.map-stage.scotland-cop-map-split.hide-seek-map-size-0 .hide-seek-map-resize-controls { bottom: calc(min(28%, 240px) + 26px); }
.map-stage.scotland-cop-map-split.hide-seek-map-size-1 .hide-seek-map-resize-controls { bottom: calc(min(34%, 310px) + 26px); }
.map-stage.scotland-cop-map-split.hide-seek-map-size-2 .hide-seek-map-resize-controls { bottom: calc(min(46%, 430px) + 26px); }
.map-stage.scotland-cop-map-split.hide-seek-map-size-3 .hide-seek-map-resize-controls { bottom: calc(min(62%, 620px) + 26px); }
@media (max-width: 760px) {
    .map-stage.scotland-cop-map-split #map {
        right: 10px;
        bottom: 10px;
        width: min(48%, 320px);
        height: min(36%, 240px);
        min-width: 170px;
        min-height: 130px;
    }
    .map-stage.scotland-cop-map-split.hide-seek-map-size-0 #map {
        width: min(46%, 260px);
        height: min(30%, 190px);
        min-width: 170px;
        min-height: 130px;
    }
    .map-stage.scotland-cop-map-split.hide-seek-map-size-1 #map {
        width: min(54%, 330px);
        height: min(36%, 240px);
    }
    .map-stage.scotland-cop-map-split.hide-seek-map-size-2 #map {
        width: min(74%, 470px);
        height: min(48%, 340px);
    }
    .map-stage.scotland-cop-map-split.hide-seek-map-size-3 #map {
        width: calc(100% - 20px);
        height: min(64%, 470px);
    }
    .map-stage.scotland-cop-map-split.hide-seek-map-size-0 #driverControls { bottom: calc(min(30%, 190px) + 22px); }
    .map-stage.scotland-cop-map-split.hide-seek-map-size-1 #driverControls { bottom: calc(min(36%, 240px) + 22px); }
    .map-stage.scotland-cop-map-split.hide-seek-map-size-2 #driverControls { bottom: calc(min(48%, 340px) + 22px); }
    .map-stage.scotland-cop-map-split.hide-seek-map-size-3 #driverControls { bottom: calc(min(64%, 470px) + 22px); }
    .map-stage.scotland-cop-map-split .hide-seek-map-resize-controls {
        right: 16px;
        gap: 6px;
    }
    .map-stage.scotland-cop-map-split.hide-seek-map-size-0 .hide-seek-map-resize-controls { bottom: calc(min(30%, 190px) + 22px); }
    .map-stage.scotland-cop-map-split.hide-seek-map-size-1 .hide-seek-map-resize-controls { bottom: calc(min(36%, 240px) + 22px); }
    .map-stage.scotland-cop-map-split.hide-seek-map-size-2 .hide-seek-map-resize-controls { bottom: calc(min(48%, 340px) + 22px); }
    .map-stage.scotland-cop-map-split.hide-seek-map-size-3 .hide-seek-map-resize-controls { bottom: calc(min(64%, 470px) + 22px); }
}

/* GeoGames 1.1.2: Escondite guessing uses the same floating/resizable minimap as hiding. */
.map-stage.hide-seek-guess-map-selecting #map {
    cursor: crosshair;
}
.map-stage.hide-seek-guess-split #streetView {
    display: block !important;
    inset: 0;
    height: 100%;
    border-bottom: 0;
}
.map-stage.hide-seek-guess-split #map {
    display: block !important;
    position: absolute;
    right: 14px;
    bottom: 14px;
    left: auto;
    top: auto;
    width: min(34%, 430px);
    height: min(34%, 310px);
    min-width: 240px;
    min-height: 180px;
    max-width: calc(100% - 28px);
    max-height: calc(100% - 28px);
    z-index: 8;
    resize: both;
    overflow: hidden;
    border-radius: 20px;
    border: 2px solid rgba(245, 158, 11, .66);
    box-shadow: 0 22px 70px rgba(2, 6, 23, .52), 0 0 0 1px rgba(255,255,255,.10);
}
.map-stage.hide-seek-guess-split #spectatorHint {
    top: 14px;
    right: 14px;
    max-width: 360px;
    z-index: 9;
}
.map-stage.hide-seek-guess-split #driverControls {
    left: 14px;
    bottom: 14px;
    max-width: min(500px, calc(100% - 28px));
}
.map-stage.hide-seek-guess-split.hide-seek-map-size-0 #map {
    width: min(28%, 360px);
    height: min(28%, 240px);
    min-width: 220px;
    min-height: 160px;
}
.map-stage.hide-seek-guess-split.hide-seek-map-size-1 #map {
    width: min(34%, 430px);
    height: min(34%, 310px);
}
.map-stage.hide-seek-guess-split.hide-seek-map-size-2 #map {
    width: min(52%, 640px);
    height: min(46%, 430px);
}
.map-stage.hide-seek-guess-split.hide-seek-map-size-3 #map {
    width: min(72%, 900px);
    height: min(62%, 620px);
}
.map-stage.hide-seek-guess-split .hide-seek-map-resize-controls {
    right: 22px;
    bottom: calc(min(34%, 310px) + 26px);
}
.map-stage.hide-seek-guess-split.hide-seek-map-size-0 .hide-seek-map-resize-controls { bottom: calc(min(28%, 240px) + 26px); }
.map-stage.hide-seek-guess-split.hide-seek-map-size-1 .hide-seek-map-resize-controls { bottom: calc(min(34%, 310px) + 26px); }
.map-stage.hide-seek-guess-split.hide-seek-map-size-2 .hide-seek-map-resize-controls { bottom: calc(min(46%, 430px) + 26px); }
.map-stage.hide-seek-guess-split.hide-seek-map-size-3 .hide-seek-map-resize-controls { bottom: calc(min(62%, 620px) + 26px); }
.hide-seek-guess-compass {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 10;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 999px;
    border: 1px solid rgba(251, 191, 36, .55);
    background: rgba(15, 23, 42, .86);
    color: #f8fafc;
    box-shadow: 0 14px 36px rgba(2, 6, 23, .42), inset 0 1px 0 rgba(255,255,255,.10);
    backdrop-filter: blur(10px);
    pointer-events: none;
}
.hide-seek-guess-compass.hidden {
    display: none !important;
}
.hide-seek-guess-compass-dial {
    position: relative;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: radial-gradient(circle at 35% 25%, rgba(255,255,255,.20), rgba(2, 6, 23, .78));
    border: 1px solid rgba(255,255,255,.20);
}
.hide-seek-guess-compass-dial b {
    position: absolute;
    top: 2px;
    font-size: 10px;
    color: #fef3c7;
}
.hide-seek-guess-compass-needle {
    display: block;
    color: #f59e0b;
    font-size: 18px;
    line-height: 1;
    transform: rotate(var(--street-heading, 0deg));
    transform-origin: center;
    text-shadow: 0 2px 10px rgba(0,0,0,.55);
}
.hide-seek-guess-compass small {
    min-width: 36px;
    color: #e0f2fe;
    font-weight: 900;
}
@media (max-width: 760px) {
    .map-stage.hide-seek-guess-split #map {
        right: 10px;
        bottom: 10px;
        width: min(54%, 330px);
        height: min(36%, 240px);
        min-width: 170px;
        min-height: 130px;
        border-radius: 16px;
    }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-0 #map {
        width: min(46%, 260px);
        height: min(30%, 190px);
        min-width: 170px;
        min-height: 130px;
    }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-1 #map {
        width: min(54%, 330px);
        height: min(36%, 240px);
    }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-2 #map {
        width: min(74%, 470px);
        height: min(48%, 340px);
    }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-3 #map {
        width: calc(100% - 20px);
        height: min(64%, 470px);
    }
    .map-stage.hide-seek-guess-split #driverControls {
        bottom: 10px;
        left: 10px;
        max-width: calc(100% - 20px);
    }
    .map-stage.hide-seek-guess-split #spectatorHint {
        top: 10px;
        right: 10px;
        left: auto;
        max-width: min(340px, calc(100% - 20px));
        padding: 10px 12px;
    }
    .map-stage.hide-seek-guess-split .hide-seek-map-resize-controls {
        right: 16px;
        gap: 6px;
    }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-0 .hide-seek-map-resize-controls { bottom: calc(min(30%, 190px) + 22px); }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-1 .hide-seek-map-resize-controls { bottom: calc(min(36%, 240px) + 22px); }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-2 .hide-seek-map-resize-controls { bottom: calc(min(48%, 340px) + 22px); }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-3 .hide-seek-map-resize-controls { bottom: calc(min(64%, 470px) + 22px); }
}

/* GeoGames 1.1.3: brújula estándar, overlays responsivos y publicidad inferior escalable. */
.hide-seek-guess-compass {
    top: clamp(68px, 11vh, 104px) !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    z-index: 13 !important;
    padding: clamp(6px, 1.1vw, 8px) clamp(8px, 1.4vw, 11px) !important;
    gap: clamp(6px, 1vw, 9px) !important;
    border-radius: 999px !important;
    max-width: calc(100% - 28px) !important;
}

.hide-seek-guess-compass-dial {
    width: clamp(72px, 9.2vw, 96px) !important;
    height: clamp(72px, 9.2vw, 96px) !important;
    background:
        radial-gradient(circle at center, rgba(15, 23, 42, .94) 0 22%, transparent 23%),
        radial-gradient(circle at 35% 25%, rgba(255,255,255,.20), rgba(2, 6, 23, .82)) !important;
}

.hide-seek-guess-cardinal {
    position: absolute;
    color: #fef3c7;
    font-size: clamp(7px, .82vw, 10px);
    line-height: 1;
    font-weight: 950;
    letter-spacing: .01em;
    text-shadow: 0 1px 5px rgba(0,0,0,.78);
    pointer-events: none;
    user-select: none;
}

.hide-seek-guess-cardinal.compass-north { top: 5px; left: 50%; transform: translateX(-50%); }
.hide-seek-guess-cardinal.compass-east { right: 5px; top: 50%; transform: translateY(-50%); }
.hide-seek-guess-cardinal.compass-south { bottom: 5px; left: 50%; transform: translateX(-50%); }
.hide-seek-guess-cardinal.compass-west { left: 5px; top: 50%; transform: translateY(-50%); }

.hide-seek-guess-compass-dial b {
    display: none !important;
}

.hide-seek-guess-compass-needle {
    font-size: clamp(18px, 2.4vw, 24px) !important;
}

.hide-seek-guess-compass small {
    min-width: clamp(68px, 9vw, 96px) !important;
    font-size: clamp(10px, 1.25vw, 13px) !important;
    white-space: nowrap !important;
}

.countdown-overlay {
    min-width: clamp(82px, 14vw, 116px) !important;
    padding: clamp(6px, 1.2vw, 9px) clamp(9px, 1.8vw, 14px) !important;
    border-radius: clamp(13px, 2.2vw, 18px) !important;
    font-size: clamp(16px, min(3.2vw, 5.2vh), 43px) !important;
}

.countdown-overlay::before {
    margin-bottom: clamp(2px, .7vw, 5px) !important;
    font-size: clamp(7px, .9vw, 9px) !important;
}

.driver-controls {
    padding: clamp(8px, 1.4vw, 12px) !important;
    border-radius: clamp(13px, 2vw, 18px) !important;
    max-width: min(520px, calc(100% - 28px)) !important;
}

.driver-controls button {
    padding: clamp(7px, 1vw, 9px) clamp(9px, 1.4vw, 12px) !important;
    font-size: clamp(12px, 1.35vw, 14px) !important;
}

.driver-controls p,
.streetview-notice {
    font-size: clamp(10px, 1.15vw, 12px) !important;
}

.streetview-player-overlay,
.distance-pulse-overlay,
.chat-overlay-message {
    font-size: clamp(11px, 1.25vw, 14px) !important;
}

.distance-pulse-overlay {
    top: clamp(10px, 2.2vh, 18px) !important;
    width: min(420px, calc(100% - 24px)) !important;
    padding: clamp(9px, 1.5vw, 14px) clamp(11px, 1.7vw, 16px) !important;
    border-radius: clamp(14px, 2vw, 20px) !important;
}

.distance-pulse-overlay strong { font-size: clamp(.82rem, 1.35vw, .96rem) !important; }
.distance-pulse-overlay span { font-size: clamp(.9rem, 1.55vw, 1.08rem) !important; }
.distance-pulse-overlay small { font-size: clamp(.68rem, 1.1vw, .82rem) !important; }

.chat-overlay-host {
    width: min(380px, calc(100% - 24px)) !important;
    gap: clamp(6px, 1vw, 9px) !important;
}

.chat-overlay-message {
    padding: clamp(7px, 1.3vw, 10px) clamp(9px, 1.5vw, 13px) !important;
    border-radius: clamp(12px, 1.8vw, 16px) !important;
}

/* Escala la barra inferior para que no tape la partida en portátiles, móviles y ventanas bajas. */
body .adsterra-game-bottom,
body .gg-sponsor-game-bottom,
body .ad-game-bottom.adsterra-box {
    --gg-bottom-ad-scale: 1;
    width: 728px !important;
    height: 90px !important;
    min-height: 90px !important;
    max-height: 90px !important;
    flex: 0 0 90px !important;
    margin-top: 16px !important;
    margin-bottom: 6px !important;
    overflow: visible !important;
}

body .adsterra-game-bottom .gg-sponsor-frame,
body .gg-sponsor-game-bottom .gg-sponsor-frame,
body .ad-game-bottom.adsterra-box .gg-sponsor-frame,
body .adsterra-game-bottom .adsterra-zone,
body .gg-sponsor-game-bottom .adsterra-zone,
body .ad-game-bottom.adsterra-box .adsterra-zone {
    width: 728px !important;
    height: 90px !important;
    min-height: 90px !important;
    max-height: 90px !important;
    transform: scale(var(--gg-bottom-ad-scale)) !important;
    transform-origin: top center !important;
}

@media (max-width: 1180px), (max-height: 820px) {
    body .adsterra-game-bottom,
    body .gg-sponsor-game-bottom,
    body .ad-game-bottom.adsterra-box {
        --gg-bottom-ad-scale: .82;
        width: 597px !important;
        height: 74px !important;
        min-height: 74px !important;
        max-height: 74px !important;
        flex-basis: 74px !important;
        margin-top: 12px !important;
        margin-bottom: 4px !important;
    }
}

@media (max-width: 980px), (max-height: 700px) {
    body .adsterra-game-bottom,
    body .gg-sponsor-game-bottom,
    body .ad-game-bottom.adsterra-box {
        --gg-bottom-ad-scale: .68;
        width: 496px !important;
        height: 62px !important;
        min-height: 62px !important;
        max-height: 62px !important;
        flex-basis: 62px !important;
        margin-top: 8px !important;
        margin-bottom: 3px !important;
    }
}

@media (max-width: 760px), (max-height: 600px) {
    .countdown-overlay {
        top: 10px !important;
        font-size: clamp(15px, 5.2vw, 26px) !important;
    }

    .hide-seek-guess-compass {
        top: clamp(58px, 11.5vh, 78px) !important;
        padding: 5px 7px !important;
    }

    .hide-seek-guess-compass-dial {
        width: 66px !important;
        height: 66px !important;
    }

    .hide-seek-guess-cardinal {
        font-size: 6.5px !important;
    }

    .hide-seek-guess-compass small {
        display: none !important;
    }

    .driver-controls {
        left: 10px !important;
        bottom: 10px !important;
        max-width: calc(100% - 20px) !important;
        padding: 8px !important;
    }

    .driver-control-buttons {
        gap: 6px !important;
        margin: 6px 0 !important;
    }

    .driver-controls button {
        padding: 7px 9px !important;
        border-radius: 10px !important;
    }

    .distance-pulse-overlay {
        width: min(330px, calc(100% - 20px)) !important;
        padding: 9px 10px !important;
    }

    .chat-overlay-host {
        left: 10px !important;
        width: min(310px, calc(100% - 20px)) !important;
    }

    body .adsterra-game-bottom,
    body .gg-sponsor-game-bottom,
    body .ad-game-bottom.adsterra-box,
    body .adsterra-lobby-top,
    body .gg-sponsor-lobby-top,
    body .ad-lobby-top.adsterra-box,
    body .gg-sponsor-global-footer {
        display: none !important;
    }
}

/* GeoGames 1.1.5: resultado entre objetivos sobre el mapa y brújula estilo GeoGuessr. */
/* GeoGames 1.1.6: brújula continua calibrada con Street View, sin salto entre W/N. */
.map-stage.hide-seek-target-summary-map #map,
.map-stage.hide-seek-round-summary-map #map {
    display: block !important;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.map-stage.hide-seek-target-summary-map #streetView,
.map-stage.hide-seek-round-summary-map #streetView,
.map-stage.hide-seek-target-summary-map #driverControls,
.map-stage.hide-seek-round-summary-map #driverControls {
    display: none !important;
}

.map-stage.hide-seek-target-summary-map #spectatorHint {
    top: 14px;
    right: 14px;
    left: auto;
    z-index: 12;
    width: min(430px, calc(100% - 28px));
    max-width: min(430px, calc(100% - 28px));
    max-height: calc(100% - 28px);
    overflow: auto;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    pointer-events: auto;
}

.hide-seek-map-result-card {
    display: grid;
    gap: 9px;
    padding: clamp(11px, 1.7vw, 15px);
    border-radius: 18px;
    border: 1px solid rgba(125, 211, 252, .40);
    background: linear-gradient(145deg, rgba(15, 23, 42, .88), rgba(8, 47, 73, .76));
    box-shadow: 0 20px 54px rgba(2, 6, 23, .42), inset 0 1px 0 rgba(255,255,255,.08);
    backdrop-filter: blur(12px);
    color: #e2e8f0;
}

.hide-seek-map-result-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.hide-seek-result-kicker {
    display: block;
    margin-bottom: 2px;
    color: #7dd3fc;
    font-size: .72rem;
    font-weight: 950;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.hide-seek-map-result-card h2 {
    margin: 0;
    font-size: clamp(1rem, 1.8vw, 1.25rem);
}

.hide-seek-map-result-card p {
    margin: 0;
    font-size: clamp(.82rem, 1.35vw, .94rem);
}

.hide-seek-result-countdown {
    display: grid;
    place-items: center;
    min-width: 48px;
    height: 40px;
    padding: 0 10px;
    border-radius: 999px;
    background: rgba(14, 165, 233, .18);
    border: 1px solid rgba(125, 211, 252, .38);
    color: #e0f2fe;
    font-size: 1rem;
    white-space: nowrap;
}

.hide-seek-map-result-card details {
    border: 1px solid rgba(148, 163, 184, .22);
    border-radius: 14px;
    background: rgba(2, 6, 23, .28);
    overflow: hidden;
}

.hide-seek-map-result-card summary {
    cursor: pointer;
    padding: 8px 10px;
    color: #e0f2fe;
    font-weight: 900;
    user-select: none;
}

.hide-seek-map-result-card .hide-seek-result-list,
.hide-seek-map-result-card .score-list {
    max-height: min(230px, 34vh);
    overflow: auto;
    margin: 0;
    padding: 0 8px 8px;
}

.hide-seek-map-result-card .hide-seek-result-row {
    grid-template-columns: minmax(80px, 1fr) minmax(74px, 1fr) auto auto;
    padding: 7px 8px;
    font-size: .78rem;
}

.hide-seek-guess-compass {
    top: clamp(58px, 9.4vh, 88px) !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    z-index: 14 !important;
    display: block !important;
    width: clamp(180px, 28vw, 320px) !important;
    height: clamp(28px, 4.2vw, 36px) !important;
    padding: 0 !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    background: rgba(15, 23, 42, .68) !important;
    box-shadow: 0 12px 34px rgba(2, 6, 23, .36), inset 0 1px 0 rgba(255,255,255,.08) !important;
    backdrop-filter: blur(8px) !important;
    overflow: hidden !important;
    pointer-events: none !important;
}

.hide-seek-guess-compass.hidden {
    display: none !important;
}

.hide-seek-guess-compass-window {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: inherit;
    mask-image: linear-gradient(90deg, transparent 0, #000 13%, #000 87%, transparent 100%);
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 13%, #000 87%, transparent 100%);
}

.hide-seek-guess-compass-track {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    width: 100%;
    height: 100%;
    will-change: contents;
}

.hide-seek-guess-compass-tick {
    position: absolute;
    bottom: 6px;
    width: 1px;
    height: 14px;
    background: rgba(255,255,255,.48);
    transform: translateX(-50%);
}

.hide-seek-guess-compass-tick.minor {
    height: 10px;
    bottom: 8px;
    opacity: .62;
}

.hide-seek-guess-compass-tick.major {
    height: 18px;
    bottom: 5px;
    background: rgba(255,255,255,.70);
}

.hide-seek-guess-compass-tick b {
    position: absolute;
    top: -15px;
    left: 50%;
    width: 30px;
    transform: translateX(-50%);
    color: #f8fafc;
    font-size: clamp(8px, 1.2vw, 11px);
    font-weight: 950;
    line-height: 1;
    letter-spacing: .02em;
    text-align: center;
    font-variant-numeric: tabular-nums;
    text-shadow: 0 1px 4px rgba(0,0,0,.78);
    white-space: nowrap;
}

.hide-seek-guess-compass-center {
    position: absolute;
    left: 50%;
    top: 4px;
    bottom: 4px;
    width: 2px;
    transform: translateX(-50%);
    border-radius: 99px;
    background: rgba(248, 250, 252, .95);
    box-shadow: 0 0 0 1px rgba(2,6,23,.22), 0 0 14px rgba(255,255,255,.32);
}

.hide-seek-guess-compass-dial,
.hide-seek-guess-cardinal,
.hide-seek-guess-compass-needle,
.hide-seek-guess-compass small {
    display: none !important;
}

@media (max-width: 760px), (max-height: 560px) {
    .map-stage.hide-seek-target-summary-map #spectatorHint {
        top: 10px;
        right: 10px;
        width: min(360px, calc(100% - 20px));
        max-height: min(46vh, 310px);
    }
    .hide-seek-map-result-card {
        gap: 7px;
        border-radius: 15px;
    }
    .hide-seek-map-result-card .hide-seek-result-list,
    .hide-seek-map-result-card .score-list {
        max-height: 135px;
    }
    .hide-seek-map-result-card .hide-seek-result-row {
        grid-template-columns: 1fr auto;
    }
    .hide-seek-map-result-card .hide-seek-result-row span {
        grid-column: 1 / -1;
    }
    .hide-seek-guess-compass {
        top: clamp(50px, 9vh, 70px) !important;
        width: clamp(158px, 44vw, 240px) !important;
        height: 28px !important;
    }
    .hide-seek-guess-compass-tick b {
        top: -13px;
    }
}
.hide-seek-map-result-card .hide-seek-score-list {
    max-height: min(230px, 34vh);
    overflow: auto;
    margin: 0;
    padding: 0 8px 8px;
}
@media (max-width: 760px), (max-height: 560px) {
    .hide-seek-map-result-card .hide-seek-score-list { max-height: 135px; }
}

/* GeoGames 1.1.7: más separación contador/brújula, desplegables estables y etiquetas finales de Escondite. */
.hide-seek-guess-compass {
    top: clamp(82px, 12.8vh, 122px) !important;
}
@media (max-width: 760px), (max-height: 560px) {
    .hide-seek-guess-compass {
        top: clamp(66px, 13.8vh, 92px) !important;
    }
}
.hide-seek-house-label {
    transform: translate(-50%, calc(-100% - 28px));
    background: linear-gradient(135deg, rgba(6, 78, 59, .96), rgba(15, 23, 42, .94));
}
.hide-seek-map-result-card details[open] summary {
    border-bottom: 1px solid rgba(148, 163, 184, .18);
    background: rgba(14, 165, 233, .08);
}

/* GeoGames 1.1.8: UI de Escondite más responsive, Pegman visible desde el mapa inicial y resumen lateral. */
.map-stage.hide-seek-map-selecting #map {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
}
/* Panel superior derecho de Escondite: compacto y escalable. */
.spectator-hint {
    top: clamp(8px, 1.8vh, 16px) !important;
    right: clamp(8px, 1.6vw, 16px) !important;
    max-width: min(320px, calc(100% - 20px)) !important;
    max-height: min(58vh, calc(100% - 24px)) !important;
    overflow: auto !important;
    padding: clamp(9px, 1.35vw, 16px) !important;
    border-radius: clamp(13px, 1.8vw, 16px) !important;
    font-size: clamp(12px, 1.16vw, 14px) !important;
}
.spectator-hint h2 {
    margin: 0 0 clamp(5px, .8vw, 8px) !important;
    font-size: clamp(.98rem, 1.55vw, 1.22rem) !important;
    line-height: 1.12 !important;
}
.spectator-hint p,
.spectator-hint small,
.spectator-hint .muted {
    font-size: clamp(.72rem, 1.08vw, .88rem) !important;
    line-height: 1.25 !important;
}
.spectator-hint .checkpoint-row,
.spectator-hint .hide-seek-result-row {
    padding: clamp(6px, 1vw, 8px) !important;
    gap: clamp(5px, .8vw, 8px) !important;
}

/* Caja inferior izquierda de navegación: más pequeña y sin invadir mapa/anuncios. */
.driver-controls {
    left: clamp(8px, 1.4vw, 18px) !important;
    bottom: clamp(8px, 1.5vh, 18px) !important;
    max-width: min(430px, calc(100% - 20px)) !important;
    padding: clamp(7px, 1.08vw, 12px) !important;
    border-radius: clamp(12px, 1.6vw, 18px) !important;
}
.driver-control-buttons {
    gap: clamp(5px, .75vw, 8px) !important;
    margin: clamp(5px, .75vw, 8px) 0 !important;
}
.driver-controls button {
    min-height: 0 !important;
    padding: clamp(6px, .9vw, 9px) clamp(8px, 1.15vw, 12px) !important;
    border-radius: clamp(9px, 1.25vw, 12px) !important;
    font-size: clamp(11px, 1.05vw, 13px) !important;
}
.streetview-links-info,
.driver-controls p,
.streetview-notice {
    font-size: clamp(10px, 1vw, 12px) !important;
    line-height: 1.22 !important;
}
.streetview-links-info:empty,
.streetview-notice:empty {
    display: none !important;
}

/* Evita que los controles queden debajo del minimapa durante Adivinar. */
.map-stage.hide-seek-guess-split.hide-seek-map-size-0 #driverControls { bottom: calc(min(28%, 240px) + 26px) !important; }
.map-stage.hide-seek-guess-split.hide-seek-map-size-1 #driverControls { bottom: calc(min(34%, 310px) + 26px) !important; }
.map-stage.hide-seek-guess-split.hide-seek-map-size-2 #driverControls { bottom: calc(min(46%, 430px) + 26px) !important; }
.map-stage.hide-seek-guess-split.hide-seek-map-size-3 #driverControls { bottom: calc(min(62%, 620px) + 26px) !important; }

/* Resumen de ronda: igual que el de objetivo, lateral y con mapa completo visible. */
.map-stage.hide-seek-round-summary-map #spectatorHint {
    top: clamp(8px, 1.8vh, 14px) !important;
    right: clamp(8px, 1.6vw, 14px) !important;
    left: auto !important;
    z-index: 12 !important;
    width: min(430px, calc(100% - 20px)) !important;
    max-width: min(430px, calc(100% - 20px)) !important;
    max-height: min(60vh, calc(100% - 20px)) !important;
    overflow: auto !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    pointer-events: auto !important;
}

/* Brújula estilo GeoGuessr más legible: letras grandes y ticks más cortos. */
.hide-seek-guess-compass {
    top: clamp(90px, 13.8vh, 132px) !important;
    width: clamp(210px, 32vw, 360px) !important;
    height: clamp(30px, 4vw, 36px) !important;
}
.hide-seek-guess-compass-tick {
    height: 8px !important;
    bottom: 7px !important;
}
.hide-seek-guess-compass-tick.minor {
    height: 5px !important;
    bottom: 8px !important;
}
.hide-seek-guess-compass-tick.major {
    height: 10px !important;
    bottom: 6px !important;
}
.hide-seek-guess-compass-tick b {
    top: -16px !important;
    width: 38px !important;
    font-size: clamp(11px, 1.35vw, 14px) !important;
    letter-spacing: .015em !important;
}

@media (max-width: 760px), (max-height: 600px) {
    .spectator-hint {
        max-width: min(300px, calc(100% - 16px)) !important;
        max-height: min(44vh, 260px) !important;
        padding: 9px !important;
    }
    .driver-controls {
        left: 8px !important;
        bottom: 8px !important;
        max-width: min(360px, calc(100% - 16px)) !important;
        padding: 7px !important;
    }
    .driver-controls p,
    #streetViewHelp {
        display: none !important;
    }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-0 #driverControls { bottom: calc(min(30%, 190px) + 20px) !important; }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-1 #driverControls { bottom: calc(min(36%, 240px) + 20px) !important; }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-2 #driverControls { bottom: calc(min(48%, 340px) + 20px) !important; }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-3 #driverControls { bottom: calc(min(64%, 470px) + 20px) !important; }
    .hide-seek-guess-compass {
        top: clamp(72px, 14vh, 96px) !important;
        width: clamp(190px, 56vw, 280px) !important;
        height: 30px !important;
    }
    .hide-seek-guess-compass-tick b {
        top: -15px !important;
        font-size: 11px !important;
    }
    .hide-seek-map-result-card .hide-seek-result-list,
    .hide-seek-map-result-card .score-list,
    .hide-seek-map-result-card .hide-seek-score-list {
        max-height: 120px !important;
    }
}

@media (max-height: 520px) {
    .spectator-hint {
        max-height: min(38vh, 205px) !important;
    }
    .driver-controls {
        transform: scale(.92) !important;
        transform-origin: bottom left !important;
    }
    .hide-seek-guess-compass {
        top: clamp(62px, 15vh, 82px) !important;
    }
}


/* GeoGames 1.1.9: selección de Escondite integrada en el mapa y controles abajo a la derecha. */
.hide-seek-map-guide-control {
    margin: 10px 0 0 10px;
    max-width: min(310px, calc(100vw - 28px));
    padding: 9px 12px;
    border-radius: 3px;
    border: 1px solid rgba(15, 23, 42, .18);
    background: rgba(255, 255, 255, .94);
    color: #172033;
    box-shadow: 0 2px 6px rgba(60, 64, 67, .30);
    font: 500 12px/1.25 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    pointer-events: auto;
}
.hide-seek-map-guide-control.hidden {
    display: none !important;
}
.hide-seek-map-guide-title {
    font-size: 13px;
    font-weight: 800;
    color: #0f172a;
    margin-bottom: 2px;
}
.hide-seek-map-guide-text {
    color: #475569;
}
.hide-seek-map-guide-control.is-ready {
    border-left: 4px solid #22c55e;
}

/* No se usa la tarjeta flotante superior derecha durante la fase de esconderse: el aviso vive dentro del mapa. */
.map-stage.hide-seek-map-selecting #spectatorHint,
.map-stage.hide-seek-hiding-split #spectatorHint {
    display: none !important;
}

/* Controles de Street View alineados abajo a la derecha. */
.driver-controls {
    left: auto !important;
    right: clamp(8px, 1.4vw, 18px) !important;
    bottom: clamp(8px, 1.5vh, 18px) !important;
    z-index: 22 !important;
}
.map-stage.hide-seek-hiding-split #driverControls,
.map-stage.hide-seek-guess-split #driverControls,
.map-stage.scotland-cop-map-split #driverControls {
    left: auto !important;
    right: 14px !important;
    max-width: min(500px, calc(100% - 28px)) !important;
}
.map-stage.hide-seek-hiding-split.hide-seek-map-size-0 #driverControls,
.map-stage.hide-seek-guess-split.hide-seek-map-size-0 #driverControls,
.map-stage.scotland-cop-map-split.hide-seek-map-size-0 #driverControls { bottom: calc(min(28%, 240px) + 26px) !important; }
.map-stage.hide-seek-hiding-split.hide-seek-map-size-1 #driverControls,
.map-stage.hide-seek-guess-split.hide-seek-map-size-1 #driverControls,
.map-stage.scotland-cop-map-split.hide-seek-map-size-1 #driverControls { bottom: calc(min(34%, 310px) + 26px) !important; }
.map-stage.hide-seek-hiding-split.hide-seek-map-size-2 #driverControls,
.map-stage.hide-seek-guess-split.hide-seek-map-size-2 #driverControls,
.map-stage.scotland-cop-map-split.hide-seek-map-size-2 #driverControls { bottom: calc(min(46%, 430px) + 26px) !important; }
.map-stage.hide-seek-hiding-split.hide-seek-map-size-3 #driverControls,
.map-stage.hide-seek-guess-split.hide-seek-map-size-3 #driverControls,
.map-stage.scotland-cop-map-split.hide-seek-map-size-3 #driverControls { bottom: calc(min(62%, 620px) + 26px) !important; }

@media (max-width: 760px) {
    .hide-seek-map-guide-control {
        margin: 8px 0 0 8px;
        max-width: min(280px, calc(100vw - 24px));
        padding: 8px 10px;
        font-size: 11px;
    }
    .hide-seek-map-guide-title { font-size: 12px; }
    .driver-controls {
        right: 10px !important;
        left: auto !important;
        max-width: min(420px, calc(100% - 20px)) !important;
    }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-0 #driverControls,
    .map-stage.hide-seek-guess-split.hide-seek-map-size-0 #driverControls,
    .map-stage.scotland-cop-map-split.hide-seek-map-size-0 #driverControls { bottom: calc(min(30%, 190px) + 22px) !important; }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-1 #driverControls,
    .map-stage.hide-seek-guess-split.hide-seek-map-size-1 #driverControls,
    .map-stage.scotland-cop-map-split.hide-seek-map-size-1 #driverControls { bottom: calc(min(36%, 240px) + 22px) !important; }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-2 #driverControls,
    .map-stage.hide-seek-guess-split.hide-seek-map-size-2 #driverControls,
    .map-stage.scotland-cop-map-split.hide-seek-map-size-2 #driverControls { bottom: calc(min(48%, 340px) + 22px) !important; }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-3 #driverControls,
    .map-stage.hide-seek-guess-split.hide-seek-map-size-3 #driverControls,
    .map-stage.scotland-cop-map-split.hide-seek-map-size-3 #driverControls { bottom: calc(min(64%, 470px) + 22px) !important; }
}

@media (max-width: 560px), (max-height: 560px) {
    .driver-controls {
        right: 8px !important;
        bottom: 8px !important;
        max-width: calc(100% - 16px) !important;
    }
    .map-stage.hide-seek-hiding-split #driverControls,
    .map-stage.hide-seek-guess-split #driverControls,
    .map-stage.scotland-cop-map-split #driverControls {
        max-width: min(360px, calc(100% - 16px)) !important;
    }
    .driver-control-buttons {
        gap: 5px !important;
    }
    .driver-controls button {
        padding: 6px 8px !important;
        font-size: 11px !important;
    }
}

/* GeoGames 1.1.10: integración de paneles de Escondite en mapa y controles ajustados. */
.toast-host[data-position="center"] {
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 130 !important;
}
.toast-center {
    font-size: clamp(1rem, 2vw, 1.28rem) !important;
    padding: 14px 22px !important;
    box-shadow: 0 20px 60px rgba(2, 6, 23, .50), 0 0 0 1px rgba(255,255,255,.12) !important;
}

/* La tarjeta "Descubrir a..." vive dentro del mapa, no flotando sobre Street View. */
.map-stage.hide-seek-guess-split #spectatorHint {
    display: none !important;
}
.map-stage.hide-seek-guess-split .hide-seek-map-resize-controls {
    display: none !important;
}
.hide-seek-map-guide-control.is-guessing {
    width: min(330px, calc(100vw - 28px));
    max-width: min(330px, calc(100vw - 28px));
    padding: 10px 11px;
    border-radius: 4px;
}
.hide-seek-map-guide-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}
.hide-seek-map-guide-text strong {
    color: #0f172a;
}
.hide-seek-map-guide-resize {
    display: inline-flex;
    flex: 0 0 auto;
    gap: 5px;
}
.hide-seek-inline-map-size-btn {
    display: inline-grid;
    place-items: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 1px solid rgba(60, 64, 67, .26);
    border-radius: 4px;
    background: #fff;
    color: #1f2937;
    font-size: 16px;
    font-weight: 900;
    line-height: 1;
    box-shadow: 0 1px 2px rgba(60, 64, 67, .22);
}
.hide-seek-inline-map-size-btn:disabled {
    opacity: .42;
    cursor: not-allowed;
}
.hide-seek-map-guide-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 9px;
}
.hide-seek-map-guide-actions button {
    min-height: 0;
    padding: 7px 10px;
    border-radius: 7px;
    font-size: 12px;
    line-height: 1.1;
}

/* Navegación de Street View: esquina inferior izquierda, alineada con el borde inferior del minimapa. */
.driver-controls,
.map-stage.hide-seek-hiding-split #driverControls,
.map-stage.hide-seek-guess-split #driverControls,
.map-stage.scotland-cop-map-split #driverControls {
    left: clamp(8px, 1.4vw, 18px) !important;
    right: auto !important;
    bottom: clamp(8px, 1.5vh, 18px) !important;
    max-width: min(430px, calc(100% - 24px)) !important;
    transform-origin: bottom left !important;
}
.map-stage.hide-seek-hiding-split.hide-seek-map-size-0 #driverControls,
.map-stage.hide-seek-hiding-split.hide-seek-map-size-1 #driverControls,
.map-stage.hide-seek-hiding-split.hide-seek-map-size-2 #driverControls,
.map-stage.hide-seek-hiding-split.hide-seek-map-size-3 #driverControls,
.map-stage.hide-seek-guess-split.hide-seek-map-size-0 #driverControls,
.map-stage.hide-seek-guess-split.hide-seek-map-size-1 #driverControls,
.map-stage.hide-seek-guess-split.hide-seek-map-size-2 #driverControls,
.map-stage.hide-seek-guess-split.hide-seek-map-size-3 #driverControls,
.map-stage.scotland-cop-map-split.hide-seek-map-size-0 #driverControls,
.map-stage.scotland-cop-map-split.hide-seek-map-size-1 #driverControls,
.map-stage.scotland-cop-map-split.hide-seek-map-size-2 #driverControls,
.map-stage.scotland-cop-map-split.hide-seek-map-size-3 #driverControls {
    bottom: clamp(8px, 1.5vh, 18px) !important;
}

.hide-seek-summary-continue {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 2px;
}
.hide-seek-summary-continue button {
    min-height: 0;
    padding: 8px 12px;
    border-radius: 999px;
}
.hide-seek-summary-continue small {
    color: #bae6fd;
    font-weight: 800;
}

@media (max-width: 760px), (max-height: 600px) {
    .hide-seek-map-guide-control.is-guessing {
        width: min(292px, calc(100vw - 22px));
        max-width: min(292px, calc(100vw - 22px));
        padding: 8px 9px;
        font-size: 11px;
    }
    .hide-seek-inline-map-size-btn {
        width: 27px;
        height: 27px;
        font-size: 14px;
    }
    .hide-seek-map-guide-actions button {
        padding: 6px 8px;
        font-size: 11px;
    }
    .driver-controls,
    .map-stage.hide-seek-hiding-split #driverControls,
    .map-stage.hide-seek-guess-split #driverControls,
    .map-stage.scotland-cop-map-split #driverControls {
        left: 8px !important;
        right: auto !important;
        bottom: 8px !important;
        max-width: min(360px, calc(100% - 16px)) !important;
    }
}


/* GeoGames 1.1.11: ajustes visuales Escondite y popup de adivinar. */
.hide-seek-map-guide-control.is-guessing {
    border: 1px solid rgba(125, 211, 252, .34) !important;
    background: linear-gradient(145deg, rgba(8, 18, 39, .96), rgba(8, 47, 73, .92) 58%, rgba(12, 74, 110, .90)) !important;
    color: #e0f2fe !important;
    box-shadow: 0 16px 40px rgba(2, 6, 23, .48), inset 0 0 0 1px rgba(255,255,255,.06) !important;
    backdrop-filter: blur(12px);
}
.hide-seek-map-guide-control.is-guessing .hide-seek-map-guide-title {
    color: #f8fafc !important;
    font-size: 14px;
    letter-spacing: .01em;
}
.hide-seek-map-guide-control.is-guessing .hide-seek-map-guide-text,
.hide-seek-map-guide-control.is-guessing .hide-seek-map-guide-text strong {
    color: #bae6fd !important;
}
.hide-seek-map-guide-control.is-guessing .hide-seek-inline-map-size-btn {
    border-color: rgba(125, 211, 252, .34) !important;
    background: rgba(15, 23, 42, .82) !important;
    color: #e0f2fe !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.05), 0 1px 2px rgba(2,6,23,.22) !important;
}
.hide-seek-map-guide-control.is-guessing .hide-seek-inline-map-size-btn:hover:not(:disabled) {
    background: rgba(14, 116, 144, .78) !important;
}
.hide-seek-map-guide-control.is-guessing .hide-seek-map-guide-actions .secondary {
    background: linear-gradient(135deg, #0ea5e9, #2563eb) !important;
    border-color: rgba(186, 230, 253, .42) !important;
    color: #fff !important;
}
.hide-seek-map-guide-control.is-guessing .hide-seek-map-guide-actions .secondary:disabled {
    opacity: .56;
}
.hide-seek-map-guide-control.is-guessing .hide-seek-map-guide-actions .ghost {
    border-color: rgba(148, 163, 184, .38) !important;
    background: rgba(15, 23, 42, .54) !important;
    color: #dbeafe !important;
}

/* GeoGames 1.1.14: Descubrir integrado en el contorno del minimapa, acciones junto a navegación y brújula alta sin contador. */
.hide-seek-map-guide-control.is-guessing.is-frame-label {
    width: auto !important;
    max-width: min(360px, calc(100vw - 28px)) !important;
    margin: -13px 0 0 12px !important;
    padding: 6px 8px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(125, 211, 252, .58) !important;
    background: linear-gradient(135deg, rgba(8, 18, 39, .98), rgba(8, 47, 73, .96)) !important;
    box-shadow: 0 10px 24px rgba(2, 6, 23, .42), 0 0 0 2px rgba(2, 6, 23, .22) !important;
    backdrop-filter: blur(12px) !important;
}
.hide-seek-map-guide-control.is-guessing.is-frame-label .hide-seek-map-guide-head {
    align-items: center !important;
    gap: 8px !important;
}
.hide-seek-map-guide-control.is-guessing.is-frame-label .hide-seek-map-guide-title {
    margin: 0 !important;
    color: #f8fafc !important;
    font-size: clamp(12px, 1.06vw, 14px) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}
.hide-seek-map-guide-control.is-guessing.is-frame-label .hide-seek-map-guide-actions,
.hide-seek-map-guide-control.is-guessing.is-frame-label .hide-seek-map-guide-text {
    display: none !important;
}
.hide-seek-map-guide-control.is-guessing.is-frame-label .hide-seek-map-guide-resize {
    gap: 4px !important;
}
.hide-seek-map-guide-control.is-guessing.is-frame-label .hide-seek-inline-map-size-btn {
    width: 26px !important;
    height: 26px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
}

.hide-seek-guess-actions-dock {
    position: absolute;
    left: clamp(8px, 1.4vw, 18px);
    bottom: clamp(8px, 1.5vh, 18px);
    z-index: 23;
    width: min(210px, calc(100% - 24px));
    pointer-events: auto;
}
.hide-seek-guess-actions-dock.hidden {
    display: none !important;
}
.hide-seek-guess-actions-dock-inner {
    display: grid;
    gap: 7px;
    padding: 9px;
    border-radius: 16px;
    border: 1px solid rgba(125, 211, 252, .34);
    background: linear-gradient(145deg, rgba(8, 18, 39, .92), rgba(8, 47, 73, .88));
    box-shadow: 0 16px 42px rgba(2, 6, 23, .42), inset 0 0 0 1px rgba(255,255,255,.05);
    backdrop-filter: blur(12px);
}
.hide-seek-guess-actions-status {
    color: #bae6fd;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.15;
}
.hide-seek-guess-actions-status strong {
    color: #f8fafc;
}
.hide-seek-guess-actions-buttons {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
}
.hide-seek-guess-actions-dock button {
    width: 100%;
    min-height: 0 !important;
    padding: 8px 10px !important;
    border-radius: 12px !important;
    font-size: 12px !important;
    line-height: 1.1 !important;
}
.hide-seek-guess-actions-dock .secondary {
    background: linear-gradient(135deg, #0ea5e9, #2563eb) !important;
    border-color: rgba(186, 230, 253, .42) !important;
    color: #fff !important;
}
.hide-seek-guess-actions-dock .secondary:disabled {
    opacity: .56;
}
.hide-seek-guess-actions-dock .ghost {
    border-color: rgba(148, 163, 184, .38) !important;
    background: rgba(15, 23, 42, .54) !important;
    color: #dbeafe !important;
}
.map-stage.hide-seek-guess-split #driverControls {
    left: clamp(232px, 24vw, 250px) !important;
    right: auto !important;
    bottom: clamp(8px, 1.5vh, 18px) !important;
    max-width: min(430px, calc(100% - 260px)) !important;
}
.map-stage.hide-seek-guess-split #driverControls #streetViewHelp,
.map-stage.hide-seek-guess-split #driverControls p {
    display: none !important;
}
.map-stage.hide-seek-guess-split #checkpointList .hide-seek-actions {
    display: none !important;
}
.hide-seek-guess-compass.no-countdown {
    top: clamp(14px, 2.4vh, 28px) !important;
}

@media (max-width: 760px), (max-height: 600px) {
    .hide-seek-map-guide-control.is-guessing.is-frame-label {
        margin: -10px 0 0 8px !important;
        max-width: min(300px, calc(100vw - 20px)) !important;
        padding: 5px 7px !important;
    }
    .hide-seek-map-guide-control.is-guessing.is-frame-label .hide-seek-inline-map-size-btn {
        width: 24px !important;
        height: 24px !important;
        font-size: 13px !important;
    }
    .hide-seek-guess-actions-dock {
        left: 8px;
        bottom: 8px;
        width: min(190px, calc(50% - 12px));
    }
    .hide-seek-guess-actions-dock-inner {
        padding: 7px;
        border-radius: 14px;
    }
    .hide-seek-guess-actions-status {
        font-size: 11px;
    }
    .hide-seek-guess-actions-dock button {
        padding: 7px 8px !important;
        font-size: 11px !important;
    }
    .map-stage.hide-seek-guess-split #driverControls {
        left: calc(min(190px, calc(50% - 12px)) + 16px) !important;
        bottom: 8px !important;
        max-width: calc(100% - min(190px, calc(50% - 12px)) - 24px) !important;
    }
    .hide-seek-guess-compass.no-countdown {
        top: clamp(10px, 2vh, 18px) !important;
    }
}

@media (max-width: 520px) {
    .hide-seek-guess-actions-dock {
        width: min(210px, calc(100% - 16px));
    }
    .map-stage.hide-seek-guess-split #driverControls {
        left: 8px !important;
        bottom: calc(88px + 2vh) !important;
        max-width: min(360px, calc(100% - 16px)) !important;
    }
}

/* GeoGames 1.1.15: marco completo para el minimapa de adivinar y acciones dentro del mapa. */
.map-stage.hide-seek-guess-split {
    --hs-guess-map-right: 14px;
    --hs-guess-map-bottom: 14px;
    --hs-guess-map-w: clamp(240px, 34%, 430px);
    --hs-guess-map-h: clamp(180px, 34%, 310px);
    --hs-guess-frame-radius: 22px;
}
.map-stage.hide-seek-guess-split.hide-seek-map-size-0 {
    --hs-guess-map-w: clamp(220px, 28%, 360px);
    --hs-guess-map-h: clamp(160px, 28%, 240px);
}
.map-stage.hide-seek-guess-split.hide-seek-map-size-1 {
    --hs-guess-map-w: clamp(240px, 34%, 430px);
    --hs-guess-map-h: clamp(180px, 34%, 310px);
}
.map-stage.hide-seek-guess-split.hide-seek-map-size-2 {
    --hs-guess-map-w: clamp(280px, 52%, 640px);
    --hs-guess-map-h: clamp(220px, 46%, 430px);
}
.map-stage.hide-seek-guess-split.hide-seek-map-size-3 {
    --hs-guess-map-w: clamp(320px, 72%, 900px);
    --hs-guess-map-h: clamp(260px, 62%, 620px);
}
.map-stage.hide-seek-guess-split #map {
    right: var(--hs-guess-map-right) !important;
    bottom: var(--hs-guess-map-bottom) !important;
    width: var(--hs-guess-map-w) !important;
    height: var(--hs-guess-map-h) !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: calc(100% - 28px) !important;
    max-height: calc(100% - 28px) !important;
    border: 0 !important;
    border-radius: var(--hs-guess-frame-radius) !important;
    box-shadow: 0 22px 70px rgba(2, 6, 23, .55) !important;
}
.hide-seek-guess-map-frame-control {
    display: none;
}
.map-stage.hide-seek-guess-split .hide-seek-guess-map-frame-control:not(.hidden) {
    position: absolute;
    right: var(--hs-guess-map-right);
    bottom: var(--hs-guess-map-bottom);
    width: var(--hs-guess-map-w);
    height: var(--hs-guess-map-h);
    max-width: calc(100% - 28px);
    max-height: calc(100% - 28px);
    z-index: 26;
    display: block;
    pointer-events: none;
    border-radius: var(--hs-guess-frame-radius);
    border: 3px solid rgba(125, 211, 252, .76);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.10), 0 0 0 1px rgba(2, 6, 23, .34), 0 18px 46px rgba(2, 6, 23, .42);
    overflow: hidden;
}
.map-stage.hide-seek-guess-split .hide-seek-guess-map-frame-control:not(.hidden)::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: clamp(34px, 5.2vh, 44px);
    background: linear-gradient(180deg, rgba(5, 16, 34, .96), rgba(8, 47, 73, .82));
    border-bottom: 1px solid rgba(125, 211, 252, .42);
    pointer-events: none;
}
.hide-seek-guess-map-frame-title {
    position: absolute;
    top: 9px;
    left: 13px;
    right: 112px;
    z-index: 1;
    color: #f8fafc;
    font-size: clamp(12px, 1.04vw, 15px);
    font-weight: 1000;
    line-height: 1.1;
    letter-spacing: .01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-shadow: 0 2px 8px rgba(2,6,23,.55);
}
.hide-seek-guess-map-frame-progress {
    position: absolute;
    top: 25px;
    left: 13px;
    z-index: 1;
    color: #bae6fd;
    font-size: 10px;
    font-weight: 850;
    line-height: 1;
}
.hide-seek-guess-map-frame-progress strong {
    color: #fff;
}
.hide-seek-guess-map-frame-resize {
    position: absolute;
    top: 7px;
    right: 8px;
    z-index: 2;
    display: inline-flex;
    gap: 5px;
    pointer-events: auto;
}
.map-stage.hide-seek-guess-split .hide-seek-guess-map-frame-resize .hide-seek-inline-map-size-btn {
    width: 28px !important;
    height: 28px !important;
    border-radius: 10px !important;
    border-color: rgba(125, 211, 252, .50) !important;
    background: rgba(8, 18, 39, .86) !important;
    color: #e0f2fe !important;
    box-shadow: 0 5px 16px rgba(2, 6, 23, .28), inset 0 0 0 1px rgba(255,255,255,.06) !important;
}
.map-stage.hide-seek-guess-split .hide-seek-guess-map-frame-resize .hide-seek-inline-map-size-btn:hover:not(:disabled) {
    background: rgba(14, 116, 144, .90) !important;
}
.map-stage.hide-seek-guess-split .hide-seek-map-guide-control.is-frame-label {
    display: none !important;
}
.map-stage.hide-seek-guess-split .hide-seek-guess-actions-dock {
    left: auto !important;
    right: calc(var(--hs-guess-map-right) + var(--hs-guess-map-w) - min(210px, calc(var(--hs-guess-map-w) - 24px)) - 12px) !important;
    bottom: calc(var(--hs-guess-map-bottom) + 12px) !important;
    width: min(210px, calc(var(--hs-guess-map-w) - 24px)) !important;
    max-width: calc(var(--hs-guess-map-w) - 24px) !important;
    z-index: 27 !important;
}
.map-stage.hide-seek-guess-split .hide-seek-guess-actions-dock-inner {
    border-radius: 14px !important;
    background: linear-gradient(145deg, rgba(8, 18, 39, .94), rgba(8, 47, 73, .90)) !important;
}
.map-stage.hide-seek-guess-split #driverControls {
    left: clamp(8px, 1.4vw, 18px) !important;
    right: auto !important;
    bottom: clamp(8px, 1.5vh, 18px) !important;
    max-width: min(430px, calc(100% - 24px)) !important;
}

@media (max-width: 760px), (max-height: 600px) {
    .map-stage.hide-seek-guess-split {
        --hs-guess-map-right: 8px;
        --hs-guess-map-bottom: 8px;
        --hs-guess-map-w: clamp(210px, 48%, 360px);
        --hs-guess-map-h: clamp(155px, 36%, 260px);
        --hs-guess-frame-radius: 18px;
    }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-0 {
        --hs-guess-map-w: clamp(170px, 46%, 260px);
        --hs-guess-map-h: clamp(130px, 30%, 190px);
    }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-1 {
        --hs-guess-map-w: clamp(210px, 54%, 340px);
        --hs-guess-map-h: clamp(155px, 36%, 240px);
    }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-2 {
        --hs-guess-map-w: clamp(240px, 66%, 520px);
        --hs-guess-map-h: clamp(180px, 48%, 340px);
    }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-3 {
        --hs-guess-map-w: clamp(270px, 82%, 720px);
        --hs-guess-map-h: clamp(200px, 64%, 470px);
    }
    .hide-seek-guess-map-frame-title {
        top: 8px;
        left: 11px;
        right: 96px;
        font-size: 12px;
    }
    .hide-seek-guess-map-frame-progress {
        display: none;
    }
    .hide-seek-guess-map-frame-resize {
        top: 6px;
        right: 7px;
    }
    .map-stage.hide-seek-guess-split .hide-seek-guess-map-frame-resize .hide-seek-inline-map-size-btn {
        width: 25px !important;
        height: 25px !important;
        font-size: 13px !important;
    }
    .map-stage.hide-seek-guess-split .hide-seek-guess-actions-dock {
        right: calc(var(--hs-guess-map-right) + var(--hs-guess-map-w) - min(185px, calc(var(--hs-guess-map-w) - 18px)) - 9px) !important;
        bottom: calc(var(--hs-guess-map-bottom) + 9px) !important;
        width: min(185px, calc(var(--hs-guess-map-w) - 18px)) !important;
        max-width: calc(var(--hs-guess-map-w) - 18px) !important;
    }
    .map-stage.hide-seek-guess-split .hide-seek-guess-actions-dock-inner {
        padding: 6px !important;
        gap: 5px !important;
    }
    .map-stage.hide-seek-guess-split .hide-seek-guess-actions-status {
        font-size: 10px !important;
    }
    .map-stage.hide-seek-guess-split .hide-seek-guess-actions-dock button {
        padding: 6px 7px !important;
        font-size: 10.5px !important;
    }
}

/* GeoGames 1.1.19: responsive banner scaling instead of hiding/cropping on narrow screens. */
body .adsterra-lobby-top,
body .gg-sponsor-lobby-top,
body .ad-lobby-top.adsterra-box,
body .ad-lobby-bottom.gg-sponsor-global-footer,
body .ad-lobby-bottom.adsterra-box,
body .gg-sponsor-global-footer {
    --gg-banner-scale: 1;
    display: block !important;
    width: calc(var(--sponsor-width, 728px) * var(--gg-banner-scale)) !important;
    height: calc(var(--sponsor-height, 90px) * var(--gg-banner-scale)) !important;
    min-height: calc(var(--sponsor-height, 90px) * var(--gg-banner-scale)) !important;
    max-height: calc(var(--sponsor-height, 90px) * var(--gg-banner-scale)) !important;
    max-width: calc(100vw - 16px) !important;
    margin: 28px auto 22px !important;
    padding: 0 !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    position: relative !important;
}

body .ad-lobby-bottom.gg-sponsor-global-footer,
body .ad-lobby-bottom.adsterra-box {
    margin: 30px auto 12px !important;
}

body .adsterra-lobby-top .adsterra-label,
body .gg-sponsor-lobby-top .adsterra-label,
body .ad-lobby-top.adsterra-box .adsterra-label,
body .ad-lobby-bottom .adsterra-label,
body .gg-sponsor-global-footer .adsterra-label {
    display: none !important;
}

body .adsterra-lobby-top .gg-sponsor-frame,
body .gg-sponsor-lobby-top .gg-sponsor-frame,
body .ad-lobby-top.adsterra-box .gg-sponsor-frame,
body .ad-lobby-bottom .gg-sponsor-frame,
body .gg-sponsor-global-footer .gg-sponsor-frame,
body .adsterra-lobby-top .adsterra-zone,
body .gg-sponsor-lobby-top .adsterra-zone,
body .ad-lobby-top.adsterra-box .adsterra-zone,
body .ad-lobby-bottom .adsterra-zone,
body .gg-sponsor-global-footer .adsterra-zone {
    position: absolute !important;
    top: 0 !important;
    left: 50% !important;
    width: var(--sponsor-width, 728px) !important;
    height: var(--sponsor-height, 90px) !important;
    min-width: var(--sponsor-width, 728px) !important;
    min-height: var(--sponsor-height, 90px) !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    transform: translateX(-50%) scale(var(--gg-banner-scale)) !important;
    transform-origin: top center !important;
    border-radius: 10px !important;
    overflow: hidden !important;
}

body .adsterra-lobby-top iframe,
body .gg-sponsor-lobby-top iframe,
body .ad-lobby-top.adsterra-box iframe,
body .ad-lobby-bottom iframe,
body .gg-sponsor-global-footer iframe,
body .adsterra-lobby-top ins,
body .gg-sponsor-lobby-top ins,
body .ad-lobby-top.adsterra-box ins,
body .ad-lobby-bottom ins,
body .gg-sponsor-global-footer ins,
body .adsterra-lobby-top .gg-adsterra-sandbox,
body .gg-sponsor-lobby-top .gg-adsterra-sandbox,
body .ad-lobby-top.adsterra-box .gg-adsterra-sandbox,
body .ad-lobby-bottom .gg-adsterra-sandbox,
body .gg-sponsor-global-footer .gg-adsterra-sandbox {
    width: var(--sponsor-width, 728px) !important;
    height: var(--sponsor-height, 90px) !important;
    min-width: var(--sponsor-width, 728px) !important;
    min-height: var(--sponsor-height, 90px) !important;
    max-width: none !important;
    max-height: none !important;
}

@media (max-width: 760px) {
    body .adsterra-lobby-top,
    body .gg-sponsor-lobby-top,
    body .ad-lobby-top.adsterra-box,
    body .ad-lobby-bottom.gg-sponsor-global-footer,
    body .ad-lobby-bottom.adsterra-box,
    body .gg-sponsor-global-footer {
        margin: 22px auto 16px !important;
        border-radius: 8px !important;
    }
}

.hide-seek-being-searched-notice {
    position: fixed;
    top: calc(env(safe-area-inset-top, 0px) + 12px);
    left: 50%;
    z-index: 8800;
    transform: translateX(-50%);
    width: min(560px, calc(100vw - 28px));
    pointer-events: none;
}

.hide-seek-being-searched-notice.hidden {
    display: none !important;
}

.hide-seek-being-searched-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 14px;
    border-radius: 999px;
    color: #ecfeff;
    background: linear-gradient(135deg, rgba(14, 116, 144, .94), rgba(8, 47, 73, .94));
    border: 1px solid rgba(125, 211, 252, .58);
    box-shadow: 0 16px 36px rgba(2, 6, 23, .36), 0 0 24px rgba(34, 211, 238, .22);
    backdrop-filter: blur(10px);
}

.hide-seek-being-searched-card strong {
    font-size: clamp(.92rem, 2vw, 1.05rem);
    font-weight: 950;
    letter-spacing: .01em;
    text-transform: none;
}

.hide-seek-being-searched-card span {
    color: #cffafe;
    font-size: .82rem;
    font-weight: 850;
    white-space: nowrap;
}

.map-label.hide-seek-draft-guess-label {
    border-color: rgba(125, 211, 252, .7) !important;
    box-shadow: 0 6px 18px rgba(8, 47, 73, .34), 0 0 14px rgba(34, 211, 238, .28) !important;
}

@media (max-width: 640px) {
    .hide-seek-being-searched-notice {
        top: calc(env(safe-area-inset-top, 0px) + 8px);
        width: calc(100vw - 18px);
    }

    .hide-seek-being-searched-card {
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
        border-radius: 18px;
        padding: 9px 12px;
    }

    .hide-seek-being-searched-card span {
        white-space: normal;
        font-size: .78rem;
    }
}

/* GeoGames 1.1.20: resultados más anchos y sin scroll horizontal innecesario. */
.final-summary-card {
    width: min(1280px, 98vw) !important;
    max-width: 98vw !important;
}
.final-summary-card .summary-table-wrap {
    overflow-x: hidden !important;
}
.final-summary-card .summary-table {
    min-width: 0 !important;
    width: 100% !important;
    table-layout: auto !important;
}
.final-summary-card .summary-table th,
.final-summary-card .summary-table td {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    padding: 10px 12px !important;
}
.final-summary-card .summary-table th:first-child,
.final-summary-card .summary-table td:first-child,
.final-summary-card .summary-table th:nth-child(3),
.final-summary-card .summary-table td:nth-child(3),
.final-summary-card .summary-table th:nth-child(4),
.final-summary-card .summary-table td:nth-child(4),
.final-summary-card .summary-table th:nth-child(5),
.final-summary-card .summary-table td:nth-child(5) {
    white-space: nowrap !important;
}

@media (max-width: 760px) {
    .final-summary-card {
        width: calc(100vw - 14px) !important;
        max-width: calc(100vw - 14px) !important;
        padding: 18px 10px !important;
        border-radius: 18px !important;
    }
    .final-summary-card .summary-table {
        font-size: 12px !important;
    }
    .final-summary-card .summary-table th,
    .final-summary-card .summary-table td {
        padding: 8px 6px !important;
    }
}

/* GeoGames 1.1.20: la barra lateral en pantallas pequeñas se autooculta y se abre como panel flotante, no debajo del mapa. */
@media (max-width: 900px) {
    .page-game {
        height: 100vh !important;
        min-height: 100vh !important;
        overflow: hidden !important;
    }
    .game-shell {
        display: block !important;
        height: 100vh !important;
        min-height: 100vh !important;
        width: 100vw !important;
        overflow: hidden !important;
    }
    .play-area {
        display: block !important;
        width: 100vw !important;
        min-width: 0 !important;
        height: 100vh !important;
        min-height: 100vh !important;
        overflow: hidden !important;
    }
    .map-stage {
        min-height: calc(100vh - 82px) !important;
        height: calc(100vh - 82px) !important;
    }
    .layout-resize-handle {
        display: none !important;
    }
    .side-panel {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        right: auto !important;
        z-index: 940 !important;
        order: initial !important;
        width: min(380px, 88vw) !important;
        max-width: calc(100vw - 54px) !important;
        height: 100vh !important;
        max-height: 100vh !important;
        overflow: auto !important;
        border-top: 0 !important;
        border-right: 1px solid rgba(148, 163, 184, .28) !important;
        box-shadow: 24px 0 60px rgba(2, 6, 23, .58) !important;
        backdrop-filter: blur(16px) !important;
    }
    .game-shell.is-side-collapsed .side-panel {
        display: none !important;
    }
    .game-shell.is-side-collapsed .side-panel-open {
        display: inline-flex !important;
        z-index: 960 !important;
    }
    .side-panel-frame-toggle {
        position: fixed !important;
        top: calc(env(safe-area-inset-top, 0px) + 10px) !important;
        left: auto !important;
        right: 10px !important;
        z-index: 965 !important;
    }
}

/* GeoGames 1.1.20: banners horizontales escalados en móvil en vez de ocultarse o recortarse. */
body .adsterra-lobby-top,
body .gg-sponsor-lobby-top,
body .ad-lobby-top.adsterra-box,
body .ad-lobby-bottom.gg-sponsor-global-footer,
body .ad-lobby-bottom.adsterra-box,
body .gg-sponsor-global-footer {
    width: min(var(--sponsor-width, 728px), calc(100vw - 16px)) !important;
    max-width: calc(100vw - 16px) !important;
    height: clamp(46px, 12.36vw, var(--sponsor-height, 90px)) !important;
    min-height: clamp(46px, 12.36vw, var(--sponsor-height, 90px)) !important;
    max-height: var(--sponsor-height, 90px) !important;
}
@media (max-width: 760px) {
    body .adsterra-lobby-top,
    body .gg-sponsor-lobby-top,
    body .ad-lobby-top.adsterra-box,
    body .ad-lobby-bottom.gg-sponsor-global-footer,
    body .ad-lobby-bottom.adsterra-box,
    body .gg-sponsor-global-footer { --gg-banner-scale: .98; }
}
@media (max-width: 700px) {
    body .adsterra-lobby-top,
    body .gg-sponsor-lobby-top,
    body .ad-lobby-top.adsterra-box,
    body .ad-lobby-bottom.gg-sponsor-global-footer,
    body .ad-lobby-bottom.adsterra-box,
    body .gg-sponsor-global-footer { --gg-banner-scale: .92; }
}
@media (max-width: 640px) {
    body .adsterra-lobby-top,
    body .gg-sponsor-lobby-top,
    body .ad-lobby-top.adsterra-box,
    body .ad-lobby-bottom.gg-sponsor-global-footer,
    body .ad-lobby-bottom.adsterra-box,
    body .gg-sponsor-global-footer { --gg-banner-scale: .84; }
}
@media (max-width: 580px) {
    body .adsterra-lobby-top,
    body .gg-sponsor-lobby-top,
    body .ad-lobby-top.adsterra-box,
    body .ad-lobby-bottom.gg-sponsor-global-footer,
    body .ad-lobby-bottom.adsterra-box,
    body .gg-sponsor-global-footer { --gg-banner-scale: .76; }
}
@media (max-width: 520px) {
    body .adsterra-lobby-top,
    body .gg-sponsor-lobby-top,
    body .ad-lobby-top.adsterra-box,
    body .ad-lobby-bottom.gg-sponsor-global-footer,
    body .ad-lobby-bottom.adsterra-box,
    body .gg-sponsor-global-footer { --gg-banner-scale: .68; }
}
@media (max-width: 460px) {
    body .adsterra-lobby-top,
    body .gg-sponsor-lobby-top,
    body .ad-lobby-top.adsterra-box,
    body .ad-lobby-bottom.gg-sponsor-global-footer,
    body .ad-lobby-bottom.adsterra-box,
    body .gg-sponsor-global-footer { --gg-banner-scale: .60; }
}
@media (max-width: 400px) {
    body .adsterra-lobby-top,
    body .gg-sponsor-lobby-top,
    body .ad-lobby-top.adsterra-box,
    body .ad-lobby-bottom.gg-sponsor-global-footer,
    body .ad-lobby-bottom.adsterra-box,
    body .gg-sponsor-global-footer { --gg-banner-scale: .52; }
}


/* GeoGames 1.1.21/1.1.22: resumen de ronda ancho, controles compactos y NMPZ fijo. */
.map-stage.hide-seek-target-summary-map #spectatorHint,
.map-stage.hide-seek-round-summary-map #spectatorHint {
    left: 50% !important;
    right: auto !important;
    top: calc(env(safe-area-inset-top, 0px) + clamp(8px, 1.8vh, 16px)) !important;
    width: min(1120px, calc(100% - 24px)) !important;
    max-width: calc(100% - 24px) !important;
    max-height: min(72vh, calc(100% - 28px)) !important;
    transform: translateX(-50%) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}
.map-stage.hide-seek-target-summary-map .hide-seek-map-result-card,
.map-stage.hide-seek-round-summary-map .hide-seek-map-result-card {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
}
.map-stage.hide-seek-target-summary-map .hide-seek-map-result-head,
.map-stage.hide-seek-round-summary-map .hide-seek-map-result-head {
    flex-wrap: wrap !important;
    align-items: flex-start !important;
}
.map-stage.hide-seek-target-summary-map .hide-seek-map-result-card details,
.map-stage.hide-seek-round-summary-map .hide-seek-map-result-card details,
.map-stage.hide-seek-target-summary-map .hide-seek-map-result-card .hide-seek-result-list,
.map-stage.hide-seek-round-summary-map .hide-seek-map-result-card .hide-seek-result-list,
.map-stage.hide-seek-target-summary-map .hide-seek-map-result-card .score-list,
.map-stage.hide-seek-round-summary-map .hide-seek-map-result-card .score-list,
.map-stage.hide-seek-target-summary-map .hide-seek-map-result-card .hide-seek-score-list,
.map-stage.hide-seek-round-summary-map .hide-seek-map-result-card .hide-seek-score-list {
    max-width: 100% !important;
    overflow-x: hidden !important;
}
.map-stage.hide-seek-target-summary-map .hide-seek-map-result-card .hide-seek-result-row,
.map-stage.hide-seek-round-summary-map .hide-seek-map-result-card .hide-seek-result-row {
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1.15fr) minmax(68px, max-content) minmax(68px, max-content) !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
.map-stage.hide-seek-target-summary-map .hide-seek-map-result-card .hide-seek-result-row > *,
.map-stage.hide-seek-round-summary-map .hide-seek-map-result-card .hide-seek-result-row > * {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
}
.map-stage.hide-seek-target-summary-map .hide-seek-map-result-card .hide-seek-result-row b,
.map-stage.hide-seek-round-summary-map .hide-seek-map-result-card .hide-seek-result-row b,
.map-stage.hide-seek-target-summary-map .hide-seek-map-result-card .hide-seek-result-row small,
.map-stage.hide-seek-round-summary-map .hide-seek-map-result-card .hide-seek-result-row small {
    white-space: normal !important;
}

.driver-controls,
.map-stage.hide-seek-hiding-split #driverControls,
.map-stage.hide-seek-guess-split #driverControls,
.map-stage.scotland-cop-map-split #driverControls {
    width: auto !important;
    max-width: min(300px, calc(100% - 16px)) !important;
    padding: 7px !important;
    border-radius: 15px !important;
}
.driver-control-buttons {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 5px !important;
    margin: 5px 0 0 !important;
}
.driver-controls button,
.manual-hint-control button {
    min-width: 36px !important;
    min-height: 34px !important;
    padding: 0 8px !important;
    border-radius: 10px !important;
    display: inline-grid !important;
    place-items: center !important;
    font-size: 14px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}
#navForwardBtn,
#navBackBtn,
#hideSeekReturnStartBtn {
    width: 38px !important;
    padding-inline: 0 !important;
    font-size: 17px !important;
}
#recenterStreetViewBtn {
    min-width: 52px !important;
    font-size: 15px !important;
}
#hideSeekHideBtn {
    min-width: 43px !important;
    font-size: 12px !important;
    font-weight: 1000 !important;
}
#placeTrapBtn,
#requestHintBtn {
    min-width: 54px !important;
    font-size: 12px !important;
}
.streetview-links-info {
    font-size: 11px !important;
    line-height: 1.15 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
}
.driver-controls p,
#streetViewHelp {
    display: none !important;
}
.manual-hint-control {
    gap: 6px !important;
    padding: 6px 7px !important;
    margin-bottom: 5px !important;
    border-radius: 12px !important;
}
.manual-hint-control span {
    font-size: 11px !important;
}

@media (min-width: 721px) {
    .map-stage.hide-seek-target-summary-map .hide-seek-map-result-card .hide-seek-result-list,
    .map-stage.hide-seek-round-summary-map .hide-seek-map-result-card .hide-seek-result-list,
    .map-stage.hide-seek-target-summary-map .hide-seek-map-result-card .score-list,
    .map-stage.hide-seek-round-summary-map .hide-seek-map-result-card .score-list,
    .map-stage.hide-seek-target-summary-map .hide-seek-map-result-card .hide-seek-score-list,
    .map-stage.hide-seek-round-summary-map .hide-seek-map-result-card .hide-seek-score-list {
        max-height: min(310px, 44vh) !important;
    }
}

@media (max-width: 720px), (max-height: 560px) {
    .map-stage.hide-seek-target-summary-map #spectatorHint,
    .map-stage.hide-seek-round-summary-map #spectatorHint {
        width: calc(100% - 14px) !important;
        max-width: calc(100% - 14px) !important;
        max-height: min(76vh, calc(100% - 18px)) !important;
    }
    .map-stage.hide-seek-target-summary-map .hide-seek-map-result-card,
    .map-stage.hide-seek-round-summary-map .hide-seek-map-result-card {
        padding: 9px !important;
        gap: 7px !important;
        border-radius: 15px !important;
    }
    .map-stage.hide-seek-target-summary-map .hide-seek-map-result-card .hide-seek-result-row,
    .map-stage.hide-seek-round-summary-map .hide-seek-map-result-card .hide-seek-result-row {
        grid-template-columns: minmax(0, 1fr) minmax(70px, auto) !important;
        gap: 5px !important;
        padding: 7px !important;
    }
    .map-stage.hide-seek-target-summary-map .hide-seek-map-result-card .hide-seek-result-row span,
    .map-stage.hide-seek-round-summary-map .hide-seek-map-result-card .hide-seek-result-row span {
        grid-column: 1 / -1 !important;
    }
    .driver-controls,
    .map-stage.hide-seek-hiding-split #driverControls,
    .map-stage.hide-seek-guess-split #driverControls,
    .map-stage.scotland-cop-map-split #driverControls {
        left: 8px !important;
        right: auto !important;
        bottom: 8px !important;
        max-width: min(245px, calc(100% - 16px)) !important;
        padding: 6px !important;
    }
    .streetview-links-info {
        display: none !important;
    }
    .driver-control-buttons {
        margin: 0 !important;
    }
    .driver-controls button,
    .manual-hint-control button {
        min-width: 34px !important;
        min-height: 32px !important;
        font-size: 13px !important;
    }
    #navForwardBtn,
    #navBackBtn,
    #hideSeekReturnStartBtn {
        width: 35px !important;
        font-size: 16px !important;
    }
    #recenterStreetViewBtn {
        min-width: 48px !important;
    }
}

/* GeoGames 1.1.22: NMPZ como foto fija real durante la fase de búsqueda. */
.map-stage.hide-seek-nmpz-photo-lock #streetView,
#streetView.hide-seek-nmpz-photo-lock {
    pointer-events: auto !important;
    cursor: default !important;
    touch-action: none !important;
}
#streetView.hide-seek-nmpz-photo-lock::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 2147483000;
    pointer-events: auto;
    touch-action: none;
    background: transparent;
    cursor: default;
}
.map-stage.hide-seek-nmpz-photo-lock #driverControls,
.map-stage.hide-seek-nmpz-photo-lock #streetViewNotice,
.map-stage.hide-seek-nmpz-photo-lock #streetViewLinksInfo,
.map-stage.hide-seek-nmpz-photo-lock #streetViewOverlay,
.map-stage.hide-seek-nmpz-photo-lock #streetSearchOverlay {
    pointer-events: auto !important;
}


/* GeoGames 1.1.23: resumen de Escondite ocultable y controles solo necesarios por modo. */
.map-stage.hide-seek-target-summary-map #spectatorHint.hide-seek-result-collapsed,
.map-stage.hide-seek-round-summary-map #spectatorHint.hide-seek-result-collapsed {
    left: clamp(8px, 1.4vw, 18px) !important;
    right: auto !important;
    top: calc(env(safe-area-inset-top, 0px) + clamp(8px, 1.4vh, 16px)) !important;
    width: min(360px, calc(100% - 18px)) !important;
    max-width: min(360px, calc(100% - 18px)) !important;
    max-height: none !important;
    transform: none !important;
    overflow: visible !important;
}
.hide-seek-map-result-card.is-collapsed {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    padding: 9px 10px !important;
    width: 100% !important;
    max-width: 100% !important;
}
.hide-seek-map-result-card.is-collapsed > div {
    display: grid !important;
    gap: 2px !important;
    min-width: 0 !important;
}
.hide-seek-map-result-card.is-collapsed strong,
.hide-seek-map-result-card.is-collapsed small {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.hide-seek-toggle-result-panel {
    min-height: 32px !important;
    padding: 0 10px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    font-weight: 950 !important;
    white-space: nowrap !important;
}
.hide-seek-map-result-head .hide-seek-toggle-result-panel {
    flex: 0 0 auto !important;
}
#driverControls.driver-controls-mode-hidden,
#navForwardBtn.hidden,
#navBackBtn.hidden,
#recenterStreetViewBtn.hidden,
#hideSeekReturnStartBtn.hidden {
    display: none !important;
}
@media (max-width: 720px), (max-height: 560px) {
    .map-stage.hide-seek-target-summary-map #spectatorHint.hide-seek-result-collapsed,
    .map-stage.hide-seek-round-summary-map #spectatorHint.hide-seek-result-collapsed {
        left: 7px !important;
        top: calc(env(safe-area-inset-top, 0px) + 7px) !important;
        width: min(330px, calc(100% - 14px)) !important;
        max-width: min(330px, calc(100% - 14px)) !important;
    }
    .hide-seek-map-result-card.is-collapsed {
        padding: 8px !important;
    }
    .hide-seek-toggle-result-panel {
        min-height: 30px !important;
        padding: 0 8px !important;
        font-size: 11px !important;
    }
}

/* GeoGames 1.1.24: controles estrictamente dependientes del modo/fase. */
#hideSeekHideBtn.hidden,
#placeTrapBtn.hidden {
    display: none !important;
}
#hideSeekHideBtn:disabled {
    opacity: 0.55 !important;
    cursor: not-allowed !important;
}

/* GeoGames 1.1.27: panel de jugadores pendientes durante la fase de esconderse. */
.hide-seek-pending-hiders-panel {
    position: absolute;
    top: calc(env(safe-area-inset-top, 0px) + 12px);
    left: 50%;
    z-index: 24;
    width: min(440px, calc(100% - 24px));
    max-height: min(42vh, 340px);
    transform: translateX(-50%);
    padding: 10px 12px;
    border: 1px solid rgba(125, 211, 252, .32);
    border-radius: 18px;
    background: rgba(15, 23, 42, .88);
    color: #e5f3ff;
    box-shadow: 0 18px 55px rgba(2, 6, 23, .46);
    backdrop-filter: blur(14px);
    pointer-events: none;
    overflow: auto;
}
.hide-seek-pending-hiders-panel.hidden {
    display: none !important;
}
.hide-seek-pending-title {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 4px;
    font-size: 13px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #bae6fd;
}
.hide-seek-pending-hiders-panel p {
    margin: 0;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.25;
}
.hide-seek-pending-hiders-panel small {
    display: block;
    margin-top: 4px;
    color: #cbd5e1;
    font-size: 11px;
    line-height: 1.25;
}
.hide-seek-pending-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 8px;
}
.hide-seek-pending-chip {
    max-width: 100%;
    padding: 4px 7px;
    border: 1px solid rgba(148, 163, 184, .25);
    border-radius: 999px;
    background: rgba(15, 23, 42, .6);
    color: #e2e8f0;
    font-size: 11px;
    font-weight: 850;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.hide-seek-pending-chip.is-pending {
    border-color: rgba(251, 191, 36, .38);
    background: rgba(251, 191, 36, .13);
    color: #fde68a;
}
.hide-seek-pending-chip.is-ok {
    border-color: rgba(34, 197, 94, .35);
    background: rgba(34, 197, 94, .13);
    color: #bbf7d0;
}
.hide-seek-pending-chip.is-me {
    box-shadow: 0 0 0 2px rgba(56, 189, 248, .32);
}
@media (max-width: 720px), (max-height: 560px) {
    .hide-seek-pending-hiders-panel {
        top: calc(env(safe-area-inset-top, 0px) + 7px);
        width: min(360px, calc(100% - 14px));
        max-height: min(34vh, 240px);
        padding: 8px 9px;
        border-radius: 14px;
    }
    .hide-seek-pending-title {
        font-size: 11px;
        margin-bottom: 2px;
    }
    .hide-seek-pending-hiders-panel p {
        font-size: 12px;
    }
    .hide-seek-pending-hiders-panel small {
        display: none;
    }
    .hide-seek-pending-chips {
        gap: 4px;
        margin-top: 6px;
    }
    .hide-seek-pending-chip {
        max-width: 150px;
        padding: 3px 6px;
        font-size: 10px;
    }
}


/* GeoGames 1.1.30: sin botón Hangman propio; solo se usa el Pegman nativo de Google Maps. */



/* GeoGames 1.1.33: en NMPZ la capa de bloqueo debe quedar debajo del minimapa de adivinar. */
.map-stage.hide-seek-guess-split #streetView {
    z-index: 1 !important;
}
.map-stage.hide-seek-guess-split #map {
    z-index: 30 !important;
    pointer-events: auto !important;
}
.map-stage.hide-seek-guess-split .hide-seek-guess-map-frame-control:not(.hidden) {
    z-index: 31 !important;
}
.map-stage.hide-seek-guess-split .hide-seek-guess-actions-dock {
    z-index: 32 !important;
}
#streetView.hide-seek-nmpz-photo-lock::after {
    z-index: 3 !important;
}
.map-stage.hide-seek-guess-split.hide-seek-nmpz-photo-lock #map,
.map-stage.hide-seek-guess-split.hide-seek-nmpz-photo-lock #map .gm-style,
.map-stage.hide-seek-guess-split.hide-seek-nmpz-photo-lock #map .gm-style * {
    pointer-events: auto;
}

/* GeoGames 1.1.34: lobby settings closer to GeoGuessr-style segmented controls. */
.maps-loading-overlay-waiting .waiting-room-card {
  border-color: rgba(148, 163, 184, .16);
  background: linear-gradient(180deg, rgba(17, 24, 39, .88), rgba(15, 23, 42, .74));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 14px 34px rgba(0,0,0,.18);
}

.maps-loading-overlay-waiting .waiting-room-settings {
  padding: 16px;
}

.maps-loading-overlay-waiting .waiting-host-settings-editor {
  gap: 14px;
}

.maps-loading-overlay-waiting .waiting-host-common-grid,
.maps-loading-overlay-waiting .waiting-host-mode-grid,
.maps-loading-overlay-waiting .waiting-host-separation-grid {
  align-items: stretch;
  gap: 10px 12px !important;
}

.maps-loading-overlay-waiting .waiting-room-field {
  min-height: 0;
  color: rgba(226, 232, 240, .88);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .015em;
}

.maps-loading-overlay-waiting .waiting-room-field > select,
.maps-loading-overlay-waiting .waiting-room-field input[type="number"] {
  border-color: rgba(148, 163, 184, .22);
  background: rgba(11, 18, 32, .82);
  border-radius: 10px;
  color: #f8fafc;
}

.gg-option-field {
  display: grid !important;
  gap: 8px;
  flex: 1 1 260px;
  max-width: none;
}

.gg-option-field-wide {
  flex-basis: 320px;
}

.gg-option-title {
  display: block;
  color: #f8fafc;
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .02em;
}

.gg-segmented-control {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  gap: 0;
  width: 100%;
  min-height: 34px;
  padding: 2px;
  border: 1px solid rgba(148, 163, 184, .24);
  border-radius: 9px;
  background: rgba(2, 6, 23, .52);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.045);
  overflow: hidden;
}

.gg-segmented-mode {
  min-width: min(100%, 420px);
}

.gg-segmented-overlay,
.gg-segmented-movement {
  grid-auto-columns: minmax(70px, 1fr);
}

.gg-segment-btn {
  min-height: 30px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: rgba(248, 250, 252, .72);
  cursor: pointer;
  font-size: .76rem;
  font-weight: 950;
  letter-spacing: .018em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background-color .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease;
}

.gg-segment-btn:hover {
  color: #fff;
  background: rgba(139, 92, 246, .18);
}

.gg-segment-btn.active {
  color: #fff;
  background: linear-gradient(180deg, rgba(139, 92, 246, .98), rgba(124, 58, 237, .94));
  box-shadow: 0 8px 18px rgba(124, 58, 237, .24), inset 0 1px 0 rgba(255,255,255,.16);
}

.gg-segment-btn:active {
  transform: translateY(1px);
}

.gg-hidden-setting-select {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.maps-loading-overlay-waiting .waiting-host-time-row {
  margin-top: 0;
}

.maps-loading-overlay-waiting .waiting-host-time-row .waiting-room-time-card {
  display: grid !important;
  width: 100%;
  max-width: none;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 14px;
  background: rgba(2, 6, 23, .34);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.045);
}

.waiting-room-time-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: #f8fafc;
  font-size: .82rem;
  font-weight: 950;
}

.waiting-room-time-head strong {
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid rgba(148, 163, 184, .22);
  background: rgba(15, 23, 42, .74);
  color: #fff;
  font-size: .78rem;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.waiting-room-time-inputs {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 8px;
}

.waiting-room-time-inputs label {
  display: grid;
  gap: 4px;
  min-width: 76px;
  color: rgba(226, 232, 240, .74);
  font-size: .68rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.waiting-room-time-inputs input[type="number"] {
  width: 82px !important;
  max-width: 82px !important;
  min-height: 34px;
  padding: 6px 8px;
  text-align: center;
  font-size: .98rem;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
}

.waiting-room-time-range {
  width: 100%;
  accent-color: #8b5cf6;
  cursor: pointer;
}

.waiting-room-time-scale {
  display: flex;
  justify-content: space-between;
  margin-top: -7px;
  color: rgba(203, 213, 225, .62);
  font-size: .68rem;
  font-weight: 850;
}

.maps-loading-overlay-waiting .waiting-room-time-enabled {
  justify-self: start;
  min-height: 32px;
  margin-top: 0;
  border-radius: 999px;
  background: rgba(15, 23, 42, .58);
}

.maps-loading-overlay-waiting .waiting-room-time-enabled input {
  accent-color: #8b5cf6;
}

@media (max-width: 760px) {
  .gg-segmented-control {
    grid-auto-flow: row;
    grid-auto-rows: 1fr;
  }
  .gg-segmented-mode,
  .gg-segmented-overlay,
  .gg-segmented-movement {
    grid-auto-columns: auto;
  }
  .waiting-room-time-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .waiting-room-time-inputs label,
  .waiting-room-time-inputs input[type="number"] {
    width: 100% !important;
    max-width: none !important;
  }
}

/* GeoGames 1.1.34 hotfix: segmented controls wrap cleanly with all GeoGames modes. */
.gg-segmented-control {
  display: flex;
  flex-wrap: wrap;
}
.gg-segment-btn {
  flex: 1 1 82px;
  padding: 0 10px;
}
.gg-segmented-overlay .gg-segment-btn,
.gg-segmented-movement .gg-segment-btn {
  flex-basis: 74px;
}

/* GeoGames 1.1.35: fixed-width segmented buttons and hide-seek dual timers. */
.maps-loading-overlay-waiting .waiting-host-time-row-hide-seek {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
}

.maps-loading-overlay-waiting .waiting-room-time-always {
  justify-self: start;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(15, 23, 42, .58);
  color: rgba(226, 232, 240, .78);
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.maps-loading-overlay-waiting .gg-segmented-control {
  gap: 6px;
  padding: 3px;
  border-radius: 12px;
  overflow: visible;
}

.maps-loading-overlay-waiting .gg-segment-btn {
  flex: 0 0 112px;
  min-width: 112px;
  min-height: 32px;
  border-radius: 9px;
}

.maps-loading-overlay-waiting .gg-segmented-mode .gg-segment-btn {
  flex-basis: 138px;
  min-width: 138px;
}

.maps-loading-overlay-waiting .gg-segmented-overlay .gg-segment-btn,
.maps-loading-overlay-waiting .gg-segmented-movement .gg-segment-btn {
  flex-basis: 108px;
  min-width: 108px;
}

@media (max-width: 760px) {
  .maps-loading-overlay-waiting .gg-segment-btn,
  .maps-loading-overlay-waiting .gg-segmented-mode .gg-segment-btn,
  .maps-loading-overlay-waiting .gg-segmented-overlay .gg-segment-btn,
  .maps-loading-overlay-waiting .gg-segmented-movement .gg-segment-btn {
    flex: 1 1 120px;
    min-width: min(120px, 100%);
  }
}


/* GeoGames 1.1.36: Escondite coloca movimiento/rondas justo tras el modo y refuerza botones fijos. */
.maps-loading-overlay-waiting .gg-segmented-control {
  gap: 8px;
}
.maps-loading-overlay-waiting .gg-segmented-mode .gg-segment-btn {
  flex: 0 0 148px;
  min-width: 148px;
}
.maps-loading-overlay-waiting .gg-segmented-movement .gg-segment-btn {
  flex: 0 0 116px;
  min-width: 116px;
}
.maps-loading-overlay-waiting .waiting-host-common-grid-hide-seek {
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: stretch;
}
.maps-loading-overlay-waiting .waiting-host-common-grid-hide-seek .waiting-room-field-mode,
.maps-loading-overlay-waiting .waiting-host-common-grid-hide-seek .waiting-room-field-movement,
.maps-loading-overlay-waiting .waiting-host-common-grid-hide-seek .waiting-room-field-rounds {
  width: 100%;
  max-width: none;
}
.maps-loading-overlay-waiting .waiting-host-common-grid-hide-seek .waiting-room-field-rounds input {
  width: 128px !important;
  max-width: 128px !important;
  text-align: center;
  font-weight: 950;
}
@media (max-width: 760px) {
  .maps-loading-overlay-waiting .gg-segmented-mode .gg-segment-btn,
  .maps-loading-overlay-waiting .gg-segmented-movement .gg-segment-btn {
    flex: 1 1 120px;
    min-width: min(120px, 100%);
  }
  .maps-loading-overlay-waiting .waiting-host-common-grid-hide-seek .waiting-room-field-rounds input {
    width: 100% !important;
    max-width: none !important;
  }
}

/* GeoGames 1.1.38: Escondite, mapa con zoom por clic, temporizador junto a jugadores y más tamaños. */
.map-stage.hide-seek-map-selecting #map {
    cursor: zoom-in !important;
}
.hide-seek-hiding-countdown-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    margin-left: 6px;
    padding: 2px 7px;
    border-radius: 999px;
    border: 1px solid rgba(125, 211, 252, .42);
    background: rgba(8, 47, 73, .82);
    color: #e0f2fe;
    font-size: 10px;
    font-weight: 950;
    line-height: 1.1;
    white-space: nowrap;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
.hide-seek-hiding-countdown-chip.is-urgent {
    border-color: rgba(251, 191, 36, .62);
    background: rgba(120, 53, 15, .82);
    color: #fef3c7;
}
.hide-seek-hiding-countdown-chip.is-critical {
    border-color: rgba(248, 113, 113, .72);
    background: rgba(127, 29, 29, .88);
    color: #fee2e2;
}
.hide-seek-pending-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.hide-seek-pending-chip .hide-seek-hiding-countdown-chip {
    margin-left: 0;
    min-width: 42px;
    padding: 2px 6px;
    font-size: 9px;
}
.checkpoint-row .hide-seek-hiding-countdown-chip {
    vertical-align: middle;
}

.map-stage.hide-seek-hiding-split.hide-seek-map-size-4 #map,
.map-stage.scotland-cop-map-split.hide-seek-map-size-4 #map {
    width: min(84%, 1120px) !important;
    height: min(74%, 760px) !important;
}
.map-stage.hide-seek-hiding-split.hide-seek-map-size-5 #map,
.map-stage.scotland-cop-map-split.hide-seek-map-size-5 #map {
    width: calc(100% - 32px) !important;
    height: calc(100% - 32px) !important;
}
.map-stage.hide-seek-hiding-split.hide-seek-map-size-4 #driverControls,
.map-stage.scotland-cop-map-split.hide-seek-map-size-4 #driverControls { bottom: calc(min(74%, 760px) + 26px) !important; }
.map-stage.hide-seek-hiding-split.hide-seek-map-size-5 #driverControls,
.map-stage.scotland-cop-map-split.hide-seek-map-size-5 #driverControls { bottom: calc(100% - 6px) !important; }
.map-stage.hide-seek-hiding-split.hide-seek-map-size-4 .hide-seek-map-resize-controls,
.map-stage.scotland-cop-map-split.hide-seek-map-size-4 .hide-seek-map-resize-controls { bottom: calc(min(74%, 760px) + 26px) !important; }
.map-stage.hide-seek-hiding-split.hide-seek-map-size-5 .hide-seek-map-resize-controls,
.map-stage.scotland-cop-map-split.hide-seek-map-size-5 .hide-seek-map-resize-controls { bottom: calc(100% - 54px) !important; }

.map-stage.hide-seek-guess-split.hide-seek-map-size-4 {
    --hs-guess-map-w: clamp(360px, 84%, 1120px);
    --hs-guess-map-h: clamp(300px, 74%, 760px);
}
.map-stage.hide-seek-guess-split.hide-seek-map-size-5 {
    --hs-guess-map-w: calc(100% - 28px);
    --hs-guess-map-h: calc(100% - 28px);
}
.map-stage.hide-seek-guess-split.hide-seek-map-size-4 .hide-seek-map-resize-controls { bottom: calc(min(74%, 760px) + 26px) !important; }
.map-stage.hide-seek-guess-split.hide-seek-map-size-5 .hide-seek-map-resize-controls { bottom: calc(100% - 54px) !important; }
.map-stage.hide-seek-guess-split.hide-seek-map-size-5 .hide-seek-guess-actions-dock {
    bottom: calc(var(--hs-guess-map-bottom) + 16px) !important;
}

@media (max-width: 760px), (max-height: 600px) {
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-4 #map,
    .map-stage.scotland-cop-map-split.hide-seek-map-size-4 #map {
        width: calc(100% - 20px) !important;
        height: min(78%, 560px) !important;
    }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-5 #map,
    .map-stage.scotland-cop-map-split.hide-seek-map-size-5 #map {
        width: calc(100% - 16px) !important;
        height: calc(100% - 16px) !important;
    }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-4 {
        --hs-guess-map-w: calc(100% - 18px);
        --hs-guess-map-h: min(78%, 560px);
    }
    .map-stage.hide-seek-guess-split.hide-seek-map-size-5 {
        --hs-guess-map-w: calc(100% - 16px);
        --hs-guess-map-h: calc(100% - 16px);
    }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-4 .hide-seek-map-resize-controls,
    .map-stage.hide-seek-guess-split.hide-seek-map-size-4 .hide-seek-map-resize-controls,
    .map-stage.scotland-cop-map-split.hide-seek-map-size-4 .hide-seek-map-resize-controls { bottom: calc(min(78%, 560px) + 20px) !important; }
    .map-stage.hide-seek-hiding-split.hide-seek-map-size-5 .hide-seek-map-resize-controls,
    .map-stage.hide-seek-guess-split.hide-seek-map-size-5 .hide-seek-map-resize-controls,
    .map-stage.scotland-cop-map-split.hide-seek-map-size-5 .hide-seek-map-resize-controls { bottom: calc(100% - 46px) !important; }
}

/* GeoGames 1.1.39: temporizador único en Escondite y avisos de omisión globales. */
.hide-seek-pending-title .hide-seek-hiding-countdown-chip {
    margin-left: auto;
}
.hide-seek-hiding-progress {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.hide-seek-hiding-progress .hide-seek-hiding-countdown-chip {
    margin-left: 8px;
}



/* GeoGames 1.1.40: contador integrado en la ventana de esconderse. */
.hide-seek-pending-title {
    gap: 8px;
}
.hide-seek-pending-round {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 2px 8px;
    font-size: 0.78rem;
    font-weight: 800;
    color: rgba(255, 255, 255, 0.9);
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.18);
    white-space: nowrap;
}
.hide-seek-pending-title .hide-seek-hiding-countdown-chip {
    font-variant-numeric: tabular-nums;
    min-width: 68px;
    justify-content: center;
}

/* GeoGames 1.1.41: ajustes de configuración de sala.
   - Modos en una sola línea con scroll horizontal si no caben.
   - El resumen textual de tiempo desaparece del título; el timepicker ocupa esa posición. */
.maps-loading-overlay-waiting .gg-segmented-mode {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch;
  gap: 8px;
  overflow-x: auto;
  overflow-y: hidden;
  max-width: 100%;
  padding-bottom: 4px;
  scrollbar-width: thin;
}

.maps-loading-overlay-waiting .gg-segmented-mode .gg-segment-btn {
  flex: 0 0 136px !important;
  min-width: 136px !important;
}

.maps-loading-overlay-waiting .waiting-room-field-mode {
  flex: 1 1 100%;
  max-width: none;
  min-width: 0;
}

.maps-loading-overlay-waiting .waiting-room-time-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
}

.maps-loading-overlay-waiting .waiting-room-time-head > span {
  align-self: center;
  min-width: 0;
  overflow-wrap: anywhere;
}

.maps-loading-overlay-waiting .waiting-room-time-head > strong[data-round-time-label] {
  display: none !important;
}

.maps-loading-overlay-waiting .waiting-room-time-picker {
  flex: 0 0 auto;
  justify-content: flex-end;
  margin-left: auto;
}

.maps-loading-overlay-waiting .waiting-room-time-picker label {
  min-width: 68px;
}

.maps-loading-overlay-waiting .waiting-room-time-picker input[type="number"] {
  width: 74px !important;
  max-width: 74px !important;
}

@media (max-width: 760px) {
  .maps-loading-overlay-waiting .gg-segmented-mode {
    flex-wrap: nowrap !important;
  }
  .maps-loading-overlay-waiting .gg-segmented-mode .gg-segment-btn {
    flex: 0 0 126px !important;
    min-width: 126px !important;
  }
  .maps-loading-overlay-waiting .waiting-room-time-head {
    align-items: stretch;
    flex-direction: column;
  }
  .maps-loading-overlay-waiting .waiting-room-time-picker {
    width: 100%;
    margin-left: 0;
    justify-content: stretch;
  }
  .maps-loading-overlay-waiting .waiting-room-time-picker label,
  .maps-loading-overlay-waiting .waiting-room-time-picker input[type="number"] {
    width: 100% !important;
    max-width: none !important;
  }
}


/* GeoGames 1.1.42: botones de modo/movimiento sin contorno y selector de rondas compacto. */
.maps-loading-overlay-waiting .gg-segmented-mode,
.maps-loading-overlay-waiting .gg-segmented-movement {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 0 4px 0 !important;
}

.maps-loading-overlay-waiting .gg-segmented-mode .gg-segment-btn,
.maps-loading-overlay-waiting .gg-segmented-movement .gg-segment-btn {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none;
}

.maps-loading-overlay-waiting .gg-segmented-mode .gg-segment-btn.active,
.maps-loading-overlay-waiting .gg-segmented-movement .gg-segment-btn.active {
  box-shadow: none !important;
}

.maps-loading-overlay-waiting .waiting-host-common-grid-hide-seek .waiting-room-field-rounds input[type="number"] {
  width: 72px !important;
  max-width: 72px !important;
  min-width: 72px !important;
}

.maps-loading-overlay-waiting .waiting-host-common-grid-hide-seek .waiting-room-field-rounds {
  max-width: 140px;
}

@media (max-width: 760px) {
  .maps-loading-overlay-waiting .waiting-host-common-grid-hide-seek .waiting-room-field-rounds input[type="number"] {
    width: 72px !important;
    max-width: 72px !important;
    min-width: 72px !important;
  }
}

/* GeoGames 1.1.43: waiting room closer to reference, rounds slider and role/team buttons. */
.maps-loading-overlay-waiting .waiting-room-settings {
  padding: 18px;
}

.maps-loading-overlay-waiting .waiting-room-choice-card {
  display: grid;
  gap: 12px;
}

.maps-loading-overlay-waiting .waiting-room-choice-stack {
  display: grid;
  gap: 12px;
}

.maps-loading-overlay-waiting .waiting-room-choice-field {
  gap: 8px;
}

.maps-loading-overlay-waiting .gg-choice-segmented-control,
.maps-loading-overlay-waiting .gg-segmented-control {
  min-height: 40px;
  padding: 3px;
  border-radius: 12px;
  border: 1px solid rgba(148, 163, 184, .18);
  background: rgba(9, 14, 28, .82);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}

.maps-loading-overlay-waiting .gg-choice-segmented-control .gg-choice-segment-btn,
.maps-loading-overlay-waiting .gg-segment-btn {
  min-height: 34px;
  border-radius: 9px;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .02em;
}

.maps-loading-overlay-waiting .gg-choice-segmented-control .gg-choice-segment-btn:not(.active),
.maps-loading-overlay-waiting .gg-segment-btn:not(.active) {
  color: rgba(248, 250, 252, .82);
}

.maps-loading-overlay-waiting .gg-choice-segmented-control .gg-choice-segment-btn.active,
.maps-loading-overlay-waiting .gg-segment-btn.active {
  color: #fff;
  background: linear-gradient(180deg, rgba(139, 92, 246, .98), rgba(124, 58, 237, .94));
  box-shadow: 0 8px 18px rgba(124, 58, 237, .24), inset 0 1px 0 rgba(255,255,255,.16);
}

.maps-loading-overlay-waiting .gg-choice-role .gg-choice-segment-btn,
.maps-loading-overlay-waiting .gg-choice-team .gg-choice-segment-btn {
  flex: 1 1 96px;
  min-width: 96px;
}

.maps-loading-overlay-waiting .waiting-room-time-card {
  gap: 12px !important;
  border-radius: 16px !important;
  background: linear-gradient(180deg, rgba(10, 16, 32, .92), rgba(11, 18, 32, .74)) !important;
}

.maps-loading-overlay-waiting .waiting-room-time-head {
  align-items: center;
}

.maps-loading-overlay-waiting .waiting-room-time-head > span {
  color: #f8fafc;
  font-size: .84rem;
  font-weight: 950;
}

.maps-loading-overlay-waiting .waiting-room-time-head strong,
.maps-loading-overlay-waiting .waiting-room-rounds-head strong {
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid rgba(148, 163, 184, .22);
  background: rgba(15, 23, 42, .92);
  color: #fff;
  font-size: .78rem;
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.maps-loading-overlay-waiting .waiting-room-time-inputs {
  justify-content: flex-start;
}

.maps-loading-overlay-waiting .waiting-room-time-range,
.maps-loading-overlay-waiting .waiting-room-rounds-range {
  width: 100%;
}

.maps-loading-overlay-waiting .waiting-room-rounds-card {
  width: 100%;
}

.maps-loading-overlay-waiting .waiting-room-rounds-scale {
  margin-top: -4px;
}

.maps-loading-overlay-waiting .waiting-host-common-grid-hide-seek .waiting-room-field-rounds-card {
  width: 100%;
  max-width: none;
}

.maps-loading-overlay-waiting .waiting-host-common-grid-hide-seek .waiting-room-field-rounds,
.maps-loading-overlay-waiting .waiting-host-common-grid-hide-seek .waiting-room-field-rounds-card {
  grid-column: 1 / -1;
}

@media (max-width: 760px) {
  .maps-loading-overlay-waiting .gg-choice-role .gg-choice-segment-btn,
  .maps-loading-overlay-waiting .gg-choice-team .gg-choice-segment-btn,
  .maps-loading-overlay-waiting .gg-segmented-mode .gg-segment-btn,
  .maps-loading-overlay-waiting .gg-segmented-movement .gg-segment-btn {
    flex: 1 1 120px;
    min-width: min(120px, 100%);
  }
}


/* GeoGames 1.1.44: tarjetas de tiempo alineadas como GeoGuessr, con reloj y selector en cabecera. */
.maps-loading-overlay-waiting .waiting-room-time-head-picker {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.maps-loading-overlay-waiting .waiting-room-time-title {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  gap: 8px;
  color: #f8fafc;
  font-size: .84rem;
  font-weight: 950;
  line-height: 1.15;
}

.maps-loading-overlay-waiting .waiting-room-time-emoji {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  min-width: 28px;
  height: 28px;
  border-radius: 999px;
  background: rgba(34, 197, 94, .12);
  filter: drop-shadow(0 0 8px rgba(34, 197, 94, .26));
  font-size: 1.18rem;
  line-height: 1;
}

.maps-loading-overlay-waiting .waiting-room-time-picker-inline {
  flex: 0 0 auto;
  justify-content: flex-end;
  align-items: center;
  gap: 5px;
  padding: 4px;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 10px;
  background: rgba(15, 23, 42, .92);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}

.maps-loading-overlay-waiting .waiting-room-time-picker-inline label {
  min-width: 48px;
  gap: 2px;
  font-size: .55rem;
  letter-spacing: .06em;
  color: rgba(226, 232, 240, .62);
}

.maps-loading-overlay-waiting .waiting-room-time-picker-inline input[type="number"] {
  width: 50px !important;
  max-width: 50px !important;
  min-height: 24px;
  padding: 2px 4px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  box-shadow: none;
  color: #fff;
  text-align: center;
  font-size: .82rem;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
}

.maps-loading-overlay-waiting .waiting-room-time-picker-inline input[type="number"]:focus {
  background: rgba(139, 92, 246, .16);
  box-shadow: 0 0 0 2px rgba(139, 92, 246, .24);
  outline: none;
}

.maps-loading-overlay-waiting .waiting-room-time-picker-inline .waiting-room-time-value {
  display: none;
}

.maps-loading-overlay-waiting .waiting-room-time-card .waiting-room-time-range {
  margin-top: 2px;
}

@media (max-width: 760px) {
  .maps-loading-overlay-waiting .waiting-room-time-head-picker {
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
  }

  .maps-loading-overlay-waiting .waiting-room-time-picker-inline {
    width: 100%;
    justify-content: space-between;
  }

  .maps-loading-overlay-waiting .waiting-room-time-picker-inline label {
    flex: 1 1 0;
    min-width: 0;
  }

  .maps-loading-overlay-waiting .waiting-room-time-picker-inline input[type="number"] {
    width: 100% !important;
    max-width: none !important;
  }
}


/* GeoGames 1.1.45: selectores segmentados estilo GeoGuessr con paleta azul/verde/morada. */
.maps-loading-overlay-waiting .gg-segmented-control,
.maps-loading-overlay-waiting .gg-choice-segmented-control {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  padding: 3px !important;
  min-height: 43px;
  border: 1px solid rgba(125, 211, 252, .24) !important;
  border-radius: 12px !important;
  background:
    linear-gradient(180deg, rgba(10, 15, 31, .96), rgba(12, 19, 37, .88)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.055),
    0 8px 20px rgba(2, 6, 23, .16);
  overflow: hidden !important;
}

.maps-loading-overlay-waiting .gg-segment-btn,
.maps-loading-overlay-waiting .gg-choice-segment-btn {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  height: 36px;
  min-height: 36px !important;
  border-radius: 8px !important;
  padding: 0 10px;
  border: 0 !important;
  background: transparent !important;
  color: rgba(248, 250, 252, .86);
  box-shadow: none !important;
  font-size: .76rem !important;
  font-weight: 950 !important;
  letter-spacing: .012em !important;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 0 1px 1px rgba(0,0,0,.32);
  white-space: nowrap;
}

.maps-loading-overlay-waiting .gg-segment-btn:hover,
.maps-loading-overlay-waiting .gg-choice-segment-btn:hover {
  background: rgba(34, 211, 238, .10) !important;
  color: #fff;
}

.maps-loading-overlay-waiting .gg-segment-btn.active,
.maps-loading-overlay-waiting .gg-choice-role .gg-choice-segment-btn.active,
.maps-loading-overlay-waiting .gg-choice-segmented-control:not(.gg-choice-team) .gg-choice-segment-btn.active {
  background:
    linear-gradient(135deg, rgba(34, 211, 238, .98), rgba(20, 184, 166, .94) 44%, rgba(139, 92, 246, .96)) !important;
  color: #fff !important;
  box-shadow:
    0 8px 20px rgba(20, 184, 166, .22),
    0 4px 16px rgba(139, 92, 246, .20),
    inset 0 1px 0 rgba(255,255,255,.20) !important;
}

.maps-loading-overlay-waiting .gg-choice-team .gg-choice-segment-btn {
  flex: 1 1 0 !important;
  min-width: 0 !important;
}

.maps-loading-overlay-waiting .gg-choice-team .gg-choice-segment-btn.active {
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--choice-color, #22d3ee) 96%, #ffffff 7%),
      color-mix(in srgb, var(--choice-color, #22d3ee) 78%, #0f172a 22%)) !important;
  color: #fff !important;
  box-shadow:
    0 8px 20px color-mix(in srgb, var(--choice-color, #22d3ee) 30%, transparent),
    inset 0 1px 0 rgba(255,255,255,.22) !important;
}

.maps-loading-overlay-waiting .gg-choice-team .gg-choice-segment-btn[data-segment-value="white"].active {
  color: #0f172a !important;
  text-shadow: none;
  background: linear-gradient(180deg, #ffffff, #e2e8f0) !important;
  box-shadow:
    0 8px 20px rgba(226, 232, 240, .24),
    inset 0 1px 0 rgba(255,255,255,.82) !important;
}

.maps-loading-overlay-waiting .gg-segmented-mode .gg-segment-btn,
.maps-loading-overlay-waiting .gg-segmented-movement .gg-segment-btn,
.maps-loading-overlay-waiting .gg-segmented-overlay .gg-segment-btn,
.maps-loading-overlay-waiting .gg-choice-role .gg-choice-segment-btn,
.maps-loading-overlay-waiting .gg-choice-team .gg-choice-segment-btn {
  flex-basis: 0 !important;
  min-width: 0 !important;
}

@media (max-width: 760px) {
  .maps-loading-overlay-waiting .gg-segmented-control,
  .maps-loading-overlay-waiting .gg-choice-segmented-control {
    overflow-x: auto !important;
    scrollbar-width: thin;
  }

  .maps-loading-overlay-waiting .gg-segmented-mode .gg-segment-btn,
  .maps-loading-overlay-waiting .gg-segmented-movement .gg-segment-btn,
  .maps-loading-overlay-waiting .gg-choice-team .gg-choice-segment-btn {
    flex: 0 0 104px !important;
    min-width: 104px !important;
  }
}

/* GeoGames 1.1.46: corrige solapamiento de selectores segmentados.
   Los botones ya no se comprimen a 0 px; si no caben, el selector desplaza horizontalmente. */
.maps-loading-overlay-waiting .gg-option-field {
  min-width: 0;
  overflow: hidden;
}

.maps-loading-overlay-waiting .gg-option-title {
  display: block;
  margin-bottom: 2px;
  line-height: 1.2;
}

.maps-loading-overlay-waiting .gg-segmented-control,
.maps-loading-overlay-waiting .gg-choice-segmented-control {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
}

.maps-loading-overlay-waiting .gg-segmented-control::-webkit-scrollbar,
.maps-loading-overlay-waiting .gg-choice-segmented-control::-webkit-scrollbar {
  height: 6px;
}

.maps-loading-overlay-waiting .gg-segmented-control::-webkit-scrollbar-thumb,
.maps-loading-overlay-waiting .gg-choice-segmented-control::-webkit-scrollbar-thumb {
  background: rgba(125, 211, 252, .28);
  border-radius: 999px;
}

.maps-loading-overlay-waiting .gg-segment-btn,
.maps-loading-overlay-waiting .gg-choice-segment-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto !important;
  min-width: 104px !important;
  max-width: none !important;
  overflow: hidden;
  text-overflow: ellipsis;
  scroll-snap-align: start;
}

.maps-loading-overlay-waiting .gg-segmented-mode .gg-segment-btn {
  flex-basis: 142px !important;
  min-width: 142px !important;
}

.maps-loading-overlay-waiting .gg-segmented-movement .gg-segment-btn {
  flex-basis: 112px !important;
  min-width: 112px !important;
}

.maps-loading-overlay-waiting .gg-segmented-overlay .gg-segment-btn,
.maps-loading-overlay-waiting .gg-choice-role .gg-choice-segment-btn {
  flex-basis: 112px !important;
  min-width: 112px !important;
}

.maps-loading-overlay-waiting .gg-choice-team .gg-choice-segment-btn {
  flex-basis: 86px !important;
  min-width: 86px !important;
}

/* Cuando solo hay tres opciones, como Movimiento, aprovecha el ancho completo sin deformar el texto. */
.maps-loading-overlay-waiting .gg-segmented-movement {
  justify-content: stretch;
}

@media (min-width: 520px) {
  .maps-loading-overlay-waiting .gg-segmented-movement .gg-segment-btn {
    flex: 1 0 112px !important;
  }
}

@media (max-width: 760px) {
  .maps-loading-overlay-waiting .gg-segmented-mode .gg-segment-btn {
    flex-basis: 132px !important;
    min-width: 132px !important;
  }

  .maps-loading-overlay-waiting .gg-segmented-movement .gg-segment-btn,
  .maps-loading-overlay-waiting .gg-segmented-overlay .gg-segment-btn,
  .maps-loading-overlay-waiting .gg-choice-role .gg-choice-segment-btn {
    flex-basis: 108px !important;
    min-width: 108px !important;
  }

  .maps-loading-overlay-waiting .gg-choice-team .gg-choice-segment-btn {
    flex-basis: 84px !important;
    min-width: 84px !important;
  }
}


/* GeoGames 1.1.47: selector de equipo en grid 2x3 y sin compresión horizontal. */
.maps-loading-overlay-waiting .gg-choice-team {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  grid-auto-rows: 36px !important;
  gap: 3px !important;
  overflow: visible !important;
}

.maps-loading-overlay-waiting .gg-choice-team .gg-choice-segment-btn {
  width: 100% !important;
  min-width: 0 !important;
  height: 36px !important;
  min-height: 36px !important;
  flex: initial !important;
  padding: 0 8px !important;
}

.maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-team {
  min-height: 78px;
}

@media (max-width: 760px) {
  .maps-loading-overlay-waiting .gg-choice-team {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    overflow: visible !important;
  }

  .maps-loading-overlay-waiting .gg-choice-team .gg-choice-segment-btn {
    min-width: 0 !important;
    flex: initial !important;
  }
}

/* Reduce parpadeos visuales si el formulario se actualiza parcialmente. */
.maps-loading-overlay-waiting .waiting-room-panel,
.maps-loading-overlay-waiting .waiting-room-settings,
.maps-loading-overlay-waiting .waiting-room-choice-card {
  contain: layout paint;
}

/* GeoGames 1.1.48: rol y equipo sin scroll horizontal en la tarjeta "Tu elección". */
body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-role {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)) !important;
  grid-auto-rows: 36px !important;
  gap: 3px !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
  scroll-snap-type: none !important;
}

body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-team {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  grid-auto-rows: 36px !important;
  gap: 3px !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
  scroll-snap-type: none !important;
}

body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-role .gg-choice-segment-btn,
body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-team .gg-choice-segment-btn {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 36px !important;
  min-height: 36px !important;
  flex: initial !important;
  flex-basis: auto !important;
  padding: 0 8px !important;
  overflow: hidden;
  text-overflow: ellipsis;
  scroll-snap-align: none !important;
}

body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-segmented-control::-webkit-scrollbar {
  display: none !important;
}

body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-segmented-control {
  scrollbar-width: none !important;
}

@media (max-width: 760px) {
  body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-role {
    grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)) !important;
  }

  body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-team {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-role .gg-choice-segment-btn,
  body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-team .gg-choice-segment-btn {
    min-width: 0 !important;
    flex: initial !important;
  }
}

/* GeoGames 1.1.49: Rol y Equipo pasan a grid real, sin heredar el carrusel horizontal. */
body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-grid-control {
  display: grid !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 0 !important;
  padding: 3px !important;
  gap: 3px !important;
  border: 1px solid rgba(125, 211, 252, .24) !important;
  border-radius: 12px !important;
  background: linear-gradient(180deg, rgba(10, 15, 31, .96), rgba(12, 19, 37, .88)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 8px 20px rgba(2, 6, 23, .16) !important;
  overflow: visible !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
  scroll-snap-type: none !important;
}

body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-grid-role {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-auto-rows: 36px !important;
}

body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-grid-team {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  grid-auto-rows: 36px !important;
}

body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-grid-control .gg-choice-segment-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: 36px !important;
  min-height: 36px !important;
  flex: none !important;
  flex-basis: auto !important;
  padding: 0 8px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: rgba(248, 250, 252, .86) !important;
  box-shadow: none !important;
  font-size: .74rem !important;
  font-weight: 950 !important;
  letter-spacing: .01em !important;
  text-align: center !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  scroll-snap-align: none !important;
}

body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-grid-role .gg-choice-segment-btn.active {
  background: linear-gradient(135deg, rgba(34, 211, 238, .98), rgba(20, 184, 166, .94) 44%, rgba(139, 92, 246, .96)) !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(20, 184, 166, .22), 0 4px 16px rgba(139, 92, 246, .20), inset 0 1px 0 rgba(255,255,255,.20) !important;
}

body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-grid-team .gg-choice-segment-btn.active {
  background: linear-gradient(180deg, color-mix(in srgb, var(--choice-color, #22d3ee) 96%, #ffffff 7%), color-mix(in srgb, var(--choice-color, #22d3ee) 78%, #0f172a 22%)) !important;
  color: #fff !important;
  box-shadow: 0 8px 20px color-mix(in srgb, var(--choice-color, #22d3ee) 30%, transparent), inset 0 1px 0 rgba(255,255,255,.22) !important;
}

body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-grid-team .gg-choice-segment-btn[data-segment-value="white"].active {
  color: #0f172a !important;
  text-shadow: none !important;
  background: linear-gradient(180deg, #ffffff, #e2e8f0) !important;
}

@media (max-width: 760px) {
  body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-grid-role {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body .maps-loading-overlay-waiting .waiting-room-choice-card .gg-choice-grid-team {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}


/* GeoGames 1.1.50: oculta la escala 1/99 bajo la barra de Número de rondas. */
.maps-loading-overlay-waiting .waiting-room-rounds-scale-hidden {
  display: none !important;
}

/* GeoGames 1.1.51: Número de rondas con texto completo y barra más corta. */
.maps-loading-overlay-waiting .waiting-room-rounds-card {
  display: grid !important;
  grid-template-columns: minmax(160px, 1fr) minmax(130px, 220px) auto !important;
  grid-template-areas: "rounds-title rounds-slider rounds-value" !important;
  align-items: center !important;
  column-gap: 12px !important;
  row-gap: 8px !important;
}

.maps-loading-overlay-waiting .waiting-room-rounds-card .waiting-room-rounds-head {
  display: contents !important;
}

.maps-loading-overlay-waiting .waiting-room-rounds-card .waiting-room-rounds-head > span {
  grid-area: rounds-title !important;
  min-width: max-content !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

.maps-loading-overlay-waiting .waiting-room-rounds-card .waiting-room-rounds-head > strong {
  grid-area: rounds-value !important;
  justify-self: end !important;
}

.maps-loading-overlay-waiting .waiting-room-rounds-card .waiting-room-rounds-range {
  grid-area: rounds-slider !important;
  width: min(220px, 100%) !important;
  max-width: 220px !important;
  justify-self: end !important;
  margin-top: 0 !important;
}

@media (max-width: 760px) {
  .maps-loading-overlay-waiting .waiting-room-rounds-card {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas:
      "rounds-title rounds-value"
      "rounds-slider rounds-slider" !important;
  }

  .maps-loading-overlay-waiting .waiting-room-rounds-card .waiting-room-rounds-head > span {
    min-width: 0 !important;
    white-space: normal !important;
  }

  .maps-loading-overlay-waiting .waiting-room-rounds-card .waiting-room-rounds-range {
    width: 100% !important;
    max-width: none !important;
    justify-self: stretch !important;
  }
}


/* GeoGames 1.1.52: Número de rondas alineado al mismo lado que la barra. */
.maps-loading-overlay-waiting .waiting-room-rounds-card {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-areas:
    "rounds-header"
    "rounds-slider" !important;
  align-items: start !important;
  justify-items: start !important;
  row-gap: 10px !important;
  column-gap: 0 !important;
}

.maps-loading-overlay-waiting .waiting-room-rounds-card .waiting-room-rounds-head {
  grid-area: rounds-header !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
}

.maps-loading-overlay-waiting .waiting-room-rounds-card .waiting-room-rounds-head > span {
  grid-area: auto !important;
  min-width: 0 !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

.maps-loading-overlay-waiting .waiting-room-rounds-card .waiting-room-rounds-head > strong {
  grid-area: auto !important;
  justify-self: start !important;
}

.maps-loading-overlay-waiting .waiting-room-rounds-card .waiting-room-rounds-range {
  grid-area: rounds-slider !important;
  width: min(360px, 100%) !important;
  max-width: 360px !important;
  justify-self: start !important;
  margin-top: 0 !important;
}

@media (max-width: 760px) {
  .maps-loading-overlay-waiting .waiting-room-rounds-card {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas:
      "rounds-header"
      "rounds-slider" !important;
  }

  .maps-loading-overlay-waiting .waiting-room-rounds-card .waiting-room-rounds-head {
    flex-wrap: wrap !important;
  }

  .maps-loading-overlay-waiting .waiting-room-rounds-card .waiting-room-rounds-head > span {
    white-space: normal !important;
  }

  .maps-loading-overlay-waiting .waiting-room-rounds-card .waiting-room-rounds-range {
    width: 100% !important;
    max-width: none !important;
  }
}


/* GeoGames 1.1.53: en móvil Modo de juego y Overlay se muestran en grid sin scroll horizontal. */
@media (max-width: 760px) {
  body .maps-loading-overlay-waiting .waiting-room-settings .gg-segmented-mode,
  body .maps-loading-overlay-waiting .waiting-room-settings .gg-segmented-overlay {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-rows: 38px !important;
    gap: 4px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    scroll-snap-type: none !important;
    scrollbar-width: none !important;
    padding: 3px !important;
  }

  body .maps-loading-overlay-waiting .waiting-room-settings .gg-segmented-mode::-webkit-scrollbar,
  body .maps-loading-overlay-waiting .waiting-room-settings .gg-segmented-overlay::-webkit-scrollbar {
    display: none !important;
  }

  body .maps-loading-overlay-waiting .waiting-room-settings .gg-segmented-mode .gg-segment-btn,
  body .maps-loading-overlay-waiting .waiting-room-settings .gg-segmented-overlay .gg-segment-btn {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex: none !important;
    flex-basis: auto !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 0 7px !important;
    scroll-snap-align: none !important;
  }

  body .maps-loading-overlay-waiting .waiting-room-settings .waiting-room-field-mode,
  body .maps-loading-overlay-waiting .waiting-room-settings .waiting-room-overlay-field {
    overflow: visible !important;
  }
}


/* GeoGames 1.1.56: unidades min/sec a la derecha del número en selectores de tiempo. */
body .maps-loading-overlay-waiting .waiting-room-time-picker-inline label.waiting-room-time-unit-control {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 68px !important;
  gap: 2px !important;
  padding: 0 5px !important;
  color: rgba(226, 232, 240, .70) !important;
  font-size: .62rem !important;
  font-weight: 950 !important;
  letter-spacing: .02em !important;
  text-transform: lowercase !important;
  white-space: nowrap !important;
}

body .maps-loading-overlay-waiting .waiting-room-time-picker-inline label.waiting-room-time-unit-control input[type="number"] {
  flex: 0 0 38px !important;
  width: 38px !important;
  max-width: 38px !important;
  min-width: 38px !important;
  padding: 2px 2px !important;
  text-align: right !important;
}

body .maps-loading-overlay-waiting .waiting-room-time-picker-inline .waiting-room-time-unit-label {
  flex: 0 0 auto !important;
  min-width: 22px !important;
  color: rgba(226, 232, 240, .66) !important;
  font-size: .62rem !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  text-align: left !important;
}

@media (max-width: 760px) {
  body .maps-loading-overlay-waiting .waiting-room-time-picker-inline {
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
  }

  body .maps-loading-overlay-waiting .waiting-room-time-picker-inline label.waiting-room-time-unit-control {
    flex: 0 0 auto !important;
    min-width: 76px !important;
  }

  body .maps-loading-overlay-waiting .waiting-room-time-picker-inline label.waiting-room-time-unit-control input[type="number"] {
    width: 42px !important;
    max-width: 42px !important;
    min-width: 42px !important;
  }
}


/* GeoGames 1.1.57: en móvil, min y sec permanecen en una sola línea. */
@media (max-width: 760px) {
  body .maps-loading-overlay-waiting .waiting-room-time-picker-inline {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
  }

  body .maps-loading-overlay-waiting .waiting-room-time-picker-inline label.waiting-room-time-unit-control {
    display: inline-flex !important;
    flex-direction: row !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: auto !important;
    min-width: 62px !important;
    max-width: 72px !important;
    gap: 2px !important;
    padding: 0 3px !important;
    white-space: nowrap !important;
  }

  body .maps-loading-overlay-waiting .waiting-room-time-picker-inline label.waiting-room-time-unit-control input[type="number"] {
    flex: 0 0 36px !important;
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    padding: 2px 1px !important;
    text-align: right !important;
  }

  body .maps-loading-overlay-waiting .waiting-room-time-picker-inline .waiting-room-time-unit-label {
    display: inline-block !important;
    flex: 0 0 auto !important;
    min-width: 20px !important;
    max-width: 24px !important;
    white-space: nowrap !important;
    line-height: 1 !important;
  }
}

/* GeoGames 1.1.58: la barra lateral usa los mismos selectores visuales que la sala de espera. */
.side-panel .setup-player-options .setup-choice-native-label {
  display: grid;
  gap: 8px;
}

.side-panel .setup-player-options #setupRoleSelect,
.side-panel .setup-player-options #setupTeamSelect {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.side-panel .setup-choice-grid-wrap {
  display: block;
  width: 100%;
}

.side-panel .setup-choice-grid-wrap.hidden {
  display: none !important;
}

.side-panel .setup-choice-grid {
  display: grid !important;
  width: 100% !important;
  gap: 3px !important;
  padding: 3px !important;
  border: 1px solid rgba(125, 211, 252, .24) !important;
  border-radius: 12px !important;
  background: linear-gradient(180deg, rgba(10, 15, 31, .96), rgba(12, 19, 37, .88)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 8px 20px rgba(2, 6, 23, .16) !important;
  overflow: visible !important;
}

.side-panel .setup-choice-grid-role {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  grid-auto-rows: 36px !important;
}

.side-panel .setup-choice-grid-team {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  grid-auto-rows: 36px !important;
}

.side-panel .setup-choice-grid .gg-choice-segment-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: 36px !important;
  min-height: 36px !important;
  flex: none !important;
  padding: 0 8px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: transparent !important;
  color: rgba(248, 250, 252, .86) !important;
  box-shadow: none !important;
  font-size: .74rem !important;
  font-weight: 950 !important;
  letter-spacing: .01em !important;
  text-align: center !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.side-panel .setup-choice-grid-role .gg-choice-segment-btn.active {
  background: linear-gradient(135deg, rgba(34, 211, 238, .98), rgba(20, 184, 166, .94) 44%, rgba(139, 92, 246, .96)) !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(20, 184, 166, .22), 0 4px 16px rgba(139, 92, 246, .20), inset 0 1px 0 rgba(255,255,255,.20) !important;
}

.side-panel .setup-choice-grid-team .gg-choice-segment-btn.active {
  background: linear-gradient(180deg, color-mix(in srgb, var(--choice-color, #22d3ee) 96%, #ffffff 7%), color-mix(in srgb, var(--choice-color, #22d3ee) 78%, #0f172a 22%)) !important;
  color: #fff !important;
  box-shadow: 0 8px 20px color-mix(in srgb, var(--choice-color, #22d3ee) 30%, transparent), inset 0 1px 0 rgba(255,255,255,.22) !important;
}

.side-panel .setup-choice-grid-team .gg-choice-segment-btn[data-segment-value="white"].active {
  color: #0f172a !important;
  text-shadow: none !important;
  background: linear-gradient(180deg, #ffffff, #e2e8f0) !important;
}

.side-panel .setup-sidebar-settings-card {
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
}

.side-panel .setup-settings-strip-side {
  display: flex !important;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 4px;
}

.side-panel .setup-settings-strip-side span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  padding: 5px 8px;
  border-radius: 999px;
  border: 1px solid rgba(125, 211, 252, .18);
  background: rgba(15, 23, 42, .48);
  color: #cbd5e1;
  font-size: .72rem;
  line-height: 1.22;
}

.side-panel .setup-settings-strip-side strong {
  color: #f8fafc;
}

.side-panel .setup-sidebar-settings-card + .setup-summary-head {
  margin-top: 6px;
}

.side-panel .setup-summary-head-settings h3 {
  margin: 0;
}


/* GeoGames 1.1.59: botón de barra lateral fuera del panel también en móvil. */
@media (max-width: 900px) {
    .side-panel {
        width: min(380px, calc(100vw - 72px)) !important;
        max-width: calc(100vw - 72px) !important;
    }

    .side-panel-frame-toggle {
        position: fixed !important;
        top: calc(env(safe-area-inset-top, 0px) + 10px) !important;
        left: min(390px, calc(100vw - 58px)) !important;
        right: auto !important;
        z-index: 975 !important;
    }
}

/* GeoGames 1.1.59: reacciones de chat más grandes que el texto normal. */
.chat-reaction-bar {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px !important;
    margin-bottom: 9px !important;
}

.chat-reaction-bar .chat-reaction-btn {
    width: 100% !important;
    height: 36px !important;
    min-height: 36px !important;
    padding: 0 !important;
    border-radius: 12px !important;
    border: 1px solid rgba(125, 211, 252, .22) !important;
    background:
        radial-gradient(circle at 35% 0%, rgba(34, 211, 238, .18), transparent 48%),
        linear-gradient(135deg, rgba(15, 23, 42, .96), rgba(46, 16, 101, .76)) !important;
    color: #f8fafc !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 8px 18px rgba(2, 6, 23, .18);
    font-size: 21px !important;
    line-height: 1 !important;
    font-weight: 950 !important;
}

.chat-reaction-bar .chat-reaction-btn.chat-reaction-gg {
    font-size: 15px !important;
    letter-spacing: .055em;
}

.chat-reaction-bar .chat-reaction-btn:hover:not(:disabled) {
    transform: translateY(-1px);
    border-color: rgba(52, 211, 153, .42) !important;
    background:
        radial-gradient(circle at 35% 0%, rgba(52, 211, 153, .20), transparent 48%),
        linear-gradient(135deg, rgba(8, 47, 73, .94), rgba(88, 28, 135, .82)) !important;
}

.chat-message-reaction .chat-message-text {
    padding: 8px 0 2px;
    font-size: 34px !important;
    line-height: 1.05 !important;
    font-weight: 950;
    letter-spacing: .015em;
    text-align: center;
    white-space: normal;
    text-shadow: 0 4px 18px rgba(2, 6, 23, .36);
}

.chat-message-reaction.chat-reaction-gg .chat-message-text {
    font-size: 28px !important;
    letter-spacing: .08em;
    color: #bbf7d0;
}

.chat-message.mine.chat-message-reaction .chat-message-text {
    text-align: center;
}

@media (max-width: 520px) {
    .chat-reaction-bar {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .chat-reaction-bar .chat-reaction-btn {
        height: 34px !important;
        min-height: 34px !important;
        font-size: 20px !important;
    }

    .chat-message-reaction .chat-message-text {
        font-size: 32px !important;
    }
}


/* GeoGames 1.1.60: chat más cómodo y reacciones grandes solo en overlay. */
.chat-form {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
}

.chat-form button {
    width: 96px !important;
    min-width: 96px !important;
    justify-self: end !important;
    padding-inline: 10px !important;
}

.chat-section .chat-message-reaction .chat-message-text {
    padding: 0 !important;
    color: #e5e7eb;
    font-size: 13px !important;
    line-height: 1.35 !important;
    font-weight: inherit !important;
    letter-spacing: normal !important;
    text-align: left !important;
    white-space: pre-wrap !important;
    text-shadow: none !important;
}

.chat-section .chat-message-reaction.chat-reaction-gg .chat-message-text {
    color: #e5e7eb !important;
    font-size: 13px !important;
    letter-spacing: normal !important;
}

.chat-overlay-message.chat-message-reaction .chat-overlay-text {
    padding: 6px 0 2px;
    font-size: 36px !important;
    line-height: 1.05 !important;
    font-weight: 950;
    letter-spacing: .015em;
    text-align: center;
    white-space: normal;
    text-shadow: 0 4px 18px rgba(2, 6, 23, .36);
}

.chat-overlay-message.chat-message-reaction.chat-reaction-gg .chat-overlay-text {
    font-size: 30px !important;
    letter-spacing: .08em;
    color: #bbf7d0;
}

/* GeoGames 1.1.60: el botón de ocultar lateral queda visible fuera del panel en móvil. */
@media (max-width: 900px) {
    .side-panel {
        width: min(380px, calc(100vw - 72px)) !important;
        max-width: calc(100vw - 72px) !important;
        overflow: auto !important;
    }

    .side-panel-frame-toggle {
        display: inline-flex !important;
        position: fixed !important;
        top: calc(env(safe-area-inset-top, 0px) + 10px) !important;
        right: 12px !important;
        left: auto !important;
        z-index: 1200 !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .game-shell.is-side-collapsed .side-panel-frame-toggle {
        display: none !important;
    }

    .game-shell.is-side-collapsed .side-panel-open {
        display: inline-flex !important;
        top: calc(env(safe-area-inset-top, 0px) + 10px) !important;
        left: 10px !important;
        right: auto !important;
        z-index: 1200 !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
}


/* GeoGames 1.1.61: el botón de ocultar barra lateral vive fuera del aside también en móvil. */
.side-panel-frame-toggle {
    position: fixed !important;
    top: 22px !important;
    left: calc(var(--side-panel-width, 360px) + 16px) !important;
    right: auto !important;
    z-index: 1300 !important;
}

@media (max-width: 900px) {
    .side-panel {
        width: min(380px, calc(100vw - 74px)) !important;
        max-width: calc(100vw - 74px) !important;
    }

    .side-panel-frame-toggle {
        display: inline-flex !important;
        position: fixed !important;
        top: calc(env(safe-area-inset-top, 0px) + 10px) !important;
        left: calc(min(380px, calc(100vw - 74px)) + 10px) !important;
        right: auto !important;
        z-index: 1300 !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    .game-shell.is-side-collapsed .side-panel-frame-toggle {
        display: none !important;
    }

    .game-shell.is-side-collapsed .side-panel-open {
        display: inline-flex !important;
        top: calc(env(safe-area-inset-top, 0px) + 10px) !important;
        left: 10px !important;
        right: auto !important;
        z-index: 1300 !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }
}


/* GeoGames 1.1.62: Objetivos integrados dentro del panel Modo. */
.mode-panel-section {
    display: grid;
    gap: 10px;
}

.mode-panel-section #modeBox {
    display: block;
    margin: 0;
}

.mode-box-unified {
    display: grid;
    gap: 10px;
}

.mode-box-title {
    display: grid;
    gap: 3px;
}

.mode-box-objective {
    margin: 0;
    color: #dbeafe;
    line-height: 1.45;
}

.mode-box-config-block {
    display: grid;
    gap: 7px;
    margin-top: 8px;
}

.mode-box-config-title {
    color: #e0f2fe;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.mode-targets-block {
    display: grid;
    gap: 8px;
    margin-top: 8px;
    padding-top: 10px;
    border-top: 1px solid rgba(148, 163, 184, .18);
}

.mode-targets-block.hidden {
    display: none !important;
}

.mode-targets-block h3 {
    margin: 0;
    color: #e0f2fe;
    font-size: 13px;
    font-weight: 950;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.mode-checkpoint-list {
    margin-top: 0;
}


/* GeoGames 1.1.63: descripción dinámica del modo con parámetros integrados. */
.mode-box-objective {
    text-wrap: pretty;
}

.mode-box-objective strong {
    color: #e0f2fe;
}

.mode-box-config-block {
    margin-top: 10px;
}


/* GeoGames 1.1.66: botón Listo compacto y controles menos pastilla. */
#playerSetupForm > button[type="submit"] {
    width: fit-content !important;
    min-width: 0 !important;
    max-width: 100% !important;
    justify-self: start !important;
    align-self: start !important;
    padding: 9px 18px !important;
    min-height: 36px !important;
    border-radius: 12px !important;
    line-height: 1.1 !important;
}

.waiting-room-ready-btn {
    width: fit-content !important;
    min-width: 78px !important;
    max-width: 100% !important;
    justify-self: end !important;
    align-self: end !important;
    padding: 9px 18px !important;
    min-height: 36px !important;
    border-radius: 12px !important;
    line-height: 1.1 !important;
}

.waiting-room-ready-btn.secondary,
#editSetupBtn {
    border-radius: 12px !important;
}

.checkbox-line input[type="checkbox"],
.waiting-room-time-enabled input[type="checkbox"],
input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    margin: 0 !important;
    border: 1px solid rgba(125, 211, 252, .46) !important;
    border-radius: 6px !important;
    background: rgba(15, 23, 42, .92) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 0 0 1px rgba(2,6,23,.10);
    cursor: pointer;
    vertical-align: middle;
    position: relative;
}

.checkbox-line input[type="checkbox"]:checked,
.waiting-room-time-enabled input[type="checkbox"]:checked,
input[type="checkbox"]:checked {
    border-color: rgba(52, 211, 153, .78) !important;
    background: linear-gradient(135deg, rgba(34, 197, 94, .96), rgba(34, 211, 238, .90)) !important;
}

.checkbox-line input[type="checkbox"]:checked::after,
.waiting-room-time-enabled input[type="checkbox"]:checked::after,
input[type="checkbox"]:checked::after {
    content: "✓";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #02111f;
    font-size: 13px;
    font-weight: 950;
    line-height: 1;
}

.checkbox-line input[type="checkbox"]:focus-visible,
.waiting-room-time-enabled input[type="checkbox"]:focus-visible,
input[type="checkbox"]:focus-visible {
    outline: 2px solid rgba(125, 211, 252, .55);
    outline-offset: 2px;
}


/* GeoGames 1.1.67: quitar el contorno que encapsula checkbox+texto y unificar color de Listo. */
.waiting-room-time-enabled,
.checkbox-line {
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 8px !important;
    padding: 4px 0 !important;
}

.waiting-room-time-enabled:hover,
.checkbox-line:hover {
    background: transparent !important;
    box-shadow: none !important;
}

/* Botón Listo lateral con el mismo color que el Listo de la sala de espera. */
#playerSetupForm > button[type="submit"] {
    color: #02111f !important;
    border: 0 !important;
    background: linear-gradient(135deg, #22c55e, #67e8f9) !important;
    box-shadow: 0 12px 28px rgba(34, 197, 94, .20) !important;
    font-weight: 900 !important;
}

#playerSetupForm > button[type="submit"]:hover:not(:disabled) {
    border: 0 !important;
    background: linear-gradient(135deg, #34d399, #7dd3fc) !important;
    color: #02111f !important;
}


/* GeoGames 1.1.69: cortina previa para no revelar el punto antes del blur/contador. */
.map-stage.pregame-blur-active > :not(#countdownOverlay):not(#mapsLoadingOverlay):not(.maps-loading-overlay) {
    filter: blur(14px);
    transition: filter 120ms ease;
    pointer-events: none !important;
    user-select: none;
}

.map-stage.pregame-loading-shield-active::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 30;
    pointer-events: none;
    background:
        radial-gradient(circle at 50% 38%, rgba(34, 211, 238, .12), transparent 35%),
        linear-gradient(135deg, rgba(2, 6, 23, .88), rgba(15, 23, 42, .72), rgba(46, 16, 101, .55));
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.map-stage.pregame-loading-shield-active #mapsLoadingOverlay,
.map-stage.pregame-loading-shield-active .maps-loading-overlay,
.map-stage.pregame-blur-active #countdownOverlay {
    z-index: 35;
}


.map-stage.pregame-blur-active #mapsLoadingOverlay,
.map-stage.pregame-blur-active .maps-loading-overlay {
    filter: none !important;
    pointer-events: auto !important;
}


/* GeoGames 1.1.70: aviso de ladrón atrapado estable y más visible para policías. */
.map-label.scotland-trap-reveal-label {
  background: linear-gradient(135deg, rgba(249, 115, 22, .96), rgba(239, 68, 68, .92)) !important;
  color: #fff7ed !important;
  border-color: rgba(255,255,255,.86) !important;
  box-shadow: 0 0 0 2px rgba(249,115,22,.22), 0 12px 28px rgba(127,29,29,.36) !important;
  font-weight: 1000 !important;
}


/* GeoGames 1.1.76: aviso de límite independiente y persistente. */
.scotland-boundary-notice {
    position: absolute;
    left: 50%;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 22px);
    transform: translateX(-50%);
    z-index: 90;
    max-width: min(680px, calc(100% - 36px));
    padding: 11px 16px;
    border-radius: 14px;
    border: 1px solid rgba(251, 191, 36, .42);
    background:
        radial-gradient(circle at 14% 0%, rgba(251, 191, 36, .18), transparent 42%),
        linear-gradient(135deg, rgba(15, 23, 42, .96), rgba(69, 26, 3, .88));
    color: #fef3c7;
    font-weight: 900;
    letter-spacing: .01em;
    text-align: center;
    box-shadow: 0 18px 42px rgba(2, 6, 23, .42), inset 0 1px 0 rgba(255,255,255,.08);
    pointer-events: none;
    opacity: 1;
}

.scotland-boundary-notice.hidden {
    display: none !important;
}

@media (max-width: 720px) {
    .scotland-boundary-notice {
        bottom: calc(env(safe-area-inset-bottom, 0px) + 14px);
        max-width: calc(100% - 24px);
        padding: 10px 12px;
        font-size: 13px;
    }
}


/* GeoGames 1.1.77: aviso progresivo del radio de juego. */
.scotland-boundary-notice.is-warning {
    border-color: rgba(251, 191, 36, .54);
    background:
        radial-gradient(circle at 14% 0%, rgba(251, 191, 36, .22), transparent 42%),
        linear-gradient(135deg, rgba(15, 23, 42, .96), rgba(69, 26, 3, .88));
    color: #fef3c7;
}

.scotland-boundary-notice.is-danger {
    border-color: rgba(248, 113, 113, .66);
    background:
        radial-gradient(circle at 14% 0%, rgba(248, 113, 113, .22), transparent 42%),
        linear-gradient(135deg, rgba(15, 23, 42, .98), rgba(127, 29, 29, .90));
    color: #fee2e2;
    box-shadow: 0 18px 42px rgba(127, 29, 29, .34), inset 0 1px 0 rgba(255,255,255,.08);
}


/* GeoGames 1.1.78: marcador final del punto de captura en Scotland Yard. */
.scotland-capture-label {
    font-size: 12px !important;
    font-weight: 950 !important;
    color: #fee2e2 !important;
    background:
        radial-gradient(circle at 15% 0%, rgba(248, 113, 113, .28), transparent 45%),
        linear-gradient(135deg, rgba(127, 29, 29, .96), rgba(15, 23, 42, .94)) !important;
    border: 1px solid rgba(248, 113, 113, .58) !important;
    box-shadow: 0 12px 28px rgba(127, 29, 29, .30), inset 0 1px 0 rgba(255,255,255,.10) !important;
}


/* GeoGames 1.1.83: viewport móvil real.
   En móviles, 100vh incluye a menudo la barra de direcciones y el menú inferior del navegador.
   Estas reglas usan --gg-visible-height, actualizado por app.js con VisualViewport, para que la partida
   ocupe el alto realmente visible y no quede cortada por Chrome/Safari. */
:root {
    --gg-visible-height: 100vh;
    --gg-visible-width: 100vw;
    --gg-vvh: var(--gg-visible-height);
    --gg-vvw: var(--gg-visible-width);
}

@supports (height: 100dvh) {
    :root {
        --gg-visible-height: 100dvh;
        --gg-vvh: 100dvh;
    }
}

@media (max-width: 900px) {
    body.page-game,
    html[data-gg-viewport-ready] body.page-game {
        width: var(--gg-visible-width) !important;
        min-width: 0 !important;
        height: var(--gg-visible-height) !important;
        min-height: var(--gg-visible-height) !important;
        max-height: var(--gg-visible-height) !important;
        overflow: hidden !important;
        overscroll-behavior: none !important;
        background: #020617 !important;
    }

    body.page-game .game-shell {
        display: block !important;
        width: var(--gg-visible-width) !important;
        min-width: 0 !important;
        max-width: var(--gg-visible-width) !important;
        height: var(--gg-visible-height) !important;
        min-height: var(--gg-visible-height) !important;
        max-height: var(--gg-visible-height) !important;
        overflow: hidden !important;
    }

    body.page-game .play-area {
        display: grid !important;
        grid-template-rows: minmax(0, 1fr) auto !important;
        width: var(--gg-visible-width) !important;
        min-width: 0 !important;
        max-width: var(--gg-visible-width) !important;
        height: var(--gg-visible-height) !important;
        min-height: 0 !important;
        max-height: var(--gg-visible-height) !important;
        overflow: hidden !important;
        padding: 0 !important;
        background: #020617 !important;
    }

    body.page-game .map-stage {
        min-height: 0 !important;
        height: auto !important;
        max-height: none !important;
        overflow: hidden !important;
    }

    body.page-game .ad-game-bottom {
        grid-row: 2 !important;
        height: clamp(46px, 7.2vh, 64px) !important;
        min-height: 46px !important;
        max-height: 64px !important;
        margin: 0 !important;
        padding: 3px 6px calc(3px + env(safe-area-inset-bottom, 0px)) !important;
        border-radius: 0 !important;
        overflow: hidden !important;
    }

    body.page-game .ad-game-bottom .ad-label {
        display: none !important;
    }

    body.page-game .ad-game-bottom .adsbygoogle,
    body.page-game .ad-game-bottom .gg-sponsor-frame,
    body.page-game .ad-game-bottom .adsterra-zone {
        height: 100% !important;
        min-height: 40px !important;
        max-height: 58px !important;
    }

    body.page-game .side-panel {
        height: var(--gg-visible-height) !important;
        min-height: 0 !important;
        max-height: var(--gg-visible-height) !important;
        padding-top: calc(14px + env(safe-area-inset-top, 0px)) !important;
        padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
        overscroll-behavior: contain !important;
        -webkit-overflow-scrolling: touch !important;
    }

    body.page-game .side-panel-frame-toggle,
    body.page-game .game-shell.is-side-collapsed .side-panel-open {
        top: calc(env(safe-area-inset-top, 0px) + 10px) !important;
    }

    body.page-game .driver-controls {
        bottom: calc(env(safe-area-inset-bottom, 0px) + 10px) !important;
    }

    body.page-game .scotland-boundary-notice {
        bottom: calc(env(safe-area-inset-bottom, 0px) + 12px) !important;
    }
}

@media (max-width: 760px), (max-height: 620px) {
    body.page-game .ad-game-bottom,
    body.page-game .adsterra-game-bottom,
    body.page-game .gg-sponsor-game-bottom,
    body.page-game .ad-game-bottom.adsterra-box {
        display: none !important;
    }

    body.page-game .play-area {
        grid-template-rows: minmax(0, 1fr) !important;
    }
}

/* GeoGames 1.1.84: adblock allow-list helper inside support notice */
body .adblock-support-guide {
    grid-column: 1 / -1 !important;
    margin-top: 16px !important;
    padding: 16px !important;
    border-radius: 20px !important;
    border: 1px solid rgba(186, 230, 253, 0.22) !important;
    background: rgba(2, 6, 23, 0.42) !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.035) !important;
}

body .adblock-support-guide[hidden] {
    display: none !important;
}

body .adblock-support-guide-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    color: #ffffff !important;
    font-size: 0.98rem !important;
    line-height: 1.2 !important;
}

body .adblock-support-url {
    margin: 10px 0 12px !important;
    padding: 9px 11px !important;
    border-radius: 14px !important;
    color: #dbeafe !important;
    background: rgba(15, 23, 42, 0.78) !important;
    border: 1px solid rgba(148, 163, 184, 0.25) !important;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace !important;
    font-size: 0.84rem !important;
    overflow-wrap: anywhere !important;
}

body .adblock-support-steps {
    margin: 0 !important;
    padding-left: 20px !important;
    color: rgba(234, 247, 255, 0.9) !important;
    font-size: 0.92rem !important;
    line-height: 1.48 !important;
}

body .adblock-support-steps li + li {
    margin-top: 6px !important;
}

body .adblock-support-mini,
body .adblock-support-reload {
    appearance: none !important;
    border: 0 !important;
    border-radius: 999px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

body .adblock-support-mini {
    flex: 0 0 auto !important;
    padding: 8px 10px !important;
    color: #082f49 !important;
    background: #e0f2fe !important;
    font-size: 0.78rem !important;
}

body .adblock-support-reload {
    width: 100% !important;
    margin-top: 14px !important;
    padding: 11px 14px !important;
    color: #07101f !important;
    background: linear-gradient(135deg, #fde68a, #7dd3fc) !important;
    font-size: 0.9rem !important;
}

body .adblock-support-note {
    margin: 10px 0 0 !important;
    color: rgba(191, 219, 254, 0.82) !important;
    font-size: 0.82rem !important;
    line-height: 1.4 !important;
}

body .adblock-support-mini:hover,
body .adblock-support-reload:hover {
    transform: translateY(-1px) !important;
    filter: brightness(1.06) !important;
}

@media (max-width: 640px) {
    body .adblock-support {
        align-items: end !important;
        padding: 10px !important;
    }

    body .adblock-support-card {
        max-height: calc(var(--gg-real-vh, 1vh) * 100 - 20px) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    body .adblock-support-guide-head {
        align-items: flex-start !important;
        flex-direction: column !important;
    }

    body .adblock-support-mini {
        width: 100% !important;
        text-align: center !important;
    }
}


/* GeoGames 1.1.86: Chrome-safe advertising mode.
   Only fixed-size, in-flow banner containers are allowed. No floating, sticky,
   pop-up-style, full-screen or anti-adblock overlay behaviour. */
body .gg-sponsor-slot[data-gg-safe-ads="1"],
body .adsterra-box[data-gg-safe-ads="1"] {
    position: relative !important;
    inset: auto !important;
    z-index: 1 !important;
    float: none !important;
    transform: none !important;
    overflow: hidden !important;
    contain: layout paint !important;
    pointer-events: auto !important;
}

body .gg-sponsor-slot[data-gg-safe-ads="1"] .gg-sponsor-frame,
body .adsterra-box[data-gg-safe-ads="1"] .adsterra-zone {
    overflow: hidden !important;
    isolation: isolate !important;
    contain: layout paint !important;
}

body .gg-sponsor-slot[data-gg-safe-ads="1"] iframe,
body .adsterra-box[data-gg-safe-ads="1"] iframe {
    display: block !important;
    border: 0 !important;
    width: var(--sponsor-width, 728px) !important;
    height: var(--sponsor-height, 90px) !important;
    max-width: 100% !important;
    max-height: 100% !important;
    overflow: hidden !important;
}

body .adblock-support {
    display: none !important;
}

@media (max-width: 760px) {
    body .gg-sponsor-slot[data-gg-safe-ads="1"],
    body .adsterra-box[data-gg-safe-ads="1"] {
        display: none !important;
    }
}


/* GeoGames 1.1.89: móvil con panel lateral flotante, no inferior.
   Mantiene la corrección de alto visible de 1.1.83, pero el panel vuelve a ser lateral
   y se muestra/oculta con el botón. El mapa siempre ocupa el viewport completo por detrás. */
@media (max-width: 900px) {
    body.page-game,
    html[data-gg-viewport-ready] body.page-game {
        position: fixed !important;
        inset: 0 !important;
        width: var(--gg-visible-width, 100vw) !important;
        min-width: 0 !important;
        height: var(--gg-visible-height, 100dvh) !important;
        min-height: var(--gg-visible-height, 100dvh) !important;
        max-height: var(--gg-visible-height, 100dvh) !important;
        overflow: hidden !important;
        overscroll-behavior: none !important;
        background: #020617 !important;
    }

    body.page-game .game-shell {
        display: block !important;
        position: relative !important;
        width: var(--gg-visible-width, 100vw) !important;
        min-width: 0 !important;
        max-width: var(--gg-visible-width, 100vw) !important;
        height: var(--gg-visible-height, 100dvh) !important;
        min-height: 0 !important;
        max-height: var(--gg-visible-height, 100dvh) !important;
        overflow: hidden !important;
    }

    body.page-game .layout-resize-handle {
        display: none !important;
    }

    body.page-game .play-area,
    body.page-game .game-shell:not(.is-side-collapsed) .play-area,
    body.page-game .game-shell.is-side-collapsed .play-area {
        display: grid !important;
        grid-template-rows: minmax(0, 1fr) auto !important;
        position: absolute !important;
        inset: 0 !important;
        z-index: 1 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        max-height: 100% !important;
        overflow: hidden !important;
        padding: 0 !important;
        background: #020617 !important;
    }

    body.page-game .map-stage,
    body.page-game .game-shell:not(.is-side-collapsed) .map-stage,
    body.page-game .game-shell.is-side-collapsed .map-stage {
        grid-row: 1 !important;
        position: relative !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: hidden !important;
    }

    body.page-game .side-panel,
    body.page-game .game-shell:not(.is-side-collapsed) .side-panel {
        display: block !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: auto !important;
        bottom: 0 !important;
        z-index: 940 !important;
        width: min(380px, calc(100vw - 74px)) !important;
        min-width: 0 !important;
        max-width: calc(100vw - 74px) !important;
        height: var(--gg-visible-height, 100dvh) !important;
        min-height: 0 !important;
        max-height: var(--gg-visible-height, 100dvh) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        padding-top: calc(14px + env(safe-area-inset-top, 0px)) !important;
        padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
        border-top: 0 !important;
        border-right: 1px solid rgba(148, 163, 184, .28) !important;
        border-radius: 0 !important;
        box-shadow: 24px 0 60px rgba(2, 6, 23, .58) !important;
        transform: none !important;
        visibility: visible !important;
        pointer-events: auto !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        backdrop-filter: blur(16px) !important;
    }

    body.page-game .game-shell.is-side-collapsed .side-panel {
        display: none !important;
        pointer-events: none !important;
        visibility: hidden !important;
    }

    body.page-game .side-panel-frame-toggle {
        display: inline-flex !important;
        position: fixed !important;
        top: calc(env(safe-area-inset-top, 0px) + 10px) !important;
        left: calc(min(380px, calc(100vw - 74px)) + 10px) !important;
        right: auto !important;
        bottom: auto !important;
        z-index: 1300 !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    body.page-game .game-shell.is-side-collapsed .side-panel-frame-toggle {
        display: none !important;
    }

    body.page-game .game-shell.is-side-collapsed .side-panel-open {
        display: inline-flex !important;
        position: fixed !important;
        top: calc(env(safe-area-inset-top, 0px) + 10px) !important;
        left: calc(env(safe-area-inset-left, 0px) + 10px) !important;
        right: auto !important;
        bottom: auto !important;
        z-index: 1300 !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    body.page-game .driver-controls {
        bottom: calc(env(safe-area-inset-bottom, 0px) + 10px) !important;
    }

    body.page-game .scotland-boundary-notice {
        bottom: calc(env(safe-area-inset-bottom, 0px) + 12px) !important;
    }
}

@media (max-width: 420px) {
    body.page-game .side-panel,
    body.page-game .game-shell:not(.is-side-collapsed) .side-panel {
        width: min(360px, calc(100vw - 58px)) !important;
        max-width: calc(100vw - 58px) !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    body.page-game .side-panel-frame-toggle {
        left: calc(min(360px, calc(100vw - 58px)) + 8px) !important;
    }
}


/* GeoGames 1.1.91: hotfix móvil.
   Se mantiene el panel lateral flotante de 1.1.89 y se revierte la integración
   de anuncios a sandbox/iframe seguro para que ningún script externo pueda
   alterar el layout de sala de espera o mapa en móvil. Los banners móviles solo
   se permiten fuera de la pantalla de juego. */
@media (max-width: 760px) {
    body:not(.page-game) .gg-sponsor-slot[data-gg-safe-ads="1"],
    body:not(.page-game) .adsterra-box[data-gg-safe-ads="1"] {
        display: block !important;
        width: min(100%, var(--sponsor-width, 728px)) !important;
        max-width: calc(100vw - 24px) !important;
        min-height: min(var(--sponsor-height, 90px), 120px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    body.page-game .gg-sponsor-slot[data-gg-safe-ads="1"],
    body.page-game .adsterra-box[data-gg-safe-ads="1"],
    body.page-game .monetag-box[data-gg-safe-ads="1"],
    body.page-game .ad-game-sidebar,
    body.page-game .ad-game-bottom,
    body.page-game .adsterra-game-sidebar,
    body.page-game .adsterra-game-bottom,
    body.page-game .monetag-game-sidebar,
    body.page-game .monetag-game-bottom {
        display: none !important;
    }
}

/* GeoGames 1.1.91: controles propios por encima del fullscreen nativo de Google Maps/Street View.
   Solo se activa durante fullscreen; no modifica el layout normal móvil. */
.geogames-fullscreen-control-layer {
    position: absolute !important;
    inset: 0 !important;
    z-index: 2147483000 !important;
    pointer-events: none !important;
    overflow: hidden !important;
    touch-action: none !important;
}

.geogames-fullscreen-control-layer > * {
    pointer-events: auto !important;
}

.geogames-fullscreen-control-layer #driverControls {
    position: absolute !important;
    left: max(14px, env(safe-area-inset-left, 0px) + 14px) !important;
    right: auto !important;
    bottom: max(14px, env(safe-area-inset-bottom, 0px) + 14px) !important;
    z-index: 2147483100 !important;
    max-width: min(520px, calc(100% - 28px)) !important;
}

.geogames-fullscreen-control-layer #hideSeekMapResizeControls,
.geogames-fullscreen-control-layer #spectatorHint,
.geogames-fullscreen-control-layer #streetViewOverlay,
.geogames-fullscreen-control-layer #chatOverlayHost,
.geogames-fullscreen-control-layer #soloRallyHintOverlay,
.geogames-fullscreen-control-layer #streetSearchOverlay,
.geogames-fullscreen-control-layer #mapsLoadingOverlay,
.geogames-fullscreen-control-layer #countdownOverlay {
    z-index: 2147483100 !important;
}

.geogames-fullscreen-control-layer #sidePanelToggleBtn,
.geogames-fullscreen-control-layer #sidePanelOpenBtn {
    position: absolute !important;
    top: max(10px, env(safe-area-inset-top, 0px) + 10px) !important;
    left: max(10px, env(safe-area-inset-left, 0px) + 10px) !important;
    right: auto !important;
    bottom: auto !important;
    display: inline-flex !important;
    z-index: 2147483200 !important;
    opacity: 1 !important;
    visibility: visible !important;
}

@media (max-width: 640px) {
    .geogames-fullscreen-control-layer #driverControls {
        left: 10px !important;
        right: 10px !important;
        bottom: max(10px, env(safe-area-inset-bottom, 0px) + 10px) !important;
        max-width: none !important;
        width: auto !important;
    }

    .geogames-fullscreen-control-layer #driverControls .driver-control-buttons {
        gap: 6px !important;
    }

    .geogames-fullscreen-control-layer #driverControls button {
        padding: 8px 9px !important;
        font-size: 12px !important;
    }
}

/* GeoGames 1.1.92: estado de marcas en Escondite y botón Esconderme dentro del fullscreen de Google Maps. */
.hide-seek-search-roster {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
    width: 100%;
    margin-top: 7px;
}
.hide-seek-search-roster-group {
    display: grid;
    gap: 4px;
    min-width: 0;
}
.hide-seek-search-roster-title {
    color: rgba(236, 254, 255, .9) !important;
    font-size: 10px !important;
    font-weight: 950 !important;
    letter-spacing: .05em;
    text-transform: uppercase;
    white-space: nowrap !important;
}
.hide-seek-search-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    min-width: 0;
}
.hide-seek-search-chip,
.hide-seek-search-empty {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    min-height: 24px;
    padding: 3px 7px;
    border-radius: 999px;
    color: #ecfeff !important;
    background: rgba(15, 23, 42, .34);
    border: 1px solid rgba(186, 230, 253, .24);
    font-size: 11px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
}
.hide-seek-search-chip-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
.hide-seek-search-chip small {
    color: rgba(207, 250, 254, .86) !important;
    font-size: 9px !important;
    font-weight: 1000 !important;
    text-transform: uppercase;
}
.hide-seek-search-chip.is-final {
    background: rgba(34, 197, 94, .22);
    border-color: rgba(134, 239, 172, .45);
}
.hide-seek-search-chip.is-draft {
    background: rgba(14, 165, 233, .22);
    border-color: rgba(125, 211, 252, .48);
}
.hide-seek-search-chip.is-pending {
    background: rgba(148, 163, 184, .16);
    border-color: rgba(203, 213, 225, .26);
    opacity: .92;
}
.hide-seek-search-empty {
    color: rgba(207, 250, 254, .82) !important;
    font-style: italic;
}
.hide-seek-search-empty.is-complete {
    background: rgba(34, 197, 94, .20);
    border-color: rgba(134, 239, 172, .40);
}
#spectatorHint .hide-seek-search-roster {
    grid-template-columns: 1fr;
    margin-top: 10px;
}
#spectatorHint .hide-seek-search-roster-title {
    color: rgba(226, 232, 240, .86) !important;
}
#spectatorHint .hide-seek-search-chip,
#spectatorHint .hide-seek-search-empty {
    background: rgba(15, 23, 42, .68);
}

.hide-seek-save-map-control {
    margin: 0 0 max(12px, env(safe-area-inset-bottom, 0px) + 12px) 0;
    pointer-events: auto;
    z-index: 2147482000;
}
.hide-seek-save-map-control.hidden {
    display: none !important;
}
.hide-seek-save-map-card {
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: min(560px, calc(100vw - 24px));
    padding: 7px 9px;
    border-radius: 999px;
    color: #ecfeff;
    background: linear-gradient(135deg, rgba(15, 23, 42, .92), rgba(6, 78, 59, .88));
    border: 1px solid rgba(134, 239, 172, .48);
    box-shadow: 0 12px 28px rgba(2, 6, 23, .34), 0 0 18px rgba(34, 197, 94, .24);
    backdrop-filter: blur(10px);
    font: 800 12px/1.15 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.hide-seek-save-map-card button {
    min-height: 34px;
    padding: 0 12px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    font-weight: 1000 !important;
    white-space: nowrap;
}
.hide-seek-save-map-card button:disabled {
    opacity: .55 !important;
    cursor: not-allowed !important;
}
.hide-seek-save-map-card span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.hide-seek-save-map-timer {
    flex: 0 0 auto;
    padding: 4px 7px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .42);
    color: #bbf7d0;
    font-weight: 1000;
}
.geogames-fullscreen-control-layer .hide-seek-save-map-control {
    position: absolute !important;
    left: 50% !important;
    right: auto !important;
    bottom: max(12px, env(safe-area-inset-bottom, 0px) + 12px) !important;
    transform: translateX(-50%) !important;
    z-index: 2147483300 !important;
}

@media (max-width: 640px) {
    .hide-seek-search-roster {
        grid-template-columns: 1fr;
        gap: 6px;
    }
    .hide-seek-search-chip,
    .hide-seek-search-empty {
        min-height: 22px;
        padding: 3px 6px;
        font-size: 10px !important;
    }
    .hide-seek-save-map-card {
        max-width: calc(100vw - 16px);
        gap: 6px;
        padding: 6px 7px;
        font-size: 11px;
    }
    .hide-seek-save-map-card button {
        min-height: 32px;
        padding: 0 10px !important;
        font-size: 11px !important;
    }
    .hide-seek-save-map-card span:not(.hide-seek-save-map-timer) {
        max-width: 42vw;
    }
}

/* GeoGames 1.1.98: mantener el minimapa de adivinar visible dentro del fullscreen nativo de Street View. */
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map > #map {
    display: block !important;
    position: absolute !important;
    right: max(12px, env(safe-area-inset-right, 0px) + 12px) !important;
    bottom: max(12px, env(safe-area-inset-bottom, 0px) + 12px) !important;
    left: auto !important;
    top: auto !important;
    width: clamp(240px, 34vw, 430px) !important;
    height: clamp(180px, 34vh, 310px) !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: calc(100% - max(24px, env(safe-area-inset-left, 0px) + env(safe-area-inset-right, 0px) + 24px)) !important;
    max-height: calc(100% - max(24px, env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + 24px)) !important;
    z-index: 2147483050 !important;
    border: 2px solid rgba(125, 211, 252, .78) !important;
    border-radius: 18px !important;
    box-shadow: 0 22px 70px rgba(2, 6, 23, .58), 0 0 0 1px rgba(255,255,255,.10) !important;
    overflow: hidden !important;
    pointer-events: auto !important;
    touch-action: pan-x pan-y pinch-zoom !important;
}
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map.hide-seek-map-size-0 > #map {
    width: clamp(220px, 28vw, 360px) !important;
    height: clamp(160px, 28vh, 240px) !important;
}
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map.hide-seek-map-size-1 > #map {
    width: clamp(240px, 34vw, 430px) !important;
    height: clamp(180px, 34vh, 310px) !important;
}
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map.hide-seek-map-size-2 > #map {
    width: clamp(280px, 52vw, 640px) !important;
    height: clamp(220px, 46vh, 430px) !important;
}
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map.hide-seek-map-size-3 > #map {
    width: clamp(320px, 72vw, 900px) !important;
    height: clamp(260px, 62vh, 620px) !important;
}
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map.hide-seek-map-size-4 > #map {
    width: clamp(360px, 84vw, 1120px) !important;
    height: clamp(300px, 74vh, 760px) !important;
}
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map.hide-seek-map-size-5 > #map {
    width: calc(100% - 28px) !important;
    height: calc(100% - 28px) !important;
}
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map .hide-seek-guess-map-frame-control:not(.hidden) {
    display: block !important;
    position: absolute !important;
    right: max(12px, env(safe-area-inset-right, 0px) + 12px) !important;
    bottom: max(12px, env(safe-area-inset-bottom, 0px) + 12px) !important;
    width: clamp(240px, 34vw, 430px) !important;
    height: clamp(180px, 34vh, 310px) !important;
    max-width: calc(100% - 24px) !important;
    max-height: calc(100% - 24px) !important;
    z-index: 2147483060 !important;
    pointer-events: none !important;
}
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map.hide-seek-map-size-0 .hide-seek-guess-map-frame-control:not(.hidden) { width: clamp(220px, 28vw, 360px) !important; height: clamp(160px, 28vh, 240px) !important; }
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map.hide-seek-map-size-1 .hide-seek-guess-map-frame-control:not(.hidden) { width: clamp(240px, 34vw, 430px) !important; height: clamp(180px, 34vh, 310px) !important; }
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map.hide-seek-map-size-2 .hide-seek-guess-map-frame-control:not(.hidden) { width: clamp(280px, 52vw, 640px) !important; height: clamp(220px, 46vh, 430px) !important; }
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map.hide-seek-map-size-3 .hide-seek-guess-map-frame-control:not(.hidden) { width: clamp(320px, 72vw, 900px) !important; height: clamp(260px, 62vh, 620px) !important; }
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map.hide-seek-map-size-4 .hide-seek-guess-map-frame-control:not(.hidden) { width: clamp(360px, 84vw, 1120px) !important; height: clamp(300px, 74vh, 760px) !important; }
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map.hide-seek-map-size-5 .hide-seek-guess-map-frame-control:not(.hidden) { width: calc(100% - 28px) !important; height: calc(100% - 28px) !important; }
.geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map .hide-seek-guess-actions-dock:not(.hidden) {
    display: block !important;
    position: absolute !important;
    right: max(24px, env(safe-area-inset-right, 0px) + 24px) !important;
    left: auto !important;
    bottom: max(24px, env(safe-area-inset-bottom, 0px) + 24px) !important;
    width: min(210px, calc(34vw - 24px)) !important;
    min-width: 170px !important;
    z-index: 2147483070 !important;
}
@media (max-width: 640px) {
    .geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map > #map,
    .geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map .hide-seek-guess-map-frame-control:not(.hidden) {
        right: max(8px, env(safe-area-inset-right, 0px) + 8px) !important;
        bottom: max(8px, env(safe-area-inset-bottom, 0px) + 8px) !important;
        width: min(54vw, 320px) !important;
        height: min(34vh, 230px) !important;
    }
    .geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map .hide-seek-guess-actions-dock:not(.hidden) {
        right: max(16px, env(safe-area-inset-right, 0px) + 16px) !important;
        bottom: max(16px, env(safe-area-inset-bottom, 0px) + 16px) !important;
        width: min(190px, calc(54vw - 18px)) !important;
        min-width: 150px !important;
    }
    .geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map.hide-seek-map-size-5 > #map,
    .geogames-fullscreen-control-layer.is-hide-seek-guess-fullscreen-map.hide-seek-map-size-5 .hide-seek-guess-map-frame-control:not(.hidden) {
        width: calc(100% - 16px) !important;
        height: calc(100% - 16px) !important;
    }
}


/* GeoGames 1.1.100: no aplicar CSS a controles internos de Google Maps/Street View.
   El posicionamiento de controles oficiales se hace por la API JS; aquí solo se recoloca la UI propia. */
@media (max-width: 900px) {
    body.page-game .side-panel-frame-toggle {
        top: calc(env(safe-area-inset-top, 0px) + 72px) !important;
    }

    body.page-game .game-shell.is-side-collapsed .side-panel-open {
        top: calc(env(safe-area-inset-top, 0px) + 72px) !important;
    }
}


/* GeoGames 1.1.101: botones + / - para redimensionar el mapa de descubrir y botón lateral más bajo en móvil. */
.map-stage.hide-seek-guess-split .hide-seek-guess-map-frame-resize .hide-seek-inline-map-size-btn {
    font-size: 20px !important;
    line-height: 1 !important;
    font-weight: 950 !important;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

@media (max-width: 900px) {
    html body.page-game #sidePanelToggleBtn.side-panel-frame-toggle,
    html body.page-game .side-panel-frame-toggle#sidePanelToggleBtn {
        top: calc(env(safe-area-inset-top, 0px) + 118px) !important;
    }

    html body.page-game #sidePanelOpenBtn.side-panel-open,
    html body.page-game .game-shell.is-side-collapsed #sidePanelOpenBtn.side-panel-open {
        top: calc(env(safe-area-inset-top, 0px) + 118px) !important;
    }
}

@media (max-width: 900px) and (max-height: 540px) {
    html body.page-game #sidePanelToggleBtn.side-panel-frame-toggle,
    html body.page-game #sidePanelOpenBtn.side-panel-open,
    html body.page-game .game-shell.is-side-collapsed #sidePanelOpenBtn.side-panel-open {
        top: calc(env(safe-area-inset-top, 0px) + 88px) !important;
    }
}


/* GeoGames 1.1.102: bajar de forma definitiva el botón lateral en móvil y centrar + / -. */
.hide-seek-map-resize-button,
.hide-seek-inline-map-size-btn,
.map-stage.hide-seek-guess-split .hide-seek-guess-map-frame-resize .hide-seek-inline-map-size-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    padding: 0 !important;
    line-height: 1 !important;
    vertical-align: middle !important;
    font-family: Arial, Helvetica, sans-serif !important;
    box-sizing: border-box !important;
}

.hide-seek-map-resize-button,
.map-stage.hide-seek-hiding-split .hide-seek-map-resize-button,
.map-stage.scotland-cop-map-split .hide-seek-map-resize-button,
.map-stage.hide-seek-guess-split .hide-seek-map-resize-button {
    font-size: 23px !important;
    font-weight: 900 !important;
}

.hide-seek-inline-map-size-btn,
.map-stage.hide-seek-guess-split .hide-seek-guess-map-frame-resize .hide-seek-inline-map-size-btn {
    font-size: 20px !important;
    font-weight: 900 !important;
}

.hide-seek-map-resize-button[data-map-size-action="shrink"],
#hideSeekMapShrinkBtn,
.hide-seek-inline-map-size-btn[data-hide-seek-map-size="shrink"] {
    padding-bottom: 2px !important;
}

.hide-seek-map-resize-button[data-map-size-action="expand"],
#hideSeekMapExpandBtn,
.hide-seek-inline-map-size-btn[data-hide-seek-map-size="expand"] {
    padding-bottom: 1px !important;
}

@media (max-width: 900px) {
    html body.page-game button#sidePanelToggleBtn.side-panel-frame-toggle,
    html body.page-game .side-panel-frame-toggle#sidePanelToggleBtn,
    html body.page-game .game-shell:not(.is-side-collapsed) button#sidePanelToggleBtn.side-panel-frame-toggle {
        top: calc(env(safe-area-inset-top, 0px) + 190px) !important;
        bottom: auto !important;
    }

    html body.page-game button#sidePanelOpenBtn.side-panel-open,
    html body.page-game .game-shell.is-side-collapsed button#sidePanelOpenBtn.side-panel-open,
    html body.page-game .game-shell.is-side-collapsed #sidePanelOpenBtn.side-panel-open {
        top: calc(env(safe-area-inset-top, 0px) + 190px) !important;
        bottom: auto !important;
        left: calc(env(safe-area-inset-left, 0px) + 10px) !important;
        right: auto !important;
    }

    html body.page-game .geogames-fullscreen-control-layer button#sidePanelToggleBtn.side-panel-frame-toggle,
    html body.page-game .geogames-fullscreen-control-layer button#sidePanelOpenBtn.side-panel-open,
    .geogames-fullscreen-control-layer #sidePanelToggleBtn,
    .geogames-fullscreen-control-layer #sidePanelOpenBtn {
        top: calc(env(safe-area-inset-top, 0px) + 190px) !important;
        bottom: auto !important;
        left: calc(env(safe-area-inset-left, 0px) + 10px) !important;
        right: auto !important;
    }
}

@media (max-width: 900px) and (max-height: 540px) {
    html body.page-game button#sidePanelToggleBtn.side-panel-frame-toggle,
    html body.page-game button#sidePanelOpenBtn.side-panel-open,
    html body.page-game .game-shell.is-side-collapsed button#sidePanelOpenBtn.side-panel-open,
    html body.page-game .geogames-fullscreen-control-layer button#sidePanelToggleBtn.side-panel-frame-toggle,
    html body.page-game .geogames-fullscreen-control-layer button#sidePanelOpenBtn.side-panel-open,
    .geogames-fullscreen-control-layer #sidePanelToggleBtn,
    .geogames-fullscreen-control-layer #sidePanelOpenBtn {
        top: calc(env(safe-area-inset-top, 0px) + 150px) !important;
        bottom: auto !important;
    }
}


/* GeoGames 1.1.103: misma altura para mostrar/ocultar panel en PC y móvil.
   3 cm se fija con una variable para evitar que media queries antiguas lo sobrescriban. */
:root {
    --gg-side-panel-toggle-top: 2cm;
}

html body.page-game button#sidePanelToggleBtn.side-panel-frame-toggle,
html body.page-game .side-panel-frame-toggle#sidePanelToggleBtn,
html body.page-game .game-shell:not(.is-side-collapsed) button#sidePanelToggleBtn.side-panel-frame-toggle,
html body.page-game button#sidePanelOpenBtn.side-panel-open,
html body.page-game .game-shell.is-side-collapsed button#sidePanelOpenBtn.side-panel-open,
html body.page-game .game-shell.is-side-collapsed #sidePanelOpenBtn.side-panel-open,
html body.page-game .geogames-fullscreen-control-layer button#sidePanelToggleBtn.side-panel-frame-toggle,
html body.page-game .geogames-fullscreen-control-layer button#sidePanelOpenBtn.side-panel-open,
.geogames-fullscreen-control-layer #sidePanelToggleBtn,
.geogames-fullscreen-control-layer #sidePanelOpenBtn {
    top: calc(env(safe-area-inset-top, 0px) + var(--gg-side-panel-toggle-top)) !important;
    bottom: auto !important;
}


/* GeoGames 1.1.104: botón mostrar/ocultar panel lateral unificado a 2 cm en PC, móvil y fullscreen. */
:root {
    --gg-side-panel-toggle-top: 2cm;
}

button#sidePanelToggleBtn.side-panel-frame-toggle,
.side-panel-frame-toggle#sidePanelToggleBtn,
button#sidePanelOpenBtn.side-panel-open,
.side-panel-open#sidePanelOpenBtn,
.game-shell:not(.is-side-collapsed) button#sidePanelToggleBtn.side-panel-frame-toggle,
.game-shell.is-side-collapsed button#sidePanelOpenBtn.side-panel-open,
.game-shell.is-side-collapsed #sidePanelOpenBtn.side-panel-open,
.geogames-fullscreen-control-layer button#sidePanelToggleBtn.side-panel-frame-toggle,
.geogames-fullscreen-control-layer button#sidePanelOpenBtn.side-panel-open,
.geogames-fullscreen-control-layer #sidePanelToggleBtn,
.geogames-fullscreen-control-layer #sidePanelOpenBtn {
    top: calc(env(safe-area-inset-top, 0px) + var(--gg-side-panel-toggle-top)) !important;
    bottom: auto !important;
}

button#sidePanelOpenBtn.side-panel-open,
.side-panel-open#sidePanelOpenBtn,
.game-shell.is-side-collapsed button#sidePanelOpenBtn.side-panel-open,
.geogames-fullscreen-control-layer button#sidePanelOpenBtn.side-panel-open,
.geogames-fullscreen-control-layer #sidePanelOpenBtn {
    left: calc(env(safe-area-inset-left, 0px) + 10px) !important;
    right: auto !important;
}

/* GeoGames 1.1.104: botón Siguiente jugador en ámbar. */
button.hide-seek-continue-summary.is-next-player:not(#map button):not(#streetView button) {
    color: #451a03 !important;
    background: linear-gradient(135deg, #fbbf24, #f59e0b) !important;
    border-color: rgba(251, 191, 36, .62) !important;
    box-shadow: 0 10px 24px rgba(245, 158, 11, .28) !important;
}

button.hide-seek-continue-summary.is-next-player:not(#map button):not(#streetView button):hover {
    filter: brightness(1.06);
}

/* GeoGames 1.1.105: abandono de jugador y enlaces a casas finales */
.player-left-card {
  max-width: 460px;
  border: 1px solid rgba(251, 191, 36, 0.38);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.38);
}

.player-left-card h2 {
  margin-top: 0;
}

.player-left-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin-top: 1.1rem;
}

.player-left-actions button {
  min-width: 160px;
}


/* GeoGames 1.1.111: pausa visible para todos cuando un jugador abandona. */
body.player-left-pause-active .map-stage,
body.player-left-pause-active .side-panel,
body.player-left-pause-active .game-main {
  filter: blur(2px);
}

.player-left-card .eyebrow {
  margin-bottom: 0.4rem;
  color: #fbbf24;
}

.player-left-waiting {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 16px;
  border: 1px solid rgba(251, 191, 36, 0.28);
  background: rgba(120, 53, 15, 0.28);
  color: #fde68a;
  font-weight: 800;
  text-align: center;
}

.hide-seek-final-houses {
  margin-top: 1.2rem;
}

.hide-seek-final-house-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 0.7rem;
}

.hide-seek-final-house-link {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.15rem 0.65rem;
  align-items: center;
  padding: 0.75rem 0.85rem;
  border: 1px solid rgba(34, 197, 94, 0.24);
  border-radius: 16px;
  background: rgba(15, 23, 42, 0.58);
  color: inherit;
  text-decoration: none;
}

.hide-seek-final-house-link:hover,
.hide-seek-final-house-link:focus-visible {
  border-color: rgba(34, 197, 94, 0.65);
  background: rgba(22, 101, 52, 0.22);
}

.hide-seek-final-house-link span {
  grid-row: span 2;
  font-size: 1.35rem;
}

.hide-seek-final-house-link small {
  color: var(--muted-text, #94a3b8);
}

/* GeoGames 1.1.106: el mapa final de Escondite reutiliza la casa original para las líneas; sin etiquetas extra por ronda. */

/* GeoGames 1.1.108: jugadores que abandonan a media partida */
.hide-seek-score-row.abandoned,
.solo-rally-final-card.abandoned {
  opacity: 0.82;
  filter: grayscale(0.25);
}
.hide-seek-score-row.abandoned em {
  display: inline-block;
  margin-left: 0.35rem;
  padding: 0.08rem 0.38rem;
  border-radius: 999px;
  font-style: normal;
  font-size: 0.72rem;
  color: #fde68a;
  background: rgba(245, 158, 11, 0.16);
  border: 1px solid rgba(245, 158, 11, 0.38);
}
.solo-rally-final-card.abandoned header small {
  color: #fde68a;
}

/* GeoGames 1.1.109: jugador abandonado visible en resumen de Escondite. */
.hide-seek-result-row.abandoned {
    border-color: rgba(251, 146, 60, .42);
    background: rgba(67, 20, 7, .50);
}
.hide-seek-result-row.abandoned b,
.hide-seek-result-row.abandoned small {
    color: #fed7aa;
}

/* GeoGames 1.1.113: botón mostrar/ocultar panel con azul oscuro del panel lateral. */
button#sidePanelToggleBtn.side-panel-frame-toggle,
.side-panel-frame-toggle#sidePanelToggleBtn,
button#sidePanelOpenBtn.side-panel-open,
.side-panel-open#sidePanelOpenBtn,
.game-shell:not(.is-side-collapsed) button#sidePanelToggleBtn.side-panel-frame-toggle,
.game-shell.is-side-collapsed button#sidePanelOpenBtn.side-panel-open,
.game-shell.is-side-collapsed #sidePanelOpenBtn.side-panel-open,
.geogames-fullscreen-control-layer button#sidePanelToggleBtn.side-panel-frame-toggle,
.geogames-fullscreen-control-layer button#sidePanelOpenBtn.side-panel-open,
.geogames-fullscreen-control-layer #sidePanelToggleBtn,
.geogames-fullscreen-control-layer #sidePanelOpenBtn {
    background: linear-gradient(135deg, rgba(17, 24, 39, .98), rgba(23, 32, 51, .96)) !important;
    color: #e0f2fe !important;
    border-color: rgba(96, 165, 250, .42) !important;
    box-shadow: 0 12px 30px rgba(2, 6, 23, .46), 0 0 0 1px rgba(15, 23, 42, .55) inset !important;
}

button#sidePanelToggleBtn.side-panel-frame-toggle:hover,
.side-panel-frame-toggle#sidePanelToggleBtn:hover,
button#sidePanelOpenBtn.side-panel-open:hover,
.side-panel-open#sidePanelOpenBtn:hover {
    background: linear-gradient(135deg, rgba(30, 41, 59, .98), rgba(17, 24, 39, .98)) !important;
    border-color: rgba(125, 211, 252, .62) !important;
}

/* GeoGames 1.1.114: language selector + unified technical language cookie UI. */
.language-switcher {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px;
    border-radius: 999px;
    background: rgba(15, 23, 42, .72);
    border: 1px solid rgba(148, 163, 184, .24);
    box-shadow: 0 8px 20px rgba(2, 6, 23, .18);
    backdrop-filter: blur(10px);
}

.language-switcher-btn {
    width: 46px;
    min-width: 46px;
    height: 34px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border-radius: 999px;
    border: 1px solid transparent;
    background: transparent;
    color: #cbd5e1;
    font-size: 13px;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
}

.language-switcher-btn:hover,
.language-switcher-btn:focus-visible {
    background: rgba(59, 130, 246, .16);
    color: #f8fafc;
    outline: none;
}

.language-switcher-btn.is-active,
.language-switcher-btn[aria-pressed="true"] {
    background: linear-gradient(135deg, #1d4ed8, #0f172a);
    border-color: rgba(191, 219, 254, .4);
    color: #fff;
    box-shadow: 0 8px 18px rgba(37, 99, 235, .28);
}

.site-header .site-language-switcher {
    margin-left: auto;
}

.site-header .site-nav + .site-language-switcher + .nav-cta {
    margin-left: 0;
}

.room-header-actions .game-language-switcher {
    flex: 0 0 auto;
}

@media (max-width: 760px) {
    .site-header .site-language-switcher {
        order: 4;
        margin-left: 0;
    }

    .language-switcher-btn {
        width: 42px;
        min-width: 42px;
        height: 32px;
        font-size: 12px;
    }

    .language-switcher-text {
        display: none;
    }
}

/* GeoGames 1.1.114: direct fixed banner slots for public pages when the provider
   does not fill sandboxed iframes. Game-screen slots remain hidden/contained by
   the existing safe-ad rules. */
body:not(.page-game) .gg-sponsor-slot[data-gg-safe-ads="1"][data-gg-ad-mode="slot"] .gg-sponsor-frame,
body:not(.page-game) .adsterra-box[data-gg-safe-ads="1"][data-gg-ad-mode="slot"] .adsterra-zone,
body:not(.page-game) .monetag-box[data-gg-safe-ads="1"][data-gg-ad-mode="slot"] .monetag-zone {
    isolation: isolate !important;
    overflow: hidden !important;
    background: rgba(15, 23, 42, .18) !important;
}

/* GeoGames 1.1.114: header has brand, nav, language selector and CTA. */
.site-header {
    grid-template-columns: auto minmax(0, 1fr) auto auto;
}

@media (max-width: 900px) {
    .site-header {
        grid-template-columns: 1fr auto auto;
    }
}

/* GeoGames 1.1.115: JPEG language flags and first-party sponsor fallback. */
.language-flag-img {
    width: 24px;
    height: 16px;
    display: inline-block;
    flex: 0 0 auto;
    border-radius: 3px;
    object-fit: cover;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .24), 0 2px 6px rgba(2, 6, 23, .25);
}

.language-switcher-btn {
    gap: 5px;
}

@media (max-width: 760px) {
    .language-flag-img {
        width: 25px;
        height: 17px;
    }
}

.gg-house-ad-fallback {
    display: flex;
    min-height: min(var(--sponsor-height, 90px), 120px);
    width: min(100%, var(--sponsor-width, 728px));
    margin: 0 auto;
    padding: 12px 16px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border-radius: 14px;
    border: 1px solid rgba(125, 211, 252, .28);
    background: linear-gradient(135deg, rgba(15, 23, 42, .94), rgba(30, 41, 59, .9));
    color: #e0f2fe;
    text-align: center;
    text-decoration: none;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 14px 30px rgba(2, 6, 23, .24);
}

.gg-house-ad-fallback[hidden] {
    display: none !important;
}

.gg-house-ad-fallback strong {
    color: #fff;
    font-weight: 900;
}

.gg-house-ad-fallback span {
    color: #bae6fd;
    font-size: 12px;
    font-weight: 800;
}

.gg-house-ad-fallback .gg-house-ad-kicker {
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(14, 165, 233, .18);
    color: #7dd3fc;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: 10px;
}

.gg-sponsor-fallback-only .gg-house-ad-fallback,
.gg-sponsor-fallback-visible .gg-house-ad-fallback {
    display: flex;
}

body.page-game .gg-house-ad-fallback {
    min-height: 64px;
    padding: 10px 12px;
    gap: 6px;
}

@media (max-width: 760px) {
    body.page-game .gg-house-ad-fallback {
        display: none !important;
    }

    body:not(.page-game) .gg-house-ad-fallback {
        flex-direction: column;
        min-height: 88px;
        gap: 4px;
    }
}


/* GeoGames 1.1.123: waiting-room button contrast and passive ad fallback polish. */
.maps-loading-overlay-waiting button:not(#map button):not(#streetView button),
.waiting-room-panel button:not(#map button):not(#streetView button),
.waiting-room-card-main button:not(#map button):not(#streetView button),
.setup-panel button:not(#map button):not(#streetView button),
.setup-room-options button:not(#map button):not(#streetView button),
.setup-player-options button:not(#map button):not(#streetView button) {
    color: #f8fafc !important;
    text-shadow: 0 1px 2px rgba(2, 6, 23, .42);
}

.maps-loading-overlay-waiting .waiting-room-ready-btn,
.waiting-room-panel .waiting-room-ready-btn,
.waiting-room-card-main .waiting-room-ready-btn {
    color: #ffffff !important;
    background: linear-gradient(135deg, #15803d, #0ea5e9) !important;
    border: 1px solid rgba(255, 255, 255, .18) !important;
    box-shadow: 0 12px 28px rgba(14, 165, 233, .22), inset 0 1px 0 rgba(255,255,255,.16) !important;
}

.maps-loading-overlay-waiting .waiting-room-ready-btn.secondary,
.waiting-room-panel .waiting-room-ready-btn.secondary,
.waiting-room-card-main .waiting-room-ready-btn.secondary,
.maps-loading-overlay-waiting button.secondary,
.waiting-room-panel button.secondary,
.waiting-room-card-main button.secondary {
    color: #f8fafc !important;
    background: rgba(15, 23, 42, .82) !important;
    border: 1px solid rgba(148, 163, 184, .38) !important;
    box-shadow: none !important;
}

.gg-house-ad-fallback {
    color: #e0f2fe !important;
    background: linear-gradient(135deg, rgba(15, 23, 42, .96), rgba(12, 74, 110, .92)) !important;
    border: 1px solid rgba(125, 211, 252, .35) !important;
}
/* End GeoGames 1.1.123 */


/* GeoGames 1.1.124: Adsterra Native Banner integration.
   Native widgets are content-like and may grow vertically, so do not force the
   old 728x90 exact-height crop on them. */
body .gg-sponsor-slot.adsterra-native-banner,
body .adsterra-box.adsterra-native-banner {
    width: min(var(--sponsor-width, 728px), calc(100vw - 16px)) !important;
    height: auto !important;
    min-height: var(--sponsor-height, 180px) !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 0 !important;
}

body .gg-sponsor-slot.adsterra-native-banner .gg-sponsor-frame,
body .gg-sponsor-slot.adsterra-native-banner .adsterra-zone,
body .adsterra-box.adsterra-native-banner .gg-sponsor-frame,
body .adsterra-box.adsterra-native-banner .adsterra-zone {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: var(--sponsor-height, 180px) !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

body .gg-sponsor-slot.adsterra-native-banner [id^="container-"],
body .adsterra-box.adsterra-native-banner [id^="container-"] {
    display: block !important;
    width: 100% !important;
    min-height: var(--sponsor-height, 180px) !important;
    max-width: 100% !important;
    overflow: visible !important;
}

body .gg-sponsor-slot.adsterra-native-banner iframe,
body .gg-sponsor-slot.adsterra-native-banner ins,
body .gg-sponsor-slot.adsterra-native-banner img,
body .adsterra-box.adsterra-native-banner iframe,
body .adsterra-box.adsterra-native-banner ins,
body .adsterra-box.adsterra-native-banner img {
    max-width: 100% !important;
}

@media (max-width: 760px) {
    body .gg-sponsor-slot.adsterra-native-banner,
    body .adsterra-box.adsterra-native-banner {
        width: min(340px, calc(100vw - 18px)) !important;
        min-height: 160px !important;
        margin: 20px auto 16px !important;
    }
    body .gg-sponsor-slot.adsterra-native-banner .gg-sponsor-frame,
    body .gg-sponsor-slot.adsterra-native-banner .adsterra-zone,
    body .adsterra-box.adsterra-native-banner .gg-sponsor-frame,
    body .adsterra-box.adsterra-native-banner .adsterra-zone,
    body .gg-sponsor-slot.adsterra-native-banner [id^="container-"],
    body .adsterra-box.adsterra-native-banner [id^="container-"] {
        min-height: 160px !important;
    }
}
/* End GeoGames 1.1.124 */


/* GeoGames 1.1.125: Native Banner in the side panel.
   The Native snippet is allowed only in the side panel, never over the map or as a bottom in-game banner. */
body.page-game .side-panel .ad-game-sidebar.adsterra-native-banner,
body.page-game .side-panel .adsterra-game-sidebar.adsterra-native-banner,
body.page-game .side-panel .ad-game-sidebar-compact.adsterra-native-banner {
    display: block !important;
    width: min(300px, 100%) !important;
    height: auto !important;
    min-height: 250px !important;
    max-height: none !important;
    flex: 0 0 auto !important;
    margin: 22px auto 18px !important;
    contain: layout paint !important;
}

body.page-game .side-panel .ad-game-sidebar.adsterra-native-banner .gg-sponsor-frame,
body.page-game .side-panel .ad-game-sidebar.adsterra-native-banner .adsterra-zone,
body.page-game .side-panel .ad-game-sidebar.adsterra-native-banner [id^="container-"],
body.page-game .side-panel .adsterra-game-sidebar.adsterra-native-banner .gg-sponsor-frame,
body.page-game .side-panel .adsterra-game-sidebar.adsterra-native-banner .adsterra-zone,
body.page-game .side-panel .adsterra-game-sidebar.adsterra-native-banner [id^="container-"] {
    width: 100% !important;
    min-height: 250px !important;
    max-height: none !important;
    overflow: visible !important;
}

body.page-game .ad-game-bottom.adsterra-native-banner,
body.page-game .map-stage .adsterra-native-banner,
body.page-game #map .adsterra-native-banner,
body.page-game #streetView .adsterra-native-banner {
    display: none !important;
}

@media (max-width: 760px) {
    body.page-game .side-panel .ad-game-sidebar.adsterra-native-banner,
    body.page-game .side-panel .adsterra-game-sidebar.adsterra-native-banner,
    body.page-game .side-panel .ad-game-sidebar-compact.adsterra-native-banner {
        display: block !important;
        width: min(300px, calc(100% - 8px)) !important;
        min-height: 220px !important;
        margin: 18px auto 16px !important;
    }

    body.page-game .side-panel .ad-game-sidebar.adsterra-native-banner .gg-sponsor-frame,
    body.page-game .side-panel .ad-game-sidebar.adsterra-native-banner .adsterra-zone,
    body.page-game .side-panel .ad-game-sidebar.adsterra-native-banner [id^="container-"] {
        min-height: 220px !important;
    }
}
/* End GeoGames 1.1.125 */

/* GeoGames 1.1.126: Adsterra Native widgets by real placement.
   Do not stretch a 1x1 Native widget into a fake rectangle: Adsterra decides the
   unit layout server-side. Sidebar uses the supplied 1x1/300x250-like snippet.
   Wide lobby/footer slots are only shown when a separate 4x1/728x90-like snippet
   is configured as ADSTERRA_NATIVE_WIDE_HTML. */
body .adsterra-native-banner.adsterra-native-sidebar,
body.page-game .side-panel .ad-game-sidebar.adsterra-native-banner.adsterra-native-sidebar,
body.page-game .side-panel .adsterra-game-sidebar.adsterra-native-banner.adsterra-native-sidebar,
body.page-game .side-panel .ad-game-sidebar-compact.adsterra-native-banner.adsterra-native-sidebar {
    display: block !important;
    width: min(300px, 100%) !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 250px !important;
    max-height: none !important;
    margin: 22px auto 18px !important;
    padding: 0 !important;
    overflow: visible !important;
    flex: 0 0 auto !important;
    contain: layout paint !important;
}

body .adsterra-native-banner.adsterra-native-sidebar .gg-sponsor-frame,
body .adsterra-native-banner.adsterra-native-sidebar .adsterra-zone,
body .adsterra-native-banner.adsterra-native-sidebar [id^="container-"] {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 250px !important;
    max-height: none !important;
    max-width: 100% !important;
    overflow: visible !important;
    margin: 0 auto !important;
}

body .adsterra-native-banner.adsterra-native-wide {
    display: block !important;
    width: min(var(--sponsor-width, 728px), calc(100vw - 18px)) !important;
    max-width: calc(100vw - 18px) !important;
    height: auto !important;
    min-height: var(--sponsor-height, 120px) !important;
    max-height: none !important;
    margin: 26px auto 20px !important;
    padding: 0 !important;
    overflow: visible !important;
}

body .adsterra-native-banner.adsterra-native-wide .gg-sponsor-frame,
body .adsterra-native-banner.adsterra-native-wide .adsterra-zone,
body .adsterra-native-banner.adsterra-native-wide [id^="container-"] {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    width: 100% !important;
    height: auto !important;
    min-height: var(--sponsor-height, 120px) !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 auto !important;
}

body .adsterra-native-banner.adsterra-native-wide iframe,
body .adsterra-native-banner.adsterra-native-wide ins,
body .adsterra-native-banner.adsterra-native-wide img,
body .adsterra-native-banner.adsterra-native-sidebar iframe,
body .adsterra-native-banner.adsterra-native-sidebar ins,
body .adsterra-native-banner.adsterra-native-sidebar img {
    max-width: 100% !important;
}

@media (max-width: 760px) {
    body .adsterra-native-banner.adsterra-native-wide {
        width: min(340px, calc(100vw - 18px)) !important;
        min-height: 160px !important;
        margin: 20px auto 16px !important;
    }

    body .adsterra-native-banner.adsterra-native-sidebar,
    body.page-game .side-panel .ad-game-sidebar.adsterra-native-banner.adsterra-native-sidebar,
    body.page-game .side-panel .adsterra-game-sidebar.adsterra-native-banner.adsterra-native-sidebar,
    body.page-game .side-panel .ad-game-sidebar-compact.adsterra-native-banner.adsterra-native-sidebar {
        width: min(300px, calc(100% - 8px)) !important;
        min-height: 220px !important;
        margin: 18px auto 16px !important;
    }

    body .adsterra-native-banner.adsterra-native-sidebar .gg-sponsor-frame,
    body .adsterra-native-banner.adsterra-native-sidebar .adsterra-zone,
    body .adsterra-native-banner.adsterra-native-sidebar [id^="container-"] {
        min-height: 220px !important;
    }
}
/* End GeoGames 1.1.126 */


/* GeoGames 1.1.129: language changes only from public pages; game uses saved/browser locale. */
body.page-game .game-language-switcher {
    display: none !important;
}

/* GeoGames 1.1.129: NativeBanner_1 may use a wide desktop container on index/lobby.
   This does not force the ad network creative itself; it only gives the native widget
   enough horizontal room on the public page. */
body.page-home .adsterra-native-banner.adsterra-native-index-wide,
body.page-site .adsterra-native-banner.adsterra-native-index-wide {
    display: block !important;
    width: min(var(--sponsor-width, 970px), calc(100vw - 32px)) !important;
    max-width: calc(100vw - 32px) !important;
    height: auto !important;
    min-height: var(--sponsor-height, 260px) !important;
    max-height: none !important;
    margin: 28px auto 24px !important;
    padding: 0 !important;
    overflow: visible !important;
}

body.page-home .adsterra-native-banner.adsterra-native-index-wide .gg-sponsor-frame,
body.page-home .adsterra-native-banner.adsterra-native-index-wide .adsterra-zone,
body.page-home .adsterra-native-banner.adsterra-native-index-wide [id^="container-"],
body.page-site .adsterra-native-banner.adsterra-native-index-wide .gg-sponsor-frame,
body.page-site .adsterra-native-banner.adsterra-native-index-wide .adsterra-zone,
body.page-site .adsterra-native-banner.adsterra-native-index-wide [id^="container-"] {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: var(--sponsor-height, 260px) !important;
    height: auto !important;
    overflow: visible !important;
    margin: 0 auto !important;
}

@media (max-width: 760px) {
    body.page-home .adsterra-native-banner.adsterra-native-index-wide,
    body.page-site .adsterra-native-banner.adsterra-native-index-wide {
        width: min(340px, calc(100vw - 18px)) !important;
        min-height: 180px !important;
        margin: 20px auto 16px !important;
    }

    body.page-home .adsterra-native-banner.adsterra-native-index-wide .gg-sponsor-frame,
    body.page-home .adsterra-native-banner.adsterra-native-index-wide .adsterra-zone,
    body.page-home .adsterra-native-banner.adsterra-native-index-wide [id^="container-"],
    body.page-site .adsterra-native-banner.adsterra-native-index-wide .gg-sponsor-frame,
    body.page-site .adsterra-native-banner.adsterra-native-index-wide .adsterra-zone,
    body.page-site .adsterra-native-banner.adsterra-native-index-wide [id^="container-"] {
        min-height: 180px !important;
    }
}
/* End GeoGames 1.1.129 */


/* GeoGames 1.1.131: flag-only language selector, no text, no outline/frame. */
.language-switcher {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
}

.language-switcher-btn {
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    padding: 0 !important;
    gap: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: inherit !important;
}

.language-switcher-btn:hover,
.language-switcher-btn:focus-visible,
.language-switcher-btn.is-active,
.language-switcher-btn[aria-pressed="true"] {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}

.language-switcher-text,
[data-gg-current-lang] {
    display: none !important;
}

.language-flag-img {
    width: 28px !important;
    height: 19px !important;
    display: block !important;
    border: 0 !important;
    border-radius: 3px !important;
    box-shadow: none !important;
    object-fit: cover !important;
}

.language-switcher-btn[aria-pressed="false"] .language-flag-img {
    opacity: .62;
}

.language-switcher-btn[aria-pressed="true"] .language-flag-img {
    opacity: 1;
}
/* End GeoGames 1.1.131 */
