@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');
:root{font-family:'IBM Plex Mono',monospace;color:#d8e2df;background:#101819;font-size:11px;--accent:#c4ed8b;--dim:#83918d;--border:#4b5a514f}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--border);background:#27322e;padding:10px 13px}button:hover{border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.38;cursor:default}button.active{border-color:var(--accent);background:#455334}button:focus-visible,input:focus-visible{outline:2px solid var(--accent)}[hidden]{display:none!important}#viewport{position:absolute;inset:0}canvas{display:block}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 160px #030a0a75}header{height:76px;position:absolute;inset:0 0 auto;background:#111a1bed;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 28px;gap:50px}.brand{display:flex;align-items:center;gap:12px;color:var(--accent);text-decoration:none;font-size:34px}.brand span{font-family:'Barlow Condensed',sans-serif;font-size:25px;font-weight:700;letter-spacing:2px;color:#eff2e9}.brand small{display:block;font:8px 'IBM Plex Mono',monospace;letter-spacing:2px;color:#8d9d95;margin-top:3px}.mission{display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:1px;color:#a8b2ac}.dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px #c4ed8b80}.resources{margin-left:auto;display:flex;gap:35px}.resources>span{font-size:18px;color:var(--accent)}.resources b{color:#e8eee5;font-weight:500}.resources small{display:block;font-size:8px;color:var(--dim);letter-spacing:1.4px;margin-top:4px;margin-left:18px}.objective{position:absolute;left:28px;top:108px;width:230px;padding:20px;background:#111a1bd9;border:1px solid var(--border);border-top:2px solid #c4ed8b}.eyebrow{font-size:9px;letter-spacing:1.5px;color:var(--accent)}h2,h3{font-family:'Barlow Condensed',sans-serif;margin:10px 0;font-weight:600}h2{font-size:29px}p{color:#99aaa1;line-height:1.8}.timer{font-size:47px;letter-spacing:-3px;color:#f2f4e9;margin-top:20px}.timer span{color:#7a8e75}.timer-caption{font-size:8px;letter-spacing:1.7px;color:#8e9d93}.progress{height:3px;background:#344036;margin:15px 0}.progress i{display:block;width:100%;height:100%;background:var(--accent)}#room-info{color:#b8c6bb;font-size:10px;line-height:1.8}#players{margin-top:12px;max-height:150px;overflow:auto}.player{display:flex;gap:8px;margin:7px 0;color:#afbbb2}.player i{display:inline-block;width:7px;height:7px;margin-top:3px}.objective button{width:100%;margin-top:12px;background:var(--accent);color:#172017;border:0;font-weight:600}.map-label{position:absolute;bottom:228px;right:28px;letter-spacing:2px;color:#b9c4b9;font-size:10px}.map-label span{color:#718078;margin-left:20px;font-size:8px}footer{position:absolute;bottom:0;left:0;right:0;min-height:204px;background:#111a1bf5;border-top:1px solid #60715470;display:flex;padding:18px 24px;gap:24px}.radar-panel{width:226px;flex-shrink:0}.radar-panel canvas{width:224px;height:140px;border:1px solid #64745c}.radar-panel>div{font-size:8px;letter-spacing:1px;margin-top:9px}.radar-panel span{float:right;color:var(--accent)}.selection{width:224px;flex-shrink:0;border-right:1px solid var(--border);padding-right:20px}h3{font-size:23px}.selection p{font-size:9px;line-height:1.5;min-height:25px;margin:0 0 10px}.controls{font-size:8px;line-height:1.8;color:#667970}.controls b{color:#a7b6a9;font-weight:400}.selection button{font-size:9px;margin-top:8px;padding:6px 10px}kbd{color:var(--accent);margin-left:20px}.build-panel{flex:1;min-width:0}.build-head{display:flex;justify-content:space-between;margin:2px 0 14px;gap:15px}.build-head>span{color:#7e9184;font-size:9px}#builds{display:grid;grid-template-columns:repeat(4,minmax(90px,1fr));gap:7px}.build{height:59px;text-align:left;position:relative;padding:9px 10px 8px 40px;background:#1c2725}.build .icon{position:absolute;left:12px;top:16px;font-size:22px;color:#c4ed8b}.build strong{display:block;font-size:10px;font-weight:500}.build small{display:block;margin-top:5px;color:#8b9f8d;font-size:9px}.build kbd{position:absolute;right:7px;top:5px;font-size:8px;color:#677e69;margin:0}#toast{position:absolute;bottom:228px;left:50%;transform:translateX(-50%);background:#19261fec;border:1px solid #b9d98577;padding:12px 22px;color:#d5eabb;opacity:0;transition:opacity .2s;pointer-events:none}#selection-box{display:none;position:absolute;border:1px solid #c4ed8b;background:#c4ed8b16;pointer-events:none}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:#08100ca8;backdrop-filter:blur(5px)}.lobby-card{width:480px;background:linear-gradient(135deg,#202e28f5,#111d1cf7);border:1px solid #52604c;padding:38px;box-shadow:0 35px 120px #0007;border-top:3px solid var(--accent)}h1{font-family:'Barlow Condensed',sans-serif;font-size:59px;line-height:.98;letter-spacing:-1px;font-weight:700;margin:24px 0}h1 em{font-style:normal;color:var(--accent)}.lobby-card p{font-size:11px;margin-bottom:24px}.lobby-card label{display:block;font-size:9px;letter-spacing:1.5px;color:#b1c1b2;margin-top:15px}.lobby-card label span{float:right;font-size:8px;color:#6e8477;letter-spacing:0}.lobby-card input{display:block;width:100%;background:#0f1918;border:1px solid #3d5145;margin-top:8px;padding:12px;color:#e0e8dc;font-size:12px;letter-spacing:1px}.lobby-card>button{width:100%;background:var(--accent);color:#172314;font-weight:600;margin-top:22px;padding:15px;border:0}.lobby-card>button span{float:right}.lobby-foot{font-size:7px;color:#80977f;margin-top:22px;white-space:nowrap;letter-spacing:.5px}.lobby-foot span{padding:0 6px}#lobby-error{color:#f7a48b;margin-top:10px;line-height:1.5}@media(max-width:1050px){header{gap:20px;padding:0 16px}.mission{display:none}footer{gap:14px;padding:14px}.selection{width:165px}.radar-panel{width:170px}.radar-panel canvas{width:168px;height:130px}.build{padding-left:30px}.build .icon{left:7px;font-size:18px}.build strong{font-size:9px}.objective{left:16px;top:92px;width:210px}.build-head>span{display:none}}@media(max-width:720px){.resources{gap:15px}.brand span{font-size:18px}.brand small{font-size:6px}.resources>span{font-size:14px}.radar-panel,.selection{display:none}footer{min-height:170px}.objective{width:180px;padding:12px}.objective h2{font-size:24px}.timer{font-size:35px}.lobby-card{width:min(440px,94vw);padding:25px}h1{font-size:50px}.map-label{bottom:195px}}
footer{min-height:240px}.map-label{bottom:263px}#toast{bottom:265px}.orders{display:flex;align-items:center;gap:7px;margin-top:9px}.orders button{font-size:9px;padding:7px 9px}.orders kbd{margin-left:8px}.orders>span{max-width:205px;font-size:8px;line-height:1.5;color:#83918d}.selection{max-height:212px;overflow:auto}.queue-item{position:relative;padding:6px;margin:3px 0;background:#29362c;font-size:8px;overflow:hidden}.queue-item i{position:absolute;bottom:0;left:0;height:2px;background:#c4ed8b}#production{max-height:78px;overflow:auto}.build{background:linear-gradient(150deg,#2b3530,#17231f);box-shadow:inset 0 1px #d6e5a80a}.objective{box-shadow:inset 0 0 25px #0003}.orders button:hover{background:#354332}@media(max-width:1050px){.orders>span{display:none}}@media(max-width:720px){.orders button{font-size:8px}.orders kbd{margin-left:4px}}
#portrait{float:right;width:74px;height:74px;margin:0 0 7px 8px;border:1px solid #6f7960;background-color:#101a16;box-shadow:inset 0 0 14px #0008;image-rendering:auto}#unit-stats{font-size:8px;color:#c4d1a4;letter-spacing:.4px;line-height:1.7;margin:7px 0;clear:both}.orders{flex-wrap:wrap}.orders>span{max-width:none;flex-basis:100%;font-size:8px}.orders button{padding:6px 8px}.selection h3{font-size:21px}.selection .controls{clear:both}footer{min-height:258px}.map-label{bottom:279px}#toast{bottom:280px}
.objective{max-height:calc(100vh - 390px);overflow:auto}.objective #start{position:sticky;bottom:0;box-shadow:0 0 12px #111a1b}.objective .timer{margin-top:10px}.objective #players{max-height:70px}
#toggle-tech{font-size:9px;padding:5px 9px;margin-top:-5px;color:#c4ed8b;white-space:nowrap}#research-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;min-height:125px}#research-panel button{text-align:left;font-size:10px;line-height:1.7;background:linear-gradient(145deg,#303c32,#17221e);border-top:2px solid #738958}#research-info{grid-column:1/-1;font-size:9px;line-height:1.7;margin:0;color:#b8c3a9}.build-head{align-items:center}.orders button{padding:6px;font-size:8px}.orders kbd{margin-left:5px}
#difficulty-control{display:block;margin-top:12px;color:#b8c8ac;font:11px monospace}#difficulty-control[hidden]{display:none}#difficulty{margin-left:8px;padding:6px;background:#202a25;color:#d9e7cf;border:1px solid #71835b}
/* Classic RTS console: recessed radar, central unit display, 3×3 command card. */
footer{height:236px;min-height:236px;padding:12px 18px;gap:16px;display:grid;grid-template-columns:224px minmax(220px,1fr) 306px;background:linear-gradient(90deg,#30322d,#171b18 23%,#292d27 67%,#34372e);border-top:5px ridge #777a61;box-shadow:0 -5px 0 #0b0f0c,inset 0 3px 0 #9ba08033;color:#d3d4aa}
footer:before,footer:after{content:'';position:absolute;top:6px;width:5px;height:5px;border-radius:50%;background:#adb18e;box-shadow:0 1px 2px #000}footer:before{left:7px}footer:after{right:7px}
.radar-panel{width:224px;background:#101710;border:4px ridge #686d57;padding:5px;height:205px}.radar-panel canvas{width:206px;height:158px;border:1px solid #333d2b}.radar-panel>div{font-size:7px;letter-spacing:0;margin-top:8px;color:#b5bb91}.radar-panel span{font-size:6px}
.selection{display:block;width:auto;max-height:208px;overflow:auto;border:3px ridge #525943;padding:10px 14px;background:radial-gradient(ellipse at center,#223425,#111b14);position:relative}.selection .eyebrow{font-size:8px;color:#889c70;letter-spacing:2px}.selection h3{font-family:'IBM Plex Mono',monospace;font-size:15px;color:#e2e3ba;margin:10px 0}.selection p{color:#96c579;font-size:10px;max-width:75%;min-height:24px}.selection .controls{font-size:7px;line-height:1.6;margin-top:5px;color:#77866b}.selection button{padding:4px 7px;font-size:8px;background:#202a1b;border:2px outset #5d674a;margin:5px 4px 0 0}.selection kbd{margin-left:4px}#portrait{width:74px;height:74px;border:3px ridge #92916c;box-shadow:0 0 0 3px #10160d,inset 0 0 18px #0008;margin:4px 2px 9px 12px}#unit-stats{clear:none;color:#91c976;font-size:9px}#production{display:flex;gap:3px;max-height:34px}.queue-item{flex:1;min-width:0;font-size:7px;padding:4px}footer button:hover{filter:brightness(1.3);border-color:#c1c68d}
.build-panel{width:306px;min-width:0}.build-head{margin:0 0 6px;display:block;height:25px}.build-head>.eyebrow,.build-head>#build-hint{display:none}.command-tabs{display:flex;gap:4px}.command-tabs button,#toggle-tech{flex:1;margin:0;padding:4px 8px;font-size:9px;color:#c3c99e;background:#20251c;border:2px outset #676d51}.command-tabs button.active{background:#414d2d;color:#e4f6b9;border-style:inset}
#builds,.orders,#research-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0;min-height:0}.build-sep{grid-column:1/-1;font-size:6px;letter-spacing:1.5px;text-transform:uppercase;color:#99b08499;text-align:center;border-top:1px solid #4b5a514f;padding-top:3px}.build{height:55px;padding:5px 4px 4px 36px;border:2px outset #62694d;border-radius:0;background:linear-gradient(135deg,#343d27,#141d12);box-shadow:inset 0 0 8px #0008}.build strong{font-size:8px;line-height:1.2;color:#d5dbaf}.build small{font-size:6px;line-height:1.1;margin-top:3px;color:#99b084}.build kbd{top:2px;right:3px;color:#d5d888;font-size:8px}.build .icon{filter:sepia(.2)}
.orders button{height:55px;padding:5px;font-size:9px;border:2px outset #62694d;background:linear-gradient(135deg,#343d27,#141d12);color:#d2dfad}.orders kbd{display:block;margin:5px 0 0;color:#c7da85}.orders>span{display:none}.build-panel:not([data-card="orders"]) .orders{display:none}#research-panel button{height:80px;font-size:9px;padding:6px;border:2px outset #62694d}#research-info{font-size:8px;line-height:1.3;max-height:74px;overflow:auto}.map-label{bottom:252px}#toast{bottom:251px}.objective{max-height:calc(100vh - 350px)}
@media(max-width:1050px){footer{grid-template-columns:176px minmax(170px,1fr) 280px;padding:10px;gap:9px}.radar-panel{width:176px}.radar-panel canvas{width:158px;height:158px}.radar-panel span{display:none}.build-panel{width:280px}.selection{padding:8px}.selection .controls{display:none}.selection p{max-width:100%}}
@media(max-width:720px){footer{grid-template-columns:110px minmax(100px,1fr) 240px;gap:5px;padding:8px 4px}.radar-panel{display:block;width:110px;height:150px;padding:2px}.radar-panel canvas{width:98px;height:110px}.radar-panel>div{font-size:6px}.selection{display:block;padding:5px}.selection h3{font-size:10px}.selection p{font-size:8px}#portrait{float:none;width:60px;height:60px}.build-panel{width:240px}.build{padding-left:32px}.build strong{font-size:7px}.build small{font-size:6px}}

#team-panel{position:absolute;right:16px;top:88px;z-index:12;width:220px;background:#141e19ed;border:1px solid #71805b;padding:10px;color:#cedbb4;font:11px monospace}#team-panel summary{cursor:pointer}#team-panel label,#team-panel small{display:block;margin:8px 0}#team-panel select,#team-panel button{width:100%;margin:3px 0;padding:6px;background:#293429;color:#dceac5;border:1px solid #677853}#team-panel small{line-height:1.5;color:#9ead92}
#wave-banner{position:absolute;top:92px;left:50%;transform:translateX(-50%);padding:10px 26px;background:#2a1210ee;border:1px solid #d05a3a;border-top:3px solid #ff7a4a;color:#ffd9c4;font:13px 'IBM Plex Mono',monospace;letter-spacing:1px;opacity:0;transition:opacity .3s;pointer-events:none;text-align:center;z-index:15;white-space:nowrap}#wave-banner.show{opacity:1}#wave-banner.flash{animation:waveflash .9s 3}#wave-banner b{color:#ffb08a}@keyframes waveflash{50%{background:#5a1c10}}

/* Design review: readable command card at normal desktop scale. */
:root{color-scheme:dark;--hud-text:#e0e8cc;--hud-muted:#b4c3a2;--hud-focus:#d2f69c}
footer{grid-template-columns:180px minmax(210px,1fr) 420px;gap:12px;padding:10px 14px}
.build-panel{width:auto}.radar-panel{width:180px}.radar-panel canvas{width:164px;height:164px}
.build-head{height:30px;margin-bottom:5px}.command-tabs button,#toggle-tech{font-size:12px;min-height:30px}
.build{height:57px;padding:7px 18px 5px 35px}.build strong{font-size:12px;line-height:1.2;color:var(--hud-text)}.build small{font-size:10px;line-height:1.3;color:var(--hud-muted)}.build kbd{font-size:11px}
button:disabled{opacity:.65;cursor:not-allowed}.orders button{font-size:12px;height:57px}.selection h3{font-size:22px}.selection p,#unit-stats{font-size:12px;color:var(--hud-muted)}.selection .controls{font-size:10px;color:var(--hud-muted)}.selection button{font-size:11px;padding:6px 8px}.selection .eyebrow,.radar-panel>div{font-size:10px}#research-panel button{font-size:12px}#research-info{grid-column:1/-1;font-size:11px;max-height:75px}.queue-item{font-size:10px}
@media(max-width:1050px){footer{grid-template-columns:140px minmax(160px,1fr) 360px;gap:8px;padding:10px}.radar-panel{width:140px}.radar-panel canvas{width:126px;height:126px}.build-panel{width:auto}.build strong{font-size:11px}.build small{font-size:9px}.selection .controls{display:none}}
@media(max-width:720px){footer{grid-template-columns:minmax(0,1fr);height:237px;overflow:auto}.build-panel{width:100%}.radar-panel,.selection{display:none}.build strong{font-size:12px}.build small{font-size:10px}.resources{gap:10px}.brand small,.mission{display:none}header{padding:0 8px;gap:8px}.brand span{font-size:16px}.resources>span{font-size:13px}}

/* Design review: keep match actions reachable above the command deck. */
.objective{top:88px;left:16px;width:220px;padding:12px;max-height:calc(100dvh - 335px);overflow-y:auto;overscroll-behavior:contain}.objective h2{font-size:24px;margin:6px 0}.objective p{font-size:12px;line-height:1.45;margin:6px 0}.objective .eyebrow{font-size:10px;letter-spacing:.6px}.timer{font-size:32px;margin-top:8px;letter-spacing:-1px;font-variant-numeric:tabular-nums}.timer-caption{font-size:10px;letter-spacing:.5px}.progress{margin:8px 0}#players{max-height:70px;margin-top:6px}#difficulty-control{display:block;margin-top:8px;font-size:12px}#difficulty{padding:6px;font:inherit}.objective button{min-height:38px;margin-top:8px}#room-info{font-size:11px}#team-panel{max-height:calc(100dvh - 335px);overflow:auto}#team-panel summary{min-height:24px;font-size:13px}#team-panel button,#team-panel select{min-height:36px;font-size:12px}

/* Design review: legible lobby and complete keyboard focus feedback. */
.lobby-card{max-height:calc(100dvh - 32px);overflow:auto;padding:28px;width:min(480px,calc(100vw - 24px))}.lobby-card h1{font-size:44px;margin:16px 0}.lobby-card p{font-size:16px;line-height:1.5;margin-bottom:18px}.lobby-card label{font-size:12px;letter-spacing:.5px}.lobby-card label span{font-size:12px;color:var(--hud-muted)}.lobby-card input{font-size:16px;min-height:44px}.lobby-card>button{font-size:14px;min-height:44px}.lobby-foot{font-size:10px;white-space:normal;line-height:1.5;color:var(--hud-muted)}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--hud-focus);outline-offset:3px}button:active:not(:disabled){filter:brightness(.85)}
@media(prefers-reduced-motion:reduce){#toast{transition:none}}
/* Long unit names and two-resource prices must stay inside their command cell. */
.build strong{font-family:'Barlow Condensed',sans-serif;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.build{padding-top:5px;padding-bottom:3px}.build small{line-height:1.15;margin-top:2px}

/* Mission report rewards support roles alongside combat. */
#result .result-card{width:min(960px,calc(100vw - 24px));text-align:left}
#team-results h2{font-size:20px;color:#e0e8cc;margin:20px 0 12px}
.team-awards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px}
.team-awards>div{background:#18221c;border:1px solid #526345;padding:10px;display:flex;flex-direction:column;gap:5px;overflow-wrap:anywhere}
.team-awards strong{font-size:12px;color:#b9e783;text-transform:uppercase}.team-awards span{font-size:14px}.team-awards b{font-size:22px;color:#e0e8cc}
.results-scroll{overflow-x:auto}.results-scroll table{width:100%;border-collapse:collapse;font-size:13px}.results-scroll th,.results-scroll td{padding:10px 8px;border-bottom:1px solid #43503c;text-align:right}.results-scroll th:first-child{text-align:left;min-width:130px;overflow-wrap:anywhere}.results-scroll thead th{color:#b9e783;font-size:11px}.results-note{font-size:12px!important;color:#b4c3a2;line-height:1.5}
@media(max-width:600px){.team-awards{grid-template-columns:repeat(2,minmax(0,1fr))}#result h1{font-size:30px}}
.waiting-card{width:min(600px,calc(100vw - 24px))}.waiting-card h1{margin-bottom:12px}.waiting-card h2{font-size:16px;color:#b9e783}.waiting-card #waiting-code{letter-spacing:3px;color:#d2f69c;user-select:all}#waiting-roster{list-style:none;padding:0;margin:12px 0;display:grid;gap:6px;max-height:40vh;overflow-y:auto}#waiting-roster li{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#18221c;border:1px solid #43503c}#waiting-roster i{width:12px;height:12px;flex-shrink:0}#waiting-roster span{flex:1;overflow-wrap:anywhere}#waiting-roster small{color:#b4c3a2;white-space:nowrap}.waiting-card #difficulty-control{margin:14px 0}.waiting-card .waiting-help{font-size:12px;color:#b4c3a2}.waiting-card #waiting-status{font-size:14px}

/* Menu redesign: left-docked command console over the live battlefield.
   The rendered 3D scene is the hero visual; scrim only shades the panel side. */
.overlay{place-items:stretch;display:flex;align-items:center;justify-content:flex-start;padding:0 clamp(24px,8vw,130px);background:linear-gradient(90deg,#060c09f0 0%,#060c09d0 40%,#060c0952 72%,#060c0900 100%);backdrop-filter:none}
.lobby-card{position:relative;width:min(430px,calc(100vw - 48px));background:linear-gradient(165deg,#152019f2,#0b1310f5);border:1px solid #3d5145;border-left:3px solid var(--accent);box-shadow:30px 0 90px #000a,inset 0 1px 0 #c4ed8b14;padding:34px 36px}
.lobby-card:before,.lobby-card:after{content:'';position:absolute;width:14px;height:14px;border:0 solid var(--accent);opacity:.55;pointer-events:none}
.lobby-card:before{top:-1px;right:-1px;border-top-width:2px;border-right-width:2px}
.lobby-card:after{bottom:-1px;right:-1px;border-bottom-width:2px;border-right-width:2px}
.lobby-card .eyebrow{font-size:10px;letter-spacing:2.5px}
.lobby-card h1{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:clamp(38px,4.4vw,54px);line-height:.96;letter-spacing:.5px;margin:14px 0 12px;color:#eef4e6;text-transform:uppercase}
.lobby-card h1 em{font-style:italic;color:var(--accent)}
.lobby-card p{font-size:14px;line-height:1.55;color:var(--hud-muted);margin:0 0 4px}
.lobby-card input,.lobby-card select{background:#0a120f;border:1px solid #3d5145;border-left:3px solid transparent;color:#e8eee5;transition:border-color .15s}
.lobby-card input:focus,.lobby-card select:focus{border-left-color:var(--accent)}
.lobby-card select{display:block;width:100%;margin-top:8px;padding:12px;font-size:14px;letter-spacing:.5px}
.lobby-card>button{display:flex;align-items:center;justify-content:space-between;font-family:'Barlow Condensed',sans-serif;font-size:17px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:14px 18px}
.lobby-card>button:hover{filter:brightness(1.08)}
.lobby-card>button span{float:none}
#lobby-error:empty{display:none}
@keyframes console-in{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){.overlay .lobby-card{animation:console-in .45s cubic-bezier(.16,1,.3,1) both}}
@media(max-width:720px){.overlay{justify-content:center;padding:12px;background:#060c09d9}.lobby-card{border-left-width:1px}}

/* HUD unification: the footer console joins the lobby's command-console
   language. Sharp hairline panels, one accent, no bevels or rivets. */
:root{--hud-panel:#0e1714;--hud-panel-hi:#141f1a;--hud-line:#31433a;--hud-cell:#17211c}
footer{background:#0c1412f2;border-top:1px solid var(--hud-line);box-shadow:inset 0 1px 0 #c4ed8b12;color:var(--hud-text)}
footer:before,footer:after{display:none}
.radar-panel{background:#0a120f;border:1px solid var(--hud-line);border-top:2px solid var(--accent);padding:8px}
.radar-panel canvas{border:1px solid #20302a}
.radar-panel>div{color:var(--hud-muted);letter-spacing:1.5px}
.selection{background:var(--hud-panel);border:1px solid var(--hud-line);border-radius:0;padding:12px 16px}
.selection .eyebrow{color:var(--accent);font-size:9px;letter-spacing:2px}
.selection h3{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:20px;letter-spacing:1.5px;text-transform:uppercase;color:#eef4e6}
.selection p{color:var(--hud-muted)}
.selection button{background:var(--hud-cell);border:1px solid var(--hud-line);color:var(--hud-text);padding:5px 9px}
.selection button:hover{border-color:var(--accent);color:var(--accent)}
.selection .controls{color:#77866b}
.selection .controls b{color:var(--hud-muted)}
#portrait{border:1px solid var(--hud-line);box-shadow:inset 0 0 18px #0009}
.command-tabs button,#toggle-tech{background:var(--hud-cell);border:1px solid var(--hud-line);border-bottom-color:transparent;color:var(--hud-muted)}
.command-tabs button:hover{color:var(--accent);border-color:var(--hud-line)}
.command-tabs button.active{background:var(--hud-panel-hi);color:var(--accent);border-bottom:2px solid var(--accent)}
#builds .build,.orders button,#research-panel button{background:var(--hud-cell);border:1px solid var(--hud-line);box-shadow:none;color:var(--hud-text)}
#builds .build:hover,.orders button:hover,#research-panel button:hover{border-color:var(--accent);filter:none}
.build.active,.orders button.active{border-color:var(--accent);background:#22301f}
.build strong{color:var(--hud-text)}
.build small{color:var(--hud-muted)}
.build kbd{color:#8fae72}
.build .icon{color:var(--accent);filter:none}
.orders kbd{color:var(--accent)}
.queue-item{background:#101a15;border:1px solid var(--hud-line)}
.queue-item i{background:var(--accent)}
footer button:hover{filter:none;border-color:var(--accent)}
.objective{background:#0e1714e6;border:1px solid var(--hud-line);border-top:2px solid var(--accent)}
#team-panel{background:#0e1714f2;border:1px solid var(--hud-line);border-top:2px solid var(--accent)}
#team-panel select,#team-panel button{background:var(--hud-cell);border:1px solid var(--hud-line);color:var(--hud-text)}
#toast{border:1px solid #4d6142;background:#0e1714ee;color:#d5eabb}
kbd{color:var(--accent)}

/* Audit pass: mission / alerts / squad panels, drawn resource icons,
   control-group chips, and a legibility floor on HUD chrome. */
.hud-side{position:absolute;left:16px;top:88px;width:238px;display:flex;flex-direction:column;gap:10px;max-height:calc(100dvh - 330px)}
.objective,.squad{position:static;width:auto;background:#111a1bd9;border:1px solid var(--border);box-shadow:inset 0 0 25px #0003}
.objective{border-top:2px solid var(--accent);padding:14px;flex-shrink:0}
.squad{border-top:2px solid var(--hud-line);padding:12px 14px;overflow-y:auto;min-height:0;overscroll-behavior:contain}
.squad .eyebrow{color:var(--hud-muted);letter-spacing:2px}
#room-info{font-size:10px;color:var(--hud-muted);letter-spacing:.4px;line-height:1.6;margin:6px 0}
#players{max-height:112px;overflow-y:auto}
#performance{font:10px 'IBM Plex Mono',monospace;color:var(--hud-muted);margin-top:8px}
#start-invasion{width:100%;margin-top:10px;min-height:38px}

/* Alert feed: pings, core-under-attack and lost allied cores persist here. */
#alerts{display:flex;flex-direction:column;gap:4px}
#alerts:empty{display:none}
.alert{position:relative;display:flex;flex-direction:column;gap:1px;text-align:left;padding:8px 10px 8px 22px;background:#131c18ec;border:1px solid var(--hud-line);font-size:10px;letter-spacing:.6px;color:var(--hud-text);cursor:pointer}
.alert:hover{border-color:var(--accent)}
.alert:before{content:'';position:absolute;left:9px;top:12px;width:6px;height:6px;background:var(--accent)}
.alert small{font-size:9px;letter-spacing:.4px;color:var(--hud-muted)}
.alert.danger{background:#1d1410ec;border-color:#6e3524;color:#ffd9c4}
.alert.danger:before{background:#ff7a4a}
.alert.danger small{color:#c08a72}
.alert.ping:before{background:#7fb4e8}

/* Drawn resource icons replace the shared Unicode dingbats. */
.resources>span{display:grid;grid-template-columns:18px auto;grid-template-rows:auto auto;column-gap:9px;align-items:center;color:#e8eee5}
.res-icon{grid-row:1/3;width:17px;height:17px;stroke:var(--accent);fill:none;stroke-width:1.3;stroke-linejoin:round;stroke-linecap:round}
.resources b{grid-column:2;grid-row:1;font-size:15px;line-height:1;color:#e8eee5}
.resources small{grid-column:2;grid-row:2;font-size:10px;letter-spacing:1.1px;margin:2px 0 0;color:var(--dim)}
.mission{font-size:11px;letter-spacing:1.2px;padding:6px 10px;border:1px solid var(--border);color:#c9d6c4}

/* Control-group chips make Ctrl+number assignments visible. */
#group-chips{display:flex;gap:3px;flex-wrap:wrap;margin:6px 0}
#group-chips:empty{display:none}
.group-chip{width:20px;height:20px;padding:0;font-size:9px;line-height:1;border:1px solid var(--hud-line);background:var(--hud-cell);color:var(--hud-muted)}
.group-chip:disabled{opacity:.28;cursor:default}
.group-chip:not(:disabled){color:var(--accent);border-color:var(--accent)}

/* Session sound toggle lives in the squad panel — a meta control, not combat. */
#sound{width:100%;margin-top:8px;font-size:10px;letter-spacing:.5px;padding:6px 8px;background:var(--hud-cell);border:1px solid var(--hud-line);color:var(--hud-muted)}
#sound:hover{color:var(--accent);border-color:var(--accent)}

/* Legibility floor: no interactive or status text below ~10px. */
.radar-panel>div{font-size:10px;letter-spacing:1px}.radar-panel span{font-size:9px}
.brand small{font-size:9px}
.map-label{font-size:10px}
.timer-caption{font-size:11px}
.objective .eyebrow{font-size:10px}
.selection .controls{font-size:11px;line-height:1.7}
#lobby input::placeholder{color:#93a493;opacity:1}

@media(max-width:1050px){.hud-side{width:200px}}
@media(max-width:720px){.hud-side{left:8px;top:76px;width:180px;max-height:38dvh}.squad{display:none}#alerts{width:180px}}

/* Audit pass 2: finish the text floor — flavor stamps stay ~10px,
   functional text meets the 11px bar where the layout allows it. */
.eyebrow{font-size:10px}
.selection .eyebrow,.squad .eyebrow{font-size:10px}
.map-label span{font-size:10px}
#room-info{font-size:11px}
#sound{font-size:10px}
.build strong{line-height:1.3}
.queue-item{font-size:10px}

/* Ashfall art pass: SC2 unit/upgrade portraits and the terran console texture. */
#research-panel button[data-upgrade]{background-repeat:no-repeat;background-position:left 6px center;background-size:26px 26px;padding-left:36px}
#research-panel button[data-upgrade="weapons"]{background-image:url(ui/weapon.webp),linear-gradient(145deg,#303c32,#17221e)}
#research-panel button[data-upgrade="armor"]{background-image:url(ui/plating.webp),linear-gradient(145deg,#303c32,#17221e)}
#research-panel button[data-upgrade="stim"]{background-image:url(ui/stim.webp),linear-gradient(145deg,#303c32,#17221e)}
.selection{background-image:linear-gradient(#0c1412d9,#0c1412e6),url(ui/terran-panel.webp);background-size:auto,cover;background-position:center}

/* Lobby card and research console pick up the Ashfall terran deck texture. */
.lobby-card{background-image:linear-gradient(#0b1310e8,#0b1310f2),url(ui/terran-deck.webp);background-size:auto,cover;background-position:center}

/* ===== SC2 console HUD — inspired by the marine-split-challenge recreation.
   Bottom command console: control groups + minimap, wireframe selection grid,
   portrait stage, command card with menubar. Eurostile = the SC2 HUD font. */
@font-face{font-family:Eurostile;src:url(fonts/eurostile-reg.otf)}
@font-face{font-family:Eurostile;font-weight:700;src:url(fonts/eurostile-bol.otf)}
@font-face{font-family:'Eurostile Ext';src:url(fonts/eurostileext-reg.otf)}
:root{--sc2-line:#33454e;--sc2-edge:#4d6672;--sc2-cell:#0a1418;--sc2-glow:#58e08b;--sc2-text:#c9d9d6;--sc2-dim:#7e9490}
#viewport{cursor:url(ui/sc2/cursor.png) 5 3,auto}
#wave-chip{position:absolute;left:50%;top:15px;transform:translateX(-50%);font:700 13px Eurostile,'IBM Plex Mono',monospace;letter-spacing:2px;color:#cfe3f5;background:#0a1218e0;border:1px solid var(--sc2-line);border-top:none;padding:5px 16px;border-radius:0 0 5px 5px;white-space:nowrap}
#wave-chip b{color:#fff}
#wave-chip i{font-style:normal;color:#7db8e8;letter-spacing:1px;margin-left:9px}
footer.console{position:absolute;inset:auto 0 0;height:236px;display:grid;grid-template-columns:238px minmax(280px,1fr) 124px minmax(340px,430px);gap:0;padding:0;background:linear-gradient(180deg,#1b2329,#121a1e 12%,#0b1114);border-top:2px solid var(--sc2-edge);box-shadow:0 -16px 42px #000c,inset 0 1px 0 #9fd4ea22;color:var(--sc2-text);font-family:Eurostile,'IBM Plex Mono',monospace}
/* minimap column: control-group row over the radar frame */
.console-map{display:flex;flex-direction:column;padding:9px 12px 11px;border-right:1px solid var(--sc2-line)}
.group-row{display:flex;align-items:center;gap:3px;height:22px;margin-bottom:5px}
#group-chips{display:flex;gap:2px;flex:1;margin:0;flex-wrap:nowrap;min-width:0}
#group-chips:empty{display:flex}
.group-chip{width:19px;height:19px;padding:0;min-width:0;flex-shrink:1;font:700 9px Eurostile;line-height:1;color:#4c6a5a;background:var(--sc2-cell);border:1px solid var(--sc2-line);border-radius:2px}
.group-chip:not(:disabled){color:#9dffb8;border-color:#3f7a52;box-shadow:inset 0 0 7px #2aff7c26}
.group-chip:not(:disabled):hover{background:#12301c}
#console-clock{font:700 13px Eurostile;color:#a9cfe8;letter-spacing:1px;flex-shrink:0}
.radar-panel{flex:1;background:#040a07;border:1px solid var(--sc2-line);border-radius:2px;box-shadow:inset 0 0 20px #000,0 0 0 2px #0d171b;padding:4px;display:flex;flex-direction:column}
.radar-panel canvas{width:100%;height:auto;aspect-ratio:8/5;border:none;flex:1;min-height:0;object-fit:fill}
.radar-panel>div{font:700 9px 'Eurostile Ext';letter-spacing:1.5px;color:#6f8a96;margin-top:4px}
.radar-panel>div span{color:#4f6670}
/* selection: wireframe grid + info text */
.selection{display:flex;flex-direction:column;gap:6px;padding:9px 12px;overflow:hidden;background:linear-gradient(#0c1412d9,#0c1412e6),url(ui/terran-panel.webp);background-size:auto,cover;background-position:center;border-right:1px solid var(--sc2-line)}
.selection .eyebrow{color:#8fd7a8;letter-spacing:2px;font:10px 'Eurostile Ext'}
#wiregrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));grid-auto-rows:42px;gap:4px;min-height:46px;max-height:92px;overflow:hidden;background:#050c09;border:1px solid #1d3327;box-shadow:inset 0 0 24px #000;padding:4px;flex-shrink:0}
#wiregrid:empty{display:none}
.wf-cell{position:relative;padding:0;border:1px solid #1e4630;background:radial-gradient(#0b1c11,#050c08);border-radius:2px;overflow:hidden}
.wf-cell:before{content:'';position:absolute;inset:1px;background:var(--wf) center/contain no-repeat;filter:grayscale(1) sepia(.85) hue-rotate(78deg) saturate(4.4) brightness(1.12)}
.wf-cell:hover{border-color:#7dffa8;box-shadow:0 0 8px #4cff9c33}
.wf-cell b{position:absolute;top:0;right:3px;font:700 10px Eurostile;color:#d9ffbe;text-shadow:0 0 4px #000}
.wf-cell em{position:absolute;left:0;bottom:0;height:3px;background:#52e07a}
.wf-cell em.mid{background:#e0c44f}.wf-cell em.low{background:#e06050}
.sel-text{display:flex;flex-direction:column;gap:2px;min-height:0;overflow:auto;flex:1}
.selection h3{font:700 17px 'Eurostile Ext';letter-spacing:1px;text-transform:uppercase;color:#eef4e6;margin:2px 0}
.selection p{font:11px Eurostile,'IBM Plex Mono',monospace;color:var(--sc2-dim);margin:0}
#unit-stats{font:10px Eurostile,monospace;color:#a8d795;letter-spacing:.5px}
#production{display:flex;gap:5px;flex-shrink:0;min-height:0}
#production:empty{display:none}
.queue-item{position:relative;width:42px;height:42px;flex-shrink:0;background:#050c09;border:1px solid #2c4a34;overflow:hidden}
.queue-item.queued{opacity:.55}
.queue-item .q-ico{position:absolute;inset:2px;background-size:contain;background-position:center;background-repeat:no-repeat}
.queue-item b{position:absolute;right:2px;bottom:0;font:700 9px Eurostile;color:#d6ffb0;text-shadow:0 1px 2px #000}
.queue-item i{position:absolute;left:0;bottom:0;height:3px;background:#58e08b}
.queue-item:first-child{border-color:#58e08b}
#cancel-queue{align-self:flex-start;font-size:9px;padding:4px 8px;margin:0}
.sel-actions{display:flex;gap:5px;margin-top:auto}
.sel-actions button{flex:1;font:10px Eurostile;padding:5px 4px;background:var(--sc2-cell);border:1px solid var(--sc2-line);color:var(--sc2-text)}
.sel-actions button:hover{border-color:var(--sc2-glow);color:var(--sc2-glow)}
.sel-actions kbd{margin-left:3px}
.sel-actions b{color:var(--sc2-glow);font-weight:400}
.selection .controls{font:9px 'IBM Plex Mono',monospace;line-height:1.6;color:#5f7570;margin-top:4px}
#cancel-queue{font-size:9px;padding:4px 7px;background:#1d1010;border:1px solid #5a3232;color:#e8b0a0}
/* portrait stage */
.portrait-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border-right:1px solid var(--sc2-line);padding:10px;background:radial-gradient(#0d1a20,#070d10)}
#portrait{width:96px;height:96px;float:none;margin:0;border:2px solid var(--sc2-edge);border-radius:3px;background-color:#050b0e;background-size:contain;background-position:center;background-repeat:no-repeat;box-shadow:inset 0 0 26px #000,0 0 0 2px #0a1216,0 0 16px #58c4ff1e}
#portrait-tag{font:700 10px 'Eurostile Ext';letter-spacing:2px;color:#9fd0a8;text-transform:uppercase;text-align:center}
/* command card: menubar + 5-col icon grid */
.build-panel{display:flex;flex-direction:column;padding:8px 12px 11px;width:auto}
.menubar{display:flex;gap:4px;margin-bottom:6px}
.menubar button{font:700 10px 'Eurostile Ext';letter-spacing:1px;text-transform:uppercase;padding:5px 12px;background:var(--sc2-cell);border:1px solid var(--sc2-line);border-radius:2px;color:var(--sc2-dim)}
.menubar button:hover{color:#d6ffe4;border-color:#3f7a52}
.menubar button.active{background:#15301d;color:#aef5c0;border-color:#3f7a52;box-shadow:inset 0 0 8px #2aff7c22}
.menubar-gap{flex:1}
#menu-btn{color:#ffd9a0;border-color:#5a4a2e}
#menu-btn:hover{color:#ffe9c4;border-color:#8a6a3a;box-shadow:0 0 8px #ffaa3c22}
#build-hint{font:9px 'Eurostile Ext';letter-spacing:1px;color:#5f7570;margin-bottom:5px;min-height:10px}
#builds,.orders,#research-panel{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;flex:1;align-content:start}
.build{position:relative;height:58px;padding:0;border:1px solid #2c3e46;border-radius:3px;background:radial-gradient(#12201a,#080f0c);box-shadow:inset 0 0 10px #000}
.build .icon{position:absolute;inset:4px;width:auto;height:auto;left:4px;top:4px;background-size:contain;background-position:center;background-repeat:no-repeat}
.build strong{display:none}
.build small{display:block;position:absolute;right:3px;bottom:1px;font:700 9px Eurostile,monospace;color:#ffe2a0;text-shadow:0 1px 3px #000,0 0 6px #0008;letter-spacing:.3px}
.build:disabled small{color:#8f7f63}
.build kbd{position:absolute;top:1px;left:4px;right:auto;font:700 11px Eurostile;color:#e4ffc9;text-shadow:0 0 4px #000}
.build:hover{border-color:#7dffa8;box-shadow:0 0 8px #4cff9c33;filter:none}
.build.active{border-color:var(--sc2-glow);box-shadow:0 0 10px #4cff9c55}
.orders{grid-auto-rows:58px}
.orders button{position:relative;height:58px;padding:0;border:1px solid #2c3e46;border-radius:3px;background:#0a120f;box-shadow:inset 0 0 10px #000}
.orders button img{width:100%;height:100%;object-fit:cover;display:block;border-radius:2px}
.orders kbd{position:absolute;top:1px;left:4px;margin:0;font:700 11px Eurostile;color:#e4ffc9;text-shadow:0 0 4px #000}
.orders button:hover{border-color:#7dffa8;box-shadow:0 0 8px #4cff9c33;filter:none}
.orders button.armed{border-color:#ffb35c;box-shadow:0 0 10px #ff9c4c44}
.orders-hint{grid-column:1/-1;font:9px 'Eurostile Ext';color:#5f7570;align-self:center}
#research-panel{grid-template-columns:repeat(3,1fr)}
#research-panel button{position:relative;height:62px;padding:0;border:1px solid #2c3e46;border-radius:3px;background:radial-gradient(#12201a,#080f0c);box-shadow:inset 0 0 10px #000}
#research-panel button .upg{position:absolute;inset:4px 4px 22px;background:center/contain no-repeat}
#research-panel button span{position:absolute;left:5px;right:5px;bottom:3px;font:9px Eurostile;line-height:1.3;color:#b9d8b0}
#research-panel button:hover{border-color:#7dffa8}
#research-info{grid-column:1/-1;font:9px 'IBM Plex Mono',monospace;color:#8fa89a;margin:0;line-height:1.5}
/* F10 command menu */
.menu-overlay{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(#06100add,#030806f2);z-index:60}
.menu-card{width:min(400px,calc(100vw - 40px))}
.menu-card p{font:12px Eurostile;color:var(--sc2-dim)}
.menu-card .menu-action{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:7px;padding:11px 14px;font:700 14px 'Eurostile Ext';letter-spacing:1.5px;text-transform:uppercase;text-align:left;background:linear-gradient(#152019,#0b1310);border:1px solid #3d5145;color:#dfe9d8}
.menu-card .menu-action span{font:10px Eurostile;color:var(--sc2-dim);letter-spacing:.5px;text-transform:none}
.menu-card .menu-action:hover{border-color:#7dffa8;color:#aef5c0}
.menu-card .menu-action.danger{border-color:#5a3232;color:#e8b0a0}
.menu-card .menu-action.danger:hover{border-color:#e06050;color:#ffb0a0;box-shadow:0 0 10px #e0504022}
.menu-keys{margin-top:12px;font:10px 'IBM Plex Mono',monospace;line-height:1.8;color:#6f857f;border-top:1px solid #2a3a34;padding-top:10px}
.menu-keys b{color:#9fd0a8}
/* console media rules — keep the SC2 layout until real space runs out */
@media(max-width:1150px){footer.console{grid-template-columns:190px minmax(220px,1fr) 0 minmax(300px,360px)}.portrait-panel{display:none}#builds,.orders{grid-template-columns:repeat(4,1fr)}.radar-panel canvas{aspect-ratio:auto}}
@media(max-width:720px){footer.console{grid-template-columns:minmax(0,1fr);height:250px;overflow:auto}.console-map,.portrait-panel,.selection{display:none}#builds,.orders{grid-template-columns:repeat(5,1fr)}}

/* Network diagnostics: host sees one row per guest; a guest sees its own link. */
#net-toggle{width:100%;margin-top:6px;padding:6px 8px;background:var(--hud-cell);border:1px solid var(--hud-line);color:var(--hud-muted);font:10px 'IBM Plex Mono',monospace;letter-spacing:.6px;text-align:left}
#net-toggle span{float:right;color:var(--accent);font-size:9px}
#net-toggle:hover,#net-toggle.active{color:var(--accent);border-color:var(--accent)}
.net-panel{position:absolute;right:16px;bottom:252px;z-index:55;width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 344px);overflow:auto;padding:10px 12px 12px;background:#070f12f5;border:1px solid var(--sc2-line);border-top:2px solid var(--sc2-glow);box-shadow:0 24px 80px #000c,inset 0 1px 0 #9fd4ea18;color:var(--sc2-text);font:11px 'IBM Plex Mono',monospace}
.net-head{display:flex;align-items:center;gap:8px;padding-bottom:7px;border-bottom:1px solid #1f343b}
#net-title{flex:1;font:700 11px 'Eurostile Ext',monospace;letter-spacing:2px;color:#aef5c0;text-transform:uppercase}
#net-close{width:24px;height:24px;padding:0;border:1px solid var(--sc2-line);background:var(--sc2-cell);color:var(--sc2-dim);font:16px/1 'IBM Plex Mono',monospace}
#net-close:hover{color:var(--accent);border-color:var(--accent)}
.net-summary{margin-top:8px;color:var(--accent);font:10px 'Eurostile Ext',monospace;letter-spacing:1px}
.net-table{width:100%;border-collapse:collapse;margin-top:7px;font-variant-numeric:tabular-nums}
.net-table th{padding:4px 5px;border-bottom:1px solid #21363d;color:#6f8a96;font:9px 'Eurostile Ext',monospace;letter-spacing:1px;text-align:left;text-transform:uppercase}
.net-table td{padding:5px;border-bottom:1px solid #14262b;color:#c9d9d6;white-space:nowrap}
.net-table td small{margin-left:6px;color:#6f8a96;font-size:9px}
.net-table th.num,.net-table td.num{text-align:right}
.net-table .warn{color:#e8c56a}
.net-table .bad{color:#ff9d7a}
.net-empty{margin:9px 0 2px;color:var(--sc2-dim);font-size:10px;line-height:1.5}
.net-foot{margin-top:7px;color:#6f8a96;font-size:9px;letter-spacing:.5px}
.net-note{margin:7px 0 0;padding-top:7px;border-top:1px solid #14262b;color:#7e9490;font-size:9px;line-height:1.5}
@media(max-width:720px){.net-panel{left:8px;right:8px;bottom:260px;width:auto;max-height:calc(100dvh - 352px)}}
