.auth-legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:7px 14px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft, var(--line));font-size:10px}.auth-legal-links a{color:var(--muted)}.auth-legal-links a:hover{color:var(--primary-d)}.auth-terms-consent{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;color:var(--muted);font-size:10px;line-height:1.45;text-align:left}.auth-terms-consent[hidden]{display:none}.auth-terms-consent input{margin-top:2px;accent-color:var(--primary)}.auth-terms-consent a{color:var(--primary-d)}:root{--bg:#e7e4df;--bg2:#f4f2ef;--bg-glow:#f8f7f4;--panel:#f7f6f3;--panel2:#ffffff;--hover:#ece8e1;--accent-soft:#f2dfc8;--line:#d7d0c6;--text:#3d3934;--muted:#665f56;--primary:#9a650f;--primary-d:#7a4b00;--primary-fg:#ffffff;--primary-icon-filter:invert(100%);--warn:#9a650f;--danger:#b43b3b;--danger-fg:#ffffff;--good:#3e6f2b;--radius:6px;--icon-filter:invert(22%) sepia(8%) saturate(692%) hue-rotate(348deg) brightness(94%) contrast(88%);--piece-icon-filter:invert(17%) sepia(11%) saturate(518%) hue-rotate(348deg) brightness(94%) contrast(92%);--game-ui-text:#3d3934;--game-ui-muted:#665f56;--game-ui-icon-filter:invert(22%) sepia(8%) saturate(692%) hue-rotate(348deg) brightness(94%) contrast(88%)}[data-theme=cream]{--bg:#efe6d3;--bg2:#e7dcc4;--bg-glow:#fbf3e2;--panel:#fbf6ec;--panel2:#f1e7d4;--hover:#e8dcc2;--accent-soft:#efe2c6;--line:#ddcdb0;--text:#3c3326;--muted:#706047;--primary:#8f5618;--primary-d:#70400d;--warn:#87550c;--danger:#c0392b;--danger-fg:#ffffff;--good:#246f3e}[data-theme=slate]{--bg:#1a1f27;--bg2:#20262f;--bg-glow:#283039;--panel:#262d38;--panel2:#2e3742;--hover:#38424f;--accent-soft:#313b48;--line:#3a4552;--text:#e4e9ef;--muted:#aeb9c6;--primary:#2f6f94;--primary-d:#73b6dc;--warn:#d8a24a;--danger:#ff7f8a;--danger-fg:#10151b;--good:#83c997;--surface:rgba(38, 45, 56, .86);--surface-solid:#2b3440;--surface-soft:#35404c;--line-soft:rgba(210, 220, 232, .16);--shadow-soft:0 2px 8px rgba(0,0,0,.18);--shadow-float:0 14px 34px rgba(0,0,0,.32);--icon-filter:invert(92%) sepia(8%) saturate(379%) hue-rotate(176deg) brightness(98%) contrast(90%);--piece-icon-filter:var(--icon-filter)}[data-theme=contrast]{--bg:#000000;--bg2:#0a0a0a;--bg-glow:#141414;--panel:#111111;--panel2:#1c1c1c;--hover:#2a2a2a;--accent-soft:#243044;--line:#4a4a4a;--text:#ffffff;--muted:#c8c8c8;--primary:#ffd23f;--primary-d:#e0b424;--primary-fg:#000000;--primary-icon-filter:invert(0%);--warn:#ffb000;--danger:#ff5577;--danger-fg:#000000;--good:#3fe07a;--surface:rgba(17, 17, 17, .94);--surface-solid:#111111;--surface-soft:#202020;--line-soft:rgba(255,255,255,.24);--shadow-soft:0 0 0 1px rgba(255,255,255,.08);--shadow-float:0 0 0 1px rgba(255,255,255,.16), 0 18px 40px rgba(0,0,0,.5);--icon-filter:invert(100%);--piece-icon-filter:invert(100%);--game-ui-text:#ffffff;--game-ui-muted:#c8c8c8;--game-ui-icon-filter:invert(100%)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}.sr-only{position:fixed!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media (prefers-reduced-motion:reduce){*,::before,::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html,body{height:100%;margin:0;overscroll-behavior:none}html{-webkit-text-size-adjust:100%;touch-action:manipulation}body{font-family:"Segoe UI",system-ui,-apple-system,sans-serif;background:linear-gradient(90deg,rgba(0,0,0,.025) 1px,transparent 1px),linear-gradient(180deg,rgba(0,0,0,.025) 1px,transparent 1px),radial-gradient(900px 520px at 48% 18%,var(--bg-glow),var(--bg) 68%);background-size:42px 42px,42px 42px,auto;color:var(--text);overflow:hidden;touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}button,input,select,textarea{font:inherit}button,.btn,.tab,.chip,.dock-btn,.resource-hud,.supply-hud{touch-action:manipulation}.ui-icon{width:1em;height:1em;display:inline-block;flex:none;vertical-align:-.125em;filter:var(--icon-filter, none)}.btn .ui-icon{width:16px;height:16px}.icon .ui-icon{width:19px;height:19px}.screen{display:none;height:100vh;height:100dvh}.screen.active{display:block}.btn{border:1px solid var(--line);background:var(--panel2);color:var(--text);padding:9px 16px;border-radius:10px;cursor:pointer;font-size:15px;line-height:17px;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background .15s,transform .05s}.btn:hover{background:var(--hover)}.btn:active{transform:translateY(1px)}.btn.primary{background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 88%,#fff),var(--primary));border-color:var(--primary-d);color:var(--primary-fg);--icon-filter:var(--primary-icon-filter)}.btn.primary:hover{background:var(--primary-d)}.btn.loading{position:relative;color:transparent!important;pointer-events:none}.btn.loading::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0-9px;border-radius:50%;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn.warn{background:var(--warn);border-color:#c98a2c;color:#1a1208}.btn.danger{background:var(--danger);border-color:color-mix(in srgb,var(--danger) 72%,#000);color:var(--danger-fg)}.btn.danger:hover{background:#c8163f}.btn.ghost{background:0 0}.btn.big{padding:12px 18px;font-size:17px;line-height:19px;width:100%}.btn.small{padding:6px 10px;font-size:13px;line-height:14px}.btn.tiny{padding:4px 7px;font-size:12px;line-height:13px;border-radius:7px}.btn.good{background:var(--good);border-color:color-mix(in srgb,var(--good) 70%,#000);color:#06120a}.btn:disabled{opacity:.74;cursor:not-allowed;filter:grayscale(.18)}.error{color:var(--danger);min-height:18px;font-size:13px;margin-top:6px}.muted{color:var(--muted);font-size:13px}.hint{color:var(--muted);font-size:12px;min-height:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px}#boot-screen{display:none;place-items:center;position:relative;overflow:hidden}#boot-screen.active{display:grid}.boot-card{display:grid;justify-items:center;gap:10px;padding:28px 34px;border-radius:18px;background:rgba(30,37,56,.72);border:1px solid var(--line);box-shadow:0 24px 70px rgba(0,0,0,.45);backdrop-filter:blur(10px)}.boot-progress{width:min(240px,68vw);height:5px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--line) 72%,transparent)}.boot-progress i{display:block;width:8%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--good));transition:width .22s ease}.boot-spinner{width:34px;height:34px;border-radius:50%;border:3px solid rgba(255,255,255,.22);border-top-color:var(--primary);animation:spin .8s linear infinite}#auth-screen{display:none;place-items:center;position:relative;overflow:auto;pointer-events:none;padding:18px 0}#auth-screen.active{display:grid}#auth-bg{display:none}.auth-card{position:relative;z-index:1;pointer-events:auto;width:390px;max-width:92vw;max-height:calc(100dvh - 36px);overflow:auto;background:rgba(30,37,56,.86);border:1px solid var(--line);border-radius:18px;padding:34px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.55);backdrop-filter:blur(10px);animation:cardIn .4s ease both}.brand-logo-hero{display:block;width:88px;height:88px;object-fit:contain}.boot-card .brand-logo-hero{width:96px;height:96px}.auth-card .brand-logo-hero{margin:0 auto 8px}.logo{font-size:36px;margin:0;letter-spacing:-.5px}.logo span{color:var(--primary)}.tagline{color:var(--muted);margin:6px 0 22px}.tabs{display:flex;gap:8px;margin-bottom:16px}.tab{flex:1;padding:9px;background:var(--panel2);border:1px solid var(--line);border-radius:9px;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}.tab.active{background:var(--primary);color:var(--primary-fg);border-color:var(--primary-d)}#auth-form{display:flex;flex-direction:column;gap:12px}#auth-form[hidden]{display:none}.auth-guest-btn{width:100%;color:var(--text)}.auth-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.auth-link{align-self:flex-end;padding:0;border:0;background:0 0;color:var(--primary);font:inherit;font-size:12px;cursor:pointer}.auth-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;text-transform:uppercase}.auth-divider::before,.auth-divider::after{content:"";height:1px;flex:1;background:var(--line)}.google-signin{display:grid;justify-content:center;min-height:40px}.auth-provider-note{margin:-4px 0 0;font-size:11px;text-align:center}.auth-turnstile{display:grid;justify-content:center;min-height:65px}.auth-message-panel,.auth-secondary-form{display:grid;gap:12px;text-align:left}.auth-message-panel[hidden],.auth-secondary-form[hidden]{display:none}.auth-message-panel h2,.auth-secondary-form h2{margin:0;font-size:20px}.auth-message-panel p,.auth-secondary-form p{margin:0;line-height:1.5}.auth-message-panel .btn,.auth-secondary-form .btn{width:100%}.auth-message-panel .btn[hidden]{display:none!important}.auth-secondary-form .error{min-height:16px}.verification-code-input{text-align:center;font-size:24px;font-weight:800;letter-spacing:.42em;font-variant-numeric:tabular-nums;padding-left:calc(12px + .42em)}.auth-code-status{min-height:16px;margin:-4px 0;text-align:center;font-size:11px}#verification-code-form .auth-link{justify-self:center;align-self:center}.desktop-download-card{display:none;padding:14px;text-align:left;gap:12px}.desktop-download-card strong{display:block;font-size:14px;margin-bottom:3px}.desktop-download-card span{display:block;color:var(--muted);font-size:12px;line-height:1.35}.desktop-download-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.desktop-download-actions .btn{display:inline-flex;align-items:center;justify-content:center;min-height:38px;text-decoration:none}html.is-android .desktop-download-card{display:block}html.is-android .desktop-download-actions{grid-template-columns:1fr}html.is-android .desktop-download-link{display:none!important}html.is-android .android-download-link{display:inline-flex!important}html.is-mobile-download .desktop-download-card{display:block}html.is-mobile-download .desktop-download-actions{grid-template-columns:1fr}html.is-mobile-download .desktop-download-link{display:none!important}html.is-mobile-download .android-download-link{display:inline-flex!important}html.is-installed-app .desktop-download-card{display:none!important}@media (hover:none),(pointer:coarse),(max-width:759px){html:not(.is-installed-app) .desktop-download-card{display:block}html:not(.is-installed-app) .desktop-download-actions{grid-template-columns:1fr}html:not(.is-installed-app) .desktop-download-link{display:none!important}html:not(.is-installed-app) .android-download-link{display:inline-flex!important}}@media (hover:hover) and (pointer:fine) and (min-width:760px){.desktop-download-card{display:block}}input{background:var(--bg2);border:1px solid var(--line);border-radius:9px;padding:11px 12px;color:var(--text);font-size:14px;width:100%;-webkit-user-select:text;user-select:text;touch-action:manipulation}input:focus{outline:2px solid var(--primary);border-color:transparent}.avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;flex:none;position:relative;overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--av, var(--panel2)) 28%,var(--panel2)),color-mix(in srgb,var(--av, var(--panel)) 18%,var(--panel)));border:1px solid color-mix(in srgb,var(--line) 88%,#fff 12%);color:var(--text);font-size:15px;line-height:1;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 2px 6px rgba(0,0,0,.22)}.avatar.sm{width:26px;height:26px;font-size:13px;border-width:2px}.avatar.lg{width:76px;height:76px;font-size:38px;border-width:3px}.avatar-glyph{position:relative;z-index:0;line-height:1}.avatar-image{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;display:block}.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--bg2),rgba(23,28,46,.7));backdrop-filter:blur(8px)}[data-theme=cream] .topbar{background:linear-gradient(180deg,#efe3c9,rgba(251,246,236,.82))}.brand{min-width:0;display:flex;align-items:center;gap:9px;font-size:25px;font-weight:400;letter-spacing:-.4px;color:var(--muted)}.brand-icon{width:32px;height:32px;flex:none;object-fit:contain}.brand .brand-mark{color:var(--text)}.brand span{color:var(--primary)}.topbar-right{display:flex;gap:12px;align-items:center}.profile-chip{display:flex;align-items:center;gap:9px;background:var(--panel2);border:1px solid var(--line);padding:5px 12px 5px 6px;border-radius:24px;cursor:pointer;color:var(--text);transition:background .15s,border-color .15s}.profile-chip:hover{background:var(--hover);border-color:var(--primary-d)}.profile-chip-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.profile-chip-text>span:first-child{font-weight:600;font-size:14px}.profile-chip-sub{font-size:11px;color:var(--muted)}.ping-indicator{display:inline-flex;align-items:center;justify-content:center;min-width:58px;min-height:32px;padding:4px 9px;border:1px solid var(--line);border-radius:999px;background:var(--panel2);color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.ping-indicator.good{color:var(--good);border-color:color-mix(in srgb,var(--good) 45%,var(--line))}.ping-indicator.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 50%,var(--line))}.ping-indicator.bad{color:#ff8fa3;border-color:color-mix(in srgb,var(--danger) 55%,var(--line))}.user-chip{background:var(--panel2);padding:6px 12px;border-radius:20px;font-size:13px}.lobby-body{padding:18px 24px max(32px,env(safe-area-inset-bottom));height:calc(100dvh - 50px);min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y}.lobby-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(220px,.74fr) minmax(420px,1.22fr) minmax(250px,.8fr);gap:12px;align-items:start}.lobby-main{min-width:0;order:2}.play-panel{min-width:0;order:1;display:grid;gap:14px;align-content:start;padding:18px;background:color-mix(in srgb,var(--panel2) 74%,transparent);box-shadow:none}.tutorial-banner{width:100%;min-width:0;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid color-mix(in srgb,var(--primary) 52%,var(--line-soft));border-radius:8px;color:var(--text);background:linear-gradient(110deg,color-mix(in srgb,var(--primary) 16%,var(--surface-solid)),color-mix(in srgb,var(--good) 8%,var(--surface-solid)) 58%,var(--surface-solid));text-align:left;cursor:pointer;box-shadow:inset 3px 0 var(--primary)}.tutorial-banner[hidden]{display:none}.tutorial-banner:hover{border-color:var(--primary-d);background:linear-gradient(110deg,color-mix(in srgb,var(--primary) 22%,var(--surface-solid)),color-mix(in srgb,var(--good) 11%,var(--surface-solid)) 58%,var(--surface-solid))}.tutorial-banner:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.tutorial-banner:disabled{cursor:wait;opacity:.78}.tutorial-banner-icon{width:44px;height:44px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--warn) 54%,var(--line-soft));border-radius:8px;color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,var(--surface-solid))}.tutorial-banner-icon img{width:22px;height:22px;filter:var(--icon-filter, none)}.tutorial-banner-copy{min-width:0;display:grid;gap:2px}.tutorial-banner-copy .eyebrow{color:var(--warn);letter-spacing:0}.tutorial-banner-copy strong{min-width:0;font-size:14px;line-height:1.25;overflow-wrap:anywhere}.tutorial-banner-copy small{color:var(--muted);font-size:10px;line-height:1.35;overflow-wrap:anywhere}.tutorial-banner-action{display:inline-flex;align-items:center;gap:6px;color:var(--primary-d);font-size:12px;font-weight:800;white-space:nowrap}.play-panel-head{display:grid;gap:7px}.eyebrow{color:var(--primary-d);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.play-panel h2{margin:0;font-size:28px;font-weight:500;letter-spacing:-.03em}.play-panel p{margin:0;max-width:34ch;color:var(--muted);line-height:1.45}.play-actions{display:grid;gap:9px}.play-action{width:100%;min-height:74px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:center;text-align:left;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface-solid);color:var(--text);padding:12px;cursor:pointer}.play-action:hover{background:var(--surface-soft)}.play-action.primary{background:color-mix(in srgb,var(--primary) 18%,var(--surface-solid));border-color:color-mix(in srgb,var(--primary) 50%,var(--line-soft))}.play-action.ranked-action{min-height:92px;border-color:var(--warn);background:color-mix(in srgb,var(--warn) 13%,var(--surface-solid));box-shadow:inset 4px 0 var(--warn)}.play-action .ui-icon{width:22px;height:22px;justify-self:center}.play-action span{display:grid;gap:2px}.play-action strong{font-size:15px;font-weight:700}.play-action small{color:var(--muted);font-size:12px}.lobby-side{position:sticky;top:0;order:0;display:grid;gap:18px;align-content:start;background:0 0;box-shadow:none}.lobby-side-section{padding:12px;background:color-mix(in srgb,var(--panel2) 70%,transparent);box-shadow:none}.lobby-side h3{margin:0 0 10px;display:flex;align-items:center;gap:7px;font-size:13px;color:var(--primary-d);font-weight:600}.news-card{min-width:0;padding:0;overflow:hidden;background:color-mix(in srgb,var(--panel2) 70%,transparent)}.news-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 14px 10px;border-bottom:1px solid var(--line-soft, var(--line))}.news-head>div{display:grid;gap:3px}.news-head h3{margin:0;color:var(--text);font-size:18px;font-weight:600;letter-spacing:-.02em}.news-live-dot{width:9px;height:9px;border-radius:50%;background:var(--good);box-shadow:0 0 0 5px color-mix(in srgb,var(--good) 14%,transparent)}.news-list{display:grid}.news-item{min-width:0;display:grid;gap:6px;padding:12px 14px;border-bottom:1px solid var(--line-soft, var(--line))}.news-item:last-child{border-bottom:0}.news-item.featured{background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 13%,transparent),transparent 68%)}.news-item-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em}.news-item-meta span{color:var(--primary-d);font-weight:800}.news-item h4{margin:0;font-size:13px;line-height:1.25}.news-item p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}.news-empty{margin:0;padding:18px 14px;text-align:center}.feedback-launch-card{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 10%,var(--surface-solid, var(--panel))),var(--surface-solid, var(--panel)))}.feedback-launch-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--primary) 44%,var(--line-soft, var(--line)));border-radius:10px;color:var(--primary-d);background:color-mix(in srgb,var(--primary) 10%,transparent);font-size:17px}.feedback-launch-card>div{min-width:0;display:grid;gap:3px}.feedback-launch-card strong{font-size:13px}.feedback-launch-card small{color:var(--muted);font-size:10px;line-height:1.35}.feedback-launch-card .btn{min-width:72px}.leaderboard{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.lb-row{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:9px;background:var(--panel2);cursor:pointer;transition:background .14s,transform .1s}.lb-row:hover{background:var(--hover);transform:translateX(2px)}.lb-rank{width:18px;text-align:center;font-weight:700;color:var(--muted);font-size:13px}.lb-row.top .lb-rank{color:var(--warn)}.lb-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.lb-wins{font-size:12px;font-variant-numeric:tabular-nums}.leaderboard-empty{text-align:center;padding:16px 0}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.section-head h2{margin:0}.section-head>div{display:flex;gap:10px}.lobby-main .section-head>.lobby-room-actions{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;flex:1 0 100%;white-space:nowrap}.lobby-room-actions .btn{width:100%;min-width:0;max-width:none;justify-content:center;padding-inline:10px}.lobby-room-actions .rooms-refresh{min-width:0;max-width:none}.lobby-room-actions .ui-icon{flex:none}.rooms-refresh{min-width:112px;max-width:min(160px,46vw);justify-content:center;transition:color .15s,border-color .15s,background .15s}.rooms-refresh span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rooms-refresh .ui-icon{flex:none}.rooms-refresh.loading .ui-icon{animation:refreshRoomsSpin .72s linear infinite}.rooms-refresh.success{color:var(--good);border-color:color-mix(in srgb,var(--good) 55%,var(--line));background:color-mix(in srgb,var(--good) 10%,var(--surface-solid, var(--panel)))}.rooms-refresh.failed{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 55%,var(--line))}@keyframes refreshRoomsSpin{to{transform:rotate(360deg)}}.rooms-list{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.active-games-section{margin-bottom:16px}.active-games-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.active-games-head h3{margin:0;font-size:15px}.active-match-card{border-color:color-mix(in srgb,var(--primary) 38%,var(--line-soft))}.active-match-card.your-turn{border-color:var(--primary);box-shadow:inset 3px 0 0 var(--primary)}.room-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:8px;transition:transform .14s,border-color .14s,box-shadow .14s;animation:cardIn .3s ease both}.room-card:hover{transform:translateY(-3px);border-color:var(--primary-d);box-shadow:0 12px 30px rgba(0,0,0,.35)}@keyframes cardIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.room-card h3{margin:0}.room-card .meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:24px;background:var(--panel2);padding:4px 10px;border-radius:999px;font-size:13px;line-height:1;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.badge.live{background:color-mix(in srgb,var(--good) 24%,var(--panel2));color:color-mix(in srgb,var(--good) 82%,#fff)}.badge.live{animation:liveGlow 1.8s ease-in-out infinite}.badge.finished{background:color-mix(in srgb,var(--danger) 18%,var(--panel2));color:#ffb3c0}@keyframes liveGlow{0%,to{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 3px rgba(123,224,160,.18)}}.empty-state{color:var(--muted);padding:40px;text-align:center}.rooms-more-row{min-height:44px;display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:10px}.rooms-more-row #more-lobbies{min-width:112px;justify-content:center}.tutorial-return{width:100%;min-width:0;min-height:52px;margin-top:8px;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line-soft);border-radius:8px;background:color-mix(in srgb,var(--panel2) 72%,transparent);color:var(--text);text-align:left;cursor:pointer}.tutorial-return[hidden]{display:none}.tutorial-return:hover{border-color:var(--primary-d);background:var(--hover)}.tutorial-return:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.tutorial-return>.ui-icon{width:20px;height:20px}.tutorial-return strong{min-width:0;font-size:13px;line-height:1.2}.tutorial-return>span:last-child{color:var(--primary-d);font-weight:800}.lobbies-page{background:var(--bg);overflow:hidden}.lobbies-page-shell{width:min(1120px,calc(100vw - 40px));height:calc(100dvh - 50px);margin:0 auto;padding:28px 0 max(36px,env(safe-area-inset-bottom));overflow-y:auto}.lobbies-page-head{display:flex;align-items:end;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:2px solid var(--primary)}.lobbies-page-head h1{margin:4px 0 5px;font-size:32px;font-weight:550}.lobbies-page-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.lobbies-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:18px 0 14px}.lobbies-search-row input{width:100%;min-height:44px}.all-rooms-list{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.room-directory-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.04em}.room-code-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.room-code-line[hidden],.badge[hidden]{display:none!important}.room-private-badge{color:var(--primary-d);border-color:color-mix(in srgb,var(--primary) 42%,var(--line))}.private-lobby-toggle{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin-top:14px;padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--surface-soft);cursor:pointer}.private-lobby-toggle input{accent-color:var(--primary)}.private-join-card{width:min(430px,calc(100vw - 24px))}.private-join-card h2{margin:5px 0 8px}.room-code-input{width:100%;min-height:54px;text-align:center;font:700 24px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.18em;text-transform:uppercase}.room-body{padding:28px;display:grid;grid-template-columns:1fr 1.3fr;gap:20px;max-width:1100px;margin:0 auto;height:calc(100vh - 60px);overflow:auto}.players-list,.room-players-list{list-style:none;padding:0;margin:12px 0;display:grid;gap:8px}.players-list li{background:var(--panel2);padding:10px 14px;border-radius:9px;display:flex;justify-content:space-between}.crown{color:var(--warn)}.room-name-editor{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin:8px 0 4px}.room-name-editor input{min-width:0}.room-actions{margin-top:18px}.ranked-room-summary{display:grid;gap:8px;margin:14px 0;padding:14px;border:1px solid var(--warn);border-radius:10px;background:var(--panel2)}.ranked-room-summary[hidden]{display:none}.ranked-room-summary>strong{font-size:26px;font-variant-numeric:tabular-nums}.ranked-room-summary p{margin:0;color:var(--muted)}.ranked-rules-strip{display:flex;gap:6px;flex-wrap:wrap}.ranked-rules-strip span{padding:4px 7px;border:1px solid var(--line-soft);border-radius:6px;font-size:11px}#room-screen.ranked-room .room-body{grid-template-columns:minmax(0,680px);justify-content:center}#room-screen.ranked-room .room-settings,#room-screen.ranked-room .room-name-editor,#room-screen.ranked-room .map-preview-wrap,#room-screen.ranked-room .room-map-controls,#room-screen.ranked-room #reroll-map,#room-screen.ranked-room #add-bot-row,#room-screen.ranked-room .room-actions{display:none!important}#room-screen.ranked-room .player-li.ranked-seat{cursor:default;border-color:color-mix(in srgb,var(--room-player-color) 48%,var(--line-soft));border-left:5px solid var(--room-player-color);background:color-mix(in srgb,var(--room-player-color) 13%,var(--surface-solid))}#room-screen.ranked-room .player-li.ranked-seat:hover{background:color-mix(in srgb,var(--room-player-color) 17%,var(--surface-solid))}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.settings-grid label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}.settings-grid input,.settings-grid select{background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:9px;color:var(--text)}.map-preview-wrap{margin:14px 0}#room-preview{width:100%;max-width:280px;aspect-ratio:1/1;height:auto;display:block;border:1px solid var(--line);border-radius:10px;background:#10131f;image-rendering:pixelated}.preview-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;flex-wrap:wrap}.room-map-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;max-width:460px;margin-top:9px}.room-map-controls select{min-width:0;background:var(--panel2);border:1px solid var(--line);border-radius:9px;color:var(--text);padding:8px 10px}.create-map-source{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;align-items:end;margin-top:12px}.create-map-source label{margin:0}.create-map-source small{grid-column:1/-1}.preset-row{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}.preset-label{font-size:13px;color:var(--muted)}.preset-chips{display:flex;gap:6px;flex-wrap:wrap}#create-battlefield-presets,#battlefield-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex:1}#create-battlefield-presets .preset-chip,#battlefield-presets .preset-chip{min-width:0;padding:8px 6px;font-size:12px;line-height:1.25;white-space:normal}.preset-chip{padding:6px 9px;font-size:12px}.preset-chip.sel{background:var(--primary);border-color:var(--primary-d);color:var(--primary-fg);box-shadow:0 0 0 2px var(--accent-soft)}.advanced-toggle{display:inline-flex;align-items:center;gap:7px;margin:10px 0 8px;color:var(--muted);font-size:13px;cursor:pointer}.advanced-toggle input{accent-color:var(--primary)}.advanced-field{opacity:.95}.preset-chip{padding:6px 11px}.small-note{margin:4px 0 10px}.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(5,8,16,.7);place-items:center;z-index:100;backdrop-filter:blur(2px)}.modal-backdrop.show{display:grid;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{width:520px;max-width:94vw;max-height:90vh;overflow:auto;position:relative;animation:modalPop .2s cubic-bezier(.2,.9,.3,1.3) both}@keyframes modalPop{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}.modal label{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.confirm-card{width:min(420px,calc(100vw - 32px))}.confirm-card p{margin:8px 0 0;color:var(--muted);line-height:1.45}.modal.center{text-align:center}.modal-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:8px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);cursor:pointer;font-size:14px}.modal-close:hover{background:var(--hover);color:var(--text)}.map-workshop-page{height:100dvh;overflow-y:auto;background:var(--bg)}.map-workshop-page[hidden],.map-workshop-page [hidden],.map-workshop-library-view[hidden],.map-workshop-editor-view[hidden]{display:none!important}.map-workshop-topbar{position:sticky;top:0;z-index:30}.map-workshop-brand{display:flex;align-items:center;gap:8px}.map-workshop-brand .brand-section{color:var(--muted);font-size:14px;font-weight:700}.map-workshop-shell{width:min(1500px,calc(100vw - 32px));min-height:calc(100dvh - 66px);margin:0 auto;padding:22px 0 36px}.map-workshop-modal{width:100%;min-width:0;display:flex;flex-direction:column;padding:0}.map-workshop-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.map-workshop-head h2{margin:2px 0 0}.map-workshop-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.map-editor-title{min-width:0;display:flex;align-items:center;gap:12px}.map-editor-title>div{min-width:0}.map-editor-title h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-readonly-badge{padding:4px 7px;border:1px solid var(--primary);border-radius:999px;color:var(--primary-d);background:color-mix(in srgb,var(--primary) 12%,var(--surface));font-size:9px;font-weight:850;text-transform:uppercase}.map-draft-indicator{min-width:0;color:var(--muted);font-size:10px;white-space:nowrap}.map-draft-indicator.saving{color:var(--warn);animation:mapDraftPulse .85s ease-in-out infinite alternate}.map-draft-indicator.saved{color:var(--good)}.map-draft-indicator.error{color:var(--danger)}@keyframes mapDraftPulse{to{opacity:.45}}.map-workshop-layout{min-height:0;flex:1;display:block}.map-workshop-modal.library-collapsed .map-workshop-layout{grid-template-columns:minmax(0,1fr)}.map-workshop-modal.library-collapsed .map-library{display:none}.map-library{min-height:0;overflow-y:auto;padding:6px;border:1px solid var(--line-soft, var(--line));border-radius:12px;background:var(--surface-soft, var(--panel2))}.map-library-head{position:sticky;top:-6px;z-index:2;display:grid;gap:7px;padding:8px 6px 9px;margin:-6px -2px 6px;background:var(--surface-soft, var(--panel2));border-bottom:1px solid var(--line-soft, var(--line))}.map-library-head strong{font-size:12px}.map-library-head input{min-height:34px;padding:7px 8px;font-size:12px}.map-library-list{display:grid;gap:7px}.map-library-item{width:100%;min-width:0;display:grid;gap:4px;padding:10px;text-align:left;cursor:pointer;border:1px solid var(--line-soft, var(--line));border-radius:9px;background:var(--surface-solid, var(--panel));color:var(--text)}.map-library-item:hover{background:var(--hover)}.map-library-item.active{border-color:var(--primary);box-shadow:inset 3px 0 0 var(--primary)}.map-library-item strong,.map-library-item small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-library-item small{color:var(--muted);font-size:10px}.map-library-hero{min-height:150px;display:flex;align-items:end;justify-content:space-between;gap:24px;padding:24px 0;border-bottom:1px solid var(--line-soft)}.map-library-hero h1{margin:5px 0 7px;font-size:clamp(26px,4vw,42px)}.map-library-hero p{max-width:700px;margin:0;color:var(--muted);line-height:1.5}.map-library-controls{position:sticky;top:50px;z-index:10;display:grid;grid-template-columns:auto minmax(220px,360px);justify-content:space-between;gap:14px;padding:14px 0;background:var(--bg)}.map-library-controls>input{width:100%;min-height:40px;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);color:var(--text);font:inherit}.map-library-tabs{display:flex;gap:4px;padding:4px;border:1px solid var(--line-soft);border-radius:9px;background:var(--surface)}.map-library-tabs button{min-height:32px;padding:6px 11px;border:0;border-radius:6px;background:0 0;color:var(--muted);font:inherit;font-size:11px;font-weight:750;cursor:pointer}.map-library-tabs button.active{background:var(--surface-solid);color:var(--text);box-shadow:var(--shadow-soft)}.map-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.map-library-card{min-width:0;overflow:hidden;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-soft)}.map-library-card-open{width:100%;padding:0;border:0;background:0 0;color:var(--text);cursor:pointer;text-align:left}.map-library-card-open:hover .map-library-preview{filter:brightness(1.08)}.map-library-preview{width:100%;aspect-ratio:16/9;display:block;background:#0b1720;image-rendering:pixelated}.map-library-card-copy{min-width:0;display:grid;gap:4px;padding:12px 13px 10px}.map-library-card-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.map-library-card-copy>span{min-height:30px;display:-webkit-box;overflow:hidden;color:var(--muted);font-size:10px;line-height:1.4;-webkit-line-clamp:2;-webkit-box-orient:vertical}.map-library-card-copy small{color:var(--muted);font-size:9px}.map-library-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 13px;border-top:1px solid var(--line-soft);color:var(--muted);font-size:9px}.map-visibility-badge{padding:3px 6px;border-radius:5px;font-weight:800;text-transform:uppercase}.map-visibility-badge.public{color:var(--good);background:color-mix(in srgb,var(--good) 12%,transparent)}.map-visibility-badge.private{color:var(--muted);background:var(--surface-solid)}.map-library-empty-state{min-height:260px;display:grid;place-content:center;justify-items:center;gap:5px;color:var(--muted);text-align:center}.map-library-empty-state[hidden]{display:none}.map-library-empty-state strong{color:var(--text);font-size:16px}.map-workshop-editor-view{padding-top:4px}.map-draft-recovery{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;margin-bottom:10px;padding:10px 11px;border:1px solid var(--warn);border-radius:8px;background:color-mix(in srgb,var(--warn) 7%,var(--surface))}.map-draft-recovery[hidden]{display:none}.map-draft-recovery>div{min-width:0;display:grid;gap:2px}.map-draft-recovery span{color:var(--muted);font-size:10px}.map-editor-panel{min-height:0;display:flex;flex-direction:column;gap:10px}.map-editor-meta{display:grid;grid-template-columns:minmax(150px,1fr) 110px minmax(220px,1.2fr) minmax(150px,.65fr);gap:9px}.map-editor-meta label{margin:0}.map-editor-meta input,.map-editor-meta select{width:100%}.map-size-limit{color:var(--muted);font-size:10px;font-weight:700;white-space:nowrap}.map-visibility-field{min-width:0}.map-public-toggle{min-height:38px;display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid)}.map-public-toggle input{width:17px!important;min-height:17px;accent-color:var(--primary)}.map-public-toggle b{font-size:11px}.map-visibility-field>small{color:var(--muted);font-size:8px;line-height:1.3}.map-workshop-editor-view.read-only .map-editor-toolbar,.map-workshop-editor-view.read-only .map-editor-commandbar{opacity:.72}.map-editor-commandbar{display:flex;align-items:end;gap:7px;min-width:0;padding:7px;border:1px solid var(--line-soft, var(--line));border-radius:11px;background:var(--surface-solid, var(--panel))}.map-command-group{display:flex;gap:4px;flex:none}.map-command-select{min-width:126px;display:grid!important;gap:3px!important;margin:0!important;font-size:10px!important}.map-command-select select{min-height:32px;padding:5px 7px;font-size:11px}.map-history-controls .btn{min-width:72px}.map-history-status{min-width:42px;align-self:center;padding:4px 6px;border-radius:999px;color:var(--muted);background:var(--surface-soft, var(--panel2));font-size:9px;text-align:center;font-variant-numeric:tabular-nums}.map-history-status.warn{color:var(--warn)}.map-zoom-controls{margin-left:auto}.map-zoom-controls .btn{min-width:34px;padding-inline:8px}.map-zoom-controls .map-zoom-value{min-width:54px;font-variant-numeric:tabular-nums}.map-inspector-toggle.active,#map-library-toggle.active{border-color:color-mix(in srgb,var(--primary) 55%,var(--line));background:color-mix(in srgb,var(--primary) 14%,var(--panel2))}.map-editor-toolbar{display:flex;align-items:stretch;gap:6px;flex-wrap:wrap;padding:7px;border:1px solid var(--line-soft, var(--line));border-radius:11px;background:var(--surface-soft, var(--panel2))}.map-tool{min-height:42px;min-width:64px;display:grid;grid-template-columns:16px auto;align-items:center;gap:6px;padding:6px 9px;border:1px solid transparent;border-radius:8px;cursor:pointer;background:0 0;color:var(--muted);font:inherit}.map-tool b{font-size:11px}.map-tool:hover{background:var(--hover);color:var(--text)}.map-tool.active{color:var(--text);border-color:var(--primary);background:color-mix(in srgb,var(--primary) 18%,var(--surface-solid, var(--panel)))}.map-tool-swatch{width:16px;height:16px;border-radius:4px;border:1px solid rgba(255,255,255,.35)}.map-tool-swatch.land{background:#4d665c}.map-tool-swatch.water{background:#1760a8}.map-tool-swatch.forest{background:#7fcf58}.map-tool-swatch.hills{background:linear-gradient(135deg,#a8865a 0 45%,#6f5639 46% 100%)}.map-tool-glyph{font-size:16px;line-height:1;color:#fff;text-align:center}.map-tool-glyph.start{color:#ffcf40}.map-tool-glyph.erase{color:#ff8d9b;font-size:20px}.map-brush-size{min-width:76px;display:flex!important;flex-direction:row!important;align-items:center;gap:5px!important;margin:0!important;padding:0 5px}.map-brush-size select{min-width:42px;padding:6px}.map-editor-canvas-wrap{min-height:min(660px,calc(100dvh - 315px));flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,230px);gap:9px;align-items:stretch;overflow:hidden;border:1px solid var(--line-soft, var(--line));border-radius:12px;padding:9px;background:#0d1117}.map-workshop-modal.inspector-collapsed .map-editor-canvas-wrap{grid-template-columns:minmax(0,1fr)}.map-workshop-modal.inspector-collapsed .map-editor-inspector{display:none}.map-editor-stage{min-width:0;min-height:0;overflow:auto;display:flex;align-items:flex-start;justify-content:flex-start;padding:8px;border-radius:8px;background:radial-gradient(circle at center,#1a2029,#0b0f14);scrollbar-color:rgba(255,255,255,.28) transparent;overscroll-behavior:contain}#map-editor-canvas{display:block;width:min(100%,58dvh);height:auto;flex:none;margin:auto;aspect-ratio:1;image-rendering:pixelated;cursor:crosshair;touch-action:none;border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 28px rgba(0,0,0,.36)}#map-editor-canvas.pan-tool,#map-editor-canvas.space-pan{cursor:grab}#map-editor-canvas.panning{cursor:grabbing}.map-editor-inspector{min-width:0;display:flex;flex-direction:column;gap:9px;color:#d7dde6}.map-cursor-readout{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:34px;padding:7px 9px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:rgba(255,255,255,.05);font-size:11px}.map-cursor-readout strong{font-variant-numeric:tabular-nums}.map-validation-card{padding:9px;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:rgba(255,255,255,.05)}.map-validation-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.map-validation-head span{padding:3px 6px;border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase}.map-validation-head span.good{color:#a9edb5;background:rgba(67,170,88,.18)}.map-validation-head span.bad{color:#ffb0ba;background:rgba(211,64,82,.2)}.map-validation-card ul{max-height:150px;overflow-y:auto;margin:8px 0 0;padding:0;list-style:none;display:grid;gap:6px}.map-validation-card li{position:relative;padding-left:14px;font-size:10px;line-height:1.35;color:#d7dde6}.map-validation-card li::before{content:"•";position:absolute;left:2px}.map-validation-card li.good::before{content:"✓";color:#83d091}.map-validation-card li.warn::before{content:"⚠";left:0;color:#ffd166}.map-validation-card li.bad::before{content:"×";color:#ff7f91;font-weight:900}.map-start-order{min-height:0;display:grid;gap:6px;padding:8px;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:rgba(255,255,255,.05)}.map-start-order-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px}.map-start-order-head span{color:#9da8b8;font-variant-numeric:tabular-nums}.map-start-order ol{min-height:0;max-height:150px;overflow-y:auto;list-style:none;margin:0;padding:0;display:grid;gap:4px}.map-start-order li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px;min-height:28px;border-radius:6px;background:rgba(0,0,0,.16)}.map-start-order li.empty{display:block;padding:7px;color:#9da8b8;font-size:9px;line-height:1.35}.map-start-focus{min-width:0;min-height:28px;display:flex;align-items:center;gap:7px;padding:4px 6px;border:0;background:0 0;color:#d7dde6;cursor:pointer;text-align:left}.map-start-focus:hover{background:rgba(255,255,255,.07)}.map-start-focus b{color:#ffcf40;font-size:10px}.map-start-focus span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#aeb8c7;font-size:9px;font-variant-numeric:tabular-nums}.map-start-actions{display:flex;gap:2px;padding-right:3px}.map-start-actions button{width:25px;height:25px;padding:0;border:1px solid rgba(255,255,255,.12);border-radius:5px;background:0 0;color:#d7dde6;cursor:pointer}.map-start-actions button:hover:not(:disabled){background:rgba(255,255,255,.1)}.map-start-actions button:disabled{opacity:.3;cursor:default}.map-editor-legend{display:flex;flex-direction:column;gap:8px;padding:8px;border:1px solid rgba(255,255,255,.12);border-radius:9px;color:#d7dde6;font-size:10px}.map-editor-legend span{display:grid;grid-template-columns:16px auto;align-items:center;gap:6px}.map-editor-legend i{width:14px;height:14px;display:block;background:#fff;border:2px solid #15191f;border-radius:50%}.map-editor-legend .legend-start{border-radius:2px;background:0 0;border-color:#ffcf40;transform:rotate(45deg)}.map-editor-help{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);color:#9da8b8}.map-editor-help summary{min-height:32px;display:flex;align-items:center;cursor:pointer;font-size:9px;font-weight:800}.map-editor-shortcuts{margin:0;padding:0 0 8px;color:#9da8b8;font-size:9px;line-height:1.45}.map-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.map-editor-footer p{margin:0;font-size:11px}.map-editor-footer p::before{display:inline-block;width:16px;margin-right:4px;text-align:center}.map-editor-footer p.unsaved::before{content:"●";color:var(--warn)}.map-editor-footer p.saved::before{content:"✓";color:var(--good)}.map-editor-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}@media (max-width:1050px) and (min-width:761px){.map-workshop-modal{width:min(1000px,98vw);max-width:98vw}.map-workshop-layout{grid-template-columns:180px minmax(0,1fr);gap:9px}.map-editor-commandbar{flex-wrap:wrap}.map-zoom-controls{margin-left:0}.map-editor-canvas-wrap{grid-template-columns:minmax(0,1fr) 190px}.map-tool{min-width:54px}}.help-modal{width:min(980px,94vw)}.help-intro{margin:0 0 14px;color:var(--muted);line-height:1.5}.help-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.help-sections section{min-width:0;padding:12px;border:1px solid var(--line-soft, var(--line));border-radius:10px;background:var(--surface-soft, var(--panel2))}.help-sections section.help-wide{grid-column:1/-1}.help-sections h3{margin:0 0 7px;color:var(--text);font-size:14px}.help-sections ul{margin:0;padding-left:18px;display:grid;gap:5px;color:var(--muted);font-size:12px;line-height:1.45}.help-sections p{margin:5px 0;color:var(--muted);font-size:12px;line-height:1.5}.help-sections strong{color:var(--text)}.feedback-modal{width:min(600px,calc(100vw - 24px))}.feedback-modal h2{margin:4px 38px 5px 0;font-size:25px}.feedback-intro{margin:0 38px 18px 0;line-height:1.45}.feedback-modal textarea{width:100%;min-height:150px;resize:vertical;padding:11px 12px;border:1px solid var(--line-soft, var(--line));border-radius:var(--radius);background:var(--surface-solid, var(--panel2));color:var(--text);font:inherit;line-height:1.45;-webkit-user-select:text;user-select:text}.feedback-modal textarea:focus{outline:2px solid color-mix(in srgb,var(--primary) 48%,transparent);outline-offset:1px}.feedback-form-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:-4px;color:var(--muted);font-size:10px;line-height:1.35}.feedback-form-meta small{max-width:48ch}#feedback-counter{flex:none;font-variant-numeric:tabular-nums}.feedback-status{min-height:20px;margin:10px 0-4px;color:var(--muted);font-size:12px}.feedback-status.error{color:var(--danger)}.feedback-status.success{color:var(--good)}.profile-page{background:var(--bg);overflow-y:auto;overflow-x:hidden}.profile-topbar{position:sticky;top:0;z-index:20}.profile-shell{width:min(1040px,calc(100vw - 32px));margin:0 auto;padding:28px 0 max(48px,env(safe-area-inset-bottom));display:grid;gap:16px}.profile-overview{position:relative;overflow:hidden;padding:0 26px 26px}.profile-banner{height:94px;margin:0-26px -42px;overflow:hidden;display:flex;align-items:center;justify-content:flex-end;gap:clamp(24px,7vw,72px);padding:0 clamp(20px,6vw,72px);color:color-mix(in srgb,var(--primary) 26%,transparent);background:linear-gradient(120deg,color-mix(in srgb,var(--primary) 18%,var(--surface-solid, var(--panel))),color-mix(in srgb,var(--good) 8%,var(--surface-solid, var(--panel))) 65%,var(--surface-solid, var(--panel)));border-bottom:1px solid var(--line-soft, var(--line))}.profile-banner span{font:800 clamp(38px,6vw,72px)/1"Segoe UI Symbol",serif;transform:rotate(-8deg);opacity:.55}.profile-head{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:20px;margin-bottom:20px}.avatar.xl{width:96px;height:96px;font-size:46px;border-width:3px}.profile-id{min-width:0}.profile-name-line{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.profile-id h1{margin:0;font-size:clamp(28px,4vw,42px);font-weight:650;letter-spacing:-.035em;overflow-wrap:anywhere}.profile-id p{margin:0}.profile-visibility-pill,.history-visibility{display:inline-flex;align-items:center;min-height:24px;padding:4px 9px;border:1px solid color-mix(in srgb,var(--good) 42%,var(--line-soft, var(--line)));border-radius:999px;color:var(--good);background:color-mix(in srgb,var(--good) 10%,var(--surface-solid, var(--panel)));font-size:10px;font-weight:800;letter-spacing:.035em;text-transform:uppercase;white-space:nowrap}.profile-visibility-pill[data-state=private],.history-visibility.private{color:var(--muted);border-color:var(--line-soft, var(--line));background:var(--surface-soft, var(--panel2))}.profile-meta-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.profile-meta-chip{display:inline-flex;align-items:baseline;gap:4px;padding:5px 9px;border:1px solid var(--line-soft, var(--line));border-radius:8px;background:color-mix(in srgb,var(--surface-solid, var(--panel)) 88%,transparent);color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.profile-meta-chip strong{color:var(--text);font-size:13px}.profile-meta-chip.placement{border-color:var(--warn)}.profile-head-actions{align-self:start}.profile-about{display:grid;gap:8px;max-width:78ch;padding:16px 18px;border:1px solid var(--line-soft, var(--line));border-radius:var(--radius);background:color-mix(in srgb,var(--surface-soft, var(--panel2)) 72%,transparent)}.profile-headline{font-size:15px;font-weight:700;color:var(--text)}.profile-bio{margin:0;line-height:1.45;white-space:pre-wrap}.profile-bio.empty{opacity:.78;font-style:italic}.profile-location{font-size:12px}.profile-location:not(:empty)::before{content:"⌖";margin-right:6px;color:var(--primary-d)}.profile-editor{padding:22px;scroll-margin-top:72px}.profile-editor-head{display:flex;justify-content:space-between;align-items:end;gap:18px;padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid var(--line-soft, var(--line))}.profile-editor-head h2{margin:3px 0 0;font-size:22px}.profile-editor-head p{margin:0;max-width:48ch;text-align:right}.profile-editor-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(320px,1.2fr);gap:24px}.profile-fields{display:grid;align-content:start;gap:13px}.profile-editor-section{display:grid;gap:13px}.profile-editor label{display:grid;gap:6px;margin:0;color:var(--muted);font-size:13px}.profile-editor textarea{width:100%;resize:vertical;min-height:92px;background:var(--surface-solid, var(--panel2));border:1px solid var(--line-soft, var(--line));border-radius:var(--radius);color:var(--text);padding:10px 12px;font:inherit}.profile-editor textarea:focus{outline:2px solid color-mix(in srgb,var(--primary) 45%,transparent);outline-offset:1px}.profile-privacy-card{min-width:0;margin:4px 0 0;padding:0;border:0}.profile-privacy-card legend{width:100%;margin-bottom:7px;color:var(--muted);font-size:12px;font-weight:700}.privacy-switch-row{grid-template-columns:minmax(0,1fr) auto!important;align-items:center;gap:16px!important;padding:13px 14px;border:1px solid var(--line-soft, var(--line));border-radius:var(--radius);background:var(--surface-soft, var(--panel2));cursor:pointer}.privacy-switch-copy{min-width:0;display:grid;gap:4px}.privacy-switch-copy strong{color:var(--text);font-size:13px}.privacy-switch-copy small{color:var(--muted);font-size:11px;line-height:1.4;overflow-wrap:anywhere}.privacy-switch{position:relative;width:46px;height:26px;flex:none}.privacy-switch input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.privacy-switch>span{position:absolute;inset:0;border:1px solid var(--line);border-radius:999px;background:var(--surface-solid, var(--panel));transition:background .16s,border-color .16s}.privacy-switch>span::after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:var(--muted);transition:transform .16s,background .16s}.privacy-switch input:checked+span{border-color:color-mix(in srgb,var(--good) 62%,var(--line));background:color-mix(in srgb,var(--good) 22%,var(--surface-solid, var(--panel)))}.privacy-switch input:checked+span::after{transform:translateX(20px);background:var(--good)}.privacy-switch input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}.profile-editor-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:18px;margin-top:18px;border-top:1px solid var(--line-soft, var(--line))}.profile-head-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.account-settings[hidden]{display:none}.account-settings{padding:22px;scroll-margin-top:72px}.account-settings-head{display:flex;justify-content:space-between;align-items:end;gap:18px;padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid var(--line-soft, var(--line))}.account-settings-head h2{margin:3px 0 0;font-size:22px}.account-settings-grid{display:grid;grid-template-columns:minmax(300px,1fr) minmax(300px,1fr);gap:16px;align-items:stretch}.account-methods-card,.account-password-card{min-width:0;display:grid;align-content:start;gap:13px;padding:16px;border:1px solid var(--line-soft, var(--line));border-radius:var(--radius);background:var(--surface-soft, var(--panel2))}.account-methods-card h3,.account-password-card h3{margin:0;font-size:16px}.account-password-card>p{margin:-5px 0 2px;font-size:11px;line-height:1.45}.account-password-card label{display:grid;gap:6px;color:var(--muted);font-size:12px}.account-methods-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.account-security-badge,.account-method-state{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border:1px solid var(--line-soft, var(--line));border-radius:999px;color:var(--muted);background:var(--surface-solid, var(--panel));font-size:10px;font-weight:800;white-space:nowrap}.account-security-badge[data-state=verified],.account-method-state.connected{color:var(--good);border-color:color-mix(in srgb,var(--good) 42%,var(--line));background:color-mix(in srgb,var(--good) 10%,var(--surface-solid, var(--panel)))}.account-email-row{display:grid;gap:4px;padding:2px 0 8px;border-bottom:1px solid var(--line-soft, var(--line))}.account-email-row strong{overflow-wrap:anywhere}.account-method-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px}.account-method-row>span:nth-child(2){min-width:0;display:grid;gap:2px}.account-method-row small{font-size:10px;line-height:1.35}.account-method-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line-soft, var(--line));border-radius:10px;color:var(--text);background:var(--surface-solid, var(--panel));font-weight:800;letter-spacing:-2px}.account-method-icon.google{color:#4285f4;letter-spacing:0;font:800 18px/1 Arial,sans-serif}.account-google-link{min-height:42px;display:grid;justify-content:center;padding-top:4px}.account-google-link[hidden]{display:none}.account-inline-message{min-height:18px;margin:0;font-size:11px;line-height:1.4}.account-inline-message.success{color:var(--good)}.account-deletion{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(320px,1.28fr);gap:18px 24px;margin-top:18px;padding-top:18px;border-top:1px solid color-mix(in srgb,var(--danger) 42%,var(--line))}.account-deletion-copy h3{margin:3px 0 8px;font-size:17px}.account-deletion-copy p{margin:0;max-width:44ch;font-size:11px;line-height:1.5}.account-deletion-request{display:grid;gap:13px;min-width:0}.account-deletion-effects{display:grid;gap:7px;margin:0;padding-left:20px;color:var(--muted);font-size:11px;line-height:1.45}.account-deletion-confirm{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--line));border-radius:var(--radius);background:color-mix(in srgb,var(--danger) 7%,var(--surface-soft, var(--panel2)));color:var(--text);font-size:11px;line-height:1.4;cursor:pointer}.account-deletion-confirm input{margin-top:2px;accent-color:var(--danger)}.account-deletion-password{display:grid;grid-template-columns:minmax(180px,1fr) auto;align-items:end;gap:10px}.account-deletion-password[hidden]{display:none}.account-deletion-password label{display:grid;gap:6px;color:var(--muted);font-size:11px}.account-deletion-google{display:grid;justify-items:center;gap:9px}.account-deletion-google[hidden]{display:none}.account-deletion-divider{color:var(--muted);font-size:10px}.account-deletion-pending{grid-column:2;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 16px;padding:14px;border:1px solid color-mix(in srgb,var(--warn) 48%,var(--line));border-radius:var(--radius);background:color-mix(in srgb,var(--warn) 9%,var(--surface-soft, var(--panel2)))}.account-deletion-pending[hidden]{display:none}.account-deletion-pending p{margin:4px 0 0;font-size:11px;line-height:1.4}.account-deletion-pending .account-inline-message{grid-column:1/-1}.account-legal-links{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 18px;padding-top:2px;font-size:11px}.account-legal-links a{color:var(--muted)}.account-legal-links a:hover{color:var(--primary-d)}.room-card-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.room-report-btn{width:38px;min-width:38px;padding:8px}.map-library-card-actions{display:flex;align-items:center;gap:6px}.map-library-report{width:32px;height:32px;padding:7px}.profile-dashboard{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(420px,1.28fr);gap:16px;align-items:start}.profile-dashboard>*{min-width:0}.profile-stats-card{min-width:0;padding:18px}.profile-record-summary{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px;margin-bottom:18px}.stat{background:var(--panel2);border:1px solid var(--line);border-radius:11px;padding:12px 6px;min-width:0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:3px}.stat-num{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}.stat-label{max-width:100%;font-size:11px;line-height:1.15;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;overflow-wrap:anywhere}.stat.win .stat-num{color:var(--good)}.stat.loss .stat-num{color:var(--danger)}.stat.draw .stat-num{color:var(--warn)}.winrate-row{margin-bottom:20px}.winrate-label{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:6px}.winrate-bar{height:10px;border-radius:6px;background:var(--bg2);overflow:hidden;border:1px solid var(--line)}.winrate-fill{height:100%;background:linear-gradient(90deg,var(--good),#7be0a0);width:0;transition:width .5s ease}.avatar-editor{min-width:0}.avatar-editor h3{margin:0 0 12px;font-size:16px}.editor-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.editor-label{width:48px;font-size:13px;color:var(--muted)}.avatar-dropzone{min-height:118px;display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:16px;padding:16px;border:1.5px dashed color-mix(in srgb,var(--primary) 52%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--primary) 6%,var(--surface-solid, var(--panel2)));cursor:pointer;transition:background .15s,border-color .15s}.avatar-dropzone:hover,.avatar-dropzone:focus-visible,.avatar-dropzone.dragging{outline:0;border-color:var(--primary);background:color-mix(in srgb,var(--primary) 13%,var(--surface-solid, var(--panel2)))}.avatar-dropzone.uploading{cursor:wait;opacity:.72}.avatar-dropzone-copy{display:grid;gap:5px}.avatar-dropzone-copy strong{font-size:15px}.avatar-dropzone-copy small{line-height:1.4}.custom-avatar-preview{width:82px;height:82px;border-radius:50%;border:2px solid var(--line);overflow:hidden;background:var(--panel2);display:grid;place-items:center}.custom-avatar-preview .avatar{width:100%;height:100%;border:0;font-size:38px}.custom-avatar-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.custom-avatar-actions .btn{min-width:0}.avatar-upload-note{display:block;margin-top:7px;line-height:1.3}.avatar-upload-feedback{display:grid;gap:7px;margin-top:9px;padding:9px 10px;border:1px solid var(--line-soft, var(--line));border-radius:9px;background:var(--surface-soft, var(--panel2))}.avatar-upload-feedback[hidden]{display:none}.avatar-upload-progress{height:6px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--muted) 20%,transparent)}.avatar-upload-progress span{display:block;width:0;height:100%;border-radius:inherit;background:var(--primary);transition:width .18s ease}.avatar-upload-progress.indeterminate span{width:36%;animation:avatarProgress 1s ease-in-out infinite}@keyframes avatarProgress{0%{transform:translateX(-110%)}to{transform:translateX(310%)}}.avatar-upload-feedback-row{min-height:28px;display:flex;align-items:center;justify-content:space-between;gap:10px}.avatar-upload-feedback-row small{min-width:0;color:var(--text);line-height:1.3}.avatar-upload-feedback-row .btn{flex:none;min-height:28px}.avatar-dropzone.uploading .custom-avatar-preview{opacity:1}.avatar-fallback-row{display:grid;gap:8px;margin-top:16px}.avatar-fallback-row .editor-label{width:auto}.picker{display:flex;flex-wrap:wrap;gap:6px;flex:1}.pick{width:32px;height:32px;border-radius:8px;border:2px solid transparent;cursor:pointer;background:var(--panel2);color:var(--text);font-size:16px;display:flex;align-items:center;justify-content:center;transition:transform .1s,border-color .12s}.pick:hover{transform:scale(1.1)}.pick.sel{border-color:#fff;box-shadow:0 0 0 2px var(--primary)}.color-pick{border:2px solid rgba(255,255,255,.15)}.color-pick.sel{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.5)}.match-history{min-width:0;padding:18px}.profile-section-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:12px}.profile-section-head h2{margin:0;font-size:18px}.history-section-head{align-items:flex-start;gap:12px}.history-section-head>div:first-child{min-width:0}.history-section-head p{margin:4px 0 0;line-height:1.35}.history-head-meta{display:flex;align-items:center;gap:7px}.history-count{min-width:26px;min-height:26px;display:grid;place-items:center;padding:3px 7px;border-radius:999px;background:var(--surface-soft, var(--panel2));color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:360px;overflow-y:auto}.history-row{display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line);border-left-width:3px;border-radius:9px;padding:9px 10px}.history-row.result-win{border-left-color:var(--good)}.history-row.result-loss{border-left-color:var(--danger)}.history-row.result-draw{border-left-color:var(--warn)}.history-badge{font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0;min-width:44px;text-align:center}.history-badge.win{background:rgba(46,204,113,.16);color:var(--good)}.history-badge.loss{background:rgba(230,25,75,.15);color:var(--danger)}.history-badge.draw{background:rgba(232,161,58,.16);color:var(--warn)}.history-info{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.history-opp{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-meta{display:flex;flex-wrap:wrap;gap:4px 9px;font-size:10px;color:var(--muted)}.history-meta>:not(:first-child)::before{content:"·";margin-right:7px;opacity:.7}.history-avatar-stack{display:flex;align-items:center;padding-left:5px;flex:none}.history-avatar-stack .avatar{width:28px;height:28px;margin-left:-6px;border-width:2px}.history-avatar-more{width:28px;height:28px;margin-left:-6px;display:grid;place-items:center;border:2px solid var(--surface-solid, var(--panel));border-radius:50%;background:var(--surface-soft, var(--panel2));color:var(--muted);font-size:9px;font-weight:800}.history-actions{display:flex;gap:4px;flex-shrink:0}.history-actions .small{padding:4px 7px;font-size:11px}.history-empty{margin:0;font-size:12px;text-align:center;padding:24px 10px;border:1px dashed var(--line-soft, var(--line));border-radius:var(--radius);background:color-mix(in srgb,var(--surface-soft, var(--panel2)) 58%,transparent)}.history-empty.private::before{content:"◉";display:block;margin-bottom:8px;color:var(--muted);font-size:18px}.settings-modal{width:min(680px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto}.theme-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.language-options{grid-template-columns:repeat(2,minmax(0,1fr))}.theme-opt{display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer;background:var(--panel2);border:2px solid var(--line);border-radius:11px;color:var(--text);font-size:14px;transition:border-color .14s,background .14s,transform .08s}.theme-opt:hover{background:var(--hover);transform:translateY(-1px)}.theme-opt.sel{border-color:var(--primary);box-shadow:0 0 0 2px rgba(79,134,247,.25)}.theme-sw{width:26px;height:26px;border-radius:7px;flex-shrink:0;border:1px solid rgba(255,255,255,.25);box-shadow:inset 0 0 6px rgba(0,0,0,.3)}.lang-flag{display:inline-flex;align-items:center;justify-content:center;width:34px;height:26px;border:0;border-radius:0;background:0 0;box-shadow:none;font-size:22px;line-height:1}.theme-name{font-weight:600}@media (max-width:560px){.theme-options,.language-options{grid-template-columns:1fr}.settings-modal{width:calc(100vw - 20px)}.feedback-modal{width:calc(100vw - 20px);padding:16px}.feedback-form-meta{align-items:stretch;flex-direction:column;gap:5px}.feedback-modal .modal-actions{display:grid;grid-template-columns:1fr 1fr}.feedback-modal .modal-actions .btn{width:100%}}.player-li{cursor:pointer;transition:background .14s;align-items:center}.player-li:hover{background:var(--hover)}.player-li.bot{cursor:default}.player-li.bot:hover{background:var(--panel2)}.player-li-main{display:flex;align-items:center;gap:10px}.player-remove,.bot-remove{position:relative;background:0 0;border:1px solid var(--line);color:var(--muted);width:24px;height:24px;border-radius:6px;cursor:pointer;font-size:12px;line-height:1;transition:background .14s,color .14s,border-color .14s}.player-remove:hover,.bot-remove:hover{background:var(--danger);border-color:var(--danger);color:#fff}.player-remove.loading{color:transparent;pointer-events:none}.player-remove.loading::after{content:"";position:absolute;inset:6px;border:2px solid color-mix(in srgb,var(--muted) 38%,transparent);border-top-color:var(--danger);border-radius:50%;animation:spin .7s linear infinite}.add-bot-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 2px}.add-bot-label{font-size:13px;color:var(--muted)}.result-card{padding-top:28px}.result-avatar{display:flex;justify-content:center;margin-bottom:12px;animation:modalPop .35s ease both}.result-avatar .avatar.lg{animation:winnerGlow 1.6s ease-in-out infinite}@keyframes winnerGlow{0%,to{box-shadow:0 0 0 0 var(--av, #ffd34d)}50%{box-shadow:0 0 22px 4px color-mix(in srgb,var(--av, #ffd34d) 60%,transparent)}}.game-layout{position:relative;display:grid;grid-template-columns:1fr;height:100vh;height:100dvh}.board-wrap{position:relative;background:radial-gradient(1200px 700px at 50% 30%,#0d1626,#070a12);overflow:hidden}[data-theme=cream] .board-wrap{background:radial-gradient(1100px 700px at 50% 28%,#f4ead5,#d9c8a7 58%,#8d7a59 150%)}#game-screen,.game-layout,.board-wrap{overscroll-behavior:none}.board-wrap{touch-action:manipulation}#board{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#board{display:block;cursor:pointer}.zoom-controls{position:absolute;left:14px;bottom:14px;display:flex;flex-direction:column;gap:6px}.zoom-controls .btn{width:40px;height:40px;padding:0;font-size:18px;background:rgba(20,26,42,.82);backdrop-filter:blur(4px)}.board-toolbar{position:absolute;top:12px;right:12px;display:flex;gap:8px}.board-toolbar-actions{display:flex;gap:8px}.board-toolbar-toggle{display:none}.board-toolbar .ping-indicator{min-height:38px;align-self:stretch;background:rgba(20,26,42,.82);backdrop-filter:blur(4px)}.board-toolbar .icon{width:38px;height:38px;padding:0;font-size:17px;font-weight:700;background:rgba(20,26,42,.82);backdrop-filter:blur(4px);border-radius:10px}.map-view-controls{position:absolute;top:58px;right:12px;z-index:37;display:grid;grid-template-columns:1fr;gap:5px;width:132px;padding:6px;border-radius:12px;border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 84%,transparent);box-shadow:0 12px 32px rgba(0,0,0,.32);backdrop-filter:blur(8px)}.map-view-toggle{display:none}.map-view-options{display:grid;grid-template-columns:1fr;gap:5px;min-width:0}.map-view-btn{min-width:0;min-height:32px;padding:5px 8px;border-radius:8px;border:1px solid transparent;background:0 0;color:var(--game-ui-muted, var(--muted));cursor:pointer;display:grid;grid-template-columns:18px minmax(0,1fr);gap:7px;align-items:center;text-align:left;font:inherit;font-size:11px;font-weight:800;line-height:1.05}.map-view-btn .ui-icon,.map-view-glyph{width:16px;height:16px;filter:var(--game-ui-icon-filter, var(--icon-filter, none));opacity:.9}.map-view-glyph{display:inline-grid;place-items:center;filter:none;color:currentColor;font-size:14px}.map-view-btn span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-view-btn:hover{background:var(--hover);color:var(--game-ui-text, var(--text))}.map-view-btn.active{color:var(--game-ui-text, var(--text));background:color-mix(in srgb,var(--primary) 22%,var(--panel2));border-color:color-mix(in srgb,var(--primary) 58%,var(--line))}[data-theme=cream] .zoom-controls .btn,[data-theme=cream] .board-toolbar .icon,[data-theme=cream] .board-exit-top,[data-theme=cream] .map-view-controls{background:color-mix(in srgb,var(--panel) 88%,transparent);color:var(--text)}.board-exit-top{position:absolute;top:12px;left:12px;z-index:36;width:38px;height:38px;padding:0;font-size:18px;font-weight:800;background:rgba(20,26,42,.86);backdrop-filter:blur(4px);border-radius:10px}.board-exit-top:hover{background:rgba(230,25,75,.18);border-color:var(--danger);color:#ffb3c0}.spectator-badge{position:absolute;top:12px;left:60px;z-index:38;min-height:38px;max-width:min(280px,calc(50vw - 80px));display:none;align-items:center;gap:9px;padding:6px 11px;border-radius:10px;color:#e8f5ff;background:rgba(18,48,72,.92);border:1px solid rgba(123,224,255,.62);box-shadow:0 8px 24px rgba(0,0,0,.3);backdrop-filter:blur(7px);pointer-events:none}.spectator-badge .spectator-eye{width:24px;height:24px;display:grid;place-items:center;flex:none;border-radius:50%;color:#7be0ff;background:rgba(123,224,255,.12);font-size:14px}.spectator-badge>span:last-child{min-width:0;display:grid;gap:1px}.spectator-badge strong{color:inherit;font-size:11px;line-height:1;letter-spacing:.12em}.spectator-badge small{color:rgba(232,245,255,.72);font-size:10px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spectator-mode-note{margin:0 0 8px;padding:9px 10px;border:1px solid color-mix(in srgb,#7be0ff 48%,var(--line));border-radius:9px;color:var(--text);background:color-mix(in srgb,#24739a 14%,var(--panel2));font-size:12px;line-height:1.35}.command-stack{position:absolute;right:14px;bottom:14px;z-index:40;display:grid;gap:8px;width:220px}.vote-action-row{position:absolute;right:0;bottom:calc(100% + 8px);display:grid;grid-template-columns:repeat(3,52px);justify-content:end;gap:8px}.vote-action-btn{position:relative;width:52px;height:52px;min-width:0;padding:0;border-radius:10px;display:inline-grid;place-items:center;background:color-mix(in srgb,var(--panel) 84%,transparent);border-color:color-mix(in srgb,var(--line) 90%,#fff);color:#f8fafc;box-shadow:0 10px 24px rgba(0,0,0,.28)}.vote-action-btn .ui-icon{width:23px;height:23px}.vote-draw-btn .ui-icon{width:31px;height:31px;filter:none}.vote-action-btn:hover{background:color-mix(in srgb,var(--primary) 20%,var(--panel));border-color:var(--primary);color:#fff}.vote-action-btn.voted{border-color:var(--good);box-shadow:0 0 0 1px color-mix(in srgb,var(--good) 65%,transparent) inset,0 10px 24px rgba(0,0,0,.28)}.vote-count{position:absolute;top:-6px;right:-6px;min-width:24px;height:20px;padding:0 5px;border-radius:999px;display:none;place-items:center;background:var(--warn);color:#201508;border:1px solid rgba(255,255,255,.55);font-size:10px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;box-shadow:0 6px 14px rgba(0,0,0,.28)}.vote-count.voted{background:var(--good);color:#06140b}.command-list{display:none;grid-template-columns:1fr;gap:6px;align-items:stretch;justify-items:stretch;background:color-mix(in srgb,var(--panel) 82%,transparent);border:1px solid var(--line);border-radius:12px;padding:8px;backdrop-filter:blur(7px);box-shadow:0 10px 30px rgba(0,0,0,.35)}.command-list.has-actions{display:grid}.command-list .btn{width:100%}.command-list #capture-btn,.command-list #demolish-btn,.command-list #disband-btn{grid-column:1/-1}.command-list #exit-game{display:none!important}.resign-main{height:52px;padding:0;font-size:23px;font-weight:800;color:#f8fafc;background:color-mix(in srgb,var(--panel) 84%,transparent);border-color:color-mix(in srgb,var(--line) 90%,#fff)}.resign-main:hover{background:rgba(230,25,75,.18);border-color:var(--danger);color:#fff}.command-stack #end-turn{box-shadow:0 12px 28px rgba(0,0,0,.35)}.turn-hud-group{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:36;display:flex;align-items:stretch;justify-content:center;gap:8px;max-width:calc(100vw - 360px)}.turn-hud,.turn-clock-hud,.turn-queue-hud{border-radius:12px;background:color-mix(in srgb,var(--panel) 90%,transparent);border:1px solid var(--line);color:var(--text);backdrop-filter:blur(7px);box-shadow:0 8px 24px rgba(0,0,0,.28)}.turn-hud{min-width:220px;max-width:320px;padding:8px 12px;text-align:center}.turn-clock-hud{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 12px;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.turn-queue-hud{display:flex;align-items:center;justify-content:center;padding:8px 10px}.turn-hud .th-player{display:flex;align-items:center;justify-content:center;gap:7px;font-weight:800;min-width:0}.turn-hud .th-player span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.turn-hud .th-dot{width:10px;height:10px;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,.35)}.turn-clock-hud .th-active{color:var(--warn);font-weight:700}.turn-queue-hud .th-queue{display:inline-flex;align-items:center;gap:5px;min-width:0;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--panel2) 72%,transparent);border:1px solid color-mix(in srgb,var(--line) 78%,transparent)}.th-queue-dot{width:10px;height:10px;border-radius:50%;background:var(--q);box-shadow:0 0 0 1px rgba(0,0,0,.35);opacity:.62}.th-queue-dot.current{width:13px;height:13px;opacity:1;box-shadow:0 0 0 2px color-mix(in srgb,var(--warn) 75%,transparent),0 0 0 1px rgba(0,0,0,.45) inset}.board-overlay{position:absolute;top:74px;left:96px;font-size:12px;color:var(--muted);background:rgba(10,13,22,.72);padding:6px 11px;border-radius:8px;pointer-events:none;backdrop-filter:blur(4px)}[data-theme=cream] .board-overlay{background:color-mix(in srgb,var(--panel) 84%,transparent);color:var(--muted)}.premove-panel{position:absolute;left:50%;bottom:14px;z-index:56;width:min(720px,calc(100vw - 520px));min-width:320px;transform:translateX(-50%);padding:8px;border:1px solid color-mix(in srgb,var(--warn) 48%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--panel) 92%,transparent);color:var(--text);box-shadow:0 12px 34px rgba(0,0,0,.38);backdrop-filter:blur(10px)}.premove-panel-head{display:flex;align-items:center;gap:8px;min-height:28px;padding:0 2px 6px}.premove-panel-head>strong{font-size:12px}.premove-panel-head>span{color:var(--warn);font-size:11px;font-weight:800}.premove-panel-actions{display:flex;gap:5px;margin-left:auto}.premove-panel-actions button{min-height:28px;padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--muted);font:inherit;font-size:10px;cursor:pointer}.premove-panel-actions button:hover:not(:disabled){border-color:var(--warn);color:var(--text)}.premove-panel-actions button:disabled{opacity:.42;cursor:default}.premove-list{display:flex;align-items:stretch;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}.premove-chip{flex:0 0 auto;display:grid;grid-template-columns:24px minmax(106px,auto) minmax(62px,auto);align-items:center;min-height:42px;border:1px solid color-mix(in srgb,var(--warn) 46%,var(--line));border-radius:10px;overflow:hidden;background:color-mix(in srgb,var(--warn) 9%,var(--panel2))}.premove-number{display:grid;place-items:center;align-self:stretch;background:color-mix(in srgb,var(--warn) 72%,#d96f33);color:#fff;font-size:12px;font-weight:900}.premove-route,.premove-remove{height:100%;border:0;background:0 0;color:var(--text);cursor:pointer}.premove-route{display:grid;align-content:center;justify-items:start;padding:4px 7px;text-align:left}.premove-route b{max-width:110px;overflow:hidden;text-overflow:ellipsis;font-size:11px;white-space:nowrap}.premove-route small{color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}.premove-route:disabled{cursor:default}.premove-remove{min-width:62px;padding:0 8px;border-left:1px solid var(--line);font-size:10px;font-weight:800;color:var(--muted)}.premove-remove:hover{background:rgba(230,80,100,.14);color:var(--danger)}.premove-chip.invalid{border-color:color-mix(in srgb,var(--danger) 72%,var(--line));border-style:dashed;background:color-mix(in srgb,var(--danger) 12%,var(--panel2))}.premove-chip.invalid .premove-number{background:var(--danger)}.premove-chip.executing{border-color:color-mix(in srgb,var(--good) 72%,var(--line));border-style:double;background:color-mix(in srgb,var(--good) 13%,var(--panel2))}.premove-chip.executing .premove-number{background:var(--good);animation:premovePulse .85s ease-in-out infinite alternate}.premove-cancel-hint{padding:6px 2px 0;color:var(--muted);font-size:10px;line-height:1.25}.premove-choose{padding:6px 2px 0;color:var(--warn);font-size:11px;font-weight:700}.premove-finish{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:8px;margin-top:7px;padding:7px 9px;border:1px solid color-mix(in srgb,var(--good) 38%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--good) 8%,var(--panel2));cursor:pointer}.premove-finish input{width:18px;height:18px;margin:0;accent-color:var(--good)}.premove-finish span{display:grid;gap:1px;min-width:0}.premove-finish b{font-size:11px}.premove-finish small{color:var(--muted);font-size:9px;line-height:1.2}.premove-ending{margin-top:7px;padding:8px 10px;border-radius:9px;background:color-mix(in srgb,var(--good) 14%,var(--panel2));color:var(--good);font-size:11px;font-weight:800;text-align:center}@keyframes premovePulse{to{filter:brightness(1.28)}}.pause-overlay{position:absolute;inset:0;z-index:34;display:grid;place-items:center;pointer-events:none;opacity:0;transform:scale(.96);transition:opacity .18s ease,transform .18s ease;background:radial-gradient(circle at center,rgba(7,10,18,.16),rgba(7,10,18,.04) 34%,transparent 58%)}.pause-overlay.show{opacity:1;transform:none}.pause-glyph{width:clamp(118px,18vmin,220px);height:clamp(118px,18vmin,220px);display:flex;align-items:center;justify-content:center;gap:22%;filter:drop-shadow(0 18px 34px rgba(0,0,0,.46))}.pause-glyph span{width:24%;height:86%;border-radius:12px;background:color-mix(in srgb,var(--warn) 70%,white);box-shadow:0 0 0 1px rgba(255,255,255,.22) inset,0 0 34px rgba(255,193,7,.28);opacity:.78}[data-theme=cream] .pause-overlay{background:radial-gradient(circle at center,rgba(80,64,38,.12),rgba(80,64,38,.04) 34%,transparent 58%)}[data-theme=cream] .pause-glyph span{background:color-mix(in srgb,var(--warn) 76%,#fff4cf);box-shadow:0 0 0 1px rgba(80,64,38,.18) inset,0 0 30px rgba(150,104,25,.22)}.vote-prompt-overlay{position:absolute;top:66px;left:14px;z-index:58;display:none;width:min(340px,calc(100vw - 176px));pointer-events:none}.vote-prompt-overlay.show{display:block}.vote-prompt-card{display:grid;gap:10px;padding:12px;border-radius:11px;background:color-mix(in srgb,var(--panel) 94%,transparent);border:1px solid color-mix(in srgb,var(--warn) 46%,var(--line));color:var(--text);box-shadow:0 14px 34px rgba(0,0,0,.34);backdrop-filter:blur(10px);pointer-events:auto}.vote-prompt-head{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:start;gap:10px}.vote-prompt-copy{min-width:0;display:grid;gap:4px}.vote-prompt-kicker{color:var(--warn);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.vote-prompt-title{font-size:15px;font-weight:900;line-height:1.16}.vote-prompt-toggle{width:28px;height:28px;border-radius:8px;border:1px solid color-mix(in srgb,var(--line) 80%,transparent);background:color-mix(in srgb,var(--panel2) 72%,transparent);color:var(--text);cursor:pointer;font-weight:900;line-height:1}.vote-prompt-toggle:hover{background:color-mix(in srgb,var(--primary) 18%,var(--panel2));border-color:var(--primary)}.vote-prompt-list{display:grid;gap:7px}.vote-player-row{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 9px;border-radius:9px;background:color-mix(in srgb,var(--panel2) 76%,transparent);border:1px solid color-mix(in srgb,var(--line) 78%,transparent)}.vote-player-dot{width:10px;height:10px;border-radius:3px;background:var(--vote-color);box-shadow:0 0 0 1px rgba(0,0,0,.34)}.vote-player-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;font-size:13px}.vote-player-status{border-radius:999px;padding:3px 7px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.vote-player-status.yes{background:color-mix(in srgb,var(--good) 24%,transparent);color:var(--good)}.vote-player-status.no{background:color-mix(in srgb,var(--danger) 20%,transparent);color:var(--danger)}.vote-player-status.waiting{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}.vote-player-status.mine{background:color-mix(in srgb,var(--primary) 24%,transparent);color:var(--primary)}.vote-prompt-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.vote-prompt-card .btn{justify-self:stretch}.vote-prompt-no{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));color:var(--danger)}.vote-prompt-no:hover{background:color-mix(in srgb,var(--danger) 14%,var(--panel2))}.vote-prompt-overlay.collapsed{width:auto;max-width:min(310px,calc(100vw - 176px))}.vote-prompt-overlay.collapsed .vote-prompt-card{padding:8px 10px;gap:0}.vote-prompt-overlay.collapsed .vote-prompt-head{align-items:center}.vote-prompt-overlay.collapsed .vote-prompt-title,.vote-prompt-overlay.collapsed .vote-prompt-list,.vote-prompt-overlay.collapsed .vote-prompt-actions{display:none}.resource-hud,.supply-hud{position:absolute;top:12px;z-index:35;display:flex;align-items:center;gap:8px;min-height:38px;padding:7px 10px;border-radius:10px;border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 88%,transparent);color:var(--text);cursor:pointer;backdrop-filter:blur(6px);box-shadow:0 8px 24px rgba(0,0,0,.28);font:inherit}.resource-hud{left:58px;min-width:0;overflow:hidden}.supply-hud{left:340px;min-width:94px;justify-content:center;font-weight:900;font-variant-numeric:tabular-nums}.supply-hud.over{border-color:color-mix(in srgb,var(--warn) 62%,var(--line));color:var(--warn)}.resource-hud:hover,.supply-hud:hover{background:color-mix(in srgb,var(--panel2) 90%,transparent);border-color:var(--primary-d)}.rh-name{flex:0 1 120px;min-width:0;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.rh-item{display:inline-flex;align-items:baseline;gap:4px;font-weight:800;font-variant-numeric:tabular-nums}.rh-item em{color:var(--muted);font-style:normal;font-size:11px;font-weight:600}.rh-item .rh-planned{color:var(--good);font-size:11px;font-weight:900}.rh-item.mats{color:#d2b56e}.resource-popover,.supply-popover{position:absolute;top:58px;left:58px;z-index:45;width:min(330px,calc(100vw - 70px));background:color-mix(in srgb,var(--panel) 96%,transparent);border:1px solid var(--line);border-radius:12px;max-height:min(70vh,520px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:12px;box-shadow:0 18px 48px rgba(0,0,0,.42);backdrop-filter:blur(8px)}.supply-popover{left:250px;width:min(330px,calc(100vw - 262px))}.rp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.rp-head button{width:24px;height:24px;border-radius:7px;border:1px solid var(--line);background:0 0;color:var(--muted);cursor:pointer}.rp-total{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.rp-total span{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:7px;font-weight:800}.rp-total em{display:block;color:var(--muted);font-style:normal;font-size:11px;margin-top:2px}.rp-grid{display:grid;grid-template-columns:1fr auto;gap:6px 12px;font-size:12px}.rp-grid span{color:var(--muted)}.rp-grid b{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}.rp-cities{margin-top:10px;display:grid;gap:6px}.rp-cities>strong{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.rp-city{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:7px}.rp-city span:first-child{display:flex;flex-direction:column;gap:2px}.rp-city em{color:var(--muted);font-style:normal;font-size:11px}.rp-city-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.city-popover{position:absolute;z-index:44;min-width:220px;max-width:320px;background:color-mix(in srgb,var(--panel) 96%,transparent);border:1px solid var(--line);border-radius:12px;padding:10px;box-shadow:0 14px 38px rgba(0,0,0,.4);backdrop-filter:blur(8px);pointer-events:auto}.capture-overlays{position:absolute;inset:0;z-index:49;overflow:hidden;pointer-events:none}.capture-city-float{position:absolute;transform:translate(-50%,-100%);min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--warn) 72%,#fff);border-radius:10px;cursor:pointer;pointer-events:auto;background:color-mix(in srgb,var(--warn) 86%,#1a1305);color:#181006;box-shadow:0 8px 24px rgba(0,0,0,.42),0 0 0 2px rgba(255,207,64,.14);font:inherit;font-size:12px;font-weight:900;white-space:nowrap;animation:captureCityReady 1.4s ease-in-out infinite}.capture-city-float::after{content:"";position:absolute;left:50%;top:100%;width:10px;height:10px;transform:translate(-50%,-55%) rotate(45deg);background:inherit;border-right:1px solid color-mix(in srgb,var(--warn) 72%,#fff);border-bottom:1px solid color-mix(in srgb,var(--warn) 72%,#fff)}.capture-city-float:hover{filter:brightness(1.08);transform:translate(-50%,-100%) translateY(-2px)}.capture-city-float:focus-visible{outline:3px solid color-mix(in srgb,var(--warn) 55%,white);outline-offset:2px}.capture-city-float:disabled{opacity:.62;cursor:wait;animation:none}@keyframes captureCityReady{0%,to{box-shadow:0 8px 24px rgba(0,0,0,.42),0 0 0 2px rgba(255,207,64,.12)}50%{box-shadow:0 9px 28px rgba(0,0,0,.46),0 0 0 5px rgba(255,207,64,.24)}}.city-popover .cp-head{display:flex;justify-content:space-between;align-items:start;gap:8px;margin-bottom:7px}.city-popover .cp-owner{color:var(--muted);font-size:11px}.city-popover .cp-grid{display:grid;grid-template-columns:1fr auto;gap:5px 10px;font-size:12px}.city-popover .cp-grid span{color:var(--muted)}.city-popover .cp-actions{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap}.city-popover .cp-status{margin-top:7px;color:var(--warn);font-size:12px;font-weight:700}.cp-rename{display:grid;grid-template-columns:1fr auto auto;gap:5px;margin-top:8px}.cp-rename input{min-width:0;padding:6px 8px;border-radius:7px;border:1px solid var(--line);background:var(--panel2);color:var(--text);font:inherit;font-size:12px}.building-popover,.wall-popover{position:absolute;z-index:44;min-width:220px;max-width:320px;background:color-mix(in srgb,var(--panel) 96%,transparent);border:1px solid var(--line);border-radius:12px;padding:10px;box-shadow:0 14px 38px rgba(0,0,0,.4);backdrop-filter:blur(8px);pointer-events:auto}.building-popover .bp-head{display:flex;justify-content:space-between;align-items:start;gap:8px;margin-bottom:7px}.building-popover .bp-owner{color:var(--muted);font-size:11px}.building-popover .bp-grid{display:grid;grid-template-columns:1fr auto;gap:5px 10px;font-size:12px}.building-popover .bp-grid span{color:var(--muted)}.building-popover .bp-grid b{color:var(--text);text-align:right}.building-popover .bp-actions{display:flex;justify-content:flex-end;margin-top:8px}.wall-popover .wp-head{display:flex;justify-content:space-between;align-items:start;gap:8px;margin-bottom:7px}.wall-popover .wp-owner{color:var(--muted);font-size:11px}.wall-popover .wp-grid{display:grid;grid-template-columns:1fr auto;gap:5px 10px;font-size:12px}.wall-popover .wp-grid span{color:var(--muted)}.wall-popover .wp-grid b{color:var(--text);text-align:right}.wall-popover .wp-grid b.damaged{color:var(--warn)}.wall-popover .wp-note{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.35}.wall-popover .wp-note.warn{color:var(--warn)}.wall-popover .wp-actions{display:grid;grid-template-columns:1fr;gap:5px;margin-top:9px}.wall-popover .wp-actions small{color:var(--muted);text-align:center}.feature-popover{position:absolute;z-index:44;min-width:220px;max-width:300px;background:color-mix(in srgb,var(--panel) 96%,transparent);border:1px solid var(--line);border-radius:12px;padding:10px;box-shadow:0 14px 38px rgba(0,0,0,.4);backdrop-filter:blur(8px);pointer-events:auto}.feature-popover .fp-head{display:flex;justify-content:space-between;align-items:start;gap:8px;margin-bottom:7px}.feature-popover .fp-grid{display:grid;grid-template-columns:1fr auto;gap:5px 10px;font-size:12px}.feature-popover .fp-grid span{color:var(--muted)}.feature-popover .fp-grid b{color:var(--text);text-align:right}.side-panel{background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 95%,#111827),var(--bg2)),repeating-linear-gradient(135deg,rgba(255,255,255,.035)0 1px,transparent 1px 10px);border-left:1px solid var(--line);padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.strategy-panel{position:absolute;left:12px;top:64px;bottom:74px;z-index:38;pointer-events:none;display:grid;grid-template-columns:72px minmax(260px,360px);gap:10px;align-items:start}.strategy-status{position:fixed;left:96px;bottom:14px;z-index:42;display:grid;gap:6px;width:min(360px,calc(100vw - 330px));pointer-events:auto}.strategy-status .turn-banner{display:none}.turn-banner{padding:11px 12px;border-radius:8px;text-align:center;font-weight:800;font-size:15px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel2) 92%,transparent),color-mix(in srgb,var(--panel) 90%,transparent));border:2px solid var(--line);transition:border-color .25s,background .25s}@keyframes bannerPulse{0%{transform:scale(1)}40%{transform:scale(1.05)}to{transform:scale(1)}}.turn-banner.pulse{animation:bannerPulse .5s ease;box-shadow:0 0 22px rgba(46,204,113,.35)}.overtime-warn{padding:8px 12px;border-radius:9px;text-align:center;font-size:13px;font-weight:600;background:rgba(230,25,75,.16);border:1px solid rgba(230,25,75,.5);color:#ff9cae;animation:otPulse 1s ease-in-out infinite}@keyframes otPulse{0%,to{opacity:.8}50%{opacity:1}}.field-orders{background:color-mix(in srgb,var(--panel) 70%,transparent);border:1px solid var(--line);border-radius:8px;padding:8px;min-height:38px;backdrop-filter:blur(7px)}.field-orders.idle{display:none}.field-orders .hint{margin:0;font-size:12px;line-height:1.3;color:var(--muted)}.strategy-dock{pointer-events:auto;display:grid;grid-template-columns:1fr;gap:7px}.dock-btn{width:72px;min-width:0;min-height:62px;border-radius:10px;border:1px solid var(--line);background:color-mix(in srgb,var(--panel) 82%,transparent);color:var(--muted);cursor:pointer;display:grid;place-items:center;gap:2px;padding:6px 4px;font:inherit;transition:transform .08s,background .16s,border-color .16s,color .16s}.dock-icon{width:21px;height:21px;display:block;color:currentColor;filter:var(--icon-filter, none);opacity:.92}.chess-piece-icon{filter:var(--piece-icon-filter, var(--icon-filter, none))}.chess-piece-glyph{display:grid;place-items:center;filter:none;font:900 23px/1"Segoe UI Symbol","Noto Sans Symbols 2",serif;text-shadow:0 1px 2px rgba(0,0,0,.24)}.dock-btn b{min-width:0;max-width:100%;overflow:visible;white-space:normal;text-align:center;line-height:1.05;font-size:10px;font-weight:800}.dock-btn:hover{transform:translateY(-1px);background:var(--hover);color:var(--text)}.dock-btn.active,.dock-btn.pinned{border-color:color-mix(in srgb,var(--primary) 62%,var(--line));color:var(--text);background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 24%,var(--panel2)),color-mix(in srgb,var(--panel2) 86%,transparent))}.dock-btn.pinned{box-shadow:inset 0-3px 0 color-mix(in srgb,var(--warn) 75%,transparent)}.strategy-deck{pointer-events:none;display:grid;gap:10px;min-height:0;max-height:calc(100vh - 92px);overflow-y:auto;padding-right:4px}.strategy-card{position:relative;display:none;flex-direction:column;min-width:240px;min-height:120px;background:color-mix(in srgb,var(--panel2) 66%,transparent);border:1px solid var(--line);border-radius:10px;padding:9px;pointer-events:auto;backdrop-filter:blur(10px);box-shadow:0 16px 42px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.035);overflow:hidden}.strategy-card.floating{position:fixed;width:min(360px,calc(100vw - 16px));max-height:calc(100vh - 16px);z-index:70}.strategy-card.dragging{user-select:none;cursor:grabbing;transition:none}.strategy-card.resizing{user-select:none;transition:none}.strategy-card.active,.strategy-card.pinned{display:flex;animation:cardIn .16s ease both}.strategy-card.pinned{border-color:color-mix(in srgb,var(--warn) 42%,var(--line))}.strategy-card.draft-hidden,.dock-btn.draft-hidden{display:none!important}.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;cursor:grab}.card-head:active{cursor:grabbing}.card-head h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.card-actions{display:flex;align-items:center;gap:5px}#game-screen :is(.strategy-deck,.card-content,.game-log,.premove-list,.premove-panel,.resource-popover,.supply-popover,.replay-players,.replay-diplomacy,.replay-moves,.analysis-panel,.modal-backdrop,.modal){scrollbar-width:none;-ms-overflow-style:none;scrollbar-gutter:auto}#game-screen :is(.strategy-deck,.card-content,.game-log,.premove-list,.premove-panel,.resource-popover,.supply-popover,.replay-players,.replay-diplomacy,.replay-moves,.analysis-panel,.modal-backdrop,.modal)::-webkit-scrollbar{width:0;height:0;display:none}.card-pin,.card-close,.window-toggle{width:24px;height:24px;border-radius:7px;border:1px solid var(--line);background:0 0;color:var(--muted);cursor:pointer;font-weight:700}.card-pin{font-size:13px;line-height:1}.card-pin:hover,.card-close:hover,.window-toggle:hover{background:var(--hover);color:var(--text)}.strategy-card.pinned .card-pin{background:color-mix(in srgb,var(--warn) 24%,transparent);border-color:color-mix(in srgb,var(--warn) 50%,var(--line));color:var(--warn)}.card-content{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:2px;-webkit-overflow-scrolling:touch;touch-action:pan-y}.card-resize{position:absolute;right:5px;bottom:5px;width:16px;height:16px;cursor:nwse-resize;opacity:.62}.card-resize::before{content:"";position:absolute;right:2px;bottom:2px;width:10px;height:10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted)}.card-resize:hover{opacity:1}.strategy-window.collapsed .window-content{display:none!important}.strategy-window.collapsed{padding-bottom:8px}.strategy-window.collapsed .window-head{margin-bottom:0}.player-row{position:relative;display:flex;align-items:center;gap:8px;padding:9px 10px 9px 14px;border-radius:10px;background:var(--panel2);margin-bottom:6px;font-size:13px;transition:outline .2s,transform .12s,background .15s;border:1px solid transparent;cursor:pointer}.player-row::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:4px;border-radius:0 4px 4px 0;background:var(--player-color, var(--primary));box-shadow:0 0 0 1px rgba(0,0,0,.22)}.player-row:hover{background:var(--hover)}.player-row.profile-link{cursor:pointer}.player-row.profile-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.player-row.current{border-color:color-mix(in srgb,var(--player-color, var(--primary)) 55%,var(--line));box-shadow:0 0 0 1px color-mix(in srgb,var(--player-color, var(--primary)) 32%,transparent)}.player-row.me{background:var(--accent-soft)}.player-row.dead{opacity:.4;filter:grayscale(.7)}.pname{display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-dot{width:10px;height:10px;border-radius:3px;flex:none;background:var(--player-color, var(--primary));box-shadow:0 0 0 1px rgba(0,0,0,.35)}.diplomacy-panel{display:grid;gap:10px}.diplomacy-panel{overflow-anchor:none}.dip-overview{display:grid;gap:7px;padding:9px;border:1px solid var(--line-soft);border-radius:9px;background:var(--surface-soft)}.dip-overview-head{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--game-ui-text, var(--text))}.dip-overview-head strong{font-size:12px;text-transform:uppercase;letter-spacing:.05em}.dip-overview-head span{min-width:24px;height:22px;padding:0 7px;border-radius:999px;display:inline-grid;place-items:center;background:var(--surface-solid);border:1px solid var(--line-soft);font-size:12px;font-weight:900}.dip-deal-list{display:grid;gap:6px}.dip-section{display:grid;gap:7px}.dip-section h4{margin:1px 2px 0;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--game-ui-muted, var(--muted))}#dip-personal-list{display:grid;gap:9px}.diplomacy-row{display:grid;grid-template-columns:1fr;gap:10px;align-items:center;padding:10px;background:var(--surface-solid);border:1px solid var(--line-soft);border-left:4px solid var(--danger);border-radius:9px}.diplomacy-row.pact{border-left-color:var(--good)}.diplomacy-row.truce,.diplomacy-row.pending{border-left-color:var(--warn)}.dip-row-head{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;min-width:0}.dip-player{display:flex;align-items:flex-start;gap:8px;min-width:0}.dip-player>span:last-child{min-width:0}.dip-player strong{display:block;color:var(--game-ui-text, var(--text));font-size:13px;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dip-player em{display:block;margin-top:3px;color:var(--game-ui-muted, var(--muted));font-style:normal;font-size:10.5px;line-height:1.25}.dip-global-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;padding:7px 8px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-solid);font-size:12px}.dip-global-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--game-ui-text, var(--text))}.dip-global-row b{font-size:11px;font-weight:800;color:var(--game-ui-muted, var(--muted));white-space:normal;text-align:right}.dip-global-row em{grid-column:1/-1;font-style:normal;color:var(--game-ui-muted, var(--muted));font-size:11px}.dip-state{flex:0 0 auto;max-width:52%;font-size:11.5px;font-weight:900;padding:4px 7px;border-radius:999px;border:1px solid var(--line);color:var(--game-ui-muted, var(--muted));line-height:1.2;background:var(--surface-soft);text-align:right}.dip-state.war{color:#9f3029;border-color:color-mix(in srgb,var(--danger) 58%,var(--line));background:color-mix(in srgb,var(--danger) 11%,var(--surface-solid))}.dip-state.pact{color:var(--good);border-color:color-mix(in srgb,var(--good) 58%,var(--line));background:color-mix(in srgb,var(--good) 13%,var(--surface-solid))}.dip-state.pending,.dip-state.truce{color:#72501e;border-color:color-mix(in srgb,var(--warn) 58%,var(--line));background:color-mix(in srgb,var(--warn) 13%,var(--surface-solid))}.dip-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:stretch}.dip-actions .trade-summary,.dip-actions .pact-offer-summary{grid-column:1/-1}.dip-action-btn,.dip-panel-btn{width:100%;min-width:0;min-height:32px;padding:6px 7px;font-weight:850}.dip-panel-btn.active{background:color-mix(in srgb,var(--primary) 22%,var(--surface-solid));border-color:color-mix(in srgb,var(--primary) 62%,var(--line-soft));color:var(--game-ui-text, var(--text))}.pact-offer-btn{justify-content:center;background:color-mix(in srgb,var(--primary) 16%,var(--surface-solid));border-color:color-mix(in srgb,var(--primary) 48%,var(--line-soft));color:var(--game-ui-text, var(--text))}.dip-compose{display:grid;gap:8px;padding:9px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-soft)}.dip-compose-title{color:var(--game-ui-text, var(--text));font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.dip-compose-grid{display:grid;gap:7px}.gift-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end}.gift-controls label,.trade-side label{display:grid;gap:3px;min-width:0;font-size:10px;color:var(--game-ui-muted, var(--muted))}.gift-controls input,.trade-side input,.trade-side select{width:100%;min-width:0;height:30px;padding:3px 7px;border-radius:7px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:12px}.gift-controls .btn,.trade-controls .btn{min-width:0;width:100%}.pact-contract-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.pact-contract-duration{display:grid;gap:3px;color:var(--game-ui-muted, var(--muted));font-size:10px}.pact-contract-duration select,.pact-tribute input{width:100%;min-width:0;height:32px;padding:4px 7px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--text);font-size:12px}.pact-contract-toggle{min-width:0;min-height:42px;display:flex;align-items:center;gap:7px;padding:7px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-solid);color:var(--game-ui-text, var(--text));font-size:10px;line-height:1.25;cursor:pointer}.pact-contract-toggle input{width:17px;height:17px;flex:none;accent-color:var(--good)}.pact-tribute{grid-column:1/-1;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:8px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-solid)}.pact-tribute legend{padding:0 5px;color:var(--game-ui-muted, var(--muted));font-size:10px;font-weight:800}.pact-tribute label{display:grid;gap:3px;min-width:0;color:var(--game-ui-muted, var(--muted));font-size:10px}.pact-renew,.pact-contract-send{grid-column:1/-1}.pact-contract-send{min-height:38px}.pact-offer-summary{padding:7px 8px;border:1px solid color-mix(in srgb,var(--primary) 34%,var(--line-soft));border-radius:8px;background:color-mix(in srgb,var(--primary) 8%,var(--surface-soft));color:var(--game-ui-muted, var(--muted));font-size:10px;line-height:1.35}.trade-side{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:end;padding:7px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-solid)}.trade-side>b{grid-column:1/-1;color:var(--game-ui-muted, var(--muted));font-size:11px;text-transform:uppercase;letter-spacing:.04em}.trade-summary{padding:7px 8px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-soft);color:var(--game-ui-text, var(--text));font-size:11px;font-weight:700}.trade-summary small{display:block;margin-top:4px;color:var(--warn);font-size:10px}.trade-escrow-note{margin:0;padding:7px 8px;border:1px solid color-mix(in srgb,var(--warn) 36%,var(--line-soft));border-radius:8px;background:color-mix(in srgb,var(--warn) 8%,var(--surface-solid));color:var(--game-ui-muted, var(--muted));font-size:10px;line-height:1.35}.replay-diplomacy{flex:0 1 72px;min-height:0;max-height:72px;overflow:auto;display:grid;gap:5px;padding:8px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft)}.replay-diplomacy.empty{display:none!important}.replay-dip-head{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text)}.replay-dip-head strong{font-size:11px;text-transform:uppercase;letter-spacing:.05em}.replay-dip-head span{min-width:22px;height:20px;display:inline-grid;place-items:center;border-radius:999px;border:1px solid var(--line-soft);background:var(--surface-solid);font-size:11px;font-weight:900}.replay-dip-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;padding:6px 7px;border:1px solid var(--line-soft);border-radius:7px;background:var(--surface-solid);font-size:11px}.replay-dip-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-dip-row b{color:var(--muted);font-size:10px}@media (max-width:520px){.dip-row-head{flex-direction:column}.dip-state{max-width:none;text-align:left}.dip-actions,.gift-grid,.trade-side{grid-template-columns:1fr}.gift-controls .btn{grid-column:1/-1}.pact-contract-grid,.pact-tribute{grid-template-columns:1fr}}.dip-log{font-size:11px;line-height:1.35;padding:2px 4px}.stats-panel{display:grid;gap:10px}.stats-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.stats-summary>div{min-width:0;padding:8px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-soft)}.stats-summary span{display:block;color:var(--game-ui-muted, var(--muted));font-size:10px;text-transform:uppercase;letter-spacing:.04em}.stats-summary b{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--game-ui-text, var(--text))}.stats-rank-list,.stats-detail-list{display:grid;gap:6px}.stats-rank-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 8px;border-radius:8px;border:1px solid var(--line-soft);border-left:4px solid var(--player-color);background:var(--surface-solid)}.stats-rank-row.dead{opacity:.55}.stats-rank-row b{color:var(--game-ui-muted, var(--muted))}.stats-rank-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.stats-rank-row em{font-style:normal;font-weight:900;font-variant-numeric:tabular-nums}.stats-chart{display:grid;gap:5px;padding:8px;border:1px solid var(--line-soft);border-radius:8px;background:var(--surface-soft)}.stats-chart>strong{color:var(--game-ui-muted, var(--muted));font-size:10px;text-transform:uppercase;letter-spacing:.05em}.stats-chart-rows{display:contents}.stats-bar-row{display:grid;grid-template-columns:minmax(64px,.9fr) minmax(70px,1.4fr) 34px;align-items:center;gap:7px;font-size:11px}.stats-bar-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-bar-row i{height:8px;border-radius:999px;background:color-mix(in srgb,var(--panel) 76%,transparent);overflow:hidden;border:1px solid color-mix(in srgb,var(--line-soft) 70%,transparent)}.stats-bar-row u{display:block;width:var(--bar);height:100%;border-radius:inherit;background:var(--player-color)}.stats-bar-row b{text-align:right;font-variant-numeric:tabular-nums}.stats-detail-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:7px;padding:7px 8px;border-radius:8px;border:1px solid var(--line-soft);border-left:4px solid var(--player-color);background:var(--surface-solid);font-size:11px}.stats-detail-row strong,.stats-detail-row small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-detail-row small{color:var(--game-ui-muted, var(--muted));margin-top:2px}.stats-detail-row span{white-space:nowrap;font-variant-numeric:tabular-nums}.advisor-panel{display:grid;gap:7px}.advisor-toolbar{display:flex;justify-content:flex-end}.advice-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px}.advice-row.best{border-color:color-mix(in srgb,var(--good) 54%,var(--line))}.advice-main{display:grid;gap:3px;min-width:0}.advice-main strong{font-size:12px}.advice-main span{color:var(--muted);font-size:11px;line-height:1.3}.advice-main em{color:var(--warn);font-style:normal;font-size:11px;font-variant-numeric:tabular-nums}.economy-panel{display:grid;gap:7px}.eco-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;background:color-mix(in srgb,var(--panel2) 75%,transparent);border:1px solid var(--line);border-radius:8px;padding:8px;font-size:12px}.eco-summary span{display:flex;justify-content:space-between;gap:4px}.eco-summary em{color:var(--muted);font-style:normal}.eco-breakdown{display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;padding:7px;background:color-mix(in srgb,var(--panel) 65%,transparent);font-size:11px;color:var(--muted)}.eco-breakdown span{display:flex;justify-content:space-between;gap:8px}.eco-breakdown b{color:var(--text);font-weight:600;white-space:nowrap}.eco-city,.eco-player{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:7px;font-size:12px}.eco-city strong{display:block;margin-bottom:2px}.eco-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.btn.disabled{opacity:.42;pointer-events:none}.turn-dot{width:7px;height:7px;border-radius:50%;background:var(--good);flex:none;box-shadow:0 0 0 0 rgba(46,204,113,.6);animation:dotPulse 1.4s infinite}@keyframes dotPulse{0%{box-shadow:0 0 0 0 rgba(46,204,113,.55)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.swatch{width:14px;height:14px;border-radius:4px;flex:none;box-shadow:0 0 0 1px rgba(0,0,0,.4)}.player-row .stats{margin-left:auto;text-align:right;font-variant-numeric:tabular-nums}.player-row .gold{transition:color .2s}.player-row .gold.flash{animation:goldFlash .7s ease}@keyframes goldFlash{0%{color:#ffe07a;transform:scale(1.18)}to{color:inherit;transform:scale(1)}}.timer{font-weight:700;transition:color .2s}.timer.low{color:var(--warn)}.timer.low::before{content:"! ";font-weight:900}.timer.crit{color:var(--danger);animation:blink 1s steps(2) infinite}.timer.crit::before{content:"!! ";font-weight:900}@keyframes blink{50%{opacity:.35}}.build-tabs{display:flex;gap:8px;margin-bottom:8px}.chip{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:9px;padding:8px 10px;cursor:pointer;font-size:14px;transition:background .14s,transform .06s,border-color .14s}.chip:hover{background:var(--hover)}.chip:active{transform:translateY(1px)}.chip.active{background:var(--primary);border-color:var(--primary-d);color:#fff;box-shadow:0 0 14px rgba(79,134,247,.45)}.chip.disabled{opacity:.56;cursor:not-allowed;background-image:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--muted) 10%,transparent) 6px 8px)}.chip.disabled:hover{background:var(--panel2)}.piece-build{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.piece-build .chip{position:relative;display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 4px}.piece-build .sym{font-size:22px;line-height:1}.piece-build .pl{font-size:12px}.piece-build .cost{font-size:10px;color:var(--muted)}.piece-build .key{position:absolute;top:3px;left:5px;font-size:9px;color:var(--muted);opacity:.7}.chip.active .cost,.chip.active .key{color:#dbe6ff}.sub-h{margin:12px 0 6px!important;opacity:.85}#structure-build{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-bottom:0}.struct-chip{display:flex;align-items:center;gap:6px;justify-content:flex-start;padding:7px 9px}.struct-chip .bicon{font-size:16px}.struct-chip .pl{flex:1;font-size:13px;display:flex;flex-direction:column;align-items:flex-start;gap:1px}.struct-chip .pl small{color:var(--muted);font-size:11px;line-height:1.15}.struct-chip .cost{font-size:11px;color:var(--muted);white-space:nowrap}.struct-chip.active .cost{color:#dbe6ff}.mass-build-controls{position:relative;display:grid;gap:8px;margin-top:10px;padding:11px;overflow:hidden;border:1px solid color-mix(in srgb,var(--primary) 22%,var(--line));border-radius:14px;background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 8%,transparent),transparent 48%),var(--game-card-soft, var(--surface-soft))}.mass-build-controls::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--primary),color-mix(in srgb,var(--good) 72%,var(--primary)));opacity:.78}.mass-build-head{display:flex;justify-content:space-between;align-items:center;gap:10px;min-width:0}.mass-build-heading{min-width:0;display:grid;gap:1px}.mass-build-heading small{color:var(--primary);font-size:9px;font-weight:900;letter-spacing:.12em;line-height:1;text-transform:uppercase}.mass-build-heading strong{color:var(--game-ui-text, var(--text));font-size:14px;line-height:1.2}.mass-build-mode{flex:none;max-width:130px;padding:4px 7px;overflow:hidden;border:1px solid color-mix(in srgb,var(--good) 36%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--good) 10%,transparent);color:var(--good);font-size:9px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.mass-build-controls[data-mode=queue] .mass-build-mode{border-color:color-mix(in srgb,var(--warn) 42%,var(--line));background:color-mix(in srgb,var(--warn) 10%,transparent);color:var(--warn)}.mass-build-note{min-height:27px;margin:-3px 0 0;color:var(--game-ui-muted, var(--muted));font-size:10px;line-height:1.35}.mass-build-config{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:end;gap:9px;padding:8px;border:1px solid color-mix(in srgb,var(--line) 76%,transparent);border-radius:10px;background:color-mix(in srgb,var(--game-card-bg, var(--panel)) 64%,transparent)}.mass-build-count-control{display:grid;gap:5px;color:var(--game-ui-muted, var(--muted));font-size:10px;font-weight:800}.mass-build-stepper{display:grid;grid-template-columns:30px minmax(40px,1fr) 30px;height:34px;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--game-card-bg, var(--surface-solid))}.mass-build-stepper button{min-width:0;padding:0;border:0;background:0 0;color:var(--game-ui-muted, var(--muted));cursor:pointer;font:inherit;font-size:16px;font-weight:900}.mass-build-stepper button:hover:not(:disabled){background:color-mix(in srgb,var(--primary) 16%,transparent);color:var(--game-ui-text, var(--text))}.mass-build-stepper input{width:100%;min-width:0;padding:0 3px;border:0;border-inline:1px solid var(--line);outline:0;background:0 0;color:var(--game-ui-text, var(--text));font:inherit;font-size:12px;font-weight:900;text-align:center;appearance:textfield}.mass-build-stepper input::-webkit-inner-spin-button,.mass-build-stepper input::-webkit-outer-spin-button{margin:0;appearance:none}.mass-build-forest{min-width:0;min-height:34px;display:flex;align-items:center;gap:8px;color:var(--game-ui-muted, var(--muted));font-size:10px;line-height:1.25;cursor:pointer}.mass-build-switch{position:relative;width:36px;height:20px;flex:none}.mass-build-switch input{position:absolute;inset:0;z-index:1;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.mass-build-switch>span{position:absolute;inset:0;border:1px solid var(--line);border-radius:999px;background:var(--game-card-bg, var(--panel));transition:.16s ease}.mass-build-switch>span::after{content:"";position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:var(--game-ui-muted, var(--muted));transition:.16s ease}.mass-build-switch input:checked+span{border-color:color-mix(in srgb,var(--good) 58%,var(--line));background:color-mix(in srgb,var(--good) 22%,var(--game-card-bg, var(--panel)))}.mass-build-switch input:checked+span::after{left:19px;background:var(--good)}.mass-build-switch input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}.mass-build-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.mass-build-action{position:relative;width:100%;min-width:0;min-height:52px;display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:4px;padding:6px;border:1px solid color-mix(in srgb,var(--line) 88%,transparent);border-radius:11px;background:color-mix(in srgb,var(--game-card-bg, var(--panel)) 76%,transparent);color:var(--game-ui-text, var(--text));cursor:pointer;text-align:left;transition:transform .12s ease,border-color .14s ease,background .14s ease}.mass-build-action:hover:not(:disabled){transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 62%,var(--line));background:color-mix(in srgb,var(--primary) 10%,var(--game-card-bg, var(--panel)))}.mass-build-action.selected{border-color:color-mix(in srgb,var(--good) 64%,var(--line));background:color-mix(in srgb,var(--good) 12%,var(--game-card-bg, var(--panel)));box-shadow:0 0 0 1px color-mix(in srgb,var(--good) 22%,transparent) inset}.mass-build-action:focus-visible,.mass-build-confirm:focus-visible,.mass-build-stepper button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.mass-build-action:active:not(:disabled){transform:translateY(0)}.mass-build-action:disabled{opacity:.42;cursor:not-allowed}.mass-build-action-icon{width:26px;height:32px;display:grid;place-items:center;border-radius:8px;background:color-mix(in srgb,var(--primary) 10%,transparent)}.mass-build-action-icon img{width:22px;height:22px;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.2))}.mass-build-action-copy{min-width:0;display:grid;gap:2px}.mass-build-action-copy strong{overflow:hidden;font-size:10px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.mass-build-action-copy small{display:block;overflow:hidden;color:var(--game-ui-muted, var(--muted));font-size:8px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.mass-build-action-arrow{display:none}.mass-build-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:6px}.mass-build-feedback{min-width:0;height:44px;min-height:44px;display:flex;align-items:center;overflow:hidden;padding:6px 8px;border-radius:9px;background:color-mix(in srgb,var(--primary) 7%,transparent);color:var(--game-ui-muted, var(--muted));font-size:10px;line-height:1.3}.mass-build-confirm{min-width:108px;min-height:34px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--good) 64%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--good) 22%,var(--game-card-bg, var(--panel)));color:var(--game-ui-text, var(--text));cursor:pointer;font:inherit;font-size:10px;font-weight:900}.mass-build-controls[data-mode=queue] .mass-build-confirm{border-color:color-mix(in srgb,var(--warn) 60%,var(--line));background:color-mix(in srgb,var(--warn) 18%,var(--game-card-bg, var(--panel)))}.mass-build-confirm:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-1px)}.mass-build-confirm:disabled{opacity:.42;cursor:not-allowed;transform:none}.mass-build-controls.is-busy .mass-build-feedback{color:var(--good)}.mass-build-controls.is-busy .mass-build-mode::before{content:"";width:7px;height:7px;margin-right:5px;display:inline-block;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.mass-build-stepper button:disabled,.mass-build-stepper input:disabled,.mass-build-forest:has(input:disabled){opacity:.48;cursor:not-allowed}@media (max-width:420px){.mass-build-footer{grid-template-columns:1fr}.mass-build-confirm{width:100%}}@media (min-width:821px) and (hover:hover) and (pointer:fine){#game-screen .strategy-card[data-card=build]:is(.active,.pinned){height:min(68dvh,580px)}#game-screen .strategy-card[data-card=diplomacy]:is(.active,.pinned){height:min(72dvh,640px)}}.build-cancel{width:100%;margin-top:6px}.city-actions{display:flex;flex-direction:column;gap:6px}.city-actions .btn{justify-content:space-between;display:flex;align-items:center;gap:6px;text-align:left}.upgrade-btn{background:color-mix(in srgb,var(--good) 24%,var(--panel2));border-color:color-mix(in srgb,var(--good) 48%,var(--line));color:var(--text)}.upgrade-btn:hover{background:color-mix(in srgb,var(--good) 32%,var(--panel2))}.wall-btn{background:color-mix(in srgb,var(--primary) 20%,var(--panel2));border-color:color-mix(in srgb,var(--primary) 44%,var(--line));color:var(--text)}.wall-btn:hover{background:color-mix(in srgb,var(--primary) 28%,var(--panel2))}.city-info{font-size:11px;padding:2px 2px 0}.mats{color:#c9b27a;font-variant-numeric:tabular-nums}.matrow,.supplyrow{font-size:12px}.supplyrow{color:var(--game-ui-text, var(--text))}.supplyrow.over{color:var(--warn);font-weight:800}.actions-block{display:flex;flex-direction:column;gap:10px}#end-turn.confirm{background:var(--warn);border-color:#c98a2c;color:#1a1208;animation:nudge .3s}@keyframes nudge{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}.game-log{font-size:12px;color:var(--muted);max-height:120px;overflow:auto;display:flex;flex-direction:column;overflow-anchor:none}.game-log div{padding:3px 0;border-bottom:1px solid var(--line)}.help-list{margin:6px 0 14px;padding-left:18px;display:grid;gap:7px;font-size:13px;color:var(--text);line-height:1.45}.help-list strong{color:var(--text);font-weight:800}.shortcuts{line-height:2}kbd{background:var(--panel2);border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:11px;font-family:inherit;color:var(--text)}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(8px);background:var(--danger);color:#fff;padding:11px 20px;border-radius:11px;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;z-index:60;box-shadow:0 10px 30px rgba(0,0,0,.4);font-size:14px}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast.ok{background:var(--good);color:#06210f}.log-block{flex:1;min-height:120px;flex-direction:column}.log-head{display:flex;justify-content:space-between;align-items:baseline}.log-head h3{margin:0 0 8px}.game-log{font-size:12px;color:var(--muted);flex:1;max-height:220px;overflow:auto;display:flex;flex-direction:column;scroll-behavior:auto;overscroll-behavior:contain;overflow-anchor:none}.log-row{padding:3px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:6px}.log-empty{color:var(--muted);opacity:.72}.log-dot{width:8px;height:8px;border-radius:50%;flex:none;box-shadow:0 0 0 1px rgba(0,0,0,.4)}.log-turn{color:#6f7da0;font-variant-numeric:tabular-nums;font-size:11px}#admin-block{border-color:color-mix(in srgb,var(--primary) 34%,var(--line))}.settings-grid.compact{gap:8px}.settings-grid.compact label{font-size:11px}.settings-grid.compact input{padding:6px}.kick-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.kick-btn{display:flex;align-items:center;gap:6px;justify-content:flex-start}.rollback-resign-box{display:grid;gap:7px;margin-top:12px;padding:10px;border-radius:9px;border:1px solid color-mix(in srgb,var(--warn) 58%,var(--line));background:color-mix(in srgb,var(--warn) 9%,var(--panel2))}.rollback-resign-box strong{font-size:12px}.rollback-resign-box p{margin:0;font-size:11px;line-height:1.35}.rollback-timeline-box{display:grid;gap:7px;margin-top:12px;padding:11px;border-radius:10px;border:1px solid color-mix(in srgb,var(--primary) 58%,var(--line));background:color-mix(in srgb,var(--primary) 9%,var(--panel2))}.rollback-timeline-box strong{font-size:13px}.rollback-timeline-box p{margin:0;font-size:11px;line-height:1.4}.rollback-timeline-modal-card{width:min(620px,calc(100vw - 24px))}.rollback-timeline-summary{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.rollback-timeline-summary span{padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:var(--panel2);font-size:11px;color:var(--muted)}.rollback-frame-select{width:100%;min-height:280px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);color:var(--text);font:inherit;font-size:13px;line-height:1.35}.rollback-frame-select option{padding:8px 9px;border-radius:6px}.rollback-timeline-tools{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.rollback-warning{margin-top:9px;padding:9px 10px;border-radius:9px;border:1px solid color-mix(in srgb,var(--warn) 48%,var(--line));background:color-mix(in srgb,var(--warn) 8%,var(--panel2));color:var(--muted);font-size:11px;line-height:1.4}.bottom-actions{display:flex;gap:8px}.bottom-actions .btn{flex:1}#resign-btn:hover{background:rgba(230,25,75,.18);border-color:var(--danger);color:#ffb3c0}#game-screen.replay-open .command-stack,#game-screen.replay-open .strategy-panel,#game-screen.replay-open .map-view-controls,#game-screen.replay-open .capture-overlays{display:none!important}.replay-viewer{position:fixed;top:72px;right:12px;bottom:12px;z-index:55;width:min(510px,calc(100vw - 24px));height:auto;max-height:calc(100vh - 84px);min-height:0;flex-direction:column;gap:10px;padding:12px;overflow:hidden;background:var(--surface-solid);border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 48px rgba(0,0,0,.42);backdrop-filter:none}.replay-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.replay-viewer-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.replay-analysis-close{width:34px;height:34px;padding:0;font-size:20px}.replay-viewer-head h3{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.replay-description{margin:4px 0 0;color:var(--text);font-size:12px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.replay-operation{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 10px 12px;border:1px solid color-mix(in srgb,var(--primary) 42%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--primary) 9%,var(--panel2));overflow:hidden}.replay-operation[hidden]{display:none}.replay-operation[data-kind=analysis]{border-color:color-mix(in srgb,#a855f7 52%,var(--line));background:color-mix(in srgb,#a855f7 9%,var(--panel2))}.replay-operation[data-kind=complete]{border-color:color-mix(in srgb,#22c55e 52%,var(--line));background:color-mix(in srgb,#22c55e 9%,var(--panel2))}.replay-operation-spinner{width:17px;height:17px;border:2px solid color-mix(in srgb,var(--primary) 22%,transparent);border-top-color:var(--primary);border-radius:50%;animation:replay-operation-spin .72s linear infinite}.replay-operation[data-kind=complete] .replay-operation-spinner{border:0;animation:none;display:grid;place-items:center;color:#22c55e}.replay-operation[data-kind=complete] .replay-operation-spinner::before{content:"✓";font-size:17px;font-weight:900}.replay-operation-copy{min-width:0;display:grid;gap:1px}.replay-operation-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.replay-operation-copy small{min-height:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px}.replay-operation>b{min-width:34px;text-align:right;color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}.replay-operation-track{position:absolute;left:0;right:0;bottom:0;height:3px;background:color-mix(in srgb,var(--line) 72%,transparent)}.replay-operation-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--primary),#a855f7);transition:width .2s ease}.replay-operation.indeterminate .replay-operation-track i{width:38%!important;animation:replay-operation-slide 1.15s ease-in-out infinite}.replay-import-btn.is-loading{position:relative;opacity:.72;cursor:wait}.replay-import-btn.is-loading::after{content:"";width:13px;height:13px;margin-left:7px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:replay-operation-spin .72s linear infinite}@keyframes replay-operation-spin{to{transform:rotate(360deg)}}@keyframes replay-operation-slide{0%{transform:translateX(-110%)}to{transform:translateX(270%)}}.replay-players{display:grid;gap:6px;max-height:min(112px,22vh);overflow-y:auto;padding:8px;border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--panel2) 68%,transparent);overscroll-behavior:contain}.replay-players-head{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.replay-players-head span{min-width:22px;text-align:center;padding:2px 5px;border-radius:999px;background:var(--panel)}.replay-player-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.replay-player{position:relative;min-width:0;min-height:43px;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:6px;padding:5px 7px 5px 5px;border:1px solid color-mix(in srgb,var(--replay-player) 35%,var(--line));border-left:3px solid var(--replay-player);border-radius:8px;background:color-mix(in srgb,var(--replay-player) 7%,var(--panel))}.replay-player.winner{background:color-mix(in srgb,#eab308 12%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,#eab308 40%,transparent)}.replay-player.eliminated:not(.winner){opacity:.72}.replay-player-seat{display:grid;place-items:center;min-width:25px;height:25px;border-radius:7px;background:color-mix(in srgb,var(--replay-player) 18%,var(--panel2));color:var(--replay-player);font-weight:900;font-size:10px}.replay-player .avatar{width:28px;height:28px;min-width:28px;font-size:14px}.replay-player-identity{min-width:0;display:grid;gap:1px}.replay-player-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.replay-player-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px}.replay-player-bot{color:var(--replay-player);font-weight:800}.replay-player-accuracy{font-size:12px;font-weight:900;font-variant-numeric:tabular-nums}.replay-player-crown{position:absolute;right:4px;top:-7px;color:#eab308;font-size:15px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}.replay-bar{display:grid;gap:8px;padding:9px;background:color-mix(in srgb,var(--panel2) 72%,transparent);border:1px solid var(--line);border-radius:9px}.rp-controls{display:grid;grid-template-columns:repeat(5,38px) 1fr;gap:6px;align-items:center}.replay-bar .icon{width:38px;height:38px;padding:0;font-size:15px}.replay-bar input[type=range]{flex:1;accent-color:var(--primary)}.rp-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.rp-label{font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px;min-width:64px;text-align:center}.rp-window{color:var(--muted);font-size:11px;margin-right:auto}.rp-speed{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:7px;padding:7px 8px;font-size:13px;cursor:pointer}#rp-analyze.active{background:var(--primary);border-color:var(--primary-d);color:#fff}.replay-viewer-head,.replay-operation,.replay-players,.replay-bar{flex:0 0 auto}.replay-moves-section{flex:1 1 180px;min-height:112px;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--panel2) 42%,transparent)}.replay-moves-head{flex:0 0 auto;min-height:30px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 9px;border-bottom:1px solid var(--line);color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.replay-moves-head span{font-size:13px}.replay-moves{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;overflow-x:hidden;display:block;padding:6px;overscroll-behavior:contain;scrollbar-gutter:stable}.replay-turn-group{display:block;border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--panel2) 54%,transparent);overflow:hidden;margin-bottom:5px}.replay-turn-group:last-child{margin-bottom:0}.replay-turn-summary{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 9px;cursor:pointer;color:var(--text);font-size:12px;font-weight:800;border:0;background:0 0;font-family:inherit;text-align:left}.replay-turn-summary::before{content:"▸";color:var(--muted);transition:transform .14s ease}.replay-turn-group.open .replay-turn-summary::before{transform:rotate(90deg)}.replay-turn-summary span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-turn-summary span:last-child{color:var(--muted);font-weight:600;font-size:11px}.replay-turn-actions{display:grid;gap:6px;padding:6px;border-top:1px solid var(--line-soft)}.replay-turn-actions[hidden]{display:none}.replay-window-more{width:100%;min-height:36px;margin-bottom:6px;border:1px dashed var(--line);border-radius:9px;background:var(--panel2);color:var(--muted);font:inherit;font-size:11px;font-weight:700;cursor:pointer}.replay-window-more:hover{border-color:var(--primary);color:var(--text)}.replay-action-window-note{padding:5px 7px;border-radius:7px;background:color-mix(in srgb,var(--primary) 8%,var(--panel2));color:var(--muted);font-size:10px;text-align:center}.replay-move-btn{width:100%;display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:start;text-align:left;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px;cursor:pointer;font:inherit}.replay-move-btn:hover{background:var(--hover)}.replay-move-btn.active{border-color:color-mix(in srgb,var(--primary) 68%,var(--line));background:color-mix(in srgb,var(--primary) 20%,var(--panel2))}.replay-move-no{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;padding-top:1px;text-align:right}.replay-move-text{min-width:0;display:grid;gap:3px;font-size:12px;line-height:1.28;overflow-wrap:anywhere}.replay-move-head{display:flex;align-items:center;gap:5px;min-width:0;max-width:100%;font-size:11px;color:var(--muted)}.replay-move-head strong{color:var(--text)}.replay-move-player{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replay-move-body{color:var(--text)}.replay-quality{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:1px 5px;border-radius:999px;border:1px solid var(--line);font-size:10px;font-weight:800;vertical-align:middle}.replay-quality.tag-best{color:#5adc82;border-color:#2f7a48}.replay-quality.tag-excellent{color:#7be0ff;border-color:#2f6f90}.replay-quality.tag-good{color:#8fd0ff;border-color:#326b93}.replay-quality.tag-inacc{color:#e8c95a;border-color:#78652a}.replay-quality.tag-mistake{color:#f0973a;border-color:#8a5524}.replay-quality.tag-blunder{color:#e6556e;border-color:#8a2e3d}.analysis-panel{position:static;flex:0 1 42%;min-height:0;width:auto;max-width:none;background:color-mix(in srgb,var(--panel2) 72%,transparent);border:1px solid var(--line);border-radius:9px;padding:10px;box-shadow:none;backdrop-filter:none;max-height:min(57vh,590px);overflow:auto;overscroll-behavior:contain}.analysis-panel[data-state=collapsed]{flex-basis:96px;max-height:96px;overflow-y:auto;padding:8px}.analysis-panel[data-state=expanded]{max-height:42%;overflow-y:auto}.analysis-panel[data-state=collapsed] .analysis-chart,.analysis-panel[data-state=collapsed] .analysis-frame-detail,.analysis-panel[data-state=collapsed] .acc-title em,.analysis-panel[data-state=collapsed] .acc-breakdown{display:none}.analysis-panel[data-state=collapsed] .acc-title{margin-bottom:5px}.analysis-panel[data-state=collapsed] .acc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.analysis-panel[data-state=collapsed] .acc-row{padding:4px 6px}.acc-title{display:flex;justify-content:space-between;align-items:start;gap:8px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px}.acc-title>span{display:grid;gap:2px}.acc-title b{color:var(--text)}.acc-title em{max-width:310px;text-transform:none;letter-spacing:0;font-size:9px;line-height:1.3;font-style:normal;font-weight:500}.acc-title small{text-transform:none;letter-spacing:0;font-size:10px}.analysis-chart{display:grid;gap:7px;margin:0 0 10px;padding:8px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel) 45%,transparent)}.analysis-chart-head{display:flex;align-items:start;justify-content:space-between;gap:8px;color:var(--muted);font-size:9px}.analysis-chart-head>span{display:grid;gap:2px}.analysis-chart-head strong{color:var(--text);font-size:11px}.analysis-chart-head small{max-width:350px;line-height:1.3}.analysis-legend{display:flex;flex-wrap:wrap;gap:4px}.analysis-legend-item{min-width:0;max-width:150px;height:27px;display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:4px;padding:3px 6px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);color:var(--text);font:inherit;cursor:pointer}.analysis-legend-item>span{width:8px;height:8px;border-radius:50%}.analysis-legend-item b{font-size:9px}.analysis-legend-item em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9px;font-style:normal}.analysis-legend-item.off{opacity:.4;filter:grayscale(.8)}.analysis-legend-item:focus-visible,.analysis-chart-plot:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.analysis-chart-plot{position:relative;height:142px;padding:4px 4px 2px 28px;border:1px solid var(--line);border-radius:8px;cursor:crosshair;background:color-mix(in srgb,var(--panel2) 82%,transparent);touch-action:pan-y}.analysis-chart-plot svg{width:100%;height:100%;overflow:visible}.analysis-grid-line{stroke:color-mix(in srgb,var(--line) 88%,transparent);stroke-width:.5;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.analysis-series{fill:none;stroke-width:2;vector-effect:non-scaling-stroke;opacity:.9;transition:opacity .14s}.analysis-series.hidden,.analysis-marker.hidden{opacity:0}.analysis-crosshair{stroke:color-mix(in srgb,var(--text) 70%,transparent);stroke-width:1;stroke-dasharray:3 2;vector-effect:non-scaling-stroke;pointer-events:none}.analysis-marker{stroke:var(--surface-solid);stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}.analysis-axis{position:absolute;left:5px;color:var(--muted);font-size:8px;font-variant-numeric:tabular-nums;pointer-events:none}.analysis-axis-top{top:4px}.analysis-axis-mid{top:50%;transform:translateY(-50%)}.analysis-axis-bottom{bottom:4px}.analysis-tooltip{position:absolute;z-index:4;top:8px;width:min(210px,calc(100% - 18px));display:grid;gap:3px;padding:7px 8px;transform:translateX(-50%);pointer-events:none;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);color:var(--text);box-shadow:0 8px 24px rgba(0,0,0,.28);font-size:9px}.analysis-tooltip.edge-left{transform:translateX(0)}.analysis-tooltip.edge-right{transform:translateX(-100%)}.analysis-tooltip>div{display:flex;justify-content:space-between;gap:8px;color:var(--muted)}.analysis-tooltip-player{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px}.analysis-tooltip-player i{width:7px;height:7px;border-radius:50%}.analysis-tooltip-player b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-tooltip-player strong{font-variant-numeric:tabular-nums}.analysis-tooltip-player.muted-series{opacity:.45}.analysis-tooltip small{padding-top:3px;border-top:1px solid var(--line);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-chart-range{display:flex;justify-content:space-between;color:var(--muted);font-size:8px}.acc-grid{display:grid;grid-template-columns:1fr;gap:6px}.acc-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"dot name pct"". moves pct";align-items:center;gap:1px 6px;min-width:0;padding:4px 6px;border:1px solid var(--line);border-radius:7px;background:color-mix(in srgb,var(--panel) 42%,transparent)}.acc-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.acc-row .acc-dot{grid-area:dot}.acc-name{grid-area:name;font-weight:700;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.acc-pct{grid-area:pct;font-variant-numeric:tabular-nums;font-weight:800;font-size:13px}.acc-moves{grid-area:moves;color:var(--muted);font-size:10px}.acc-breakdown{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:3px 7px;padding-top:4px;margin-top:3px;border-top:1px solid var(--line);font-size:9px;font-variant-numeric:tabular-nums}.acc-breakdown>i{white-space:nowrap;font-style:normal;font-weight:800}.analysis-frame-detail{display:grid;gap:7px;margin-top:8px;padding:8px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel) 55%,transparent);font-size:10px}.analysis-current-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.analysis-current-head>span{min-width:0;display:flex;align-items:center;gap:5px}.analysis-current-head>span i{width:8px;height:8px;border-radius:50%;background:var(--replay-player)}.analysis-current-head>span b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-current-head>strong{white-space:nowrap}.analysis-frame-detail p{margin:0;color:var(--text);font-size:11px}.analysis-best{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px;padding:6px 7px;border-radius:7px;background:color-mix(in srgb,var(--primary) 9%,var(--panel2))}.analysis-best span{color:var(--muted)}.analysis-best strong{text-align:right;overflow-wrap:anywhere}.analysis-best.chosen strong{color:var(--good)}.analysis-impacts{display:flex;flex-wrap:wrap;gap:4px}.analysis-impact{display:inline-flex;align-items:center;gap:4px;padding:3px 5px;border:1px solid var(--line);border-radius:999px;background:var(--panel2)}.analysis-impact i{font-style:normal;font-variant-numeric:tabular-nums;font-weight:900}.analysis-impact.positive i{color:var(--good)}.analysis-impact.negative i{color:var(--danger)}@media (min-width:821px){#game-screen.replay-open.active{display:grid;grid-template-columns:minmax(0,1fr) clamp(380px,36vw,520px);width:100vw;height:100dvh;overflow:hidden}#game-screen.replay-open>.game-layout{grid-column:1;grid-row:1;width:100%;min-width:0;height:100dvh;min-height:0}#game-screen.replay-open .board-wrap{min-width:0}#game-screen.replay-open>.replay-viewer{position:relative;grid-column:2;grid-row:1;align-self:stretch;top:auto;right:auto;bottom:auto;width:auto;min-width:0;height:calc(100dvh - 20px);max-height:none;margin:10px 10px 10px 0}#game-screen.replay-open .replay-viewer.analysis-expanded .replay-players,#game-screen.replay-open .replay-viewer.analysis-expanded .replay-diplomacy{display:none!important}#game-screen.replay-open .replay-viewer.analysis-expanded .analysis-panel[data-state=expanded]{position:static;z-index:auto;flex:1 1 48%;width:auto;max-width:none;max-height:54%;overflow-y:auto;padding:10px;box-shadow:none}#game-screen.replay-open .replay-viewer.analysis-expanded .replay-moves-section{flex:1 1 132px;min-height:112px}#game-screen.replay-open .replay-viewer.analysis-expanded .analysis-chart-plot{height:158px}}.tag-best,.mt-icon.best{color:#5adc82}.tag-excellent,.mt-icon.excellent{color:#7be0ff}.tag-good{color:#8fd0ff}.tag-inacc{color:#e8c95a}.tag-mistake{color:#f0973a}.tag-blunder{color:#e6556e}.move-tag-badge{position:absolute;top:14px;left:50%;transform:translateX(-50%);z-index:40;display:flex;align-items:center;gap:8px;padding:7px 13px;border-radius:999px;background:rgba(16,21,34,.94);border:1px solid var(--line);font-size:13px;box-shadow:0 6px 20px rgba(0,0,0,.35);animation:badgePop .2s ease both}.move-tag-badge .mt-icon{font-weight:800;font-size:15px}.move-tag-badge.tag-best{border-color:#2f7a48}.move-tag-badge.tag-best .mt-icon{color:#5adc82}.move-tag-badge.tag-excellent{border-color:#2f6f90}.move-tag-badge.tag-excellent .mt-icon{color:#7be0ff}.move-tag-badge.tag-good .mt-icon{color:#8fd0ff}.move-tag-badge.tag-inacc .mt-icon{color:#e8c95a}.move-tag-badge.tag-mistake .mt-icon{color:#f0973a}.move-tag-badge.tag-blunder{border-color:#8a2e3d}.move-tag-badge.tag-blunder .mt-icon{color:#e6556e}@keyframes badgePop{0%{opacity:0;transform:translateX(-50%) translateY(-6px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@media (max-width:920px){.lobby-grid{grid-template-columns:1fr}.play-panel{order:-2}.lobby-side{display:contents}.news-card{order:-1}.feedback-launch-card{order:-1}.lobby-main{order:0}.lobby-side-section{order:1}.desktop-download-card{order:2}}@media (max-width:820px),(pointer:coarse){.game-layout{grid-template-columns:1fr}.turn-hud-group{top:calc(58px + env(safe-area-inset-top));left:8px;right:8px;transform:none;max-width:none;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px}.turn-hud{min-width:0;max-width:none;padding:7px 10px}.turn-clock-hud{padding:7px 9px;gap:7px}.turn-queue-hud{padding:7px 8px}.turn-queue-hud .th-queue{justify-content:flex-start;overflow-x:auto;scrollbar-width:none}.turn-queue-hud .th-queue::-webkit-scrollbar{display:none}.board-overlay{top:calc(112px + env(safe-area-inset-top));left:8px;right:8px;width:auto;max-width:calc(100vw - 16px)}.premove-panel{left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));bottom:calc(264px + env(safe-area-inset-bottom));width:auto;min-width:0;transform:none;padding:7px}.premove-panel-head>strong{font-size:11px}.premove-panel-actions button{min-height:32px}.premove-chip{min-height:44px}.premove-remove{min-width:72px;min-height:44px;font-size:11px}.premove-finish{min-height:46px}.pause-glyph{width:clamp(94px,24vmin,150px);height:clamp(94px,24vmin,150px)}.vote-prompt-overlay{top:calc(100px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));width:min(310px,calc(100vw - 16px))}.vote-prompt-overlay.collapsed{max-width:min(270px,calc(100vw - 16px))}.vote-prompt-card{padding:10px}.board-exit-top{top:calc(8px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));width:42px;height:42px}.spectator-badge{top:calc(8px + env(safe-area-inset-top));left:calc(58px + env(safe-area-inset-left));min-height:42px;max-width:calc(100vw - 216px);padding:6px 9px}.spectator-badge small{display:none}#game-screen.spectating .resource-hud,#game-screen.spectating .supply-hud{display:none!important}.board-toolbar{top:calc(8px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));gap:6px}.board-toolbar .ping-indicator{display:none}.board-toolbar .icon{width:42px;height:42px}.map-view-controls{top:calc(152px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));width:min(128px,calc(100vw - 72px));gap:4px;padding:5px}.map-view-btn{min-height:34px;padding:5px 7px}.resource-hud{top:calc(8px + env(safe-area-inset-top));left:calc(58px + env(safe-area-inset-left));min-height:42px;max-width:calc(100vw - 298px);overflow:hidden}.supply-hud{top:calc(8px + env(safe-area-inset-top));left:auto;right:calc(158px + env(safe-area-inset-right));min-height:42px;min-width:78px;padding:7px 8px}.resource-hud .rh-name{display:none}.resource-popover,.supply-popover{top:calc(58px + env(safe-area-inset-top));left:8px;width:calc(100vw - 16px);max-height:min(58vh,420px);overflow-y:auto}.city-popover,.building-popover,.wall-popover{max-width:calc(100vw - 16px)}.zoom-controls{top:calc(152px + env(safe-area-inset-top));bottom:auto;left:calc(8px + env(safe-area-inset-left))}.zoom-controls .btn{width:42px;height:42px}.command-stack{left:calc(10px + env(safe-area-inset-left));right:calc(10px + env(safe-area-inset-right));bottom:calc(64px + env(safe-area-inset-bottom));width:auto;grid-template-columns:minmax(0,1fr);gap:7px;z-index:62}#game-screen.mobile-sheet-open .command-stack,#game-screen.mobile-sheet-open .zoom-controls,#game-screen.mobile-sheet-open .board-overlay,#game-screen.mobile-sheet-open .premove-panel{display:none!important}.command-list{grid-column:1/-1;order:1}.vote-action-row{grid-column:1/-1;order:2;grid-template-columns:repeat(3,50px);justify-content:end}.vote-action-btn,.resign-main{width:50px;height:50px;font-size:19px}.command-stack #end-turn{grid-column:1/-1;order:3;min-width:0;height:44px;padding:0 12px;white-space:normal;line-height:1.15}.strategy-panel{position:fixed;inset:0;z-index:58;pointer-events:none;display:block;max-height:none}.strategy-status{position:fixed;left:calc(10px + env(safe-area-inset-left));right:calc(10px + env(safe-area-inset-right));bottom:calc(116px + env(safe-area-inset-bottom));width:auto;display:grid;gap:6px;pointer-events:auto;z-index:63}.field-orders{min-height:0;padding:8px 10px;border-radius:12px}.strategy-dock{position:fixed;left:0;right:0;bottom:0;z-index:64;pointer-events:auto;display:grid;grid-template-columns:repeat(7,minmax(42px,1fr));gap:0;overflow:hidden;padding:5px max(8px,env(safe-area-inset-left)) calc(5px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-right));scrollbar-width:none;touch-action:manipulation;background:color-mix(in srgb,var(--panel) 96%,transparent);border-top:1px solid var(--line);box-shadow:0-12px 34px rgba(0,0,0,.42);backdrop-filter:blur(12px)}.strategy-dock::-webkit-scrollbar{display:none}.dock-btn{width:auto;min-height:52px;border:0;border-radius:12px;background:0 0;padding:6px 3px 4px}.dock-icon{width:20px;height:20px}.dock-btn b{font-size:10px;line-height:1}.dock-btn.active{background:color-mix(in srgb,var(--primary) 22%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 42%,transparent)}.strategy-deck{position:fixed;left:0;right:0;bottom:calc(60px + env(safe-area-inset-bottom));z-index:61;display:block;max-height:none;overflow:visible;padding:0;pointer-events:none}.strategy-card{min-width:0;width:auto;max-width:none;min-height:0;pointer-events:auto}.strategy-card.pinned:not(.active){display:none!important}.strategy-card.active{position:fixed;left:0;right:0;bottom:calc(60px + env(safe-area-inset-bottom));height:auto;max-height:min(42dvh,360px);display:flex;border-radius:16px 16px 0 0;padding:9px 12px 12px;background:color-mix(in srgb,var(--panel) 98%,transparent);border:1px solid var(--line);border-bottom:none;box-shadow:0-18px 48px rgba(0,0,0,.52);backdrop-filter:blur(14px);animation:mobileSheetIn .18s ease both}@keyframes mobileSheetIn{0%{transform:translateY(18px);opacity:.75}to{transform:none;opacity:1}}.strategy-card.floating{position:fixed;left:0!important;right:0!important;width:auto!important;max-height:calc(100dvh - 150px)}.card-head{min-height:38px;margin-bottom:8px;cursor:default}.card-head::before{display:none}.card-head h3{padding-top:0;font-size:13px;color:var(--text)}.card-pin,.card-resize{display:none!important}.card-close{width:40px;height:40px;border-radius:12px;background:var(--surface-soft, var(--panel2));border-color:var(--line-soft, var(--line));color:var(--text)}.card-content{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:8px}.player-row{padding:8px 8px 8px 12px}.piece-build{grid-template-columns:repeat(3,minmax(0,1fr))}#structure-build{grid-template-columns:repeat(2,minmax(0,1fr))}.room-body{grid-template-columns:1fr}.profile-editor-grid,.profile-dashboard,.account-settings-grid,.account-deletion{grid-template-columns:1fr}.account-deletion-pending{grid-column:1}.profile-editor-head{align-items:start;flex-direction:column}.profile-editor-head p{text-align:left}.replay-viewer{left:8px;right:8px;top:auto;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;height:min(82dvh,680px);min-height:min(300px,calc(100dvh - 16px));max-height:calc(100dvh - 16px)}.replay-players{max-height:76px}.replay-viewer.analysis-expanded{height:calc(100dvh - 16px - env(safe-area-inset-bottom));overflow:hidden}.replay-viewer.analysis-expanded .replay-players{display:none}.replay-viewer.analysis-expanded .analysis-panel{flex:0 1 44%;max-height:44%;overflow-y:auto}.replay-viewer.analysis-expanded .replay-diplomacy{display:none!important}.replay-viewer.analysis-expanded .replay-moves-section{flex:1 1 120px;min-height:96px}.analysis-chart-plot{height:128px}.analysis-legend-item{min-height:40px}.replay-moves-section{min-height:72px}.profile-chip-text{display:none}}@media (max-width:640px){body{overflow:hidden}.btn{min-height:42px;padding:8px 12px}.btn.small,.btn.tiny{min-height:34px}.topbar{padding:10px 12px;gap:10px;flex-wrap:wrap}.topbar-right{gap:8px;margin-left:auto}.brand{font-size:18px}.lobby-body,.room-body{padding:14px;height:calc(100dvh - 58px)}.section-head{align-items:stretch;gap:10px;flex-direction:column}.lobby-main .section-head h2{flex-basis:auto;width:100%;text-align:left;font-size:22px;line-height:1.12}.section-head>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lobby-main .section-head>div{width:100%}.rooms-list{grid-template-columns:1fr}.room-body{display:grid;gap:14px}.settings-grid,.settings-grid.compact{grid-template-columns:1fr}.modal-backdrop{align-items:start;padding:calc(10px + env(safe-area-inset-top)) 10px calc(10px + env(safe-area-inset-bottom));overflow:auto}.modal{width:min(100%,520px);max-width:100%;max-height:none;padding:16px}.replay-player-grid{grid-template-columns:1fr 1fr}.replay-player{grid-template-columns:auto minmax(0,1fr) auto}.replay-player .avatar{display:none}.replay-player-seat{min-width:23px;height:23px}.analysis-legend-item{max-width:115px}.analysis-chart-head small{max-width:250px}.profile-shell{width:calc(100vw - 20px);padding-top:12px;gap:10px}.profile-overview{padding:0 14px 14px}.profile-editor,.account-settings,.profile-stats-card,.match-history{padding:14px}.profile-banner{height:78px;margin:0-14px -34px;padding-inline:14px;gap:20px}.profile-banner span{font-size:40px}.profile-head{grid-template-columns:auto minmax(0,1fr);align-items:end;gap:12px;margin-bottom:16px}.profile-head-actions{grid-column:1/-1;width:100%}.profile-head-actions .btn{width:100%}.account-settings-head{align-items:flex-start}.account-deletion-password,.account-deletion-pending{grid-template-columns:1fr;align-items:stretch}.avatar.lg{width:64px;height:64px;font-size:32px}.avatar.xl{width:72px;height:72px;font-size:34px}.profile-id h1{font-size:27px}.profile-name-line{gap:6px}.profile-visibility-pill{min-height:21px;padding:3px 7px;font-size:9px}.profile-meta-row{margin-top:7px}.profile-about{padding:13px}.profile-editor-grid{grid-template-columns:1fr;gap:20px}.profile-editor-actions{display:grid;grid-template-columns:1fr 1fr}.avatar-dropzone{grid-template-columns:68px minmax(0,1fr);min-height:102px;padding:12px}.custom-avatar-preview{width:68px;height:68px}.custom-avatar-actions{display:grid;grid-template-columns:1fr 1fr}.custom-avatar-actions .btn{width:100%}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat.rating{grid-column:1/-1}.history-section-head{align-items:flex-start}.history-head-meta{align-items:flex-end;flex-direction:column-reverse}.history-row{align-items:stretch;flex-wrap:wrap}.history-avatar-stack{order:1;padding-left:6px}.history-info{order:2;flex-basis:calc(100% - 120px)}.history-badge{order:0;align-self:center}.history-actions{width:100%}.history-actions .btn{width:100%}.picker{gap:8px}.pick{width:40px;height:40px}.privacy-switch-row{min-height:76px;padding:12px!important}.turn-hud-group{grid-template-columns:minmax(0,1fr) auto}.turn-hud{font-size:12px}.turn-clock-hud{font-size:11px;flex-wrap:wrap;min-width:104px}.turn-queue-hud{grid-column:1/-1;justify-content:center;padding:5px 8px}.resource-hud{max-width:calc(100vw - 286px);padding:7px 8px;gap:6px}.supply-hud{right:calc(150px + env(safe-area-inset-right));min-width:68px}.rh-item{font-size:13px}.rh-item em{display:none}.board-overlay{font-size:11px;padding:6px 8px}.map-view-controls{width:auto;grid-template-columns:repeat(5,38px)}.map-view-btn{min-height:38px;grid-template-columns:1fr;place-items:center;padding:0}.map-view-btn span:last-child{display:none}.strategy-status{bottom:calc(114px + env(safe-area-inset-bottom))}.strategy-card.active{max-height:min(40dvh,330px)}.dock-icon{width:18px;height:18px}.dock-btn b{font-size:9px}.command-stack{grid-template-columns:minmax(0,1fr)}.vote-action-row{grid-template-columns:repeat(3,46px)}.vote-action-btn,.resign-main{width:46px;height:46px}.command-stack #end-turn{height:44px}.toast{left:8px;right:8px;bottom:calc(82px + env(safe-area-inset-bottom));transform:translateY(8px);text-align:center}.toast.show{transform:translateY(0)}.rp-controls{grid-template-columns:repeat(5,minmax(36px,1fr))}.rp-controls .rp-speed{grid-column:1/-1}.rp-meta{flex-wrap:wrap}.rp-window{width:100%}}@media (max-width:420px){.auth-card{padding:24px}.board-toolbar .icon,.board-exit-top,.zoom-controls .btn{width:40px;height:40px}.board-toolbar{gap:5px}.resource-hud{left:calc(54px + env(safe-area-inset-left));width:max(38px,calc(100vw - 292px));max-width:calc(100vw - 292px);min-width:0}.supply-hud{right:calc(148px + env(safe-area-inset-right));min-width:64px}.strategy-dock{grid-template-columns:repeat(6,minmax(44px,1fr))}.dock-btn{min-height:42px}.dock-btn b{display:none}.strategy-card.active{max-height:min(38dvh,300px)}.piece-build,#structure-build{grid-template-columns:repeat(2,minmax(0,1fr))}.eco-city,.eco-player{grid-template-columns:1fr}.eco-actions{justify-content:stretch}.eco-actions .btn{flex:1}.cp-rename{grid-template-columns:1fr}}@media (max-height:520px) and (max-width:900px){.turn-hud-group{display:none!important}.board-overlay{top:calc(58px + env(safe-area-inset-top))}.zoom-controls{top:calc(104px + env(safe-area-inset-top))}.strategy-card.active{height:min(56dvh,320px)}}:root{--surface:rgba(255, 255, 255, .74);--surface-solid:#fbfaf8;--surface-soft:#f2efea;--line-soft:rgba(80, 70, 56, .16);--shadow-soft:0 2px 8px rgba(73, 62, 47, .08);--shadow-float:0 10px 28px rgba(73, 62, 47, .16);--accent-blue:#607d9b;--accent-green:#3e6f2b;--accent-red:#b45851}body{background-color:var(--bg)}.card,.room-card,.modal,.auth-card,.boot-card,.strategy-card,.replay-viewer,.resource-popover,.city-popover,.building-popover,.feature-popover,.wall-popover,.turn-hud,.turn-clock-hud,.turn-queue-hud,.command-list,.field-orders,.analysis-panel{background:var(--surface);border-color:var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-soft);backdrop-filter:none}.boot-card,.auth-card{background:var(--surface-solid);box-shadow:var(--shadow-float)}.auth-card{width:380px;padding:28px;text-align:left}.auth-card .logo,.boot-card .logo{color:var(--text);font-size:32px;font-weight:400;letter-spacing:-.02em}.auth-card .tagline,.boot-card .tagline{margin:4px 0 20px}.tabs{padding:3px;border-radius:var(--radius);background:var(--surface-soft);gap:3px}.tab{border:0;border-radius:calc(var(--radius) - 2px);background:0 0}.tab.active{background:var(--surface-solid);color:var(--primary-d);box-shadow:inset 0-2px 0 var(--primary)}.topbar{min-height:50px;padding:8px 24px;background:color-mix(in srgb,var(--surface-solid) 88%,transparent);box-shadow:0 1px 0 var(--line-soft)}.brand{line-height:1}.btn{border-color:var(--line-soft);border-radius:var(--radius);background:var(--surface-solid);box-shadow:none}.btn:hover{background:var(--surface-soft);transform:none}.btn.primary{background:var(--primary);border-color:color-mix(in srgb,var(--primary-d) 70%,#000)}.btn.primary:hover{background:var(--primary-d)}.btn.ghost{background:0 0}input,select{background:var(--surface-solid);border-color:var(--line-soft);border-radius:var(--radius)}input:focus,select:focus{outline:2px solid color-mix(in srgb,var(--primary) 45%,transparent);outline-offset:1px}.avatar{background:var(--surface-soft);border-color:var(--line-soft);box-shadow:none}.profile-chip,.ping-indicator,.user-chip{background:var(--surface-solid);border-color:var(--line-soft);box-shadow:none}.lobby-body,.room-body{scrollbar-color:color-mix(in srgb,var(--muted) 35%,transparent) transparent}.play-panel,.lobby-side-section,.room-card,.room-players,.room-settings{background:var(--surface)}.section-head{margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--primary)}.section-head h2,.room-card h3,.room-players h2,.room-settings h3{font-weight:500;letter-spacing:-.01em}.room-card{padding:12px;box-shadow:none}.room-card:hover{transform:none;border-color:color-mix(in srgb,var(--primary) 35%,var(--line-soft));box-shadow:var(--shadow-soft)}.badge{min-height:22px;padding:3px 8px;background:var(--surface-soft);border:1px solid var(--line-soft);border-radius:999px;gap:5px}.badge .ui-icon{width:12px;height:12px;opacity:.72}.crown-icon{width:13px;height:13px;margin-right:3px;filter:var(--icon-filter, none);vertical-align:-.16em}.badge.live{color:var(--accent-green);background:color-mix(in srgb,var(--accent-green) 12%,var(--surface-solid));animation:none}.badge.finished{color:var(--accent-red);background:color-mix(in srgb,var(--accent-red) 10%,var(--surface-solid))}.lb-row,.players-list li,.player-li,.history-row,.eco-city,.eco-player,.advice-row,.diplomacy-row,.dip-global-row{background:var(--surface-solid);border:1px solid var(--line-soft);border-radius:var(--radius)}.lb-row:hover,.player-li:hover,.history-row:hover{background:var(--surface-soft);transform:none}#room-preview{border-color:var(--line-soft);background:#d8d1c4;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}.preset-chip.sel,.theme-opt.sel{background:color-mix(in srgb,var(--primary) 20%,var(--surface-solid));border-color:var(--primary-d);color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 50%,transparent)}.theme-opt.sel .theme-name,.theme-opt.sel span:not(.theme-sw):not(.lang-flag){color:var(--text);font-weight:700}.modal-backdrop{background:rgba(44,39,33,.36);backdrop-filter:none}.modal{background:var(--surface-solid);box-shadow:var(--shadow-float)}.modal-close,.card-pin,.card-close,.window-toggle,.rp-head button{background:0 0;border-color:var(--line-soft);color:var(--muted)}.modal-close .ui-icon{width:14px;height:14px}.card-pin .ui-icon,.card-close .ui-icon,.rp-head .ui-icon{width:14px;height:14px}.lang-flag{font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--muted);background:var(--surface-soft)}.piece-set-sw{display:grid;place-items:center;background:var(--surface-soft);color:var(--text)}.piece-set-glyph{font:900 21px/1"Segoe UI Symbol","Noto Sans Symbols 2",serif}.stat,.rp-total span,.rp-city,.theme-opt,.pick{background:var(--surface-solid);border-color:var(--line-soft);border-radius:var(--radius)}.winrate-bar{background:var(--surface-soft);border-color:var(--line-soft)}.winrate-fill{background:linear-gradient(90deg,var(--accent-green),#87aa62)}.profile-page{background:inherit}.board-wrap{background:#cfc7ba}.zoom-controls .btn,.board-toolbar .icon,.board-toolbar .ping-indicator,.board-exit-top,.resource-hud,.supply-hud,.resign-main,.vote-action-btn{background:rgba(251,250,248,.9);border-color:rgba(80,70,56,.22);color:var(--text);box-shadow:var(--shadow-soft);backdrop-filter:none}.board-toolbar .icon:hover,.zoom-controls .btn:hover,.board-exit-top:hover,.resource-hud:hover,.supply-hud:hover{background:var(--surface-solid)}.turn-hud,.turn-clock-hud,.turn-queue-hud{box-shadow:var(--shadow-soft)}.board-overlay{background:rgba(251,250,248,.88);color:var(--muted);border:1px solid var(--line-soft);box-shadow:var(--shadow-soft);backdrop-filter:none}.command-stack #end-turn{box-shadow:var(--shadow-soft)}.resign-main:hover{background:color-mix(in srgb,var(--danger) 12%,var(--surface-solid));color:var(--danger)}.strategy-dock{gap:6px}.dock-btn{background:rgba(251,250,248,.82);border-color:var(--line-soft);box-shadow:none}.dock-btn:hover{background:var(--surface-solid);transform:none}.dock-btn.active,.dock-btn.pinned{background:color-mix(in srgb,var(--primary) 18%,var(--surface-solid));border-color:color-mix(in srgb,var(--primary) 45%,var(--line-soft));box-shadow:inset 0-2px 0 var(--primary)}.strategy-card{background:rgba(251,250,248,.9);box-shadow:var(--shadow-float);border-color:var(--line-soft)}.strategy-card.pinned{border-color:color-mix(in srgb,var(--primary) 40%,var(--line-soft))}.player-row{background:var(--surface-solid);border-color:var(--line-soft)}.player-row.me{background:color-mix(in srgb,var(--primary) 10%,var(--surface-solid))}.player-row.current{border-color:color-mix(in srgb,var(--player-color, var(--primary)) 42%,var(--line-soft))}.chip,.preset-chip{background:var(--surface-solid);border-color:var(--line-soft);border-radius:var(--radius)}.chip:hover,.preset-chip:hover{background:var(--surface-soft)}.chip.active{background:color-mix(in srgb,var(--primary) 22%,var(--surface-solid));border-color:var(--primary);color:var(--text);box-shadow:none}.struct-chip,.piece-build .chip{min-height:58px}.toast{background:var(--text);color:var(--surface-solid);border-radius:var(--radius);box-shadow:var(--shadow-float)}.toast.ok{background:var(--accent-green);color:#fff}.move-tag-badge{background:var(--surface-solid);border-color:var(--line-soft);color:var(--text);box-shadow:var(--shadow-soft)}.replay-viewer,.replay-bar,.replay-turn-group,.replay-move-btn{background:var(--surface);border-color:var(--line-soft);box-shadow:var(--shadow-soft)}.analysis-panel{background:var(--surface-solid)}#game-screen .replay-viewer{background:var(--surface-solid);border-color:var(--line-soft);backdrop-filter:none}#game-screen .zoom-controls .btn,#game-screen .board-toolbar .icon,#game-screen .board-toolbar .ping-indicator,#game-screen .board-exit-top,#game-screen .resource-hud,#game-screen .supply-hud,#game-screen .vote-action-btn,#game-screen .resign-main,#game-screen .dock-btn,#game-screen .strategy-card,#game-screen .turn-hud,#game-screen .turn-clock-hud,#game-screen .turn-queue-hud,#game-screen .command-list,#game-screen .field-orders,#game-screen .board-overlay,#game-screen .resource-popover,#game-screen .supply-popover,#game-screen .city-popover,#game-screen .building-popover,#game-screen .feature-popover,#game-screen .wall-popover{color:var(--game-ui-text);--icon-filter:var(--game-ui-icon-filter);--piece-icon-filter:var(--game-ui-icon-filter)}#game-screen .muted,#game-screen .hint,#game-screen .card-head h3,#game-screen .dock-btn b,#game-screen .turn-clock-hud,#game-screen .board-overlay,#game-screen .rh-name,#game-screen .rh-item em,#game-screen .cp-owner,#game-screen .bp-owner,#game-screen .wp-owner,#game-screen .wp-note,#game-screen .fp-grid span,#game-screen .cp-grid span,#game-screen .bp-grid span,#game-screen .wp-grid span{color:var(--game-ui-muted)}#game-screen .dock-btn.active,#game-screen .dock-btn.pinned,#game-screen .dock-btn.active b,#game-screen .dock-btn.pinned b{color:var(--game-ui-text)}@media (max-width:820px),(pointer:coarse){.strategy-dock{background:rgba(251,250,248,.96);box-shadow:0-1px 0 var(--line-soft);backdrop-filter:none}.strategy-card.active{background:var(--surface-solid);box-shadow:0-10px 24px rgba(73,62,47,.12);backdrop-filter:none}.card-head::before{background:color-mix(in srgb,var(--muted) 35%,transparent)}#game-screen .strategy-card.active,#game-screen .strategy-card.active .card-head,#game-screen .strategy-card.active .card-head h3,#game-screen .strategy-card.active .card-close{color:var(--text);--icon-filter:var(--icon-filter)}}html[data-theme=slate]{--surface:rgba(38, 45, 56, .86);--surface-solid:#2b3440;--surface-soft:#35404c;--line-soft:rgba(210, 220, 232, .16);--shadow-soft:0 2px 8px rgba(0,0,0,.18);--shadow-float:0 14px 34px rgba(0,0,0,.32);--icon-filter:invert(92%) sepia(8%) saturate(379%) hue-rotate(176deg) brightness(98%) contrast(90%);--piece-icon-filter:var(--icon-filter);--accent-blue:#9bd0ec;--accent-green:#83c997;--accent-red:#e08a84}html[data-theme=contrast]{--surface:rgba(17, 17, 17, .94);--surface-solid:#111111;--surface-soft:#202020;--line-soft:rgba(255,255,255,.24);--shadow-soft:0 0 0 1px rgba(255,255,255,.08);--shadow-float:0 0 0 1px rgba(255,255,255,.16), 0 18px 40px rgba(0,0,0,.5);--icon-filter:invert(100%);--piece-icon-filter:invert(100%);--accent-green:#3fe07a;--accent-red:#ff5577}#game-screen .card-pin,#game-screen .card-close,#game-screen .card-head,#game-screen .card-head h3{color:var(--game-ui-muted);--icon-filter:var(--game-ui-icon-filter)}#game-screen .strategy-card.active .card-head h3{color:var(--game-ui-muted)}@media (max-width:820px){#game-screen .strategy-card.active .card-head,#game-screen .strategy-card.active .card-head h3,#game-screen .strategy-card.active .card-close{color:var(--text);--icon-filter:var(--icon-filter)}#game-screen .strategy-card.active .card-close{background:var(--surface-soft);border-color:var(--line-soft);box-shadow:var(--shadow-soft)}}.lobby-main .section-head{flex-wrap:wrap;gap:8px 12px;align-items:center}.lobby-main .section-head h2{flex:1 1 130px;min-width:0;line-height:1.15}.lobby-main .section-head>div{flex:0 1 100%;justify-content:flex-end;min-width:0}@media (min-width:1120px){.lobby-main .section-head>div{flex-basis:auto}}#game-screen .zoom-controls .btn.ghost,#game-screen .board-toolbar .icon.btn.ghost,#game-screen .board-toolbar .ping-indicator,#game-screen .board-exit-top.btn.ghost,#game-screen .resource-hud,#game-screen .supply-hud,#game-screen .vote-action-btn.btn.ghost,#game-screen .resign-main.btn.ghost{background:rgba(244,241,235,.82);border-color:rgba(68,58,45,.24);color:var(--game-ui-text);box-shadow:0 2px 8px rgba(48,42,34,.16);--icon-filter:var(--game-ui-icon-filter)}#game-screen .zoom-controls .btn.ghost:hover,#game-screen .board-toolbar .icon.btn.ghost:hover,#game-screen .board-exit-top.btn.ghost:hover,#game-screen .resource-hud:hover,#game-screen .supply-hud:hover,#game-screen .vote-action-btn.btn.ghost:hover,#game-screen .resign-main.btn.ghost:hover{background:rgba(252,250,246,.96)}#game-screen .turn-hud,#game-screen .turn-clock-hud,#game-screen .turn-queue-hud,#game-screen .board-overlay,#game-screen .strategy-card,#game-screen .command-list,#game-screen .field-orders{background:rgba(244,241,235,.88);border-color:rgba(68,58,45,.2)}html[data-theme=contrast] #game-screen .board-wrap{background:#0d0f12}html[data-theme=contrast] #game-screen .zoom-controls .btn.ghost,html[data-theme=contrast] #game-screen .board-toolbar .icon.btn.ghost,html[data-theme=contrast] #game-screen .board-toolbar .ping-indicator,html[data-theme=contrast] #game-screen .board-exit-top.btn.ghost,html[data-theme=contrast] #game-screen .resource-hud,html[data-theme=contrast] #game-screen .supply-hud,html[data-theme=contrast] #game-screen .vote-action-btn.btn.ghost,html[data-theme=contrast] #game-screen .resign-main.btn.ghost,html[data-theme=contrast] #game-screen .turn-hud,html[data-theme=contrast] #game-screen .turn-clock-hud,html[data-theme=contrast] #game-screen .turn-queue-hud,html[data-theme=contrast] #game-screen .board-overlay,html[data-theme=contrast] #game-screen .strategy-card,html[data-theme=contrast] #game-screen .command-list,html[data-theme=contrast] #game-screen .field-orders,html[data-theme=contrast] #game-screen .resource-popover,html[data-theme=contrast] #game-screen .supply-popover,html[data-theme=contrast] #game-screen .city-popover,html[data-theme=contrast] #game-screen .building-popover,html[data-theme=contrast] #game-screen .feature-popover,html[data-theme=contrast] #game-screen .wall-popover{background:rgba(17,17,17,.92);border-color:rgba(255,210,63,.34);color:var(--text);--icon-filter:invert(100%);--piece-icon-filter:invert(100%);box-shadow:0 10px 28px rgba(0,0,0,.42),inset 0 0 0 1px rgba(255,255,255,.04)}html[data-theme=contrast] #game-screen .muted,html[data-theme=contrast] #game-screen .hint,html[data-theme=contrast] #game-screen .card-head h3,html[data-theme=contrast] #game-screen .dock-btn b,html[data-theme=contrast] #game-screen .turn-clock-hud,html[data-theme=contrast] #game-screen .board-overlay,html[data-theme=contrast] #game-screen .rh-name,html[data-theme=contrast] #game-screen .rh-item em,html[data-theme=contrast] #game-screen .cp-owner,html[data-theme=contrast] #game-screen .bp-owner,html[data-theme=contrast] #game-screen .wp-owner,html[data-theme=contrast] #game-screen .wp-note,html[data-theme=contrast] #game-screen .fp-grid span,html[data-theme=contrast] #game-screen .cp-grid span,html[data-theme=contrast] #game-screen .bp-grid span,html[data-theme=contrast] #game-screen .wp-grid span{color:var(--muted)}html[data-theme=contrast] #game-screen .strategy-dock{background:0 0}html[data-theme=contrast] #game-screen .dock-btn{background:rgba(17,17,17,.84);border-color:rgba(255,210,63,.26);color:var(--muted)}html[data-theme=contrast] #game-screen .dock-btn.active,html[data-theme=contrast] #game-screen .dock-btn.pinned{background:color-mix(in srgb,var(--primary) 20%,#111);border-color:var(--primary);color:var(--text);box-shadow:inset 0-2px 0 var(--primary)}html[data-theme=contrast] #game-screen .dock-btn.active b,html[data-theme=contrast] #game-screen .dock-btn.pinned b{color:var(--text)}html[data-theme=contrast] #game-screen .resign-main.btn.ghost:hover,html[data-theme=contrast] #game-screen .vote-action-btn.btn.ghost:hover,html[data-theme=contrast] #game-screen .board-exit-top.btn.ghost:hover,html[data-theme=contrast] #game-screen .zoom-controls .btn.ghost:hover,html[data-theme=contrast] #game-screen .board-toolbar .icon.btn.ghost:hover{background:rgba(38,34,20,.96)}#game-screen{--game-control-bg:rgba(250, 248, 243, .94);--game-control-hover:rgba(255, 253, 248, .98);--game-control-border:rgba(68, 58, 45, .34);--game-card-bg:rgba(250, 248, 243, .96);--game-card-soft:rgba(239, 232, 219, .96);--dip-panel-bg:#fbfaf8;--dip-surface:#f0ebe2;--dip-surface-solid:#fffdf8}html[data-theme=slate] #game-screen{--game-ui-text:#e4e9ef;--game-ui-muted:#c6d0da;--game-ui-icon-filter:invert(92%) sepia(8%) saturate(379%) hue-rotate(176deg) brightness(98%) contrast(90%);--game-control-bg:rgba(38, 45, 56, .94);--game-control-hover:rgba(53, 64, 76, .98);--game-control-border:rgba(210, 220, 232, .28);--game-card-bg:rgba(38, 45, 56, .96);--game-card-soft:rgba(53, 64, 76, .96);--dip-panel-bg:#262d38;--dip-surface:#35404c;--dip-surface-solid:#2b3440}html[data-theme=contrast] #game-screen{--game-control-bg:rgba(17, 17, 17, .94);--game-control-hover:rgba(38, 34, 20, .98);--game-control-border:rgba(255, 210, 63, .38);--game-card-bg:rgba(17, 17, 17, .95);--game-card-soft:rgba(32, 32, 32, .96);--dip-panel-bg:#111111;--dip-surface:#202020;--dip-surface-solid:#181818}html[data-theme=contrast] #game-screen .dip-state.war{color:#ff8fa3}html[data-theme=contrast] #game-screen .dip-state.pending,html[data-theme=contrast] #game-screen .dip-state.truce{color:#ffd166}#game-screen .zoom-controls .btn.ghost,#game-screen .board-toolbar .icon.btn.ghost,#game-screen .board-toolbar .ping-indicator,#game-screen .board-exit-top.btn.ghost,#game-screen .resource-hud,#game-screen .supply-hud,#game-screen .vote-action-btn.btn.ghost,#game-screen .resign-main.btn.ghost,#game-screen .dock-btn,#game-screen .turn-hud,#game-screen .turn-clock-hud,#game-screen .turn-queue-hud,#game-screen .board-overlay,#game-screen .strategy-card,#game-screen .command-list,#game-screen .field-orders,#game-screen .resource-popover,#game-screen .supply-popover,#game-screen .city-popover,#game-screen .building-popover,#game-screen .feature-popover,#game-screen .wall-popover{background:var(--game-control-bg);border-color:var(--game-control-border)}#game-screen .strategy-card,#game-screen .resource-popover,#game-screen .supply-popover,#game-screen .city-popover,#game-screen .building-popover,#game-screen .feature-popover,#game-screen .wall-popover,#game-screen .command-list{background:var(--game-card-bg)}#game-screen .zoom-controls .btn.ghost:hover,#game-screen .board-toolbar .icon.btn.ghost:hover,#game-screen .board-exit-top.btn.ghost:hover,#game-screen .resource-hud:hover,#game-screen .supply-hud:hover,#game-screen .vote-action-btn.btn.ghost:hover,#game-screen .resign-main.btn.ghost:hover,#game-screen .dock-btn:hover,#game-screen .map-view-btn:hover,#game-screen .dip-panel-btn:hover,#game-screen .diplomacy-panel .btn.ghost:hover{background:var(--game-control-hover)}#game-screen .diplomacy-row,#game-screen .dip-global-row,#game-screen .dip-overview,#game-screen .dip-compose,#game-screen .trade-summary{background:var(--game-card-soft);border-color:var(--game-control-border)}#game-screen .diplomacy-panel input,#game-screen .diplomacy-panel select,#game-screen .diplomacy-panel .btn.ghost{background:var(--game-card-bg);border-color:var(--game-control-border);color:var(--game-ui-text, var(--text))}#game-screen #diplomacy-block{background:var(--dip-panel-bg);border-color:var(--game-control-border);box-shadow:0 18px 44px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.08)}#game-screen #diplomacy-block .card-content{padding-right:4px}#game-screen #diplomacy-block .dip-overview,#game-screen #diplomacy-block .diplomacy-row,#game-screen #diplomacy-block .dip-compose,#game-screen #diplomacy-block .trade-summary{background:var(--dip-surface)}#game-screen #diplomacy-block .dip-global-row,#game-screen #diplomacy-block .trade-side,#game-screen #diplomacy-block .dip-overview-head span,#game-screen #diplomacy-block input,#game-screen #diplomacy-block select,#game-screen #diplomacy-block .btn.ghost{background:var(--dip-surface-solid)}#game-screen.spectating [data-player-only]{display:none!important}#game-screen.spectating .strategy-status{display:none!important}#game-screen.spectating .resource-hud,#game-screen.spectating .supply-hud,#game-screen.spectating .resource-popover,#game-screen.spectating .supply-popover{display:none!important}#game-screen.game-paused .board-overlay{display:none!important}@media (max-width:820px),(pointer:coarse){.strategy-dock{grid-template-columns:repeat(7,minmax(0,1fr));min-height:calc(58px + env(safe-area-inset-bottom))}.dock-btn{min-width:0;min-height:48px;padding:5px 2px}.strategy-deck{bottom:calc(58px + env(safe-area-inset-bottom))}.strategy-card.active{max-height:min(50dvh,420px);border-radius:18px 18px 0 0}.card-close,.card-pin{width:44px;height:44px}.card-head{min-height:54px;padding:7px 9px 7px 14px}.strategy-status{bottom:calc(176px + env(safe-area-inset-bottom))}#game-screen.mobile-sheet-open .strategy-status{display:none!important}.btn.small,.btn.tiny{min-height:40px}.rollback-timeline-modal-card{max-height:calc(100dvh - 20px);display:flex;flex-direction:column;overflow:hidden}.rollback-frame-select{min-height:210px;flex:1 1 auto}.rollback-timeline-tools{flex-wrap:wrap}#game-screen.spectating .strategy-dock{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:640px){.lobby-main .section-head{flex-direction:column;align-items:stretch;min-height:46px}.lobby-main .section-head h2{flex:1 1 auto;width:100%}.lobby-main .section-head>.lobby-room-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.lobby-room-actions .btn{min-height:42px;gap:6px;padding-inline:8px;font-size:13px}.lobby-room-actions .ui-icon{width:17px;height:17px}}@media (max-width:420px){.strategy-dock{grid-template-columns:repeat(7,minmax(0,1fr))}.dock-btn{min-height:48px}.strategy-card.active{max-height:min(52dvh,420px)}.rollback-timeline-modal-card{padding:14px}.rollback-frame-select{font-size:12px}}@media (max-width:340px){.strategy-dock{padding-left:max(4px,env(safe-area-inset-left));padding-right:max(4px,env(safe-area-inset-right))}.lobby-room-actions .btn{gap:4px;padding-inline:5px;font-size:12px}.lobby-room-actions .ui-icon{width:15px;height:15px}}@media (min-width:821px) and (pointer:coarse){#game-screen.game-paused .pause-glyph{display:none}#game-screen.game-paused .pause-overlay.show{background:rgba(7,10,18,.08)}.turn-hud-group{top:calc(8px + env(safe-area-inset-top));left:50%;right:auto;transform:translateX(-50%);width:auto;max-width:calc(100vw - 520px);display:flex}.turn-hud{min-width:190px}.board-overlay{top:calc(60px + env(safe-area-inset-top));left:50%;right:auto;width:max-content;max-width:min(560px,calc(100vw - 340px));transform:translateX(-50%)}.map-view-controls{top:calc(60px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right))}.zoom-controls{top:calc(60px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left))}.spectator-badge{top:calc(8px + env(safe-area-inset-top))}.board-toolbar{top:calc(8px + env(safe-area-inset-top))}.board-exit-top{top:calc(8px + env(safe-area-inset-top))}}@media (min-width:921px) and (max-width:1400px) and (pointer:coarse){.lobby-body{height:calc(100dvh - 56px);padding:14px 18px max(28px,env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;touch-action:pan-y}.lobby-grid{max-width:none;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:14px}.lobby-main{grid-column:1;grid-row:1/span 2;order:0}.play-panel{grid-column:2;grid-row:1;order:1}.lobby-side{grid-column:2;grid-row:2;order:2;position:static}.rooms-list{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media (max-width:820px),(pointer:coarse){#game-screen .strategy-card[data-card=build].active{height:min(70dvh,560px);max-height:min(70dvh,560px)}#game-screen .strategy-card[data-card=diplomacy].active{height:min(76dvh,680px);max-height:min(76dvh,680px)}.capture-city-float{min-height:44px;padding:9px 13px;font-size:13px}#game-screen.mobile-sheet-open .capture-overlays{display:none!important}.board-toolbar{display:block;width:42px;height:42px;z-index:68}.board-toolbar-toggle{width:42px;height:42px;padding:0;display:grid;place-items:center}.board-toolbar-toggle span{transform:translateY(-2px);font-size:17px;font-weight:900;letter-spacing:2px;line-height:1}.board-toolbar-actions{display:none}.board-toolbar.mobile-open .board-toolbar-actions{position:absolute;top:calc(100% + 46px);right:0;display:grid;grid-template-columns:repeat(3,42px);gap:4px;padding:5px;border:1px solid var(--game-control-border, var(--line));border-radius:13px;background:var(--game-card-bg, var(--panel));box-shadow:0 14px 34px rgba(0,0,0,.38)}.board-toolbar.mobile-open .board-toolbar-actions .icon{display:grid;width:42px;height:42px}.board-toolbar.mobile-open .board-toolbar-actions .ping-indicator{display:none}#game-screen .map-view-controls{top:calc(108px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));width:42px;height:42px;padding:0;display:block;overflow:visible;border:0;background:0 0;box-shadow:none;backdrop-filter:none}#game-screen .map-view-toggle{width:42px;height:42px;padding:0;display:grid;place-items:center;cursor:pointer;border:1px solid var(--game-control-border, var(--line));border-radius:11px;color:var(--game-ui-text, var(--text));background:var(--game-control-bg, var(--panel));box-shadow:0 4px 14px rgba(0,0,0,.25)}.map-view-toggle .ui-icon{width:19px;height:19px;filter:var(--game-ui-icon-filter, var(--icon-filter, none))}.map-view-options{display:none}#game-screen .map-view-controls.mobile-open{width:auto;height:50px;padding:4px;display:flex;align-items:center;gap:4px;border:1px solid var(--game-control-border, var(--line));border-radius:13px;background:var(--game-card-bg, var(--panel));box-shadow:0 14px 34px rgba(0,0,0,.38)}.map-view-controls.mobile-open .map-view-options{order:-1;display:grid;grid-template-columns:repeat(5,40px);gap:4px}.map-view-controls.mobile-open .map-view-btn{width:40px;min-height:40px;padding:0;grid-template-columns:1fr;place-items:center}.map-view-controls.mobile-open .map-view-btn span:last-child{display:none}.map-view-controls.mobile-open~.zoom-controls{display:none}.zoom-controls{top:calc(108px + env(safe-area-inset-top));bottom:auto;gap:0}.zoom-controls #zoom-in,.zoom-controls #zoom-out{display:none}.zoom-controls .btn{width:42px;height:42px}.board-overlay{top:calc(108px + env(safe-area-inset-top))}.board-overlay.is-passive{display:none!important}#game-screen .board-overlay.is-actionable~.map-view-controls,#game-screen .board-overlay.is-actionable~.zoom-controls{top:calc(148px + env(safe-area-inset-top))}#game-screen.mobile-utility-open .board-overlay,#game-screen.mobile-utility-open .map-view-controls,#game-screen.mobile-utility-open .zoom-controls{display:none!important}#game-screen.mobile-sheet-open .map-view-controls{display:none!important}.strategy-dock{display:flex;gap:0;overflow-x:auto;padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right))}.strategy-dock .dock-btn{flex:1 1 0;width:auto;min-width:44px}#game-screen.spectating .board-overlay{display:none!important}#game-screen.spectating .map-view-controls{top:auto;bottom:calc(66px + env(safe-area-inset-bottom))}#game-screen.spectating .zoom-controls{top:auto;bottom:calc(66px + env(safe-area-inset-bottom))}}@media (max-width:420px){.topbar{min-height:58px;padding:8px 10px;flex-wrap:nowrap;gap:8px}.brand{flex:0 1 auto;min-width:0;font-size:18px;white-space:nowrap}.topbar-right{min-width:0;gap:6px}.topbar .btn.icon{width:42px;height:42px;padding:0}.topbar .profile-chip{padding:5px}#sign-in-btn{min-height:42px;padding:7px 10px;white-space:nowrap}.rooms-refresh{min-width:44px;max-width:46vw;padding-inline:10px}.lobby-main .section-head{align-items:stretch;gap:8px}.lobby-room-actions{white-space:normal}.lobbies-page-shell{width:calc(100vw - 20px);height:calc(100dvh - 58px);padding-top:16px}.lobbies-page-head{align-items:stretch;flex-direction:column}.lobbies-page-head h1{font-size:27px}.lobbies-page-actions{justify-content:stretch}.lobbies-page-actions .btn{flex:1}.lobbies-search-row{grid-template-columns:1fr;gap:7px}.lobbies-search-row #all-lobbies-count{justify-self:end}.lobby-body{height:calc(100dvh - 58px);padding:10px 10px max(22px,env(safe-area-inset-bottom))}.lobby-grid{gap:10px}.play-panel{gap:11px;padding:14px}.play-panel-head{gap:5px}.play-panel h2{font-size:24px}.play-panel p{font-size:13px;line-height:1.35}.play-actions{gap:7px}.play-action{min-height:62px;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:10px}.play-action .ui-icon{width:22px;height:22px}.play-action strong{font-size:14px}.play-action small{font-size:11px}.tutorial-banner{grid-template-columns:40px minmax(0,1fr);gap:9px;padding:10px}.tutorial-banner-icon{width:40px;height:40px}.tutorial-banner-action{grid-column:2;justify-self:start}input,select,textarea{font-size:16px}.board-exit-top,.board-toolbar,.board-toolbar-toggle{width:42px;height:42px}.spectator-badge{left:calc(58px + env(safe-area-inset-left));min-height:42px;max-width:calc(100vw - 116px - env(safe-area-inset-left) - env(safe-area-inset-right));padding:6px 10px;overflow:hidden}.spectator-badge strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-hud{left:calc(58px + env(safe-area-inset-left));width:max-content;min-width:0;max-width:calc(100vw - 202px - env(safe-area-inset-left) - env(safe-area-inset-right))}.supply-hud{left:auto;right:calc(58px + env(safe-area-inset-right));min-width:78px}.turn-hud-group{grid-template-columns:minmax(0,1fr) auto}.turn-queue-hud{display:none!important}#game-screen.spectating .strategy-dock .dock-btn b{display:block;font-size:9px}}@media (max-width:360px){.brand{font-size:17px}#sign-in-btn{padding-inline:8px;font-size:12px}.turn-clock-hud{min-width:94px}.turn-clock-hud span:nth-child(2){display:none}}@media (max-height:520px) and (max-width:900px){#game-screen.premove-plan-open .strategy-status,#game-screen.premove-plan-open .command-stack{display:none!important}.premove-panel{bottom:calc(66px + env(safe-area-inset-bottom));max-height:calc(100dvh - 132px);overflow:auto}.board-toolbar.mobile-open .board-toolbar-actions{top:calc(100% + 6px)}.board-overlay{top:calc(58px + env(safe-area-inset-top))}#game-screen .map-view-controls,.zoom-controls{top:calc(58px + env(safe-area-inset-top))}#game-screen .board-overlay.is-actionable~.map-view-controls,#game-screen .board-overlay.is-actionable~.zoom-controls{top:calc(98px + env(safe-area-inset-top))}#game-screen.spectating .map-view-controls,#game-screen.spectating .zoom-controls{top:auto}}@media (min-width:821px) and (max-width:1023px) and (pointer:fine){.turn-hud-group{top:60px;max-width:calc(100vw - 180px)}.board-overlay,.map-view-controls{top:108px}.vote-prompt-overlay{top:108px}}@media (max-width:760px){.map-workshop-shell{width:calc(100vw - 20px);padding:12px 0 24px}.map-workshop-brand .brand-mark{display:none}.map-workshop-topbar .topbar-right{width:auto;display:flex;margin-left:auto}.map-workshop-topbar #map-draft-indicator{display:none}.map-library-hero{min-height:170px;align-items:stretch;flex-direction:column;gap:16px;padding:20px 2px}.map-library-hero .btn{width:100%}.map-library-controls{top:58px;grid-template-columns:1fr;padding:9px 0}.map-library-tabs{display:grid;grid-template-columns:1fr 1fr}.map-library-grid{grid-template-columns:1fr;gap:10px}#map-workshop-modal{padding:0;overflow:visible}.map-workshop-modal{width:100%;max-width:100%;height:auto;max-height:none;padding:0;overflow:visible;display:block}.map-workshop-head{position:sticky;top:58px;z-index:8;padding:8px 0;margin:-4px 0 8px;background:var(--bg);border-bottom:1px solid var(--line)}.map-workshop-head h2{font-size:20px}.map-workshop-head-actions{gap:5px}.map-editor-title{gap:7px}.map-editor-title .eyebrow{display:none}.map-editor-title h2{max-width:150px}#map-library-toggle span{display:none}.map-draft-recovery{grid-template-columns:1fr 1fr}.map-draft-recovery>div{grid-column:1/-1}.map-workshop-layout{display:flex;flex-direction:column;gap:8px;overflow:visible}.map-editor-panel{min-height:0;gap:7px}.map-editor-meta{grid-template-columns:minmax(0,1fr) 90px;gap:6px}.map-description-field,.map-visibility-field{grid-column:1/-1}.map-editor-meta label{font-size:11px}.map-editor-commandbar{flex-wrap:nowrap;overflow-x:auto;align-items:end;padding:5px;scrollbar-width:thin}.map-command-select{flex:0 0 134px}.map-history-controls .btn{min-width:58px;padding-inline:6px}.map-zoom-controls{margin-left:0}.map-editor-toolbar{flex:0 0 auto;flex-wrap:nowrap;overflow-x:auto;padding:5px}.map-tool{flex:0 0 auto;min-width:58px;min-height:48px;grid-template-columns:1fr;justify-items:center;gap:2px;padding:4px 7px}.map-tool b{font-size:9px}.map-brush-size{flex:0 0 auto}.map-editor-canvas-wrap{padding:5px;min-height:300px;grid-template-columns:1fr;overflow:visible}.map-editor-stage{width:100%;height:min(50dvh,460px);min-height:260px}#map-editor-canvas{width:min(100%,48dvh);height:auto}.map-editor-inspector{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px}.map-validation-card{grid-column:1/-1;padding:7px 8px}.map-validation-card ul{max-height:74px;grid-template-columns:repeat(2,minmax(0,1fr))}.map-start-order{grid-column:1/-1}.map-start-order ol{display:flex;max-height:none;overflow-x:auto;overflow-y:hidden}.map-start-order li{flex:0 0 142px}.map-start-order li.empty{flex-basis:100%}.map-editor-legend{flex-direction:row;align-items:center;padding:6px 8px}.map-editor-help{grid-column:1/-1;margin-top:0}.map-editor-help summary{min-height:40px}.map-editor-shortcuts{padding-bottom:7px}.map-start-actions{gap:4px}.map-start-actions button{width:44px;height:44px}.map-editor-footer{align-items:flex-start;flex-direction:column;gap:5px}.map-editor-actions{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.map-editor-actions .btn{min-width:0;padding-inline:6px;font-size:11px}.help-modal{width:100%}.help-modal{max-height:calc(100dvh - 20px);overflow-y:auto}.help-sections{grid-template-columns:1fr}.help-sections section.help-wide{grid-column:auto}}#game-screen .map-view-controls,#game-screen .map-view-controls.mobile-open{width:42px;height:42px;padding:0;display:block;overflow:visible;border:0;border-radius:11px;background:0 0;box-shadow:none;backdrop-filter:none}#game-screen .map-view-toggle{width:42px;height:42px;padding:0;display:grid;place-items:center;cursor:pointer;border:1px solid var(--game-control-border, var(--line));border-radius:11px;color:var(--game-ui-text, var(--text));background:var(--game-control-bg, var(--panel));box-shadow:0 4px 14px rgba(0,0,0,.25)}#game-screen .map-view-toggle:hover,#game-screen .map-view-controls.mobile-open .map-view-toggle{background:color-mix(in srgb,var(--primary) 16%,var(--game-control-bg, var(--panel)));border-color:color-mix(in srgb,var(--primary) 58%,var(--line))}#game-screen .map-view-toggle .ui-icon{width:20px;height:20px}#game-screen .map-view-options{display:none}#game-screen .map-view-controls.mobile-open .map-view-options{position:absolute;top:calc(100% + 7px);right:0;width:174px;padding:6px;display:grid;grid-template-columns:1fr;gap:4px;border:1px solid var(--game-control-border, var(--line));border-radius:13px;background:var(--game-card-bg, var(--panel));box-shadow:0 14px 34px rgba(0,0,0,.38);backdrop-filter:blur(10px)}#game-screen .map-view-controls.mobile-open .map-view-btn{width:100%;min-height:36px;padding:6px 8px;grid-template-columns:20px minmax(0,1fr);place-items:center start;font-size:12px}#game-screen .map-view-controls.mobile-open .map-view-btn span:last-child{display:block}#game-screen.spectating .map-view-controls.mobile-open .map-view-options{top:auto;bottom:calc(100% + 7px)}@media (max-width:480px){.create-map-source,.room-map-controls{grid-template-columns:1fr}.create-map-source small{grid-column:auto}.map-workshop-head .btn{padding-inline:8px}.map-workshop-head .btn .ui-icon{display:none}.map-validation-card ul{grid-template-columns:1fr}.map-editor-stage{height:min(46dvh,390px);min-height:235px}.map-editor-inspector{grid-template-columns:1fr}.map-cursor-readout,.map-editor-legend{grid-column:1}}#game-screen .economy-hud-group{position:absolute;top:12px;left:58px;z-index:35;display:flex;align-items:stretch;gap:8px;width:max-content;max-width:calc(100vw - 116px);min-width:0;pointer-events:none}#game-screen .economy-hud-group>.resource-hud,#game-screen .economy-hud-group>.supply-hud{position:static;inset:auto;margin:0;z-index:auto;pointer-events:auto}#game-screen .economy-hud-group>.resource-hud{flex:1 1 auto;width:auto;max-width:none;min-width:0;white-space:nowrap;overflow:hidden}#game-screen .economy-hud-group>.supply-hud{flex:0 0 auto;min-width:94px}@media (max-width:820px),(pointer:coarse){#game-screen .economy-hud-group{top:calc(8px + env(safe-area-inset-top));left:calc(58px + env(safe-area-inset-left));max-width:calc(100vw - 116px - env(safe-area-inset-left) - env(safe-area-inset-right))}#game-screen .economy-hud-group>.resource-hud,#game-screen .economy-hud-group>.supply-hud{min-height:42px}#game-screen .economy-hud-group>.supply-hud{min-width:78px}}button:not(:disabled):not([aria-disabled=true]):not(.disabled):not(.loading),.btn:not(:disabled):not([aria-disabled=true]):not(.disabled):not(.loading){transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,filter .16s ease,transform .12s ease,translate .12s ease,scale .12s ease}@media (hover:hover) and (pointer:fine){button:not(:disabled):not([aria-disabled=true]):not(.disabled):not(.loading):hover,.btn:not(:disabled):not([aria-disabled=true]):not(.disabled):not(.loading):hover{filter:brightness(1.08) saturate(1.04);translate:0-1px;scale:1.01}button:not(:disabled):not([aria-disabled=true]):not(.disabled):not(.loading):active,.btn:not(:disabled):not([aria-disabled=true]):not(.disabled):not(.loading):active{filter:brightness(.96);translate:0 1px;scale:.985}}@media (prefers-reduced-motion:reduce){button:not(:disabled):not([aria-disabled=true]):not(.disabled):not(.loading),.btn:not(:disabled):not([aria-disabled=true]):not(.disabled):not(.loading){translate:none;scale:none}}