@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-vietnamese-400-normal-TxZB8OSn.woff2)format("woff2"),url(/assets/public-sans-vietnamese-400-normal-BO1meqcx.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-ext-400-normal-mk90oQqJ.woff2)format("woff2"),url(/assets/public-sans-latin-ext-400-normal-B02wwOdZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-400-normal-8Rpg0ruU.woff2)format("woff2"),url(/assets/public-sans-latin-400-normal-SBbinRkI.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-vietnamese-500-normal-DjztbcKe.woff2)format("woff2"),url(/assets/public-sans-vietnamese-500-normal-CXYe29CY.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-ext-500-normal-DC-z7ASZ.woff2)format("woff2"),url(/assets/public-sans-latin-ext-500-normal-BHCCp-na.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-500-normal-NlrCPXnF.woff2)format("woff2"),url(/assets/public-sans-latin-500-normal-vCxiVFAq.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-vietnamese-600-normal-P4BtCUdw.woff2)format("woff2"),url(/assets/public-sans-vietnamese-600-normal-CcnAzmUX.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-ext-600-normal-DchWdWJ_.woff2)format("woff2"),url(/assets/public-sans-latin-ext-600-normal-DfkbVac2.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-600-normal-Fru-LXNs.woff2)format("woff2"),url(/assets/public-sans-latin-600-normal-BR59oU-I.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-vietnamese-700-normal-D97ShjGS.woff2)format("woff2"),url(/assets/public-sans-vietnamese-700-normal-Dq5VrXjD.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-ext-700-normal-CgolUQuG.woff2)format("woff2"),url(/assets/public-sans-latin-ext-700-normal-jWHjnMgZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-700-normal-BqJmxWdE.woff2)format("woff2"),url(/assets/public-sans-latin-700-normal-Dm-oTPSL.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/public-sans-vietnamese-800-normal-BUvYaYg7.woff2)format("woff2"),url(/assets/public-sans-vietnamese-800-normal-BFk1Z7Fw.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/public-sans-latin-ext-800-normal-BFRSyk9K.woff2)format("woff2"),url(/assets/public-sans-latin-ext-800-normal-COj-CKlZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/public-sans-latin-800-normal-Cymo4W0O.woff2)format("woff2"),url(/assets/public-sans-latin-800-normal-qgH1Oyzx.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/public-sans-vietnamese-900-normal-BhKpPMVy.woff2)format("woff2"),url(/assets/public-sans-vietnamese-900-normal-ur8Ozav8.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/public-sans-latin-ext-900-normal-m89DD6us.woff2)format("woff2"),url(/assets/public-sans-latin-ext-900-normal-CyJpxScZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/public-sans-latin-900-normal-ComRs1a5.woff2)format("woff2"),url(/assets/public-sans-latin-900-normal-Cvm28Ll6.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface:#f7f9fb;--surface-dim:#e6e8ea;--surface-bright:#fff;--surface-container-lowest:#fff;--surface-container-low:#f2f4f6;--surface-container:#eceef0;--surface-container-high:#e6e8ea;--surface-container-highest:#e0e3e5;--on-surface:#191c1e;--on-surface-variant:#45464d;--on-surface-muted:#76777d;--outline:#c6c6cd;--outline-variant:#e0e3e5;--outline-focus:#505f76;--accent:#c76c00;--accent-hover:#b05f00;--accent-border:#a35800;--accent-on:#fff;--accent-glow:0 4px 12px #c76c0033;--accent2:#3e6b48;--accent2-hover:#315438;--accent2-border:#284730;--accent2-on:#fff;--accent2-glow:0 4px 12px #3e6b4833;--accent3:#505f76;--accent3-hover:#3b4759;--accent3-border:#323c4a;--accent3-on:#fff;--success:#3e6b48;--success-dim:#c3e8cd;--warning:#c76c00;--warning-dim:#ffdcc3;--error:#ba1a1a;--error-dim:#ffdad6;--info:#505f76;--info-dim:#d4e3ff;--font:"Public Sans", system-ui, -apple-system, sans-serif;--glass-bg:#fffffff2;--glass-bg-heavy:#fffffff5;--glass-bg-light:#ffffffb3;--fs-xs:11px;--fs-sm:12px;--fs-md:14px;--fs-base:15px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:20px;--fs-3xl:24px;--fs-4xl:32px;--fs-5xl:42px;--fs-display:clamp(32px, 5vw, 48px);--fw-normal:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--fw-black:900;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--r-2xl:28px;--r-full:9999px;--shadow-sm:0 2px 4px #191c1e0d, 0 1px 2px #191c1e1a;--shadow-md:0 4px 8px #191c1e0f, 0 2px 4px #191c1e14;--shadow-lg:0 12px 24px #191c1e14, 0 4px 8px #191c1e0f;--ease:cubic-bezier(.2, 0, 0, 1);--duration-fast:.1s;--duration:.2s;--content-max:1200px;--margin-mobile:16px;--margin-desktop:40px;--bg-main:#fdfdf9}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-main:#121212;--surface:#1e1e1e;--surface-dim:#121212;--surface-bright:#272727;--surface-container-lowest:#121212;--surface-container-low:#1e1e1e;--surface-container:#222;--surface-container-high:#272727;--surface-container-highest:#2e2e2e;--on-surface:#f1f3f4;--on-surface-variant:#e8eaed;--on-surface-muted:#9aa0a6;--outline:#5f6368;--outline-variant:#343434;--outline-focus:#8ab4f8;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--glass-bg:#1e1e1ef2;--glass-bg-heavy:#1e1e1ef5;--glass-bg-light:#1e1e1eb3}*,:before,:after{box-sizing:border-box}html,body{overscroll-behavior:none;width:100%;height:100%;margin:0;padding:0}body{background:var(--bg-main);color:var(--on-surface);font-family:var(--font);font-size:var(--fs-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}h1,h2,h3,h4,h5,h6{font-weight:var(--fw-bold);color:var(--on-surface);margin:0;line-height:1.2}a{color:var(--accent3);font-weight:var(--fw-semibold);transition:color var(--duration-fast) var(--ease);text-decoration:none}a:hover{color:var(--accent)}small{color:var(--on-surface-muted)}h3{font-size:var(--fs-lg);margin:.2rem 0 .6rem}button,input,select{font:inherit;font-size:var(--fs-md)}button{background:var(--surface-container-lowest);color:var(--on-surface);border:2px solid var(--outline-variant);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);cursor:pointer;font-weight:var(--fw-bold);transition:all .1s var(--ease)}button:hover,.setupHeader-backBtn:hover{transform:translateY(1px)}button:active{box-shadow:none;transform:translateY(2px)}button.active{background:var(--accent3-dim);color:var(--accent3);border-color:var(--accent3);box-shadow:0 2px 0 var(--accent3)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}#closeAdvancedTradeBtn{background:var(--error);color:#fff;border-radius:var(--r-md);padding:0 10px}#closeAdvancedTradeBtn:hover{background:var(--error-dim);color:var(--error)}input,select{background:var(--surface-container-lowest);width:100%;color:var(--on-surface);border:2px solid var(--outline-variant);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);transition:border-color var(--duration-fast) var(--ease)}input:focus,select:focus{border-color:var(--accent3);outline:none}input:disabled,select:disabled{background:var(--surface-container);color:var(--on-surface-muted);border-color:var(--outline-variant);opacity:.7;cursor:not-allowed}label{color:var(--on-surface-variant);font-size:var(--fs-sm);font-weight:var(--fw-bold);margin:0 0 4px;display:block}.btn{justify-content:center;align-items:center;gap:var(--sp-2);background:var(--surface-bright);color:var(--on-surface);border:2px solid var(--outline-variant);border-radius:var(--r-md);font-weight:var(--fw-extrabold);font-size:var(--fs-base);cursor:pointer;box-shadow:0 4px 0 var(--outline-variant);transition:all .1s var(--ease);display:inline-flex}.btn:hover{box-shadow:0 1px 0 var(--outline-variant);transform:translateY(2px)}.btn:active{box-shadow:none;transform:translateY(4px)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn-green,.btn--success{background:var(--accent2);color:var(--accent2-on);border:2px solid var(--accent2-border);box-shadow:0 4px var(--accent2-border)}.btn-green:hover{background:var(--accent2-hover);color:var(--accent2);box-shadow:0 1px 0 var(--accent2-border)}.btn-gray{background:var(--accent3);color:var(--accent3-on);border:2px solid var(--accent3-border);box-shadow:0 4px var(--accent3-border)}.btn-gray:hover{background:var(--accent3-hover);color:var(--accent3);box-shadow:0 1px 0 var(--accent3-border)}.btn-primary{background:var(--accent);color:var(--accent-on);border:2px solid var(--accent-border);box-shadow:0 4px var(--accent-border)}.btn-primary:hover{background:var(--accent-hover);color:var(--accent);box-shadow:0 1px 0 var(--accent-border)}.theme-toggle{--theme-toggle-width:58px;--theme-toggle-height:32px;--theme-toggle-thumb:24px;--theme-toggle-shift:26px;width:var(--theme-toggle-width);height:var(--theme-toggle-height);border:1px solid var(--outline-variant);border-radius:var(--r-full);color:var(--on-surface);box-shadow:inset 0 1px 0 #ffffffb3, 0 3px 0 var(--outline-variant);cursor:pointer;transition:background var(--duration) var(--ease), border-color var(--duration) var(--ease), box-shadow var(--duration-fast) var(--ease), transform var(--duration-fast) var(--ease);background:linear-gradient(135deg,#fff7d6,#d4e3ff);align-items:center;padding:3px;display:inline-flex;position:relative;overflow:hidden}.theme-toggle:hover{box-shadow:inset 0 1px 0 #ffffffb3, 0 1px 0 var(--outline-variant);transform:translateY(1px)}.theme-toggle:focus-visible{outline:2px solid var(--outline-focus);outline-offset:3px}.theme-toggle-track{border-radius:inherit;width:100%;height:100%;display:block;position:relative}.theme-toggle-thumb{z-index:1;width:var(--theme-toggle-thumb);height:var(--theme-toggle-thumb);transition:transform var(--duration) var(--ease), background var(--duration) var(--ease), box-shadow var(--duration) var(--ease);background:#fff;border-radius:50%;position:absolute;top:0;left:0;box-shadow:0 2px 6px #191c1e33,inset 0 -2px 4px #c76c0024}.theme-toggle-icon{z-index:2;pointer-events:none;transition:opacity var(--duration) var(--ease), transform var(--duration) var(--ease), color var(--duration) var(--ease);font-size:13px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.theme-toggle-sun{color:var(--accent);opacity:1;left:7px}.theme-toggle-moon{color:#505f76;opacity:.45;right:7px}.theme-toggle--compact{--theme-toggle-width:50px;--theme-toggle-height:30px;--theme-toggle-thumb:22px;--theme-toggle-shift:20px}:root[data-theme=dark] .theme-toggle{background:linear-gradient(135deg,#1f2937,#111827);border-color:#3f4652;box-shadow:inset 0 1px #ffffff14,0 3px #222831}:root[data-theme=dark] .theme-toggle:hover{box-shadow:inset 0 1px #ffffff14,0 1px #222831}:root[data-theme=dark] .theme-toggle-thumb{transform:translateX(var(--theme-toggle-shift));background:#f1f3f4;box-shadow:0 2px 8px #0000005c,inset 0 -2px 4px #505f763d}:root[data-theme=dark] .theme-toggle-sun{opacity:.45;transform:translateY(-50%)scale(.86)}:root[data-theme=dark] .theme-toggle-moon{color:#d4e3ff;opacity:1;transform:translateY(-50%)scale(1.04)}@media (prefers-reduced-motion:reduce){.theme-toggle,.theme-toggle-thumb,.theme-toggle-icon{transition:none}}.btn-sm{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-md);font-weight:var(--fw-bold)}.card{background:var(--surface-container-lowest);border:3px solid var(--outline-variant);border-radius:var(--r-xl);padding:var(--sp-5);margin:var(--sp-4) 0;box-shadow:var(--shadow-sm)}#advancedTradeModal>.card{width:80%;max-width:600px}.panel{background:var(--surface-container-low);border-right:1px solid var(--outline-variant);padding:var(--sp-6);overflow:auto}.right{border-left:1px solid var(--outline-variant);border-right:0}.row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.grid2{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.settings-switch-row{justify-content:space-between;align-items:center;gap:var(--sp-3);border:1px solid var(--outline-variant);background:color-mix(in srgb, var(--surface-container-lowest) 88%, transparent);cursor:pointer;border-radius:14px;min-height:64px;padding:11px 13px;transition:border-color .16s,background .16s,box-shadow .16s;display:flex}.settings-switch-row:hover{border-color:color-mix(in srgb, var(--accent) 38%, var(--outline-variant));background:color-mix(in srgb, var(--accent) 4%, var(--surface-container-lowest))}.settings-switch-row:has(.settings-switch-input:checked){border-color:color-mix(in srgb, var(--accent) 28%, var(--outline-variant));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 7%, transparent)}.settings-switch-row>span:first-child{flex-direction:column;gap:2px;display:flex}.settings-switch-row small{color:var(--on-surface-muted);font-size:11px}.settings-switch-input{opacity:0;pointer-events:none;position:absolute}.settings-switch{background:color-mix(in srgb, var(--on-surface-muted) 32%, transparent);width:48px;height:28px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--outline) 32%, transparent);border-radius:999px;flex:none;transition:background .18s,box-shadow .18s;position:relative}.settings-switch:after{content:"";background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .22s cubic-bezier(.2,.8,.2,1);position:absolute;top:3px;left:3px;box-shadow:0 2px 7px #00000047}.settings-switch-input:checked+.settings-switch{background:var(--accent);box-shadow:inset 0 0 0 1px #0000000d, 0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent)}.settings-switch-input:checked+.settings-switch:after{transform:translate(20px)}.settings-switch-input:focus-visible+.settings-switch{outline:3px solid color-mix(in srgb, var(--accent) 42%, transparent);outline-offset:2px}.settings-switch-input:disabled+.settings-switch{opacity:.5}.offline-resume-block{gap:var(--sp-3);padding:var(--sp-3);border:1px solid color-mix(in srgb, var(--accent) 38%, var(--outline-variant));border-radius:var(--r-lg);background:color-mix(in srgb, var(--accent) 8%, var(--surface-bright));box-shadow:inset 0 1px 0 color-mix(in srgb, var(--surface-bright) 75%, transparent);display:grid}.offline-resume-copy{gap:2px;display:grid}.offline-resume-copy strong{color:var(--on-surface)}.offline-resume-copy small{color:var(--on-surface-muted)}.offline-resume-actions{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}@media (prefers-reduced-motion:reduce){.settings-switch,.settings-switch:after{transition:none}}#app{width:100%;height:100%;position:relative;overflow:hidden}#app.hide-right .right-sidebar{display:none!important}.brand{font-family:var(--font);font-weight:var(--fw-black);color:var(--on-surface);margin-bottom:var(--sp-1);align-items:center;gap:12px;font-size:32px;display:flex}.brand:before{content:"⬡";color:var(--accent);font-size:38px;line-height:1}.subtitle{color:var(--on-surface-muted);font-size:var(--fs-sm);font-weight:var(--fw-medium);margin-bottom:var(--sp-4)}#mapWrap{background:var(--bg-main);background-image:radial-gradient(var(--outline-variant) 1px, transparent 0);touch-action:none;background-size:32px 32px;height:100%;position:relative;overflow:hidden}#mapWrap.is-dragging{cursor:grabbing}#svg{width:100%;height:100%;margin:auto;display:block}.board-surface{transform-origin:0 0;will-change:transform;contain:layout paint style;position:absolute;top:0;left:0;overflow:visible}.terrain-canvas,.board-overlay-svg{width:100%;height:100%;display:block;position:absolute;inset:0}.terrain-canvas{z-index:0;pointer-events:auto}.board-overlay-svg{z-index:1;pointer-events:auto;overflow:visible}.board-overlay{pointer-events:auto}.board-world{transform-box:fill-box}.terrain-base{stroke:#ffffff2e;stroke-width:1.25px;pointer-events:none}.terrain-layer.is-raster-ready .terrain-base-layer{display:none}.terrain-raster{pointer-events:none}.terrain-hit{fill-opacity:0;stroke:#0000;pointer-events:all}.graphics-toggle-btn[aria-pressed=false] .graphics-toggle-icon{color:var(--on-surface-muted)}.site,.siteOutline{stroke:var(--surface-bright);stroke-width:3px;transition:stroke var(--duration-fast), transform var(--duration-fast)}.site,.siteMarker{cursor:pointer}.site:hover,.siteMarker:hover .siteOutline{stroke:var(--accent);stroke-width:4px}.minerTierMarker,.buildingText,.buildingIcon{pointer-events:none}.siteHit{fill:#0000;stroke:#0000;pointer-events:all;stroke-width:10px;pointer-events:all;stroke-linecap:round;cursor:pointer}.edge{stroke:var(--outline-variant);stroke-width:6px;stroke-linecap:round;cursor:pointer;transition:stroke var(--duration-fast)}.edge:hover{stroke:var(--accent3);stroke-width:8px}.edge.blocked{cursor:not-allowed}.road{stroke-width:8px;stroke-linecap:round;cursor:pointer}.edgeHit{stroke:#0000;stroke-width:10px;stroke-linecap:round;fill:none;cursor:pointer}.blockX{fill:var(--error);font-size:24px;font-weight:var(--fw-black);text-anchor:middle;dominant-baseline:middle;pointer-events:none}.buildingText{text-anchor:middle;dominant-baseline:middle;fill:#fff;stroke:#0000007a;stroke-width:3px;paint-order:stroke fill;font-size:18px}.tiny{font-size:var(--fs-sm);color:var(--on-surface-muted)}.log{font-size:var(--fs-md);background:var(--surface-container-lowest);border-radius:var(--r-md);max-height:300px;padding:var(--sp-2);border:1px solid var(--outline-variant);line-height:1.5;overflow:auto}.log div{padding:4px var(--sp-2);border-radius:var(--r-sm);border-left:3px solid #0000;margin:0 0 4px}.log div:hover{background:var(--surface);border-left-color:var(--outline)}.log-player-marker{color:var(--player-color)}.pill{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--outline-variant);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.04em;padding:4px 10px}.tooltip{z-index:20;pointer-events:none;background:var(--on-surface);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);color:var(--surface-bright);box-shadow:var(--shadow-lg);font-size:var(--fs-sm);font-weight:var(--fw-medium);will-change:transform;max-width:300px;display:none;position:fixed;top:0;left:0}.tooltip-note{color:#aeb6c9}.tooltip-player{color:var(--player-color)}.tooltip-error{color:var(--error)}.tutorial-layer{--tutorial-panel-x:20px;--tutorial-panel-y:120px;z-index:10020;pointer-events:none;position:fixed;inset:0}.tutorial-spotlight{border:4px solid var(--accent);border-radius:var(--r-lg);width:0;height:0;animation:1.5s ease-in-out infinite tutorial-pulse;display:none;position:fixed;top:0;left:0;box-shadow:0 0 0 9999px #191c1e52,0 10px 32px #0f172a40}.tutorial-layer.has-target .tutorial-spotlight,.tutorial-layer.has-target{display:block}.tutorial-card{width:min(380px,100vw - 32px);height:fit-content;padding:var(--sp-4);border:1px solid color-mix(in srgb, var(--accent2) 32%, var(--outline-variant));border-radius:var(--r-lg);background:color-mix(in srgb, var(--surface-bright) 97%, transparent);box-shadow:var(--shadow-lg);color:var(--on-surface);pointer-events:auto;position:fixed;bottom:0;left:0}.tutorial-progress{margin-bottom:var(--sp-2);color:var(--accent2);font-size:var(--fs-xs);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:.04em}.tutorial-title{margin:0 0 var(--sp-2);font-size:var(--fs-xl);letter-spacing:0}.tutorial-copy{color:var(--on-surface-variant);font-size:var(--fs-md);white-space:normal;margin:0;line-height:1.45}.tutorial-actions{justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-4);display:flex}.tutorial-primary,.tutorial-secondary{border-radius:var(--r-md);min-height:40px;font-weight:var(--fw-bold);cursor:pointer}.tutorial-primary{background:var(--accent2);color:#fff;padding:0 var(--sp-4);border:0}.tutorial-primary:disabled{background:var(--surface);color:var(--on-surface-muted);cursor:default}.tutorial-secondary{border:1px solid var(--outline-variant);background:var(--surface-bright);color:var(--on-surface-variant);padding:0 var(--sp-3)}.tutorial-target{z-index:10021;filter:drop-shadow(0 0 6px #d87b1a);position:relative}.tutorial-layer.tutorial-trade-target .tutorial-spotlight{display:none}#advancedTradeModal .tutorial-target{outline:4px solid var(--accent);outline-offset:4px;border-radius:var(--r-md);box-shadow:0 0 0 8px color-mix(in srgb, var(--accent) 18%, transparent);filter:none}.tutorial-svg-target{filter:drop-shadow(0 0 6px #d87b1a)}@keyframes tutorial-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.025)}}.tutorial-layer.is-blocked .tutorial-card{animation:.4s ease-in-out tutorial-shake}@keyframes tutorial-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.rules{font-size:var(--fs-md);color:var(--on-surface-variant);line-height:1.6}.rules b{color:var(--on-surface);font-weight:var(--fw-bold)}#setup,#lobby-home,#room-lobby,#offline-lobby{background:var(--bg-main);z-index:50;padding:var(--sp-10) var(--sp-4) var(--sp-8);flex-direction:column;justify-content:flex-start;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden auto}.setupBox{background:0 0;flex-direction:column;width:min(1200px,100%);display:flex}.setupHeader{padding-bottom:var(--sp-4);margin-bottom:var(--sp-6);border-bottom:1px solid var(--outline-variant);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.setupHeader-left{gap:var(--sp-4);width:100%;display:flex}.setupHeader-backBtn{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex}.setupHeader-content{flex-direction:column;gap:4px;width:100%;margin-top:2px;display:flex}.setupHeader-brand{font-family:var(--font);font-weight:var(--fw-black);font-size:var(--fs-sm);color:var(--accent);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;margin-bottom:-4px;display:flex}.setupHeader-brand:before{content:"⬡";font-size:14px}.setupHeader h2{align-items:center;gap:var(--sp-2);margin:0;display:flex}.setupHeader-subtitle{font-size:var(--fs-sm);color:var(--on-surface-muted)}.setupHeader-right{gap:var(--sp-3);align-items:center;display:flex}.lobbyHomeGrid{gap:var(--sp-5);grid-template-columns:1fr 1.5fr 1fr;align-items:stretch;display:grid}.roomLobbyGrid{gap:var(--sp-5);grid-template-columns:1fr 1.5fr;align-items:stretch;display:grid}.lobbyHomeGrid>.card,.roomLobbyGrid>.card{background:var(--surface-bright);box-shadow:var(--shadow-sm);border:none;margin:0}.sectionHeader{margin-bottom:var(--sp-4);padding-bottom:var(--sp-2);border-bottom:1px solid var(--surface);justify-content:space-between;align-items:center;display:flex}.sectionHeader h3{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--on-surface);margin:0}#room-lobby .rightCol .sectionHeader{gap:var(--sp-3);flex-wrap:wrap}.roomVisibilityField{align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--on-surface-muted);text-transform:uppercase;letter-spacing:.04em;margin:0;display:flex}.roomVisibilityField select{width:auto;min-width:112px;height:36px;padding:0 var(--sp-8) 0 var(--sp-3);font-size:var(--fs-sm);font-weight:var(--fw-bold);text-transform:none;letter-spacing:0}.sharePanel{align-items:center;gap:var(--sp-3);margin-top:var(--sp-4);padding:var(--sp-4);background:var(--surface);border-radius:var(--r-lg);flex-direction:column;display:none}.sharePanel.visible{display:flex}.shareCode{color:var(--on-surface);font-family:monospace;font-size:var(--fs-4xl);font-weight:var(--fw-black);letter-spacing:.1em;text-align:center;margin:var(--sp-1) 0}.onlinePlayer:before{content:"👤";background:var(--surface);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;display:flex}.publicRooms{gap:var(--sp-2);flex-direction:column;max-height:400px;display:flex;overflow:hidden auto}.publicRoom{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3);background:var(--surface);border-radius:var(--r-md);cursor:pointer;transition:background .1s;display:flex}.publicRoom:hover{background:var(--outline-variant)}.publicRoom b{color:var(--on-surface);font-weight:var(--fw-bold);display:block}.publicRoom small{color:var(--on-surface-muted)}.publicRoomActions{gap:var(--sp-2);flex:none;display:flex}.emptyState{padding:var(--sp-6);background:var(--surface);border-radius:var(--r-md);color:var(--on-surface-muted);text-align:center;font-size:var(--fs-md);font-weight:var(--fw-medium)}.turnBanner{z-index:10;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-5);background:var(--surface-bright);border:1px solid var(--outline-variant);border-radius:var(--r-full);box-shadow:var(--shadow-md);font-size:var(--fs-md);font-weight:var(--fw-bold);white-space:nowrap;display:flex;position:absolute;top:20px;left:50%;transform:translate(-50%)}.turnBanner b{color:var(--accent)}.modalShade{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:80;background:#191c1e66;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal{background:var(--surface-bright);border-radius:var(--r-xl);width:min(400px,92vw);padding:var(--sp-6);box-shadow:var(--shadow-lg)}.started-room-modal{align-items:center;gap:var(--sp-4);width:min(430px,100vw - 32px);padding:var(--sp-6);background:var(--surface-bright);border:1px solid var(--outline-variant);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);text-align:center;flex-direction:column;display:flex}.started-room-icon{width:52px;height:52px;color:var(--accent2);background:color-mix(in srgb, var(--accent2) 14%, var(--surface));border:1px solid color-mix(in srgb, var(--accent2) 36%, var(--outline-variant));border-radius:50%;justify-content:center;align-items:center;display:flex}.started-room-copy{gap:var(--sp-2);flex-direction:column;display:flex}.started-room-eyebrow{color:var(--accent2);font-size:var(--fs-xs);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:.05em}.started-room-modal h3{color:var(--on-surface);font-size:var(--fs-2xl);margin:0}.started-room-modal p{color:var(--on-surface-muted);font-size:var(--fs-md);margin:0;line-height:1.5}.started-room-spectate-btn{width:100%;padding-block:var(--sp-3);font-size:var(--fs-lg);justify-content:center}.site-nav{z-index:100;background:var(--surface-bright);border-bottom:1px solid var(--outline-variant);width:100%;box-shadow:var(--shadow-sm);position:fixed;top:0}.site-nav-inner{max-width:var(--content-max);padding:0 var(--margin-desktop);justify-content:space-between;align-items:center;height:72px;margin:0 auto;display:flex}.site-nav-brand{font-family:var(--font);font-weight:var(--fw-black);color:var(--on-surface);align-items:center;gap:8px;font-size:24px;display:flex}.site-nav-brand:before{content:"⬡";color:var(--accent);font-size:28px}.site-nav-links{gap:var(--sp-6);display:flex}.site-nav-links a{color:var(--on-surface-variant);font-weight:var(--fw-bold)}.site-nav-links a:hover,.site-nav-links a.active{color:var(--accent)}.site-nav-actions{align-items:center;gap:var(--sp-3);display:flex}.hero{text-align:center;background:var(--bg-main);background-image:radial-gradient(var(--outline-variant) 1px, transparent 0);background-size:32px 32px;padding:140px 40px 40px}.hero-inner{background:var(--surface-bright);max-width:800px;padding:var(--sp-10);border-radius:var(--r-2xl);border:1px solid var(--outline-variant);box-shadow:var(--shadow-md);margin:0 auto}.hero h1{font-size:var(--fs-display);font-weight:var(--fw-black);letter-spacing:-.02em;color:var(--on-surface);margin-bottom:var(--sp-4)}.hero-subtitle{font-size:var(--fs-xl);color:var(--on-surface-variant);margin:0 auto var(--sp-8);line-height:1.6}.hero-ctas{gap:var(--sp-4);flex-wrap:wrap;justify-content:center;display:flex}.features-section{max-width:var(--content-max);padding:var(--sp-16) var(--margin-desktop);margin:0 auto}.features-section h2{text-align:center;font-size:var(--fs-4xl)}.features-grid{gap:var(--sp-6);grid-template-columns:repeat(3,1fr);padding:40px;display:grid}.feature-card{background:var(--surface-bright);border:1px solid var(--outline-variant);border-radius:var(--r-xl);padding:var(--sp-6);text-align:center;box-shadow:var(--shadow-sm)}.feature-icon{margin-bottom:var(--sp-4);font-size:48px}.feature-card h3{font-size:var(--fs-2xl);margin-bottom:var(--sp-2)}.feature-card p{color:var(--on-surface-variant);font-size:var(--fs-base)}.howto-section{max-width:900px;margin:0 auto;padding:40px}.howto-section h2{text-align:center;font-size:var(--fs-4xl);margin-bottom:var(--sp-10)}.howto-steps{gap:var(--sp-4);display:grid}.howto-step{gap:var(--sp-5);padding:var(--sp-4) var(--sp-6);border-radius:var(--r-xl);background:var(--surface-bright);border:1px solid var(--outline-variant);box-shadow:var(--shadow-sm);align-items:center;display:flex}.howto-num{background:var(--surface);width:48px;height:48px;color:var(--accent);font-weight:var(--fw-black);font-size:var(--fs-2xl);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.howto-step h4{font-size:var(--fs-xl);margin-bottom:4px}.howto-step p{color:var(--on-surface-variant);font-size:var(--fs-md);margin:0}.tutorial-cta{margin-top:var(--sp-8);text-align:center}.faq-list{text-align:left;max-width:800px;margin:0 auto;display:block}.faq-item{margin-bottom:var(--sp-8);display:block}.faq-item h4{margin-bottom:var(--sp-2);color:var(--on-surface)}.site-footer{background:var(--surface-bright);border-top:1px solid var(--outline-variant)}.site-footer-inner{max-width:var(--content-max);justify-content:space-between;align-items:center;margin:0 auto;padding:40px;display:flex}.legal-page{max-width:800px;margin:0 auto;padding:120px 40px 40px}.legal-page h1{font-size:var(--fs-4xl);margin-bottom:var(--sp-2)}.legal-page .legal-date{color:var(--on-surface-muted);margin-bottom:var(--sp-8)}.legal-page h2{color:var(--accent);margin-top:var(--sp-8)}@media (width<=760px){.lobbyHomeGrid,.roomLobbyGrid{gap:var(--sp-3);grid-template-columns:1fr}.roomVisibilityField{width:100%;padding:var(--sp-2) var(--sp-3);background:var(--surface);border-radius:var(--r-md);justify-content:space-between}.roomVisibilityField select{min-width:128px}#room-lobby .grid2,#offline-lobby .grid2{grid-template-columns:1fr}.roomStartActions{flex-direction:column}.features-grid{grid-template-columns:1fr}.site-nav-links{display:none}.site-nav-inner{padding:0 var(--margin-mobile)}.site-nav-actions{gap:var(--sp-2)}.site-nav-actions .btn{padding-left:var(--sp-3);padding-right:var(--sp-3)}.hero{padding:100px var(--margin-mobile) 40px}.hero-inner{padding:var(--sp-6)}.site-footer-inner{gap:var(--sp-4);text-align:center;flex-direction:column}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--outline);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--outline-focus)}.segmented-control{background:var(--surface-container-highest);border-radius:var(--r-md);gap:4px;width:100%;padding:4px;display:flex}.segmented-control .segment{cursor:pointer;flex:1;margin:0;position:relative}.segmented-control .segment input{opacity:0;pointer-events:none;position:absolute}.segmented-control .segment-text{padding:var(--sp-2);font-weight:var(--fw-bold);color:var(--on-surface-variant);border-radius:calc(var(--r-md) - 4px);transition:all var(--duration-fast) var(--ease);text-align:center;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:flex}.segmented-control .segment:hover .segment-text{color:var(--on-surface);background:#0000000d}.segmented-control .segment:has(input:checked) .segment-text{background:var(--surface-bright);color:var(--accent);box-shadow:var(--shadow-sm)}.segmented-control.is-disabled{opacity:.58;cursor:not-allowed}.segmented-control.is-disabled .segment{cursor:not-allowed}.segmented-control .segment:has(input:disabled) .segment-text{color:var(--on-surface-muted)}.scrollbar-hidden::-webkit-scrollbar{display:none}.scrollbar-hidden{-ms-overflow-style:none;scrollbar-width:none}.action-btn{border-radius:var(--r-lg);cursor:pointer;transition:all var(--duration-fast) var(--ease);box-shadow:none;background:0 0;border:2px solid #0000;align-items:center;gap:12px;padding:4px 12px;display:flex}.action-btn:hover{background:var(--surface-bright);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.action-btn:active{box-shadow:none;transform:translateY(0)}.action-btn.active{background:color-mix(in srgb, var(--accent2) 15%, transparent);border-color:var(--accent2);color:var(--accent2);box-shadow:none}.left-sidebar,.right-sidebar{width:320px;padding:var(--sp-4);border-radius:var(--r-lg);flex-shrink:0;position:absolute;top:85px;bottom:100px}.log-panel{margin-top:var(--sp-3)!important}.r-lg{border-radius:var(--r-lg)}.right-sidebar{-webkit-mask-image:linear-gradient(to bottom, transparent, black var(--sp-4), black calc(100% - var(--sp-5)), transparent 100%);-webkit-mask-image:linear-gradient(to bottom, transparent, black var(--sp-4), black calc(100% - var(--sp-5)), transparent 100%);mask-image:linear-gradient(to bottom, transparent, black var(--sp-4), black calc(100% - var(--sp-5)), transparent 100%);right:0}.left-sidebar{left:0}.bottom-bar,.bottom-bar-wrapper{padding:var(--sp-4)}.bottom-bar-wrapper{padding:var(--sp-2);padding-bottom:var(--sp-4);position:absolute;bottom:0}#app.online-spectating .bottom-bar-wrapper{display:none!important}.spectator-mode-notice{min-height:42px;padding:var(--sp-1) var(--sp-3);color:var(--on-surface);background:color-mix(in srgb, var(--accent2) 16%, var(--surface-bright));border:1px solid color-mix(in srgb, var(--accent2) 42%, var(--outline-variant));border-radius:var(--r-md);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--surface-bright) 70%, transparent);white-space:nowrap;flex-direction:column;justify-content:center;align-items:center;display:flex}.spectator-mode-notice span{font-size:var(--fs-sm);font-weight:var(--fw-black);text-transform:uppercase;letter-spacing:.05em}.spectator-mode-notice small{color:var(--on-surface-muted);font-size:var(--fs-xs);font-weight:var(--fw-bold)}@media (width<=768px){.spectator-mode-notice{gap:var(--sp-2);min-height:34px;padding:var(--sp-1) var(--sp-3);flex-direction:row;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.spectator-mode-notice small{display:none}}.desktop-only{display:block}.mobile-only{display:none!important}@media (width<=768px){.desktop-only{display:none!important}.mobile-only{display:flex!important}.tutorial-card{left:var(--sp-3);right:var(--sp-3);width:auto;padding:var(--sp-3);top:auto}.tutorial-title{font-size:var(--fs-lg)}.tutorial-copy{font-size:var(--fs-sm)}.tutorial-actions{margin-top:var(--sp-3)}.tutorial-primary,.tutorial-secondary{min-height:38px}.ui-layer{justify-content:flex-start}.top-bar{margin:var(--sp-2);padding:var(--sp-2);border-radius:var(--r-lg);justify-content:space-between;gap:4px;width:calc(100% - 16px)}.brand{display:none!important}.turn-info{gap:8px!important;display:flex!important}.main-area{padding:0 var(--sp-2);justify-content:flex-start;gap:var(--sp-2);flex-direction:column}.left-sidebar{width:min(232px,100vw - 24px);max-width:none;left:var(--sp-3);gap:0;min-height:170px;max-height:none;top:100px;bottom:auto;padding:0!important}#advancedTradeModal>.card{width:100%}.left-sidebar #priceTrackerCard,.left-sidebar #rulesSnapshotCard{transition:transform .26s var(--ease), opacity .2s var(--ease);will-change:transform, opacity;position:absolute;top:0;left:0}.left-sidebar.rules-open #priceTrackerCard{transform:translateX(calc(-100% - var(--sp-4)));opacity:0;pointer-events:none}.left-sidebar #rulesSnapshotCard{border-radius:var(--r-lg);width:min(232px,100vw - 24px);max-height:min(58dvh,420px);transform:translateX(calc(-100% - var(--sp-4)));opacity:0;box-shadow:var(--shadow-sm);overflow:auto;padding:10px!important}.left-sidebar #rulesSnapshotCard.d-block{animation:left-rules-panel-in .26s var(--ease) both;display:block}.left-sidebar.rules-open #rulesSnapshotCard{opacity:1;transform:translate(0)}.left-sidebar #rulesSnapshotCard h3{letter-spacing:.08em;text-transform:uppercase;font-size:11px;margin:0 0 6px!important}.left-sidebar #rulesSnapshotCard .rules{font-size:11px;line-height:1.25}@keyframes left-rules-panel-in{0%{transform:translateX(calc(-100% - var(--sp-4)));opacity:0}to{opacity:1;transform:translate(0)}}.right-sidebar{transition:transform .3s var(--ease);right:0;transform:translate(100%);padding:var(--sp-4)!important}.right-sidebar.mobile-open{transform:translate(0)}.bottom-bar-wrapper{width:100%;margin-top:auto}#mobileTopStats{right:var(--sp-3);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);z-index:9;pointer-events:auto;transition:transform .3s var(--ease), opacity .3s var(--ease);top:100px;padding:var(--sp-2)!important;background:var(--glass-bg)!important;border-radius:var(--r-lg)!important;flex-direction:column!important;align-items:center!important;gap:8px!important;position:fixed!important}#mobileTopStats.slide-out-right{opacity:0;transform:translate(150%)}.menu-btn{padding:6px}.bottom-bar::-webkit-scrollbar{display:none}.actions-group{flex:auto;gap:4px;min-width:0}.action-btn{border-radius:var(--r-md);white-space:normal;flex-direction:column;flex:1 1 0;justify-content:center;gap:4px;min-width:0;padding:0 4px}}.d-none{display:none!important}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.flex-col{flex-direction:column}.flex-1{flex:1}.align-center{align-items:center}.align-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}.gap-sp-2{gap:var(--sp-2)}.gap-sp-3{gap:var(--sp-3)}.gap-sp-4{gap:var(--sp-4)}.m-0{margin:0}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mt-2{margin-top:var(--sp-2)}.mt-3{margin-top:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.mb-2{margin-bottom:var(--sp-2)}.mb-3{margin-bottom:var(--sp-3)}.mb-4{margin-bottom:var(--sp-4)}.my-4{margin-top:var(--sp-4);margin-bottom:var(--sp-4)}.ml-auto{margin-left:auto}.p-0{padding:0}.p-2{padding:var(--sp-2)}.p-3{padding:var(--sp-3)}.p-4{padding:var(--sp-4)}.px-3{padding-left:var(--sp-3);padding-right:var(--sp-3)}.px-4{padding-left:var(--sp-4);padding-right:var(--sp-4)}.px-6{padding-left:var(--sp-6);padding-right:var(--sp-6)}.py-2{padding-top:var(--sp-2);padding-bottom:var(--sp-2)}.w-100{width:100%}.w-auto{width:auto}.max-w-100{max-width:100%}.h-100{height:100%}.text-center{text-align:center}.text-left{text-align:left}.text-accent{color:var(--accent)}.text-accent3-on{color:var(--accent3-on)}.text-muted{color:var(--on-surface-muted)}.text-variant{color:var(--on-surface-variant)}.font-bold{font-weight:700}.fs-sm{font-size:var(--fs-sm)}.fs-md{font-size:var(--fs-md)}.fs-lg{font-size:var(--fs-lg)}.fs-xl{font-size:var(--fs-xl)}.bg-transparent{background:0 0}.bg-surface{background:var(--surface)}.bg-surface-bright{background:var(--surface-bright)}.border-none{border:none}.border-transparent{border-color:#0000}.uppercase{text-transform:uppercase}.delay-1{animation-delay:80ms}.delay-2{animation-delay:.16s}.delay-3{animation-delay:.24s}.delay-4{animation-delay:.32s}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);border:1px solid var(--outline-variant)}.pointer{cursor:pointer}.border-t-variant{border-top:1px solid var(--outline-variant)}.py-0{padding-top:0;padding-bottom:0}.share-code-input{padding:var(--sp-2) var(--sp-3);border:1px solid var(--outline-variant);border-radius:var(--r-md) 0 0 var(--r-md);letter-spacing:2px;border-right:none;font-family:monospace}.copy-code-btn{border-radius:0 var(--r-md) var(--r-md) 0;transform:translateY(-2px)}.overflow-auto{overflow:auto}.font-mono{font-family:monospace}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.overflow-hidden{overflow:hidden}.min-h-0{min-height:0}.absolute-bottom-left{z-index:10;background:var(--glass-bg-light);border-radius:4px;padding:2px 6px;position:absolute;bottom:8px;left:8px}.mobile-trade-modal{z-index:9999;background:#00000080;position:fixed;inset:0}.max-w-400{max-width:400px}.text-10{font-size:10px}.text-11{font-size:11px}.text-24{font-size:24px}.log-action-text{color:var(--accent2);padding-bottom:8px;font-size:11px}.line-height-14{line-height:1.4}.w-1px{width:1px}.h-40px{height:40px}.h-50px{height:50px}.bg-outline-variant{background:var(--outline-variant)}.mx-1{margin-left:4px;margin-right:4px}.mt-1{margin-top:4px}.d-block{display:block}.position-relative{position:relative}.mobile-menu-btn{width:32px;height:32px}.mobile-top-stats{border:1px solid var(--outline-variant);border-radius:var(--r-md)}.mobile-stat{gap:2px}.mobile-stat-text{font-size:var(--fs-sm)}.trade-label{color:var(--on-surface)}.mobile-end-turn-icon{line-height:1}.trade-prices{border:1px solid var(--outline-variant);border-radius:var(--r-md)}.trade-amount{border:2px solid var(--outline-variant);border-radius:var(--r-md);max-width:120px}.trade-action{border-radius:var(--r-md);color:#fff;cursor:pointer;border:0}.trade-action-buy{background:var(--accent2)}.trade-action-sell{background:var(--error)}.trade-max-btn{background:var(--surface-dim);border:1px solid var(--outline-variant);border-radius:var(--r-md);color:var(--on-surface-variant);cursor:pointer;font-weight:var(--fw-bold)}.empty-state{flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.room-title-input{font-size:var(--fs-xl);background:0 0;border:1px solid #0000;width:auto;max-width:100%;margin:0;padding:0;font-weight:700;transition:border .2s,background .2s}.room-title-input:focus{border:1px solid var(--outline);background:var(--surface)}.lobby-input-group{cursor:pointer;background:var(--surface-bright);padding:var(--sp-2);border-radius:var(--r-md);border:1px solid var(--outline-variant);align-items:center;gap:8px;display:flex}.lobby-input-group span,.lobby-input-group label{color:var(--on-surface-muted);white-space:nowrap;margin:0}.lobby-input-group input{background:0 0;border:none;outline:none;flex:1;padding:0;font-weight:700}.lobby-input-group input:focus{border:none}.lobby-name-field{cursor:default}.nameDiceBtn{border:1px solid var(--outline-variant);border-radius:var(--r-md);background:var(--surface);width:44px;min-width:44px;height:44px;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease), box-shadow var(--duration-fast) var(--ease);flex:none;justify-content:center;align-items:center;padding:0;font-size:22px;line-height:1;display:inline-flex}.nameDiceBtn:hover{background:var(--surface-bright);box-shadow:var(--shadow-md);transform:translateY(-1px)rotate(8deg)}.nameDiceBtn:active{box-shadow:var(--shadow-sm);transform:translateY(1px)rotate(-8deg)scale(.96)}.nameDiceIcon{width:26px;height:26px;display:block}.inlineNameDice{width:40px;min-width:40px;height:40px;font-size:20px}.inlineNameDice .nameDiceIcon{width:22px;height:22px}.turn-timer-bar-container{background:var(--surface-dim);z-index:100;height:6px;display:none;position:absolute;top:0;left:0;right:0}.turn-timer-bar-container.is-visible{display:block}.turn-timer-bar{background:var(--accent2);width:100%;height:100%;transition:width .1s linear,background-color .3s}.turn-timer-bar.is-disconnected{background:var(--error)}.connection-notice{z-index:10001;border-radius:var(--r-md);background:var(--error);color:#fff;max-width:min(720px,100vw - 24px);font-size:var(--fs-sm);font-weight:var(--fw-bold);text-align:center;box-shadow:var(--shadow-md);pointer-events:none;padding:9px 16px;display:none;position:absolute;top:6px;left:50%;transform:translate(-50%)}.connection-notice.is-visible{display:block}.connection-notice.is-self{background:var(--error);color:#fff}.self-disconnect-overlay{z-index:9998;-webkit-backdrop-filter:grayscale(.8)blur(1px);backdrop-filter:grayscale(.8)blur(1px);pointer-events:auto;background:#1218216b;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.self-disconnect-overlay.is-visible{display:flex}.self-disconnect-panel{width:min(420px,100vw - 32px);padding:var(--sp-5);border:1px solid var(--outline-variant);border-radius:var(--r-lg);background:var(--glass-bg-heavy);box-shadow:var(--shadow-lg);text-align:center}.self-disconnect-title{color:var(--on-surface);font-size:var(--fs-lg);font-weight:var(--fw-bold)}.self-disconnect-subtitle{margin-top:var(--sp-2);color:var(--on-surface-muted);font-size:var(--fs-sm);font-weight:var(--fw-bold);text-transform:uppercase}#app.online-self-disconnected .map-wrapper{filter:grayscale(.85)}#app.online-self-disconnected .action-btn,#app.online-self-disconnected #endTurn,#app.online-self-disconnected #openAdvancedTradeBtn{pointer-events:none}.map-wrapper{z-index:1;background:var(--bg-main);background-image:radial-gradient(var(--outline-variant) 1px, transparent 0);background-size:32px 32px;position:absolute;inset:0;overflow:hidden}.ui-layer{pointer-events:none;z-index:10;flex-direction:column;justify-content:space-between;align-items:center;display:flex;position:absolute;inset:0}.top-bar-container{padding:var(--sp-3) var(--sp-4);margin:var(--sp-4) auto;background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--r-xl);box-shadow:var(--shadow-sm);pointer-events:auto;border:1px solid var(--outline-variant);z-index:10000;justify-content:space-between;align-items:center;gap:2em;width:fit-content;display:flex;position:relative}.btn-icon-circle{background:var(--surface);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:flex}.menu-btn{background:var(--surface-bright);border-radius:var(--r-md);cursor:pointer;flex-direction:column;align-items:center;gap:2px;padding:4px 12px;display:flex}.menu-btn.is-active,.menu-btn[aria-pressed=true]{background:color-mix(in srgb, var(--accent2) 18%, var(--surface-bright));border-color:var(--accent2);color:var(--accent2);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent2) 40%, transparent)}#toggleRightBtn[aria-pressed=true]{background:var(--accent2);border-color:var(--accent2);color:#fff}.log-icon-toggle{transition:transform .2s}.log-icon-toggle.is-collapsed{transform:rotate(180deg)}.end-turn-btn-large{background:var(--accent2);color:#fff;border-radius:var(--r-lg);padding:0 var(--sp-4);height:50px;font-weight:700;font-size:var(--fs-md);cursor:pointer;border:none;flex-direction:column;justify-content:center;align-items:center;display:flex}.undo-btn{background:var(--accent3);color:var(--accent3-on);border:1px solid var(--border);border-radius:var(--r-lg);padding:0 var(--sp-4);height:50px;font-weight:700;font-size:var(--fs-md);cursor:pointer;justify-content:center;align-items:center;transition:background .15s,transform 50ms;display:flex}.undo-btn:hover:not(:disabled){background:var(--surface)}.undo-btn:active:not(:disabled){transform:scale(.96)}.undo-btn:disabled{opacity:.4;cursor:not-allowed}:root{--sp-16:64px;--green:var(--success);--red:var(--error);--primary:var(--accent3)}.grid-full{grid-column:1/-1}.timer-text{color:var(--on-surface);font-size:var(--fs-md);font-weight:var(--fw-bold)}.log-panel{flex:0 auto;max-height:200px}.bottom-bar{border-radius:var(--r-xl);justify-content:center;gap:var(--sp-1);flex-wrap:nowrap;width:fit-content;max-width:100%;overflow-x:auto}.left-sidebar,.right-sidebar{padding-bottom:var(--sp-5)}.emptyState,.empty-state{padding:var(--sp-8);flex-direction:column;justify-content:center;align-items:center;display:flex}.icon-defs{display:none}.rosterSlot{justify-content:space-between;align-items:center;gap:var(--sp-2);min-height:48px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--outline-variant);border-radius:var(--r-md);background:var(--surface-container-lowest);transition:background var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease), box-shadow var(--duration-fast) var(--ease), transform var(--duration-fast) var(--ease);display:flex}.humanSlot,.botSlot{background:var(--surface);border-color:color-mix(in srgb, var(--player-color,var(--outline-variant)) 34%, var(--outline-variant))}.emptySlot{border-style:dashed}.emptySlotHover{cursor:pointer}.roster-main,.slotHover{align-items:center;gap:var(--sp-2);display:flex}.roster-main-wide{gap:var(--sp-3);flex:auto;width:100%;min-width:0}.slotDefault{justify-content:space-between;align-items:center;width:100%;display:flex}.slotHover{width:100%;display:none}.emptySlotHover:hover .slotDefault{display:none}.emptySlotHover:hover .slotHover{display:flex}.emptySlotHover:hover{border-color:var(--player-color,var(--accent));background:color-mix(in srgb, var(--player-color,var(--accent)) 10%, var(--surface-bright))}.status-dot{background:var(--success);width:12px;height:12px;margin-right:var(--sp-1);border-radius:50%;flex:none}.slot-role{margin-left:var(--sp-2);opacity:.7;flex:none;font-size:.8em}.rosterSpectatorDivider{align-items:center;gap:var(--sp-2);margin:var(--sp-2) 0 0;color:var(--on-surface-muted);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.04em;display:flex}.rosterSpectatorDivider:before,.rosterSpectatorDivider:after{content:"";border-top:1px dashed var(--outline-variant);flex:auto;height:0}.rosterSpectatorDivider span{flex:none}.spectatorSlot{border-style:dashed;border-color:var(--outline-variant);background:var(--surface-container-lowest);color:var(--on-surface-muted)}.spectatorSlot.selfSlot{border-color:var(--outline-variant);box-shadow:none}.spectatorSlot .rosterNameInput,.spectatorSlot b{color:var(--on-surface-muted)}.spectatorSlot .slot-role,.spectatorSlot.selfSlot .slot-role{color:var(--on-surface-muted);font-weight:var(--fw-bold);opacity:1}.spectatorSlot .selfBadge{background:var(--surface-container);color:var(--on-surface-muted)}.demo-seat-controls{align-items:center;gap:var(--sp-2);opacity:1;flex-wrap:wrap;flex:auto;min-width:0;margin-left:0;display:flex}.demo-seat-select{flex:180px;min-width:0;max-width:260px}.demo-custom-file{align-items:center;gap:var(--sp-2);flex:220px;min-width:0;display:inline-flex}.demo-custom-file[hidden],.demo-custom-file-input{display:none}.demo-custom-file-button{min-height:36px;padding:0 var(--sp-3);border:1px solid var(--outline-variant);border-radius:var(--r-sm);background:var(--surface-container);color:var(--on-surface);font-weight:var(--fw-bold);cursor:pointer;flex:none}.demo-custom-file-button:hover{border-color:var(--primary);background:var(--surface-container-high)}.demo-custom-file-name{min-width:0;color:var(--on-surface-variant);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.selfSlot{border-color:var(--player-color,var(--accent));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--player-color,var(--accent)) 24%, transparent)}.selfSlot .slot-role{opacity:1;color:var(--accent2);font-weight:var(--fw-bold)}.selfBadge{border-radius:var(--r-full);background:color-mix(in srgb, var(--player-color,var(--accent)) 18%, var(--surface-bright));color:var(--accent2);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;flex:none;padding:2px 8px}.slot-add{color:var(--primary);font-size:var(--fs-sm)}.muted-half{opacity:.5}.dangerIconBtn{width:24px;height:24px;color:var(--error);cursor:pointer;box-shadow:none;background:0 0;border:0;padding:0}.dangerIconBtn:hover{background:var(--error-dim);box-shadow:none;transform:none}.playerColorBadge,.player-card .dot{background:var(--player-color,var(--accent));border-radius:50%;display:inline-block;box-shadow:inset 0 0 0 1px #0000001a}.playerColorBadge{flex:none;width:16px;height:16px}.offlineSlot{cursor:pointer;margin:0}.localToggleSlot:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.localToggleSlot[data-slot-type=bot]:hover{background:color-mix(in srgb, var(--accent2) 10%, var(--surface-bright));border-color:var(--accent2)}.localToggleSlot[data-slot-type=human]:hover{background:color-mix(in srgb, var(--error) 8%, var(--surface-bright));border-color:color-mix(in srgb, var(--error) 60%, var(--outline-variant))}.localToggleSlot:active{transform:translateY(1px)scale(.99)}.rosterNameInput,.offlineNameInput{width:100%;min-width:0;font-weight:var(--fw-bold);font-size:var(--fs-base);color:var(--on-surface);padding:var(--sp-1) 0;background:0 0;border:0;outline:0;flex:1;line-height:1.35}.onlineNameInput{flex:12rem;min-width:0}.rosterNameInput:focus,.offlineNameInput:focus{box-shadow:inset 0 -2px 0 var(--player-color,var(--accent))}.rosterNameInput.is-name-taken,.rosterNameInput.is-name-taken:focus{color:var(--error);box-shadow:inset 0 -2px 0 var(--error)}.nameTakenError{font-size:var(--fs-sm,.85rem);color:var(--error);margin-top:2px;display:block}.player-card{--accent:var(--player-color,var(--accent));background:var(--surface-bright);border:2px solid var(--outline-variant);border-radius:var(--r-lg);padding:var(--sp-4);box-shadow:var(--shadow-sm);transition:border-color .1s var(--ease), opacity .1s var(--ease);overflow:hidden}.player-card.is-current{border-color:var(--player-color,var(--accent))}.player-card.is-inactive{opacity:.45}.player-card-header{justify-content:space-between;align-items:center;gap:var(--sp-2);cursor:pointer;flex-wrap:wrap;display:flex}.card-player-info,.card-player-stats,.coins-badge,.resource-item{align-items:center;display:flex}.card-player-info{gap:var(--sp-2);white-space:nowrap}.card-player-stats{gap:var(--sp-2);flex-wrap:wrap}.resources{justify-content:space-between;width:100%}.player-card .dot{flex:none;width:16px;height:16px}.player-name{color:var(--on-surface);font-weight:var(--fw-bold);font-size:var(--fs-lg)}.card-player-name-block{flex-direction:column;gap:2px;min-width:0;display:flex}.player-bot-kind{color:var(--on-surface-variant);font-size:var(--fs-sm);font-weight:var(--fw-normal);overflow-wrap:anywhere;line-height:1.2}.coins-badge{gap:var(--sp-1);background:var(--surface);border-radius:var(--r-md);border:1px solid var(--outline-variant);font-weight:var(--fw-bold);white-space:nowrap;padding:4px 10px}.coin-icon{vertical-align:-.14em;background:url(/svgs/coin.svg) 50%/contain no-repeat;flex:none;width:1.1em;height:1.1em;font-size:1em;line-height:1;display:inline-block}.coin-positive{color:var(--warning)}.resource-item{gap:var(--sp-1);color:var(--on-surface);font-weight:var(--fw-bold);font-size:var(--fs-md);font-variant-numeric:tabular-nums}.resource-item.income,.income-positive{color:var(--success)}.income-negative{color:var(--error)}.income-stats{margin-bottom:var(--sp-2);padding-top:var(--sp-1);justify-content:space-around}.chevron{margin-left:var(--sp-1);color:var(--on-surface-muted);transition:transform .1s linear}.player-card.expanded .chevron{transform:rotate(180deg)}.collapsible-content{grid-template-rows:0fr;transition:grid-template-rows .1s linear;display:grid}.player-card.expanded .collapsible-content{grid-template-rows:1fr}.collapsible-inner{overflow:hidden}.card-stats{margin-top:var(--sp-2);justify-content:space-around;display:flex}.stat{margin:0 var(--sp-1);background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--r-md);flex-direction:column;flex:1;align-items:center;padding:4px 8px;display:flex}.stat-label{color:var(--on-surface-muted);text-transform:uppercase;font-size:10px}.stat-value{font-weight:var(--fw-bold)}.stat.danger .stat-value{color:var(--error)}.stat.success .stat-value{color:var(--success)}.game-over-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20000;background:#0f172ad9;justify-content:center;align-items:center;width:100%;height:100%;padding:1rem;display:flex;position:fixed;top:0;left:0}.game-over-modal{background:var(--surface);border:1px solid var(--border);border-radius:1rem;flex-direction:column;gap:clamp(1rem,2vw,1.5rem);width:100%;max-width:980px;height:fit-content;max-height:min(92dvh,900px);padding:clamp(1.25rem,2.2vw,2rem);display:flex;overflow:auto;box-shadow:0 20px 40px #0006}.game-over-header{grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;display:grid}.game-over-modal h2{text-align:center;color:var(--accent);text-transform:uppercase;letter-spacing:2px;grid-column:2;margin:0;font-size:2.5rem}.game-over-board-btn{white-space:nowrap;flex-direction:row;grid-column:3;justify-self:end;gap:.5rem;padding:.5rem .75rem}.podium-container{justify-content:center;align-items:flex-end;gap:clamp(.65rem,1.8vw,1.25rem);min-height:220px;padding:0 .25rem;display:flex}.podium-place{background:#ffffff0d;border-top-left-radius:.5rem;border-top-right-radius:.5rem;flex-direction:column;flex:1;justify-content:flex-start;align-items:center;width:100%;min-width:0;max-width:130px;padding:.75rem .7rem .9rem;display:flex;box-shadow:inset 0 2px 10px #0003}.podium-place.rank-1{background:linear-gradient(#eab3084d 0%,#eab3080d 100%);border-top:2px solid #eab308;flex:1.18;max-width:155px;min-height:210px;box-shadow:0 -4px 20px #eab30826,inset 0 2px 10px #0003}.podium-place.rank-2{background:linear-gradient(#94a3b84d 0%,#94a3b80d 100%);border-top:2px solid #94a3b8;min-height:172px;box-shadow:0 -4px 20px #94a3b826,inset 0 2px 10px #0003}.podium-place.rank-3{background:linear-gradient(#b453094d 0%,#b453090d 100%);border-top:2px solid #b45309;min-height:148px;box-shadow:0 -4px 20px #b4530926,inset 0 2px 10px #0003}.podium-place.rank-4,.podium-place.rank-5{max-width:100px;min-height:116px;box-shadow:none;border:1px solid var(--outline-variant);background:0 0;border-radius:.65rem;flex:.82;align-self:end;padding:.7rem}.podium-avatar{z-index:1;border:3px solid var(--surface);border-radius:50%;flex:none;width:clamp(42px,4vw,54px);height:clamp(42px,4vw,54px);margin-bottom:.55rem;box-shadow:0 6px 18px #00000038}.podium-place.rank-4 .podium-avatar,.podium-place.rank-5 .podium-avatar{border:2px solid var(--border);width:34px;height:34px;margin-bottom:.45rem}.podium-name{text-align:center;white-space:normal;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;width:100%;padding:0 .5rem;font-size:.9rem;font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.podium-place.rank-4 .podium-name,.podium-place.rank-5 .podium-name{margin-top:.5rem}.podium-coins{color:var(--accent);white-space:nowrap;justify-content:center;align-items:center;gap:.25rem;margin-top:.35rem;font-size:clamp(1rem,2.2vw,1.28rem);font-weight:700;display:inline-flex}.stats-table-container{border:1px solid var(--border);background:var(--surface-container-high);border-radius:.5rem;overflow-x:auto}.stats-table{border-collapse:collapse;width:100%;min-width:760px}.stats-table th,.stats-table td{border-bottom:1px solid var(--border);padding:.75rem 1rem}.stats-table th:not(:nth-child(2)):not(:nth-child(6)),.stats-table td:not(:nth-child(2)):not(:nth-child(6)){text-align:center}.stats-table th{background:var(--surface-hover);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.8rem;font-weight:600}.stats-table th:nth-child(2),.stats-table td:nth-child(2),.stats-table th:nth-child(6),.stats-table td:nth-child(6){text-align:left}.stats-table tr:last-child td{border-bottom:none}.stats-table tbody tr{transition:background-color .2s}.stats-table tbody tr:hover{background:var(--surface-hover)}.player-name-cell{align-items:center;gap:.5rem;font-weight:600;display:flex}.player-color-dot{width:14px;height:14px;box-shadow:0 0 0 2px color-mix(in srgb, var(--surface) 80%, transparent);border-radius:50%;flex:none}.leaderboard-income-cell{white-space:nowrap;font-size:.82rem}.income-parts-wrapper{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.35rem;display:flex}.leaderboard-income-coin{color:var(--on-surface);align-items:center;gap:.2rem;font-weight:800;display:inline-flex}.leaderboard-income-coin.is-positive{color:var(--success)}.leaderboard-income-coin.is-negative{color:var(--error)}.leaderboard-income-coin .coin-icon{width:.95em;height:.95em;margin:0}.game-over-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1rem;display:flex}@media (width<=640px){.game-over-overlay{padding:.75rem}.top-bar-container{gap:1em}.game-over-modal{border-radius:.75rem;gap:1rem;max-height:calc(100dvh - 1.5rem);padding:1rem;overflow-y:auto}.game-over-modal h2{letter-spacing:1px;margin-bottom:0;font-size:1.6rem}.game-over-header{grid-template-columns:1fr;gap:.75rem}.game-over-modal h2,.game-over-board-btn{grid-column:1}.game-over-board-btn{justify-content:center;justify-self:stretch}.podium-container{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:.65rem;min-height:0;padding:0;display:flex}.podium-place{border-radius:.7rem .7rem .5rem .5rem;flex:30%;width:100%;min-width:0;max-width:none;padding:.65rem .45rem .75rem}.podium-place.rank-1{flex:32%;order:2;min-height:168px}.podium-place.rank-2{order:1;min-height:138px}.podium-place.rank-3{order:3;min-height:122px}.podium-place.rank-4,.podium-place.rank-5{background:var(--surface-container-high);border:1px solid var(--outline-variant);border-radius:.5rem;flex-direction:row;flex:100%;justify-content:flex-start;align-items:center;gap:.5rem;width:100%;max-width:48%;min-height:0;padding:.6rem .7rem}.podium-place.rank-4{order:4}.podium-place.rank-5{order:5}.podium-avatar{width:38px;height:38px;margin-bottom:.45rem}.podium-place.rank-4 .podium-avatar,.podium-place.rank-5 .podium-avatar{flex-shrink:0;width:30px;height:30px;margin-bottom:0}.podium-name{white-space:normal;overflow-wrap:anywhere;padding:0 .15rem;font-size:.78rem;line-height:1.2}.podium-place.rank-4 .podium-name,.podium-place.rank-5 .podium-name{text-align:left;flex:1;width:auto;margin-top:0;padding:0}.podium-coins{white-space:nowrap;font-size:1rem}.podium-place.rank-4 .podium-coins,.podium-place.rank-5 .podium-coins{font-size:.9rem}.stats-table-container{background:0 0;border:none;overflow-x:auto}.stats-table{min-width:100%}.stats-table th,.stats-table td{padding:.5rem;font-size:.85rem}.stats-table th:nth-child(4),.stats-table td:nth-child(4),.stats-table th:nth-child(5),.stats-table td:nth-child(5),.stats-table th:nth-child(7),.stats-table td:nth-child(7),.stats-table th:nth-child(8),.stats-table td:nth-child(8){display:none}}@media (width<=400px){.top-bar #viewLeaderboardBtn{padding:6px 10px}.top-bar #viewLeaderboardBtn span{display:none}.setupHeader-left{gap:0}}.action-hint-icon{filter:drop-shadow(0 2px 2px #0000001a);font-size:22px;animation:2.4s ease-in-out infinite action-hint-bob}.action-hint-title{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--on-surface);line-height:1.1}.action-hint-sub{color:var(--on-surface-muted);font-size:11px}@keyframes action-hint-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.context-panel{z-index:30;pointer-events:auto;opacity:0;min-width:220px;max-width:280px;transition:opacity .14s var(--ease), transform .18s cubic-bezier(.18, .89, .32, 1.28);background:var(--surface-bright);border:1px solid color-mix(in srgb, var(--accent2) 30%, transparent);border-radius:var(--r-lg);box-shadow:0 12px 36px #0000002e, 0 2px 6px #00000014, 0 0 0 4px color-mix(in srgb, var(--accent2) 14%, transparent);-webkit-backdrop-filter:blur(12px);color:var(--on-surface);padding:10px 12px;display:none;position:absolute;transform:translate(-50%,calc(-100% - 14px))scale(.94)}.context-panel.open{opacity:1;display:block;transform:translate(-50%,calc(-100% - 14px))scale(1)}.context-panel:after{content:"";background:var(--surface-bright);border-right:1px solid color-mix(in srgb, var(--accent2) 30%, transparent);border-bottom:1px solid color-mix(in srgb, var(--accent2) 30%, transparent);width:12px;height:12px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)rotate(45deg)}.context-panel-header{color:var(--on-surface-muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:var(--fw-bold);align-items:center;gap:8px;margin-bottom:8px;display:flex}.context-panel-header .ctx-target{color:var(--on-surface);text-transform:none;letter-spacing:0;font-weight:500}.context-panel-header .ctx-dot{background:var(--accent2);width:8px;height:8px;box-shadow:0 0 6px color-mix(in srgb, var(--accent2) 60%, transparent);border-radius:50%}.context-options{flex-direction:column;gap:6px;display:flex}.ctx-option{background:var(--surface-container-low);border-radius:var(--r-md);cursor:pointer;text-align:left;width:100%;transition:transform .12s var(--ease), background .12s var(--ease), border-color .12s var(--ease), box-shadow .12s var(--ease);color:var(--on-surface);font:inherit;border:1.5px solid #0000;align-items:center;gap:10px;padding:8px 10px;display:flex}.ctx-option:hover:not(:disabled){background:var(--surface-bright);border-color:color-mix(in srgb, var(--accent2) 50%, transparent);transform:translateY(-1px);box-shadow:0 4px 14px #00000014}.ctx-option:active:not(:disabled){transform:translateY(0)}.ctx-option:disabled{opacity:.55;cursor:not-allowed}.ctx-option-icon{background:color-mix(in srgb, var(--accent2) 12%, transparent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:22px;display:inline-flex}.ctx-option-body{flex:1;min-width:0}.ctx-option-title{font-weight:var(--fw-bold);font-size:var(--fs-md);color:var(--on-surface);align-items:center;gap:6px;line-height:1.15;display:flex}.ctx-option-sub{color:var(--on-surface-muted);margin-top:2px;font-size:11px}.ctx-cost{color:var(--on-surface-variant);font-size:12px;font-weight:var(--fw-bold);align-items:center;gap:2px;margin-right:6px;display:inline-flex}.ctx-cost .res-icon{font-size:14px}.ctx-cost-missing{color:#c43f3f}.ctx-cost-have{color:var(--accent2)}.ctx-locked-reason{color:#c43f3f;padding:4px 0 0;font-size:11px}.ctx-resource-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.ctx-res-chip{background:var(--surface-container-low);font-size:12px;font-weight:var(--fw-bold);color:var(--on-surface);cursor:pointer;transition:all .12s var(--ease);border:1.5px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:4px 8px;display:inline-flex}.ctx-res-chip:hover:not(:disabled){background:var(--surface-bright);border-color:color-mix(in srgb, var(--accent2) 50%, transparent);transform:translateY(-1px)}.ctx-res-chip.selected{background:color-mix(in srgb, var(--accent2) 18%, transparent);border-color:var(--accent2)}.ctx-res-chip:disabled{opacity:.4;cursor:not-allowed}.ctx-confirm{background:var(--accent2);width:100%;color:var(--accent2-on);border-radius:var(--r-md);cursor:pointer;font-weight:var(--fw-bold);transition:background .12s var(--ease), transform .12s var(--ease);border:none;margin-top:8px;padding:8px 12px}.ctx-confirm:hover:not(:disabled){background:var(--accent2-hover);transform:translateY(-1px)}.ctx-confirm:disabled{opacity:.45;cursor:not-allowed}.ctx-divider{background:color-mix(in srgb, var(--on-surface) 8%, transparent);height:1px;margin:8px 0}@keyframes ctx-action-pulse{0%{stroke-width:14px;opacity:.85}to{stroke-width:38px;opacity:0}}.action-pulse-edge{pointer-events:none;stroke:var(--accent);stroke-linecap:round;fill:none;animation:.7s ease-out forwards ctx-action-pulse}@keyframes ctx-action-pulse-node{0%{r:14;opacity:.9}to{r:38;opacity:0}}.action-pulse-node{pointer-events:none;fill:none;stroke:var(--accent);stroke-width:3px;animation:.7s ease-out forwards ctx-action-pulse-node}@media (width<=768px){.context-panel{min-width:200px;max-width:240px}.ctx-option{padding:7px 9px}.ctx-option-icon{width:30px;height:30px;font-size:19px}.action-hint-title{font-size:13px}.action-hint-sub{display:none}}.your-turn-toast{z-index:200;background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 92%, white), color-mix(in srgb, var(--accent) 75%, var(--accent2)));color:var(--accent-on);box-shadow:0 12px 36px #00000040, 0 0 0 4px color-mix(in srgb, var(--accent) 30%, transparent);border:1px solid color-mix(in srgb, white 30%, var(--accent));pointer-events:none;opacity:0;border-radius:16px;align-items:center;gap:12px;padding:12px 18px;font-family:inherit;display:none;position:fixed;top:92px;left:50%;transform:translate(-50%,-16px)}.your-turn-toast.show{animation:3.6s ease-out forwards your-turn-pop;display:flex}@keyframes your-turn-pop{0%{opacity:0;transform:translate(-50%,-16px)scale(.85)}8%{opacity:1;transform:translate(-50%)scale(1.04)}18%{transform:translate(-50%)scale(1)}78%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-10px)scale(.97)}}.your-turn-icon{filter:drop-shadow(0 2px 4px #00000040);font-size:28px;animation:2.4s ease-in-out infinite your-turn-icon-spin}@keyframes your-turn-icon-spin{0%,to{transform:rotate(-10deg)}50%{transform:rotate(10deg)}}.your-turn-text{flex-direction:column;display:flex}.your-turn-title{letter-spacing:.02em;font-size:16px;font-weight:800;line-height:1.05}.your-turn-sub{opacity:.92;margin-top:2px;font-size:12px}.price-tracker{padding:var(--sp-3);gap:var(--sp-2);flex-direction:column;width:fit-content;min-width:0;display:flex}.price-tracker-header{justify-content:space-between;align-items:baseline;gap:var(--sp-2);display:flex}.price-tracker-title{letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface);font-size:11px;font-weight:800}.price-tracker-sub{letter-spacing:.06em;text-transform:uppercase;color:var(--on-surface-variant,var(--on-surface));opacity:.65;font-size:10px}.price-tracker-grid{flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.price-tracker-row{align-items:center;gap:var(--sp-2);border-radius:var(--r-sm,6px);font-variant-numeric:tabular-nums;width:fit-content;transition:background var(--duration-fast,.16s) var(--ease), transform var(--duration-fast,.16s) var(--ease);grid-template-columns:auto 1fr auto;padding:4px 6px;display:grid}.price-tracker-icon{font-size:16px;line-height:1}.price-tracker-name{color:var(--on-surface);text-transform:capitalize;font-size:12px;font-weight:600}.price-tracker-prices{font-weight:700;font-size:var(--fs-md);align-items:center;gap:4px;display:inline-flex}.price-tracker-current,.price-tracker-next{justify-content:flex-end;align-items:center;gap:3px;min-width:28px;display:inline-flex}.price-tracker-current{color:var(--on-surface)}.price-tracker-next{color:var(--on-surface-variant,var(--on-surface));opacity:.78}.price-tracker-current .coin-icon,.price-tracker-next .coin-icon{width:.85em;height:.85em;margin:0}.price-tracker-trend{text-align:center;width:1.15em;color:var(--on-surface-variant,var(--on-surface));opacity:.72;font-size:12px;line-height:1}.price-tracker-row.price-up .price-tracker-next,.price-tracker-row.price-up .price-tracker-trend{color:var(--warning,#c98400);opacity:1}.price-tracker-row.price-down .price-tracker-next,.price-tracker-row.price-down .price-tracker-trend{color:var(--success,#36a06b);opacity:1}.price-tracker-row.price-up{background:color-mix(in srgb, var(--warning,#c98400) 18%, transparent)}.price-tracker-row.price-down{background:color-mix(in srgb, var(--success,#36a06b) 18%, transparent)}.price-tracker-row.flash{animation:price-tracker-flash .8s var(--ease)}.trade-btn-detail{justify-content:center;align-items:center;gap:var(--sp-2);font-weight:var(--fw-bold);font-size:var(--fs-md);margin-top:2px;display:flex}@keyframes price-tracker-flash{0%{transform:scale(1)}35%{transform:scale(1.06)}to{transform:scale(1)}}@media (width<=768px){.price-tracker{border-radius:var(--r-lg);gap:5px;padding:6px 5px}.price-tracker-header{display:none}.price-tracker-grid{flex-direction:column;gap:5px}.price-tracker-row{border-radius:var(--r-md);flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:46px;padding:5px 3px;display:flex}.price-tracker-name{display:none}.price-tracker-prices{font-size:var(--fs-sm);justify-content:center;gap:1px;line-height:1}.price-tracker-icon{justify-content:center;align-items:center;width:24px;height:22px;font-size:17px;display:inline-flex}.price-tracker-current,.price-tracker-next{gap:1px;min-width:15px}.price-tracker-current .coin-icon,.price-tracker-next .coin-icon{width:.7em;height:.7em}.price-tracker-trend{width:.8em;font-size:9px}.trade-btn-detail{font-size:var(--fs-sm);gap:0}}.trade-cols{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);width:100%;display:grid}.trade-col{align-items:center;gap:var(--sp-2);padding:var(--sp-1);flex-direction:column;justify-content:space-between;display:flex}.trade-inv{width:100%;padding:var(--sp-3) var(--sp-2);background:color-mix(in srgb, var(--on-surface) 6%, transparent);border-radius:var(--r-md);flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.trade-inv-icon{filter:drop-shadow(0 2px 4px #0000001a);font-size:32px;line-height:1}.trade-inv-name{font-weight:var(--fw-bold);font-size:var(--fs-sm);color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.06em}.trade-inv-qty{color:var(--on-surface);font-size:28px;font-weight:800;line-height:1.1}.btn-trade-buy-all,.btn-trade-buy-one,.btn-trade-sell-one,.btn-trade-sell-all{width:100%;padding:var(--sp-2);border-radius:var(--r-sm);cursor:pointer;text-align:center;border:none;transition:opacity .15s,transform .15s}.btn-trade-buy-all:hover:not(:disabled),.btn-trade-buy-one:hover:not(:disabled),.btn-trade-sell-one:hover:not(:disabled),.btn-trade-sell-all:hover:not(:disabled){opacity:.85;transform:translateY(-1px)}.btn-trade-buy-all:active,.btn-trade-buy-one:active,.btn-trade-sell-one:active,.btn-trade-sell-all:active{transform:translateY(0)}.btn-trade-buy-all{background:color-mix(in srgb, var(--success) 15%, transparent);color:var(--success)}.btn-trade-buy-one{background:color-mix(in srgb, var(--success) 35%, transparent);color:var(--success)}.btn-trade-sell-all{background:color-mix(in srgb, var(--error) 15%, transparent);color:var(--error)}.btn-trade-sell-one{background:color-mix(in srgb, var(--error) 35%, transparent);color:var(--error)}.trade-btn-label{font-size:var(--fs-md);font-weight:var(--fw-bold);letter-spacing:.02em}.trade-btn-cost{padding-left:var(--sp-2);align-items:center;gap:3px;display:inline-flex}.trade-btn-amount,.trade-btn-cost{color:var(--success)}.btn-trade-buy-all:disabled .trade-btn-cost,.btn-trade-buy-one:disabled .trade-btn-cost,.btn-trade-sell-all:disabled .trade-btn-amount,.btn-trade-sell-one:disabled .trade-btn-amount{color:var(--error)}.trade-btn-cost .coin-icon{width:.9em;height:.9em}.market-info-icon{border:1px solid var(--outline);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;display:inline-flex}.text-success{color:var(--success)}.text-error{color:var(--error)}.border-left{border-left:1px solid var(--outline-variant)}
