:root{--bg:#060a0d;--panel-bg:#070e12ed;--panel-fill:var(--panel-bg);--line:#6edcff2b;--line-strong:#6edcff99;--panel-border:var(--line);--text:#d8e7eb;--muted:#7f959d;--accent:#ffb547;--accent-soft:#ffb54729;--accent-text:#ffe2b3;--cyan:#5ee0ff;--cyan-soft:#5ee0ff1f;--danger:#ff6159;--ok:#5be394;--warn:#ffc24d;--glow-accent:0 0 6px #ffb5478c;--glow-cyan:0 0 6px #5ee0ff73;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--corner:9px;color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scrollbar-color:#6edcff4d transparent;scrollbar-width:thin;font-family:system-ui,Hiragino Sans,Noto Sans JP,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);height:100%;margin:0;overflow:hidden}#game{position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}.panel{pointer-events:auto;background:linear-gradient(var(--line-strong), var(--line-strong)) left top / var(--corner) 1px no-repeat, linear-gradient(var(--line-strong), var(--line-strong)) left top / 1px var(--corner) no-repeat, linear-gradient(var(--line-strong), var(--line-strong)) right top / var(--corner) 1px no-repeat, linear-gradient(var(--line-strong), var(--line-strong)) right top / 1px var(--corner) no-repeat, linear-gradient(var(--line-strong), var(--line-strong)) left bottom / var(--corner) 1px no-repeat, linear-gradient(var(--line-strong), var(--line-strong)) left bottom / 1px var(--corner) no-repeat, linear-gradient(var(--line-strong), var(--line-strong)) right bottom / var(--corner) 1px no-repeat, linear-gradient(var(--line-strong), var(--line-strong)) right bottom / 1px var(--corner) no-repeat, var(--panel-fill);border:1px solid var(--panel-border);background-origin:border-box;border-radius:2px;padding:16px;box-shadow:0 10px 30px #00000080,inset 0 1px #6edcff0d}.num,code,kbd{font-family:var(--mono);font-variant-numeric:tabular-nums}.entry{flex-direction:column;gap:12px;width:min(360px,100vw - 32px);display:flex;position:absolute;top:max(16px,8vh);left:50%;transform:translate(-50%)}.entry label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.divider{color:var(--muted);text-align:center;font-size:12px}.room{flex-direction:column;gap:10px;width:min(380px,100vw - 24px);max-height:calc(100vh - 270px);padding:12px;display:flex;position:absolute;top:12px;right:12px;overflow-y:auto}.room header{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.room header button,.room header span{white-space:nowrap}.room header code{color:var(--accent-text);letter-spacing:.16em;text-shadow:var(--glow-accent);margin-right:auto;font-size:16px}.row{gap:8px;display:flex}.row input{flex:1;min-width:0}input{font:inherit;color:var(--text);border:1px solid var(--line);background:#00000059;border-radius:2px;padding:8px 10px}input[type=number]{font-family:var(--mono)}input[type=checkbox]{accent-color:var(--accent)}input[type=range]{accent-color:var(--cyan);background:0 0;border:none;padding:0}select{font:inherit;color:var(--text);border:1px solid var(--line);background:#0a1418;border-radius:2px;padding:4px 6px;font-size:13px}input:focus,select:focus{outline:1px solid var(--cyan);outline-offset:-1px;box-shadow:var(--glow-cyan)}.code-input{font-family:var(--mono);text-transform:uppercase;letter-spacing:.16em}.code-input::placeholder{text-transform:none;letter-spacing:normal}button{font:inherit;color:var(--text);background:var(--cyan-soft);cursor:pointer;border:1px solid #6edcff3d;border-radius:2px;padding:8px 14px;transition:background .12s,border-color .12s,box-shadow .12s}button:hover:not(:disabled){background:#5ee0ff33;border-color:#6edcff8c;box-shadow:0 0 10px #5ee0ff26}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible{outline:1px solid var(--cyan);outline-offset:1px}button:disabled{opacity:.45;cursor:default}button.primary{color:var(--accent-text);border-color:var(--accent);letter-spacing:.03em;text-shadow:var(--glow-accent);background:linear-gradient(#ffb54752,#ffb54724);font-weight:700}button.primary:hover:not(:disabled){border-color:var(--accent);background:#ffb54766;box-shadow:0 0 14px #ffb54759}button.small{padding:4px 8px;font-size:12px}button.subtle{border-color:var(--line);background:0 0}.error{min-height:1.2em;color:var(--danger);margin:0;font-size:13px}.members{flex-direction:column;gap:6px;min-height:0;max-height:40vh;margin:0;padding:0;font-size:14px;list-style:none;display:flex;overflow-y:auto}.member-count{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--cyan)}.team-preview .note{margin:0 0 4px}.preview-teams{flex-direction:column;gap:4px;max-height:20vh;margin:0;padding:0;font-size:13px;list-style:none;display:flex;overflow-y:auto}.members li{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.members .name{text-overflow:ellipsis;white-space:nowrap;min-width:4em;max-width:10em;overflow:hidden}.members .status{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.tag{border:1px solid var(--line);color:var(--muted);background:#6edcff0f;border-radius:2px;padding:0 6px;font-size:11px}.tag.spectate{cursor:pointer;align-items:center;gap:4px;display:inline-flex}.tag.spectate input{margin:0}.tag.candidate{background:var(--cyan-soft);color:var(--cyan);border-color:#5ee0ff66}.tag.team{color:var(--ok);background:#5be3941f;border-color:#5be39466;margin-right:6px}.team-select{padding:1px 4px;font-size:12px}.tag.host{background:var(--accent-soft);color:var(--accent);border-color:#ffb54773}.dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px}.dot.idle{background:#fff3}.dot.self,.dot.connected{background:var(--ok);box-shadow:0 0 5px var(--ok)}.dot.connecting,.dot.disconnected{background:var(--warn)}.dot.failed{background:var(--danger)}.settings-grid{grid-template-columns:1fr 1fr;gap:6px 10px;display:grid}.settings-grid label{color:var(--muted);flex-direction:column;gap:2px;font-size:12px;display:flex}.small-input{width:100%;padding:4px 6px;font-size:13px}.match-area{flex-direction:column;gap:6px;display:flex}.match-status{flex-direction:column;gap:4px;font-size:13px;display:flex}.note{color:var(--muted);margin:0;font-size:12px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px}.warn{color:var(--warn);font-size:12px}.swatch{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.tag.player{color:var(--text)}.tag.player .swatch{margin-right:4px}.chat-panel{--panel-fill:#070e12b8;flex-direction:column;gap:8px;width:min(380px,100vw - 24px);padding:8px;display:flex;position:absolute;bottom:12px;left:12px}.chat-panel.open{--panel-fill:var(--panel-bg)}.chat-toggle{background:0 0;align-self:flex-start;padding:3px 8px;font-size:12px}.chat-preview{overflow-wrap:anywhere;font-size:13px}.chat-scope{flex:none}.chat-log{border:1px solid var(--line);overflow-wrap:anywhere;background:#00000059;border-radius:2px;flex-direction:column;gap:4px;height:200px;padding:8px;font-size:13px;display:flex;overflow-y:auto}.chat strong{margin-right:6px}.chat.self strong{color:var(--accent)}.chat strong{color:var(--cyan)}.notice{color:var(--muted);font-size:12px}.resource-bar{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:4px 16px;padding:8px 14px;font-size:14px;display:flex}.top-left{flex-direction:column;align-items:flex-start;gap:6px;max-width:calc(100vw - 420px);display:flex;position:absolute;top:12px;left:12px}.resource{white-space:nowrap}.resource .income{color:var(--ok);margin-left:4px;font-size:11px}.resource .pending{color:var(--muted);font-size:11px}.dominance{align-items:center;gap:10px;display:flex}.dominance .mine{font-weight:700}.dominance .out{opacity:.4;text-decoration:line-through}.selection-panel{flex-direction:column;gap:8px;width:fit-content;min-width:min(520px,100vw - 24px);max-width:min(1000px,100vw - 24px);margin:0 auto;padding:12px;display:flex;position:absolute;bottom:12px;left:404px;right:216px}.selection-panel h2{margin:0;font-size:15px}.action-row{flex-wrap:wrap;gap:8px;display:flex}button.action{flex-direction:column;align-items:flex-start;gap:2px;padding:6px 12px;display:flex}button.action .cost{color:var(--muted);font-size:11px}.bar{border:1px solid var(--line);background:#6edcff1a;border-radius:1px;height:6px;overflow:hidden}.bar>span{background:var(--accent);width:0;height:100%;box-shadow:var(--glow-accent);display:block}.queue{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.queue-item{border:1px solid var(--line);background:#6edcff0f;border-radius:2px;padding:2px 8px;font-size:12px}.queue-item.active{border-color:var(--accent);color:var(--accent-text)}.result-overlay{pointer-events:auto;background:#00000073;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.result{text-align:center;flex-direction:column;gap:12px;width:min(360px,100vw - 32px);display:flex}.result h2{letter-spacing:.12em;color:var(--accent-text);text-shadow:var(--glow-accent);margin:0;font-size:28px}.result p{color:var(--muted);margin:0}.minimap{border-color:var(--line-strong);width:192px;height:192px;padding:0;position:absolute;bottom:12px;right:12px;overflow:hidden;box-shadow:0 10px 30px #00000080,0 0 14px #5ee0ff2e}.minimap-canvas{cursor:pointer;width:100%;height:100%;image-rendering:pixelated;display:block}.radar-rings,.radar-sweep{pointer-events:none;position:absolute;inset:0}.radar-rings{background:radial-gradient(circle,#0000 0 24%,#5ee0ff38 24.5%,#0000 25.5% 49%,#5ee0ff2e 49.5%,#0000 50.5% 74%,#5ee0ff24 74.5%,#0000 75.5%)}.radar-sweep{background:conic-gradient(#5ee0ff47,#5ee0ff00 14%,#0000);animation:4s linear infinite ops-sweep;inset:-42%}@media (prefers-reduced-motion:reduce){.radar-sweep{opacity:0;animation:none}}.map-ruler{pointer-events:none;font-family:var(--mono);color:#5ee0ffa6;text-shadow:0 0 3px #000;font-size:9px;position:absolute}.map-ruler.top{height:12px;top:0;left:0;right:0}.map-ruler.left{width:12px;top:0;bottom:0;left:0}.map-ruler span{white-space:nowrap;position:absolute;top:0;left:0}.map-ruler.top span{margin-left:3px}.map-ruler.left span{writing-mode:vertical-rl;margin-top:2px}.room.collapsed>:not(header):not(.match-area):not(.leave-hint){display:none}.entry label.checkbox{flex-direction:row;align-items:flex-start;gap:8px;font-size:12px}.terrain-tooltip{z-index:5;pointer-events:none;border:1px solid var(--line-strong);background:#050b0ef0;border-radius:2px;max-width:300px;padding:6px 10px;font-size:12px;line-height:1.5;position:absolute}.terrain-tooltip .tooltip-title{font-size:13px;font-weight:700}.terrain-tooltip .tooltip-note{border-bottom:1px solid var(--panel-border);color:var(--muted,#b8c2cc);margin-bottom:6px;padding-bottom:6px}.terrain-toggle{pointer-events:auto;position:absolute;bottom:212px;right:52px}.terrain-legend{flex-direction:column;gap:6px;width:min(420px,100vw - 24px);font-size:12px;display:flex;position:absolute;bottom:244px;right:12px}.terrain-legend h2{margin:0 0 4px;font-size:14px}.legend-row{grid-template-columns:14px 3.5em 1fr;align-items:baseline;gap:6px;display:grid}.legend-row span:last-child{color:var(--muted)}.terrain-line{margin-top:-4px}.chat-header{align-items:center;gap:6px;display:flex}.chat-tabs{gap:4px;margin-left:auto;display:flex}.chat-tab{background:0 0;padding:2px 8px;font-size:12px}.chat-tab.active{background:var(--cyan-soft);border-color:var(--cyan);color:var(--cyan)}.chat-log.tab-all>.cat-log,.chat-log.tab-team>:not(.cat-team),.chat-log.tab-log>:not(.cat-log){display:none}.notice.alert{color:#ff9a9a}.notice.clickable{cursor:pointer}.notice.clickable:hover{text-decoration:underline}.attack-arrows{pointer-events:none;position:absolute;inset:0}.attack-arrow{pointer-events:auto;cursor:pointer;background:0 0;border:none;width:30px;height:22px;padding:0;position:absolute}.attack-arrow:before{content:"";clip-path:polygon(0 20%,60% 20%,60% 0,100% 50%,60% 100%,60% 80%,0 80%);filter:drop-shadow(0 0 3px #000c);background:#ff3b3b;animation:.8s ease-in-out infinite alternate attack-pulse;position:absolute;inset:0}@keyframes attack-pulse{0%{opacity:.6}to{opacity:1}}.unit-list{flex-direction:column;gap:6px;width:190px;min-height:80px;max-height:calc(100vh - 480px);padding:8px;display:flex;position:absolute;top:160px;right:12px;overflow-y:auto}.unit-list-tabs{gap:4px;display:flex}.unit-list-tabs .active{background:var(--cyan-soft);border-color:var(--cyan);color:var(--cyan)}.unit-list-body{flex-direction:column;gap:2px;display:flex}.unit-row{text-align:left;background:0 0;border-color:#0000;align-items:baseline;gap:6px;padding:3px 6px;font-size:13px;display:flex}.unit-row .count{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--cyan);margin-left:auto;font-weight:700}.unit-row .idle{color:var(--warn)}.entry{width:min(560px,100vw - 32px);max-height:calc(100vh - max(16px,8vh) - 16px);overflow-y:auto}.public-rooms{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.public-room{border:1px solid var(--line);background:#6edcff08;border-radius:2px;align-items:center;gap:10px;padding:8px 10px;display:flex}.public-room:hover{border-color:#6edcff59}.public-room-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.public-room-info .note{font-size:12px}.entry-tabs{border-bottom:1px solid var(--panel-border);gap:4px;display:flex}.entry-tabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:8px 6px;font-size:13px}.entry-tabs button.active{color:var(--accent-text);border-bottom-color:var(--accent);text-shadow:var(--glow-accent);font-weight:700}.entry-pane{flex-direction:column;gap:8px;display:flex}.entry-pane>.note{margin:0;font-size:12px}.private-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.private-card{border:1px solid var(--line);background:#6edcff08;border-radius:2px;flex-direction:column;gap:8px;padding:12px;display:flex}.private-card h3{margin:0;font-size:15px}.private-card .note{margin:0;font-size:12px}.private-card form{flex-direction:column}.private-card>:last-child{margin-top:auto}.public-room.mine{border-color:var(--accent)}.public-room-info strong .tag{margin-left:6px;font-weight:400}button.armed{border-color:var(--danger);color:var(--text);background:#ff5a5a59}.note.warn{color:var(--danger)}.leave-hint{margin:0;font-size:12px}button.danger{color:var(--danger);background:0 0;border-color:#ff7a7a80}.world-form{border:1px solid var(--line);border-radius:2px;flex-direction:column;gap:8px;padding:10px;display:flex}.world-form .row{justify-content:flex-end}.room-title{color:var(--text);margin-right:auto;font-size:15px}.records{font-size:13px;font-family:var(--mono);font-variant-numeric:tabular-nums;margin:0;padding:0;list-style:none}.records li{gap:8px;padding:2px 0;display:flex}.records li .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.records li.mine{color:var(--accent);font-weight:700}.resource-bar .shield{color:var(--ok);white-space:nowrap}.resource-bar .score{white-space:nowrap;font-weight:700}.respawn-panel{text-align:center;flex-direction:column;gap:10px;width:min(360px,100vw - 32px);display:flex;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.respawn-panel h2{margin:0;font-size:22px}.respawn-panel p{color:var(--muted);margin:0}:root:not(:lang(ja)):not(:lang(zh)) .resource .pending{margin-left:4px}.entry-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.entry label.lang{flex-direction:row;align-items:center;gap:6px;font-size:12px}.lang-select{padding:1px 4px;font-size:12px}.menu-toggle{pointer-events:auto;width:34px;position:absolute;bottom:212px;right:12px}.menu-backdrop{pointer-events:auto;z-index:10;background:#00000073;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.menu{--panel-fill:#081115;flex-direction:column;gap:10px;width:min(640px,100vw - 32px);max-height:calc(100vh - 32px);display:flex;overflow-y:auto}.menu h2,.menu h3{margin:0}.menu h3{color:var(--muted);font-size:13px;font-weight:400}.menu .controls{border-collapse:collapse;font-size:13px}.menu .controls th{text-align:left;white-space:nowrap;vertical-align:top;padding:3px 12px 3px 0;font-weight:400}.menu .controls td{padding:3px 0}.menu kbd{font-family:var(--mono);border:1px solid var(--line-strong);background:var(--cyan-soft);color:var(--cyan);border-bottom-width:2px;border-radius:2px;padding:1px 6px;font-size:12px}.menu label.lang{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.menu>button{align-self:flex-end}:root{--idle:#ffc24d;--auto:#5ee0ff}.activity{white-space:nowrap;align-items:center;gap:4px;margin-right:10px;display:inline-flex}.activity:before{content:"";border:1px solid #000000b3;flex:none;width:8px;height:8px}.activity.idle:before{background:var(--idle);border-radius:50%}.activity.auto:before{background:var(--auto);transform:rotate(45deg)scale(.85)}.activity.busy:before{background:var(--muted);border-radius:50%}.activity.idle{color:var(--idle)}.activity.auto{color:var(--auto)}.unit-row .status{justify-content:flex-end;gap:6px;min-width:3.5em;font-size:11px;display:flex}.unit-row .status .idle{color:var(--idle)}.unit-row .status .idle.pick{cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.unit-row .status .idle:empty,.unit-row .status .auto:empty{display:none}.unit-row .status .auto{color:var(--auto)}.command-section{border-left:3px solid var(--section);flex-direction:column;gap:6px;padding-left:8px;display:flex}.command-section.orders{--section:#7bd88f}.command-section.build{--section:#f2c14e}.command-section.auto{--section:var(--auto)}.command-label{color:var(--section);cursor:help;align-items:baseline;gap:8px;font-size:13px;font-weight:700;display:flex}.command-label small{color:var(--muted);font-size:11px;font-weight:400}.command-rows{flex-direction:column;gap:6px;min-width:0;display:flex}.command-row{align-items:center;gap:8px;display:flex}.command-sub{width:4.5em;color:var(--muted);flex:none;font-size:11px}.command-sub:empty{display:none}.selection-panel button.action .cost{font-size:10px}.group-bar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.group-chip{pointer-events:auto;background:var(--panel-bg);font-variant-numeric:tabular-nums;align-items:center;gap:6px;padding:3px 10px 3px 4px;font-size:12px;display:inline-flex}.group-chip kbd{font-family:var(--mono);text-align:center;min-width:18px;color:var(--cyan);background:var(--cyan-soft);border-radius:2px;padding:0 4px;font-weight:700}.group-chip.active{border-color:var(--cyan);box-shadow:var(--glow-cyan)}.group-chip.idle{color:var(--idle);border-color:#ffc24d80;padding-left:8px}.group-chip.idle .mark{background:var(--idle);border-radius:50%;width:8px;height:8px}.group-chip.idle.none{opacity:.5}.group-hint{color:var(--muted);background:var(--panel-bg);border:1px solid var(--line);border-radius:2px;padding:3px 8px;font-size:11px}.menu .activity-legend{margin-top:-4px}.command-columns{flex-wrap:wrap;align-items:flex-start;gap:10px 18px;display:flex}.selection-panel:has(.command-columns){width:max(520px,min(1000px,100vw - 620px))}.command-col{flex-direction:column;flex:380px;gap:10px;min-width:0;display:flex}button.action.danger .cost{color:var(--danger)}button.action.danger.armed{border-color:var(--danger);background:#ff5a5a59}.bar.upgrade>span{background:var(--auto)}.coord-link{font:inherit;font-variant-numeric:tabular-nums;color:#ffe08a;cursor:pointer;background:#ffe08a1f;border:1px solid #ffe08a59;border-radius:4px;margin:0 2px;padding:0 4px;display:inline}.coord-link:hover{background:#ffe08a40}.coords-readout{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--cyan);border:1px solid var(--line);pointer-events:none;background:#000000b3;border-radius:2px;padding:1px 6px;font-size:11px;position:absolute;bottom:16px;right:18px}.ops-backdrop{pointer-events:none;position:absolute;inset:0;overflow:hidden}.ops-tint{background:#03090c8c;position:absolute;inset:0}.ops-grid{background-image:linear-gradient(#6edcff21 1px,#0000 1px),linear-gradient(90deg,#6edcff21 1px,#0000 1px),linear-gradient(#6edcff0d 1px,#0000 1px),linear-gradient(90deg,#6edcff0d 1px,#0000 1px);background-size:var(--grid) var(--grid), var(--grid) var(--grid), calc(var(--grid) / 4) calc(var(--grid) / 4), calc(var(--grid) / 4) calc(var(--grid) / 4);position:absolute;inset:0}.ops-sweep{background:radial-gradient(circle,#0000 0 32%,#5ee0ff1f 32.3%,#0000 32.8% 65%,#5ee0ff1a 65.3%,#0000 65.8%),conic-gradient(#5ee0ff38,#5ee0ff00 16%,#0000 100%);border:1px solid #5ee0ff2e;border-radius:50%;width:90vmin;height:90vmin;animation:9s linear infinite ops-sweep;position:absolute;bottom:-22vmin;right:-18vmin}@keyframes ops-sweep{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.ops-sweep{animation:none}}.ops-coords{font-family:var(--mono);color:#5ee0ff80;font-size:10px;display:flex;position:absolute}.ops-coords.top{top:2px;left:0}.ops-coords.top span{width:var(--grid);flex:none;padding-left:4px}.ops-coords.left{flex-direction:column;top:0;left:3px}.ops-coords.left span{height:var(--grid);flex:none;padding-top:14px}.ops-vignette{background:radial-gradient(#0000 45%,#0000008c);position:absolute;inset:0}.brand{align-items:center;gap:12px;display:flex}.logo-mark{color:var(--cyan);filter:drop-shadow(0 0 6px #5ee0ff8c);display:inline-flex}.entry h1{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent-text);text-shadow:var(--glow-accent);margin:0;font-size:24px}.tagline{letter-spacing:.08em;color:var(--cyan);opacity:.85;margin:2px 0 0;font-size:11px}.section-label{letter-spacing:.12em;color:var(--cyan);font-size:11px}.mode-badge{border:1px solid var(--line);border-radius:2px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.mode-badge.endless{color:var(--cyan);background:var(--cyan-soft)}.mode-badge.battle{color:var(--accent);background:var(--accent-soft)}.lamp{vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:7px;display:inline-block}.lamp.live{background:var(--ok);box-shadow:0 0 6px var(--ok);animation:1.6s ease-in-out infinite lamp-blink}.lamp.bots{background:var(--cyan);box-shadow:0 0 5px var(--cyan)}.lamp.paused{background:var(--warn);opacity:.7}@keyframes lamp-blink{50%{opacity:.45}}.seat-line{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.seat-bar{border:1px solid var(--line);background:#6edcff14;flex:1;max-width:180px;height:5px;display:flex}.seat-bar .humans{background:var(--ok);box-shadow:0 0 4px var(--ok)}.seat-bar .bots{background:#5ee0ff59}.settings{flex-direction:column;gap:8px;display:flex}.settings-group{border:1px solid var(--line);border-radius:2px;margin:0;padding:6px 10px 10px}.settings-group legend{letter-spacing:.12em;color:var(--cyan);padding:0 6px;font-size:11px}.map-preview{align-items:flex-start;gap:10px;display:flex}.map-preview-canvas{border:1px solid var(--line-strong);width:132px;height:132px;image-rendering:pixelated;box-shadow:var(--glow-cyan);flex:none}.res-group,.stat-group{flex-wrap:wrap;align-items:center;gap:4px 14px;display:flex}.stat-group{border-left:1px solid var(--line);padding-left:14px}.resource{align-items:center;gap:4px;display:inline-flex}.res-icon{filter:drop-shadow(0 0 3px #000c);display:inline-flex}.res-name{color:var(--muted);font-size:12px}.resource .num,.pop,.dominance,.resource-bar .score{font-family:var(--mono);color:var(--accent-text);text-shadow:var(--glow-accent)}button.action{position:relative}kbd.hotkey{font-family:var(--mono);color:var(--cyan);background:#00000073;border:1px solid #5ee0ff59;border-radius:1px;padding:1px 3px;font-size:9px;line-height:1;position:absolute;top:1px;right:2px}.selection-panel button.action{padding-right:22px}button.action .cost .short{color:var(--danger)}button.denied{animation:.4s ease-out denied}@keyframes denied{0%,60%{border-color:var(--danger);box-shadow:0 0 12px #ff615999}}.banner-stack{pointer-events:none;z-index:6;flex-direction:column;align-items:center;gap:6px;width:min(520px,100vw - 32px);display:flex;position:absolute;top:104px;left:50%;transform:translate(-50%)}.banner{color:var(--text);border:1px solid var(--line-strong);background:#050c0feb;border-left-width:3px;border-radius:2px;align-items:center;gap:10px;padding:7px 16px;font-size:14px;transition:opacity .4s,transform .4s;animation:.25s ease-out banner-in;display:flex;box-shadow:0 6px 20px #00000080}.banner.clickable{cursor:pointer}.banner.leaving{opacity:0;transform:translateY(-6px)}.banner-mark{background:var(--cyan);flex:none;width:8px;height:8px;transform:rotate(45deg)}.banner.attack{border-color:var(--danger);color:#ffd2cf}.banner.attack .banner-mark{background:var(--danger);box-shadow:0 0 8px var(--danger);animation:.6s ease-in-out infinite lamp-blink}.banner.done{border-color:var(--ok)}.banner.done .banner-mark{background:var(--ok)}.banner.warn{border-color:var(--accent);color:var(--accent-text)}.banner.warn .banner-mark{background:var(--accent)}@keyframes banner-in{0%{opacity:0;transform:translateY(-8px)}}.sound-row{flex-wrap:wrap;gap:8px 18px;display:flex}.room:has(.settings-group){width:min(660px,100vw - 24px)}@media (width>=720px){.settings:has(.settings-group){grid-template-columns:1fr 1fr;align-items:start;display:grid}}.settings .map-preview{padding:8px 2px}.selection-panel{gap:6px;padding:10px 12px;container-type:inline-size}.selection-panel>.note{white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.selection-panel .command-columns{gap:8px 16px}.selection-panel .command-col{flex-basis:300px;gap:8px}.selection-panel .action-row{gap:5px}.selection-panel button.action{padding:3px 20px 3px 7px;font-size:13px}@container (width<=560px){.command-sub{display:none}}.tutorial-callout{background:var(--accent-soft);border:1px solid #ffb54780;border-left-width:3px;border-radius:2px;align-items:center;gap:10px;padding:10px 12px;display:flex}.tutorial-callout>div{flex:1;min-width:0}.tutorial-callout strong{color:var(--accent-text)}.tutorial-callout .note{margin-top:2px}.private-card.wide{grid-column:1/-1}.tutorial{flex-direction:column;gap:8px;width:min(300px,100vw - 24px);padding:10px 12px;display:flex;position:absolute;top:120px;left:12px}.tutorial-head{align-items:center;gap:6px;display:flex}.tutorial-head .section-label{margin-right:auto}.tutorial-head button{padding:2px 8px}.tutorial-steps{counter-reset:step;flex-direction:column;gap:4px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.tutorial-steps li{counter-increment:step;color:var(--muted);padding-left:26px;position:relative}.tutorial-steps li:before{content:counter(step, decimal-leading-zero);font-family:var(--mono);color:var(--muted);font-size:11px;position:absolute;top:1px;left:0}.tutorial-steps li.done{opacity:.55}.tutorial-steps li.done:before{content:"✓";color:var(--ok)}.tutorial-steps li.current{color:var(--text)}.tutorial-steps li.current:before{color:var(--accent);text-shadow:var(--glow-accent)}.tutorial-steps li.current strong{color:var(--accent-text)}.tutorial-steps li .note{margin-top:3px;line-height:1.5}.tutorial-steps li.finished{color:var(--ok);padding-left:0}.tutorial-steps li.finished:before{content:none}.menu-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.top-row{align-items:flex-start;gap:6px;max-width:100%;display:flex}.give-toggle{pointer-events:auto;background:var(--panel-bg);flex:none;align-self:center}.give-panel{flex-direction:column;gap:8px;width:min(340px,100vw - 24px);padding:10px 12px;display:flex}.give-quick{align-items:flex-end;gap:4px;display:flex}.give-panel .note{align-items:center;gap:4px;display:flex}kbd.hotkey.inline{position:static}.account-bar{border:1px solid var(--line);background:#5ee0ff0a;border-radius:2px;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:6px 10px;display:flex}.account-who{min-width:0;color:var(--muted);flex-wrap:wrap;flex:1;align-items:center;gap:2px 8px;font-size:12px;display:flex}.account-who.signed-in{color:inherit}.account-who small{color:var(--muted);font-family:var(--mono);overflow-wrap:anywhere;font-size:11px}.auth{--panel-fill:#081115;flex-direction:column;gap:12px;width:min(360px,100vw - 32px);max-height:calc(100vh - 32px);padding:18px 20px;display:flex;overflow-y:auto}.auth h2{margin:0}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-form label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.auth-form .hint{font-size:11px}.auth-actions{gap:8px;display:flex}.auth-actions .primary{flex:1}button.link{box-shadow:none;color:var(--cyan);text-underline-offset:3px;background:0 0;border:none;align-self:flex-start;padding:0;font-size:13px;text-decoration:underline}.tag.danger{color:var(--danger);border-color:#ff6b6b99}.report-button{opacity:.7;flex:none;padding:1px 6px;font-size:11px}.report-button:hover{opacity:1}.auth-form select,.auth-form textarea{width:100%}.auth-form textarea{resize:vertical;font:inherit}.panel.admin{flex-direction:column;gap:12px;width:min(960px,100vw - 32px);margin:24px auto;padding:18px 20px;display:flex}.panel.admin header,.panel.admin nav,.admin-login{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.panel.admin h1{margin:0 auto 0 0;font-size:18px}.admin-list{flex-direction:column;gap:8px;display:flex}.admin-item{border:1px solid var(--line);border-radius:2px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.admin-meta{font-family:var(--mono);color:var(--muted);font-size:11px}.admin-chat{color:var(--muted);margin:0;padding-left:18px;font-size:12px}.admin-player{flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px;display:flex}button.danger{color:var(--danger);border-color:#ff615999}body.page{height:auto;min-height:100%;overflow:auto}html:has(body.page){height:auto;min-height:100%;overflow:auto}.panel.legal{width:min(820px,100vw - 32px);margin:24px auto;padding:18px 24px 28px;font-size:14px;line-height:1.75}.legal h1{margin:8px 0 4px;font-size:22px}.legal h2{color:var(--accent-text);margin:22px 0 6px;font-size:15px}.legal li+li{margin-top:4px}.legal a{color:var(--cyan)}.legal code{font-family:var(--mono);font-size:12px}.legal .unset{color:var(--danger);font-weight:700}.legal-nav{align-items:center;gap:12px;font-size:13px;display:flex}.legal-nav .spacer{flex:1}.legal-nav a{color:var(--muted);text-decoration:none}.legal-nav a.current,.legal-nav a:hover{color:var(--cyan)}.legal-links{justify-content:center;gap:16px;font-size:12px;display:flex}.legal-links a{color:var(--muted)}.legal-links a:hover{color:var(--cyan)}.muted-list{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.muted-list .tag{align-items:center;gap:6px;padding:2px 4px 2px 8px;display:inline-flex}@media (width<=1279px){:is(.selection-panel,.selection-panel:has(.command-columns)){width:auto;min-width:0;max-width:none;max-height:46vh;margin:0;bottom:60px;left:12px;right:212px;overflow-y:auto}.selection-panel .command-col{flex-basis:260px}}.tag.warn-tag{color:var(--warn);border-color:#ffb54780}
