:root{--win:#c0c0c0;--light:#fff;--mid:#808080;--dark:#000080;--black:#000}
*{box-sizing:border-box}
html,body{width:100%;height:100%;overflow:hidden}
body{margin:0;background:#008080;color:#000;font-family:"Courier New",monospace;display:flex;align-items:center;justify-content:center;image-rendering:pixelated}
button,input{font:inherit}
.hidden,.window.hidden{display:none!important}
.window{width:min(1800px,calc(100vw - 20px));height:min(1000px,calc(100vh - 20px));margin:0;background:var(--win);border-top:2px solid var(--light);border-left:2px solid var(--light);border-right:2px solid #404040;border-bottom:2px solid #404040;box-shadow:2px 2px 0 #000;display:flex;flex-direction:column}
.titlebar{background:var(--dark);color:#fff;font-weight:bold;padding:4px 6px;display:flex;justify-content:space-between;flex:0 0 auto}
.menu{padding:4px 8px;border-bottom:1px solid var(--mid);flex:0 0 auto}
.game-menu{display:flex;align-items:center;justify-content:space-between}
.game-menu-btn{margin-left:0}
.menu-link{appearance:none;border:0;background:transparent;padding:0;margin:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.panel{padding:22px;max-width:620px;margin:auto}
h1{text-align:center;margin:5px 0;font-size:28px}.subtitle{text-align:center;margin-bottom:18px}
label{display:block;margin:8px 0}
input[type=text],input:not([type]){background:#fff;border:2px inset #ddd;padding:6px;width:100%}
#code{text-transform:uppercase}
fieldset{margin:16px 0;border:2px groove #eee;padding:14px}
button{background:var(--win);border-top:2px solid var(--light);border-left:2px solid var(--light);border-right:2px solid #404040;border-bottom:2px solid #404040;padding:6px 10px;margin:4px 2px;cursor:pointer;font-weight:bold}
button:active{border-top-color:#404040;border-left-color:#404040;border-right-color:#fff;border-bottom-color:#fff}
button:disabled{color:#777;cursor:not-allowed}
.status,.statusbar{border:2px inset #ddd;padding:6px;min-height:28px}.statusbar{margin:0 8px 8px;flex:0 0 auto}
#hud{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;flex:0 0 auto}
.counter{width:104px;min-width:104px;height:56px;padding:4px 6px;background:#000;border-top:3px solid #808080;border-left:3px solid #808080;border-right:3px solid #fff;border-bottom:3px solid #fff;box-sizing:border-box;text-align:center;overflow:hidden}
.counter span{display:none}
.counter b.pixel-readout{height:46px;background:#000;display:flex;align-items:center;justify-content:center;gap:0;overflow:hidden;font-size:0}
.counter b.pixel-readout img.ledExact{width:26px;height:46px;display:block;margin:0;background:#000;border:0;object-fit:fill;image-rendering:pixelated}
.counter b.pixel-readout canvas.segGlyph{display:none}
.counter b.pixel-readout canvas.segDisplay{height:46px;width:auto;display:block;flex:none;margin:0;padding:0;border:0;outline:0;box-shadow:none;background:#000;object-fit:fill;image-rendering:pixelated}
#hud>.counter:first-child{width:104px;min-width:104px;height:56px;padding:4px 5px}
#hud>.counter:first-child>b.pixel-readout{width:88px;min-width:88px;max-width:88px;height:46px;min-height:46px;max-height:46px;margin:0 auto}
#hud>.counter:first-child>b.pixel-readout>canvas.segDisplay{width:86px;min-width:86px;max-width:86px;height:38px;min-height:38px;max-height:38px;flex:0 0 86px}
#face{width:42px;height:42px;min-width:42px;padding:0;margin:0;display:flex;align-items:center;justify-content:center;background:var(--win);border-top:3px solid #fff;border-left:3px solid #fff;border-right:3px solid #808080;border-bottom:3px solid #808080;outline:0;box-shadow:none;overflow:hidden}
#face:active{border-top-color:#808080;border-left-color:#808080;border-right-color:#fff;border-bottom-color:#fff}
#face img{display:none}
#face>canvas.faceGlyph{pointer-events:none;box-sizing:content-box;width:30px;height:30px;min-width:30px;min-height:30px;max-width:30px;max-height:30px;display:block;flex:0 0 30px;margin:0;padding:0;border:0;outline:0;box-shadow:none;background:transparent;object-fit:fill;image-rendering:pixelated}
#main{min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:8px;padding:0 8px 8px;overflow:hidden;align-items:start}
.boardwrap{position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden}
.boardwrap>#game{display:block;width:100%;height:100%;min-width:0;min-height:0}
canvas#game{background:#808080;border:3px inset #ddd;cursor:crosshair;object-fit:fill}
aside{display:flex;flex-direction:column;gap:8px;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:8px}
aside>.inset:last-child{flex:0 0 auto;margin-bottom:2px}
.inset{border:2px inset #ddd;padding:7px;background:#bdbdbd}.inset h3{margin:0 0 6px;text-align:center;font-size:14px}
.small{font-size:11px;line-height:1.45}.log{font-size:10px;height:96px;min-height:72px;overflow-y:auto;overflow-x:hidden;background:#ddd;border:2px inset #fff;padding:4px}
#selected{min-height:34px;font-size:11px}#upgrades button{display:block;width:100%;font-size:11px}
.statgrid{display:grid;grid-template-columns:22px 1fr;gap:2px 5px;margin:6px 0;padding:5px;border:2px inset #ddd;background:#d0d0d0;font-size:11px}.statgrid span{text-align:center;font-weight:bold}
#unitActions .unit-action{display:none}#unitActions #flagMode{display:inline-block}.meter{height:12px;background:#222;border:2px inset #ddd;margin:4px 0}#artyMeter{height:100%;width:0;background:#0a0}#artyMeterWrap{font-size:10px;margin-top:5px}
.upgrade-popup{position:absolute;right:10px;top:12px;width:210px;z-index:4;background:var(--win);border-top:3px solid #fff;border-left:3px solid #fff;border-right:3px solid #404040;border-bottom:3px solid #404040;padding:8px;font-size:12px}.upgrade-popup h3{margin:0 0 7px;text-align:center;font-size:14px}.upgrade-popup button{display:block;width:100%;margin:5px 0}
#upgradeChoices button{text-align:left;padding:6px 8px}#upgradeChoices button strong{display:block;text-transform:uppercase}#upgradeChoices button small{display:block;margin-top:3px;font-size:10px;font-weight:normal;line-height:1.2;white-space:normal}
.help-overlay{position:absolute;inset:0;z-index:80;background:rgba(0,0,0,.22);display:flex;align-items:center;justify-content:center}.help-overlay.hidden{display:none!important}
.help-window{width:min(470px,calc(100% - 28px));background:var(--win);border-top:3px solid #fff;border-left:3px solid #fff;border-right:3px solid #404040;border-bottom:3px solid #404040;box-shadow:2px 2px 0 #000;font-family:inherit}.help-titlebar{min-height:24px;background:var(--dark);color:#fff;font-weight:bold;display:flex;align-items:center;justify-content:space-between;padding:2px 3px 2px 6px}.help-titlebar button{width:22px;height:20px;padding:0;line-height:14px;font-weight:bold}.help-body{padding:12px;color:#000}.help-body h3{margin:0 0 9px}.help-body .small{line-height:1.55}.help-actions{text-align:center;margin-top:12px}.help-actions button{min-width:76px}
.settings-window{width:min(430px,92vw)}.settings-row{display:grid;grid-template-columns:70px 1fr 48px;gap:10px;align-items:center;margin:14px 0}.settings-row input[type=range]{width:100%}.settings-row b{text-align:right;font-family:monospace}.settings-note{font-size:11px;color:#444;margin:8px 0 14px}.leave-game{width:100%;font-weight:bold;margin:8px 0}
@media(max-width:1000px){#main{grid-template-columns:1fr}aside{display:grid;grid-template-columns:repeat(2,1fr)}}
@media(min-width:1400px){.window{width:calc(100vw - 32px);max-width:1800px}#main{grid-template-columns:minmax(0,1fr) 290px}}

select{font:inherit;background:#fff;border:2px inset #ddd;padding:5px;width:100%}
.active-games-box{margin-top:18px}.active-games{max-height:220px;overflow:auto;border:2px inset #ddd;background:#d4d4d4;padding:4px}
.game-row{display:flex;align-items:center;gap:8px;padding:6px;border-bottom:1px solid #999}.game-row:last-child{border-bottom:0}.game-row-main{min-width:0;flex:1}.game-row-main small{display:block;margin-top:2px;font-size:10px}.mode-pill{font-size:10px;padding:1px 4px;border:1px solid #666;background:#eee}.game-row button{flex:0 0 auto;font-size:10px}
.hud-right{display:flex;gap:7px;align-items:center}.hud-right .counter{display:block}
.run-overlay{position:absolute;inset:3px;z-index:30;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:18px}.run-overlay.hidden{display:none!important}
.run-card{width:min(760px,92%);max-height:92%;overflow:auto;background:#c0c0c0;border-top:4px solid #fff;border-left:4px solid #fff;border-right:4px solid #404040;border-bottom:4px solid #404040;padding:18px;text-align:center;box-shadow:5px 5px 0 #111}
.run-card h2{font-size:34px;margin:5px 0 10px}.run-kicker{font-size:12px;font-weight:bold;letter-spacing:2px}.victory-card h2{color:#006000}.defeat-card h2{color:#8b0000}
.stage-choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.stage-choice{min-height:220px;padding:14px 10px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.stage-choice.chosen{outline:3px solid #000080;background:#d8d8ff}.upgrade-graphic{width:76px;height:76px;display:flex;align-items:center;justify-content:center;background:#111;color:#fff;border:4px inset #ddd;font-size:38px;margin:2px auto 12px}.stage-choice strong{font-size:15px;text-transform:uppercase}.stage-choice small{display:block;font-weight:normal;font-size:11px;line-height:1.35;margin:8px 0;white-space:normal}.stage-choice em{margin-top:auto;font-size:10px}
.run-stats{display:grid;grid-template-columns:1fr auto;gap:5px 18px;text-align:left;max-width:460px;margin:14px auto;padding:10px;border:2px inset #ddd;background:#d8d8d8}.run-stats b{text-align:right}
@media(max-width:760px){.stage-choice-grid{grid-template-columns:1fr}.stage-choice{min-height:150px}.hud-right{gap:3px}}

.music-debug{margin-top:10px;border:1px solid #808080;padding:5px;background:#c0c0c0}
.music-debug summary{font-weight:bold;cursor:pointer}
.music-debug-actions{display:flex;gap:6px;margin:6px 0}
#musicDebugLog{height:180px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#000;color:#0f0;padding:6px;font:11px/1.25 monospace;border:2px inset #ddd}

.bottom-hud{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,38%);gap:8px;margin:0 8px 8px;flex:0 0 auto;align-items:stretch}.bottom-hud .statusbar{margin:0;min-height:29px}#artyMeterWrap{display:flex;align-items:center;gap:8px;font-size:10px}#artyMeterWrap b{white-space:nowrap}#artyMeterWrap .meter{flex:1;min-width:45px;margin:0}#artyStatus{white-space:nowrap}#fieldInventory{margin:8px 0;padding:6px;background:#c0c0c0;border:2px inset #fff;font:11px monospace}.inv-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin:5px 0}.inv-grid.unit-grid{grid-template-columns:repeat(3,38px)}.inv-slot{height:35px;min-width:0;margin:0;padding:1px;background:#c0c0c0;border:2px solid;border-color:#fff #777 #777 #fff;display:flex;align-items:center;justify-content:center;image-rendering:pixelated;font-size:22px}.inv-slot.chosen{border-color:#666 #fff #fff #666;background:#a5a5a5}.inv-slot:disabled{cursor:default;color:#888}.inv-actions{display:flex;flex-wrap:wrap;gap:3px}.inv-actions button{font-size:10px;margin:2px 0;padding:4px}.inv-symbol.mine{color:#111;text-shadow:1px 1px #555}.inv-symbol.bandage{font-size:19px;color:#f5f5f5;text-shadow:1px 1px #777,-1px -1px #fff}.inv-symbol.sandbag{font-size:19px;color:#8a6539}@media(max-width:650px){.bottom-hud{grid-template-columns:1fr}#artyMeterWrap{min-height:24px}}

/* Keep the bottom description from changing the battlefield height. */
#status{height:35px;min-height:35px;max-height:35px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;}

/* Classic desktop drop-downs: overlays never participate in HUD layout. */
.fs-dropdown { position:fixed; z-index:10020; display:block; box-sizing:border-box; width:max-content; min-width:190px; max-width:min(440px,calc(100vw - 12px)); max-height:min(70vh,550px); overflow:auto; padding:8px; background:#c0c0c0; color:#111; border:2px solid; border-color:#fff #404040 #404040 #fff; box-shadow:2px 2px 0 #000; font:12px 'Courier New',monospace; }
.fs-dropdown[hidden] {display:none !important;}
.fs-dropdown b {font-weight:bold;}
.fs-dropdown .fs-upgrade-row {display:flex;align-items:center;gap:7px;padding:3px 2px;white-space:normal;}
.fs-dropdown .fs-upgrade-icon {display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;width:22px;height:22px;background:#ddd;border:1px solid;border-color:#fff #777 #777 #fff;font-size:16px;}
.fs-settings-dropdown .help-window {position:static;transform:none;margin:0;max-width:100%;width:320px;box-shadow:none;}
.fs-settings-dropdown .help-body {max-height:55vh;overflow:auto;}
.fs-settings-dropdown .help-titlebar {display:none;}

.run-report-subtitle{font-size:18px;font-weight:800;letter-spacing:1px;margin:0 0 12px}

/* Persistent tab popups: explicit close control. */
.fs-info-close{position:sticky;top:0;float:right;z-index:2;margin:-5px -5px 3px 9px;min-width:20px;height:20px;padding:0 4px;background:#c0c0c0;border:2px solid;border-color:#fff #555 #555 #fff;font:bold 16px/14px Arial,sans-serif;cursor:pointer}
#fsInfoContent{min-width:0}

.debug-panel{position:absolute;left:12px;top:12px;z-index:12;width:285px;max-height:75%;overflow:auto;background:#c0c0c0;border:3px outset #eee;padding:8px;font-size:12px;box-shadow:3px 3px #555}.debug-panel.hidden{display:none}.debug-title{font-weight:bold;display:flex;justify-content:space-between;align-items:center}.debug-note{font-size:10px;margin:7px 0}.debug-panel h4{margin:10px 0 4px;border-bottom:1px solid #777}.debug-row{display:flex;justify-content:space-between;gap:5px;align-items:center;margin:3px 0}.debug-row button{min-width:25px;margin-left:2px}

/* v0.7.81: compact, single-column Game menu with an explicit close control. */
.fs-settings-dropdown{width:min(350px,calc(100vw - 12px));min-width:0;padding:6px 8px 8px;overflow-x:hidden;}
.fs-settings-item{display:block;margin:0;padding:8px 3px;border-bottom:1px solid #aaa;box-sizing:border-box;}
.fs-settings-dropdown .settings-row{display:grid;grid-template-columns:52px minmax(0,1fr) 44px;gap:8px;align-items:center;}
.fs-settings-dropdown .settings-row input{min-width:0;width:100%;}
.fs-settings-dropdown .settings-row b{text-align:right;}
.fs-settings-dropdown .music-debug{background:transparent;border:0;}
.fs-settings-dropdown .settings-note{font-size:11px;line-height:1.45;margin:0;color:#444;}
.fs-settings-dropdown .leave-game{width:100%;margin:8px 0 0;border-bottom:0;}

/* v0.7.83 stage shop */
.upgrade-card{position:relative;padding-top:45px}.credits-badge{position:absolute;top:12px;right:14px;font-weight:bold;font-size:15px}.stage-choice{position:relative;overflow:hidden}.stage-choice.bought{cursor:not-allowed}.stage-choice.bought .upgrade-graphic{filter:grayscale(1)}.stage-choice.bought>*:not(.bought-stamp){opacity:.45}.bought-stamp{position:absolute;top:43%;left:-12%;width:124%;transform:rotate(-23deg);font-size:30px;font-weight:900;color:#a60000;text-shadow:1px 1px #fff;border-block:3px solid #a60000;opacity:1!important}.upgrade-cost{margin-top:8px;color:#554300}.fs-log-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;gap:12px}

.fs-menu-action{display:block;width:100%;text-align:left;background:transparent;border-left:0;border-right:0;border-top:0;font:inherit;cursor:pointer;}
.fs-menu-action:hover:not(:disabled){background:#000080;color:white;}
.fs-menu-action:disabled{opacity:.45;cursor:default;}

/* Retro medal made from pixel blocks, not a platform-dependent emoji. */
.pixel-medal{display:inline-block;position:relative;width:15px;height:15px;vertical-align:-3px;margin-right:5px;background:#a87a28;clip-path:polygon(25% 0,75% 0,75% 13%,100% 13%,100% 75%,75% 75%,75% 100%,25% 100%,25% 75%,0 75%,0 13%,25% 13%);box-shadow:inset 0 0 0 3px #6d4d17}
.pixel-medal-center{position:absolute;inset:4px;background:#edc55c;border:1px solid #5d4619}
.stage-choice.bought .bought-stamp{color:#d00000!important;border-color:#d00000!important;text-shadow:1px 1px 0 #fff, -1px -1px 0 #fff;filter:none!important;opacity:1!important;z-index:3}

/* v0.7.91: victory earnings breakdown */
.victory-card{position:relative;padding-top:48px}
.victory-earnings{margin:18px auto 24px;max-width:350px;text-align:left}
.victory-earned{text-align:center;font-size:21px;font-weight:bold;margin-bottom:18px}
.victory-breakdown{display:grid;gap:9px;font-size:15px}
.victory-breakdown>div{display:flex;justify-content:space-between;align-items:center;gap:12px}
.victory-breakdown strong{white-space:nowrap}
.victory-earnings small{display:block;margin-top:12px;color:#555;text-align:center}

/* Selected unit HP/ammo readouts */
.fs-selected-unit{margin:3px 0 7px}.fs-stat-row{display:flex;align-items:center;gap:7px;margin:3px 0}.fs-stat-row>span:first-child{min-width:90px}.fs-mini-meter{flex:1;min-width:45px;height:10px;background:#222;border:2px inset #ddd;display:inline-block}.fs-mini-meter>span{display:block;height:100%}

#copyAllLogs{display:block;width:100%;margin-top:9px;padding:9px 6px;font-weight:bold;cursor:pointer}

/* Compact battlefield controls */
.field-controls{position:absolute;right:10px;top:12px;z-index:4;display:flex;align-items:flex-start;gap:6px}
.field-controls>#accuracyButton,.field-controls>#mineViewButton{font-size:11px;padding:5px 7px;background:var(--win);border:2px outset #eee;cursor:pointer}
.field-controls>.upgrade-popup{position:static;width:210px;box-sizing:border-box}
.field-header{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px}.field-header strong{white-space:nowrap}#fieldCollapse{flex:none;width:22px;height:22px;line-height:16px;padding:0;text-align:center;font-weight:bold;cursor:pointer;border:2px outset #eee;background:var(--win)}
#upgradeChoices[hidden]{display:none!important}

/* v0.8.17 illustrated help carousel */
.help-window{width:min(550px,calc(100% - 28px))}
.help-body{max-height:min(76vh,680px);overflow-y:auto}
.help-control-grid{display:grid;grid-template-columns:110px 1fr;gap:9px 12px;font-size:12px;line-height:1.45}
.help-control-grid>b{font-size:11px;color:#000080}
.help-control-grid kbd{border:1px solid #888;background:#eee;padding:1px 4px;font-weight:bold}
.help-card{text-align:center;min-height:275px;display:flex;align-items:center;flex-direction:column;justify-content:flex-start}
.help-graphic{height:148px;width:148px;display:flex;align-items:center;justify-content:center;background:#999;border:3px inset #ddd;margin:5px auto 12px;image-rendering:pixelated}
.help-graphic img{width:112px;height:112px;object-fit:contain;image-rendering:pixelated}
.help-graphic .tile{width:94px;height:94px;display:flex;align-items:center;justify-content:center;background:#c0c0c0;border:4px solid #777;font-size:62px;font-weight:bold;color:#111}
.help-graphic .unknown{background:#999;color:#555}.help-graphic .number{color:#f00}.help-graphic .safe{color:#aaa}.help-graphic .mine{background:#aaa;color:#111}.help-graphic .flag{color:#e00}.help-graphic .inspect{color:#0050a0}.help-graphic .trench{background:#75614d;color:#34261c}.help-graphic .mud{background:#87653c;color:#4d341a}.help-graphic .pit{background:#695c4e;color:#333}.help-graphic .wire{color:#222}.help-graphic .sandbag{background:#ac9970}.help-graphic .crate{background:#8b6e48}.help-graphic .floor{color:#064b88}.help-graphic .outpost{background:#929292;color:#800}
.help-card h3{font-size:16px;margin:0 0 8px}.help-card p{font-size:12px;line-height:1.5;max-width:420px;margin:0 auto 12px}
.help-actions{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap}.help-actions button{min-width:85px}.help-actions span{font-size:12px;min-width:55px}
@media(max-width:520px){.help-control-grid{grid-template-columns:1fr;gap:3px}.help-control-grid>b:not(:first-child){margin-top:8px}}

/* v0.8.18: thin Windows-style field-points title bar and maximize/restore control */
.field-controls>.upgrade-popup:has(#upgradeChoices[hidden]){width:190px}
.field-header{min-height:17px;line-height:15px;gap:4px;padding:1px 3px}
.field-header strong{font-size:10px;letter-spacing:-.15px}
#fieldCollapse{width:17px;height:17px;line-height:11px;font-family:monospace;font-size:14px;padding:0;border:2px outset #fff;color:#111;box-sizing:border-box}
#fieldCollapse:active{border-style:inset}
/* v0.8.19: keep Field Points text legible; compact the collapsed container instead. */
.field-header strong{font-size:12px;letter-spacing:normal}
.field-controls>.upgrade-popup:has(#upgradeChoices[hidden]){padding:2px 5px;width:210px}
.field-controls>.upgrade-popup:has(#upgradeChoices[hidden]) .field-header{padding:0;min-height:17px;line-height:17px}

/* v0.8.20: classic Windows 95 maximize/restore caption control. */
#fieldCollapse{width:18px;height:18px;min-width:18px;padding:0;display:flex;align-items:center;justify-content:center;border:2px outset #fff;background:#c0c0c0;box-sizing:border-box}
#fieldCollapse .window-glyph{display:block;width:9px;height:9px;border:1px solid #111;box-sizing:border-box;position:relative;background:#c0c0c0}
#fieldCollapse .window-glyph::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:#111}
#fieldCollapse[aria-expanded="true"] .window-glyph{width:9px;height:8px;margin:2px 0 0 -2px}
#fieldCollapse[aria-expanded="true"] .window-glyph::after{content:"";position:absolute;width:7px;height:6px;border:1px solid #111;box-sizing:border-box;left:2px;top:-4px;background:#c0c0c0;box-shadow:inset 0 2px #111}
#fieldCollapse:active{border-style:inset}

/* v0.8.21: align field title bar with the neighboring controls; keep title and
   caption button fixed in place when upgrades expand or collapse. */
.field-controls{align-items:flex-start}
.field-controls>.upgrade-popup,
.field-controls>.upgrade-popup:has(#upgradeChoices[hidden]){
  width:210px; padding:4px 5px; margin:0; box-sizing:border-box;
  align-self:flex-start;
}
.field-controls>.upgrade-popup .field-header,
.field-controls>.upgrade-popup:has(#upgradeChoices[hidden]) .field-header{
  height:22px; min-height:22px; padding:0; line-height:normal;
  display:flex;align-items:center;justify-content:space-between;
}
.field-controls>.upgrade-popup .field-header strong{font-size:12px;letter-spacing:normal;line-height:18px}
#fieldCollapse{margin:0; flex:0 0 18px; height:18px;width:18px;min-width:18px}
/* Classic caption maximize glyph: wider than tall with a pronounced top bar. */
#fieldCollapse .window-glyph,
#fieldCollapse[aria-expanded="true"] .window-glyph{
  width:11px;height:8px;margin:0;border:1px solid #111;box-sizing:border-box;
  background:#c0c0c0;position:relative;
}
#fieldCollapse .window-glyph::before,
#fieldCollapse[aria-expanded="true"] .window-glyph::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;background:#111;
}
#fieldCollapse[aria-expanded="true"] .window-glyph::after{
  content:"";position:absolute;left:2px;top:-3px;width:9px;height:7px;
  border:1px solid #111;background:#c0c0c0;box-sizing:border-box;
  box-shadow:inset 0 2px #111;
}

.help-tile-canvas{width:112px;height:112px;image-rendering:pixelated}
.help-tile-badge{display:inline-block;vertical-align:middle;background:#c0c0c0;border:2px inset #eee;font: bold 17px monospace;min-width:22px;padding:1px 3px;text-align:center}

/* v0.8.25: firing orders always available when a unit is selected */
#unitActions #fireOrder{display:inline-block}

/* Do not allow Safari to select HUD labels and offer a text context menu over the board. */
.boardwrap .field-controls,.boardwrap .field-controls *{ -webkit-user-select:none;user-select:none; }

/* v0.8.30: enlarge selected HUD content, excluding buttons and FIELD hazards/upgrades */
#selected{font-size:14px;line-height:1.4}
#unitStats .statgrid{font-size:14px;line-height:1.4;grid-template-columns:25px 1fr;gap:3px 6px}
#selected .fs-stat-row{gap:8px;margin:5px 0}
#selected .fs-stat-row>span:first-child{min-width:108px}
#selected .fs-mini-meter{height:12px}
#fieldInventory{font-size:13px}
#fieldInventory .inv-actions button,#unitActions button{font-size:inherit}

/* v0.8.35: taller illustrated help pages with readable mechanics tables */
.help-window{width:min(660px,calc(100% - 28px))}
.help-body{max-height:min(88vh,840px);overflow-y:auto}
.help-card{min-height:490px}
.help-stats{width:min(100%,560px);text-align:left;margin:8px auto 14px;background:#ddd;border:2px inset #eee;padding:9px 12px;box-sizing:border-box}
.help-stats h4{font-size:13px;margin:0 0 8px}
.help-stats dl{display:grid;grid-template-columns:minmax(115px,34%) minmax(0,1fr);gap:7px 12px;margin:0;font-size:12px;line-height:1.4}
.help-stats dt{font-weight:bold}.help-stats dd{margin:0;overflow-wrap:anywhere}
@media(max-width:520px){.help-stats dl{grid-template-columns:1fr;gap:2px}.help-stats dd{margin-bottom:8px}}

/* v0.8.38: the flex field-controls overlay used to intercept battlefield input
   throughout its entire rectangular height (the expanded upgrade panel makes
   this much taller than the buttons). Only actual controls accept pointers. */
.boardwrap .field-controls{pointer-events:none}
.boardwrap .field-controls > button,
.boardwrap .field-controls > .upgrade-popup:not(.hidden){pointer-events:auto}

/* v0.8.45: side-by-side shared trench graphics in Help */
.help-graphic.help-graphic-pair{width:260px;height:148px;gap:6px}
.help-graphic-pair .help-tile-canvas{width:112px;height:112px;flex:0 0 112px}

/* 0.9.3: three fixed HUD columns prevent icon/label/value collisions */
#unitStats .statgrid{display:grid;grid-template-columns:25px minmax(66px,0.8fr) minmax(0,1.5fr);gap:7px 8px;align-items:start;font-size:clamp(11px,1.2vw,14px);line-height:1.3;overflow-wrap:anywhere;}
#unitStats .statgrid .stat-icon{font-size:18px;text-align:center;}
#unitStats .statgrid>span:not(.stat-icon){text-align:left;}
#unitStats .statgrid b{min-width:0;overflow-wrap:anywhere;}
#unitActions .action-divider{border:0;border-top:2px solid #888;margin:9px 0;width:100%;}

#adminEditor .admin-row{display:flex;align-items:center;gap:8px;margin:6px 0}#adminEditor .admin-row>span{min-width:155px}#adminEditor input,#adminEditor select{max-width:260px;min-width:80px;padding:4px}#adminEditor h4{margin-top:16px}

/* v0.9.8: text-presentation ticket currency and legible crate ammo glyph */
.ticket-glyph{display:inline-block;color:#d5a000;font-family:"Segoe UI Symbol","Apple Symbols","Noto Sans Symbols 2","DejaVu Sans",sans-serif;font-variant-emoji:text;font-size:1.1em;line-height:1;vertical-align:-.06em}
.crate-ammo-glyph{display:inline-block;font-size:1.45em;line-height:.7;vertical-align:middle}.hazard-bonus{color:#9a7200;display:block;margin-top:6px}

/* Shared classic menu components: no redundant popup title bars. */
.fs-dropdown .help-titlebar,.fs-settings-dropdown .help-titlebar{display:none!important}
.fs-dropdown .fs-upgrade-row,.fs-dropdown .settings-row,.fs-dropdown .help-body>div,.fs-dropdown .fs-telemetry-line{border-bottom:1px solid #a7a7a7;padding-top:6px;padding-bottom:6px}
/* Classic rectangular slider thumb instead of modern circular thumb. */
.fs-dropdown input[type=range]{appearance:none;-webkit-appearance:none;background:#888;height:5px;border-top:1px solid #555;border-bottom:1px solid #eee}
.fs-dropdown input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:19px;border:2px solid;border-color:#fff #444 #444 #fff;background:#c0c0c0;border-radius:0;box-shadow:1px 1px #111}
.fs-dropdown input[type=range]::-moz-range-thumb{width:12px;height:19px;border:2px solid;border-color:#fff #444 #444 #fff;background:#c0c0c0;border-radius:0}
#joinAll,#unjoinAll{display:inline-block!important;visibility:visible!important}

/* Inventory actions are contextual popovers, not inline HUD button rows. */
#fieldInventory{position:relative}.inventory-item-popup{position:relative;z-index:4;display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:6px;padding:9px;background:#dadada;border:2px solid;border-color:#fff #444 #444 #fff;box-shadow:2px 3px 0 #444}.inventory-item-popup b{width:100%}.inventory-item-popup .item-combat-stats{width:100%;line-height:1.65;font-size:11px}.inventory-item-popup button{font-size:11px}.room-member-row{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:2px 0}.room-member-row+.room-member-row{border-top:1px solid #aaa}.member-kick{padding:2px 5px;font-size:10px;min-width:0}

#fieldInventory .inventory-item-popup{position:absolute;left:8px;right:8px;top:calc(100% - 2px);margin-top:0;max-width:320px;box-shadow:3px 4px 0 #555}

/* v0.9.12: Ticket icon retains nonzero em dimensions; earlier font-size:0 collapsed the masked icon. */

/* v0.9.13: Dropdowns start immediately with actionable rows, no empty header or close button. */
.fs-settings-dropdown{padding-top:5px}
.fs-settings-dropdown>.fs-settings-item:first-child{padding-top:7px}

/* v0.9.16: compact, consistent two-column universal and unit action controls. */
#unitActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;align-items:stretch}
#unitActions .unit-action,#unitActions #fireOrder,#unitActions #joinAll,#unitActions #unjoinAll,#unitActions #flagMode{box-sizing:border-box;min-width:0;width:100%;max-width:100%;margin:0;padding:5px 2px;font-size:clamp(9px,.9vw,12px)!important;line-height:1.2;white-space:normal;overflow-wrap:normal;word-break:normal;text-align:center}
#unitActions .action-divider{grid-column:1/-1;margin:4px 0;width:100%}
#unitActions #timedActionProgress{grid-column:1/-1}
#unitStats .statgrid{gap:2px 5px!important;padding:4px!important;line-height:1.1!important;grid-template-columns:21px minmax(54px,.8fr) minmax(0,1.4fr)!important}
#unitStats .statgrid .stat-icon{font-size:15px}
#intelLogControls{display:flex;flex-direction:column;gap:0;margin-top:5px;border-top:1px solid #999;padding-top:4px}
#intelLogControls .fs-log-row{display:block;min-height:0;padding:2px 0;margin:0;border:0}
#intelLogControls .fs-log-row label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:11px;line-height:18px}
#intelLogControls input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:0 0 13px;width:13px;height:13px;margin:0;background:#fff;border:2px solid;border-color:#777 #fff #fff #777;box-shadow:inset 1px 1px #444;position:relative;border-radius:0}
#intelLogControls input[type=checkbox]:checked::after{content:'✓';position:absolute;left:0;top:-5px;color:#111;font:bold 15px Arial,sans-serif}
#intelLogControls input[type=checkbox]:focus-visible{outline:1px dotted #111;outline-offset:2px}
#intelLogControls #copyAllLogs{margin-top:6px}
