:root{--ink:#050814;--panel:rgba(8,14,29,.78);--line:rgba(123,216,255,.22);--cyan:#70e5ff;--blue:#398cff;--violet:#9c75ff;--gold:#ffd56a;--red:#ff557e;--green:#72ffc1;--text:#ecf8ff;--muted:#8195ad}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--ink);color:var(--text);font:13px Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;touch-action:none}body:after{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 45%,transparent 45%,rgba(0,0,0,.5));z-index:2}button,input,select{font:inherit}button{color:inherit}#game{position:fixed;inset:0;width:100%;height:100%;display:block;cursor:crosshair}.glass{background:linear-gradient(145deg,rgba(11,20,39,.88),rgba(5,10,24,.7));border:1px solid var(--line);box-shadow:0 18px 55px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.035);backdrop-filter:blur(12px)}small{font-size:8px;letter-spacing:1.8px;color:var(--cyan);font-weight:900}.topbar{position:fixed;z-index:5;left:14px;right:14px;top:max(10px,env(safe-area-inset-top));height:58px;border-radius:8px;display:flex;align-items:center;padding:7px 10px}.brand{display:flex;align-items:center;gap:10px}.brand>div{display:flex;flex-direction:column;gap:2px}.brand strong{font:600 16px Georgia,serif;letter-spacing:1.2px}.sigil{width:37px;height:37px;border:1px solid var(--cyan);display:grid;place-items:center;transform:rotate(45deg);color:var(--cyan);font:800 18px Georgia;box-shadow:0 0 18px #42c8ff33}.sigil::first-letter{transform:rotate(-45deg)}.server{margin-left:auto;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:9px;letter-spacing:.8px}.server i{width:7px;height:7px;background:#ff657c;border-radius:50%;box-shadow:0 0 10px #ff657c}.server i.online{background:var(--green);box-shadow:0 0 10px var(--green)}.server b{color:#c5d7e5;border-left:1px solid var(--line);padding-left:7px}.icon-button{margin-left:10px;width:33px;height:33px;border:1px solid var(--line);border-radius:50%;background:#101b30;color:var(--cyan)}.vitals{position:fixed;z-index:4;left:14px;top:82px;width:235px;padding:12px 13px;border-radius:7px}.callsign{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.callsign strong{font:17px Georgia;color:#fff}.meter{margin-top:7px}.meter span{display:flex;justify-content:space-between;color:#9db0c5;font-size:8px;letter-spacing:1px}.meter span b{color:var(--cyan)}.meter>i{display:block;height:5px;margin-top:4px;background:#17233a;border-radius:5px;overflow:hidden}.meter em{display:block;width:100%;height:100%;background:linear-gradient(90deg,#297cf7,var(--cyan));box-shadow:0 0 8px var(--cyan);transition:width .2s}.meter.hull em{background:linear-gradient(90deg,#743cff,#cc7bff);box-shadow:0 0 8px #9d65ff}.chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.chips span{padding:5px 7px;background:#0e1a2f;border:1px solid #ffffff10;border-radius:3px;font-size:8px;color:#aabdd0}.chips b{color:#fff}.chips .proximity{color:var(--gold);border-color:#ffd56a44}.objective{position:fixed;z-index:4;left:14px;bottom:calc(130px + env(safe-area-inset-bottom));width:270px;padding:12px 14px;border-radius:6px;border-left:3px solid var(--gold)}.objective strong,.objective span{display:block}.objective strong{margin:4px 0 3px;font:17px Georgia}.objective span{font-size:9px;line-height:1.4;color:#a8b7c8}.objective-track{height:2px;background:#26344b;margin-top:9px}.objective-track i{display:block;width:25%;height:100%;background:var(--gold);box-shadow:0 0 8px var(--gold);transition:width .3s}.radar{position:fixed;z-index:4;right:14px;top:82px;width:228px;padding:8px;border-radius:7px}.radar>div,.leaderboard>div{display:flex;align-items:center;justify-content:space-between;margin:0 3px 7px}.radar>div span{font-size:7px;color:#8397ad}.flag-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 7px var(--gold)}#minimap{display:block;width:210px;height:132px;border:1px solid #78dbff20;background:#060b17;border-radius:3px}.leaderboard{position:fixed;z-index:4;right:14px;top:242px;width:228px;padding:10px;border-radius:7px}.leaderboard>div span{font-size:7px;color:#8297ae}.leaderboard ol{margin:0;padding:0;list-style:none}.leaderboard li{display:grid;grid-template-columns:18px 1fr auto;gap:5px;padding:5px 3px;border-top:1px solid #ffffff0b;font-size:9px;color:#a9b8c9}.leaderboard li.me{color:var(--cyan);background:#40d7ff0a}.leaderboard li b{color:#eaf8ff}.leaderboard li em{font-style:normal;color:var(--gold)}.flag-banner{position:fixed;z-index:7;left:50%;top:88px;transform:translateX(-50%);padding:9px 16px;border:1px solid #ffd56a88;background:#392b0eea;color:var(--gold);font-weight:900;letter-spacing:1px;box-shadow:0 0 24px #ffd56a33}.hidden{display:none!important}.toast{position:fixed;z-index:20;left:50%;top:151px;transform:translateX(-50%);padding:10px 15px;border:1px solid #70e5ff66;background:#091527ed;border-radius:4px;color:white;font-weight:800;box-shadow:0 12px 35px #0008}.touch-controls{position:fixed;z-index:6;left:0;right:0;bottom:max(14px,env(safe-area-inset-bottom));height:110px;pointer-events:none}.joystick{position:absolute;left:23px;bottom:0;width:104px;height:104px;border:1px solid #79ddff45;border-radius:50%;background:radial-gradient(circle,#162a4266,#07101d88);pointer-events:auto;box-shadow:inset 0 0 25px #50ceff0c}.joystick:before,.joystick:after{content:"";position:absolute;background:#72dbff18}.joystick:before{left:50%;top:10px;bottom:10px;width:1px}.joystick:after{top:50%;left:10px;right:10px;height:1px}.joystick i{position:absolute;left:32px;top:32px;width:40px;height:40px;border-radius:50%;background:linear-gradient(145deg,#3c8ec1,#183656);border:1px solid #83e6ff88;box-shadow:0 0 18px #45d7ff44;transform:translate(0,0)}.joystick span{position:absolute;left:0;right:0;bottom:11px;text-align:center;font-size:7px;letter-spacing:1px;color:#63859e}.actions{position:absolute;right:20px;bottom:2px;width:202px;height:106px;pointer-events:auto}.action{position:absolute;border-radius:50%;border:1px solid #ffffff26;background:linear-gradient(145deg,#172844dd,#091325e8);box-shadow:0 8px 24px #0008;color:white}.action:active,.action.active{transform:scale(.93);filter:brightness(1.45)}.action span,.action b{display:block}.action span{font-size:18px}.action b{font-size:7px;letter-spacing:.6px}.action.fire{width:74px;height:74px;right:0;bottom:1px;border-color:#ff5d8299;box-shadow:0 0 22px #ff4b6b22}.action.fire span{color:var(--red)}.action.boost{width:58px;height:58px;right:79px;top:0;border-color:#6adfff88}.action.boost span{color:var(--cyan)}.action.mine{width:54px;height:54px;left:0;bottom:0;border-color:#ffd56a77}.action.mine span{font-size:10px;color:var(--gold);font-weight:900}.keyboard-help{position:fixed;z-index:4;left:50%;bottom:18px;transform:translateX(-50%);padding:7px 11px;border-radius:4px;font-size:8px;color:#8095ad;white-space:nowrap}.keyboard-help b{color:#d4e8f5}.admin-open{position:fixed;z-index:6;right:14px;bottom:14px;border:1px solid #9c75ff55;background:#100c24bb;color:#a990ff;border-radius:3px;padding:6px 8px;font-size:7px;letter-spacing:1px}.modal-backdrop{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:18px;background:rgba(2,5,14,.78);backdrop-filter:blur(10px);touch-action:auto}.welcome,.admin-panel{position:relative;width:min(430px,100%);padding:27px;border-radius:10px;text-align:center}.welcome h1{font:34px Georgia;margin:8px 0;color:white}.welcome p{color:#9dafc3;line-height:1.55}.welcome p b{color:var(--green)}.welcome label,.admin-panel label{display:block;text-align:left;font-size:8px;letter-spacing:1.2px;color:#8499b2;margin:14px 0 6px}.welcome input,.admin-panel input,.admin-panel select{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid #70dfff36;background:#07101f;color:white;border-radius:4px;outline:none}.welcome input:focus,.admin-panel input:focus,.admin-panel select:focus{border-color:var(--cyan)}.welcome button,.grant{width:100%;margin:12px 0;padding:12px;border:1px solid #70e5ff;background:linear-gradient(90deg,#266bd5,#22a9c7);color:white;border-radius:4px;font-weight:900;letter-spacing:1px}.welcome>span{font-size:8px;color:#61758e}.planet-mark{width:74px;height:74px;margin:0 auto 15px;border:1px solid #75dfff88;border-radius:50%;position:relative;box-shadow:inset -15px -8px 28px #6833c577,0 0 35px #4bdcff22}.planet-mark:after{content:"";position:absolute;left:-19px;right:-19px;top:34px;height:9px;border:2px solid var(--cyan);border-radius:50%;transform:rotate(-14deg);box-shadow:0 0 15px #5cdfff55}.admin-panel{text-align:left;width:min(480px,100%)}.admin-panel h2{font:28px Georgia;margin:7px 0}.admin-panel p{color:#91a5ba;line-height:1.5}.close{position:absolute;right:12px;top:10px;border:0;background:transparent;color:#a7b9cb;font-size:26px}.grant{border-color:#ad8aff;background:linear-gradient(90deg,#5637b5,#8961e7)}.audit{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.audit ul{list-style:none;padding:0;margin:7px 0 0;max-height:90px;overflow:auto}.audit li{padding:5px 0;color:#8ea3b8;font-size:9px;border-bottom:1px solid #ffffff0b}
/* Keep the flight controls visible with mouse as well as touch. This makes the
   first launch self-explanatory and gives desktop players a reliable fallback
   when the game canvas does not yet have keyboard focus. */
@media (pointer:fine){.touch-controls{display:block}.objective{bottom:130px}}
@media (max-width:760px){.topbar{left:7px;right:7px}.brand strong{font-size:13px}.server span,.server b{display:none}.vitals{left:7px;top:76px;width:190px;padding:9px}.callsign{margin-bottom:5px}.callsign strong{font-size:14px}.chips{margin-top:6px}.radar{right:7px;top:76px;width:142px;padding:6px}.radar>div span{display:none}#minimap{width:128px;height:82px}.leaderboard{display:none}.objective{left:7px;bottom:calc(126px + env(safe-area-inset-bottom));width:228px;padding:9px 11px}.objective strong{font-size:14px}.keyboard-help{display:none}.admin-open{top:170px;bottom:auto;right:7px}.toast{top:168px;max-width:82%;text-align:center;font-size:10px}.flag-banner{top:74px}.welcome{padding:22px}.welcome h1{font-size:28px}}
@media (max-height:600px){.objective{display:none}.vitals .hull,.vitals #fallback{display:none}.joystick{width:88px;height:88px}.joystick i{left:27px;top:27px;width:34px;height:34px}.touch-controls{height:90px}.actions{transform:scale(.85);transform-origin:right bottom}}

/* Installed/mobile shell: respect notches, prevent browser gestures, and preserve tap targets. */
:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}
html,body{height:100dvh;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}
button{touch-action:manipulation}
input,select{-webkit-user-select:text;user-select:text;touch-action:manipulation}
.topbar{left:max(14px,var(--safe-left));right:max(14px,var(--safe-right));top:max(10px,var(--safe-top))}
.vitals{left:max(14px,var(--safe-left));top:calc(max(10px,var(--safe-top)) + 72px)}
.radar{right:max(14px,var(--safe-right));top:calc(max(10px,var(--safe-top)) + 72px)}
.leaderboard{right:max(14px,var(--safe-right));top:calc(max(10px,var(--safe-top)) + 232px)}
.objective{left:max(14px,var(--safe-left));bottom:calc(130px + var(--safe-bottom))}
.touch-controls{bottom:max(10px,var(--safe-bottom));left:var(--safe-left);right:var(--safe-right)}
.joystick{left:23px;touch-action:none}
.actions{right:20px;touch-action:none}
.action,.icon-button,.admin-open,.close{min-width:44px;min-height:44px}
.admin-open{right:max(14px,var(--safe-right));bottom:max(14px,var(--safe-bottom))}
.topbar .admin-open{position:static;right:auto;top:auto;bottom:auto;margin-left:10px;color:#b69aff;font-size:15px}
.sound-button{color:var(--cyan);transition:color .16s ease,opacity .16s ease,box-shadow .16s ease}.sound-button[aria-pressed="true"]{box-shadow:inset 0 0 12px #70e5ff20;color:#dffaff}.sound-button[aria-pressed="false"]{color:#66788a;opacity:.74}
.modal-backdrop{padding:max(18px,var(--safe-top)) max(18px,var(--safe-right)) max(18px,var(--safe-bottom)) max(18px,var(--safe-left));overflow:auto;-webkit-overflow-scrolling:touch}
.welcome,.admin-panel{max-height:calc(100dvh - max(36px,var(--safe-top)) - max(36px,var(--safe-bottom)));overflow:auto}
.connection-banner{position:fixed;z-index:30;left:50%;top:calc(max(10px,var(--safe-top)) + 68px);transform:translateX(-50%);display:flex;align-items:center;gap:8px;width:max-content;max-width:calc(100% - var(--safe-left) - var(--safe-right) - 24px);padding:7px 8px 7px 10px;border:1px solid #ff557e66;border-radius:6px;background:#24101aea;box-shadow:0 10px 30px #0008;font-size:8px;font-weight:900;letter-spacing:.8px}
.connection-banner i{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:var(--red);box-shadow:0 0 10px var(--red)}
.connection-banner span{min-width:0;line-height:1.3}.connection-banner button{min-height:44px;flex:0 0 auto;border:1px solid #ff789666;border-radius:4px;background:#3c1623;color:#ffdce5;padding:0 9px;font-size:8px;font-weight:900}
.connection-banner.update{border-color:#70e5ff66;background:#091527ed}
.connection-banner.update i{background:var(--cyan);box-shadow:0 0 10px var(--cyan)}
.rotate-hint{display:none;position:fixed;z-index:3;left:50%;bottom:calc(134px + var(--safe-bottom));transform:translateX(-50%);align-items:center;gap:7px;padding:7px 10px;border-radius:5px;pointer-events:none;white-space:nowrap}
.rotate-hint span{font-size:18px;color:var(--cyan)}
.rotate-hint b{font-size:8px;letter-spacing:1px}.rotate-hint small{font-size:7px}
@media (any-pointer:coarse){.touch-controls{display:block}.keyboard-help{display:none}}
@media (max-width:760px){.topbar{left:max(7px,var(--safe-left));right:max(7px,var(--safe-right))}.vitals{left:max(7px,var(--safe-left));top:calc(max(10px,var(--safe-top)) + 66px)}.radar{right:max(7px,var(--safe-right));top:calc(max(10px,var(--safe-top)) + 66px)}.objective{left:max(7px,var(--safe-left));bottom:calc(126px + var(--safe-bottom))}.topbar .admin-open{position:static;right:auto;top:auto;bottom:auto;margin-left:6px}.flag-banner{top:calc(max(10px,var(--safe-top)) + 64px)}}
@media (orientation:portrait) and (max-width:600px){.rotate-hint{display:flex}.rotate-hint small{display:none}.radar{display:none}.objective{width:min(228px,calc(100vw - 14px - var(--safe-left) - var(--safe-right)))}.actions{right:10px}.joystick{left:10px}}
@media (max-width:390px){.actions{right:4px;transform:none;width:208px}.actions .fire{width:62px;height:62px;right:0}.actions .boost{width:48px;height:48px;right:64px}.actions .bomb{width:48px;height:48px;right:64px}.actions .mine{width:48px;height:48px;right:114px}.actions .warp{width:48px;height:48px;right:160px}.joystick{left:0;transform:none}.vitals{width:176px}.brand small{display:none}.topbar .icon-button{width:44px;margin-left:3px}.topbar .server{gap:2px}}
@media (max-height:600px){.touch-controls{height:94px}.joystick{left:12px}.actions{right:12px}.rotate-hint{display:none}.welcome,.admin-panel{padding:16px}.welcome .planet-mark{display:none}.welcome h1{font-size:24px;margin:4px 0}.welcome p{margin:6px 0}.welcome label{margin-top:8px}}

/* v1.2 tactical map and heading-oriented mobile steering. */
#minimap{cursor:pointer;touch-action:manipulation}
#minimap:hover,#minimap:focus-visible{border-color:#70e5ffaa;box-shadow:0 0 16px #70e5ff33;outline:none}
.tactical-map{position:fixed;z-index:45;inset:0;padding:max(18px,var(--safe-top)) max(18px,var(--safe-right)) max(18px,var(--safe-bottom)) max(18px,var(--safe-left));display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:10px;background:rgba(2,6,16,.82);backdrop-filter:blur(8px);touch-action:manipulation}
.tactical-map header{display:flex;align-items:center;justify-content:space-between;max-width:1100px;width:100%;margin:auto}
.tactical-map h2{margin:2px 0 0;font:24px Georgia;color:#fff;letter-spacing:2px}
.map-close{width:48px;height:48px;border:1px solid #70e5ff66;border-radius:50%;background:#0b1729dd;color:#dffaff;font-size:28px}
.tactical-stage{min-height:0;height:100%;width:min(1100px,100%);margin:auto;display:grid;place-items:center}
#tacticalCanvas{display:block;max-width:100%;max-height:100%;border:1px solid #70e5ff55;border-radius:8px;background:#040a16;box-shadow:0 22px 70px #000b,0 0 30px #70e5ff15;touch-action:manipulation}
.map-legend{display:flex;justify-content:center;gap:9px 18px;flex-wrap:wrap;font-size:9px;font-weight:900;letter-spacing:.7px}.map-legend .you{color:var(--cyan)}.map-legend .pilot{color:#ff7896}.map-legend .base{color:#72a8ff}.map-legend .portal{color:#ad82ff}.map-legend .wall{color:#7897b4}.map-legend .flag{color:var(--gold)}
.tactical-map>p{margin:0;text-align:center;color:#8da5ba;font-size:9px}
.steering{position:absolute;left:23px;bottom:0;width:200px;height:132px;pointer-events:auto}
.steering .joystick{left:0;bottom:0}
.steering-mode{position:absolute;left:112px;top:36px;z-index:3;width:82px;min-height:44px;border:1px solid #70e5ff88;border-radius:22px;background:#09172a;color:var(--cyan);font-size:7px;font-weight:900;letter-spacing:1px;touch-action:manipulation;pointer-events:auto;box-shadow:0 6px 18px #0008}
.steering-mode[aria-pressed="true"]{border-color:#ffd56a66;color:var(--gold)}
@media (orientation:portrait) and (max-width:600px){.steering{left:10px}.steering .joystick{left:0}.radar{display:block;top:auto;right:max(7px,var(--safe-right));bottom:calc(142px + var(--safe-bottom));width:116px}.radar>div{margin-bottom:3px}.radar>div span{display:none}.radar small{font-size:6px}#minimap{width:102px;height:64px}}
@media (max-width:390px){.steering{left:4px;width:104px;transform:none}.steering .joystick{transform:none}.steering-mode{left:0;top:-46px;width:104px;min-height:44px}.radar{width:108px}#minimap{width:94px}}
@media (max-height:600px){.steering{left:12px;height:116px}.steering .joystick{left:0}.steering-mode{top:27px}.tactical-map{gap:6px}.tactical-map h2{font-size:18px}.tactical-map>p{display:none}}

/* Server-gated special equipment: visible discovery, zero speculative inputs. */
.arsenal-open{position:fixed;z-index:7;right:max(20px,var(--safe-right));bottom:calc(132px + var(--safe-bottom));min-width:112px;min-height:44px;border-radius:22px;color:#d8c5ff;font-size:8px;font-weight:900;letter-spacing:1.2px;touch-action:manipulation}
.arsenal-open span{color:#b69aff;font-size:14px;margin-right:5px}
.arsenal-backdrop{position:fixed;z-index:48;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:12px max(12px,var(--safe-right)) max(12px,var(--safe-bottom)) max(12px,var(--safe-left));background:#02050e99;backdrop-filter:blur(5px);touch-action:manipulation}
.arsenal-panel{position:relative;width:min(720px,100%);max-height:min(72dvh,610px);overflow:auto;padding:18px;border-radius:18px}
.arsenal-panel header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.arsenal-panel h2{margin:3px 0 0;font:26px Georgia,serif;color:#fff}.arsenal-panel header .close{position:static;flex:0 0 44px}.arsenal-panel>p{margin:7px 0 14px;color:#91a8bb;font-size:10px;line-height:1.45}
.arsenal-grid{display:grid;grid-template-columns:repeat(4,minmax(112px,1fr));gap:8px}
.arsenal-grid button{position:relative;min-height:98px;padding:10px 8px;border:1px solid #715fa15c;border-radius:12px;background:linear-gradient(145deg,#11182bdd,#080d19ed);color:#d8eaff;text-align:center}
.arsenal-grid button>span,.arsenal-grid button>b,.arsenal-grid button>small{display:block}.arsenal-grid button>span{height:30px;color:#c19dff;font-size:25px;line-height:28px}.arsenal-grid button>b{font-size:9px;letter-spacing:1px}.arsenal-grid button>small{margin-top:4px;color:#8091a4;font-size:7px;letter-spacing:.4px}
.arsenal-grid button:disabled{opacity:.48;filter:saturate(.45)}.arsenal-grid button:disabled:after{content:"NO PUBLICADO";position:absolute;top:5px;right:5px;color:#768393;font-size:5px;letter-spacing:.5px}.arsenal-grid button:not(:disabled){border-color:#b89aff;box-shadow:inset 0 0 18px #9c75ff18,0 0 14px #9c75ff12}.arsenal-grid button:not(:disabled):active{transform:scale(.96);filter:brightness(1.25)}
.arsenal-status{margin-top:11px;padding:8px 10px;border:1px solid #78649a44;border-radius:8px;color:#9cabc0;background:#070d19aa;font-size:8px;letter-spacing:.5px}
@media (max-width:600px){.arsenal-grid{grid-template-columns:repeat(2,minmax(118px,1fr))}.arsenal-panel{padding:15px}.arsenal-panel h2{font-size:22px}.arsenal-open{right:max(12px,var(--safe-right))}.radar{bottom:calc(190px + var(--safe-bottom))!important}}
@media (max-height:520px) and (orientation:landscape){.arsenal-panel{max-height:94dvh}.arsenal-grid{grid-template-columns:repeat(7,minmax(78px,1fr))}.arsenal-grid button{min-height:76px;padding:6px 4px}.arsenal-grid button>span{height:24px;font-size:20px}.arsenal-panel>p{margin:3px 0 8px}}

/* v29 communications: a compact desktop drawer and a thumb-friendly mobile sheet. */
.social-open{position:relative;font-size:16px}.social-open b{position:absolute;right:-4px;top:-5px;min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;border:1px solid #06101d;border-radius:9px;background:var(--red);color:#fff;font-size:7px;box-shadow:0 0 10px #ff557e88}
.social-backdrop{position:fixed;z-index:49;inset:0;display:flex;align-items:stretch;justify-content:flex-end;padding:max(8px,var(--safe-top)) max(8px,var(--safe-right)) max(8px,var(--safe-bottom)) 8px;background:#02050e88;backdrop-filter:blur(5px);touch-action:manipulation}
.social-panel{width:min(440px,100%);min-height:0;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);padding:16px;border-radius:16px;overflow:hidden}
.social-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.social-panel h2{margin:3px 0 0;font:26px Georgia,serif}.social-panel header .close{position:static;flex:0 0 44px}
.social-server-state{display:flex;align-items:center;gap:7px;margin:9px 0;padding:8px 10px;border:1px solid #5c789744;border-radius:8px;background:#050c18bb;color:#96abc0;font-size:8px;font-weight:800;letter-spacing:.7px}.social-server-state i{width:7px;height:7px;border-radius:50%;background:var(--red);box-shadow:0 0 8px var(--red)}.social-server-state.online i{background:var(--green);box-shadow:0 0 8px var(--green)}
.social-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:9px}.social-tabs button{min-height:40px;border:1px solid #53708d55;border-radius:8px;background:#081223;color:#8198ae;font-size:8px;font-weight:900;letter-spacing:1.1px}.social-tabs button[aria-selected="true"]{border-color:#70e5ff88;background:#10243a;color:var(--cyan);box-shadow:inset 0 -2px var(--cyan)}
.social-pane{min-height:0;display:grid}.social-pane .empty{padding:18px;text-align:center;color:#70869b;font-size:9px}
#socialChatPane{grid-template-rows:minmax(0,1fr) auto}.chat-messages{min-height:140px;overflow:auto;overscroll-behavior:contain;margin:0 0 9px;padding:2px;list-style:none}.chat-messages li:not(.empty){margin:0 0 6px;padding:8px 10px;border-left:2px solid #708ba8;border-radius:3px 8px 8px 3px;background:#07101e}.chat-messages li.frequency{border-color:var(--cyan)}.chat-messages li.private{border-color:#c59cff}.chat-messages li.team{border-color:#4f9cff}.chat-messages header{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px;color:#7890a8;font-size:7px;font-weight:800;letter-spacing:.5px}.chat-messages b{color:#dff6ff}.chat-messages p{margin:0;color:#d0deea;font-size:11px;line-height:1.42;overflow-wrap:anywhere}
.chat-compose{display:grid;grid-template-columns:1fr 1fr auto;gap:7px;padding-top:9px;border-top:1px solid var(--line)}.chat-compose label,.frequency-form label{color:#8297ad;font-size:7px;font-weight:900;letter-spacing:1px}.chat-compose select,.chat-compose input,.frequency-form input{display:block;width:100%;height:40px;margin-top:4px;padding:0 9px;border:1px solid #58759166;border-radius:6px;background:#050d19;color:#edf9ff;outline:none}.chat-compose select:focus,.chat-compose input:focus,.frequency-form input:focus{border-color:var(--cyan)}.chat-compose .chat-text{grid-column:1/3}.chat-compose button,.frequency-form button,.social-mode-actions button,.social-pilot-list button{min-height:40px;border:1px solid #70e5ff77;border-radius:7px;background:#10243a;color:var(--cyan);font-size:8px;font-weight:900;letter-spacing:.7px}.chat-compose>button{grid-row:2;grid-column:3;padding:0 13px;align-self:end}
#socialPilotsPane{grid-template-rows:auto auto minmax(0,1fr)}.frequency-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:7px}.frequency-form button{padding:0 13px}.social-mode-actions{min-height:0;margin:9px 0}.social-mode-actions .mode-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid #b58cff55;border-radius:8px;background:#160f2aaa;color:#cfc0e5;font-size:9px}.social-mode-actions button{border-color:#b58cff77;color:#d9c4ff;padding:0 10px}
.social-pilot-list{min-height:0;overflow:auto;overscroll-behavior:contain;margin:0;padding:0;list-style:none}.social-pilot-list>li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:8px 2px;border-top:1px solid #ffffff10}.social-pilot-list .pilot-copy{min-width:0}.social-pilot-list strong,.social-pilot-list small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.social-pilot-list strong{font-size:10px}.social-pilot-list small{margin-top:2px;color:#758ba0;font-size:7px}.social-pilot-list button{min-width:72px;padding:0 7px}.social-pilot-list button.attach{border-color:#b58cff77;color:#d8c5ff}.social-pilot-list button:disabled{opacity:.38}.social-pilot-list .self{color:var(--green)}
@media (max-width:600px){.social-backdrop{align-items:flex-end;padding:0}.social-panel{width:100%;height:min(82dvh,690px);padding:14px max(14px,var(--safe-right)) max(14px,var(--safe-bottom)) max(14px,var(--safe-left));border-radius:19px 19px 0 0}.social-panel h2{font-size:22px}.social-pilot-list>li{grid-template-columns:minmax(0,1fr) auto}.social-pilot-list button{min-width:82px}.social-pilot-list button.attach{grid-column:2}.social-open{margin-left:6px}.chat-messages{min-height:100px}}
@media (max-height:520px) and (orientation:landscape){.social-panel{width:min(520px,62vw);height:100%;padding:10px}.social-panel h2{font-size:19px}.social-server-state{margin:5px 0}.social-tabs{margin-bottom:5px}.chat-compose{padding-top:5px}.chat-messages li:not(.empty){padding:5px 8px}}

/* v30 server-owned ship systems and EMP telemetry. */
.systems-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:16px 2px 8px;padding-top:13px;border-top:1px solid var(--line)}.systems-heading span{color:#73879b;font-size:7px;text-align:right}
.systems-grid{display:grid;grid-template-columns:repeat(5,minmax(102px,1fr));gap:7px}.systems-grid button{position:relative;min-height:78px;padding:8px 6px;border:1px solid #536b8455;border-radius:10px;background:#080f1ddd;color:#b7c7d6;text-align:center}.systems-grid button>span,.systems-grid button>b,.systems-grid button>small{display:block}.systems-grid button>span{height:25px;color:#7695af;font-size:21px}.systems-grid button>b{font-size:8px;letter-spacing:.8px}.systems-grid button>small{margin-top:4px;color:#6f8192;font-size:6px;letter-spacing:.7px}.systems-grid button:disabled{opacity:.45}.systems-grid button[aria-pressed="true"]{border-color:#70e5ffaa;background:linear-gradient(145deg,#123049,#091624);color:#effcff;box-shadow:inset 0 0 17px #70e5ff1c,0 0 13px #70e5ff18}.systems-grid button[aria-pressed="true"]>span,.systems-grid button[aria-pressed="true"]>small{color:var(--cyan)}.systems-grid button.pending{animation:system-pulse .75s ease-in-out infinite alternate}.systems-grid button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.emp-status{display:flex;align-items:center;gap:8px;margin-top:9px;padding:9px 10px;border:1px solid #63758a44;border-radius:8px;background:#080e19;color:#8295a8;font-size:8px;letter-spacing:.7px}.emp-status i{width:8px;height:8px;border-radius:50%;background:#5d7183}.emp-status.active{border-color:#ff557e88;background:#2a0d18;color:#ffd9e2;box-shadow:inset 0 0 18px #ff557e16}.emp-status.active i{background:var(--red);box-shadow:0 0 12px var(--red)}.emp-status.active b{color:#ff7896}
@keyframes system-pulse{to{filter:brightness(1.35)}}
@media (max-width:600px){.arsenal-panel{max-height:82dvh}.systems-heading{align-items:start;flex-direction:column;gap:3px}.systems-heading span{text-align:left}.systems-grid{grid-template-columns:repeat(2,minmax(118px,1fr))}.systems-grid button{min-height:70px}.emp-status{position:sticky;bottom:0;z-index:2}}
@media (max-height:520px) and (orientation:landscape){.systems-grid{grid-template-columns:repeat(5,minmax(72px,1fr))}.systems-grid button{min-height:65px}.systems-heading{margin-top:8px;padding-top:7px}.emp-status{padding:6px 8px}}

/* v32 minimum mobile tap targets. */
.social-tabs button,.chat-compose select,.chat-compose input,.frequency-form input,.chat-compose button,.frequency-form button,.social-mode-actions button,.social-pilot-list button{min-height:44px}
