/* Segmenty HP: standard Blockfield 0.63.2 ui/aim-health.js. */
.segmented-health{display:flex;gap:3px;width:100%;height:6px;color:#b9e69a}.segmented-health i{display:block;flex:1;background:#162323cc;border:1px solid #c5e4cb44;position:relative}.segmented-health i:after{content:"";position:absolute;inset:0;background:currentColor;transform:scaleX(var(--fill,1));transform-origin:left}.segmented-health.critical{color:#ff7765}.segmented-health[hidden],.visor-vitals[hidden]{display:none!important}
#team-hud{position:fixed;inset:0;pointer-events:none;color:#d8f7e2;text-shadow:0 1px 3px #000;z-index:5}.squad-panel{position:absolute;top:84px;left:24px;width:220px;padding:10px 12px;background:linear-gradient(90deg,#101c22c9,#101c2200);border-left:2px solid #a7cea7}.squad-panel>small{letter-spacing:3px;font-size:10px;color:#a6c4b3}.squad-row{display:grid;grid-template-columns:1fr auto;gap:5px;margin-top:12px}.squad-row b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.squad-row small{font-size:10px}.squad-row .segmented-health{align-self:center}.teammate-marker{position:absolute;transform:translate(-50%,-100%);display:flex;align-items:center;flex-direction:column;gap:4px;max-width:180px}.teammate-marker b{display:flex;align-items:center;gap:4px;font-size:12px;max-width:180px;white-space:nowrap}.teammate-marker b>span:last-child{overflow:hidden;text-overflow:ellipsis}.teammate-marker.commander b>span:last-child{color:#f3d690}.marker-rank{flex:none;width:15px;height:17px;filter:drop-shadow(0 1px 2px #000)}.marker-rank svg{display:block;width:100%;height:100%}.teammate-marker small{font-size:10px;color:#b0d4c2}.teammate-marker .segmented-health{width:90px;height:5px;gap:2px}.teammate-marker.edge{padding:5px 8px;background:#102029bb;border-bottom:1px solid #8ab99a}.teammate-marker[hidden],.squad-row[hidden],.squad-panel[hidden]{display:none}
/* HUD gry; nie zmienia warsztatu ani sprawdzonych ramek 9-slice. */
body.playing > footer { display:none; }
body.playing .topbar { left:18px;top:16px;right:auto;padding:11px 17px;min-height:56px;gap:0; }
.playing .session-title { display:none; }
.playing .resources { gap:24px; }
.playing .resources > span { font-size:7px;padding-left:20px; }
.playing .resources > span::before { top:6px;font-size:15px; }
.playing .resources b { font-size:17px;margin-top:2px; }
#session-tools { position:absolute;right:18px;top:18px;display:flex;gap:7px;z-index:7; }
#session-tools button { padding:11px 14px;font-size:9px; }
#field-menu { position:absolute;right:18px;top:70px;width:260px;max-height:70vh;overflow:auto;padding:22px;z-index:8; }
#field-menu button { width:100%;margin-top:10px; }
#field-menu p { font-size:10px;line-height:1.8;color:#abb9b5;margin:17px 0 0; }
#field-menu .marine { font-size:12px;padding:12px 0;border-bottom:1px solid #8c988044; }
body.playing #minimap-panel { left:18px;bottom:18px;width:174px;padding:10px; }
.playing .minimap-heading { font-size:8px;padding-bottom:6px; }
.playing .minimap-heading b { font-size:10px; }
.playing .minimap-heading button { padding:1px 5px;font-size:12px; }
.playing .minimap-footer { font-size:6px;margin-top:6px; }
body.playing .bottom-dock { left:210px;right:auto;bottom:18px;gap:0; }
body.playing .bottom-dock > div { padding:8px 11px;flex:none; }
body.playing #build-tools { gap:6px;margin:0; }
body.playing #build-tools button { min-width:95px;min-height:44px;padding:9px 12px;font-size:9px; }
body.playing #build-tools button small { display:inline;margin-left:8px;font-size:8px; }
body.playing #build-tools #cancel-build { min-width:40px; }
#placement-status { font-size:10px;line-height:1.4;max-width:280px;padding-top:8px;color:#b1d09f; }
#placement-status.invalid { color:#ff9679; }
body.playing #toast { top:88px;padding:9px 16px;font-size:11px;max-width:440px; }
body.playing #debug { top:85px;right:18px; }
body.fpp .topbar, body.fpp .bottom-dock { display:none; }
body.fpp #session-tools { top:49px;right:55px;opacity:.7; }
body.fpp #session-tools:hover { opacity:1; }
body.fpp #session-tools button { background:#091c2280;box-shadow:none;border-color:#81aba955;color:#bad5cf;font-size:8px;padding:8px 11px; }
body.fpp #field-menu { top:88px;right:55px; }
body.fpp #toast { top:117px; }
#suit-hud { position:absolute;inset:0;pointer-events:none;color:#bfded5;font-family:Arial,Helvetica,sans-serif;text-shadow:0 1px 4px #001319; }
.visor-vitals { position:absolute;left:66px;bottom:52px;width:248px;transform:skewY(2deg); }
.visor-vitals b { font-size:50px;font-weight:500;letter-spacing:-1px; }
.visor-vitals div > small { font-size:12px;margin-left:9px;opacity:.6; }
.vital-track { height:9px;background:#0d181ac9;margin:7px 0 14px; }
.vital-track i { display:block;height:100%;width:100%;background:#b2caa4;box-shadow:0 0 11px #b2caa466; }
body.fpp #crosshair { color:#c6ddd0;font-size:17px;opacity:.7; }
#suit-hud.low-health { color:#ff9171; }
#suit-hud.low-health .vital-track i { background:#ed785b; }
/* Licznik amunicji: odbicie paska HP po prawej stronie. */
.ammo-vitals { position:absolute;right:66px;bottom:52px;width:210px;text-align:right;transform:skewY(-2deg); }
.ammo-vitals .ammo-label { display:block;font-size:10px;letter-spacing:.22em;opacity:.6; }
.ammo-vitals b { font-size:50px;font-weight:500;letter-spacing:-1px; }
.ammo-vitals small { font-size:16px;margin-left:8px;opacity:.6; }
.ammo-track { height:9px;background:#0d181ac9;margin:7px 0 0;transform:scaleX(-1); }
.ammo-track i { display:block;height:100%;width:100%;background:#b2caa4;box-shadow:0 0 11px #b2caa466; }
/* Stamina: ukryta gdy pełna, półprzezroczysta gdy się ładuje. */
#stamina.stamina-full { display:none!important; }
#stamina.stamina-recharging { opacity:.4;transition:opacity .2s; }
@media(max-width:800px) {
  body.playing #minimap-panel { width:145px;left:12px;bottom:12px; }
  body.playing .bottom-dock { left:169px;bottom:12px;right:auto; }
  body.playing #build-tools button { min-width:76px;font-size:8px;padding:8px; }
  body.playing .topbar { left:12px;top:12px;padding:9px 13px; }
  #session-tools { top:14px;right:12px; }
  #session-tools button { padding:10px;font-size:8px; }
  .playing .resources { gap:13px; }
  .visor-vitals { left:36px;bottom:40px;width:125px; }
  .visor-vitals b { font-size:28px; }
  .ammo-vitals { right:36px;bottom:40px;width:118px; }
  .ammo-vitals b { font-size:28px; }
  .ammo-vitals small { font-size:11px; }
  body.fpp #session-tools { right:30px;top:45px; }
}

#interaction-prompt{position:absolute;left:50%;bottom:22%;transform:translateX(-50%);padding:10px 16px;background:#09110eea;border:1px solid #a7d7bd;color:#effff6;font:bold 11px system-ui;letter-spacing:.08em;pointer-events:none}
#arsenal-shop{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(620px,80vw);padding:22px;z-index:20;pointer-events:auto}#arsenal-shop header{display:flex;justify-content:space-between;align-items:center}#arsenal-shop header button{width:38px;padding:8px}#arsenal-shop>div{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}#arsenal-shop>div button{display:flex;justify-content:space-between;align-items:center;padding:14px;text-align:left}#arsenal-shop small{color:#9fe8ff}
.squad-role{font-style:normal;font-size:9px;font-weight:700;letter-spacing:.12em;color:#a6c4b3;align-self:center}.squad-row.commander .squad-role{color:#f3c56b}.squad-row.commander .squad-role::before{content:'★ '}.squad-row.own b{color:#fff}.squad-row.down{opacity:.55}
.squad-role{display:flex;flex-direction:column;align-items:flex-end;gap:3px;white-space:nowrap}.squad-row.commander .squad-role::before{content:none}
.commander-mode,.commander-view-marker{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border:1px solid #cda65e;background:#2c230fe0;color:#ffe2a0;font:700 9px/1.2 system-ui;letter-spacing:.1em;text-shadow:0 1px 2px #000;box-shadow:0 0 8px #f6b64a44}
.commander-mode[data-mode="tactical"]::before,.commander-view-marker[data-mode="tactical"]::before{content:'⌖';font-size:13px;line-height:8px}
.commander-mode[data-mode="fpp"],.commander-view-marker[data-mode="fpp"]{border-color:#69bad1;background:#102e3ce0;color:#b7efff;box-shadow:0 0 8px #59d6ff44}
.commander-mode[data-mode="fpp"]::before,.commander-view-marker[data-mode="fpp"]::before{content:'◉';font-size:10px}
.commander-mode[hidden],.commander-view-marker[hidden]{display:none}
.commander-view-marker{padding:3px 7px;font-size:10px}
/* Panel składu: pasek HP, walka i fokus kamery dowódcy. */
.squad-row{gap:6px 10px;margin:8px -8px 0;padding:6px 8px;border-left:2px solid transparent;transition:background .3s,border-color .3s}
#team-hud .squad-panel.focusable .squad-row{pointer-events:auto;cursor:pointer}
.squad-panel.focusable .squad-row:hover,.squad-panel.focusable .squad-row:focus-visible{background:#ffffff14;border-left-color:#f3c56b;outline:none}
.squad-meter{grid-column:1/-1;position:relative;height:8px;background:#0b1413d9;border:1px solid #c5e4cb33;overflow:hidden}
.squad-meter i{position:absolute;inset:0 auto 0 0;width:100%}
.squad-meter-lag{background:#f6e7c8;opacity:.5;transition:width .7s ease-out .3s}
.squad-meter-fill{background:linear-gradient(180deg,#bff3ac,#5fbf72);box-shadow:0 0 6px #7fe39455;transition:width .25s ease-out}
.squad-meter.critical .squad-meter-fill{background:linear-gradient(180deg,#ff9f8b,#d9442f);box-shadow:0 0 6px #ff5a4566}
.squad-meter::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 1px),#0b141399 calc(10% - 1px) 10%)}
.squad-status{grid-column:1/-1;font-size:9px;font-weight:700;letter-spacing:.12em;color:#ff8a78}
.squad-row.in-combat{background:linear-gradient(90deg,#ff7a3a26,#ff7a3a00);border-left-color:#ff9a4a}
.squad-row.in-combat b::after{content:"";display:inline-block;width:6px;height:6px;margin-left:7px;border-radius:50%;vertical-align:middle;background:#ff9a4a;box-shadow:0 0 6px #ff9a4a;animation:squad-pulse 1s ease-in-out infinite}
.squad-row.firing .squad-meter{animation:squad-shake .14s linear infinite}
.squad-row.hit .squad-meter{box-shadow:0 0 0 1px #ff5a45,0 0 8px #ff5a4588}
@keyframes squad-shake{0%,100%{transform:translate(0,0)}25%{transform:translate(-1px,.5px)}50%{transform:translate(1px,-.5px)}75%{transform:translate(-.5px,0)}}
@keyframes squad-pulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.squad-row.firing .squad-meter,.squad-row.in-combat b::after{animation:none}}
/* FPP: surowce drużyny i przybliżona minimapa w prawym górnym rogu. */
#field-hud { position:absolute;top:18px;right:18px;z-index:5;width:232px;display:grid;gap:6px;pointer-events:none; }
#field-hud[hidden] { display:none; }
.field-map { position:relative;padding:5px;background:#0b1413d9;border:1px solid #c5e4cb33; }
.field-map canvas { display:block;width:100%;height:auto;aspect-ratio:1; }
.field-map-scale { position:absolute;right:10px;bottom:8px;font-size:8px;letter-spacing:.1em;color:#e3dbb6;text-shadow:0 1px 2px #000; }
body.fpp #session-tools { top:auto;bottom:18px; }
body.fpp #field-menu { right:262px; }
/* Surowce w FPP: te same ścięte karty z ikonami co w panelu dowódcy (commander.css, base-economy.css). */
#field-hud .resources { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px; }
#field-hud .resources > span { position:relative;isolation:isolate;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:9px 8px 9px 22px;border:0;box-shadow:none;background:linear-gradient(135deg,#d6b36b,#64553c 60%,#85836c);clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px);font-size:8px;letter-spacing:.16em;color:#a7afa5; }
#field-hud .resources > span::after { content:'';position:absolute;inset:2px;z-index:-1;pointer-events:none;background:linear-gradient(#26302b,#0b100e 40%,#111a15);clip-path:polygon(6.8px 0,calc(100% - 6.8px) 0,100% 6.8px,100% calc(100% - 6.8px),calc(100% - 6.8px) 100%,6.8px 100%,0 calc(100% - 6.8px),0 6.8px); }
#field-hud .resources > span:nth-child(2) { background:linear-gradient(135deg,#83cce9,#244962 60%,#659eba); }
#field-hud .resources b { margin:0;font-size:20px;font-variant-numeric:tabular-nums;font-weight:650;line-height:1.05;color:var(--currency-credits,#bfe589); }
#field-hud .resources > span:nth-child(2) b { color:#d8f6ff; }
/* Jak w panelu dowódcy: bez ikon, etykieta i liczba z odstępem od lewej. */
#field-hud .resources > span::before { display:none; }
#field-hud .field-map { clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px);border-color:#827f72; }
@media (max-width:760px) { #field-hud { width:170px;top:12px;right:12px; } #field-hud .resources b { font-size:15px; } #field-hud .resources > span { padding-left:12px; } }

/* FPP: skład w stylu wizjera — bez karty, podpis + cienkie linie HP; przy własnym imieniu oznaka rangi. */
#team-hud.fpp .squad-panel{top:86px;left:66px;width:190px;padding:0;background:none;border:0;transform:skewY(2deg)}
#team-hud.fpp .squad-panel>small{font-size:9px;letter-spacing:.22em;color:#bfded5;opacity:.6}
#team-hud.fpp .squad-row{margin:7px 0 0;padding:0;gap:3px 8px;border:0;background:none}
#team-hud.fpp .squad-row b{font-size:11px;font-weight:600;letter-spacing:.06em;color:#bfded5}
#team-hud.fpp .squad-role{font-size:8px;opacity:.7}
#team-hud.fpp .squad-row:not(.commander) .squad-role{display:none}
#team-hud.fpp .squad-status{font-size:8px;letter-spacing:.14em;color:#ff9171}
#team-hud.fpp .squad-meter{height:3px;background:#0d181ac9;border:0;overflow:visible}
#team-hud.fpp .squad-meter::after{display:none}
#team-hud.fpp .squad-meter-fill{background:#b2caa4;box-shadow:0 0 8px #b2caa466}
#team-hud.fpp .squad-meter.critical .squad-meter-fill{background:#ed785b;box-shadow:0 0 8px #ed785b66}
#team-hud.fpp .squad-row.in-combat{background:none}
#team-hud.fpp .squad-row.in-combat b::after{width:5px;height:5px}
.squad-rank{display:inline-block;width:14px;height:16px;margin-right:6px;vertical-align:-3px}
.squad-rank svg{display:block;width:100%;height:100%}
.squad-rank[hidden]{display:none}
#team-hud.fpp .squad-rank{width:13px;height:15px}
/* FPP prawa strona w stylu wizjera (jak licznik amunicji): bez kart, tekst z cieniem i cienkie linie.
   Surowce jako podpis + liczba wyrównane do prawej, minimapa okrągła i półprzezroczysta. */
#field-hud { top:26px;right:66px;width:200px;gap:10px;color:#bfded5;text-shadow:0 1px 4px #001319; }
body.fpp #field-menu { right:286px; }
#field-hud .resources { display:flex;flex-direction:column;gap:6px; }
#field-hud .resources > span { display:flex;flex-direction:row;justify-content:space-between;align-items:baseline;gap:10px;padding:0;background:none;clip-path:none;font-size:9px;letter-spacing:.2em;color:#bfded5;opacity:1; }
/* Podpis przygaszony jak w licznikach fal; tekstowy węzeł podpisu nie ma własnego elementu, więc przygaszamy kolor. */
#field-hud .resources > span { color:#bfded599; }
#field-hud .resources > span::after { display:none; }
#field-hud .resources > span:nth-child(2) { background:none; }
#field-hud .resources b { font-size:18px;font-weight:500;letter-spacing:0;text-shadow:0 1px 4px #001319; }
#field-hud .field-map { padding:0;background:none;border:0;clip-path:none;border-radius:50%;overflow:hidden;opacity:.88;box-shadow:0 0 0 1px #bfded566,0 0 14px #00131988; }
#field-hud .field-map canvas { border-radius:50%; }
#field-hud .field-map-scale { right:50%;bottom:12px;transform:translateX(50%);font-size:8px;letter-spacing:.18em;color:#bfded5;opacity:.75; }
@media (max-width:760px) { #field-hud { width:150px;right:36px; } #field-hud .resources b { font-size:15px; } }

/* Doradczyni floty (ui/advisor.js): przejmuje okno minimapy (RTS) / okrągłą mapę wizjera (FPP).
   Stany na klasie: tuning (szum), open (portret), closing (zgaszenie kineskopu). */
#advisor-comms { position:absolute;z-index:4;display:none;overflow:hidden;color:#eef7ef;pointer-events:none;--sig:#9fe0b4; }
#advisor-comms.on { display:block; }
#advisor-comms[data-tier=priority] { --sig:#ff6a52; }
#minimap-panel #advisor-comms { clip-path:polygon(7px 0,calc(100% - 7px) 0,100% 7px,100% calc(100% - 7px),calc(100% - 7px) 100%,7px 100%,0 calc(100% - 7px),0 7px); }
.field-map #advisor-comms { border-radius:50%; }
#advisor-comms.tuning,#advisor-comms.open { pointer-events:auto;cursor:pointer;background:#050a0b; }
#advisor-comms .advisor-portrait { position:absolute;inset:0;opacity:0; }
#advisor-comms.open .advisor-portrait { opacity:1;animation:advisor-lock .32s steps(6,end); }
#advisor-comms.closing .advisor-portrait { opacity:1;animation:advisor-off .3s cubic-bezier(.6,0,.9,.4) forwards; }
.advisor-portrait img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;opacity:0; }
.advisor-portrait img.shown { opacity:1; }
/* Linie skanowania, winieta i obwódka sygnału; przy priorytecie czerwony puls. */
.advisor-portrait::after { content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,#ffffff0a 0 1px,transparent 1px 3px),radial-gradient(ellipse at 50% 45%,transparent 55%,#02070899 100%),linear-gradient(180deg,transparent 58%,#050a0bdd);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sig) 55%,transparent); }
#advisor-comms[data-tier=priority].open .advisor-portrait::after { animation:advisor-alarm .9s ease-in-out infinite; }
.advisor-static { position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;opacity:0; }
#advisor-comms.tuning .advisor-static { opacity:.95; }
#advisor-comms.closing .advisor-static { opacity:.55;animation:advisor-fade .3s linear forwards; }
.advisor-line { position:absolute;left:0;right:0;bottom:0;margin:0;padding:14px 8px 7px;font-size:11px;font-weight:600;line-height:1.3;text-align:center;text-shadow:0 1px 3px #000;opacity:0; }
#advisor-comms.open .advisor-line { opacity:1; }
/* FPP: okrągła mapa, więc napisy bliżej środka. */
.field-map #advisor-comms .advisor-line { padding:10px 18% 16%; }
/* Zablokowanie sygnału: kilka skoków jasności i przesunięcia, potem stabilny obraz. */
@keyframes advisor-lock { 0% { opacity:0;transform:translateX(-4px);filter:brightness(2.2) contrast(1.4); } 40% { opacity:.6;transform:translateX(3px);filter:brightness(1.5) hue-rotate(30deg); } 70% { opacity:.9;transform:none;filter:brightness(1.2); } 100% { opacity:1;filter:none; } }
/* Zgaszenie kineskopu: obraz zapada się do jasnej linii, potem do punktu. */
@keyframes advisor-off { 0% { transform:none;filter:none; } 55% { transform:scale(1,.012);filter:brightness(4); } 100% { transform:scale(0,.012);filter:brightness(6);opacity:0; } }
@keyframes advisor-fade { to { opacity:0; } }
@keyframes advisor-alarm { 50% { box-shadow:inset 0 0 0 2px var(--sig),inset 0 0 22px #ff3b2455; } }
@media (prefers-reduced-motion:reduce) { #advisor-comms *,#advisor-comms *::after,#advisor-comms .advisor-line { animation:none!important; } }
/* Wskaźnik kucania (0.19.6–0.19.8): sama sylwetka, na prawo od paska HP, środkiem na jego linii. */
.stance-vitals{position:absolute;left:100%;bottom:-3px;margin-left:14px;opacity:0;transform:translateX(-6px);transition:opacity .16s ease,transform .16s ease;pointer-events:none}
.stance-vitals.active{opacity:1;transform:none}
.stance-vitals svg{display:block;width:40px;height:40px;fill:currentColor;filter:drop-shadow(0 0 5px currentColor)}
.stance-vitals svg .limb{fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:900px){.stance-vitals svg{width:28px;height:28px}}

/* HUD FPP większy i czytelniejszy (0.19.8, Topek): skład, kredyty/kryształy, odczyty fali — ok. 1,4–1,5×.
   Prefiks body.fpp, bo commander.css (ładowany później) ustawia te same elementy na mniejsze. */
body.fpp #team-hud.fpp .squad-panel{width:270px}
body.fpp #team-hud.fpp .squad-panel>small{font-size:13px}
body.fpp #team-hud.fpp .squad-row{margin-top:10px;gap:4px 10px}
body.fpp #team-hud.fpp .squad-row b{font-size:16px}
body.fpp #team-hud.fpp .squad-role,body.fpp #team-hud.fpp .squad-status{font-size:11px}
body.fpp #team-hud.fpp .squad-row.commander .squad-role{opacity:1}
body.fpp #team-hud.fpp .commander-mode{font-size:12px;padding:5px 9px}
body.fpp #team-hud.fpp .squad-meter{height:4px}
body.fpp #team-hud.fpp .squad-rank{width:18px;height:21px}
body.fpp #field-hud .resources>span{font-size:12px}
body.fpp #field-hud .resources b{font-size:27px}
body.fpp #wave-status.fpp{width:250px;gap:12px}
body.fpp #wave-status.fpp .wave-card small{font-size:12px}
body.fpp #wave-status.fpp .wave-card b{font-size:26px}
body.fpp #wave-status.fpp .wave-card b span{font-size:15px}
body.fpp #wave-status.fpp .wave-bar{height:3px}
body.fpp #wave-status.fpp .wave-start{font-size:13px;padding:11px 0}
@media (max-width:1000px){body.fpp #team-hud.fpp .squad-panel{width:220px}body.fpp #team-hud.fpp .squad-row b{font-size:13px}body.fpp #field-hud .resources b{font-size:21px}body.fpp #wave-status.fpp{width:210px}body.fpp #wave-status.fpp .wave-card b{font-size:20px}body.fpp #wave-status.fpp .wave-card small{font-size:10px}}

/* Utrata łączności (0.19.8, ui/signal-loss.js): HUD drga, rozszczepia kolory i migocze w czasie kwestii baseLost. */
#signal-loss{position:fixed;inset:0;z-index:60;pointer-events:none;display:none}
body.signal-loss #signal-loss{display:block}
#signal-loss .scan{position:absolute;inset:0;opacity:var(--sl-noise,0);background:repeating-linear-gradient(0deg,#a9ecff14 0 1px,transparent 1px 3px),radial-gradient(ellipse at 50% 50%,transparent 55%,#02101699 100%);mix-blend-mode:screen}
#signal-loss .tear{position:absolute;left:0;right:0;opacity:0;background:repeating-linear-gradient(90deg,#a9ecff33 0 3px,#ff304022 3px 5px,transparent 5px 11px);box-shadow:0 0 12px #a9ecff55;mix-blend-mode:screen}
/* Zakłócane są wybrane grupy, NIE cały #hud: transform/filter na #hud zmienia punkt odniesienia elementów
   position:fixed w środku (schowana szuflada dowódcy wskakiwała na górę ekranu). `translate` nie koliduje
   z transformami wizjera (--vx/--vy w visor.css). */
body.signal-loss :is(#suit-hud,#team-hud,#field-hud,#wave-status,#visor-comms,#advisor-comms,#wave-countdown,#defeat-countdown,#commander-panel,#commander-abilities){translate:var(--sl-x,0) 0;opacity:var(--sl-alpha,1);filter:drop-shadow(var(--sl-split,0) 0 0 #ff3040aa) drop-shadow(calc(var(--sl-split,0) * -1) 0 0 #30e0ffaa)}
