:root{color-scheme:dark;--ink:#080a08;--rail:#11140f;--rail-2:#1c2019;--text:#e1dcc9;--muted:#8e8974;--amber:#dda02b;--amber-hi:#f6c44f;--red:#e96348;--ore:#4bc9c4;--good:#8bc47a;font-family:"Arial Narrow","Avenir Next Condensed","Roboto Condensed",sans-serif;background:var(--ink);color:var(--text)}
*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:var(--ink)}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}button{font:inherit;color:inherit}.operations-shell{display:grid;grid-template-columns:minmax(0,1fr) 300px;width:100%;height:100%;background:var(--ink)}.battlefield{position:relative;isolation:isolate;min-width:0;overflow:hidden;background:#242720}.battlefield canvas{display:block;width:100%;height:100%;outline:0;touch-action:none}.field-strip{position:absolute;z-index:5;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;height:66px;padding:0 18px;background:linear-gradient(180deg,rgba(8,10,8,.96),rgba(8,10,8,.72) 76%,transparent);pointer-events:none;letter-spacing:.1em}.brand-block{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:35px;height:35px;border:1px solid var(--amber);color:var(--amber-hi);font-weight:900;letter-spacing:-.06em}.brand-block strong{display:block;font-size:17px}.brand-block small,.operation-state small,.treasury small{display:block;color:var(--muted);font:700 9px/1.4 ui-monospace,SFMono-Regular,monospace;letter-spacing:.14em}.operation-state{text-align:center;font:800 12px/1 ui-monospace,SFMono-Regular,monospace}.treasury{text-align:right}.treasury strong{font:800 21px/1 ui-monospace,SFMono-Regular,monospace;color:var(--amber-hi)}.notice{position:absolute;z-index:5;top:76px;left:50%;translate:-50% -12px;padding:7px 12px;background:rgba(8,10,8,.9);border-left:3px solid var(--ore);color:var(--text);font:800 10px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.12em;opacity:0;transition:.18s ease;pointer-events:none}.notice.visible{translate:-50% 0;opacity:1}.selection-readout{position:absolute;z-index:4;left:14px;bottom:14px;padding:7px 10px;background:rgba(8,10,8,.82);border-left:2px solid var(--amber);font:700 9px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.1em;color:var(--muted);pointer-events:none}.title-screen,.result-screen{position:absolute;z-index:6;inset:0;display:flex;align-items:flex-end;padding:clamp(28px,5vw,70px);background:linear-gradient(90deg,rgba(7,9,7,.94) 0%,rgba(7,9,7,.72) 34%,rgba(7,9,7,.08) 72%),linear-gradient(0deg,rgba(7,9,7,.72),transparent 45%);transition:opacity .45s ease,visibility .45s ease}.title-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}.title-copy{width:min(490px,82vw);padding-bottom:3vh}.eyebrow{color:var(--ore);font:800 10px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.22em}.title-copy h1{margin:.14em 0 .08em;font:900 clamp(76px,11vw,154px)/.72 "Arial Black","Avenir Next Condensed",sans-serif;letter-spacing:-.09em;color:#efe9d7;text-shadow:0 12px 42px #000}.title-copy p{max-width:440px;margin:24px 0;color:#c0bba8;font:500 15px/1.5 "Avenir Next",sans-serif}.title-copy button,.result-screen button{border:0;border-left:5px solid var(--amber-hi);padding:15px 20px;background:var(--amber);color:#0a0b08;font-weight:900;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:transform .15s ease,background .15s ease}.title-copy button:hover,.result-screen button:hover{transform:translateX(4px);background:var(--amber-hi)}.title-copy button:disabled{opacity:.45;cursor:wait}.title-copy>small{display:block;margin-top:12px;color:var(--muted);font:700 9px/1.4 ui-monospace,SFMono-Regular,monospace;letter-spacing:.1em}.result-screen{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;background:rgba(7,9,7,.82);z-index:7}.result-screen[hidden]{display:none}.result-screen h2{font:900 clamp(60px,10vw,140px)/.8 "Arial Black",sans-serif;margin:.2em 0}.command-rail{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:0;background:linear-gradient(90deg,#151811,#0e100d);border-left:1px solid #36382f;box-shadow:-16px 0 40px rgba(0,0,0,.28);z-index:8}.rail-heading{display:flex;justify-content:space-between;align-items:center;height:66px;padding:0 14px;border-bottom:1px solid #383a30;font-weight:900;letter-spacing:.13em}.rail-heading small{color:var(--ore);font:700 9px ui-monospace,SFMono-Regular,monospace}.rail-section{padding:12px 12px 0;min-height:0}.rail-section h2{margin:0 0 8px;color:var(--muted);font:800 10px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.18em;text-transform:uppercase}.rail-section:first-of-type{flex:1;overflow:auto}.build-list{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#34362e}.build-command{min-height:53px;padding:8px;text-align:left;border:0;background:#171a14;cursor:pointer;transition:background .12s,color .12s}.build-command:hover,.build-command:focus-visible{background:#292d23;outline:1px solid var(--amber)}.build-command span{display:block;font-size:10px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.build-command small{display:block;margin-top:4px;color:var(--muted);font:600 8px/1.25 ui-monospace,SFMono-Regular,monospace}.structures .build-command{min-height:47px}.research{padding-bottom:10px}.research .build-command{grid-column:span 2;min-height:43px}.command-rail footer{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #34362e;color:#777466;font:700 8px/1.2 ui-monospace,SFMono-Regular,monospace;letter-spacing:.08em}.boot-mark{position:absolute;left:50%;top:50%;translate:-50% -50%;font:900 32px/1 "Arial Black",sans-serif;letter-spacing:-.04em;color:var(--amber-hi)}.boot-mark small{display:block;margin-top:8px;color:var(--muted);font:700 9px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.14em}#blazor-error-ui{position:fixed;left:0;right:0;bottom:0;padding:12px;background:#772e24;z-index:99}
@media(max-width:820px){.operations-shell{display:block}.battlefield{height:100%}.command-rail{position:absolute;z-index:6;left:0;right:0;bottom:0;height:238px;border-left:0;border-top:1px solid #4a4a3d;background:rgba(14,16,13,.96);backdrop-filter:blur(14px)}.rail-heading{height:38px}.rail-section{display:none}.rail-section:first-of-type{display:block;padding:8px 8px 0;overflow-x:auto}.build-list{display:flex;width:max-content;gap:1px}.build-command{width:112px;min-height:58px}.command-rail footer{display:none}.field-strip{height:56px;padding:0 10px}.operation-state{display:none}.title-screen{padding:28px 22px 260px;background:linear-gradient(0deg,rgba(7,9,7,.96) 0%,rgba(7,9,7,.28) 70%,rgba(7,9,7,.12))}.title-copy{width:100%}.title-copy h1{font-size:82px}.title-copy p{font-size:13px;max-width:330px}.selection-readout{bottom:248px}.notice{top:62px}.treasury strong{font-size:17px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.rail-tabs{display:none}
@media(max-width:820px){.command-rail{height:250px}.rail-heading{height:36px}.rail-tabs{display:grid;grid-template-columns:repeat(3,1fr);height:38px;border-bottom:1px solid #34362e}.rail-tabs button{border:0;border-right:1px solid #34362e;background:#11140f;color:var(--muted);font:800 9px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.12em;text-transform:uppercase}.rail-tabs button.active{background:#24281f;color:var(--amber-hi);box-shadow:inset 0 -2px var(--amber)}.rail-section,.rail-section:first-of-type{display:none;padding:8px 8px 0;overflow-x:auto}.command-rail[data-mobile-section="armoury"] .rail-section.armoury,.command-rail[data-mobile-section="structures"] .rail-section.structures,.command-rail[data-mobile-section="research"] .rail-section.research{display:block}.rail-section h2{display:none}.build-command,.structures .build-command,.research .build-command{width:126px;min-height:66px}.title-screen{padding-bottom:272px}.selection-readout{bottom:260px}}
.skirmish-setup{display:grid;grid-template-columns:1.45fr 1fr;gap:8px;max-width:490px;margin:0 0 12px}.skirmish-setup label{display:block;padding:9px 10px;background:rgba(28,32,25,.9);border-left:2px solid var(--ore)}.skirmish-setup label>span{display:block;margin-bottom:6px;color:var(--muted);font:700 8px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.14em;text-transform:uppercase}.skirmish-setup select{width:100%;border:0;outline:0;background:#11140f;color:var(--text);font:800 10px/1.2 ui-monospace,SFMono-Regular,monospace}.skirmish-setup select:focus-visible{outline:1px solid var(--amber)}
.colour-picker{grid-column:1/-1;padding:9px 10px;background:rgba(28,32,25,.9);border-left:2px solid var(--ore)}.colour-picker>span{display:block;margin-bottom:7px;color:var(--muted);font:700 8px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.14em;text-transform:uppercase}.colour-picker>div{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.title-copy .colour-swatch{display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;padding:7px 6px;border:1px solid #45493d;border-left:3px solid var(--swatch);background:#11140f;color:#a9a592;letter-spacing:.05em;text-transform:uppercase;transform:none}.title-copy .colour-swatch:hover,.title-copy .colour-swatch:focus-visible{border-color:var(--swatch);background:#20241d;color:#eee8d6;transform:none;outline:0}.title-copy .colour-swatch.selected{border-color:var(--swatch);background:color-mix(in srgb,var(--swatch) 18%,#11140f);color:#fff;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--swatch) 50%,transparent)}.colour-swatch i{display:block;width:12px;height:12px;border-radius:50%;background:var(--swatch);box-shadow:0 0 10px color-mix(in srgb,var(--swatch) 60%,transparent)}.colour-swatch b{overflow:hidden;text-overflow:ellipsis;font:900 8px/1 ui-monospace,SFMono-Regular,monospace}
@media(max-width:820px){.skirmish-setup{grid-template-columns:1fr}.skirmish-setup label{padding:7px 8px}.title-copy p{margin:14px 0}.title-copy h1{font-size:68px}.colour-picker{padding:7px 8px}.colour-picker>span{margin-bottom:5px}.title-copy .colour-swatch{padding:6px 3px;gap:4px}.colour-swatch i{width:10px;height:10px}.colour-swatch b{font-size:7px}}
.selection-box{position:absolute;z-index:3;display:none;border:1px solid rgba(246,196,79,.95);background:rgba(221,160,43,.1);pointer-events:none}.selection-box.visible{display:block}.tactical-minimap{position:absolute;z-index:3;right:14px;bottom:14px;width:164px!important;height:164px!important;border:1px solid #77715b;outline:6px solid rgba(8,10,8,.82);background:#08100e;box-shadow:0 12px 32px rgba(0,0,0,.38);cursor:crosshair;image-rendering:auto}.tactical-minimap:focus-visible{outline-color:var(--amber)}
.touch-select-control{display:none;position:absolute;z-index:7;left:max(12px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));width:58px;height:58px;padding:7px 5px 5px;border:1px solid #77715b;border-left:3px solid var(--amber);background:rgba(11,14,11,.9);color:var(--muted);box-shadow:0 8px 24px rgba(0,0,0,.42);touch-action:none;user-select:none;-webkit-user-select:none;place-items:center;font:800 8px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.13em}.touch-select-control[hidden]{display:none!important}.touch-select-control.active{border-color:var(--amber-hi);background:rgba(85,62,16,.96);color:var(--amber-hi);box-shadow:0 0 0 3px rgba(246,196,79,.16),0 8px 24px rgba(0,0,0,.5)}.touch-select-icon{display:block;width:25px;height:20px;border:1px dashed currentColor;box-shadow:inset 0 0 0 3px rgba(246,196,79,.07)}
@media (hover:none),(pointer:coarse),(max-width:820px){.touch-select-control:not([hidden]){display:grid}}
@media(max-width:820px){.tactical-minimap{right:10px;bottom:268px;width:104px!important;height:104px!important;outline-width:4px}.touch-select-control{bottom:268px}.selection-readout{left:82px;bottom:274px}}
@media(max-height:560px) and (min-width:821px) and (max-width:1100px){.operations-shell{grid-template-columns:minmax(0,1fr) 260px}.command-rail{font-size:92%}.rail-heading{height:54px}.rail-section{padding:8px 8px 0}.build-command{min-height:43px;padding:6px}.build-command small{font-size:7px}.command-rail footer{padding:7px 8px}.field-strip{height:54px;padding:0 12px}.notice{top:60px}.tactical-minimap{width:116px!important;height:116px!important}.selection-readout{left:82px;bottom:20px}.title-screen{padding:20px 24px}.title-copy{width:min(430px,92%);padding:0}.title-copy h1{font-size:70px}.title-copy p{margin:12px 0;font-size:12px;line-height:1.35}.skirmish-setup{margin-bottom:8px}.skirmish-setup label{padding:6px 8px}.title-copy button{padding:12px 17px}}
.unit-preview{display:block;width:100%;height:72px;margin:0 0 7px;object-fit:cover;object-position:center;border-bottom:1px solid #3b3e34;background:#0b110e;pointer-events:none}
@supports(height:100dvh){html,body,#app,.operations-shell{height:100dvh}}
@media(max-width:820px){.operations-shell{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;height:100dvh;min-height:100svh}.battlefield{height:auto;min-height:0}.command-rail{position:relative;left:auto;right:auto;bottom:auto;height:148px;border-left:0;border-top:1px solid #4a4a3d;background:#0e100d;backdrop-filter:none;box-shadow:0 -8px 24px rgba(0,0,0,.3)}.command-rail[data-mobile-section="armoury"]{height:170px}.rail-heading{height:34px;min-height:34px}.rail-tabs{height:34px;min-height:34px}.rail-section,.rail-section:first-of-type{padding:6px 6px 0}.build-command,.structures .build-command,.research .build-command{width:118px;min-height:66px;padding:6px}.armoury .build-command{min-height:94px}.unit-preview{height:48px;margin:0 0 5px}.title-screen{padding:18px;background:linear-gradient(0deg,rgba(7,9,7,.96) 0%,rgba(7,9,7,.24) 70%,rgba(7,9,7,.08))}.title-copy{padding:0}.title-copy h1{font-size:60px}.title-copy p{margin:10px 0;font-size:12px;line-height:1.35}.skirmish-setup{margin-bottom:8px}.tactical-minimap{right:10px;bottom:12px;width:96px!important;height:96px!important;outline-width:3px}.touch-select-control{bottom:12px;width:54px;height:54px}.selection-readout{left:76px;bottom:17px}.notice{top:58px}}
@media(max-height:560px) and (min-width:821px) and (max-width:1100px){.rail-tabs{display:grid;grid-template-columns:repeat(3,1fr);height:34px;min-height:34px;border-bottom:1px solid #34362e}.rail-tabs button{border:0;border-right:1px solid #34362e;background:#11140f;color:var(--muted);font:800 9px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.12em;text-transform:uppercase}.rail-tabs button.active{background:#24281f;color:var(--amber-hi);box-shadow:inset 0 -2px var(--amber)}.rail-section,.rail-section:first-of-type{display:none;flex:1;padding:7px;overflow:auto}.command-rail[data-mobile-section="armoury"] .rail-section.armoury,.command-rail[data-mobile-section="structures"] .rail-section.structures,.command-rail[data-mobile-section="research"] .rail-section.research{display:block}.rail-section h2{display:none}.command-rail footer{display:none}.armoury .build-command{min-height:96px}.unit-preview{height:48px;margin-bottom:5px}}
@media(max-height:560px) and (max-width:1100px){.placement-hud{left:8px;right:8px;top:76px;translate:0 0;width:auto;grid-template-columns:42px minmax(0,1fr) auto;gap:7px;padding:7px}.placement-hud img{width:42px;height:38px}.placement-hud-help{display:none}.placement-hud button{grid-column:3;grid-row:1}}
.field-actions{display:flex;align-items:center;gap:12px;pointer-events:auto}.field-actions #sound-toggle{border:1px solid #5f6254;border-left:3px solid var(--ore);padding:7px 8px;background:rgba(11,14,11,.86);color:var(--muted);font:800 8px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.1em;cursor:pointer}.field-actions #sound-toggle:hover,.field-actions #sound-toggle:focus-visible{border-color:var(--ore);color:var(--text);outline:0}.field-actions #sound-toggle[aria-pressed="true"]{border-left-color:var(--red);color:#b7b1a0}
.field-actions #pause-menu-button{border:1px solid #7d795f;border-left:3px solid var(--amber);padding:7px 9px;background:rgba(11,14,11,.92);color:var(--text);font:900 8px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.12em;cursor:pointer}.field-actions #pause-menu-button:hover,.field-actions #pause-menu-button:focus-visible{border-color:var(--amber-hi);color:var(--amber-hi);outline:0}.pause-screen{position:absolute;z-index:20;inset:0;display:grid;place-items:center;padding:22px;background:rgba(4,7,5,.76);backdrop-filter:blur(5px)}.pause-panel{width:min(460px,100%);padding:30px;border:1px solid #5a594a;border-left:5px solid var(--amber);background:linear-gradient(145deg,#171b15,#0b0e0b);box-shadow:0 22px 70px rgba(0,0,0,.55)}.pause-panel h2{margin:10px 0 12px;color:#efe9d7;font:900 clamp(44px,8vw,76px)/.84 "Arial Black","Avenir Next Condensed",sans-serif;letter-spacing:-.07em}.pause-panel p{margin:0 0 22px;color:#bdb8a7;font:600 13px/1.5 "Avenir Next",sans-serif}.pause-panel>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pause-panel button{min-height:48px;border:0;border-left:4px solid var(--amber-hi);padding:12px 14px;background:var(--amber);color:#0a0b08;font-weight:900;text-transform:uppercase;letter-spacing:.07em;cursor:pointer}.pause-panel button.danger{border-left-color:#f18568;background:#522a22;color:#f5dfd7}.pause-panel small{display:block;margin-top:14px;color:#777b6e;font:700 8px/1.3 ui-monospace,SFMono-Regular,monospace;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:820px){.field-actions{gap:6px}.field-actions #sound-toggle{padding:6px;font-size:7px}.brand-block small{display:none}}
@media(max-width:820px){.field-actions #pause-menu-button{min-width:45px;min-height:38px;padding:6px;font-size:7px}.pause-screen{padding:14px}.pause-panel{padding:22px}.pause-panel>div{grid-template-columns:1fr}.pause-panel button{min-height:48px}.pause-panel small{display:none}}

/* Expandable, visual production terminal. */
.operations-shell:has(.command-rail.expanded){grid-template-columns:minmax(0,1fr) 430px}
.rail-heading{display:grid;grid-template-columns:1fr auto auto;gap:9px}
.rail-expand{border:1px solid #4a4d41;padding:5px 6px;background:#171a14;color:var(--muted);font:800 7px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.1em;cursor:pointer}
.rail-expand:hover,.rail-expand:focus-visible{border-color:var(--amber);color:var(--amber-hi);outline:0}
.build-command em{display:none;margin-top:7px;color:#bdb7a3;font:500 10px/1.35 "Avenir Next",sans-serif;font-style:normal}
.command-rail.expanded .build-command em{display:block}
.unit-preview,.building-preview{display:block;width:100%;height:72px;margin:0 0 7px;object-fit:cover;object-position:center;border-bottom:1px solid #3b3e34;background:#0b110e;pointer-events:none}
.building-preview{height:62px}
.command-rail.expanded .unit-preview,.command-rail.expanded .building-preview{height:104px}
@media(max-width:820px){
  .operations-shell:has(.command-rail.expanded){grid-template-columns:minmax(0,1fr)}
  .command-rail.expanded,.command-rail.expanded[data-mobile-section="armoury"]{height:min(285px,42dvh)}
  .command-rail.expanded .build-command{width:178px}
  .unit-preview,.building-preview{height:48px;margin-bottom:5px}
  .command-rail.expanded .unit-preview,.command-rail.expanded .building-preview{height:84px}
}
.room-access{margin:8px 0 7px;padding:8px;background:rgba(20,24,18,.92);border-left:3px solid #64ded5}.room-access>span{display:block;margin-bottom:6px;color:var(--muted);font:800 8px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.14em;text-transform:uppercase}.room-access>div{display:grid;grid-template-columns:1fr 1fr;gap:5px}.title-copy .room-access button{display:flex;align-items:center;justify-content:space-between;min-height:38px;padding:8px 10px;border:1px solid #394038;border-left:3px solid #4d554a;background:#10140f;color:#aaa798;font-size:9px}.title-copy .room-access button.selected{border-color:#64ded5;border-left-color:#64ded5;background:#1b2921;color:#f1ecdc}.room-access button b{font-size:10px;text-transform:uppercase;letter-spacing:.08em}.room-access button small{color:#7d8f80;font:700 8px/1 ui-monospace,SFMono-Regular,monospace}.launch-actions{display:flex;gap:8px}.launch-actions>button{flex:1}.title-copy .online-launch{background:#20271f;color:#e7e2d2;border-left-color:#72d27d}.online-join{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;margin-top:7px}.online-join label{padding:7px 8px;background:rgba(28,32,25,.9);border-left:2px solid #72d27d}.online-join label.invite-ready{border-left-color:#f6c44f;box-shadow:inset 0 0 0 1px rgba(246,196,79,.35)}.online-join label span{display:block;margin-bottom:4px;color:var(--muted);font:700 8px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.12em;text-transform:uppercase}.online-join input{width:100%;min-width:0;border:0;outline:0;background:#11140f;color:var(--text);font:800 10px/1.2 ui-monospace,SFMono-Regular,monospace;padding:5px}.title-copy .online-join button,.title-copy .online-room button{padding:9px 11px;border-left-width:3px;font-size:9px}.public-browser{margin-top:7px;padding:8px;background:rgba(12,16,12,.94);border-left:3px solid #72d27d}.public-browser header{display:flex;align-items:center;gap:7px}.public-browser header strong{color:#9df0a7;font:900 9px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.11em}.public-browser header span{flex:1;color:#777f70;font:700 7px/1 ui-monospace,SFMono-Regular,monospace}.title-copy .public-browser header button{padding:5px 7px;border:1px solid #485247;border-left-width:1px;background:#161c16;color:#b9b6a8;font-size:7px}.public-browser p{margin:8px 0 1px;color:#8d8b7f;font:700 8px/1.4 ui-monospace,SFMono-Regular,monospace}.title-copy .public-room-entry{display:flex;align-items:center;width:100%;min-height:42px;margin-top:6px;padding:7px 9px;border:1px solid #343d35;border-left:3px solid #72d27d;background:#171d17;color:#e9e4d4;text-align:left}.public-room-entry span{flex:1}.public-room-entry b,.public-room-entry small{display:block}.public-room-entry b{font:900 10px/1.2 "Avenir Next Condensed","Arial Narrow",sans-serif;text-transform:uppercase}.public-room-entry small{margin-top:3px;color:#898f82;font:700 7px/1 ui-monospace,SFMono-Regular,monospace}.public-room-entry em{color:#72d27d;font:900 9px/1 ui-monospace,SFMono-Regular,monospace;font-style:normal}.online-room{display:flex;align-items:center;gap:9px;margin-top:7px;padding:8px 9px;background:rgba(15,25,17,.94);border-left:3px solid #72d27d;font:700 9px/1.3 ui-monospace,SFMono-Regular,monospace}.online-room strong{color:#9df0a7}.online-room code{color:#f6c44f}.online-room span{flex:1;color:#c8c5b7}
@media(max-width:820px){.launch-actions,.online-join{display:grid;grid-template-columns:1fr 1fr}.online-join label:first-child{grid-column:span 2}.public-browser{max-height:152px;overflow:auto}.online-room{align-items:flex-start;flex-wrap:wrap}.online-room span{flex-basis:55%}}

.building-actions{position:absolute;z-index:8;left:50%;bottom:8px;translate:-50% 0;display:flex;align-items:center;gap:6px;max-width:calc(100% - 230px);padding:6px;background:rgba(8,13,10,.9);border:1px solid rgba(120,132,108,.5);border-left:3px solid #64ded5;box-shadow:0 10px 30px rgba(0,0,0,.36);backdrop-filter:blur(10px)}
.building-actions span{min-width:130px;padding:0 7px}.building-actions small,.building-actions strong,.building-actions em{display:block}.building-actions small{color:#777f70;font:800 7px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.12em}.building-actions strong{margin-top:3px;color:#e8e1cd;font:900 10px/1 "Avenir Next Condensed","Arial Narrow",sans-serif;text-transform:uppercase}.building-actions em{margin-top:3px;color:#8dcfc7;font:700 8px/1 ui-monospace,SFMono-Regular,monospace;font-style:normal}.building-actions button{height:38px;border:1px solid #4f5a4e;padding:0 10px;background:#171c16;color:#c9c3b0;font:900 8px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.08em;cursor:pointer}.building-actions button:hover,.building-actions button:focus-visible,.building-actions button.active{border-color:#64ded5;color:#64ded5;outline:0}.building-actions button:disabled{opacity:.42;cursor:default}
@media(max-width:820px){.building-actions{left:64px;right:104px;bottom:calc(48px + env(safe-area-inset-bottom));translate:none;max-width:none;padding:4px}.building-actions span{display:none}.building-actions button{flex:1;height:36px;padding:0 5px}.selection-readout{display:none}}

/* Field-manual terminal: one stable category at a time, with optional dossiers. */
.operations-shell{grid-template-columns:minmax(0,1fr) 328px}
.operations-shell:has(.command-rail.expanded){grid-template-columns:minmax(0,1fr) 460px}
.command-rail{overflow:hidden}
.rail-heading{flex:0 0 66px;min-width:0}
.rail-heading>span{white-space:nowrap}
.rail-tabs{display:grid;grid-template-columns:repeat(3,1fr);flex:0 0 42px;border-bottom:1px solid #3b3d33;background:#0b0e0b}
.rail-tabs button{position:relative;border:0;border-right:1px solid #303229;background:#11150f;color:#858171;font:800 9px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.rail-tabs button:last-child{border-right:0}
.rail-tabs button:hover,.rail-tabs button:focus-visible{color:#e9e2ce;background:#1a2018;outline:0}
.rail-tabs button.active{color:var(--amber-hi);background:#20261c;box-shadow:inset 0 -3px var(--amber)}
.rail-section,.rail-section:first-of-type{display:none!important;flex:1 1 auto;min-height:0;padding:13px;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#555846 #11140f;scrollbar-width:thin}
.command-rail[data-mobile-section="armoury"] .rail-section.armoury,.command-rail[data-mobile-section="structures"] .rail-section.structures,.command-rail[data-mobile-section="research"] .rail-section.research{display:block!important}
.rail-section h2{display:block;margin:1px 0 11px}
.build-list{align-content:start}
.build-command,.structures .build-command,.research .build-command{position:relative;width:auto;min-width:0;min-height:0;padding:9px;overflow:hidden;border-bottom:1px solid #3a3c31;background:#151a13}
.build-command:hover,.build-command:focus-visible{z-index:1;background:#232b20;box-shadow:inset 0 0 0 1px rgba(246,196,79,.64);outline:0}
.build-command span{margin-top:1px;font-size:11px;line-height:1.15}
.build-command small{min-height:20px;font-size:8px;line-height:1.35}
.unit-preview,.building-preview,.technology-preview{display:block;width:100%;height:78px;margin:0 0 8px;object-fit:cover;object-position:center;border-bottom:1px solid #3d4135;background:#08100c;pointer-events:none}
.technology-preview{height:70px}
.build-command em{min-height:0;margin-top:8px;padding-top:8px;border-top:1px solid #34372d;color:#c9c3b0;font-size:10px;line-height:1.45}
.build-command em b{display:inline-block;margin-top:6px;color:#8fcac2;font:700 8px/1.3 ui-monospace,SFMono-Regular,monospace;letter-spacing:.04em}
.command-rail.expanded .unit-preview,.command-rail.expanded .building-preview,.command-rail.expanded .technology-preview{height:112px}
.command-rail.expanded .build-command em{display:block}
.command-rail footer{flex:0 0 auto}

/* Every production choice is a readable dossier, even in the compact rail. */
.build-command em{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:49px}
.command-rail.expanded .build-command em{display:block!important;-webkit-line-clamp:none;overflow:visible;min-height:0}
.unit-preview,.building-preview,.technology-preview{object-fit:contain;padding:4px;background:radial-gradient(circle at 50% 45%,#14231d 0,#08100c 72%)}
.build-command.is-armed{z-index:2;background:#243126;box-shadow:inset 0 0 0 2px #64ded5,inset 5px 0 #f3b72f}
.build-command.is-armed::after{content:"POSITIONING";position:absolute;right:7px;top:7px;padding:3px 5px;background:#64ded5;color:#07110f;font:900 7px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.08em}
.command-guide{grid-column:1/-1;margin:0 0 9px;padding:9px 10px;border-left:3px solid #64ded5;background:linear-gradient(90deg,rgba(36,61,53,.78),rgba(21,26,19,.45));color:#c9c3b0;font:500 10px/1.35 "Avenir Next",sans-serif}.command-guide strong{display:block;margin-bottom:3px;color:#64ded5;font:900 8px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.14em}.command-status{display:block;margin-top:5px;color:#67ded4;font:900 8px/1.2 ui-monospace,SFMono-Regular,monospace;letter-spacing:.06em;text-transform:uppercase}.build-command.is-locked{background:#12150f;color:#aaa796}.build-command.is-locked img{filter:saturate(.55) brightness(.62)}.build-command.is-locked .command-status{color:#e1a742}.build-command.is-ready{box-shadow:inset 3px 0 rgba(100,222,213,.45)}.build-command.needs-attention{z-index:3;animation:command-attention .42s ease-in-out 3;box-shadow:inset 0 0 0 2px #f3b72f,0 0 22px rgba(243,183,47,.28)}@keyframes command-attention{50%{background:#3a321a;transform:translateY(-1px)}}

.placement-hud{position:absolute;z-index:7;left:50%;top:76px;translate:-50% 0;display:grid;grid-template-columns:52px minmax(150px,1fr) auto auto;align-items:center;gap:10px;width:min(680px,calc(100% - 28px));padding:8px 9px;background:rgba(8,14,11,.94);border:1px solid rgba(100,222,213,.62);border-left:4px solid #64ded5;box-shadow:0 12px 32px rgba(0,0,0,.35);backdrop-filter:blur(10px);pointer-events:auto}
.placement-hud[hidden]{display:none}
.placement-hud img{width:52px;height:44px;object-fit:contain;background:#0b1511;border:1px solid #33463e}
.placement-hud>span{min-width:0}
.placement-hud small,.placement-hud strong,.placement-hud em{display:block}
.placement-hud small{color:#878878;font:800 7px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.14em}
.placement-hud strong{margin-top:3px;color:#efe9d7;font:900 11px/1.1 "Avenir Next Condensed","Arial Narrow",sans-serif;letter-spacing:.05em;text-transform:uppercase}
.placement-hud em{margin-top:4px;color:#64ded5;font:800 8px/1 ui-monospace,SFMono-Regular,monospace;font-style:normal;letter-spacing:.06em}
.placement-hud.invalid{border-color:rgba(255,96,72,.7);border-left-color:#ff6048}
.placement-hud.invalid em{color:#ff806c}
.placement-hud-help{color:#bcb9aa;font:700 8px/1.4 ui-monospace,SFMono-Regular,monospace;letter-spacing:.04em}
.placement-hud button{border:1px solid #55584b;padding:8px 9px;background:#171b16;color:#d3cebd;font:800 8px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.placement-hud button:hover,.placement-hud button:focus-visible{border-color:#f3b72f;color:#f3c34f;outline:0}

@media(max-width:820px){
  .operations-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}
  .operations-shell:has(.command-rail.expanded){grid-template-columns:minmax(0,1fr)}
  .command-rail,.command-rail[data-mobile-section="armoury"]{height:178px;min-height:0}
  .command-rail.expanded,.command-rail.expanded[data-mobile-section="armoury"]{height:min(350px,46dvh)}
  .rail-heading{flex-basis:36px;height:36px;min-height:36px;padding:0 9px}
  .rail-heading>span{font-size:11px}
  .rail-tabs{flex-basis:36px;height:36px;min-height:36px}
  .rail-section,.rail-section:first-of-type{padding:7px!important;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .rail-section h2{display:none}
  .build-list{display:flex;width:max-content;gap:2px;background:#2c3027}
  .build-command,.structures .build-command,.research .build-command{display:grid;grid-template-columns:82px minmax(0,1fr);grid-template-rows:auto auto auto 1fr;column-gap:8px;align-content:start;flex:0 0 250px;width:250px;min-height:96px;scroll-snap-align:start;padding:6px}
  .build-command span{grid-column:2;grid-row:1;margin:1px 0 0}
  .build-command small{grid-column:2;grid-row:2;min-height:0;margin-top:3px}
  .command-status{grid-column:2;grid-row:3;margin-top:3px}
  .build-command em{grid-column:2;grid-row:4;-webkit-line-clamp:1;min-height:0;margin-top:4px;padding-top:4px;font-size:9px;line-height:1.3}
  .unit-preview,.building-preview,.technology-preview{grid-column:1;grid-row:1 / 5;width:82px;height:84px;margin:0}
  .command-rail.expanded .build-command{display:block;flex:0 0 202px;width:202px;padding:7px}
  .command-rail.expanded .build-command span,.command-rail.expanded .build-command small,.command-rail.expanded .build-command em{display:block;min-height:0;margin-top:revert}
  .command-rail.expanded .unit-preview,.command-rail.expanded .building-preview,.command-rail.expanded .technology-preview{height:92px}
  .build-command small{min-height:18px}
  .command-rail.expanded .build-command em{font-size:10px;line-height:1.35}
  .placement-hud{top:62px;grid-template-columns:42px minmax(0,1fr) auto;width:calc(100% - 16px);gap:7px;padding:7px}
  .placement-hud img{width:42px;height:38px}
  .placement-hud-help{grid-column:1 / 4;padding-top:5px;border-top:1px solid #28362f;text-align:center}
  .placement-hud button{grid-column:3;grid-row:1}
  .command-guide{order:99;flex:0 0 230px;width:230px;height:96px;margin:0 0 0 2px;align-self:stretch;overflow:hidden}
}

@media(max-height:560px) and (min-width:821px) and (max-width:1100px){
  .operations-shell{grid-template-columns:minmax(0,1fr) 286px}
  .operations-shell:has(.command-rail.expanded){grid-template-columns:minmax(0,1fr) 390px}
  .rail-heading{flex-basis:52px;height:52px}
  .rail-tabs{flex-basis:36px;height:36px}
  .rail-section,.rail-section:first-of-type{padding:8px}
  .unit-preview,.building-preview,.technology-preview{height:58px}
  .command-rail.expanded .unit-preview,.command-rail.expanded .building-preview,.command-rail.expanded .technology-preview{height:78px}
}

/* Battlefield-first command deck: fully readable when open, genuinely out of
   the way when collapsed. The phone starts collapsed and keeps only its three
   category launchers, returning more than 100px of height to the world. */
.rail-heading{grid-template-columns:minmax(0,1fr) auto auto auto}
.rail-collapse{border:1px solid #4a4d41;padding:5px 7px;background:#171a14;color:#9edbd3;font:900 7px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.1em;cursor:pointer}
.rail-collapse:hover,.rail-collapse:focus-visible{border-color:#64ded5;color:#d7fffa;outline:0}
.operations-shell:has(.command-rail.is-collapsed){grid-template-columns:minmax(0,1fr) 58px}
.command-rail.is-collapsed .rail-heading{grid-template-columns:1fr;height:66px;padding:8px}
.command-rail.is-collapsed .rail-heading>span,.command-rail.is-collapsed .rail-expand,.command-rail.is-collapsed .rail-heading>small,.command-rail.is-collapsed .rail-section,.command-rail.is-collapsed footer{display:none!important}
.command-rail.is-collapsed .rail-collapse{width:100%;height:100%;padding:3px;writing-mode:vertical-rl;rotate:180deg}
.command-rail.is-collapsed .rail-tabs{grid-template-columns:1fr;grid-template-rows:repeat(3,1fr);flex:1 1 auto;height:auto}
.command-rail.is-collapsed .rail-tabs button{min-height:48px;border-right:0;border-bottom:1px solid #303229;letter-spacing:.05em;writing-mode:vertical-rl;rotate:180deg}

@media(max-width:820px){
  .operations-shell:has(.command-rail.is-collapsed){grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 70px}
  .command-rail.is-collapsed,.command-rail.is-collapsed[data-mobile-section="armoury"]{height:70px}
  .command-rail.is-collapsed .rail-heading{display:flex;height:34px;min-height:34px;padding:4px 8px;justify-content:flex-end}
  .command-rail.is-collapsed .rail-collapse{width:auto;height:26px;padding:4px 12px;writing-mode:horizontal-tb;rotate:none}
  .command-rail.is-collapsed .rail-tabs{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:1fr;flex:0 0 36px;height:36px}
  .command-rail.is-collapsed .rail-tabs button{min-height:0;border-right:1px solid #303229;border-bottom:0;writing-mode:horizontal-tb;rotate:none}
  .command-rail:not(.is-collapsed),.command-rail:not(.is-collapsed)[data-mobile-section="armoury"]{height:166px}
}

/* Full-bleed battlefield HUD. The command terminal is an overlay drawer, so
   opening it never resizes the world or changes input coordinates. */
.operations-shell,
.operations-shell:has(.command-rail.expanded),
.operations-shell:has(.command-rail.is-collapsed){position:relative;display:block;width:100%;height:100%;overflow:hidden}
.battlefield{position:absolute;inset:0;width:100%;height:100%}
.command-rail,
.command-rail.expanded{position:absolute;z-index:10;inset:0 0 0 auto;width:clamp(320px,29vw,420px);height:100%;border-left:1px solid rgba(135,148,119,.42);background:linear-gradient(90deg,rgba(10,14,11,.9),rgba(8,11,9,.96));box-shadow:-18px 0 46px rgba(0,0,0,.42);backdrop-filter:blur(12px) saturate(1.12);transition:width .2s cubic-bezier(.2,.75,.25,1),background .2s ease,box-shadow .2s ease}
.command-rail.expanded{width:clamp(400px,36vw,520px)}
.command-rail.is-collapsed{width:52px;background:rgba(8,12,9,.78);box-shadow:-8px 0 22px rgba(0,0,0,.22);backdrop-filter:blur(8px)}
.command-rail.is-collapsed[data-mobile-section] .rail-section{display:none!important}
.command-rail.is-collapsed .rail-heading{height:58px}
.command-rail.is-collapsed .rail-tabs button{min-height:54px;background:rgba(10,15,11,.74)}
.field-strip{height:58px;background:linear-gradient(180deg,rgba(6,10,8,.9),rgba(6,10,8,.52) 72%,transparent)}
.operations-shell:has(.command-rail.is-collapsed) .field-strip{padding-right:70px}
.operations-shell:has(.command-rail:not(.is-collapsed):not(.expanded)) .field-strip{padding-right:calc(clamp(320px,29vw,420px) + 18px)}
.operations-shell:has(.command-rail.expanded:not(.is-collapsed)) .field-strip{padding-right:calc(clamp(400px,36vw,520px) + 18px)}
.operations-shell:has(.command-rail.is-collapsed) .tactical-minimap{right:68px}
.operations-shell:has(.command-rail:not(.is-collapsed):not(.expanded)) .tactical-minimap{right:calc(clamp(320px,29vw,420px) + 16px)}
.operations-shell:has(.command-rail.expanded:not(.is-collapsed)) .tactical-minimap{right:calc(clamp(400px,36vw,520px) + 16px)}
.notice{top:64px}
.title-screen{padding-right:clamp(30px,7vw,90px)}

@media(max-width:820px){
  .operations-shell,
  .operations-shell:has(.command-rail.expanded),
  .operations-shell:has(.command-rail.is-collapsed){display:block;height:100dvh;min-height:100svh}
  .battlefield{height:100%;min-height:0}
  .command-rail,
  .command-rail.expanded,
  .command-rail[data-mobile-section="armoury"],
  .command-rail.expanded[data-mobile-section="armoury"]{inset:auto 0 0;width:100%;height:min(330px,44dvh);border:1px solid rgba(135,148,119,.42);border-width:1px 0 0;background:rgba(8,12,9,.92);box-shadow:0 -18px 44px rgba(0,0,0,.38);backdrop-filter:blur(12px) saturate(1.1);transition:none}
  .command-rail.is-collapsed,
  .command-rail.is-collapsed[data-mobile-section="armoury"]{height:48px;background:rgba(8,12,9,.74);box-shadow:0 -8px 22px rgba(0,0,0,.2)}
  .command-rail.is-collapsed .rail-heading{display:none}
  .command-rail.is-collapsed .rail-tabs{height:48px;min-height:48px;flex-basis:48px}
  .command-rail.is-collapsed .rail-tabs button{min-height:48px;background:rgba(10,15,11,.72)}
  .tactical-minimap{bottom:60px}
  .touch-select-control{bottom:60px}
  .selection-readout{bottom:66px}
  .title-screen{padding:18px 18px 72px}
  .operations-shell:has(.command-rail) .field-strip{padding-right:10px}
  .operations-shell:has(.command-rail) .tactical-minimap{right:10px}
}

@media(max-height:560px) and (min-width:821px) and (max-width:1100px){.command-rail,.command-rail.expanded{transition:none}}

/* Thumb deck: a compact overlay instead of a permanent game-obscuring panel. */
.command-rail:not(.is-collapsed){width:min(390px,38vw)}
.command-rail.expanded:not(.is-collapsed){width:min(480px,46vw)}
.command-rail:not(.is-collapsed) .rail-heading{height:52px;flex-basis:52px}
.command-rail:not(.is-collapsed) .rail-section{padding:9px}
.command-rail:not(.is-collapsed) .build-command em{-webkit-line-clamp:2;min-height:34px}
.command-rail.is-collapsed{width:46px}
.operations-shell:has(.command-rail.is-collapsed) .tactical-minimap{right:52px}
.tactical-minimap{bottom:6px;outline-width:3px}

.install-hint{position:fixed;z-index:120;left:50%;bottom:calc(12px + env(safe-area-inset-bottom));translate:-50% 20px;display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:center;gap:10px;width:min(560px,calc(100% - 20px));padding:10px;background:rgba(8,13,10,.96);border:1px solid rgba(100,222,213,.62);border-left:4px solid #64ded5;box-shadow:0 18px 48px rgba(0,0,0,.55);opacity:0;transition:.22s ease;backdrop-filter:blur(14px)}
.install-hint.visible{translate:-50% 0;opacity:1}.install-mark{display:grid;place-items:center;width:42px;height:42px;background:#f2b631;color:#09100c;font-weight:1000;letter-spacing:-.08em}.install-hint strong,.install-hint small{display:block}.install-hint strong{font:900 10px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.12em}.install-hint small{margin-top:5px;color:#bcb7a5;font:600 10px/1.3 "Avenir Next",sans-serif}.install-action,.install-close{border:1px solid #566356;background:#171d16;color:#dcd6c3;cursor:pointer}.install-action{padding:10px;color:#64ded5;font:900 9px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.1em}.install-close{width:32px;height:32px;font-size:18px}.standalone-app .install-hint{display:none!important}

@media(max-width:820px){
  .command-rail.is-collapsed,.command-rail.is-collapsed[data-mobile-section="armoury"]{inset:auto 0 0;width:100%;height:42px}
  .command-rail.is-collapsed .rail-tabs{height:42px;min-height:42px;flex-basis:42px}
  .command-rail.is-collapsed .rail-tabs button{min-height:42px}
  .command-rail:not(.is-collapsed),.command-rail.expanded:not(.is-collapsed),.command-rail[data-mobile-section="armoury"]:not(.is-collapsed){width:100%;height:min(224px,34dvh)}
  .command-rail:not(.is-collapsed) .rail-heading{height:34px;min-height:34px;flex-basis:34px}
  .command-rail:not(.is-collapsed) .rail-tabs{height:34px;min-height:34px;flex-basis:34px}
  .command-rail:not(.is-collapsed) .build-command{flex-basis:220px;width:220px;grid-template-columns:70px minmax(0,1fr);min-height:82px}
  .command-rail:not(.is-collapsed) .unit-preview,.command-rail:not(.is-collapsed) .building-preview,.command-rail:not(.is-collapsed) .technology-preview{width:70px;height:72px}
  .command-guide{display:none}
  .tactical-minimap,.operations-shell:has(.command-rail) .tactical-minimap,.operations-shell:has(.command-rail.is-collapsed) .tactical-minimap{right:max(5px,env(safe-area-inset-right));bottom:calc(47px + env(safe-area-inset-bottom));width:92px!important;height:92px!important;outline-width:2px}
  .touch-select-control{left:max(6px,env(safe-area-inset-left));bottom:calc(47px + env(safe-area-inset-bottom));width:50px;height:50px}
  .selection-readout{left:64px;bottom:calc(52px + env(safe-area-inset-bottom));max-width:calc(100% - 170px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .field-strip{height:50px;padding:0 max(7px,env(safe-area-inset-left))}
  .brand-mark{width:30px;height:30px}.brand-block strong{font-size:13px}.treasury strong{font-size:15px}
  .install-hint{bottom:calc(52px + env(safe-area-inset-bottom));grid-template-columns:36px minmax(0,1fr) auto;padding:8px}.install-mark{width:36px;height:36px}.install-close{position:absolute;right:-1px;top:-34px;background:#10150f}.install-action{padding:9px 7px}
}
.power-state{text-align:right}.power-state small{display:block;color:#8e8974;font:700 8px/1.3 ui-monospace,SFMono-Regular,monospace;letter-spacing:.12em}.power-state strong{display:block;margin-top:2px;white-space:nowrap;color:#64ded5;font:900 13px/1 ui-monospace,SFMono-Regular,monospace}.power-state strong.low{color:#ff745f;animation:power-alert 1s ease-in-out infinite alternate}@keyframes power-alert{to{opacity:.55}}
@media(max-width:560px){.power-state small{display:none}.power-state strong{font-size:10px}.field-actions{gap:5px}}

/* Capture progress stays readable even when the world-space marker sits below
   the minimap or a dense group of units. */
.outpost-capture-hud{--capture-colour:#64ded5;position:absolute;z-index:9;left:50%;top:66px;translate:-50% 0;width:min(320px,calc(100% - 150px));padding:8px 10px;background:linear-gradient(90deg,rgba(7,12,9,.96),rgba(13,20,15,.92));border:1px solid color-mix(in srgb,var(--capture-colour) 62%,#364038);border-left:4px solid var(--capture-colour);box-shadow:0 12px 34px rgba(0,0,0,.45);backdrop-filter:blur(10px);pointer-events:none}
.outpost-capture-hud[hidden]{display:none}.outpost-capture-hud span{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.outpost-capture-hud small{color:#8b9483;font:800 7px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.16em}.outpost-capture-hud strong{color:#f1ead7;font:900 10px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.09em;white-space:nowrap}.outpost-capture-track{height:7px;margin-top:7px;padding:1px;background:#1b241d;border:1px solid #3d493f}.outpost-capture-track i{display:block;width:0;height:100%;background:var(--capture-colour);box-shadow:0 0 12px var(--capture-colour);transition:width .16s linear}
@media(max-width:820px){.outpost-capture-hud{top:54px;width:min(280px,calc(100% - 118px));padding:7px 8px}.outpost-capture-hud small{display:none}.outpost-capture-hud strong{font-size:9px}.outpost-capture-track{height:6px;margin-top:5px}}
@media(max-height:560px) and (min-width:821px) and (max-width:1100px){.operations-shell:has(.command-rail:not(.is-collapsed):not(.expanded)) .outpost-capture-hud{left:calc((100% - min(390px,38vw))/2)}.operations-shell:has(.command-rail.expanded:not(.is-collapsed)) .outpost-capture-hud{left:calc((100% - min(480px,46vw))/2)}}

/* Phone setup controls are deliberately native-sized touch targets. Keep the
   setup surface scrollable on short handsets instead of clipping colour choice. */
.title-copy .colour-swatch{min-height:42px;touch-action:manipulation;-webkit-tap-highlight-color:rgba(246,196,79,.22);user-select:none;-webkit-user-select:none}
@media(max-width:820px){
  .title-screen{align-items:flex-start;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .title-copy{margin:auto 0 0;padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom))}
  .title-copy .colour-swatch{min-height:46px;padding:9px 4px}
  .colour-swatch i{width:13px;height:13px;flex:0 0 13px}
  .colour-swatch b{font-size:8px}
}
@media(max-width:380px),(max-height:700px){
  .title-screen{padding-top:10px;padding-bottom:56px}
  .title-copy h1{font-size:50px}
  .title-copy p{margin:7px 0;font-size:11px;line-height:1.25}
  .skirmish-setup{gap:5px;margin-bottom:6px}
  .skirmish-setup label,.colour-picker{padding:6px}
  .title-copy .colour-swatch{min-height:44px}
  .title-copy>small{margin-top:7px}
}

.lobby-launcher {
  margin-top: 8px;
  padding: 10px;
  background: rgba(14, 18, 13, 0.98);
  border-left: 3px solid var(--ore);
}

.lobby-launcher header {
  display: flex;
  align-items: center;
  gap: 7px;
}

.lobby-launcher header span {
  flex: 1;
  color: var(--amber-hi);
  font: 800 10px/1 ui-monospace, SFMono-Regular, monospace;
  letter-spacing: 0.11em;
}

.lobby-launcher header button {
  padding: 6px 8px;
  border: 1px solid #4f574f;
  background: #161b14;
  font-size: 8px;
}

.lobby-launcher > p {
  margin: 7px 0 9px;
  color: #aeb0a5;
  font: 700 8px/1.5 ui-monospace, SFMono-Regular, monospace;
}

.lobby-format{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;margin:0 0 8px;padding:7px 9px;border:1px solid #394038;background:#10140f}.lobby-format span{color:#8c9588;font:800 8px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.1em;text-transform:uppercase}.lobby-format select{min-width:0;width:100%;padding:7px;border:1px solid #4b554b;background:#171d16;color:#eee8d8;font:800 9px/1 ui-monospace,SFMono-Regular,monospace}

.lobby-room-access {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px;
  margin-bottom: 8px;
}

.lobby-room-access button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid #394038;
  border-left: 3px solid #4d554a;
  background: #10140f;
  color: #aaa798;
  font-size: 9px;
}

.lobby-room-access button.selected {
  border-color: #64ded5;
  border-left-color: #64ded5;
  background: #1b2921;
  color: #f1ecdc;
}

.lobby-room-access b {
  font-size: 10px;
  text-transform: uppercase;
}

.lobby-room-access small {
  color: #7d8f80;
  font: 700 8px/1 ui-monospace, SFMono-Regular, monospace;
}

/* Clean command-table front end: one decision layer at a time. */
.operations-shell:has(.title-screen:not(.hidden)) .command-rail,
.operations-shell:has(.title-screen:not(.hidden)) .field-strip,
.operations-shell:has(.title-screen:not(.hidden)) .selection-readout,
.operations-shell:has(.title-screen:not(.hidden)) .tactical-minimap,
.operations-shell:has(.title-screen:not(.hidden)) .touch-select-control{display:none!important}
.title-screen{align-items:center;padding-top:82px;padding-bottom:28px;background:linear-gradient(90deg,rgba(6,9,7,.97) 0%,rgba(6,9,7,.82) 34%,rgba(6,9,7,.18) 68%,rgba(6,9,7,.04)),linear-gradient(0deg,rgba(5,8,6,.52),transparent 58%)}
.title-copy{width:min(430px,calc(100vw - 72px));padding:0}
.title-copy h1{margin:.12em 0 .1em;font-size:clamp(68px,9vw,124px);line-height:.74}
.title-copy .title-intro{max-width:390px;margin:18px 0 20px;color:#b9b7aa;font-size:14px;line-height:1.45}
.front-menu{display:grid;grid-template-columns:1fr 1fr;gap:1px;width:100%;background:rgba(103,111,94,.35);border:1px solid rgba(103,111,94,.36);box-shadow:0 22px 52px rgba(0,0,0,.28)}
.title-copy .front-menu button{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:66px;padding:12px 14px;border:0;border-left:2px solid transparent;background:rgba(12,16,12,.92);color:#e8e4d7;text-align:left;transform:none}
.title-copy .front-menu button:hover,.title-copy .front-menu button:focus-visible{z-index:1;background:#1b2119;border-left-color:#64ded5;outline:1px solid rgba(100,222,213,.7);transform:none}
.title-copy .front-menu button[aria-expanded="true"]{background:#20271e;border-left-color:#64ded5;color:#fff}
.title-copy .front-menu .front-menu-primary{grid-row:span 2;min-height:133px;border-left:5px solid var(--amber-hi);background:linear-gradient(145deg,#d69b24,#f0bc43);color:#0a0c09}
.title-copy .front-menu .front-menu-primary:hover,.title-copy .front-menu .front-menu-primary:focus-visible{background:#f6c957;border-left-color:#fff0b0;outline:0}
.front-menu button span{font:900 16px/1 "Avenir Next Condensed","Arial Narrow",sans-serif;letter-spacing:.08em;text-transform:uppercase}
.front-menu .front-menu-primary span{font-size:28px;letter-spacing:.03em}
.front-menu button small{margin-top:6px;color:#858b7c;font:700 8px/1.3 ui-monospace,SFMono-Regular,monospace;letter-spacing:.06em;text-transform:none}
.front-menu .front-menu-primary small{color:#493b1b;font-size:9px;letter-spacing:.09em;text-transform:uppercase}
.menu-drawer{margin-top:10px;padding:11px;background:rgba(9,13,10,.97);border:1px solid rgba(100,222,213,.35);border-left:3px solid #64ded5;box-shadow:0 18px 44px rgba(0,0,0,.34)}
.menu-drawer>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid #30372f}
.menu-drawer>header strong{color:#9cebe4;font:900 9px/1 ui-monospace,SFMono-Regular,monospace;letter-spacing:.16em}
.title-copy .menu-drawer>header button{padding:5px 7px;border:1px solid #485047;border-left-width:1px;background:#151a14;color:#aaa99e;font-size:7px;transform:none}
.menu-drawer .single-setting{display:block;margin:0}.menu-drawer .single-setting>label,.menu-drawer .single-setting>.colour-picker{margin-top:7px}
.title-copy .drawer-launch{width:100%;margin-top:8px;padding:12px}
.title-copy .settings-install{width:100%;margin-top:8px;padding:10px;border:1px solid #465048;border-left:3px solid #64ded5;background:#151b16;color:#b9dcd6;font-size:8px;transform:none}
.multiplayer-drawer{max-height:min(430px,58vh);overflow:auto;overscroll-behavior:contain}
.online-roster{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:6px}.online-roster>span{display:grid;grid-template-columns:8px 1fr;column-gap:7px;padding:7px 8px;border:1px solid #343d35;background:rgba(13,18,14,.94);font-family:ui-monospace,SFMono-Regular,monospace}.online-roster>span.local{border-color:#6d7b68;background:rgba(27,39,30,.96)}.online-roster i{grid-row:1/3;width:7px;height:100%;min-height:28px;background:var(--commander-colour);box-shadow:0 0 8px color-mix(in srgb,var(--commander-colour) 55%,transparent)}.online-roster b{color:#e9e4d4;font-size:8px;line-height:1.2;letter-spacing:.06em}.online-roster small{margin-top:3px;color:#7f887b;font-size:7px;line-height:1.2}.online-roster>span.local small{color:#9fd5a4}
.multiplayer-lead{display:flex;align-items:center;gap:10px}.multiplayer-lead>span{flex:1;color:#7e887a;font:800 8px/1.2 ui-monospace,SFMono-Regular,monospace;letter-spacing:.12em}
.title-copy .multiplayer-lead .online-launch{padding:10px 12px}
.title-copy>small{margin-top:9px;color:#6e7469;font-size:8px}
.receipt-proof{display:block;margin:0 0 18px;color:var(--ore);font:800 10px/1.4 ui-monospace,SFMono-Regular,monospace;letter-spacing:.14em}
.result-screen{width:100%;max-width:100%;overflow:hidden}
@media(max-width:820px){.result-screen h2{max-width:100%;font-size:clamp(48px,15vw,60px);letter-spacing:-.025em;white-space:nowrap}}

/* Selection identity must remain visible on phones. Keep it below the field
   strip so it never competes with the production drawer or minimap. */
@media(max-width:820px){
  .selection-readout{display:block;left:max(7px,env(safe-area-inset-left));top:56px;bottom:auto;max-width:calc(100% - 14px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:rgba(8,12,9,.9);border-left-color:#f6c44f;color:#d6d0bd}
}

@media(max-width:820px){
  .title-screen{padding:68px 16px 62px;align-items:flex-start;background:linear-gradient(0deg,rgba(5,8,6,.98) 0%,rgba(5,8,6,.74) 62%,rgba(5,8,6,.12))}
  .title-copy{width:100%;margin:auto 0 0;padding:0}
  .title-copy h1{font-size:58px}
  .title-copy .title-intro{max-width:330px;margin:10px 0 14px;font-size:11px}
  .title-copy .front-menu button{min-height:57px;padding:10px 11px}
  .title-copy .front-menu .front-menu-primary{min-height:115px}
  .front-menu button span{font-size:13px}.front-menu .front-menu-primary span{font-size:24px}
  .front-menu button small{font-size:7px}
  .menu-drawer{margin-top:7px;padding:8px}.multiplayer-drawer{max-height:min(310px,42dvh)}
  .online-join{grid-template-columns:1fr auto}.online-join label:first-child{grid-column:1/-1}
  .public-browser{max-height:116px}
}

@media(max-width:380px),(max-height:700px){
  .title-screen{padding-top:58px;padding-bottom:54px}
  .title-copy h1{font-size:46px}.title-copy .title-intro{margin:7px 0 10px}
  .title-copy .front-menu button{min-height:50px}.title-copy .front-menu .front-menu-primary{min-height:101px}
  .multiplayer-drawer{max-height:270px}
}
