:root{--good: #7fc77f;--bad: #e07878;--neutral: #c5bdb1;--muted: #888;--accent: #ffcf85;--app-bg: #0f0f0f;--app-text: #ece7df;--bg: var(--app-bg);--text: var(--app-text);--line: rgba(255, 204, 120, .24);--accent-soft: rgba(255, 204, 120, .12);--accent-mid: rgba(255, 204, 120, .28);--accent-strong: rgba(255, 204, 120, .48);--muted-surface: rgba(255, 255, 255, .06);--menu-bg-start: #1c1812;--menu-bg-end: #0c0907;--multiplayer-bg-start: #161210;--multiplayer-bg-mid: #241b16;--multiplayer-bg-end: #0f1110;--buff-positive: #4caf50;--buff-negative: #e53935;--hp-base: #b81c1c;--hp-fill: #ff5b5b;--hp-buffed: #ff9999;--hp-dimin: #2a2020;--panel-bg: rgba(14, 14, 14, .92);--panel-bg-alt: rgba(12, 12, 12, .92);--panel-bg-top: rgba(16, 16, 16, .86);--panel: var(--panel-bg);--panel-border: 1px solid rgba(255, 204, 120, .24);--panel-border-mid: 1px solid rgba(255, 194, 107, .28);--panel-blur: blur(10px);--panel-shadow: 0 1vh 4vh rgba(0, 0, 0, .55);--card-shadow: 0 .6vh 1.6vh rgba(0, 0, 0, .45);--button-hover-shadow: 0 0 .8vw rgba(255, 200, 120, .3);--active-shadow: 0 0 1vw rgba(255, 210, 120, .45);--title-shadow: 0 0 1.2vh rgba(255, 207, 133, .35);--input-bg: rgba(0, 0, 0, .3);--control-bg: rgba(255, 255, 255, .06);--control-hover-bg: rgba(255, 255, 255, .1);--button-bg: linear-gradient(to bottom, #73563a, #493626);--button-hover-bg: linear-gradient(to bottom, #7d6142, #543f2c);--button-muted-bg: #2a241e;--button-text: #ffd9a8;--card-bg: linear-gradient(to bottom, #473728, #241d17);--card-bg-selected: linear-gradient(to bottom, #5d4830, #322619);--scrollbar-thumb: #805c39;--r-sm: .5vw;--r-md: .7vw;--r-lg: 1vw;--r-xl: 1.2vw;--button-radius: var(--r-md);--z-overlay: 1;--z-left: 90;--z-right: 90;--z-allies: 90;--z-chat: 90;--z-top: 100;--z-timer: 110;--z-notif: 115;--z-bottom: 200;--z-arrow: 300;--z-tooltip: 999;--z-tooltip-hi: 1000}:root[data-style-preset=azure]{--accent: #7bc8ff;--app-bg: #111827;--app-text: #f4f7fb;--bg: var(--app-bg);--text: var(--app-text);--line: rgba(123, 200, 255, .26);--accent-soft: rgba(123, 200, 255, .12);--accent-mid: rgba(123, 200, 255, .28);--accent-strong: rgba(123, 200, 255, .48);--muted-surface: rgba(244, 247, 251, .06);--menu-bg-start: #18243a;--menu-bg-end: #111827;--multiplayer-bg-start: #18243a;--multiplayer-bg-mid: #162f49;--multiplayer-bg-end: #111827;--panel-bg: rgba(23, 32, 51, .92);--panel-bg-alt: rgba(19, 27, 44, .92);--panel-bg-top: rgba(32, 43, 66, .86);--panel: var(--panel-bg);--panel-border: 1px solid rgba(123, 200, 255, .26);--panel-border-mid: 1px solid rgba(123, 200, 255, .32);--panel-shadow: 0 1vh 4vh rgba(0, 0, 0, .32);--card-shadow: 0 .6vh 1.6vh rgba(0, 0, 0, .26);--button-hover-shadow: 0 0 .8vw rgba(123, 200, 255, .2);--active-shadow: 0 0 1vw rgba(123, 200, 255, .3);--title-shadow: 0 0 1.2vh rgba(123, 200, 255, .28);--input-bg: rgba(20, 28, 45, .72);--control-bg: rgba(244, 247, 251, .06);--control-hover-bg: rgba(244, 247, 251, .1);--button-bg: linear-gradient(to bottom, #2f5978, #17263d);--button-hover-bg: linear-gradient(to bottom, #3d6c91, #1d314d);--button-muted-bg: rgba(20, 28, 45, .82);--button-text: #f4f7fb;--card-bg: linear-gradient(to bottom, #1e314c, #151f33);--card-bg-selected: linear-gradient(to bottom, #28486a, #18283e);--scrollbar-thumb: #3e6688;--r-sm: 9px;--r-md: 14px;--r-lg: 20px;--r-xl: 24px;--button-radius: 14px}:root[data-style-preset=ember]{--accent: #ffb86b;--app-bg: #17110d;--app-text: #fff3e6;--bg: var(--app-bg);--text: var(--app-text);--line: rgba(255, 184, 107, .27);--accent-soft: rgba(255, 184, 107, .13);--accent-mid: rgba(255, 184, 107, .3);--accent-strong: rgba(255, 184, 107, .52);--muted-surface: rgba(255, 243, 230, .06);--menu-bg-start: #241812;--menu-bg-end: #17110d;--multiplayer-bg-start: #241812;--multiplayer-bg-mid: #2e1d14;--multiplayer-bg-end: #17110d;--panel-bg: rgba(36, 25, 19, .92);--panel-bg-alt: rgba(30, 20, 15, .92);--panel-bg-top: rgba(46, 31, 23, .86);--panel: var(--panel-bg);--panel-border: 1px solid rgba(255, 184, 107, .27);--panel-border-mid: 1px solid rgba(255, 184, 107, .34);--panel-shadow: 0 1vh 4vh rgba(0, 0, 0, .41);--card-shadow: 0 .6vh 1.6vh rgba(0, 0, 0, .34);--button-hover-shadow: 0 0 .8vw rgba(255, 184, 107, .25);--active-shadow: 0 0 1vw rgba(255, 184, 107, .34);--title-shadow: 0 0 1.2vh rgba(255, 184, 107, .32);--input-bg: rgba(28, 19, 15, .72);--control-bg: rgba(255, 243, 230, .06);--control-hover-bg: rgba(255, 243, 230, .1);--button-bg: linear-gradient(to bottom, #6b4427, #2c1b13);--button-hover-bg: linear-gradient(to bottom, #805331, #382218);--button-muted-bg: rgba(28, 19, 15, .82);--button-text: #fff3e6;--card-bg: linear-gradient(to bottom, #3a271b, #211711);--card-bg-selected: linear-gradient(to bottom, #56371f, #2b1d14);--scrollbar-thumb: #765238;--r-sm: 8px;--r-md: 12px;--r-lg: 17px;--r-xl: 20px;--button-radius: 12px}:root[data-style-preset=verdant]{--accent: #8ee6a6;--app-bg: #0d1713;--app-text: #effaf2;--bg: var(--app-bg);--text: var(--app-text);--line: rgba(142, 230, 166, .25);--accent-soft: rgba(142, 230, 166, .12);--accent-mid: rgba(142, 230, 166, .28);--accent-strong: rgba(142, 230, 166, .46);--muted-surface: rgba(239, 250, 242, .06);--menu-bg-start: #14241d;--menu-bg-end: #0d1713;--multiplayer-bg-start: #14241d;--multiplayer-bg-mid: #173021;--multiplayer-bg-end: #0d1713;--panel-bg: rgba(20, 35, 29, .92);--panel-bg-alt: rgba(16, 29, 24, .92);--panel-bg-top: rgba(28, 46, 37, .86);--panel: var(--panel-bg);--panel-border: 1px solid rgba(142, 230, 166, .25);--panel-border-mid: 1px solid rgba(142, 230, 166, .31);--panel-shadow: 0 1vh 4vh rgba(0, 0, 0, .27);--card-shadow: 0 .6vh 1.6vh rgba(0, 0, 0, .22);--button-hover-shadow: 0 0 .8vw rgba(142, 230, 166, .17);--active-shadow: 0 0 1vw rgba(142, 230, 166, .24);--title-shadow: 0 0 1.2vh rgba(142, 230, 166, .22);--input-bg: rgba(17, 29, 24, .72);--control-bg: rgba(239, 250, 242, .06);--control-hover-bg: rgba(239, 250, 242, .1);--button-bg: linear-gradient(to bottom, #2d6740, #14281d);--button-hover-bg: linear-gradient(to bottom, #397b4d, #183324);--button-muted-bg: rgba(17, 29, 24, .82);--button-text: #effaf2;--card-bg: linear-gradient(to bottom, #1e3c2c, #13251c);--card-bg-selected: linear-gradient(to bottom, #2a573b, #173222);--scrollbar-thumb: #4d7d5c;--r-sm: 10px;--r-md: 16px;--r-lg: 22px;--r-xl: 27px;--button-radius: 16px}*{margin:0;padding:0;box-sizing:border-box;font-family:Inter,Arial,sans-serif}html,body{width:100%;height:100%}body{overflow:hidden;background:var(--app-bg);color:var(--app-text);font-size:clamp(11px,.95vw,15px)}body.multiplayer-scroll{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto}button{border:none;outline:none}.game-world{position:fixed;inset:0;image-rendering:pixelated;background:radial-gradient(circle at center,rgba(255,255,255,.05),transparent 60%),linear-gradient(to bottom,#242424,#101010)}.collapse-tab{position:absolute;background:#ffffff40;color:transparent;padding:0;margin:0;border:none;display:block;cursor:pointer;user-select:none;transition:background .15s;z-index:var(--z-arrow);pointer-events:auto}.collapse-tab:hover{background:#ffffff73}.collapsed>.panel-content{display:none!important}.tab-left{top:0;bottom:0;right:100%;width:1vw;min-width:8px;border-radius:0 var(--r-sm) var(--r-sm) 0}.tab-right{top:0;bottom:0;left:100%;width:1vw;min-width:8px;border-radius:var(--r-sm) 0 0 var(--r-sm)}.tab-top{left:0;right:0;bottom:100%;height:1vh;min-height:8px;border-radius:0 0 var(--r-sm) var(--r-sm)}.tab-bottom{left:0;right:0;top:100%;height:1vh;min-height:8px;border-radius:var(--r-sm) var(--r-sm) 0 0}.delta-good{color:var(--good);font-weight:600}.delta-bad{color:var(--bad);font-weight:600}.muted{color:var(--muted)}.hidden{display:none!important}.tooltip{position:absolute;left:50%;bottom:120%;transform:translate(-50%);width:max-content;min-width:14vw;max-width:min(34vw,380px);background:#0a0a0af7;border:1px solid rgba(255,200,120,.24);border-radius:.6vw;padding:.8vh .7vw;opacity:0;pointer-events:none;transition:opacity .15s;z-index:var(--z-tooltip);text-align:left;font-size:.78em;color:#d7d0c7;font-weight:400;white-space:normal;overflow-wrap:break-word;word-break:normal;hyphens:none;box-sizing:border-box}.tooltip *{max-width:100%}.tooltip h4,.tooltip p,.tooltip ul,.tooltip li{white-space:normal}.tooltip h4{margin-bottom:.5vh;color:var(--accent);font-size:1.05em}.tooltip p{margin:0;line-height:1.4}.tooltip p+p{margin-top:.4vh}.tooltip ul{padding-left:1.2em;margin:.3vh 0 0;font-size:.95em}.tooltip ul li{margin-bottom:.2vh}.tooltip code{background:#ffffff0f;padding:0 .15vw;border-radius:3px;font-size:.95em;white-space:nowrap}.tooltip table{width:100%;border-collapse:collapse;margin-top:.4vh;font-size:.95em}.tooltip table td:first-child{color:#aaa}.tooltip table td:last-child{text-align:right;font-weight:600}.tooltip table td{padding:.15vh .3vw}.hdr-tip:hover .tooltip{opacity:1}.tooltip.floating,.tooltip.body-mounted{position:fixed;inset:0 auto auto 0;transform:none}.tooltip.floating.visible,.tooltip.body-mounted.visible{opacity:1}.cell-tooltip{position:fixed;background:#0a0a0af7;border:1px solid rgba(255,255,255,.2);border-radius:.6vw;padding:.5vh .7vw;font-size:.78em;color:#d7d0c7;opacity:0;pointer-events:none;transition:opacity .15s;z-index:var(--z-tooltip);min-width:0;max-width:320px;display:flex;flex-direction:column;gap:.3vh}.cell-tooltip.visible{opacity:1}.cell-tooltip-unit,.cell-tooltip-object{font-weight:600}.cell-tooltip-hazard{color:#b478ffe6;font-size:.92em}.cell-tooltip-hazard-title{color:#e7d6ff;font-weight:600;margin-top:.3vh}.cell-tooltip-hazard-slot{margin-top:.15vh;padding-left:.3vw}.cell-tooltip-hazard-slot-label{color:var(--accent);font-size:.82em;margin-right:.3vw}.cell-tooltip-hazard-line{color:#d8cdbb;font-size:.85em;padding-left:.5vw}.hazard-preview{position:fixed;background:#0a0a0af7;border:1px solid rgba(180,0,255,.5);border-radius:.6vw;padding:.6vh .8vw;font-size:.78em;color:#d7d0c7;opacity:0;pointer-events:none;transition:opacity .15s;z-index:var(--z-tooltip);max-width:300px}.hazard-preview.visible{opacity:1}.unit-info-tooltip{position:fixed;padding:.3vh .6vw;font-size:.75em;font-weight:600;color:#fff;background:#000000d1;border:1px solid rgba(255,255,255,.15);border-radius:.3vw;pointer-events:none;white-space:nowrap;opacity:0;transition:opacity .1s;z-index:9000}.unit-info-tooltip.visible{opacity:1}.tabbed-log{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;min-height:0}.tabbed-log.has-tabs{grid-template-rows:auto minmax(0,1fr) auto}.tabbed-log-tabs{display:flex;gap:4px;min-width:0;border-bottom:1px solid rgba(255,204,120,.18)}.tabbed-log-tab{appearance:none;min-width:0;padding:6px 10px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:700;cursor:pointer}.tabbed-log-tab:hover,.tabbed-log-tab.active{color:var(--accent)}.tabbed-log-tab.active{border-bottom-color:var(--accent)}.tabbed-log-feed{min-height:0;overflow:auto}.tabbed-log-row{line-height:1.4;overflow-wrap:anywhere}.tabbed-log-time{color:var(--muted);font-variant-numeric:tabular-nums}.tabbed-log-name{color:var(--accent);font-weight:700}.tabbed-log-name.local{color:#9bd0ff}.tabbed-log-event-row.warn{color:#ffd1a8}.tabbed-log-event-row.system{color:#d9d0c5}.tabbed-log-event-row.preview{color:#c9dbff}.tabbed-log-event-row.cutscene{color:var(--accent);font-weight:700}.tabbed-log-event-row.delimiter{margin:8px 0 4px;padding-top:6px;border-top:1px solid rgba(255,204,120,.2);color:var(--accent);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.tabbed-log-event-row.has-tooltip{cursor:default}.tabbed-log-tooltip-token{cursor:help;text-decoration:underline;text-decoration-color:#ffcc7859;text-underline-offset:2px}.tabbed-log-tooltip-token:hover{color:var(--accent)}.tabbed-log-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;min-width:0}.tabbed-log-send.menu-btn:hover:not(:disabled){transform:none}.tabbed-log-input{min-width:0}.right-bar-log-host{flex:1;min-height:0;display:grid}.right-bar-tabbed-log{min-height:0}.side-strip{position:absolute;top:0;left:0;right:0;height:.5vh;min-height:4px;z-index:2;pointer-events:none}.hp-bar{position:relative;height:1.5vh;min-height:13px;border-radius:999px;overflow:hidden;background:#2c1414;border:1px solid rgba(255,255,255,.06);display:flex}.hp-fill{height:100%;background:linear-gradient(to right,var(--hp-base),var(--hp-fill))}.hp-empty{height:100%}.hp-buffed-extension{height:100%;background:repeating-linear-gradient(45deg,var(--hp-buffed) 0 4px,rgba(255,180,180,.6) 4px 8px);border-left:1px dashed rgba(255,255,255,.4)}.hp-diminished-cap{height:100%;background:var(--hp-dimin);border-left:1px dashed rgba(255,255,255,.15)}.hp-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.7em;font-weight:700;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.9);pointer-events:none}.turn-order-wrapper{position:fixed;top:1vh;left:50%;transform:translate(-50%);width:min(56vw,760px);min-height:1px;z-index:var(--z-top);overflow:visible}.turn-order{display:flex;gap:.6vw;overflow-x:auto;padding:.8vh .8vw;background:var(--panel-bg-top);border:var(--panel-border-mid);border-radius:0 0 var(--r-lg) var(--r-lg);box-shadow:var(--panel-shadow);backdrop-filter:var(--panel-blur)}.turn-order::-webkit-scrollbar{height:.4vh}.turn-order::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}.turn-unit{position:relative;flex-shrink:0;width:4.5vw;min-width:50px;max-width:72px;height:7vh;min-height:60px;max-height:90px;border-radius:var(--r-md);overflow:hidden;cursor:pointer;background:var(--card-bg);border:.15vw solid color-mix(in srgb,var(--turn-side-color, white) 62%,transparent);box-shadow:inset 0 0 0 1px #00000073;transition:.18s}.turn-unit:hover{transform:translateY(-.3vh)}.turn-unit.active{border-color:#ffd372;box-shadow:var(--active-shadow)}.turn-unit.inspected{border-color:var(--accent-strong);box-shadow:var(--active-shadow)}.turn-unit.dead{opacity:.35}.turn-content{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45vh;padding:.45vh .25vw .3vh}.turn-content.asset-backed{padding:0;gap:0}.turn-circle{position:relative;width:50%;aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.78em;border:.12vw solid rgba(255,255,255,.15);overflow:hidden}.turn-content.asset-backed .turn-circle{width:100%;height:100%;flex:1;aspect-ratio:auto;border:0;border-radius:0}.turn-circle.asset-backed img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.unit-portrait.asset-backed img,.ally-tag.asset-backed img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.turn-hp{width:80%;height:.5vh;min-height:3px;border-radius:999px;background:#2c1414;overflow:hidden}.turn-content.asset-backed .turn-hp{position:absolute;left:10%;right:10%;bottom:.45vh;width:auto}.turn-hp-fill{height:100%;background:linear-gradient(to right,var(--hp-base),var(--hp-fill))}.left-column{position:fixed;left:1vw;top:14vh;bottom:20vh;width:6.5vw;min-width:78px;max-width:108px;display:flex;flex-direction:column;gap:.8vh;z-index:var(--z-left);pointer-events:none}.left-units-wrapper{position:relative;flex:1 1 auto;min-height:0;width:100%;pointer-events:auto}.left-units-wrapper.collapsed{pointer-events:none}.left-units-wrapper.collapsed>.collapse-tab{pointer-events:auto}.left-units{height:100%;overflow-y:auto;padding:.6vh .6vw}.left-units::-webkit-scrollbar{width:.3vw}.left-units::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}.unit-card{position:relative;width:100%;aspect-ratio:.85;margin-bottom:.8vh;border-radius:var(--r-md);overflow:hidden;background:var(--card-bg);border:1px solid rgba(255,255,255,.08);cursor:pointer}.unit-card.active{outline:.15vw solid #ffd37b;outline-offset:0;box-shadow:var(--active-shadow)}.unit-card .side-strip{height:.4vh}.unit-portrait{position:relative;height:50%;background:radial-gradient(circle at top,#6b6b6b,#323232);display:flex;align-items:center;justify-content:center;color:#ddd;font-weight:700;font-size:1.4em;overflow:hidden}.unit-portrait.asset-backed img{position:absolute;inset:0}.unit-portrait-fallback{position:relative;z-index:1;text-shadow:0 1px 3px rgba(0,0,0,.75)}.ally-tag.asset-backed{overflow:hidden}.unit-card-name{text-align:center;font-size:.7em;padding:.2vh 0;color:#c5bdb1;background:#0000004d}.hp-wrap{position:absolute;left:.3vw;right:.3vw;bottom:.4vh}.grid-overlay{position:fixed;inset:0;pointer-events:none}.cell{position:absolute;width:3vw;aspect-ratio:1;border-radius:.4vw}.cell.reachable{background:#00ff782e;border:1px solid rgba(120,255,180,.5)}.cell.path{background:#00b4ff2e;border:1px solid rgba(120,220,255,.8)}.cell.target{background:#ff8c0033;border:1px solid rgba(255,180,100,.8)}.unit-token{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:3.2vw;aspect-ratio:1;border-radius:50%;background:#d8d8d8;border:.15vw solid #ffd16d;animation:pulse 1.5s infinite}.ghost-marker{position:absolute;left:42%;top:54%;transform:translate(-50%,-50%);width:3.2vw;aspect-ratio:1;border-radius:50%;border:.12vw dashed rgba(255,255,255,.3);opacity:.5}.right-bar{position:fixed;right:1vw;top:14vh;bottom:1vh;width:11vw;min-width:160px;max-width:220px;z-index:var(--z-right);pointer-events:none}.right-bar>.collapse-tab,.right-bar-panel{pointer-events:auto}.right-bar-panel{position:relative;height:100%;display:flex;flex-direction:column;background:var(--panel-bg);border:var(--panel-border);border-radius:var(--r-md) 0 0 var(--r-md);box-shadow:var(--panel-shadow);backdrop-filter:var(--panel-blur);overflow:hidden}.roster-section{display:flex;flex-direction:column;flex-shrink:0;max-height:42%;border-bottom:var(--panel-border)}.roster-section.collapsed{max-height:none}.roster-section.collapsed .roster-list{display:none}.roster-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.4vw;padding:.4vh 2.8em .4vh .6vw;background:var(--control-bg);color:#ddd;cursor:pointer;text-align:left;font-size:.7em;font-weight:700;text-transform:uppercase;letter-spacing:.05em;transition:background .15s;flex-shrink:0}.roster-header:hover{background:var(--control-hover-bg)}.roster-header-title{color:var(--accent)}.roster-header-count{color:var(--muted);font-weight:400}.roster-header-chevron{color:var(--accent);font-weight:700;transition:transform .15s;transform:rotate(0)}.roster-section.collapsed .roster-header-chevron{transform:rotate(180deg)}.roster-list{flex:1;overflow-y:auto;padding:.4vh .6vw}.roster-list::-webkit-scrollbar{width:.3vw}.roster-list::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}.roster-group+.roster-group{margin-top:.5vh}.roster-group-title{font-size:.7em;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;padding:.2vh .2vw;margin-bottom:.2vh;border-bottom:var(--panel-border)}.roster-row{position:relative;display:flex;align-items:center;gap:.4vw;padding:.3vh .3vw;border-radius:var(--r-sm);font-size:.78em;cursor:pointer}.roster-row:hover{background:var(--control-bg)}.roster-row.local{color:#ffd9a8;font-weight:600}.roster-dot{width:.55vw;min-width:6px;max-width:9px;height:.55vw;min-height:6px;max-height:9px;border-radius:50%;flex-shrink:0}.roster-presence-dot{width:.55vw;min-width:6px;max-width:9px;height:.55vw;min-height:6px;max-height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1px #080808d9}.roster-presence-dot.online{background:#3f95ff}.roster-presence-dot.disconnected{background:#d55252}.dot-spectator{background:#888}.roster-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-meta{color:var(--muted);font-size:.85em;flex-shrink:0}.roster-row .tooltip{inset:50% 120% auto auto;transform:translateY(-50%)}.roster-row:hover .tooltip{opacity:1}.chat-log{flex:1;overflow-y:auto;padding:.4vh .6vw;scroll-behavior:smooth;font-size:.78em;line-height:1.4}.chat-log::-webkit-scrollbar{width:.3vw}.chat-log::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}.chat-msg{margin-bottom:.3vh;color:#d7d0c7;overflow-wrap:break-word}.chat-msg .author{font-weight:600;color:#ffd9a8}.chat-msg .author.local{color:#9bd0ff}.chat-msg .ts{color:var(--muted);font-size:.85em;margin-right:.3vw}.chat-event{color:var(--muted);font-style:italic;font-size:.92em;margin-bottom:.3vh}.chat-event .icon{margin-right:.2vw}.chat-input-row{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:6px;min-width:0;padding:.4vh .5vw;border-top:var(--panel-border);flex-shrink:0;box-sizing:border-box}.chat-input{min-width:0;height:3vh;min-height:24px;box-sizing:border-box;padding:0 .5vw;background:var(--input-bg);border:1px solid rgba(255,255,255,.08);border-radius:var(--r-sm);color:var(--app-text);font-size:.78em}.chat-input:focus{outline:none;border-color:var(--accent-strong)}.chat-send{width:46px;min-width:0;height:3vh;min-height:24px;padding:0;border-radius:var(--button-radius);background:var(--button-bg);color:var(--button-text);font-size:.78em;font-weight:700;cursor:pointer}.timer-bar{position:fixed;top:1vh;right:calc(1vw + 4em);z-index:var(--z-timer);display:flex;align-items:center;gap:.4vw;padding:.5vh .8vw;background:var(--panel-bg-top);border:var(--panel-border-mid);border-radius:var(--r-md);backdrop-filter:var(--panel-blur);font-variant-numeric:tabular-nums;font-size:.85em}.timer-round-turn{color:var(--neutral);font-weight:700;white-space:nowrap}.timer-countdown{display:inline-flex;align-items:baseline;gap:.35vw;padding-left:.55vw;border-left:var(--panel-border)}.timer-countdown[hidden]{display:none}.timer-label{color:var(--muted);font-size:.85em;text-transform:uppercase;letter-spacing:.04em}.timer-value{color:var(--accent);font-weight:700;font-size:1.1em}.timer-bar.urgent .timer-value{color:var(--bad);animation:timer-pulse 1s ease-in-out infinite}.notifications-banner{position:fixed;top:10vh;left:50%;transform:translate(-50%);z-index:var(--z-notif);display:flex;flex-direction:column;align-items:center;gap:.4vh;pointer-events:none}.notification{pointer-events:auto;padding:.6vh 1.2vw;border-radius:.6vw;background:#141414f5;border:1px solid rgba(255,210,120,.28);backdrop-filter:var(--panel-blur);color:#ece7df;font-size:.85em;font-weight:500;box-shadow:0 .4vh 1vw #00000073;max-width:60vw;text-align:center;animation:notif-in .25s ease-out}.notification.success{border-color:#7fc77f8c}.notification.warn{border-color:#e0c8648c}.notification.error{border-color:#e078788c}.notification.info{border-color:#78b4f08c}.notification .icon{margin-right:.3vw}.notification .label{margin-right:.3vw;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.85em;color:var(--accent)}.allies-wrapper{position:relative;flex:0 0 auto;width:100%;max-height:18vh;pointer-events:auto}.allies-wrapper.collapsed{min-height:1.5vh;pointer-events:none}.allies-wrapper.collapsed>.collapse-tab{pointer-events:auto}.allies{max-height:18vh;overflow-y:auto;padding:.5vh .5vw;background:var(--panel-bg);border:var(--panel-border);border-radius:0 var(--r-md) var(--r-md) 0;backdrop-filter:var(--panel-blur)}.allies::-webkit-scrollbar{width:.3vw}.allies::-webkit-scrollbar-thumb{background:#805c39;border-radius:999px}.ally-player+.ally-player{margin-top:.4vh}.ally-player-header{width:100%;display:flex;align-items:center;gap:.4vw;padding:.3vh .3vw;border-radius:.4vw;background:#ffffff0a;color:#ddd;font-size:.74em;font-weight:600;cursor:pointer;text-align:left;transition:background .15s}.ally-player-header:hover{background:#ffffff14}.ally-player-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ffd9a8}.ally-player-count{color:var(--muted);font-weight:400;font-size:.95em;flex-shrink:0}.ally-player-chevron{flex-shrink:0;color:var(--accent);font-weight:700;transition:transform .15s;transform:rotate(180deg)}.ally-player.collapsed .ally-player-chevron{transform:rotate(0)}.ally-player-units{margin-top:.2vh;padding-left:.4vw}.ally-player.collapsed .ally-player-units{display:none}.allies-section-title{font-size:.65em;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.05em;padding:.2vh .2vw;margin-bottom:.3vh;border-bottom:1px solid rgba(255,210,120,.18);text-align:center;white-space:normal;line-height:1.2}.ally-row{display:flex;flex-wrap:wrap;align-items:center;gap:.3vw;padding:.3vh .25vw;border-radius:.4vw;font-size:.72em;cursor:pointer}.ally-row+.ally-row{margin-top:.2vh}.ally-row:hover{background:#ffffff0a}.ally-row.active{outline:1px solid var(--accent);box-shadow:var(--active-shadow)}.ally-tag{flex-shrink:0;width:1.4vw;min-width:18px;max-width:22px;height:1.4vw;min-height:18px;max-height:22px;border-radius:.3vw;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85em;background:linear-gradient(to bottom,#4f4032,#241d18);border:1px solid rgba(255,255,255,.08);color:#ddd}.ally-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c5bdb1}.ally-hp{flex-basis:100%;height:.5vh;min-height:4px;border-radius:999px;background:#2c1414;overflow:hidden;margin-top:.2vh}.ally-hp-fill{height:100%;background:linear-gradient(to right,var(--hp-base),var(--hp-fill))}.bottom-panel{position:fixed;left:1vw;bottom:1vh;width:min(72vw,1040px);z-index:var(--z-bottom);pointer-events:none}.bottom-panel-surface{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;opacity:.16;border-radius:inherit;pointer-events:none;image-rendering:pixelated}.bottom-panel.asset-backed .collapse-tab{z-index:calc(var(--z-arrow) + 1)}.current-unit.asset-backed>.current-header,.current-unit.asset-backed>.big-hp,.center-panel.asset-backed>.tab-content-area,.center-panel.asset-backed>.tabs{position:relative;z-index:1}.bottom-layout{display:flex;gap:.8vw;align-items:flex-end;pointer-events:none}.bottom-layout>*{pointer-events:auto}.current-unit{position:relative;width:18vw;min-width:200px;max-width:260px;background:var(--panel-bg);border:var(--panel-border);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:var(--panel-shadow);backdrop-filter:var(--panel-blur);padding:1vh .8vw}.current-header{display:flex;gap:.6vw;align-items:center}.current-portrait{position:relative;width:30%;aspect-ratio:1;border-radius:var(--r-md);background:var(--card-bg);display:flex;align-items:center;justify-content:center;color:#ddd;font-weight:700;font-size:1.4em;overflow:hidden}.current-portrait.asset-backed img,.skill-brick-asset,.skill-detail-asset{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.current-portrait.asset-backed img{position:absolute;inset:0}.current-portrait-fallback{position:relative;z-index:1;text-shadow:0 1px 3px rgba(0,0,0,.75)}.current-info{flex:1}.current-info h3{margin-bottom:.2vh;font-size:1em;color:#ffd372}.current-info-row{font-size:.78em;color:#c5bdb1;display:flex;justify-content:space-between}.current-info-row .label{color:var(--muted)}.current-info-row .value{font-weight:600;color:#e0d8c8}.big-hp{margin-top:.8vh}.big-hp .hp-bar{height:2vh;min-height:16px}.big-hp .hp-text{font-size:.8em}.center-panel{position:relative;flex:1;display:flex;flex-direction:column;background:var(--panel-bg-alt);border:var(--panel-border);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--panel-shadow);backdrop-filter:var(--panel-blur);padding:1vh calc(.8vw + 2.8em) 1vh .8vw;min-height:18vh}.tab-content-area{flex:1;min-height:0}.tab-content{display:none}.tab-content.active{display:block}.tab-content.active:has(.skills-grid){display:flex;flex-direction:column;gap:.6vh;max-height:100%;overflow-y:auto}.tabs{display:flex;gap:.4vw;margin-top:.6vh}.tab-btn{height:2.4vh;min-height:22px;padding:0 .8vw;border-radius:var(--r-sm);background:var(--control-bg);color:var(--app-text);font-size:.78em;cursor:pointer;transition:.15s}.tab-btn:hover{background:var(--control-hover-bg)}.tab-btn.active{background:var(--button-bg);color:var(--button-text)}.skills-grid{display:flex;flex-wrap:wrap;gap:.6vw;width:100%;align-content:flex-start;max-height:22vh;overflow-y:auto;overflow-x:hidden;padding-right:.2vw}.skills-grid::-webkit-scrollbar{width:.4vw}.skills-grid::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}.skill-btn{position:relative;width:6.5vw;min-width:72px;max-width:96px;aspect-ratio:1;padding:.5vh .4vw;border-radius:var(--r-md);cursor:pointer;background:var(--card-bg);border:1px solid rgba(255,255,255,.08);color:var(--button-text);font-size:.78em;font-weight:600;transition:.15s;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;text-align:left;overflow:visible}.skill-btn.asset-backed{overflow:hidden}.skill-brick-asset{position:absolute;inset:0;opacity:.42;pointer-events:none}.skill-btn.asset-backed>:not(.skill-brick-asset){position:relative;z-index:1}.skill-btn:hover{transform:translateY(-.3vh);border-color:var(--accent);background:var(--button-hover-bg);box-shadow:var(--button-hover-shadow)}.skill-btn.selected{border-color:var(--accent);background:var(--card-bg-selected)}.skill-btn.expanded{border-color:var(--accent-strong);box-shadow:var(--active-shadow)}.skill-btn.disabled{opacity:.4;cursor:not-allowed}.skill-brick-glyph{position:absolute;top:.3vh;left:.3vw;right:.3vw;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:.15vw;font-size:1.05em;color:var(--button-text);opacity:.85;pointer-events:none;overflow:hidden}.skill-brick-glyph-item{display:inline-block;line-height:1;flex:0 0 auto}.skill-brick-glyph-overflow{display:inline-block;line-height:1;flex:0 0 auto;font-size:.78em;font-weight:700;color:var(--accent);opacity:.95;margin-left:.05vw}.skill-brick-name{margin-top:1.4vh;font-size:.95em;font-weight:700;color:var(--button-text);line-height:1.05;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.skill-brick-range{font-size:.78em;color:#c5bdb1;margin-top:.2vh;letter-spacing:.02em}.skill-brick-elem-row{display:flex;flex-wrap:wrap;gap:.15vw .2vw;margin-top:.3vh;align-self:flex-start;max-width:100%}.skill-brick-elem{display:inline-block;align-self:flex-start;margin-top:.3vh;padding:.05vh .35vw;border-radius:999px;font-size:.72em;font-weight:700;background:#ffffff0f;color:#f0e4cf;text-transform:lowercase;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.skill-brick-elem-row .skill-brick-elem{margin-top:0}.skill-brick-elem.elem-more{background:#ffcf8226;color:#ffcf82}.skill-brick-elem.elem-fire{background:#ff6e3c33;color:#ffcf82}.skill-brick-elem.elem-physical{background:#dcdcdc1f;color:#f0e4cf}.skill-brick-elem.elem-piercing{background:#b4dcff26;color:#c8dcff}.skill-brick-elem.elem-lightning{background:#b48cff33;color:#d4baff}.skill-brick-elem.elem-ice{background:#78c8ff2e;color:#a8d4ff}.skill-brick-elem.elem-support{background:#78c88c33;color:#a8e0b8}.skill-brick-badge{position:absolute;bottom:.3vh;right:.3vw;width:1.4vh;height:1.4vh;min-width:14px;min-height:14px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.7em;font-weight:700;font-family:serif;font-style:italic;display:flex;align-items:center;justify-content:center;cursor:pointer;border:var(--panel-border);transition:.12s}.skill-brick-badge:hover,.skill-brick-badge.active{background:var(--accent-strong);color:var(--app-bg);border-color:var(--accent)}.skill-tip-header{display:flex;justify-content:space-between;gap:.6vw;align-items:baseline;border-bottom:1px solid rgba(255,200,120,.18);padding-bottom:.4vh;margin-bottom:.4vh}.skill-tip-name{color:var(--accent);font-weight:700;font-size:1.05em}.skill-tip-range{color:#c5bdb1;font-size:.85em}.skill-tip-section-label{color:var(--accent);font-size:.78em;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin:.5vh 0 .2vh}.skill-tip-attack-divider{color:var(--accent);font-size:.72em;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin:.45vh 0 .2vh;padding-top:.35vh;border-top:var(--panel-border)}.skill-tip-header+.skill-tip-attack-divider{margin-top:.1vh;padding-top:0;border-top:0}.skill-tip-attack-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.4vw;padding:.1vh 0;font-size:.85em}.skill-tip-attack-elem{color:#f0e4cf}.skill-tip-attack-amount{color:#ffd6a4;font-weight:700}.skill-tip-attack-shape{grid-column:1 / -1;min-width:0}.skill-tip-buff-row{display:flex;justify-content:space-between;gap:.4vw;font-size:.85em;margin-top:.2vh}.skill-tip-buff-name{color:#f0e4cf;font-weight:600}.skill-tip-buff-duration{color:#b8b0a4}.skill-tip-buff-effect{color:#c5bdb1;font-size:.78em;padding-left:.6vw}.skill-tip-effect-row{color:#d8cdbb;font-size:.82em;padding-left:.4vw;margin-top:.15vh}.skill-detail-wrap{margin-top:1vh}.skill-detail{position:relative;background:var(--panel-bg);border:var(--panel-border);border-radius:var(--r-md);padding:.8vh .8vw;display:flex;flex-direction:column;gap:.6vh;max-height:28vh;overflow-y:auto}.skill-detail.asset-backed{overflow:hidden auto}.skill-detail-asset{position:absolute;inset:0;opacity:.18;pointer-events:none}.skill-detail.asset-backed>:not(.skill-detail-asset){position:relative;z-index:1}.skill-detail::-webkit-scrollbar{width:.4vw}.skill-detail::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}.skill-detail-header{display:flex;align-items:baseline;gap:.6vw;border-bottom:var(--panel-border);padding-bottom:.4vh}.skill-detail-title{color:var(--accent);font-weight:700;font-size:1.05em;flex:1}.skill-detail-range{color:#c5bdb1;font-size:.85em}.skill-detail-close{background:transparent;border:var(--panel-border);color:var(--app-text);width:2vh;height:2vh;min-width:18px;min-height:18px;border-radius:50%;cursor:pointer;font-size:.9em;line-height:1;display:flex;align-items:center;justify-content:center}.skill-detail-close:hover{background:var(--accent-soft);color:var(--button-text)}.skill-detail-section-label{color:var(--accent);font-size:.75em;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2vh}.skill-detail-section{display:flex;flex-direction:column;gap:.2vh}.skill-detail-attacks{display:flex;flex-direction:column;gap:.6vh}.skill-detail-attacks.multi .skill-detail-attack-card+.skill-detail-attack-card{border-top:1px solid var(--accent-soft);margin-top:.35vh;padding-top:.8vh}.skill-detail-attack-card{display:flex;flex-direction:column;gap:.4vh}.skill-detail-attack-header{display:flex;align-items:baseline;gap:.4vw;font-size:.82em;padding-bottom:.2vh}.skill-detail-attack-label{flex:0 0 auto;color:#b8b0a4;background:var(--accent-soft);border:var(--panel-border);border-radius:var(--r-sm);font-size:.72em;font-weight:600;letter-spacing:.02em;font-variant-numeric:tabular-nums;padding:0 .35vw;white-space:nowrap}.skill-detail-attack-kind{flex:1;color:var(--accent);font-weight:600}.skill-detail-attack-shape{display:grid;grid-template-columns:1fr 1fr;gap:.2vh .6vw;font-size:.78em;font-variant-numeric:tabular-nums}.skill-detail-attack-shape-row{display:flex;justify-content:space-between;gap:.4vw;padding:.15vh 0;border-bottom:1px solid var(--control-bg)}.skill-detail-attack-shape-row .what{color:#b8b0a4}.skill-detail-attack-shape-row .val{color:#f0e4cf;font-weight:600}.skill-detail-attack-buffs-empty{font-size:.78em;padding:.2vh .2vw}.skill-detail-attack-effects{margin-top:.4vh;padding:.3vh .3vw;border-top:var(--panel-border)}.skill-detail-attack-effects-label{color:var(--accent);font-size:.74em;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.2vh}.skill-detail-attack-effect{color:#d8cdbb;font-size:.82em;padding-left:.3vw;margin-top:.15vh;display:flex;align-items:center;gap:.35rem}.skill-effect-asset{width:1.4rem;height:1.4rem;flex:0 0 auto;border-radius:var(--r-sm);object-fit:cover;image-rendering:pixelated}.attack-mod-tooltip h4{margin:0 0 .25rem;color:var(--accent)}.attack-mod-tooltip p{margin:0 0 .45rem}.attack-mod-tooltip-list{margin:0;padding-left:1.2rem}.attack-mod-tooltip-list li+li{margin-top:.18rem}.attack-mod-tooltip-section{margin-top:.55rem}.skill-detail-buff-token{color:#f0e4cf;cursor:help;font-weight:700;text-decoration:underline;text-decoration-color:#ffcc7859;text-underline-offset:2px}.skill-detail-buff-token:hover{color:var(--accent)}.buffs-list{display:flex;flex-direction:column;gap:.5vh;max-height:24vh;overflow-y:auto;padding-right:.2vw}.buffs-list::-webkit-scrollbar{width:.4vw}.buffs-list::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}.buff-pill{position:relative;display:flex;flex-direction:column;border-radius:.6vw;background:var(--card-bg);border:var(--panel-border);cursor:pointer;font-size:.85em}.buff-pill.positive{border-left:.25vw solid var(--good)}.buff-pill.negative{border-left:.25vw solid var(--bad)}.buff-pill.mixed{border-left:.25vw solid #ff9944}.buff-pill-header{display:flex;align-items:center;justify-content:space-between;gap:.6vw;padding:.6vh .8vw;width:100%;background:transparent;color:inherit;text-align:left;cursor:pointer}.buff-pill-header-right{display:flex;align-items:center;gap:.4vw;flex-shrink:0}.buff-pill-chevron{color:var(--accent);font-weight:700;font-size:.9em;transition:transform .15s;transform:rotate(0)}.buff-pill.expanded .buff-pill-chevron{transform:rotate(180deg)}.buff-name{font-weight:600;color:#ffd9a8}.buff-duration{color:var(--accent);font-size:.82em;font-weight:600}.buff-pill-details{display:none;padding:.4vh .8vw .8vh .8vw;border-top:1px dashed rgba(255,210,120,.18);color:#c5bdb1;font-size:.82em;line-height:1.4}.buff-pill.expanded .buff-pill-details{display:block}.buff-pill-summary{color:#d7d0c7;font-size:.95em;margin-bottom:.4vh}.buff-detail-section+.buff-detail-section{margin-top:.5vh}.buff-detail-label{color:var(--muted);font-size:.95em;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.2vh}.buff-detail-row{display:flex;justify-content:space-between;gap:.6vw;padding:.1vh 0}.buff-detail-row .what{color:#d7d0c7}.buff-detail-row .val{color:#ffe0b8;font-weight:600;flex-shrink:0}.buff-detail-row .val.delta-good{color:var(--good)}.buff-detail-row .val.delta-bad{color:var(--bad)}.buff-detail-note{color:var(--muted);font-size:.92em;margin-top:.3vh}.skill-attacks-header th,.skill-attacks-table td{width:auto!important;text-align:center}.skill-attacks-header th:nth-child(1),.skill-attacks-table td:nth-child(1){text-align:left}.skill-attacks-table tr.attack-row-identity td:not(.resist-good):not(.resist-bad){color:#b8b0a4}.resist-table-wrap{position:relative;border-radius:var(--r-md);border:1px solid rgba(255,255,255,.06);overflow:visible}.resist-table-header-wrap{overflow:visible}.resist-table-header,.resist-table{width:100%;border-collapse:collapse;table-layout:fixed}.resist-table{font-size:.85em}.resist-table-header th:nth-child(1),.resist-table td:nth-child(1){width:18%}.resist-table-header th:nth-child(2),.resist-table td:nth-child(2){width:14%}.resist-table-header th:nth-child(3),.resist-table td:nth-child(3){width:14%}.resist-table-header th:nth-child(4),.resist-table td:nth-child(4){width:16%}.resist-table-header th:nth-child(5),.resist-table td:nth-child(5){width:11%}.resist-table-header th:nth-child(6),.resist-table td:nth-child(6){width:27%}.resist-table-header th{background:var(--panel-bg-alt);text-align:left;padding:.7vh .6vw;color:var(--accent);font-weight:600;font-size:.95em;white-space:nowrap}.resist-table-header th:not(:first-child){text-align:center}.resist-table-header th:first-child{border-top-left-radius:var(--r-md)}.resist-table-header th:last-child{border-top-right-radius:var(--r-md)}.resist-table-header th.hdr-tip{position:relative;cursor:help;text-decoration:underline dotted rgba(255,207,133,.5);text-underline-offset:.3vh}.resist-table-header th.hdr-tip .tooltip{bottom:120%;top:auto;left:50%;transform:translate(-50%);min-width:16vw;max-width:min(28vw,360px);font-size:.85em;z-index:var(--z-tooltip-hi)}.resist-table td.hdr-tip{position:relative;cursor:help}.resist-table td.hdr-tip .tooltip{inset:auto 0 120% auto;transform:none;min-width:14vw;max-width:min(26vw,320px);font-size:.85em;z-index:var(--z-tooltip-hi)}.resist-table-scroll{max-height:16vh;overflow-y:auto;overflow-x:visible;border-bottom-left-radius:var(--r-md);border-bottom-right-radius:var(--r-md)}.resist-table-scroll::-webkit-scrollbar{width:.4vw}.resist-table-scroll::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}.resist-table td{padding:.7vh .6vw;border-top:1px solid rgba(255,255,255,.05);font-variant-numeric:tabular-nums;word-break:break-word;overflow-wrap:break-word}.resist-table td:first-child{color:#e0d8c8;font-weight:600}.resist-table td:not(:first-child){text-align:center}.resist-table tr:hover{background:#ffffff08}.resist-base{color:var(--neutral)}.resist-good{color:var(--good);font-weight:600}.resist-bad{color:var(--bad);font-weight:600}.resist-delta{margin-left:.2vw}.sign-resist{color:var(--good)}.sign-vuln-buff{color:var(--bad)}.heals-no{color:var(--neutral)}.heals-yes{color:var(--good);font-weight:600}.effective-cell{color:#ffe0b8;font-weight:600;font-family:monospace;font-size:.95em}.game-browser-table-scroll{min-height:0;overflow:auto;border:var(--panel-border);border-radius:var(--r-sm);background:var(--panel-bg-alt)}.game-browser-room-scroll,.game-browser-player-scroll{height:auto}.game-browser-table{width:100%;border-collapse:collapse;table-layout:fixed;color:var(--app-text);font-size:13px}.game-browser-room-table{min-width:1040px}.game-browser-player-table{min-width:360px}.game-browser-table th{position:sticky;top:0;z-index:1;height:28px;background:var(--input-bg);color:var(--accent);border-bottom:var(--panel-border);text-align:left;padding:4px 8px;font-size:12px;font-weight:700}.game-browser-table td{height:34px;padding:4px 8px;border-bottom:1px solid var(--control-bg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-browser-room:hover,.game-browser-room:focus-within{background:var(--accent-soft)}.game-browser-room-table th:nth-child(1),.game-browser-room-table td:nth-child(1){width:38px;text-align:center}.game-browser-room-table th:nth-child(2),.game-browser-room-table td:nth-child(2){width:22%}.game-browser-room-table th:nth-child(3),.game-browser-room-table td:nth-child(3){width:15%}.game-browser-room-table th:nth-child(4),.game-browser-room-table td:nth-child(4){width:96px}.game-browser-room-table th:nth-child(5),.game-browser-room-table td:nth-child(5),.game-browser-room-table th:nth-child(6),.game-browser-room-table td:nth-child(6),.game-browser-room-table th:nth-child(7),.game-browser-room-table td:nth-child(7),.game-browser-room-table th:nth-child(9),.game-browser-room-table td:nth-child(9){width:76px;text-align:center}.game-browser-room-table th:nth-child(8),.game-browser-room-table td:nth-child(8){width:22%}.game-browser-room-table th:nth-child(10),.game-browser-room-table td:nth-child(10){width:154px}.game-browser-player-table th:nth-child(1),.game-browser-player-table td:nth-child(1){width:34px;text-align:center}.game-browser-player-table th:nth-child(2),.game-browser-player-table td:nth-child(2){width:42px;text-align:center}.game-browser-lock-cell{color:var(--accent);font-size:15px;padding-right:2px;padding-left:2px;text-overflow:clip}@keyframes pulse{0%{box-shadow:0 0 .6vw #ffd2644d}50%{box-shadow:0 0 1.4vw #ffd264e6}to{box-shadow:0 0 .6vw #ffd2644d}}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes notif-in{0%{opacity:0;transform:translateY(-.6vh)}to{opacity:1;transform:none}}.menu-screen,.multiplayer-login-screen,.lobby-screen,.gameover-screen,.demo-select-screen,.screen-loading{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4vh;background:radial-gradient(circle at center,rgba(255,255,255,.04),transparent 60%),linear-gradient(to bottom,var(--menu-bg-start),var(--menu-bg-end));color:var(--app-text);padding:2vh 2vw;z-index:1}.screen-loading{font-size:clamp(18px,2vw,28px);font-weight:700;color:var(--accent);text-shadow:var(--title-shadow)}.menu-screen h1,.multiplayer-login-screen h1,.lobby-screen h1,.gameover-screen h1,.demo-select-screen h1{font-size:clamp(28px,4vw,56px);letter-spacing:.04em;color:var(--accent);text-shadow:var(--title-shadow);margin-bottom:1.5vh}.menu-screen h2,.gameover-screen h2{color:#d7d0c7;font-size:clamp(16px,1.4vw,22px);font-weight:500}.menu-screen .menu-panel,.multiplayer-login-panel,.lobby-screen .lobby-panel,.gameover-screen .gameover-panel{display:flex;flex-direction:column;gap:1vh;min-width:min(320px,80vw);padding:2vh 2vw;background:var(--panel-bg);border:var(--panel-border);border-radius:var(--r-lg);box-shadow:var(--panel-shadow);backdrop-filter:var(--panel-blur)}.menu-row{display:flex;align-items:center;gap:.6vw}.menu-label{color:var(--muted);font-size:.85em;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.menu-input,.menu-transport-select{flex:1;height:3.5vh;min-height:30px;padding:0 .6vw;background:var(--input-bg);border:1px solid rgba(255,255,255,.08);border-radius:var(--r-sm);color:var(--app-text);font-size:.9em;font-family:inherit}.menu-input:focus,.menu-transport-select:focus{outline:none;border-color:#ffd27880}.menu-btn,.gameover-btn{height:4.4vh;min-height:38px;padding:0 1.4vw;border-radius:var(--button-radius);cursor:pointer;font-weight:700;font-size:.95em;color:var(--button-text);font-family:inherit;text-decoration:none;background:var(--button-bg);border:1px solid rgba(255,255,255,.08);transition:.15s}.menu-btn:hover:not(:disabled),.gameover-btn:hover{transform:translateY(-.3vh);border-color:var(--accent-strong);background:var(--button-hover-bg);box-shadow:var(--button-hover-shadow)}.menu-btn:disabled{opacity:.4;cursor:not-allowed}.menu-btn.is-pending{min-width:92px}.menu-btn.is-pending:after{display:inline-block;width:1.5em;text-align:left;content:"";animation:pending-button-dots 1.05s steps(1,end) infinite}@keyframes pending-button-dots{0%,to{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.menu-demo{background:var(--button-bg)}.menu-screen .menu-demo{position:absolute;bottom:1rem;left:1rem}.demo-select-screen .demo-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1.4vw;max-width:70vw;margin-bottom:2vh}.demo-select-screen .demo-card{display:flex;flex-direction:column;align-items:flex-start;gap:.8vh;width:18vw;min-width:220px;min-height:14vh;padding:1.6vh 1.4vw;text-align:left;cursor:pointer;color:var(--app-text);background:var(--card-bg);border:var(--panel-border);border-radius:var(--r-md);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.demo-select-screen .demo-card:hover{transform:translateY(-.4vh);border-color:var(--accent);box-shadow:var(--card-shadow)}.demo-select-screen .demo-card-title{font-size:clamp(16px,1.3vw,22px);font-weight:600;color:var(--accent)}.demo-select-screen .demo-card-desc{font-size:clamp(12px,.95vw,15px);color:#b8b0a4;line-height:1.35}.menu-status{min-height:1.5vh;text-align:center;font-size:.85em}.menu-status.menu-status-error{color:var(--bad)}.menu-status.menu-status-loading{color:var(--muted)}.multiplayer-login-panel{width:min(720px,92vw)}.multiplayer-login-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5vw}.multiplayer-login-tab{min-height:34px;padding:0 .8vw;color:#d7d0c7;background:var(--control-bg);border:var(--panel-border);border-radius:var(--r-sm);cursor:pointer;font-weight:700}.multiplayer-login-tab.active,.multiplayer-login-tab:hover{color:var(--accent);border-color:var(--accent-strong);background:var(--accent-soft)}.multiplayer-login-body{display:grid;gap:.9vh}.multiplayer-login-field{display:grid;gap:.45vh;color:#c5bdb1;font-size:.9em;font-weight:700}.multiplayer-login-field input,.multiplayer-login-field select{height:36px;min-width:0;padding:0 .7vw;background:var(--input-bg);border:var(--panel-border);border-radius:var(--r-sm);color:var(--app-text);font:inherit}.multiplayer-login-combo{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 36px}.multiplayer-login-combo input{border-radius:var(--r-sm) 0 0 var(--r-sm)}.multiplayer-login-combo-toggle{height:36px;border:var(--panel-border);border-left:0;border-radius:0 var(--r-sm) var(--r-sm) 0;background:var(--input-bg);color:var(--app-text);cursor:pointer;font:inherit;font-weight:900}.multiplayer-login-combo-toggle:disabled{color:#ece7df59;cursor:default}.multiplayer-login-combo-menu{position:absolute;z-index:20;top:calc(100% + 3px);left:0;right:0;max-height:168px;overflow-y:auto;background:var(--panel-bg-alt);border:var(--panel-border);border-radius:var(--r-sm);box-shadow:var(--card-shadow)}.multiplayer-login-combo-option{width:100%;min-height:32px;padding:0 .7vw;border:0;border-bottom:1px solid rgba(255,255,255,.08);background:transparent;color:var(--app-text);cursor:pointer;font:inherit;text-align:left}.multiplayer-login-combo-option:hover,.multiplayer-login-combo-option:focus-visible{background:var(--accent-soft);outline:none}.multiplayer-login-password-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:.5vw;align-items:end}.multiplayer-login-password-toggle{height:36px;border:var(--panel-border);border-radius:var(--r-sm);background:var(--input-bg);color:var(--app-text);cursor:pointer}.multiplayer-login-actions{display:flex;gap:8px;flex-wrap:wrap}.multiplayer-login-status{min-height:1.4em;color:var(--muted);font-size:.85em}.multiplayer-login-footer{display:flex;justify-content:flex-end}.multiplayer-login-connect{justify-self:end}.gameover-result{font-size:clamp(22px,2.5vw,36px);color:var(--accent)}.gameover-result.gameover-victory{color:var(--good)}.gameover-result.gameover-defeat{color:var(--bad)}.gameover-buttons{display:flex;gap:1vw;margin-top:1vh}.game-screen{position:relative;width:100%;height:100vh;overflow:hidden}.game-screen canvas{position:relative;z-index:1;display:block;width:100%;height:100%;touch-action:none}.cutscene-layer{position:fixed;inset:0;z-index:calc(var(--z-bottom) + 4);overflow:hidden;pointer-events:none}.cutscene-bubble{position:fixed;left:50%;bottom:clamp(156px,22vh,210px);display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:stretch;gap:14px;width:min(760px,calc(100vw - 28px));min-height:132px;padding:14px;border:2px solid color-mix(in srgb,var(--accent) 48%,var(--muted));border-radius:var(--r-sm);background:linear-gradient(180deg,#111927,#070b12);box-shadow:0 0 0 2px #020305,0 12px 32px #000000d1,var(--panel-shadow);color:var(--text);pointer-events:none;transform:translate(-50%)}.cutscene-bubble--dialog{transform:translate(-50%)}.vector-token-layer{position:absolute;inset:0;overflow:visible;pointer-events:none;z-index:2}.vector-token{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;will-change:transform}.vector-token__image,.vector-token__outline{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}.vector-token__image{object-position:center}.vector-token__outline{overflow:visible}.cutscene-bubble-portrait{display:grid;width:76px;height:96px;place-items:center;overflow:hidden;border:2px solid color-mix(in srgb,var(--muted) 52%,var(--accent));border-radius:0;background:#0a121d;color:var(--accent);font-weight:800}.cutscene-bubble-portrait img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.cutscene-bubble-body{min-width:0;padding:6px 4px;border-radius:var(--r-sm);background:#080d15}.cutscene-bubble-speaker{margin-bottom:6px;color:var(--accent);font-size:15px;font-weight:800;letter-spacing:0}.cutscene-bubble-text{color:var(--text);font-size:17px;font-weight:650;line-height:1.45;overflow-wrap:anywhere}.cutscene-bubble-close{min-width:112px;height:34px;align-self:end;border:1px solid color-mix(in srgb,var(--accent) 28%,#1a2330);border-radius:var(--button-radius);background:#0b111c;color:var(--text);cursor:pointer;font:inherit;font-size:13px;font-weight:800;line-height:1;pointer-events:auto;text-transform:uppercase}.cutscene-bubble-close:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 54%,transparent)}@media(max-width:760px){.cutscene-bubble{bottom:clamp(136px,24vh,188px);grid-template-columns:60px minmax(0,1fr);width:calc(100vw - 18px);min-height:118px;padding:10px}.cutscene-bubble-portrait{width:60px;height:76px}.cutscene-bubble-close{grid-column:2;justify-self:end;min-width:96px;height:30px}.cutscene-bubble-text{font-size:15px}}.hazard-overlay-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.hazard-overlay{position:absolute;box-sizing:border-box;pointer-events:none}.hazard-overlay:not(.asset-backed){animation:hazard-overlay-pulse 1.4s ease-in-out infinite}.hazard-overlay-cell{position:absolute;box-sizing:border-box;background:#ff7b292e;border:1px dashed rgba(255,123,41,.6);border-radius:2px;background-position:center;background-repeat:no-repeat;background-size:cover;image-rendering:pixelated}.hazard-overlay-cell.asset-backed{background-color:transparent;border-color:transparent}@keyframes hazard-overlay-pulse{0%,to{opacity:.55}50%{opacity:.9}}.cascade-depth-indicator{position:absolute;top:9vh;left:50%;transform:translate(-50%);padding:.5vh 1.2vw;background:#280a0ad9;border:1px solid rgba(255,123,41,.7);border-radius:var(--r-md, 6px);color:#ffb37b;font-weight:700;letter-spacing:.04em;z-index:var(--z-notif);pointer-events:none;opacity:0;transition:opacity .2s}.cascade-depth-indicator.visible{opacity:1}.fatal-error{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1vh;padding:2vh 2vw;background:var(--panel-bg);color:#ece7df;text-align:center;z-index:999}.fatal-error h1{color:var(--bad);font-size:1.6em}.fatal-error pre{color:var(--muted);font-size:.9em;max-width:80ch;white-space:pre-wrap;word-break:break-word}.budget-bar-wrap{height:.6vh;margin-bottom:.3vh;background:#ffffff14;border-radius:2px;overflow:hidden}.budget-bar-wrap.hidden{display:none}.budget-fill{height:100%;background:#3f95ff;transition:width .15s}.attack-budget-bar{--accent: #ff3f3f}.action-panel .budget-bar-wrap.attack-budget-bar{background:#ff3f3f38}.action-panel .budget-bar-wrap.attack-budget-bar .budget-fill{background:var(--accent)}.action-panel .budget-bar-wrap.attack-budget-bar .budget-tick{background:#ffebcd85}.attack-budget-bar .attack-budget-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.78em;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.85),0 1px 2px rgba(0,0,0,.6);font-variant-numeric:tabular-nums;font-weight:600;pointer-events:none;z-index:2}.action-panel .budget-bar-wrap.muted{opacity:.4}.direction-picker{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--panel-bg);border:var(--panel-border);border-radius:var(--r-md);padding:1vh 1vw;z-index:1000;display:flex;flex-direction:column;align-items:center;gap:.6vh;box-shadow:var(--panel-shadow)}.direction-picker__title{color:#e6dccb;font-size:.9em;text-align:center}.direction-picker__grid{display:grid;grid-template-columns:repeat(3,3vw);grid-template-rows:repeat(3,3vw);gap:.4vw}.direction-picker__arrow{width:100%;height:100%;background:var(--control-bg);border:var(--panel-border);border-radius:var(--r-sm);color:var(--app-text);font-size:1.4em;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:inherit}.direction-picker__arrow:hover{background:var(--accent-soft);border-color:var(--accent)}.stats-breakdown{font-size:.85em;color:#c5bdb1;line-height:1.5;max-height:24vh;overflow-y:auto;padding-right:.2vw}.stats-breakdown::-webkit-scrollbar{width:.4vw}.stats-breakdown::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}.stats-breakdown-section+.stats-breakdown-section{margin-top:.8vh}.stats-breakdown-header{color:var(--accent);font-weight:600;font-size:.95em;border-bottom:1px solid rgba(255,210,120,.18);padding-bottom:.2vh;margin-bottom:.3vh}.stats-breakdown-row{display:flex;justify-content:space-between;gap:.6vw;padding:.1vh 0}.stats-breakdown-row .what{color:#d7d0c7}.stats-breakdown-row .val{font-weight:600;flex-shrink:0}.stats-breakdown-row .val.positive{color:var(--buff-positive)}.stats-breakdown-row .val.negative{color:var(--buff-negative)}.stats-breakdown-total{display:flex;justify-content:space-between;gap:.6vw;padding-top:.2vh;border-top:1px solid rgba(255,255,255,.08);margin-top:.2vh;font-weight:600}.stats-breakdown-total .val.positive{color:var(--buff-positive)}.stats-breakdown-total .val.negative{color:var(--buff-negative)}.action-panel{position:relative;width:12vh;min-width:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4vh;padding:.8vh;background:var(--panel-bg);border:var(--panel-border);border-radius:var(--r-md);box-shadow:var(--panel-shadow);backdrop-filter:var(--panel-blur);pointer-events:auto;align-self:stretch}.action-panel.hidden{display:none}.action-panel .budget-bar-wrap{width:100%;position:relative;height:1.6vh;background:#ffffff14;border-radius:2px;overflow:hidden;margin-bottom:0}.action-panel .budget-bar-wrap .budget-fill{height:100%;background:#3f95ff;transition:width .15s}.action-panel .budget-ticks{position:absolute;inset:0;pointer-events:none}.action-panel .budget-tick{position:absolute;top:0;bottom:0;width:1px;background:#ffffff40}.action-panel .speed-display{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.78em;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.85),0 1px 2px rgba(0,0,0,.6);font-weight:600;font-variant-numeric:tabular-nums;pointer-events:none}.skill-indicator{font-size:.72em;color:#c5bdb1;text-align:center;min-height:1.4em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.finalize-btn{width:80%;padding:.6vh 0;border-radius:var(--button-radius);background:var(--button-bg);color:var(--button-text);font-size:.78em;font-weight:700;cursor:pointer;transition:opacity .15s,background .15s}.finalize-btn:disabled{opacity:.4;cursor:not-allowed;background:var(--button-muted-bg);color:#666}.revert-btn,.reset-btn{width:80%;padding:.4vh 0;border-radius:var(--r-sm);background:var(--button-bg);color:var(--button-text);font-size:.72em;font-weight:700;cursor:pointer;transition:opacity .15s,background .15s}.revert-btn:hover:not(:disabled),.reset-btn:hover:not(:disabled){background:var(--button-hover-bg)}.revert-btn:disabled,.reset-btn:disabled{opacity:.35;cursor:not-allowed;background:var(--button-muted-bg);color:#666}.settings-overlay,.key-bindings-overlay{position:fixed;inset:0;background:#0000008c;z-index:var(--z-modal, 9999);display:flex;align-items:center;justify-content:center;pointer-events:auto}.settings-dialog,.key-bindings-dialog{width:min(560px,92vw);min-width:min(26vw,560px);max-height:min(78vh,680px);background:var(--panel-bg);border:var(--panel-border);border-radius:var(--r-lg);padding:1.4vh 1.4vw;box-shadow:var(--panel-shadow);backdrop-filter:var(--panel-blur);font-family:inherit;display:flex;flex-direction:column}.settings-dialog__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1vh}.settings-dialog__title,.key-bindings-dialog__title{margin:0;font-size:1em;font-weight:700;color:var(--accent);letter-spacing:.04em}.settings-dialog__tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(7em,1fr));gap:.4em;margin-bottom:1vh;border-bottom:var(--panel-border);padding-bottom:.6vh}.settings-dialog__tab{height:2.4em;background:var(--control-bg);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-sm);color:var(--neutral);font:inherit;font-weight:700;cursor:pointer}.settings-dialog__tab:hover,.settings-dialog__tab.active{background:var(--accent-soft);border-color:var(--accent-mid);color:var(--accent)}.settings-dialog__content{min-height:12em;overflow:auto;padding-right:.2em}.key-bindings-dialog__list{display:flex;flex-direction:column;gap:.8vh}.key-bindings-dialog__row{display:grid;grid-template-columns:1fr auto auto;gap:.8vw;align-items:center;padding:.6vh .6vw;background:var(--control-bg);border-radius:var(--r-sm)}.key-bindings-dialog__label{font-weight:600;color:#e0d8c8}.key-bindings-dialog__chip{padding:.2vh .6vw;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:.3vw;color:var(--accent);font-weight:700;font-size:.85em;min-width:4vw;text-align:center;font-variant-numeric:tabular-nums}.key-bindings-dialog__chip--capturing{background:#ffc8502e;border-color:#ffc85080;color:#ffe682f2}.key-bindings-dialog__rebind{padding:.4vh .7vw;background:var(--button-bg);color:var(--button-text);border:none;border-radius:var(--r-sm);font-weight:700;font-size:.78em;cursor:pointer;transition:background .15s}.key-bindings-dialog__rebind:hover:not(:disabled){background:var(--button-hover-bg)}.key-bindings-dialog__rebind:disabled{opacity:.5;cursor:not-allowed}.settings-dialog__render{display:flex;flex-direction:column;gap:.8em}.settings-dialog__assets{display:grid;gap:.75em}.settings-dialog__category{display:grid;gap:.55em;padding:.75em;background:var(--control-bg);border:var(--panel-border);border-radius:var(--r-sm)}.settings-dialog__category-title{color:var(--accent);font-size:.78em;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.settings-dialog__category-body{min-width:0}.settings-dialog__asset-grid,.settings-dialog__host-grid,.settings-dialog__media-grid{display:grid;gap:.55em}.settings-dialog__asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-dialog__asset-grid .settings-dialog__setting-row--wide,.settings-dialog__host-grid .settings-dialog__setting-row--wide{grid-column:1 / -1}.settings-dialog__media-grid{grid-template-columns:repeat(auto-fit,minmax(7.4em,1fr))}.settings-dialog__host-grid{grid-template-columns:repeat(auto-fit,minmax(14em,1fr))}.settings-dialog__category .settings-dialog__setting-row,.settings-dialog__category .settings-dialog__toggle-row,.settings-dialog__category .settings-dialog__style-css{background:var(--muted-surface)}.settings-dialog__host-list textarea{min-height:5.4em}.settings-dialog__asset-actions{display:grid;gap:.45em;justify-items:start}.settings-dialog__asset-actions .settings-dialog__reset{margin-top:0}.settings-dialog__asset-note{margin:0;color:#e0d8c8ad;font-size:.78em;line-height:1.35}@media(max-width:560px){.settings-dialog__asset-grid{grid-template-columns:1fr}}.settings-dialog__style{display:flex;flex-direction:column;gap:.8em}.settings-dialog__style-row{display:grid;grid-template-columns:1fr minmax(9em,14em);gap:1em;align-items:center;padding:.8em;background:var(--control-bg);border-radius:var(--r-sm)}.settings-dialog__style-row label{font-weight:600;color:#e0d8c8}.settings-dialog__style-row input[type=color]{justify-self:end;width:min(14em,100%);height:2.2em;padding:.15em;background:var(--input-bg);border:var(--panel-border);border-radius:var(--r-sm);cursor:pointer}.settings-dialog__style-range{display:grid;grid-template-columns:minmax(0,1fr) 3.6em;gap:.8em;align-items:center;min-width:0}.settings-dialog__style-range input{min-width:0;accent-color:var(--accent)}.settings-dialog__style-range output{color:var(--accent);font-variant-numeric:tabular-nums;text-align:right}.settings-dialog__style-preview{display:flex;align-items:center;gap:.8em;padding:.8em;background:var(--panel-bg);border:var(--panel-border);border-radius:var(--r-sm)}.settings-dialog__style-css{display:grid;gap:.45em;padding:.8em;background:var(--control-bg);border-radius:var(--r-sm)}.settings-dialog__style-css textarea{width:100%;min-height:8em;resize:vertical;padding:.65em .75em;background:var(--input-bg);border:var(--panel-border);border-radius:var(--r-sm);color:var(--app-text);font:.85em/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.settings-dialog__style-css textarea:focus{outline:none;border-color:var(--accent)}.settings-dialog__side-colors{display:grid;gap:.55em;padding:.8em;background:var(--control-bg);border-radius:var(--r-sm)}.settings-dialog__side-color-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(7.4em,1fr));column-gap:.9em;row-gap:.5em}.settings-dialog__side-color{display:inline-flex;gap:.6em;align-items:center;width:max-content;max-width:100%;justify-content:start;min-width:0;color:var(--app-text);font-size:.84em}.settings-dialog__side-color span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-dialog__side-color input{flex:0 0 auto;width:2.45em;height:1.8em;padding:.1em;background:var(--input-bg);border:var(--panel-border);border-radius:var(--r-sm);cursor:pointer}.settings-dialog__style-preview .menu-btn{width:auto;min-width:7em}.settings-dialog__style-preview span{min-width:6em;padding:.55em .8em;color:var(--app-text);background:var(--panel-bg-alt);border:var(--panel-border);border-radius:var(--r-sm);text-align:center}.settings-dialog__multiplayer-storage{display:grid;gap:.8em}.settings-dialog__storage-group{display:grid;gap:.45em;padding:.75em .8em;background:var(--control-bg);border-radius:var(--r-sm)}.settings-dialog__storage-section{margin-top:.4em;padding-top:.8em;border-top:1px solid rgba(255,210,120,.16);color:var(--accent);font-size:.78em;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.settings-dialog__storage-section:first-child{margin-top:0;padding-top:0;border-top:0}.settings-dialog__storage-title{color:var(--accent);font-weight:700}.settings-dialog__storage-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7em;align-items:center;color:#e0d8c8;font-size:.9em}.settings-dialog__storage-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-dialog__storage-row button{width:24px;height:24px;border-radius:50%;background:#ffffff14;border:1px solid rgba(255,255,255,.16);color:#e0d8c8;cursor:pointer}.settings-dialog__storage-row .settings-dialog__storage-edit{width:auto;min-width:0;justify-self:start;padding:0 8px}.settings-dialog__storage-empty{color:var(--muted);font-size:.85em}.settings-dialog__account-row{display:grid;grid-template-columns:minmax(8em,.9fr) minmax(10em,1.1fr) 28px;gap:.7em;align-items:center;color:#e0d8c8;font-size:.9em}.settings-dialog__account-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.settings-dialog__account-password{display:grid;grid-template-columns:minmax(0,1fr) 32px}.settings-dialog__account-password input{min-width:0;height:30px;padding:0 .55em;background:var(--input-bg);border:var(--panel-border);border-radius:var(--r-sm) 0 0 var(--r-sm);color:var(--neutral);font:inherit}.settings-dialog__password-eye,.settings-dialog__account-delete,.settings-dialog__storage-row .settings-dialog__storage-delete{height:30px;border:var(--panel-border);background:var(--input-bg);color:#e0d8c8;cursor:pointer}.settings-dialog__password-eye{border-left:0;border-radius:0 var(--r-sm) var(--r-sm) 0}.settings-dialog__account-delete,.settings-dialog__storage-row .settings-dialog__storage-delete{width:28px;border-radius:50%}.settings-dialog__animation-group{display:flex;flex-direction:column;gap:.55em}.settings-dialog__section-delimiter{display:grid;grid-template-columns:1fr auto 1fr;gap:.8em;align-items:center;color:var(--accent);font-weight:700;letter-spacing:0}.settings-dialog__section-delimiter:before,.settings-dialog__section-delimiter:after{content:"";height:1px;background:var(--accent-mid)}.settings-dialog__setting-row{display:grid;grid-template-columns:1fr minmax(9em,14em);gap:1em;align-items:center;padding:.8em;background:var(--control-bg);border-radius:var(--r-sm)}.settings-dialog__setting-row input[type=number]{box-sizing:border-box;min-width:0;width:100%;padding:.45em .55em;background:var(--input-bg);border:var(--panel-border);border-radius:var(--r-sm);color:var(--neutral);font:inherit;font-variant-numeric:tabular-nums}.settings-dialog__setting-row input[type=number]:focus{outline:none;border-color:var(--accent-strong)}.settings-dialog__byte-control{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-width:0;background:var(--input-bg);border:var(--panel-border);border-radius:var(--r-sm);overflow:hidden}.settings-dialog__byte-control:focus-within{border-color:var(--accent-strong)}.settings-dialog__byte-control input{box-sizing:border-box;min-width:0;width:100%;padding:.45em .55em;background:transparent;border:0;color:var(--neutral);font:inherit;font-variant-numeric:tabular-nums}.settings-dialog__byte-control input:focus{outline:none}.settings-dialog__byte-unit{padding:0 .65em;color:#e0d8c8b8;font-size:.78em;font-weight:800;letter-spacing:.04em}.settings-dialog__setting-label{font-weight:600;color:#e0d8c8}.settings-dialog__toggle-row{display:grid;grid-template-columns:1fr auto;gap:1em;align-items:center;padding:.75em .8em;background:var(--control-bg);border-radius:var(--r-sm)}.settings-dialog__toggle-text{display:flex;flex-direction:column;gap:.18em;min-width:0}.settings-dialog__toggle-title{font-weight:600;color:#e0d8c8}.settings-dialog__toggle-hint{color:#e0d8c8ad;font-size:.78em;line-height:1.25}.settings-dialog__toggle-row input{width:1.15em;height:1.15em;accent-color:var(--accent)}.settings-dialog__setting-select{min-width:9em;width:100%;box-sizing:border-box;background:var(--input-bg);color:var(--neutral);border:var(--panel-border);border-radius:var(--r-sm);padding:.45em .55em;font:inherit}.settings-dialog__setting-select:focus{outline:none;border-color:#ffd27880}body.ui-animations-disabled *,body.ui-animations-disabled *:before,body.ui-animations-disabled *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.settings-dialog__reset{margin-top:1.2vh}.settings-dialog__footer,.key-bindings-dialog__footer{margin-top:1.2vh;display:flex;justify-content:flex-end;gap:.8vw}.settings-dialog__close,.settings-dialog__reset,.key-bindings-dialog__close,.key-bindings-dialog__reset{padding:.5vh 1vw;background:var(--control-bg);border:1px solid rgba(255,255,255,.18);color:#e0d8c8;border-radius:var(--r-sm);font-size:.85em;font-weight:600;cursor:pointer;transition:background .15s}.settings-dialog__close:hover,.settings-dialog__reset:hover,.key-bindings-dialog__close:hover,.key-bindings-dialog__reset:hover{background:var(--control-hover-bg)}.bottom-panel.preview .current-unit,.bottom-panel.preview .center-panel{border-color:#78b4f073;box-shadow:inset 0 0 .6vw #78b4f014}.bottom-panel.preview .current-unit:after{content:"PREVIEW";position:absolute;top:.4vh;right:.4vw;padding:.15vh .4vw;font-size:.6em;font-weight:700;letter-spacing:.06em;color:#78b4f0e6;background:#78b4f01a;border:1px solid rgba(120,180,240,.3);border-radius:.3vw;pointer-events:none}.bottom-panel.preview .resist-table td.preview-changed{color:#f94;font-weight:700}.active-unit-pill{position:absolute;top:-1.2vh;left:50%;transform:translate(-50%);padding:.25vh .7vw;font-size:.7em;font-weight:700;letter-spacing:.04em;color:#ffe682f2;background:#281e00d9;border:1px solid rgba(255,200,80,.5);border-radius:.6vw;cursor:pointer;white-space:nowrap;z-index:2;font-family:inherit;box-shadow:0 .2vh .6vw #0006}.active-unit-pill:hover{background:#503c00e6;color:#fff0a0}.active-unit-pill.hidden{display:none}.top-right-menu{position:absolute;top:8px;right:8px;z-index:var(--z-top)}.top-right-menu__button{background:var(--panel-bg-top);color:var(--accent);border:var(--panel-border);border-radius:var(--r-sm);width:2.4em;height:2.4em;font-size:1.4em;line-height:1;cursor:pointer;backdrop-filter:var(--panel-blur);display:flex;align-items:center;justify-content:center}.top-right-menu__button:hover{background:var(--panel-bg)}.top-right-menu__popover{position:absolute;top:100%;right:0;margin-top:.4em;min-width:14em;background:var(--panel-bg);border:var(--panel-border);border-radius:var(--r-md);padding:.4em 0;backdrop-filter:var(--panel-blur);display:flex;flex-direction:column}.top-right-menu__popover[hidden]{display:none}.top-right-menu__entry{background:transparent;color:var(--neutral);border:0;padding:.6em 1em;text-align:left;font:inherit;cursor:pointer}.top-right-menu__entry:hover{background:#ffcc781f;color:var(--accent)}.top-right-menu__setting{display:flex;align-items:center;justify-content:space-between;gap:1em;padding:.6em 1em;border-top:var(--panel-border)}.top-right-menu__setting-label{color:var(--muted);font-size:.9em}.top-right-menu__setting-select{min-width:7em;background:#00000047;color:var(--neutral);border:var(--panel-border);border-radius:var(--r-sm);padding:.25em .4em;font:inherit}.top-right-menu__info{padding:.6em 1em;border-bottom:var(--panel-border);display:flex;flex-direction:column;gap:.2em;font-size:.85em}.top-right-menu__info-row{display:flex;justify-content:space-between;gap:1em}.top-right-menu__info-label{color:var(--muted)}.top-right-menu__info-value{color:var(--neutral);font-family:monospace;word-break:break-all}.playback-bar{position:absolute;bottom:12px;left:50%;transform:translate(-50%);z-index:var(--z-bottom);display:flex;align-items:center;gap:1em;padding:.5em 1em;background:var(--panel-bg);border:var(--panel-border);border-radius:var(--r-md);backdrop-filter:var(--panel-blur);color:var(--neutral)}.playback-bar__controls{display:flex;gap:.3em}.playback-bar__nav{background:transparent;border:var(--panel-border);border-radius:var(--r-sm);color:var(--neutral);width:2.4em;height:2.4em;font-size:1.1em;cursor:pointer}.playback-bar__nav:hover:not(:disabled){background:#ffcc781f;color:var(--accent)}.playback-bar__nav:disabled{opacity:.4;cursor:default}.playback-bar__speeds{display:flex;gap:.2em}.playback-bar__speed{background:transparent;border:var(--panel-border);border-radius:var(--r-sm);color:var(--muted);padding:.3em .6em;cursor:pointer;font:inherit}.playback-bar__speed--active{background:#ffcc782e;color:var(--accent);border-color:#ffcc7899}.playback-bar__labels{display:flex;gap:1em;font-family:monospace;font-size:.95em}.playback-bar__label{color:var(--muted)}.playback-bar__step{color:var(--accent)}.gameover-notice{margin-top:1em;color:var(--accent);text-align:center}.replay-divergence-banner{position:absolute;top:12px;left:50%;transform:translate(-50%);padding:.6em 1em;background:var(--panel-bg);border:1px solid var(--bad);border-radius:var(--r-md);color:var(--bad);z-index:var(--z-notif);font-family:monospace;font-size:.9em;max-width:60em}.center-panel.fullscreen{position:fixed;inset:0;z-index:calc(var(--z-bottom) + 1);border-radius:0;overflow:hidden}.center-panel.fullscreen .tab-content-area{display:flex;flex-direction:column}.center-panel.fullscreen .tab-content.active{flex:1;min-height:0}.center-panel.fullscreen .tab-content.active:has(.skills-grid){max-height:none;height:100%}.center-panel.fullscreen .skills-grid{flex:0 0 auto;max-height:none}.center-panel.fullscreen .skill-detail-wrap{flex:1;min-height:0;display:flex;flex-direction:column}.center-panel.fullscreen .skill-detail{max-height:none;flex:1;min-height:0}.center-panel.fullscreen .resist-table-wrap{display:flex;flex-direction:column;height:100%;min-height:0}.center-panel.fullscreen .resist-table-scroll{max-height:none;flex:1;min-height:0}.center-panel.fullscreen .buffs-list,.center-panel.fullscreen .stats-breakdown{max-height:none;height:100%;overflow-y:auto}body.center-panel-fullscreen-active .current-unit,body.center-panel-fullscreen-active .action-panel,body.center-panel-fullscreen-active .left-column,body.center-panel-fullscreen-active .right-bar,body.center-panel-fullscreen-active .turn-order-wrapper{display:none}.right-bar.fullscreen{position:fixed;inset:0;width:auto;min-width:0;max-width:none;z-index:calc(var(--z-bottom) + 1);pointer-events:auto}.right-bar.fullscreen>.collapse-tab{display:none}.right-bar.fullscreen .right-bar-panel{border-radius:0}.right-bar.fullscreen .roster-section{max-height:34%}body.right-bar-fullscreen-active .current-unit,body.right-bar-fullscreen-active .action-panel,body.right-bar-fullscreen-active .left-column,body.right-bar-fullscreen-active .bottom-panel,body.right-bar-fullscreen-active .turn-order-wrapper,body.right-bar-fullscreen-active .timer-bar{display:none}.center-panel-fullscreen-toggle{height:2.4vh;min-height:22px;padding:0 .5vw;border:none;border-radius:var(--r-sm);background:#2a241e;color:#d9d0c5;font-size:.78em;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;justify-content:center}.center-panel-fullscreen-toggle:hover{background:#3a3129}.center-panel>.center-panel-fullscreen-toggle{position:absolute;top:.45em;right:.55em;z-index:1}.right-bar-fullscreen-toggle{position:absolute;top:.35em;right:.45em;z-index:1;margin-left:0}.game-browser-screen,.lobby-screen{position:static;inset:auto;display:block;align-items:initial;justify-content:initial;gap:0;height:auto;min-height:100vh;overflow:visible;padding:32px;background:var(--bg);color:var(--text);z-index:auto}.game-browser-shell,.lobby-shell{max-width:1280px;margin:0 auto}.game-browser-header,.lobby-header,.game-browser-footer,.lobby-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.game-browser-title,.lobby-header h1{font-size:28px;line-height:1.1;margin:0;font-weight:700}.game-browser-me,.lobby-status{color:var(--muted);font-size:14px}.game-browser-body,.lobby-body{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px;align-items:start}.lobby-body{grid-template-columns:repeat(2,minmax(0,1fr))}.game-browser-panel,.lobby-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);padding:14px;min-width:0}.game-browser-section-title,.lobby-panel h2{margin:0 0 12px;font-size:16px;line-height:1.2}.game-browser-list{display:grid;gap:10px;margin-top:10px}.game-browser-empty,.game-browser-person,.game-browser-room,.lobby-seat,.lobby-roster-row{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:var(--r-sm);padding:10px}.game-browser-person.stale{opacity:.55}.lobby-roster{display:grid;gap:8px;margin-bottom:10px}.lobby-roster-row{color:var(--text);font-size:13px}.lobby-roster-row.stale{opacity:.55}.lobby-chat{display:grid;gap:8px;max-height:180px;overflow:auto;margin-bottom:10px}.lobby-chat-row{font-size:13px;line-height:1.35}.lobby-chat-name{color:var(--accent);font-weight:650}.lobby-chat-form{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:8px;align-items:stretch;min-width:0}.lobby-chat-input{min-width:0;height:32px;box-sizing:border-box;background:#171717;color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);padding:0 9px}.game-browser-room-top,.lobby-seat{display:flex;align-items:center;justify-content:space-between;gap:12px}.game-browser-room-name,.lobby-seat-label{font-weight:650;min-width:0}.game-browser-room-status{color:var(--accent);font-size:12px;text-transform:uppercase}.game-browser-room-meta{margin-top:6px;color:var(--muted);font-size:13px}.game-browser-room-actions,.lobby-seat-actions,.lobby-footer{display:flex;gap:8px;flex-wrap:wrap}.lobby-select,.lobby-seat-mode,.lobby-preset-url,.lobby-preset-paste{width:100%;background:#171717;color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px;margin-bottom:8px}.lobby-preset-paste{min-height:96px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.lobby-map-preview{display:grid;gap:2px;max-width:360px;aspect-ratio:1}.lobby-map-cell{min-width:0;min-height:0;background:#ffffff0f;border-radius:2px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px}.lobby-map-cell.unit{background:var(--accent);color:#111;font-weight:700}.lobby-screen{box-sizing:border-box;height:100vh;min-height:100vh;overflow:hidden;padding:clamp(14px,2vw,28px);background:linear-gradient(135deg,rgba(126,38,28,.18),transparent 34%),linear-gradient(315deg,rgba(61,92,56,.2),transparent 38%),linear-gradient(180deg,var(--multiplayer-bg-start) 0%,var(--multiplayer-bg-mid) 42%,var(--multiplayer-bg-end) 100%);color:var(--app-text)}.lobby-shell{width:100%;max-width:none;height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px}.lobby-header{margin:0;padding:10px 12px;border:var(--panel-border-mid);border-radius:var(--r-sm);background:#100e0ce6;backdrop-filter:var(--panel-blur)}.lobby-header h1{color:var(--accent);font-size:clamp(22px,2vw,32px)}.lobby-body{min-height:0;display:grid;grid-template-columns:minmax(640px,1fr) minmax(320px,28vw);gap:12px;align-items:stretch;overflow:hidden}.lobby-left,.lobby-right{height:100%;min-height:0;display:grid;gap:12px;overflow:hidden}.lobby-left{grid-template-rows:minmax(0,1fr) minmax(190px,.48fr)}.lobby-right{grid-template-rows:minmax(0,.86fr) minmax(150px,.74fr) minmax(130px,.54fr)}.lobby-top-row{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.42fr);gap:12px}.lobby-panel{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:12px;background:#0d0c0bdb;border:var(--panel-border);border-radius:var(--r-sm);backdrop-filter:var(--panel-blur);overflow:hidden}.lobby-screen .lobby-panel{min-width:0}.lobby-panel h2{color:var(--accent);font-size:16px;margin:0 0 10px}.lobby-players-panel,.lobby-rules-panel{overflow:auto}.lobby-screen .lobby-spectators-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.lobby-screen .lobby-chat-panel{display:grid;grid-template-rows:minmax(0,1fr);min-height:260px;padding:12px 12px 10px;overflow:hidden}.lobby-team{display:grid;gap:8px;align-content:start;margin-bottom:12px}.lobby-team-heading{display:flex;align-items:center;gap:8px;color:#e0d8c8;font-weight:800}.lobby-team-swatch{width:12px;height:12px;border-radius:50%;border:1px solid rgba(255,255,255,.45)}.lobby-seat{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:var(--r-sm)}.lobby-seat-markers{display:flex;align-items:center;gap:5px}.lobby-presence-marker,.lobby-ready-marker{width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,255,255,.6);background:#6e6259;flex:0 0 auto}.lobby-presence-marker.in-lobby{background:var(--accent);box-shadow:0 0 8px #ffcf8573}.lobby-presence-marker.disconnected{background:var(--bad);box-shadow:0 0 8px #d5525280}.lobby-presence-marker.empty,.lobby-ready-marker.not-ready{background:#6e6259;box-shadow:none}.lobby-ready-marker.ready{background:#57c46a;border-color:#fff;box-shadow:0 0 8px #57c46a73}.lobby-ready-marker.hidden{visibility:hidden;box-shadow:none}.lobby-seat-label{display:grid;gap:2px;min-width:0}.lobby-participant-line{display:flex;align-items:center;gap:7px;min-width:0}.lobby-seat-name{color:#ece7df;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-seat-slot{color:var(--muted);font-size:12px}.lobby-seat-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.lobby-seat-actions .menu-btn{height:28px;min-height:0;padding:0 10px;font-size:12px}.lobby-seat-mode,.lobby-select,.lobby-preset-url,.lobby-preset-paste{background:#111;color:#ece7df;border:1px solid rgba(255,204,120,.24);border-radius:var(--r-sm)}.lobby-commands-panel{align-content:start;overflow:auto}.lobby-command-group{display:grid;gap:8px;align-content:start;margin-bottom:12px;min-width:0}.lobby-command-group+.lobby-command-group{padding-top:12px;border-top:var(--panel-border)}.lobby-command-group h3{margin:0;color:var(--accent);font-size:14px;line-height:1.2}.lobby-command-group>.lobby-select,.lobby-command-group>.lobby-preset-url-row,.lobby-command-group>.lobby-preset-paste,.lobby-command-group>.menu-btn{width:100%;min-width:0}.lobby-command-group>.menu-btn{min-height:34px;padding:0 12px}.lobby-preset-url-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.lobby-preset-url{min-width:0;margin-bottom:0}.lobby-preset-url-row .menu-btn{min-height:34px;padding:0 12px}.lobby-asset-approval{gap:10px}.lobby-asset-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border:var(--panel-border);border-radius:var(--r-sm);background:var(--card-bg)}.lobby-asset-row .menu-btn{grid-column:span 1;min-height:28px;padding:0 10px}.lobby-asset-meta{display:grid;gap:3px;min-width:0}.lobby-asset-meta span,.lobby-asset-status{color:var(--text-muted);font-size:12px}.lobby-preset-paste{min-height:88px;padding:9px;resize:vertical}.lobby-password-controls{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}.lobby-room-password-input{min-width:0;height:34px;padding:0 10px;background:#111;color:#ece7df;border:1px solid rgba(255,204,120,.24);border-radius:var(--r-sm)}.lobby-preview-panel{cursor:pointer}.battlefield-preview{position:relative;overflow:hidden;min-width:0;min-height:0;background:radial-gradient(circle at center,rgba(255,204,120,.07),transparent 58%),linear-gradient(180deg,#171412,#0b0a09)}.battlefield-preview-canvas{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%}.battlefield-preview-error{display:grid;place-items:center;padding:12px}.lobby-map-preview,.lobby-map-field{width:100%;max-width:none;min-height:0}.lobby-map-preview{align-self:center;height:min(38vh,360px);border:1px solid rgba(255,204,120,.16);border-radius:var(--r-sm)}.lobby-map-cell{min-width:0;min-height:0;aspect-ratio:1;background:#ffffff0f;border-radius:2px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:clamp(7px,.7vw,11px)}.lobby-rule-list{display:grid;gap:8px;align-content:start}.lobby-rule-row{display:grid;grid-template-columns:minmax(0,.48fr) minmax(0,1fr);gap:10px;padding:8px;background:#ffffff0a;border-radius:var(--r-sm);color:var(--muted);font-size:13px}.lobby-rule-row strong{color:#ece7df;font-weight:700}.lobby-rule-controls{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px}.lobby-timeout-input{min-width:0;height:34px;padding:0 8px;color:#ece7df;background:#00000057;border:1px solid rgba(255,210,120,.22);border-radius:var(--r-sm);font:inherit}.lobby-roster{display:grid;gap:8px;align-content:start;margin:0}.lobby-spectators-panel>.lobby-roster{min-height:0;overflow:auto;padding-right:4px}.lobby-spectators-panel>.menu-btn{align-self:end;margin-top:10px}.lobby-roster-row{display:flex;align-items:center;gap:8px;min-width:0;padding:8px}.lobby-roster-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-chat{overflow:auto;min-height:0;max-height:none;margin:0;padding:8px;background:#05050573;border:1px solid rgba(255,204,120,.18)}.lobby-chat-time{color:var(--muted);font-variant-numeric:tabular-nums}.lobby-chat-form{margin-top:0}.lobby-chat-form .menu-btn{align-self:stretch;width:92px;min-width:0;min-height:0;height:32px;box-sizing:border-box;padding:0}.lobby-footer{position:relative;z-index:2;margin:0;align-items:center;padding:10px 12px;border:var(--panel-border);border-radius:var(--r-sm);background:#0d0c0beb}.lobby-footer-status{color:var(--muted);font-size:14px}.lobby-footer-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.lobby-start{min-width:150px}.lobby-field-overlay{position:fixed;inset:0;z-index:600;display:flex;align-items:center;justify-content:center;padding:0;background:#0f0f0f}.lobby-field-dialog{width:100vw;height:100vh;max-height:none;position:relative;display:block;padding:0;border:0;border-radius:0;background:linear-gradient(135deg,rgba(126,38,28,.18),transparent 34%),linear-gradient(315deg,rgba(61,92,56,.2),transparent 38%),linear-gradient(180deg,var(--multiplayer-bg-start) 0%,var(--multiplayer-bg-mid) 42%,var(--multiplayer-bg-end) 100%)}.lobby-map-field{height:100vh;border:var(--panel-border-mid);border:0;border-radius:0;cursor:crosshair}.lobby-field-header{position:fixed;top:1vh;right:1vw;z-index:720;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px;background:#070707b8;border:var(--panel-border-mid);border-radius:var(--r-sm);backdrop-filter:var(--panel-blur)}.lobby-field-header h2{color:var(--accent);margin:0;max-width:28vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.game-browser-screen{height:100vh;min-height:100vh;overflow:hidden;padding:clamp(14px,2vw,28px);background:linear-gradient(135deg,rgba(126,38,28,.18),transparent 34%),linear-gradient(315deg,rgba(61,92,56,.2),transparent 38%),linear-gradient(180deg,var(--multiplayer-bg-start) 0%,var(--multiplayer-bg-mid) 42%,var(--multiplayer-bg-end) 100%);color:var(--app-text)}.game-browser-shell{width:100%;max-width:none;height:100%;margin:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:12px}.game-browser-header{margin:0;padding:10px 12px;border:var(--panel-border-mid);border-radius:var(--r-sm);background:#100e0ce6;backdrop-filter:var(--panel-blur);align-items:center}.game-browser-title{color:var(--accent);font-size:clamp(22px,2vw,32px);line-height:1;letter-spacing:0}.game-browser-me{color:#d7d0c7;font-size:13px;line-height:1.35;text-align:right}.game-browser-network-label{color:#ece7df;font-weight:700}.game-browser-identity-label{color:var(--muted)}.game-browser-create-bar{display:flex;align-items:center;justify-content:flex-end;gap:8px}.game-browser-status-message{min-width:0;max-width:min(720px,62vw);margin-right:auto;padding:7px 10px;border:1px solid rgba(255,204,120,.22);border-radius:var(--r-sm);background:#0e0d0cc7;color:#d7d0c7;font-size:13px;line-height:1.25;overflow-wrap:anywhere}.game-browser-create-bar .menu-btn,.game-browser-room-actions .menu-btn,.game-browser-send,.game-browser-dialog-actions .menu-btn{min-height:0;height:32px;padding:0 14px;border:1px solid rgba(255,194,107,.42);border-radius:var(--r-sm);background:linear-gradient(180deg,#3a3129,#171412);color:#ece7df;font-size:13px;font-weight:700;text-decoration:none;text-transform:none}.game-browser-create-bar .menu-btn:hover,.game-browser-room-actions .menu-btn:hover,.game-browser-send:hover,.game-browser-dialog-actions .menu-btn:hover{border-color:var(--accent);background:linear-gradient(180deg,#4b3b2c,#201915)}.game-browser-body{min-height:0;display:grid;grid-template-columns:minmax(620px,1fr) minmax(260px,22vw);grid-template-rows:minmax(220px,.92fr) minmax(210px,.72fr);grid-template-areas:"rooms people" "messages people";gap:12px;align-items:stretch}.game-browser-rooms{grid-area:rooms}.game-browser-people{grid-area:people}.game-browser-messages{grid-area:messages;overflow:hidden}.game-browser-panel{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:12px;border:var(--panel-border);border-radius:var(--r-sm);background:#0d0c0bdb;backdrop-filter:var(--panel-blur)}.game-browser-messages{grid-template-rows:minmax(0,1fr);min-height:220px}.game-browser-tabbed-log,.lobby-tabbed-log{min-height:0;height:100%}.game-browser-section-title{margin:0 0 10px;color:var(--accent);font-size:16px;line-height:1.2}.game-browser-count-cell,.game-browser-state-cell{text-align:center}.game-browser-room-actions{display:flex;gap:6px;flex-wrap:nowrap}.game-browser-room-actions .menu-btn{width:68px;height:26px;padding:0;font-size:11px}.game-browser-person.stale{opacity:.58}.game-browser-status-dot{display:inline-block;width:10px;height:10px;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:#57c46a;box-shadow:0 0 8px #57c46a73}.game-browser-status-dot.idle{background:#d4a44b;box-shadow:0 0 8px #d4a44b66}.game-browser-status-dot.stale{background:#696460;box-shadow:none}.game-browser-avatar{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;border:1px solid rgba(255,204,120,.24);border-radius:50%;background:#292420;color:var(--accent);font-size:12px;font-weight:800}img.game-browser-avatar{object-fit:cover}.game-browser-message-log{min-height:0;overflow:auto;border:1px solid rgba(255,204,120,.18);background:#05050573;padding:8px;font-size:13px}.game-browser-message-row{line-height:1.4;overflow-wrap:anywhere}.game-browser-message-time{color:#8f877b}.game-browser-message-name{color:var(--accent);font-weight:700}.game-browser-message-form{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:8px;align-items:stretch;min-width:0;margin-top:0}.game-browser-message-input,.game-browser-dialog-field input{min-width:0;height:32px;box-sizing:border-box;background:#111;color:#ece7df;border:1px solid rgba(255,204,120,.24);border-radius:var(--r-sm);padding:0 9px;font-size:13px}.game-browser-send{width:92px;min-width:0;height:32px;box-sizing:border-box;padding:0}.game-browser-dialog-backdrop{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:20px;background:#00000094}.game-browser-create-dialog{width:min(420px,calc(100vw - 40px));display:grid;gap:12px;padding:18px;border:var(--panel-border-mid);border-radius:var(--r-sm);background:#0e0e0ef5;color:#ece7df;box-shadow:0 16px 48px #00000073}.game-browser-create-dialog h2{margin:0;color:var(--accent);font-size:18px}.game-browser-dialog-note{color:#ece7df;font-size:14px;font-weight:700}.game-browser-dialog-field{display:grid;gap:6px;color:#c5bdb1;font-size:13px;font-weight:700}.game-browser-password-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:8px;align-items:end}.game-browser-password-eye{height:32px;border:var(--panel-border);border-radius:var(--r-sm);background:#00000073;color:#ece7df;cursor:pointer}.game-browser-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.game-browser-header,.lobby-header,.game-browser-panel,.lobby-panel,.lobby-footer,.game-browser-create-dialog,.lobby-field-header{background:var(--panel-bg);border:var(--panel-border);box-shadow:var(--panel-shadow);color:var(--app-text)}.game-browser-header,.lobby-header,.game-browser-panel,.lobby-panel,.lobby-footer,.game-browser-create-dialog,.lobby-field-header,.game-browser-status-message,.game-browser-message-log,.lobby-chat,.battlefield-preview,.lobby-map-preview{border-radius:var(--r-sm)}.game-browser-person,.game-browser-room,.game-browser-empty,.lobby-seat,.lobby-roster-row,.lobby-rule-row,.lobby-team,.game-browser-status-message{background:var(--control-bg);border:var(--panel-border);color:var(--app-text)}.game-browser-create-bar .menu-btn,.game-browser-room-actions .menu-btn,.game-browser-send,.game-browser-dialog-actions .menu-btn,.lobby-seat-actions .menu-btn,.lobby-footer-actions .menu-btn,.lobby-spectators-panel>.menu-btn,.lobby-chat-form .menu-btn{background:var(--button-bg);border:var(--panel-border);border-radius:var(--button-radius);color:var(--button-text);box-shadow:none;text-decoration:none}.game-browser-create-bar .menu-btn:hover,.game-browser-room-actions .menu-btn:hover,.game-browser-send:hover,.game-browser-dialog-actions .menu-btn:hover,.lobby-seat-actions .menu-btn:hover,.lobby-footer-actions .menu-btn:hover,.lobby-spectators-panel>.menu-btn:hover,.lobby-chat-form .menu-btn:hover{background:var(--button-hover-bg);border-color:var(--accent);box-shadow:var(--button-hover-shadow)}.game-browser-message-input,.game-browser-dialog-field input,.game-browser-password-eye,.lobby-chat-input,.lobby-select,.lobby-seat-mode,.lobby-preset-url,.lobby-preset-paste,.lobby-room-password-input,.lobby-timeout-input{background:var(--input-bg);border:var(--panel-border);border-radius:var(--r-sm);color:var(--app-text)}.game-browser-message-input:focus,.game-browser-dialog-field input:focus,.lobby-chat-input:focus,.lobby-select:focus,.lobby-seat-mode:focus,.lobby-preset-url:focus,.lobby-preset-paste:focus,.lobby-room-password-input:focus,.lobby-timeout-input:focus{outline:none;border-color:var(--accent)}.game-browser-avatar{background:var(--card-bg);border:var(--panel-border);color:var(--accent)}.game-browser-message-log,.lobby-chat{display:block;background:var(--panel-bg-alt);border:var(--panel-border)}.game-browser-message-row,.lobby-chat-row{display:block;margin:0 0 4px}.game-browser-message-row:last-child,.lobby-chat-row:last-child{margin-bottom:0}.battlefield-preview{background:radial-gradient(circle at center,var(--accent-soft),transparent 58%),var(--card-bg);border:var(--panel-border)}.lobby-map-preview{border:var(--panel-border)}.lobby-map-cell{background:var(--control-bg);border-radius:max(2px,calc(var(--r-sm) * .25))}.lobby-presence-marker.in-lobby,.lobby-ready-marker.ready,.game-browser-status-dot,.game-browser-status-dot.idle{box-shadow:var(--button-hover-shadow)}.game-browser-create-dialog{border-radius:var(--r-md)}.game-browser-screen ::-webkit-scrollbar-thumb,.lobby-screen ::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb)}@media(max-width:1100px){.game-browser-screen{height:auto;min-height:100vh;overflow:auto}.game-browser-shell{height:auto}.game-browser-header{align-items:flex-start;flex-wrap:wrap}.game-browser-me{max-width:100%;min-width:0;text-align:left;overflow-wrap:anywhere}.game-browser-body{grid-template-columns:1fr;grid-template-rows:auto;grid-template-areas:"rooms" "people" "messages"}.game-browser-create-bar{justify-content:flex-start;flex-wrap:wrap}.game-browser-status-message{width:100%;max-width:none;margin-right:0}.game-browser-room-table{min-width:858px}.game-browser-room-table th:nth-child(1),.game-browser-room-table td:nth-child(1){width:44px}.game-browser-room-table th:nth-child(2),.game-browser-room-table td:nth-child(2){width:150px}.game-browser-room-table th:nth-child(3),.game-browser-room-table td:nth-child(3){width:110px}.game-browser-room-table th:nth-child(4),.game-browser-room-table td:nth-child(4){width:108px}.game-browser-room-table th:nth-child(5),.game-browser-room-table td:nth-child(5){width:68px}.game-browser-room-table th:nth-child(6),.game-browser-room-table td:nth-child(6){width:56px}.game-browser-room-table th:nth-child(7),.game-browser-room-table td:nth-child(7){width:82px}.game-browser-room-table th:nth-child(8),.game-browser-room-table td:nth-child(8){width:116px}.game-browser-room-table th:nth-child(9),.game-browser-room-table td:nth-child(9){width:48px}.game-browser-room-table th:nth-child(10),.game-browser-room-table td:nth-child(10){width:76px}.game-browser-room-scroll,.game-browser-player-scroll{height:clamp(170px,26vh,260px)}.lobby-screen{height:auto;min-height:100vh;overflow:auto;align-items:stretch;justify-content:flex-start}.lobby-shell{height:auto;min-height:calc(100vh - clamp(28px,4vw,56px));grid-template-rows:auto auto auto}.lobby-body{grid-template-columns:1fr;overflow:visible}.lobby-left,.lobby-right{height:auto;overflow:visible;grid-template-rows:auto}.lobby-top-row{grid-template-columns:minmax(0,1fr) minmax(220px,.42fr)}.lobby-players-panel,.lobby-spectators-panel{max-height:42vh}.lobby-chat-panel{min-height:260px}.lobby-map-preview{height:clamp(210px,34vh,300px)}.lobby-password-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.lobby-password-controls .lobby-room-password-input{grid-column:1 / -1}.lobby-password-controls .menu-btn{width:100%;min-width:0}}@media(max-width:1100px)and (max-height:520px){.lobby-commands-panel{max-height:max(220px,calc(100vh - 112px))}}@media(max-width:900px){.game-browser-screen{height:auto;min-height:100vh;overflow:auto}.game-browser-body{grid-template-columns:1fr;grid-template-rows:auto;grid-template-areas:"rooms" "people" "messages"}.game-browser-create-bar{justify-content:flex-start;flex-wrap:wrap}.game-browser-status-message{width:100%;max-width:none;margin-right:0}.game-browser-panel,.lobby-panel{padding:10px}.game-browser-table{font-size:12px}.game-browser-table th,.game-browser-table td{height:28px;padding:3px 6px}.game-browser-room-table{min-width:940px}.game-browser-player-table{min-width:430px}.game-browser-room-actions .menu-btn{height:24px}.game-browser-room-scroll,.game-browser-player-scroll{height:clamp(160px,30vh,220px)}}@media(max-width:700px){.lobby-top-row,.lobby-password-controls{grid-template-columns:1fr}.lobby-password-controls .lobby-room-password-input{grid-column:auto}.lobby-players-panel,.lobby-spectators-panel{max-height:none;min-height:190px}}@media(max-width:640px){.game-browser-screen{padding:10px}.game-browser-shell{gap:8px}.game-browser-header,.lobby-header,.lobby-footer{padding:8px}.game-browser-title,.lobby-header h1{font-size:20px}.game-browser-me{max-width:46vw;font-size:12px}.game-browser-room-table{min-width:880px}.game-browser-room-table th:nth-child(2),.game-browser-room-table td:nth-child(2){width:150px}.game-browser-room-table th:nth-child(3),.game-browser-room-table td:nth-child(3){width:92px}.game-browser-room-table th:nth-child(4),.game-browser-room-table td:nth-child(4){width:74px}.game-browser-room-table th:nth-child(5),.game-browser-room-table td:nth-child(5),.game-browser-room-table th:nth-child(6),.game-browser-room-table td:nth-child(6),.game-browser-room-table th:nth-child(7),.game-browser-room-table td:nth-child(7),.game-browser-room-table th:nth-child(9),.game-browser-room-table td:nth-child(9){width:54px}.game-browser-room-table th:nth-child(8),.game-browser-room-table td:nth-child(8){width:110px}.game-browser-room-table th:nth-child(10),.game-browser-room-table td:nth-child(10){width:82px}.game-browser-room-actions .menu-btn{width:58px}.game-browser-message-form{grid-template-columns:minmax(0,1fr) 76px}.game-browser-messages{min-height:180px}.game-browser-send{width:76px}.lobby-screen{padding:10px}.lobby-footer{display:grid;gap:8px}.lobby-footer-actions{justify-content:stretch}.lobby-footer-actions .menu-btn{flex:1 1 auto}}@media(max-width:700px){.demo-select-screen{justify-content:flex-start;gap:12px;min-height:100vh;min-height:100dvh;padding:calc(env(safe-area-inset-top,0px) + 58px) 14px calc(env(safe-area-inset-bottom,0px) + 18px);overflow-y:auto}.demo-select-screen h1{width:100%;margin:0 0 4px;text-align:center;font-size:clamp(26px,8vw,34px)}.demo-select-screen .demo-grid{width:100%;max-width:520px;gap:10px;margin-bottom:0}.demo-select-screen .demo-card{width:100%;min-width:0;min-height:0;padding:14px;border-radius:8px}.demo-select-screen .demo-back{position:fixed;top:calc(env(safe-area-inset-top,0px) + 10px);left:10px;z-index:2;min-width:74px}.bottom-panel{left:8px;bottom:8px;width:min(64vw,300px)}.bottom-layout{flex-direction:column;align-items:stretch;gap:6px;max-height:54vh}.current-unit,.center-panel,.action-panel{width:100%;min-width:0;max-width:none}.current-unit{padding:8px}.current-header{gap:8px}.current-portrait{width:48px;border-radius:var(--r-sm)}.current-info-row{font-size:12px}.big-hp{margin-top:6px}.center-panel{min-height:0;max-height:27vh;padding:8px calc(8px + 2.8em) 8px 8px}.center-panel.fullscreen{width:auto;max-width:none;max-height:none}.tabs{gap:4px;flex-wrap:wrap}.tab-btn,.center-panel-fullscreen-toggle{height:24px;padding:0 7px;font-size:11px}.skills-grid{max-height:16vh;gap:6px}.skill-btn{width:66px;min-width:66px;max-width:72px}.action-panel{min-height:46px;align-self:stretch;flex-direction:row;justify-content:space-between;padding:6px}}@media(max-width:420px){.bottom-panel{width:56vw}.center-panel{max-height:24vh}.skill-btn{width:60px;min-width:60px}.skill-brick-name{font-size:.82em}}@media(max-height:520px){.demo-select-screen{justify-content:flex-start;gap:10px;min-height:100vh;min-height:100dvh;padding:calc(env(safe-area-inset-top,0px) + 52px) 14px calc(env(safe-area-inset-bottom,0px) + 14px);overflow-y:auto}.demo-select-screen h1{width:100%;margin:0;text-align:center;font-size:clamp(24px,6vh,32px)}.demo-select-screen .demo-grid{width:100%;max-width:min(760px,92vw);gap:10px;margin-bottom:0}.demo-select-screen .demo-card{min-height:0;padding:12px;border-radius:8px}.demo-select-screen .demo-back{position:fixed;top:calc(env(safe-area-inset-top,0px) + 10px);left:10px;z-index:2;min-width:74px}}
