/* Shared instruments belong to the full-height operations column. */
.masthead{flex-wrap:wrap;gap:10px 18px}
.ship-identity{min-width:150px;max-width:240px;border-left:2px solid #e4bd76;padding-left:12px}
.ship-identity .eyebrow{font:9px/1.4 Consolas,monospace;letter-spacing:.6px;color:#b3c7d8}
.ship-identity h1{font-size:17px;line-height:1.3;margin:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.masthead .edition{margin-left:auto;flex:0 0 auto;display:flex;align-items:center;gap:8px;letter-spacing:1.5px}
.masthead nav{flex-wrap:wrap;justify-content:flex-end;gap:3px;margin-left:auto}
.contact-panel>.overview{flex:none;display:block;min-height:0;border:0;border-bottom:2px solid #53697b;padding:7px;background:#172330}
.contact-panel .overview .readouts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;width:100%;margin:0}
.contact-panel .overview .readouts>div,.contact-panel .overview .readouts>button{grid-column:span 2;min-height:52px;height:52px;padding:5px 7px;display:block}
.contact-panel .overview .readouts>div:first-child,.contact-panel .overview .readouts>div:nth-child(3){grid-column:span 3}
.contact-panel .overview .readouts>div:first-child{grid-row:1}.contact-panel .overview .readouts>div:nth-child(3){grid-row:1}
.contact-panel .overview .readouts #open-shields{grid-column:1/-1;grid-row:2;height:62px;min-height:62px;padding:5px 0}
.contact-panel .overview .readouts>div>strong,.contact-panel .overview .readouts>button[data-cargo]>strong{font-size:21px;line-height:24px}
.contact-panel .overview .readouts>div>span,.contact-panel .overview .readouts>button[data-cargo]>span{font-size:9px;letter-spacing:.4px}
.contact-panel{height:auto!important;max-height:none;min-width:0}
@media(min-width:901px){
 main,main:has(.battle-theatre:not([hidden])){grid-template-columns:180px minmax(0,1fr) clamp(320px,25vw,390px);grid-template-rows:minmax(0,1fr) auto;gap:8px;min-height:0}
 main>.command-grid,main:has(.battle-theatre:not([hidden]))>.command-grid{display:contents}
 main .crew-panel{grid-column:1;grid-row:1;min-height:0}
 main .ship-panel{grid-column:2;grid-row:1;min-height:0}
 main .contact-panel,main:has(.battle-theatre:not([hidden])) .contact-panel{grid-column:3;grid-row:1;min-height:0;height:auto}
 main>.lower-grid,main:has(.battle-theatre:not([hidden]))>.lower-grid{grid-column:1/-1;grid-row:2}
 main:has(.battle-theatre:not([hidden])){grid-template-rows:minmax(190px,.85fr) minmax(250px,1fr) auto}
 main:has(.battle-theatre:not([hidden]))>.battle-theatre{grid-column:1/3;grid-row:1;min-height:0;overflow:hidden}
 main:has(.battle-theatre:not([hidden])) .crew-panel,main:has(.battle-theatre:not([hidden])) .ship-panel{grid-row:2}
 main:has(.battle-theatre:not([hidden])) .contact-panel{grid-row:1/3}
 main:has(.battle-theatre:not([hidden]))>.lower-grid{grid-row:3}
 .battle-theatre canvas{height:100%;width:100%}
}
@media(min-width:901px) and (max-width:1400px){.masthead .edition span{display:none}.masthead{gap:8px 12px}.masthead nav button{padding:5px 6px}.ship-identity{max-width:190px;min-width:130px}.ship-identity h1{font-size:15px}}
@media(min-width:901px) and (max-height:760px){main:has(.battle-theatre:not([hidden])){grid-template-rows:minmax(175px,.8fr) minmax(220px,1fr) auto}.contact-panel>.overview{padding:5px}.contact-panel .overview .readouts>div,.contact-panel .overview .readouts>button{height:46px;min-height:46px}.contact-panel .overview .readouts #open-shields{height:56px;min-height:56px}}
@media(max-width:900px){.masthead .edition{display:none}.masthead nav{width:100%;justify-content:flex-start}.contact-panel{display:flex;min-height:480px}.contact-panel>.overview{width:100%}.battle-theatre canvas{height:300px}.ship-identity{margin-left:auto}.contact-panel #contact-workspace{flex:1;max-height:600px}}
/* Keep the four battery controls in reach; hull target markers remain clickable. */
@media(min-width:901px){main:has(.battle-theatre:not([hidden])){grid-template-columns:180px minmax(0,1fr) clamp(370px,27vw,420px)}}
.contact-panel[data-mode=combat] .overview .readouts{grid-template-columns:repeat(12,minmax(0,1fr));gap:4px}
.contact-panel[data-mode=combat] .overview .readouts>div:first-child{grid-column:span 4;grid-row:1;height:54px;min-height:54px}
.contact-panel[data-mode=combat] .overview .readouts #open-shields{grid-column:span 8;grid-row:1;height:54px;min-height:54px}
.contact-panel[data-mode=combat] .overview .readouts>div:nth-child(3),.contact-panel[data-mode=combat] .overview .readouts>button[data-cargo]{grid-column:span 3;grid-row:2;height:39px;min-height:39px;padding:3px 5px}
.contact-panel[data-mode=combat] .overview .readouts strong{font-size:18px!important;line-height:20px!important}
.contact-panel[data-mode=combat] #open-shields .defence-half>small{font-size:8px;white-space:nowrap;letter-spacing:0}
.contact-panel[data-mode=combat] .system-location{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:3px 8px}
.contact-panel[data-mode=combat] .system-location h2{font-size:12px;margin:0}.contact-panel[data-mode=combat] .system-location p{font-size:9px;margin:0}
.contact-panel[data-mode=combat] #combat-contact>.panel-heading{display:none}
.contact-panel[data-mode=combat] #contact-details{display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;padding:5px 8px}
.contact-panel[data-mode=combat] #contact-details .enemy-name{font-size:12px!important;margin:0!important}
.contact-panel[data-mode=combat] #contact-details .enemy-hull{font-size:9px;align-self:center}
.contact-panel[data-mode=combat] .enemy-meter{grid-column:1/-1}
.contact-panel[data-mode=combat] #contact-details .target-buttons,.contact-panel[data-mode=combat] #contact-details .target-purpose{display:none}
.contact-panel[data-mode=combat] #contact-details .enemy-intent{grid-column:1/-1;border:0;padding:0;margin:0;display:flex;align-items:center;gap:8px;background:none}
.contact-panel[data-mode=combat] .enemy-intent strong{font-size:10px}.contact-panel[data-mode=combat] .enemy-intent .meter{flex:1}.contact-panel[data-mode=combat] .enemy-intent small{display:none}
#individual-weapons{gap:4px;padding:3px 8px}
#individual-weapons .individual-weapon{padding:4px 6px}
#individual-weapons .individual-weapon header{gap:4px}
#individual-weapons .individual-weapon header button{font-size:11px;padding:0;line-height:16px}
#individual-weapons .individual-weapon header small{font:10px/16px Consolas,monospace;white-space:nowrap}
#individual-weapons .gun-controls{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 40px 64px;gap:4px;margin-top:3px}
#individual-weapons .gun-controls select,#individual-weapons .gun-controls button{font:11px/18px Consolas,monospace;padding:1px 3px;min-height:22px;min-width:0}
#individual-weapons .individual-weapon .meter{height:3px;margin:4px 0 0}
.ion-rule{font:10px/22px Consolas,monospace;color:#c3caff;text-align:center}
#ion-status{font-size:10px;margin:2px 8px;line-height:1.2}
.contact-panel[data-mode=combat] .contact-navigation{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px 8px;align-items:center}
.contact-panel[data-mode=combat] .contact-navigation .jump-drive{margin:0}.contact-panel[data-mode=combat] .contact-navigation .jump-drive strong{font-size:9px}
.contact-panel[data-mode=combat] .contact-navigation #escape{padding:4px;font-size:10px}.contact-panel[data-mode=combat] #content-status:empty,.contact-panel[data-mode=combat] #jump-readiness:empty{display:none}

/* The shared defence label adds one compact line in every cockpit layout. */
.contact-panel .overview .readouts #open-shields{height:auto;min-height:78px}
.contact-panel[data-mode=combat] .overview .readouts #open-shields{height:auto;min-height:70px}
.contact-panel .overview .readouts #open-shields[hidden]{display:none}
