[hidden] { display:none !important; }
body:not([data-screen="battle"]) { height:100dvh; overflow:hidden; }
body:not([data-screen="battle"]) > .masthead, body:not([data-screen="battle"]) > main { display:none; }
#lobby { position:fixed; inset:0; overflow-y:auto; background:#070d13; color:#e1e9e6; isolation:isolate; }
.orbital-art { position:fixed; inset:0; z-index:-3; background:linear-gradient(90deg,#060c13dd 0%,#060c1340 58%,#060c1310),url('/orbital-war.png') center/cover; }
.orbital-grid { position:fixed; inset:0; z-index:-2; pointer-events:none; background:repeating-linear-gradient(0deg,transparent 0 3px,#060e191c 3px 4px); }
#menu-home { min-height:100dvh; display:flex; flex-direction:column; padding:30px 4vw 22px; }
.menu-topline,.menu-footer { display:flex; justify-content:space-between; gap:20px; font:10px ui-monospace,monospace; letter-spacing:1.7px; color:#a9bebd; }
.menu-topline { padding-bottom:20px; border-bottom:1px solid #b2d2d32b; }
.signal-light { display:inline-block; width:6px; height:6px; margin-right:9px; border-radius:50%; background:#aae3dc; box-shadow:0 0 9px #aae3dc70; }
.signal-light.amber { background:#e7a571; box-shadow:0 0 9px #e7a57170; }
.menu-content { margin:auto 0; padding:60px 0 72px; max-width:660px; }
.menu-insignia { display:flex; align-items:center; gap:22px; margin-bottom:28px; }
.menu-insignia span { font:9px/1.9 ui-monospace,monospace; letter-spacing:2px; color:#9db6ba; }
.menu-content h1 { margin:0; font-size:clamp(58px,7.5vw,116px); line-height:.9; letter-spacing:-5px; font-weight:900; }
.menu-content h1 span { color:#a9d7d7; }
.menu-tagline { margin:26px 0 38px; font-size:16px; color:#c2d1d0; }
.menu-actions { display:grid; gap:10px; max-width:348px; }
.menu-actions button span { font:10px ui-monospace,monospace; opacity:.6; }
.menu-caption { margin:21px 0 0; font:11px/1.9 ui-monospace,monospace; color:#93acb0; }
.menu-footer { margin-top:auto; padding-top:18px; border-top:1px solid #b2d2d32b; font-size:9px; }
.orbital-callout { position:absolute; top:60%; right:12%; display:flex; align-items:center; gap:15px; color:#dfc7ac; font:9px/1.8 ui-monospace,monospace; letter-spacing:1.5px; }
.orbital-callout b { font-weight:400; color:#f1b581; }
.target-reticle { width:46px; height:46px; display:grid; place-items:center; border:1px solid #e1b17b80; border-radius:50%; font:25px ui-monospace,monospace; }
#squad-builder { min-height:100dvh; background:#080f18ed; padding-bottom:82px; }
.builder-header { min-height:52px; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:8px 24px; border-bottom:1px solid #354751; }
.builder-header>span { font:10px ui-monospace,monospace; letter-spacing:1px; color:#95acb5; }
.builder-brand { display:flex; align-items:center; gap:14px; color:#dce9e8; text-decoration:none; font:700 14px ui-monospace,monospace; letter-spacing:2px; }
.builder-intro,.builder-layout { max-width:1440px; margin:auto; padding:0 24px; }
.builder-intro { display:flex; align-items:baseline; gap:16px; padding-top:16px; padding-bottom:16px; }
.builder-intro h1 { margin:0; font-size:22px; letter-spacing:-1px; font-weight:600; }
.builder-intro>p:last-child { margin:0; color:#9fafb9; font-size:12px; }
.builder-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:20px; }
.builder-section-label { display:flex; justify-content:space-between; margin-bottom:8px; font:10px ui-monospace,monospace; letter-spacing:1px; }
.builder-section-label span { color:#829da9; }
#squad-roster { display:grid; gap:4px; }
.squad-unit { display:flex; align-items:center; gap:10px; width:100%; padding:10px; text-align:left; background:#0f1b27; border:1px solid #344653; color:#d2e0e3; }
.squad-unit.selected { background:#20323d; border-color:#a7d8d8; box-shadow:inset 3px 0 #a7d8d8; }
.unit-index { color:#92abb5; font:11px ui-monospace,monospace; }
.squad-unit strong { display:block; font-size:14px; }
.squad-unit small { display:block; font-size:10px; line-height:1.5; color:#9cb1bd; margin-top:3px; }
.squad-unit>b { margin-left:auto; font:16px ui-monospace,monospace; text-align:right; }
.squad-unit>b small { font-size:8px; }
#add-mech { margin-top:6px; width:100%; border:1px dashed #48616c; background:transparent; font-size:12px; padding:9px; }
.opponent-brief { margin-top:18px; border-top:1px solid #344653; padding-top:12px; }
.opponent-brief .eyebrow { color:#d4a788; }
.opponent-brief h2 { font-size:13px; line-height:1.4; margin:8px 0; }
.opponent-brief p { font-size:11px; line-height:1.6; color:#95aab6; margin:0; }
#builder-save { font:9px/1.7 ui-monospace,monospace; color:#809c9f; margin-top:12px; }
.loadout-editor { min-width:0; border:1px solid #344653; background:#0b1520; padding:12px; }
.loadout-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; gap:12px; }
.loadout-top h2 { margin:0; font:16px ui-monospace,monospace; }
.loadout-top button { font-size:10px; color:#aeb8be; }
.loadout-editor h3 { display:flex; align-items:center; gap:12px; font:10px ui-monospace,monospace; color:#698692; letter-spacing:1.5px; margin:0 0 7px; }
.loadout-editor h3 span { color:#c3d5db; }
.loadout-editor h3 small { margin-left:auto; font-size:9px; color:#849ca9; letter-spacing:0; }
.loadout-editor section+section { margin-top:12px; padding-top:10px; border-top:1px solid #263946; }
.chassis-options { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.loadout-option { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; text-align:left; gap:3px; min-width:0; padding:8px 10px; border:1px solid #344653; background:#0f1a25; color:#cbdde1; }
.loadout-option.selected { border-color:#a7d8d8; background:#20323d; box-shadow:inset 0 -2px #a7d8d8; }
.loadout-option:hover:not(:disabled) { background:#253c46; border-color:#90b7bd; }
.loadout-option strong { font-size:12px; font-weight:600; }
.loadout-option small { font:9px/1.6 ui-monospace,monospace; color:#9cb4bf; }
.loadout-option:disabled { opacity:.35; }
.chassis-options .loadout-option { position:relative; min-height:58px; padding-left:58px; }
.chassis-preview { position:absolute; left:3px; top:3px; width:50px; height:50px; object-fit:contain; margin:0; }
#chassis-stats { display:grid; grid-template-columns:repeat(6,1fr); margin:8px 0 0; padding:8px 0; background:#12212d; }
#chassis-stats div { text-align:center; border-right:1px solid #344653; }
#chassis-stats div:last-child { border:0; }
#chassis-stats dt { color:#91a8b2; font:9px ui-monospace,monospace; }
#chassis-stats dd { margin:4px 0 0; font:16px ui-monospace,monospace; }
.weapon-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.weapon-option { padding:7px 10px; }
.weapon-option>span { color:#77939f; font-size:9px; }
.upgrade-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.builder-footer { position:fixed; bottom:0; left:0; right:0; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:10px 24px; background:#0c1823f5; border-top:1px solid #536b74; backdrop-filter:blur(16px); z-index:3; }
.builder-footer>div { display:flex; align-items:center; gap:20px; }
.builder-footer strong { font:24px ui-monospace,monospace; }.builder-footer strong small { color:#869fa9; font-size:14px; }
.builder-footer .primary { min-width:210px; margin:0; width:auto; }
#builder-error { color:#f4b191; font-size:12px; margin:0; }
#pilot-options { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; }
#pilot-options [data-pick-pilot="relay"] { grid-column:1 / -1; }
#pilot-options .loadout-option>span { font-size:11px; line-height:1.5; color:#9cb4bf; }
#squad-builder .weapon-bays { gap:4px; margin-bottom:6px; }
#squad-builder .weapon-bays button { padding:6px 8px; font-size:11px; min-height:30px; }
.squad-unit>span:nth-child(2) { min-width:0; flex:1; }
.squad-unit>b { flex-shrink:0; }
.squad-unit .unit-system { color:#89b9ba; }
.match-menu-actions { display:flex; gap:10px; }
@media(max-width:900px) {
  .orbital-callout { right:6%; top:72%; }
  .builder-layout { grid-template-columns:230px minmax(0,1fr); gap:14px; }
  .builder-intro,.builder-layout { padding-left:20px; padding-right:20px; }
  .chassis-options,.weapon-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .upgrade-options { grid-template-columns:1fr; }
  .builder-header>span { display:none; }
  .loadout-option { padding:10px; }.loadout-editor h3 { flex-wrap:wrap; }.loadout-editor h3 small { margin-left:0; width:100%; }
}
@media(max-width:600px) {
  #menu-home { padding:22px 24px; }
  .menu-topline { font-size:8px; letter-spacing:1px; }.menu-topline>span:last-child { display:none; }
  .menu-content { padding:55px 0 65px; }.menu-content h1 { font-size:clamp(46px,13vw,76px); letter-spacing:-2px; }
  .menu-tagline { font-size:13px; }.menu-insignia { gap:16px; }.menu-insignia span { font-size:8px; letter-spacing:1px; }
  .orbital-callout { display:none; }.orbital-art { background-position:65% center; }
  .menu-footer { flex-direction:column; font-size:8px; gap:12px; }
  .builder-intro { display:block; padding-top:12px; padding-bottom:12px; }.builder-intro h1 { font-size:22px; margin-bottom:5px; }.builder-layout { display:block; }
  .builder-header { padding:8px 16px; gap:10px; }.builder-brand { font-size:11px; letter-spacing:1px; }.builder-brand img { width:32px; }
  .squad-sidebar { margin-bottom:14px; }.opponent-brief { margin-top:12px; }
  #builder-save { margin-top:12px; }.chassis-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .chassis-options .loadout-option { min-height:58px; padding-left:52px; }.chassis-preview { width:46px; height:46px; }
  .loadout-option small { font-size:9px; }.loadout-option strong { font-size:11px; }
  .upgrade-options { grid-template-columns:1fr; }#chassis-stats dt { font-size:8px; }
  .builder-footer { flex-wrap:wrap; gap:12px; padding:12px 20px; }.builder-footer>div { gap:12px; }.builder-footer .eyebrow { font-size:8px; letter-spacing:1px; }.builder-footer strong { font-size:22px; }.builder-footer .primary { min-width:0; font-size:11px; padding:12px; }
  #builder-error { order:-1; width:100%; }
  .match-menu-actions { gap:4px; }.match-menu-actions .quiet { font-size:10px; padding:8px; }.match-menu-actions .quiet span { display:none; }
}

/* Mech lab: roster, inspection bay, and equipment inventory. */
#squad-builder { background:#080d19; }
.builder-intro,.builder-layout { max-width:1680px; }
.builder-intro h1 { font:700 23px ui-monospace,monospace; letter-spacing:3px; }
.builder-intro>p:last-of-type { font:10px ui-monospace,monospace; letter-spacing:1px; }
.lab-status { margin-left:auto; font:9px ui-monospace,monospace; color:#9db6b2; letter-spacing:1px; }
.builder-layout { grid-template-columns:230px minmax(320px,1fr) 340px; gap:14px; align-items:start; }
.squad-sidebar { padding-top:12px; }
.squad-unit.selected { border-color:#83a7b9; background:#1d2e3c; box-shadow:inset 3px 0 #99c5d1; }
.mech-bay { min-width:0; border:1px solid #53646b; background:#101521; box-shadow:inset 0 1px #81918d55,0 3px 0 #070b12; }
.mech-bay .loadout-top { margin:0; padding:14px 16px; border-bottom:3px solid #30394a; background:#26383e; }
.loadout-top .eyebrow { font-size:8px; color:#b9ccc0; }
.loadout-top h2 { margin-top:5px; font-size:21px; }
.mech-tonnage { margin-left:auto; display:flex; flex-direction:column; align-items:flex-end; gap:2px; color:#c9ddae; }
.mech-tonnage strong { font:26px ui-monospace,monospace; }
.mech-tonnage span { font:8px ui-monospace,monospace; letter-spacing:2px; }
.mech-stage { position:relative; height:330px; overflow:hidden; background:#080e19; }
.bay-readout { position:absolute; top:14px; left:16px; right:16px; display:flex; justify-content:space-between; gap:10px; font:9px ui-monospace,monospace; color:#8eaaa9; letter-spacing:1px; pointer-events:none; z-index:1; }
#mech-preview { position:absolute; inset:0; z-index:1; }
#mech-preview canvas { display:block; width:100%; height:100%; cursor:grab; touch-action:none; }
#mech-preview canvas:active { cursor:grabbing; }
#mech-fallback { width:100%; height:100%; object-fit:contain; }
.bay-floor { position:absolute; width:65%; height:65px; bottom:35px; left:17.5%; border:1px solid #80bfd555; border-radius:50%; background:#80bfd508; box-shadow:0 0 0 12px #80bfd508,0 0 0 13px #80bfd520; }
.bay-controls { position:absolute; bottom:9px; left:16px; right:12px; display:flex; align-items:center; justify-content:space-between; gap:8px; z-index:2; pointer-events:none; }
.bay-controls span { font:8px ui-monospace,monospace; color:#8da09e; letter-spacing:.5px; }
.bay-controls button { pointer-events:auto; font-size:9px; padding:5px 7px; }
.mech-bay #chassis-stats { margin:0; padding:12px 0; border-top:1px solid #53646b; border-bottom:3px solid #30394a; background:#26383e; }
.mech-bay #chassis-stats dd { color:#c9ddae; }
.installed-equipment { padding:14px 16px; }
.installed-equipment h3 { display:flex; flex-wrap:wrap; gap:6px; justify-content:space-between; margin:0 0 10px; font:10px ui-monospace,monospace; letter-spacing:1px; }
.installed-equipment h3 small { color:#91a7ac; font-size:9px; letter-spacing:0; }
#squad-builder .weapon-bays { display:grid; grid-template-columns:1fr; }
#squad-builder .weapon-bay { display:flex; }
#squad-builder .weapon-bay>button:first-child { flex:1; text-align:left; }
#squad-builder .weapon-bays button { min-height:32px; border-color:#061018; border-bottom-color:#687d7d; background:#111f28; }
#squad-builder .weapon-bays button[aria-pressed="true"] { border-color:#c9ddae; color:#e1e9d9; background:#293d3e; }
.installed-system { display:flex; gap:14px; align-items:center; border-top:1px solid #344653; margin-top:10px; padding-top:10px; font-size:11px; }
.installed-system span { color:#8d9fa1; font:9px ui-monospace,monospace; }
.installed-system strong { font-weight:400; color:#bbd0cf; }
.chassis-selector { border-top:1px solid #53646b; padding:0 16px; }
.chassis-selector summary { cursor:pointer; padding:13px 0; color:#b9d9de; font:10px ui-monospace,monospace; letter-spacing:1px; }
.chassis-selector summary span { float:right; color:#849a9e; font-size:9px; }
.chassis-selector .chassis-options { grid-template-columns:repeat(2,minmax(0,1fr)); padding-bottom:14px; }
.loadout-editor { padding:12px; border-color:#53646b; background:#101521; box-shadow:inset 0 1px #81918d55,0 3px 0 #070b12; }
.loadout-editor .builder-section-label { padding:2px 0 10px; }
.equipment-tabs { display:flex; margin:0 -12px 16px; border-bottom:1px solid #354650; }
.equipment-tabs button { flex:1; background:transparent; padding:12px 5px; border:0; border-bottom:2px solid transparent; border-radius:0; color:#8da2a8; font:11px ui-monospace,monospace; }
.equipment-tabs button[aria-selected="true"] { color:#dbe8e9; border-bottom-color:#b9d9de; background:#26383e; }
.loadout-editor section+section { margin:0; padding:0; border:0; }
.loadout-editor h3 { flex-wrap:wrap; line-height:1.6; gap:4px; margin-bottom:10px; }
.loadout-editor h3 small { width:100%; margin:0; }
.loadout-editor .weapon-options,.loadout-editor .upgrade-options { grid-template-columns:1fr; gap:6px; }
.loadout-editor .loadout-option { padding:11px 12px; gap:4px; background:#293d3e; border-color:#15292c; }
.loadout-option.selected,.loadout-editor .loadout-option.selected { border-color:#b9d9de; background:#304858; box-shadow:inset 3px 0 #a7ced8; }
.loadout-editor .loadout-option strong { font-size:12px; }
.loadout-editor .loadout-option small { font-size:10px; }
.loadout-editor .loadout-option:disabled { opacity:.4; }
.equipment-note { font:11px/1.7 ui-monospace,monospace; color:#8da2a8; margin:14px 0 0; }
#panel-pilot .equipment-note { margin:0 0 14px; }
#pilot-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
.builder-footer { background:#090e19; border-top:3px solid #30394a; box-shadow:inset 0 1px #000; }
.builder-footer .primary { background:#dbe8e9; border-color:#eff8f7; color:#101a22; box-shadow:0 3px 0 #536770; }
/* Hardware details shared with the battle console's drive rack and serial cards. */
.builder-header { background:#060713; border-bottom:3px solid #30394a; box-shadow:inset 0 -1px #000; }
.builder-brand { font-weight:800; }
.builder-intro h1 { color:#dbe8e9; text-shadow:0 0 16px #80bfd528; }
.builder-section-label { color:#b9ccc0; }
.squad-unit { background:#131d2a; box-shadow:inset 0 1px #ffffff08; }
.squad-unit strong { font-family:ui-monospace,monospace; font-size:12px; letter-spacing:.5px; text-transform:uppercase; }
.unit-index { padding:5px 3px; border:1px solid #47606d; color:#99c5d1; }
.mech-bay,.loadout-editor { border-radius:3px; }
.bay-readout,.bay-controls { z-index:3; }
.bay-readout>span:first-child { border-left:2px solid #8eb5c1; padding:4px 7px; background:#101b29dd; color:#d1e4e8; }
.bay-readout>span:last-child { padding-top:4px; }
.mech-bay #chassis-stats dd { display:inline-block; min-width:32px; padding:3px 6px; border:1px solid #415761; background:#0b1721; box-shadow:inset 0 1px 3px #0008; font-variant-numeric:tabular-nums; }
.installed-equipment { background:#26383e; box-shadow:inset 0 1px #81918d55; }
.installed-equipment h3 { color:#b9ccc0; }
#squad-builder .weapon-bays { padding:7px; background:#0d1722; border:1px solid #354650; box-shadow:inset 0 2px 5px #0008; }
#squad-builder .weapon-bays button { font-family:ui-monospace,monospace; }
.chassis-selector { background:#121a27; }
.loadout-editor .loadout-option { position:relative; border-left:3px solid #87b3b7; border-radius:1px; padding:7px 8px 12px; box-shadow:0 2px 0 #070b12; }
.loadout-editor .loadout-option::after { content:""; position:absolute; bottom:0; left:12px; width:68px; height:4px; background:repeating-linear-gradient(90deg,#ccb47c 0 3px,transparent 3px 5px); }
.loadout-editor .loadout-option>strong { align-self:stretch; background:#e9e9d8; color:#233d40; padding:5px 7px; font:600 11px/1.35 ui-monospace,monospace; letter-spacing:.3px; text-transform:uppercase; }
.loadout-editor .loadout-option>small { color:#b9ccc2; }
.loadout-editor .weapon-option>span { color:#9eb2bc; }
.loadout-editor .loadout-option[data-mount-color="red"] { border-left-color:#da9580; }
.loadout-editor .loadout-option.selected { outline:1px solid #c9ddae; outline-offset:1px; box-shadow:0 2px 0 #070b12; }
.loadout-editor .loadout-option.selected>strong { background:#dce7cf; }
.loadout-editor .loadout-option:hover:not(:disabled) { background:#34515a; border-color:#90b7bd; }
.builder-footer .primary:hover:not(:disabled) { background:#fff; border-color:#fff; }
@media(min-width:1101px) {
  .squad-sidebar { position:sticky; top:14px; }
}
@media(max-width:1100px) {
  .builder-layout { grid-template-columns:190px minmax(0,1fr); }
  .squad-sidebar { grid-row:1 / 3; }
  .loadout-editor { grid-column:2; }
  .loadout-editor .weapon-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mech-stage { height:300px; }
}
@media(max-width:600px) {
  .builder-layout { display:flex; flex-direction:column; gap:14px; padding:0 12px; }
  .builder-layout>* { width:100%; }
  .builder-intro { padding:14px 12px; }
  .builder-intro h1 { font-size:21px; }
  .lab-status { display:none; }
  .squad-sidebar { margin:0; padding:0; }
  .opponent-brief { display:none; }
  .mech-bay .loadout-top { padding:10px; gap:8px; }
  .loadout-top h2 { font-size:18px; }
  .loadout-top button { padding:8px; }
  .mech-stage { height:280px; }
  .bay-readout { font-size:8px; letter-spacing:0; }
  .installed-equipment { padding:12px; }
  #pilot-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .builder-footer { padding:12px; }
}

/* Paper-doll sockets use the same card / drive-mouth treatment as move slots. */
.paper-doll { display:grid; grid-template-columns:minmax(140px,1fr) minmax(120px,1.3fr) minmax(140px,1fr); align-items:stretch; background:#080e19; padding:12px; gap:10px; }
.paper-doll .mech-stage { height:auto; min-height:370px; }
.paper-doll .bay-readout { top:4px; left:0; right:0; }
.paper-doll .bay-readout>span { font-size:8px; padding:4px; letter-spacing:0; }
.paper-doll .bay-controls { left:0; right:0; bottom:0; flex-wrap:wrap; justify-content:center; text-align:center; }
.paper-doll .bay-controls span { font-size:7px; }
.paper-doll .bay-floor { width:90%; left:5%; bottom:80px; height:35px; }
.doll-rack { min-width:0; padding-top:35px; }
.doll-rack h3 { margin:0 0 10px; font:9px ui-monospace,monospace; color:#9eb2bc; letter-spacing:1px; }
#squad-builder .doll-rack .weapon-bays { padding:0; border:0; background:transparent; box-shadow:none; gap:10px; }
.equipment-socket { position:relative; margin-bottom:10px; }
.doll-rack .equipment-slot,#squad-builder .doll-rack .equipment-slot { position:relative; display:flex; flex-direction:column; width:100%; gap:6px; padding:8px; text-align:left; background:#111f28; border:1px solid #061018; border-bottom-color:#687d7d; box-shadow:inset 0 3px 7px #0006; }
.doll-rack .equipment-slot::after { content:""; position:absolute; top:45%; width:18px; height:1px; background:#526e77; pointer-events:none; }
.doll-weapons .equipment-slot::after { right:-19px; }
.doll-systems .equipment-slot::after { left:-19px; }
.socket-label { font:8px ui-monospace,monospace; letter-spacing:1px; color:#b9ccc0; }
.equipment-slot .drive-mouth { display:block; width:100%; }
.equipment-slot .disk-shell.serial-card { width:100%; height:82px; }
.equipment-slot .serial-card .disk-label { display:flex; align-items:center; padding:4px; }
.equipment-slot .serial-card .disk-name { font-size:10px; line-height:1.3; }
.equipment-slot .serial-card .card-serial { font-size:6px; letter-spacing:0; overflow:hidden; }
.equipment-slot .serial-card .disk-code { font-size:7px; white-space:normal; }
.empty-socket { display:flex; flex-direction:column; align-items:center; justify-content:center; width:100%; min-height:82px; gap:8px; border:1px dashed #47606d; color:#829eaa; font:22px ui-monospace,monospace; }
.empty-socket small { font-size:8px; letter-spacing:1px; }
.doll-rack .socket-eject,#squad-builder .doll-rack .socket-eject { display:block; margin-left:auto; min-height:24px; padding:4px 6px; background:transparent; border:0; color:#a9b9bf; font:9px ui-monospace,monospace; }
.doll-rack .equipment-slot.active,#squad-builder .doll-rack .equipment-slot.active { border-color:#c9ddae; background:#20333c; }
.doll-rack .equipment-slot.drop-compatible { outline:1px dashed #c9ddae; outline-offset:2px; }
.doll-rack .equipment-slot.drag-over,#squad-builder .doll-rack .equipment-slot.drag-over { background:#34515a; outline:2px solid #c9ddae; }
.loadout-editor [draggable="true"] { cursor:grab; }
.loadout-editor [draggable="true"]:active { cursor:grabbing; }
.doll-instructions { padding:10px 14px; border-top:1px solid #30394a; color:#9eb2bc; font:10px/1.6 ui-monospace,monospace; }
.doll-instructions p { margin:4px 0 0; }
@media(min-width:1101px) and (max-width:1350px) {
  .builder-layout { grid-template-columns:190px minmax(0,1fr) 280px; gap:10px; padding:0 16px; }
  .paper-doll { grid-template-columns:minmax(110px,1fr) minmax(90px,1fr) minmax(110px,1fr); gap:8px; padding:8px; }
}
@media(max-width:800px) {
  .paper-doll { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .paper-doll .mech-stage { grid-column:1 / -1; grid-row:1; min-height:270px; height:270px; }
  .paper-doll .bay-readout { left:12px; }
  .paper-doll .bay-controls { flex-wrap:nowrap; justify-content:space-between; padding:0 12px; }
  .paper-doll .bay-floor { width:55%; left:22.5%; bottom:40px; }
  .doll-rack { padding-top:10px; }
  .doll-rack .equipment-slot::after { display:none; }
}

.network-menu {display:flex;flex-wrap:wrap;align-items:center;gap:10px;max-width:540px;margin-top:14px}
.network-menu input,.online-status input {background:#13232d;color:#eaf4ef;border:1px solid #607580;padding:8px;max-width:100%}
.network-menu label {font-size:13px}.network-menu a {color:#b6e5f2}.network-menu p {width:100%;margin:0}
.opponent-choice {padding:12px 24px;background:#13232d;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.opponent-choice select {padding:8px;background:#1d333c;color:#edf6f3}.opponent-choice span {font-size:13px}
.online-status {position:fixed;bottom:8px;left:12px;z-index:20;padding:8px;background:#11242ef0;display:flex;gap:12px;align-items:center;font-size:12px;max-width:95vw}
.online-status[hidden]{display:none}.online-status input {width:270px}.online-status button {padding:8px}

#hangar {position:relative;min-height:100vh;padding:28px clamp(16px,5vw,80px);background:#08131dea}
.hangar-header {display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
#hangar-storage,.hangar-roster {color:#a9bbc4;font-size:14px}
#hangar-lists {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px;margin-top:24px}
.hangar-card {background:#142630;border:1px solid #486270;padding:22px;max-width:650px}
.hangar-card h2 {overflow-wrap:anywhere;margin-top:0;color:#deebe2}
.hangar-actions {display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
#hangar input,#list-name {padding:10px;background:#13232d;color:#edf6f3;border:1px solid #607580;max-width:100%}
#match-tonnage {width:100px}#room-invite {width:min(480px,90vw)}
#hangar-room {padding:20px 0}#hangar-message {color:#ffce95;min-height:1.4em}
body[data-screen="hangar"] .masthead,body[data-screen="hangar"] main {display:none}

/* Shared lobby controls: navigation and actions use the same visual language. */
#lobby {
  --ui-surface:#12222e;
  --ui-hover:#203642;
  --ui-border:#405763;
  --ui-text:#e1eceb;
  --ui-muted:#a3b8bf;
  --ui-accent:#b8dad5;
}
#lobby .ui-button {
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  min-height:44px; padding:11px 16px; margin:0;
  border:1px solid var(--ui-border); border-radius:4px;
  background:var(--ui-surface); color:var(--ui-text);
  font-family:inherit; font-size:13px; font-weight:600; line-height:1.4;
  text-decoration:none; text-align:center; box-shadow:none;
  transition:background .15s,border-color .15s,color .15s;
}
#lobby .ui-button:hover:not(:disabled) { background:var(--ui-hover); border-color:#89aaaF; color:#fff; }
#lobby .ui-button.ui-primary { background:var(--ui-accent); border-color:var(--ui-accent); color:#10252b; }
#lobby .ui-button.ui-primary:hover:not(:disabled) { background:#d5ebe5; border-color:#d5ebe5; color:#10252b; }
#lobby .ui-button:disabled { opacity:.45; cursor:not-allowed; }
#lobby :is(button,a,input,summary):focus-visible { outline:2px solid var(--ui-accent); outline-offset:4px; }
#lobby input { min-width:0; min-height:44px; padding:11px 12px; border:1px solid var(--ui-border); border-radius:4px; background:#0c1822; color:var(--ui-text); font-family:inherit; font-size:14px; line-height:1.4; }
#lobby input::placeholder { color:#819aa5; }
.menu-content { max-width:660px; padding:48px 0; }
.menu-tagline { margin-bottom:28px; }
.menu-actions { max-width:400px; gap:8px; }
#lobby .menu-actions .ui-button { justify-content:space-between; padding:14px 18px; min-height:52px; font-size:15px; }
.menu-actions button span { font:18px/1 ui-sans-serif,system-ui,sans-serif; color:var(--ui-muted); opacity:1; }
.network-menu { display:grid; max-width:400px; gap:18px; margin-top:24px; }
.join-match-row { display:grid; gap:8px; padding-top:20px; border-top:1px solid #b2d2d32b; }
.join-match-row>label { font-size:12px; color:var(--ui-muted); }
.join-match-row>div { display:flex; gap:8px; }
.join-match-row input { flex:1; width:0; }
.account-row { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.account-row #account-name:empty { display:none; }
#account-name { color:var(--ui-muted); font-size:13px; overflow-wrap:anywhere; }
#network-message { font-size:12px; line-height:1.6; color:#e9bd94; }
#network-message:empty { display:none; }
.menu-caption { margin-top:24px; }
.menu-footer a { color:var(--ui-muted); text-decoration:none; }
.menu-footer a:hover { color:var(--ui-text); text-decoration:underline; text-underline-offset:4px; }
#hangar { padding:28px max(20px,calc((100vw - 1280px)/2)); }
.hangar-header { padding-bottom:22px; border-bottom:1px solid #b2d2d32b; }
.hangar-header h1 { flex:1; font-size:26px; font-weight:650; letter-spacing:-.6px; }
#hangar-storage { margin:20px 0; font-size:13px; line-height:1.6; }
#hangar-lists { grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr)); gap:16px; margin-top:24px; }
.hangar-card { display:flex; flex-direction:column; padding:24px; background:var(--ui-surface); border:1px solid var(--ui-border); border-radius:4px; max-width:none; }
.hangar-card h2 { font-size:20px; font-weight:650; letter-spacing:-.3px; margin:0 0 12px; }
.hangar-card>p { margin:0 0 12px; font-size:13px; line-height:1.7; }
.hangar-card .hangar-roster { color:var(--ui-muted); }
.hangar-actions { margin-top:auto; padding-top:12px; }
#hangar-budget,#hangar-room { padding:18px; border:1px solid var(--ui-border); border-radius:4px; background:var(--ui-surface); font-size:13px; line-height:1.6; }
#hangar-budget { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
#hangar-room label { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
#room-invite { flex:1; min-width:180px; }
#hangar-message:empty { display:none; }
.opponent-choice { background:#101e29; border-bottom:1px solid #344653; padding:18px 24px; }
.opponent-choice label { display:flex; align-items:center; gap:12px; font-size:13px; }
.opponent-choice span { color:var(--ui-muted); font-size:12px; }
.builder-header,.builder-footer { border-width:1px; box-shadow:none; }
.builder-footer .ui-button { min-width:160px; }
#lobby #add-mech { width:100%; margin-top:8px; }
@media(max-width:600px) {
  .menu-content { padding:36px 0; }
  .menu-actions,.network-menu { max-width:none; }
  .menu-insignia { margin-bottom:24px; }
  .menu-tagline { line-height:1.6; }
  .hangar-header { gap:12px; }
  .hangar-header h1 { order:-1; flex-basis:100%; margin:0 0 4px; }
  .hangar-header #hangar-new { margin-left:auto; }
  .opponent-choice { padding:16px 12px; }
  .opponent-choice label { width:100%; }
  #list-name { flex:1; width:0; }
  .builder-footer .ui-button { min-width:0; }
  #lobby .loadout-top .ui-button { padding:8px; font-size:11px; }
}
