/* Comfortable command UI with readable telemetry and minimum touch targets. */
:root{--muted:#9bb0b8}
.eyebrow,.section-label,.tac-label{font-size:11px;line-height:1.5}
.tbtn.small,.text-button,.rail-button{min-height:36px;font-size:12px}
.tbtn{min-height:40px}.tactical-sidebar{width:auto;min-width:260px}
.tactical-layout{grid-template-columns:minmax(0,1fr) 290px}
.squad-card{min-height:90px;padding:13px;gap:12px}.squad-card strong{font-size:16px}.squad-card small,.squad-health{font-size:12px}.squad-portrait{width:46px;min-width:46px;height:62px}.squad-portrait svg{height:100%;width:100%}
.target-preview p,.tactical-tip p{font-size:13px;line-height:1.6}.tactical-tip{padding:14px}
.enemy-inspection{margin-top:12px;border-top:1px solid #395660;padding-top:5px;color:#dce8e4}.enemy-inspection summary{cursor:pointer;min-height:38px;padding:9px 4px;font:600 13px 'Segoe UI',sans-serif;color:#a7dfce}.enemy-inspection summary:focus-visible{outline:2px solid #a7dfce;outline-offset:2px}.enemy-inspection dl{margin:8px 0;display:grid;gap:6px}.enemy-inspection dt{font:600 11px Consolas,monospace;color:#9fb9c3;text-transform:uppercase}.enemy-inspection dd{margin:0 0 7px;font:13px/1.5 'Segoe UI',sans-serif;overflow-wrap:anywhere;color:#e1e9e6}.enemy-inspection p{margin:5px 0}.enemy-inspection small{font-size:12px;line-height:1.5}
.contact-tracker{border-top:1px solid #395660;padding:5px 0;margin-top:8px}.contact-tracker summary{cursor:pointer;min-height:36px;padding:8px 0;font:12px Consolas,monospace;color:#b4d5ca}.contact-tracker summary b{float:right}.contact-inspect{display:block;width:100%;text-align:left;border:1px solid #395660;background:#142630;padding:9px;margin:6px 0;color:#e2eae8;font:600 13px 'Segoe UI',sans-serif;cursor:pointer}.contact-inspect small{display:block;color:#a6bfc4;font:11px Consolas,monospace;margin-top:5px}.contact-inspect:focus-visible{outline:2px solid #9dd8c5;outline-offset:2px}
.tracker-stages strong{font-size:13px;line-height:1.5}.tracker-stages small,.encounter-summary,.wave-countdown strong{font-size:11px}.tracker-stages small{display:block;margin-top:4px;color:#aac0c5}
.tactical-header{font-size:12px;gap:16px;padding:12px 16px;flex-wrap:wrap}.gate-countdown,.tac-objective{font-size:12px}
.action-panel{min-height:88px;max-height:40vh;overflow:auto;align-items:stretch}.action-buttons{gap:7px;flex-wrap:wrap}.action-buttons>.tbtn{padding:9px 13px;min-height:39px;font-size:12px}.unit-status{font-size:12px;gap:12px;flex-wrap:wrap;padding-top:8px}.unit-status strong{font-size:15px}
.field-inventory{width:100%;border-top:1px solid #37515d;margin-top:5px;padding-top:8px}.field-inventory summary{cursor:pointer;font:12px Consolas,monospace;padding:7px;color:#b9dccf}.field-items{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0}.field-items>div{display:flex;align-items:center;gap:9px;padding:6px 10px;background:#142631;border:1px solid #35515c;border-radius:4px}.field-items span{font-size:13px}.field-items .tbtn{min-height:34px;padding:5px 9px}
#tactical-levels{display:flex;gap:5px;margin-left:auto}#tactical-levels button{background:#162c36;color:#b6cbd1;border:1px solid #48616b;padding:7px 11px;font:12px Consolas,monospace;min-height:34px}#tactical-levels button[aria-pressed=true]{background:#a0d7c9;color:#122a31}.operation-selector{display:block;padding:16px;border:1px solid #45616c;font:12px Consolas,monospace;background:#142933}.operation-selector select{display:block;width:100%;font:15px 'Segoe UI',sans-serif;margin:8px 0;padding:10px;background:#0d1d26;color:#e2eeea;border:1px solid #608280}.operation-selector small{font-size:11px;line-height:1.5;color:#a9bcc5}
.combat-grid .tile.void{background:#071018!important;box-shadow:none!important;border-color:#09141b;color:#58717a}.combat-grid .tile.void::before{content:'·';opacity:.2}
.combat-grid .tile.grid-terminal{border-color:#a9ddd0}.grid-device-marker{position:absolute;left:2px;bottom:2px;z-index:4;font:700 9px/1 Consolas,monospace;color:#cefff0;background:#163e3d;padding:2px;pointer-events:none}.combat-grid .tile.grid-flare-warning{background:repeating-linear-gradient(135deg,#7d292b,#7d292b 5px,#451e25 5px,#451e25 10px)!important;border:2px solid #ffbe83;box-shadow:inset 0 0 0 1px #e5665c}.combat-grid .tile.grid-hostile-warning{outline:2px dashed #dc9571;outline-offset:-3px}.grid-danger-marker{position:absolute;right:1px;top:0;z-index:5;font:900 16px/1.1 Consolas,monospace;color:#fff1c2;pointer-events:none}
.mission-briefing p,.dial-meta{font-size:14px;line-height:1.65}.p-name{font-size:17px}.p-obj{font-size:12px!important}.p-reward,.ft-hp,.ft-role{font-size:11px}.ft-entry{min-height:54px}.ft-entry input{width:19px;height:19px}.operation-step p,.operation-step small,.optional-recoveries p,.reinforcement-intel p{font-size:12px;line-height:1.55}.operation-step strong{font-size:14px}
.log-scroll{font-size:12px;line-height:1.6}.game-dialog{font-size:15px}.game-dialog p{line-height:1.7}.game-dialog button{min-height:38px}.dialog-close{min-width:42px;min-height:42px}
@media(max-width:1100px){.tactical-layout{grid-template-columns:minmax(0,1fr) 255px}.tactical-header{gap:8px}.tac-objective{flex-basis:100%}.tactical-sidebar{min-width:0}.action-buttons>.tbtn{padding:8px 10px}.action-panel{max-height:35vh}}
@media(max-width:760px){.tactical-layout{display:flex;flex-direction:column}.tactical-sidebar{width:100%;max-height:none}.action-panel{max-height:none}.field-items>div{flex:1;min-width:260px}.tactical-header{padding:10px}.squad-card{min-height:85px}.tbtn.small,.text-button{min-height:40px}.game-dialog{width:calc(100% - 20px);max-height:90dvh}}

.gate-telemetry{padding:11px;margin:0 0 12px;border:1px solid #4b7979;background:#112d35;border-radius:3px}.gate-telemetry header{display:flex;align-items:center;justify-content:space-between;gap:8px}.gate-telemetry header b{font:600 12px Consolas,monospace;color:#b3e1ce}.gate-telemetry p{font:13px/1.5 "Segoe UI",sans-serif;color:#c1d5d5;margin:9px 0 4px}.gate-telemetry small{font:10px/1.5 Consolas,monospace;color:#aac7c4}.gate-telemetry .text-button{font-size:11px;min-height:34px;padding:7px 0;color:#d9e5c8}.gate-energy{height:4px;background:#243f49;margin:10px 0 5px}.gate-energy i{display:block;height:100%;background:#9bceba}.gate-warning{border-color:#d08765;background:#3d2b27}.gate-warning header b{color:#ffc9a0}.gate-closed,.gate-dialing{border-color:#897457;background:#2e302a}
.overlord-dossier{margin:16px 0;padding:16px;border:1px solid #826458;background:linear-gradient(125deg,#2e2726,#12242d);border-radius:4px}.overlord-dossier header{display:flex;gap:14px;align-items:center}.overlord-dossier .overlord-portrait{width:84px;height:84px;flex:0 0 84px}.overlord-dossier svg{width:100%;height:100%}.overlord-dossier h3{font-size:20px;margin:5px 0;color:#ead7bd}.overlord-dossier p{margin:8px 0;font-size:13px;line-height:1.6}.overlord-dossier .overlord-traits{display:grid;grid-template-columns:1fr 1fr;gap:14px}.overlord-dossier strong{color:#e5c4a8}.overlord-dossier .overlord-traits small{display:block;font-size:11px;color:#aeb8b6}.overlord-dossier.defeated{border-color:#57786c;opacity:.8}
@media(min-width:761px) and (max-height:800px){#tactical-squad.expanded-squad[data-squad-count="4"][data-support-count="0"] .squad-card small{margin-top:1px}#tactical-squad.expanded-squad[data-squad-count="4"][data-support-count="0"] .squad-card .squad-health{margin-top:2px}}
/* One tactical command surface: soldier telemetry, action strip, optional gear. */
body[data-view="tactical"] .action-panel{display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:9px 18px 7px;min-height:0;max-height:min(265px,37vh);overflow:auto;background:#0c1921;border-top:1px solid #56726f}
body[data-view="tactical"] .action-buttons{width:100%;min-width:0;gap:7px;align-items:stretch}
body[data-view="tactical"] .unit-status{order:-1;display:flex;align-items:center;gap:15px;width:100%;max-width:none;margin:0;padding:0 0 7px;border-bottom:1px solid #2c424a;text-align:left;font:12px/1.3 "Segoe UI",sans-serif;letter-spacing:0;flex-wrap:wrap;color:#c4d2d3}
.operative-identity{display:flex;align-items:baseline;gap:8px}.unit-status .operative-identity strong{font:600 16px/1.2 "Segoe UI",sans-serif;color:#eff6f0}.operative-identity>span{font-size:11px;color:#9bb1b8}.operative-weapon{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#9bb1b8}
.operative-metric{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.operative-metric>small{font:10px/1.2 Consolas,monospace;letter-spacing:.5px;color:#9ab0b5}.unit-status .operative-metric>b{font:600 15px/1.2 Consolas,monospace;color:#e3eeea}.operative-metric em{font-size:11px;font-style:normal;color:#91a7ad;font-weight:400}.reserve-ammo{font:10px/1.2 Consolas,monospace;color:#9fb6b9}
.command-ap-pips{display:flex;gap:3px}.command-ap-pips i{display:block;width:7px;height:11px;transform:skewX(-15deg);background:#20313b;border:1px solid #50666d}.command-ap-pips i.on{background:#a4d9cb;border-color:#b9e6d9}.command-health-track{height:4px;width:44px;background:#243943;border-radius:1px;overflow:hidden}.command-health-track i{height:100%;display:block;background:#92c7ad}.unit-status .metric-critical>b{color:#efad9b}.metric-critical .command-health-track i{background:#e58e7c}
.operative-level{font:10px Consolas,monospace;color:#b5c7c9}.operative-condition{margin-left:auto;white-space:nowrap;font:10px/1.3 Consolas,monospace;letter-spacing:.7px;color:#a7d1be}.operative-condition.condition-critical{color:#ffb299;border-left:2px solid #db8e74;padding-left:8px}.operative-empty{color:#a9bdc2;padding:3px 0}
.combat-command-bar{display:flex;flex-wrap:wrap;align-items:stretch;gap:9px;width:100%;min-width:0}.command-group{display:flex;gap:5px;align-items:stretch;min-width:0}.command-support{padding-left:9px;border-left:1px solid #355058}.command-turn{margin-left:auto;padding-left:9px;border-left:1px solid #355058}
.action-buttons .combat-command{display:inline-flex;align-items:center;justify-content:flex-start;gap:7px;min-height:44px;max-width:100%;padding:7px 9px;border:1px solid #3b535b;border-radius:3px;background:#14242d;color:#c8d8d7;letter-spacing:0;text-align:left;box-shadow:none;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}
.command-icon{width:17px;height:17px;flex:0 0 17px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;color:#96b1b9}.command-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.command-name{font:600 12px/1.1 "Segoe UI",sans-serif}.command-copy>small{font:10px/1.15 Consolas,monospace;color:#91aab0;letter-spacing:0}.combat-command>kbd{align-self:flex-start;margin:0 0 0 3px;font:9px/1.1 Consolas,monospace;background:transparent;border-color:#4a646b;color:#a8bec2;padding:2px 3px;box-shadow:none}
.action-buttons .combat-command:hover:not(:disabled){background:#213c43;border-color:#88b7ad;color:#edf6ef}.action-buttons .combat-command.active{background:#224942;border-color:#94cfb7;color:#e4f5e9}.combat-command.active .command-icon{color:#bae3c5}.combat-command.active .command-copy>small{color:#b5d6c8}.action-buttons .combat-command.command-attack.active{background:#554139;border-color:#d4ad8a}.combat-command.command-attack.active .command-icon{color:#e7c5a4}
.action-buttons .combat-command.command-extraction{background:transparent;border-color:#467a76;color:#b3d7cb}.action-buttons .combat-command.command-end{border-color:#869c94;background:#1a3037;color:#dce9df}.action-buttons .combat-command.command-ready{background:#a7cbb9;border-color:#c3e0cb;color:#172d2a}.combat-command.command-ready .command-copy>small,.combat-command.command-ready .command-icon{color:#2c4c43}.combat-command.command-ready>kbd{color:#2d4b41;border-color:#688878}
.action-buttons .combat-command:disabled{opacity:1;color:#718991;border-color:#2a4049;background:#101f28;cursor:not-allowed}.combat-command:disabled .command-icon,.combat-command:disabled .command-copy>small,.combat-command:disabled>kbd{color:#728991}.combat-command:disabled>kbd{border-color:#344b54}.action-buttons .combat-command:focus-visible,.field-inventory summary:focus-visible{outline:2px solid #d2e8ce;outline-offset:2px}
.command-context{display:flex;align-items:stretch;flex-wrap:wrap;gap:6px;width:100%;border-left:2px solid #ceba82;padding-left:9px}.command-group-label{align-self:center;font:9px/1.3 Consolas,monospace;letter-spacing:1px;color:#c8bb94;margin-right:3px}.command-context .combat-command{min-width:165px;max-width:310px}.command-context .command-copy>small{max-width:225px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.action-buttons .command-objective{border-color:#af9b6a;background:#3c3829;color:#efe0af}.command-objective .command-icon{color:#e5cc8d}.command-objective .command-copy>small{color:#cfbf91}.action-buttons .command-rescue{border-color:#b68065;background:#432e27;color:#f0c5ab}.action-buttons .command-utility{border-color:#567484;background:#182d39}.action-buttons .command-quiet{border-color:transparent;background:transparent;color:#91a8af}
body[data-view="tactical"] .field-inventory{width:100%;margin:0;padding:0;border-top:1px solid #2c424a}.field-inventory summary{display:flex;align-items:center;gap:12px;padding:5px 1px;min-height:27px;list-style:none;font:10px/1.3 Consolas,monospace;color:#91abb3}.field-inventory summary::-webkit-details-marker{display:none}.field-inventory summary::before{content:'+';font:16px/1 Consolas,monospace;color:#a2c7ba}.field-inventory[open] summary::before{content:'−'}.field-inventory summary strong{font-size:10px;letter-spacing:.7px;color:#b9d0cc}.field-inventory-hint{margin-left:auto;color:#839fa9}.field-items{display:flex;flex-wrap:wrap;gap:7px;padding:5px 0 1px;max-height:140px;overflow:auto}.field-items>.field-item{flex:1 1 290px;min-width:255px;max-width:420px;display:flex;align-items:center;gap:7px;padding:8px;background:#10242e;border:1px solid #344d57;border-radius:3px}.field-item-label{flex:1;min-width:0;font:12px/1.4 "Segoe UI",sans-serif;color:#d1dfdc}.field-item-label b{color:#c2dfc3;white-space:nowrap}.field-item-label>small{display:block;margin-top:2px;color:#8faab2;font:10px/1.3 Consolas,monospace}.field-items .combat-command{padding:6px 7px;min-height:34px}.field-items .command-icon{width:14px;height:14px;flex-basis:14px}.field-items .command-name{font-size:11px}.field-empty{font-size:12px;margin:6px;color:#9ab2ba}
@media(min-width:761px) and (max-width:1400px){.combat-command-bar .combat-command>kbd{display:none}.command-support .command-icon{display:none}.combat-command-bar .combat-command{padding-left:8px;padding-right:8px}.combat-command-bar{gap:7px}.command-support,.command-turn{padding-left:7px}}
@media(max-width:1280px){body[data-view="tactical"] .action-panel{padding-left:12px;padding-right:12px}.combat-command-bar{gap:7px}.action-buttons .combat-command{padding:7px;gap:6px}.command-support,.command-turn{padding-left:7px}.operative-weapon{max-width:155px}body[data-view="tactical"] .unit-status{gap:12px}.command-health-track{width:34px}}
@media(max-width:1060px){.operative-weapon{display:none}.command-turn{margin-left:auto}.command-copy>small{font-size:9px}.action-buttons .combat-command{gap:5px;padding:7px 6px}.combat-command>kbd{margin-left:0}.command-name{font-size:11px}.command-icon{width:15px;height:15px;flex-basis:15px}.operative-condition{margin-left:0}}
@media(max-width:760px){body[data-view="tactical"] .action-panel{padding:10px;max-height:none}body[data-view="tactical"] .unit-status{gap:9px;row-gap:8px}.operative-identity{width:100%}.operative-identity>span{margin-left:auto}.operative-metric>small{font-size:10px}.operative-will,.command-health-track{display:none}.operative-condition{margin-left:auto;font-size:9px}.reserve-ammo{font-size:9px}.combat-command-bar{gap:7px}.command-group{flex:1 1 100%}.command-group>.combat-command{flex:1;justify-content:center;min-height:43px}.command-support,.command-turn{padding-left:0;border-left:0}.command-support{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.command-support kbd{display:none}.command-turn>.combat-command{flex:1}.command-name{font-size:12px}.command-copy>small{font-size:10px}.command-icon{width:16px;height:16px;flex-basis:16px}.command-context .combat-command{flex:1;max-width:none}.command-group-label{flex-basis:100%}.field-inventory summary{flex-wrap:wrap;gap:7px;min-height:34px}.field-inventory-hint{display:none}.field-items>.field-item{min-width:250px;max-width:none}.field-items{max-height:none}}
@media(min-width:721px){body[data-view="tactical"] .tactical-header{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;column-gap:18px;row-gap:6px;padding:8px 14px}#tac-mission{grid-column:1;grid-row:1}#tac-round{grid-column:2;grid-row:1}.tactical-header .gate-countdown{grid-column:3;grid-row:1;justify-self:end;margin:0;font-size:11px}#tactical-levels{grid-column:4;grid-row:1;margin:0}#tactical-levels button{padding:6px 9px;min-height:30px;font-size:11px}.tactical-header .tac-objective{grid-column:1/-1;grid-row:2;width:auto;padding-top:6px;font-size:11px;line-height:1.4}}
