.battlefield{display:block;width:100%;height:100%;min-height:320px;background:#071019;cursor:grab;touch-action:none;user-select:none}.battlefield:active{cursor:grabbing}.battlefield text{font-family:Inter,system-ui,sans-serif;font-size:.55px;fill:#98afbd;pointer-events:none;text-anchor:middle;paint-order:stroke;stroke:#081019;stroke-width:.09px}.bf-terrain image{pointer-events:none}.bf-objective circle{fill:none;stroke:#d5b66e;stroke-width:.045;stroke-dasharray:.2 .3;opacity:.45}.bf-objective text{fill:#d1b987}.bf-base{fill:#102834;stroke:#79d6ed;stroke-width:.065;vector-effect:non-scaling-stroke;stroke-width:1.3px}.team-1 .bf-base{fill:#332723;stroke:#e8b27b}.bf-forward{fill:#c0f2ff;pointer-events:none}.team-1 .bf-forward{fill:#ffddb1}.bf-ship{cursor:pointer}.bf-hit-target{fill:transparent}.bf-ship.is-active .bf-base{fill:#1f424c}.bf-ship.team-1.is-active .bf-base{fill:#473423}.bf-wreck polygon{fill:#283139;stroke:#556069;stroke-width:.05;opacity:.55}.bf-wreck path{stroke:#10171c;stroke-width:.12;fill:none}.bf-trail{stroke:#718d9c;stroke-width:.045;stroke-dasharray:.14 .2;opacity:.25}.bf-range{fill:none;stroke:#87c6d9;stroke-width:.05;stroke-dasharray:.25 .25;opacity:.32}.bf-preview{fill:#a4e5d522;stroke:#a4e5d5;stroke-width:.07;stroke-dasharray:.18 .12;pointer-events:none}.bf-craft{fill:#a0d7eb;stroke:#183545;stroke-width:.07;cursor:pointer}.bf-craft.team-1{fill:#dfb57e}.bf-effects{pointer-events:none}.bf-shot{fill:none;stroke-linecap:round}.bf-particle{stroke:#f4989d;stroke-width:.065}.bf-beam{stroke:#b08af5;stroke-width:.1;opacity:.72}.bf-kinetic{stroke:#eccb85;stroke-width:.075}.bf-energy{stroke:#dcf4e6;stroke-width:.12}.bf-ordnance{stroke:#e6ba87;stroke-width:.1}.bf-shield-hit{fill:none;stroke:#c3f6ff;stroke-width:.2}.bf-hull-hit{fill:#ffd191;stroke:#ed975b;stroke-width:.12}.bf-destroy-hit{fill:#e8a366;stroke:#eed1a0;stroke-width:.13}.battlefield .bf-effects *{pointer-events:none}@media(prefers-reduced-motion:reduce){.bf-effects{opacity:.65}}@media(max-width:600px){.battlefield{min-height:340px}}
.bf-backdrop{opacity:.3}.bf-backdrop text{display:none}.bf-mine circle{stroke:#bf9c73;fill:#af936316;stroke-width:.035;stroke-dasharray:.12 .14;opacity:.5}.bf-mine text{font-size:.4px;fill:#ad956e}.bf-deployment{fill:#72b5ce14;stroke:#70bcd4;stroke-width:.06;stroke-dasharray:.2 .2}.bf-deployment.team-1{fill:#d9b47414;stroke:#d6af79}.battlefield text.bf-deploy-label{font-size:.65px;fill:#a6bac6}.bf-surface-link{stroke:#cbbf95;stroke-width:.1;stroke-dasharray:.3 .2;opacity:.6}
.bf-objective .bf-objective-control{fill:none;stroke:var(--bf-owner-colour,#84929b);stroke-width:1.5px;stroke-dasharray:none;opacity:.9;vector-effect:non-scaling-stroke}.bf-company-markers{pointer-events:none}.bf-company-marker{pointer-events:none}
.battlefield .bf-objective>text{fill:var(--bf-owner-colour,#84929b)}
/* Override objective-circle styling so CQB retains its own owner's colour. */
.battlefield .bf-company-marker .bf-company-disc{fill:var(--bf-company);stroke:#071019;stroke-width:.055;stroke-dasharray:none;opacity:1}
.battlefield .bf-company-marker .bf-company-rim{fill:none;stroke:#f1f7fa;stroke-width:.02;stroke-dasharray:none;opacity:.9}
.battlefield text.bf-boarded{fill:#fff;font-size:calc(.65px * var(--bf-group-label-scale,1));font-weight:700;stroke-width:.12px;pointer-events:none}
.bf-station{fill:#233c49;stroke:#dbc68c;stroke-width:.065}
.battlefield .bf-token-has-art>polygon{fill:transparent;stroke-opacity:.09;pointer-events:all}
.battlefield .bf-token>.bf-base{stroke-opacity:.38}.battlefield .bf-token.bf-token-has-art>.bf-base{stroke-opacity:.09}.battlefield .bf-token:not(.bf-token-has-art)>.bf-base{fill-opacity:.08!important}.battlefield .bf-token-preview>.bf-preview{stroke-opacity:.45}.battlefield .bf-token-preview.bf-token-has-art>.bf-preview{stroke-opacity:.09}
.bf-artwork,.bf-artwork *{pointer-events:none}.bf-token-preview .bf-artwork{opacity:.5}.bf-token .bf-base,.bf-token .bf-preview{stroke:var(--bf-team)}.battlefield .bf-ship .bf-ship-name,.battlefield .bf-ship .bf-ship-strength,.battlefield .bf-ship .bf-group-label,.battlefield .bf-ship .bf-shield-value{fill:var(--bf-team)}
.bf-sensor-blip{cursor:pointer}.bf-sensor-blip polygon{fill:#192e38;fill-opacity:.82;stroke:#b7c4bf;stroke-width:.075;vector-effect:non-scaling-stroke;pointer-events:all}.bf-sensor-blip text{fill:#e0e8e8;font-size:.58px;font-weight:700;stroke:#081019;stroke-width:.1px;paint-order:stroke;pointer-events:none}

.bf-space-net{stroke:#7ad4de;stroke-width:.18;stroke-dasharray:.18 .24;opacity:.55}.bf-space-net-anchor{fill:#7ad4de;opacity:.65}.bf-leap-node path{fill:#765bd52b;stroke:#b8a3ff;stroke-width:.1}.bf-leap-node text{font-size:.43px;text-anchor:middle;fill:#c3b5ff}

.bf-salvage{fill:#89a6ac28;stroke:#8cacb4;stroke-width:.085;opacity:.5}

.battlefield,.battlefield *{ -webkit-tap-highlight-color:transparent }
.battlefield:focus,.battlefield:focus-visible,.battlefield *:focus,.battlefield *:focus-visible{outline:none;filter:none}
.battlefield text.bf-class-letter{fill:#d7edf5;stroke-width:.035px;font-weight:700}.battlefield text.bf-group-label{font-size:.43px;fill:#b5cad7}
.battlefield .bf-target{cursor:crosshair}.battlefield .bf-target circle{fill:#ed5d6210;stroke:#ff6571;stroke-width:.08;stroke-dasharray:.32 .16}.battlefield .bf-target text{fill:#ff8d93;font-size:.43px}
.battlefield .bf-target .bf-target-odds text{fill:#ff6571;font-family:Orbitron,Rajdhani,sans-serif;font-size:.32px;letter-spacing:.012px;stroke:none;text-anchor:start;text-shadow:0 0 .1px #ff657177;pointer-events:none}
.battlefield .bf-target-odds .bf-odds-heading{font-size:.25px!important;opacity:.85;letter-spacing:.035px!important}
.battlefield .bf-target .bf-target-odds .bf-odds-percent{font-size:.37px!important;font-weight:700;text-anchor:end}.battlefield .bf-target-odds .bf-odds-ads{font-size:.23px;opacity:.8}.bf-odds-row.is-selected .bf-odds-name{font-weight:700}
.battlefield .bf-craft-range{fill:#6edac414;stroke:#6edac4;stroke-width:.055;stroke-dasharray:.2 .15;pointer-events:none}.battlefield .bf-preview-path,.battlefield .bf-preview-arrow{fill:none;stroke:#a4e5d5;stroke-width:.07;stroke-dasharray:.15 .1;pointer-events:none}.battlefield .bf-allowed-area{fill:#68e0a029;stroke:#85edb8;stroke-width:.12}
.battlefield .bf-particle{stroke-width:.033}.battlefield .bf-beam{stroke-width:.045}.battlefield .bf-kinetic{stroke-width:.045}.battlefield .bf-energy{stroke-width:.06}.battlefield .bf-ordnance{stroke-width:.05}
.battlefield text.bf-group-label{font-family:Orbitron,Rajdhani,'Segoe UI',sans-serif;font-size:calc(.72px * var(--bf-group-label-scale,1));font-weight:600;letter-spacing:.035px}
.battlefield .bf-group-speed{font-size:.76em;font-weight:500;letter-spacing:.02px;opacity:.78}

.battlefield .bf-space-background{pointer-events:none}.battlefield .bf-deployment-heading{cursor:pointer;fill:#264956;stroke:#a6dbe7;stroke-width:.08}.battlefield .bf-deployment-heading.is-chosen{fill:#6da79c;stroke:#c7ffe7}.battlefield .bf-launch-marker{cursor:grab;fill:#aeffe5;stroke:#254c45;stroke-width:.045}.battlefield .bf-launch-marker text{font-size:.42px;fill:#aeffe5}
.battlefield .bf-terrain,.battlefield .bf-terrain *{pointer-events:none}.battlefield .bf-field-shape{pointer-events:none}.battlefield .bf-asteroid-haze{fill:#73818b}.battlefield .bf-asteroid-haze ellipse{opacity:.13}.battlefield .bf-gas-field{opacity:.94}
.bf-craft .bf-craft-dot{fill:#79d6ed;stroke:none}.bf-craft.team-1 .bf-craft-dot{fill:#ffb467}.battlefield text.bf-ship-name{font-size:min(.36px,calc(.72px * var(--bf-group-label-scale,1)));fill:#d5e4ec}.battlefield text.bf-ship-strength{font-size:min(.36px,calc(.72px * var(--bf-group-label-scale,1)));fill:#dfdccd}.battlefield .bf-shield-value{fill:#79d6ed}.battlefield .bf-ship-name,.battlefield .bf-ship-strength{stroke-width:calc(.09px * var(--bf-group-label-scale,1));pointer-events:none}
.bf-craft-drift{animation:bf-craft-drift 5s ease-in-out infinite alternate;transform-box:view-box;pointer-events:none}.bf-craft-dropship{animation-duration:9s}.bf-craft-bomber{animation-duration:7s}
@keyframes bf-craft-drift{0%{transform:translate(-.035px,.025px)}50%{transform:translate(.015px,-.035px)}100%{transform:translate(.04px,.02px)}}
@media(prefers-reduced-motion:reduce){.bf-craft-drift{animation:none}}
.map-options select{background:#14232f;color:#d5e4ec;border:1px solid #375366;border-radius:4px;padding:3px;max-width:100px}
.bf-craft[data-vfx-offscreen="true"] .bf-craft-drift{animation-play-state:paused}
.bf-craft-trail{fill:none;stroke-width:.025;stroke-dasharray:.12 .21;stroke-linecap:round;opacity:.21;pointer-events:none}

.bf-wreck{pointer-events:none;opacity:.76}.bf-wreck .bf-wreck-base{fill:#6970751f;stroke:#8b9297;stroke-width:.055;stroke-opacity:.45}.battlefield .bf-wreck .bf-token:not(.bf-token-has-art)>.bf-wreck-base{fill-opacity:.08!important}.battlefield .bf-wreck .bf-token-has-art>.bf-wreck-base{stroke-opacity:.09}.bf-wreck .bf-artwork{opacity:.72;filter:grayscale(1) brightness(.72)}.battlefield text.bf-wreck-letter{fill:#aab0b4;stroke-width:.035px}.bf-wreck-cracks{stroke:#11191e;stroke-width:.12;fill:none}.bf-wreck-explosion{opacity:0;animation:bf-wreck-burst 2.4s ease-out infinite;pointer-events:none}.bf-wreck-explosion path{stroke:#ffb45f;stroke-width:.06;fill:none}.bf-wreck-flash{fill:#fff3cf}.bf-wreck-fire{fill:#ff7138;stroke:#ffbd63;stroke-width:.04}
.bf-wreck .bf-token:not(.bf-token-has-art)>.bf-wreck-letter{font-size:.5px!important;fill:#aab0b4!important;stroke:#11191e;stroke-width:.035px}.bf-active-commander-ring{fill:none;stroke:#fff;stroke-width:.045;vector-effect:non-scaling-stroke;pointer-events:none}
.bf-damage-ship{cursor:pointer}.bf-damage-ship-outer{fill:#ffc76d0c;stroke:#ffc76d;stroke-width:.065;stroke-dasharray:.22 .12}.bf-damage-ship-inner{fill:transparent;stroke:#fff1d8;stroke-width:.045;pointer-events:none}
.bf-command-group-ring{fill:none;stroke:#f2f7ff;stroke-width:.045;stroke-opacity:.78;pointer-events:none}
.bf-weapon-arc{pointer-events:none}.bf-weapon-arc path{fill:#72dddc05;stroke:#82e3e5;stroke-width:.045;stroke-dasharray:.35 .16}.bf-weapon-arc text{fill:#9eebeb;font-size:.42px;stroke-width:.1px}.bf-weapon-arc-preview path{fill:#a4e5d503;stroke:#a4e5d5;stroke-width:.04;stroke-dasharray:.2 .15}.bf-weapon-arc-preview text{fill:#b9ece1}
.bf-weapon-arc .bf-weapon-arc-long path{fill:#e9b86f06;stroke:#e9b86f;stroke-width:.045;stroke-dasharray:.12 .24}.bf-weapon-arc .bf-weapon-arc-long text{fill:#f0c584}
@keyframes bf-wreck-burst{0%,25%,100%{opacity:0;transform:scale(.375)}30%{opacity:.85;transform:scale(.675)}55%{opacity:.8;transform:scale(1.5)}94%{opacity:0;transform:scale(2.175)}}
@media(prefers-reduced-motion:reduce){.bf-wreck-explosion{display:none}}
.bf-hull-damage{pointer-events:none}.bf-hull-damage .bf-wreck-explosion{animation-name:bf-damage-burst;animation-duration:8s}.bf-hull-damage[data-vfx-offscreen="true"]{visibility:hidden}.bf-hull-damage[data-vfx-offscreen="true"] .bf-wreck-explosion{animation-play-state:paused}
@keyframes bf-damage-burst{0%,74%,88%,100%{opacity:0;transform:scale(.375)}76%{opacity:.65;transform:scale(.675)}81%{opacity:.5;transform:scale(1.5)}87%{opacity:0;transform:scale(1.95)}}

.battlefield text.bf-morale-broken{fill:#fff;font-size:calc(.65px * var(--bf-group-label-scale,1));font-weight:700;stroke-width:.12px;pointer-events:none}

.battlefield text.bf-craft-name{font-size:.21px;stroke-width:.018px;pointer-events:none}.bf-command-order{cursor:pointer}.bf-command-order rect{fill:#101f2cf2;stroke:#d5b66e;stroke-width:1}.bf-command-order:hover rect,.bf-command-order:focus rect{fill:#263b49;stroke:#fff}.battlefield text.bf-command-order-label{fill:#f0dfb3;font-size:12px;stroke-width:1px}.battlefield text.bf-command-feedback{fill:#b9f8cb;font-size:11px;font-weight:700;stroke-width:1px}.battlefield text.bf-command-feedback.is-failed{fill:#ffaea5}.bf-command-order.is-disabled{opacity:.45;cursor:default}
.battlefield .bf-ship[data-ship-selectable=false],.battlefield .bf-ship[data-ship-selectable=false] *,.battlefield .bf-sensor-blip[data-group-selectable=false],.battlefield .bf-sensor-blip[data-group-selectable=false] *{pointer-events:none!important;cursor:default}.battlefield[data-point-placement=true] .bf-actors *,.battlefield[data-point-placement=true] .bf-background *,.battlefield[data-point-placement=true] .bf-controls *{pointer-events:none!important}
@font-face{font-family:Orbitron;src:url('../assets/fonts/Orbitron-Variable.ttf') format('truetype');font-weight:400 900;font-display:swap}
.battlefield text,#battle-screen svg.battlefield text{font-family:Orbitron,Rajdhani,'Segoe UI',sans-serif;font-weight:500;text-shadow:0 0 .1px var(--bf-team,#79d6ed)}
.battlefield .bf-hud-slot,.battlefield .bf-hud-slot *,.battlefield .bf-health-dots *{pointer-events:none!important}
.battlefield .bf-hud-card text{font-family:Orbitron,Rajdhani,'Segoe UI',sans-serif;fill:var(--bf-team);text-anchor:start;text-transform:uppercase;letter-spacing:.025em;stroke:#061018;stroke-width:.015em;text-shadow:0 0 .11em var(--bf-team)}
.battlefield .bf-hud-card .bf-group-label{font-weight:600}.battlefield .bf-hud-card .bf-group-speed{font-size:.82em;opacity:.8}
.bf-hud-leader{fill:none;stroke:var(--bf-team);stroke-width:.02px;stroke-opacity:.4}
.battlefield .bf-hud-slot .bf-hud-disclosure{pointer-events:all!important;cursor:pointer}
.battlefield .bf-hud-slot .bf-hud-disclosure-hit{fill:none;stroke:transparent;stroke-width:20px;vector-effect:non-scaling-stroke;pointer-events:stroke!important}
.battlefield .bf-hud-slot .bf-hud-disclosure-arrow{fill:none;stroke:var(--bf-team);stroke-width:.022px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none!important}
.bf-hud-disclosure:hover .bf-hud-disclosure-arrow,.bf-hud-disclosure:focus .bf-hud-disclosure-arrow{stroke-width:.035px}
.bf-hud-disclosure[aria-disabled="true"] .bf-hud-disclosure-arrow{opacity:.45}
.battlefield[data-point-placement="true"] .bf-hud-slot .bf-hud-disclosure,.battlefield[data-point-placement="true"] .bf-hud-slot .bf-hud-disclosure *{pointer-events:none!important}
.bf-group-name-dot{fill:var(--bf-team);stroke:none}
.bf-health-dots circle{stroke:none;pointer-events:none}.bf-health-hull{fill:#a5efad}.bf-health-shield{fill:#90ddff}.bf-health-dots .is-depleted{opacity:1}.bf-health-halo.is-depleted{opacity:0}
.battlefield text.bf-health-count{font-size:.18px;fill:#cfeee9;stroke-width:.02px}
/* Celestial surfaces occlude stars even when used as decorative backdrops. */
.battlefield .bf-terrain.bf-celestial-body{opacity:1}
.battlefield .bf-celestial-art,.battlefield .bf-celestial-art>image{opacity:1}
/* Rear glows pulse only in opacity, never beyond their collision-safe bounds. */
.bf-thrusters,.bf-thruster{pointer-events:none}
.bf-thruster.is-animated{animation:bf-thruster-pulse 2.8s ease-in-out infinite;animation-delay:var(--thruster-delay,0s)}
@keyframes bf-thruster-pulse{0%,100%{opacity:.82}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.bf-thruster.is-animated{animation:none}}

.battlefield .bf-deploy-confirm{cursor:pointer;fill:#102a36;stroke:#e2c283;stroke-width:1.5}.battlefield .bf-deploy-confirm text{fill:#f1ddb2!important;stroke:none;font:600 12px system-ui,sans-serif;pointer-events:none}.battlefield .bf-deploy-confirm:hover rect,.battlefield .bf-deploy-confirm:focus rect{fill:#224653}.battlefield .bf-deploy-confirm.is-disabled{cursor:wait;opacity:.55}

/* Small retained breach embers share the existing wreck/damage CSS clock. */
.bf-wreck-explosion path.bf-breach-embers{stroke:#ffc78a;stroke-width:.025;stroke-linecap:round;opacity:.65}
.battlefield .bf-invasion-defender{stroke:#ff847b;fill:#ff736a0a;stroke-width:.13;stroke-dasharray:.65 .55}
.system-navigator{padding:.7rem;border-top:1px solid #44657666;display:grid;gap:.4rem;background:#08131c66}
.system-navigator[hidden]{display:none}.system-navigator label{display:grid;gap:.3rem;color:#b9d6e6;font-size:.85rem}.system-navigator small{color:#89a6b6;font-size:.75rem}.system-navigator select{width:100%;min-width:0}
.bf-surrendered{pointer-events:none}.bf-surrendered-art{filter:grayscale(1)}.battlefield text.bf-surrendered-label{font-family:Orbitron,Rajdhani,'Segoe UI',sans-serif;font-size:.48px;letter-spacing:.025px;fill:#d5dce1;stroke:#071019;stroke-width:.1px;paint-order:stroke;filter:drop-shadow(0 0 .08px #c4d5df66)}
