#panel.bomber{width:1160px}#panel.bomber.bomber-lobby-view{width:400px}
#bomber-screen{min-width:0}#bomber-lobby{height:382px;display:flex;flex-direction:column;gap:8px}
#bomber-expand{width:100%;flex-shrink:0}#bomber-create-form{display:flex;flex-direction:column;gap:8px;padding:8px;border:1px solid var(--border);border-radius:5px;background:#202020;flex-shrink:0}#bomber-refresh{width:78px;min-height:30px;flex-shrink:0}
#bomber-rooms{flex:1;min-height:44px;overflow:auto;padding:3px;border:1px solid var(--border);border-radius:5px;background:#202020}
#bomber-key-error,#bomber-error{color:#ff9696}#bomber-error{margin:8px 0}#bomber-error:empty{display:none}
.bomber-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.bomber-heading h2{font-size:12px;font-weight:500;overflow-wrap:anywhere}.bomber-heading button{flex-shrink:0}
.bomber-setup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.9fr) minmax(0,1.05fr);gap:10px;min-height:555px}
.bomber-character-column,.bomber-options-column,.bomber-team-column{display:flex;flex-direction:column;gap:10px;min-width:0}
.bomber-policy{display:flex;gap:4px}.bomber-policy button{flex:1;padding:8px 3px;font-size:10px}
.bomber-character-card,.bomber-mode-card,.bomber-map-card,.bomber-ready-card{background:#202020;border:1px solid #464646;border-radius:6px;padding:12px}
.bomber-setup h3{font-size:10px;letter-spacing:1px;font-weight:600;margin:0 0 10px;color:#b8b8b8}
.bomber-character-card{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.bomber-character-card h3{align-self:flex-start}
#bomber-character-preview{width:100%;aspect-ratio:1;object-fit:contain;margin:auto 0}.bomber-character-nav{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%}.bomber-character-nav strong{font-size:14px;text-align:center}.bomber-character-nav button{font-size:20px;padding:4px 12px}#bomber-character-hint{font-size:10px;color:#a2aaa5;margin:12px 0 0;min-height:15px}
#bomber-lock{height:64px;flex-shrink:0;font-weight:700;letter-spacing:2px}.bomber-setup [aria-pressed=true]{background:#494a43;border-color:#ad9872;color:#ffe0a0}
.bomber-teams{display:flex;flex:1;gap:8px;min-height:0}.bomber-teams>section{display:flex;flex:1;min-width:0;flex-direction:column;border:1px solid #485964;border-top:3px solid #65bcff;border-radius:6px;background:#20272b;padding:8px}.bomber-teams>section:nth-child(2){border-top-color:#ff6969;background:#2b2222}.bomber-teams>section:nth-child(3){border-top-color:#6ed591;background:#222b25}.bomber-teams>section>button{margin-top:auto;width:100%;font-size:9px;padding:7px 3px}
.bomber-teams [id^=bomber-roster]{overflow:auto;max-height:460px}.bomber-member{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:10px 0;border-bottom:1px solid #ffffff10}.bomber-member img{width:44px;height:44px;object-fit:contain}.bomber-member>div{flex:1;min-width:0}.bomber-member strong{display:block;font-size:10px;overflow-wrap:anywhere}.bomber-member small{font-size:9px;color:#c1c6bf;display:block;margin-top:5px}.bomber-member .bomber-member-actions{flex-basis:100%;display:flex;flex-wrap:wrap;gap:4px}.bomber-member-actions button{font-size:8px;padding:4px;flex:1}
#bomber-swaps:empty{display:none}#bomber-swaps{padding:10px;background:#333129;border:1px solid #ad9872;border-radius:5px}#bomber-swaps p{font-size:11px;margin:0 0 8px}#bomber-swaps button{margin-right:6px;font-size:10px}
.bomber-mode-card{flex:1}#bomber-game-modes{display:grid;grid-template-columns:1fr 1fr;gap:4px}#bomber-game-modes button{font-size:10px;padding:6px 3px}#bomber-game-modes button:last-child{grid-column:1/-1}
.bomber-settings-row{display:flex;gap:6px;margin-top:12px}.bomber-settings-row label{flex:1;min-width:0;font-size:9px;display:flex;flex-direction:column;gap:5px}.bomber-settings-row select{min-width:0;width:100%;font:inherit;color:#ddd;background:#292929;padding:6px 3px;border:1px solid #555;border-radius:4px}#bomber-limit-field{display:flex;align-items:center;gap:8px;font-size:9px;margin-top:8px}#bomber-limit{width:60px}
#bomber-maps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}#bomber-maps button{min-width:0;padding:4px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:9px}#bomber-maps img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:3px}.bomber-random{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;font-size:30px}
.bomber-ready-card{min-height:76px}#bomber-ready-count{font-size:10px;color:#bcbcb5;margin:0 0 10px}.bomber-ready-card>div{display:flex;gap:6px}.bomber-ready-card button{flex:1}#bomber-start{background:#dbb36a;color:#211e17;font-weight:700}
@media(max-width:850px){.bomber-setup{grid-template-columns:minmax(0,1fr) minmax(0,2fr);min-height:0}.bomber-options-column{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.bomber-ready-card{grid-column:1/-1}.bomber-teams [id^=bomber-roster]{max-height:350px}#bomber-character-preview{max-height:250px}}
@media(max-width:500px){.bomber-setup{display:flex;flex-direction:column}.bomber-character-card{min-height:200px}#bomber-character-preview{width:170px;height:170px;margin:0}.bomber-character-column{gap:6px}#bomber-lock{height:36px}.bomber-teams>section{min-height:160px}.bomber-options-column{gap:6px}.bomber-mode-card,.bomber-map-card{padding:8px}.bomber-heading{align-items:flex-start}.bomber-heading h2{font-size:10px}.bomber-heading button{font-size:9px}/* VISITORS watch the room and match without player controls. */
.bomber-visitor :is(#bomber-lock,#bomber-ready,#bomber-start,.bomber-character-nav button,.bomber-touch){visibility:hidden}}
.bomber-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}
#bomber-player{font-weight:700;color:#e7bd6a}
#bomber-status{font-size:10px;color:#a9d8ba;margin-right:auto}
#bomber-stats{font-size:10px;color:#afbdb6}
.bomber-toolbar button{padding:4px 10px;font-size:10px}
#bomber-viewport{margin:auto;width:min(100%,calc((100dvh - 260px)*1.4));aspect-ratio:35/25;outline:1px solid #4b5b53;background:#26332f}
#bomber-board{width:100%;height:100%;outline-offset:3px}
.bomber-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin:8px}
.bomber-controls p{color:#a2aba8;font-size:11px;line-height:1.7}
.bomber-pad{display:grid;grid-template-columns:repeat(3,34px);grid-template-rows:repeat(2,28px);gap:3px;touch-action:none}
.bomber-pad button{min-height:0;touch-action:none}.bomber-pad button:first-child{grid-column:2}.bomber-pad button:nth-child(2){grid-column:1}
#bomber-bomb{padding:8px 16px;min-height:44px;border-color:#9b7442;color:#efc481;touch-action:manipulation}
#panel.bomber header{height:auto;min-height:37px}#panel.bomber #title{white-space:normal;overflow-wrap:anywhere;padding:7px 0;line-height:1.5}
#bomber-viewport{position:relative;width:min(100%,calc((100dvh - 140px)*var(--arena-ratio,19/15)));aspect-ratio:var(--arena-ratio,19/15);outline:0;overflow:hidden}
#bomber-error:empty{display:none}.bomber-touch{display:none}
#bomber-result{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;background:#10171aaf}
#bomber-result h2{font-size:26px;color:#fff}#bomber-result p{font-size:18px;color:#f5e6c7}#bomber-result-count{font-size:12px!important}#bomber-result>div{display:flex;gap:12px}#bomber-result button{min-width:120px;padding:8px 16px}
@media(pointer:coarse){.bomber-touch{display:flex;position:absolute;bottom:10px;left:10px;right:10px;align-items:end;justify-content:space-between;pointer-events:none;opacity:.75}.bomber-touch button{pointer-events:auto}}
@media(max-width:700px){#bomber-viewport{width:100%}}


.bomber-mode-preview{display:flex;align-items:center;justify-content:center;min-height:90px;padding:10px 0;text-align:center;color:#f3d8ab;font-size:19px}.bomber-choice-nav{display:flex;align-items:center;justify-content:space-between;gap:6px}.bomber-choice-nav button{font-size:20px;min-width:40px;padding:3px 8px}.bomber-choice-nav span,.bomber-choice-nav strong{font-size:11px;text-align:center}.bomber-map-preview{display:flex;align-items:center;justify-content:center;height:160px;margin-bottom:10px}.bomber-map-preview img{height:100%;width:100%;object-fit:contain;border-radius:4px}#bomber-map-random{font-size:90px;color:#d9bd86}.bomber-mode-card{display:flex;flex-direction:column}.bomber-mode-preview{flex:1}
@media(max-width:500px){.bomber-map-preview{height:120px}.bomber-mode-preview{min-height:65px;font-size:15px}}

/* Waiting room: scalable code frames over the five-character illustration. */
#bomber-waiting{position:relative;isolation:isolate;padding:8px;border-radius:12px;background:linear-gradient(#08192de8,#0b203acc),url('/games/bomber/ui/lobby-background.webp?v=cbc1be52cfcb4efe') center/cover;color:#eef4ff}
.bomber-setup{gap:12px;min-height:590px;grid-template-columns:minmax(0,1fr) minmax(0,1.85fr) minmax(0,1.02fr)}
.bomber-setup h3{font-size:17px;letter-spacing:0;color:white;font-weight:800;text-shadow:0 2px 2px #0006}
.bomber-heading{margin:0 0 10px;padding:3px 2px}.bomber-heading h2{font-size:12px;color:#d5e7ff}
.bomber-policy,.bomber-character-card,.bomber-team-column,.bomber-mode-card,.bomber-map-card,.bomber-ready-card{border:3px solid var(--edge);border-radius:14px;box-shadow:inset 0 0 14px #ffffff10,0 3px 7px #0005;padding:12px;background:var(--tint)}
.bomber-policy{--edge:#15dc8b;--tint:linear-gradient(130deg,#074a38e8,#082b2be8);flex-wrap:wrap;gap:6px}
.bomber-policy h3{flex-basis:100%;margin:0 0 3px}.bomber-policy button{font-size:11px;min-height:35px;border:1px solid #568b86;border-radius:9px;background:#163d3d}
.bomber-policy [aria-pressed=true]{border-color:#78ffa7;background:linear-gradient(#219557,#0a6642);color:#fff;box-shadow:0 0 8px #3eff8277}
.bomber-inline-art{width:21px;height:21px;object-fit:contain;vertical-align:middle;margin-right:3px}
.bomber-character-card{--edge:#ff444f;--tint:radial-gradient(ellipse at 50% 80%,#c83d3dcc,#551d2ee8);padding:12px 10px}
#bomber-character-preview{max-height:300px;filter:drop-shadow(0 10px 10px #0004)}
.bomber-character-nav strong{font-size:15px;text-shadow:0 2px 2px #0008}.bomber-character-nav button,.bomber-choice-nav button{border:2px solid #7488a3;border-radius:12px;color:white;background:linear-gradient(#3b506b,#1c2a42);box-shadow:0 3px 2px #0007;font-weight:800;min-width:36px}
#bomber-character-hint{color:#ffdadb;text-align:center;font-size:10px}
#bomber-lock{border:3px solid #ffa62d;border-radius:12px;background:#4b301ee8;height:66px;padding:3px}
.bomber-art-button img{display:block;width:100%;height:100%;object-fit:contain}
#bomber-lock[aria-pressed=true] img,.bomber-art-button:disabled img{filter:grayscale(1) brightness(.78)}
.bomber-art-button:disabled{opacity:1}.bomber-art-button:not(:disabled):hover img{filter:brightness(1.12)}
#bomber-lock[aria-pressed=true]:hover img{filter:grayscale(1) brightness(.95)}
.bomber-team-column{--edge:#168cf8;--tint:linear-gradient(#092b53d9,#11345aa8);gap:12px}
.bomber-team-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.bomber-team-heading h3{margin:0}.bomber-team-heading span{font-size:12px;white-space:nowrap;color:#e2efff}
.bomber-teams{gap:10px}.bomber-teams>section{padding:8px;border:3px solid #278bf4;border-radius:13px;background:linear-gradient(#1852b6c9,#082b54d9)}
.bomber-teams>section:nth-child(2){border-color:#ff484c;background:linear-gradient(#b92839cd,#411c31d9)}
.bomber-teams>section:nth-child(3){border-color:#52de8e;background:linear-gradient(#24674bcd,#123a39d9)}
.bomber-teams>section>h3{font-size:15px;line-height:1.5;margin:2px 0 10px}.bomber-teams>section>button{margin-top:auto;border-color:#8298b466;background:#10223dbb;border-radius:7px;color:#d8eaff;font-size:9px;min-height:30px}
.bomber-member{border:2px solid #667e9b;border-radius:10px;padding:7px 4px;background:linear-gradient(120deg,#213350,#142137);margin-bottom:8px;gap:5px;box-shadow:0 3px 4px #0003}
.bomber-member>img{width:48px;height:48px;border:1px solid #607fa5;border-radius:8px;background:linear-gradient(#738ebf44,#233859)}
.bomber-member strong{font-size:11px;line-height:1.4}.bomber-member small{display:inline-block;border:1px solid #7690a677;border-radius:12px;padding:3px 6px;font-size:9px;color:#bfd2e6;background:#354861}
.bomber-member[data-ready=true] small{background:#087943;color:#c1ffde;border-color:#1ce780}
.bomber-member-actions button{background:#142641;border:1px solid #5e7795;color:#c8ddf4;border-radius:5px;font-size:8px}
.bomber-host-crown{width:17px!important;height:17px!important;vertical-align:middle;margin-left:4px}
.bomber-slot{border:1px dashed #8bb5de77;border-radius:9px;padding:18px 5px;color:#a5bfd9;background:#14253d55;text-align:center;font-size:10px;margin-bottom:8px}


.bomber-mode-card{--edge:#ffda39;--tint:linear-gradient(130deg,#66501bdc,#2a2533ec)}
.bomber-mode-preview{flex-direction:column;gap:4px;min-height:120px;font-size:16px;padding:0 0 8px}
#bomber-mode-art{width:100%;height:100px;object-fit:contain}.bomber-mode-preview strong{font-size:16px}
.bomber-settings-row{margin-top:10px}.bomber-settings-row select{border-color:#9b895d;background:#222b3c;color:#fff}
.bomber-map-card{--edge:#d4e4f5;--tint:linear-gradient(#2c3e53eb,#172738eb)}
.bomber-map-preview{height:145px;border-radius:9px;overflow:hidden;background:#13233a}.bomber-map-preview img{object-fit:cover}#bomber-map-random{object-fit:contain;padding:10px}
.bomber-ready-card{--edge:#b747ff;--tint:linear-gradient(#4c2375ec,#26134eea);padding:10px;min-height:116px}
#bomber-ready-count{color:#e9d7ff;font-size:12px;letter-spacing:.7px;margin:0 0 4px}.bomber-ready-card h3{margin:0 0 5px}
.bomber-ready-card button,#bomber-start{height:62px;padding:0;border:0;background:transparent;border-radius:10px}.bomber-ready-card button[aria-pressed=true]{box-shadow:0 0 0 2px #63f8b5;background:#035e2e33}
#bomber-swaps{font-size:11px;background:#123c5be8;border-color:#71b7ed}
@media(max-width:850px){.bomber-setup{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);min-height:0}.bomber-options-column{grid-template-columns:1fr 1fr 1fr}.bomber-ready-card{grid-column:auto}.bomber-setup h3{font-size:15px}.bomber-team-heading span{font-size:10px}}
@media(max-width:500px){.bomber-setup{display:flex}.bomber-options-column{grid-template-columns:1fr 1fr}.bomber-ready-card{grid-column:1/-1}.bomber-team-column{padding:8px}.bomber-teams{gap:6px}.bomber-teams>section{padding:5px}.bomber-policy h3{font-size:14px}.bomber-character-card{min-height:180px}#bomber-lock{height:55px}.bomber-member>img{width:40px;height:40px}.bomber-member strong{font-size:10px}.bomber-settings-row{flex-wrap:wrap}}

@font-face{font-family:'Luckiest Guy';src:url('/games/bomber/fonts/LuckiestGuy-Regular.ttf?v=cfbdd68a039f92df') format('truetype');font-style:normal;font-weight:400;font-display:swap}
#bomber-waiting,#bomber-play{font-family:'Luckiest Guy','Segoe UI',sans-serif;font-weight:400;letter-spacing:.35px}
#bomber-waiting :is(button,input,select,h2,h3,strong),#bomber-play :is(button,h2){font-family:inherit;font-weight:400}
.rounded-select{position:relative;min-width:0}.rounded-select>button{width:100%;min-height:32px;text-align:left;padding:7px 9px;font-size:11px;white-space:nowrap;background:#233043;border:1px solid #7d8ca6;border-radius:9px;color:#fff}
.rounded-options{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 5px);min-width:100%;padding:5px;border:1px solid #8db8e3;border-radius:12px;background:#172b42;box-shadow:0 8px 22px #0008;overflow:hidden}
.rounded-options button{display:block;width:100%;text-align:left;border:0;border-radius:8px;white-space:nowrap;background:transparent;padding:8px;color:#dfefff;font:inherit}
.rounded-options button[aria-selected=true]{background:#24547c;color:#fff}.rounded-options button:focus-visible{outline:0;background:#386b96;color:#fff}
.bomber-mode-card,.bomber-map-card{position:relative;padding:0;overflow:visible}.bomber-mode-card>h3,.bomber-map-card>h3{position:absolute;z-index:2;top:10px;left:12px;margin:0;text-shadow:0 2px 4px #000;background:#10243a99;border-radius:8px;padding:5px 8px;font-size:16px}
.bomber-mode-preview{position:relative;min-height:210px;overflow:hidden;border-radius:10px;margin:0;padding:0;flex:1;background:radial-gradient(#846126,#34262b)}
#bomber-mode-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#bomber-mode-name{position:absolute;bottom:16px;left:48px;right:48px;padding:6px 2px;border-radius:10px;background:#101c30c9;color:#fff;font-size:15px}
.bomber-mode-card>.bomber-choice-nav{position:absolute;top:110px;left:6px;right:6px;z-index:3;pointer-events:none}.bomber-choice-nav button{pointer-events:auto}
#bomber-mode-index{position:absolute;top:-61px;right:4px;background:#111d3299;border-radius:8px;padding:4px 7px;color:#fff;font-size:10px}
.bomber-settings-row{padding:9px;margin:0;position:relative;z-index:5;border-radius:0 0 10px 10px;background:#1c273b;gap:8px}.bomber-settings-row label{font-size:10px}
.bomber-map-preview{height:215px;margin:0;border-radius:10px;overflow:hidden}.bomber-map-preview img{height:100%;width:100%;object-fit:cover;border-radius:10px}#bomber-map-random{object-fit:cover;padding:0;background:radial-gradient(#355586,#142a49)}
.bomber-map-card>.bomber-choice-nav{position:absolute;left:6px;right:6px;bottom:12px;z-index:3}#bomber-map-name{padding:8px 5px;border-radius:10px;background:#102038d9;font-size:15px;flex:1}
.bomber-choice-nav button{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;box-shadow:none;border-radius:9px}.bomber-choice-nav button img{width:100%;height:100%;object-fit:contain}.bomber-choice-nav button:hover:enabled{background:transparent;border:0;filter:brightness(1.15)}
#bomber-lock,#bomber-lock:hover:enabled,#bomber-lock[aria-pressed=true]{border:0;background:transparent;box-shadow:none;padding:0;height:66px}
.bomber-ready-card{border:0;border-radius:0;background:transparent;box-shadow:none;padding:0;min-height:0;display:flex;flex-direction:column;gap:9px}
.bomber-status-panel{display:block!important;border:3px solid #b747ff;border-radius:12px;padding:10px 12px;background:linear-gradient(#4c2375ec,#26134eea)}
.bomber-status-panel h3{font-size:16px;margin:0 0 5px}#bomber-ready-count{margin:0;font-size:13px}
.bomber-ready-card button,#bomber-start{width:100%;height:72px;border:0;box-shadow:none;background:transparent;padding:0}.bomber-ready-card button img{object-fit:fill}
#bomber-viewport{border-radius:10px}
@media(max-width:500px){.bomber-mode-preview{min-height:190px}.bomber-map-preview{height:270px}.bomber-mode-card>.bomber-choice-nav{top:105px}.bomber-settings-row{display:block}.bomber-settings-row label+label{margin-top:7px}.bomber-choice-nav button{width:35px;height:35px;min-width:35px;min-height:35px}#bomber-mode-name{left:8px;right:8px;font-size:14px}.bomber-map-card>.bomber-choice-nav{left:2px;right:2px;gap:1px}#bomber-map-name{font-size:13px;padding:7px 2px}}

#bomber-waiting .bomber-setup h3{font-size:19px}
#bomber-waiting .bomber-member strong{font-size:12px}
#bomber-waiting .bomber-member small{font-size:11px}
#bomber-waiting .bomber-member-actions button{font-size:10px}
#bomber-waiting .bomber-policy button{font-size:13px}
#bomber-waiting .bomber-settings-row label{font-size:12px}
#bomber-waiting .rounded-select>button{font-size:13px}
#bomber-waiting .bomber-team-heading span{font-size:13px}
#bomber-waiting .bomber-ready-card{border:0;background:transparent;padding:0;box-shadow:none}
.bomber-character-nav button,.bomber-character-nav button:hover:enabled{width:44px;height:44px;min-width:44px;padding:0;border:0;background:transparent;box-shadow:none;border-radius:9px;flex-shrink:0}
.bomber-character-nav button img{display:block;width:100%;height:100%;object-fit:contain}
.bomber-character-nav button:hover:enabled img{filter:brightness(1.15)}
.bomber-character-nav button:disabled img{filter:grayscale(1) brightness(.7)}
#bomber-fullscreen{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-height:28px;flex-shrink:0;border:0;border-radius:6px;background:transparent;padding:6px}
#bomber-fullscreen img{width:16px;height:16px;filter:invert(.85)}
#bomber-fullscreen:hover{background:#ffffff15}
#panel.bomber:fullscreen{width:100vw!important;max-width:none;height:100dvh;margin:0;border:0;padding:8px 12px;overflow:auto;background:var(--panel);display:flex;flex-direction:column}
#panel.bomber:fullscreen #bomber-screen{flex:1;min-height:0}
#panel.bomber:fullscreen #bomber-play{height:100%;display:flex;flex-direction:column;gap:6px}
#panel.bomber:fullscreen .bomber-toolbar{margin:0;flex-shrink:0}
#panel.bomber:fullscreen #bomber-viewport{width:min(100%,calc((100dvh - 94px)*var(--arena-ratio,19/15)));height:auto;max-width:100%;flex-shrink:0;aspect-ratio:var(--arena-ratio,19/15)}
#panel.bomber:fullscreen #bomber-waiting{min-height:calc(100dvh - 70px)}
.bomber-mode-preview{min-height:300px}
#bomber-mode-art{object-fit:contain;object-position:center}
.bomber-mode-card>.bomber-choice-nav{top:42%;transform:translateY(-50%)}
#bomber-mode-name{bottom:90px}
#bomber-mode-index{top:-75px}
.bomber-settings-row{position:absolute;left:0;right:0;bottom:0;background:transparent;border:0;padding:10px;gap:8px}
.bomber-settings-row label{text-shadow:0 1px 3px #000}
.bomber-settings-row .rounded-select>button{background:#152239b3}
.bomber-slot{display:block;width:100%;font-family:inherit}
.bomber-slot:hover:enabled{background:#285a85;border-color:#d8edff}
.bomber-slot:disabled{opacity:1;color:#a5bfd9}
#bomber-player-menu{position:fixed;z-index:1000;min-width:165px;padding:5px;border:1px solid #8fb8df;border-radius:12px;background:#142b43;box-shadow:0 7px 24px #0009;font-family:'Luckiest Guy','Segoe UI',sans-serif}
#bomber-player-menu button{display:block;width:100%;text-align:left;font:inherit;font-size:13px;letter-spacing:.4px;padding:11px 12px;border:0;border-radius:8px;background:transparent;color:#e8f4ff}
#bomber-player-menu button:focus-visible,#bomber-player-menu button:hover:enabled{background:#285b86;outline:0}
.bomber-member:focus-visible{outline:2px solid #a5d8ff;outline-offset:2px}
@media(max-width:500px){.bomber-mode-preview{min-height:325px}#bomber-mode-name{bottom:145px}.bomber-mode-card>.bomber-choice-nav{top:34%}.bomber-settings-row{padding:8px}}
@media(max-width:500px){#bomber-waiting .bomber-member-actions button{font-size:9px}#bomber-waiting .bomber-member strong{font-size:11px}#bomber-waiting .bomber-setup h3{font-size:16px}}

/* Full-width artwork; controls share one baseline above the floating settings. */
#bomber-lock,#bomber-ready,#bomber-start{width:100%;min-width:0;flex-shrink:0}
#bomber-lock img,#bomber-ready img,#bomber-start img{width:100%;height:100%;object-fit:fill}
#bomber-ready[aria-pressed=true]{border:0;background:transparent;box-shadow:none}
#bomber-ready[aria-pressed=true] img{filter:none}
.bomber-mode-card>.bomber-choice-nav{top:auto;bottom:78px;left:7px;right:7px;gap:4px;padding:0;align-items:center}
#bomber-mode-name{position:static;flex:1;min-width:0;padding:5px 2px;font-size:14px}
.bomber-mode-card>.bomber-choice-nav button{width:36px;height:36px;min-width:36px;min-height:36px;padding:0}
#close img{width:16px;height:16px;display:block;filter:brightness(0) invert(.85)}
#bomber-round-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none;z-index:5;background:#08142730;gap:16px}
#bomber-round-overlay[data-phase=finished]{background:#08142785}
#bomber-round-art{width:65%;height:38%;object-fit:contain;filter:drop-shadow(0 8px 7px #0005)}
#bomber-round-overlay[data-phase=countdown] #bomber-round-art{height:40%}
#bomber-round-label{font-size:60px;color:#fff}#bomber-round-label:empty{display:none}
#bomber-round-note{font-size:14px;color:#fff;text-shadow:0 2px 4px #000}#bomber-round-note:empty{display:none}
@media(max-width:500px){.bomber-mode-card>.bomber-choice-nav{top:auto;bottom:140px;left:5px;right:5px}}
@media(prefers-reduced-motion:reduce){#bomber-round-art{transform:none!important}}
#bomber-lock{height:72px}

/* Stable geometry: hover only changes brightness, never layout or image ratio. */
#bomber-waiting{max-width:1480px;margin-inline:auto}
.bomber-setup{min-height:580px}
.bomber-teams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}
.bomber-teams>section{min-height:220px;overflow:hidden}
.bomber-teams>section:nth-child(4){border-color:#b77bff;background:linear-gradient(#783ab0cd,#372347d9)}
.bomber-teams [id^=bomber-roster]{flex:1;min-height:0;max-height:280px;overflow:auto}
.bomber-mode-card{flex:none}
.bomber-mode-preview,.bomber-map-preview{height:215px;min-height:215px;flex:none}
.bomber-mode-card>.bomber-choice-nav{top:auto;bottom:12px;left:6px;right:6px;transform:none;gap:4px}
#bomber-character-preview{height:230px;min-height:0;max-height:300px;aspect-ratio:1;flex:1;object-fit:contain}
#bomber-lock,#bomber-lock:hover:enabled,#bomber-lock[aria-pressed=true],#bomber-ready,#bomber-start{height:auto;min-height:0;aspect-ratio:4/1;width:100%;padding:0;border:0;background:transparent;box-shadow:none;transform:none}
#bomber-lock img,#bomber-ready img,#bomber-start img{display:block;object-fit:fill;aspect-ratio:4/1;width:100%;height:auto}
#bomber-lock,#bomber-ready,#bomber-start{position:relative}
#bomber-lock img,#bomber-ready img,#bomber-start img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:contain}
.bomber-character-nav,.bomber-choice-nav{flex-shrink:0}
.bomber-character-nav button,.bomber-character-nav button:hover:enabled{height:44px;min-height:44px;transform:none}
#panel.bomber:fullscreen #bomber-waiting{min-height:0;width:100%}
#panel.bomber:fullscreen .bomber-setup{min-height:min(760px,calc(100dvh - 125px))}
#panel.bomber:fullscreen .bomber-mode-preview,#panel.bomber:fullscreen .bomber-map-preview{height:clamp(215px,27dvh,290px);min-height:215px}
#panel.bomber:fullscreen header{flex-shrink:0}
#bomber-scoreboard{width:min(94%,850px);max-height:85%;overflow:auto;pointer-events:auto;padding:20px;background:#101e32f2;border:2px solid #8398b5;border-radius:18px;box-shadow:0 10px 40px #0007}
#bomber-scoreboard h2{text-align:center;font-size:26px;margin:0 0 16px}
#bomber-round-overlay[data-stage=kda]{pointer-events:auto;cursor:pointer}
#bomber-scoreboard{cursor:default}
.bomber-member[data-pending=true] small{background:#695221;color:#ffe4a3;border-color:#dcad4d}
.bomber-standings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bomber-standing{padding:16px;border:2px solid #6d809c;border-radius:12px;background:#24364e;text-align:center;min-width:0}
.bomber-standing[data-rank="1"],.bomber-score-row[data-rank="1"]{border-color:#ffd666;background:linear-gradient(110deg,#68501f,#302b23);color:#ffe8a7}
.bomber-standing[data-rank="2"],.bomber-score-row[data-rank="2"]{border-color:#d8e4f4;background:linear-gradient(110deg,#46566b,#252f3e);color:#f0f6ff}
.bomber-standing img{width:72px;height:72px;object-fit:contain}.bomber-standing strong,.bomber-standing small{display:block;overflow-wrap:anywhere}.bomber-standing strong{font-size:19px}.bomber-standing small{margin-top:8px;font-size:15px}
.bomber-score-row{display:grid;grid-template-columns:36px minmax(0,1fr) repeat(3,42px);align-items:center;gap:6px;padding:10px;margin-top:6px;border:2px solid #4a607e;border-radius:10px;background:#24364e;font-size:16px}
.bomber-score-row span:not(:nth-child(2)){text-align:center}.bomber-score-row span:nth-child(2){overflow-wrap:anywhere}.bomber-score-row[data-header=true]{background:transparent;border-color:transparent;font-size:13px;color:#b2c7e0}
.bomber-score-team{margin-top:12px;font-size:18px}
.bomber-score-row{grid-template-columns:28px 42px minmax(0,1fr) 130px;padding:6px 10px}
.bomber-score-row img{width:42px;height:42px;object-fit:contain}
.bomber-score-row span.bomber-score-name{text-align:left;overflow-wrap:anywhere}
.bomber-score-team{display:flex;justify-content:space-between;gap:10px;padding:0 12px;align-items:center}
.bomber-score-kda{width:130px;flex-shrink:0;text-align:center;white-space:nowrap}
@media(max-width:850px){.bomber-options-column{grid-template-columns:1fr 1fr}.bomber-ready-card{grid-column:1/-1;max-width:350px;width:100%;justify-self:center}}
@media(max-width:500px){.bomber-mode-preview,.bomber-map-preview{height:215px;min-height:215px}.bomber-teams>section{min-height:200px}#bomber-scoreboard{padding:10px}.bomber-score-row{grid-template-columns:20px minmax(0,1fr) repeat(3,25px);font-size:12px;padding:7px;gap:3px}.bomber-standing{padding:9px}.bomber-standing strong{font-size:15px}.bomber-standings{gap:8px}}
@media(max-width:500px){.bomber-score-row{grid-template-columns:18px 32px minmax(0,1fr) 90px}.bomber-score-row img{width:32px;height:32px}.bomber-score-kda{width:90px}.bomber-score-team{font-size:12px;padding:0 9px}#bomber-scoreboard h2{font-size:20px}}

@media(min-width:851px){
  #panel.bomber:fullscreen #bomber-waiting{max-width:none;width:100%;height:100%;display:flex;flex-direction:column}
  #panel.bomber:fullscreen .bomber-heading{flex-shrink:0}
  #panel.bomber:fullscreen .bomber-setup{flex:1;min-height:0;height:auto;grid-template-rows:minmax(0,1fr)}
  #panel.bomber:fullscreen .bomber-character-card{min-height:0}
  #panel.bomber:fullscreen #bomber-character-preview{max-height:none;height:0;min-height:0;flex:1}
  #panel.bomber:fullscreen .bomber-options-column{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr) auto}
  #panel.bomber:fullscreen .bomber-mode-card,#panel.bomber:fullscreen .bomber-map-card{display:flex;flex-direction:column;min-height:0}
  #panel.bomber:fullscreen .bomber-mode-preview,#panel.bomber:fullscreen .bomber-map-preview{height:100%;min-height:0;flex:1;position:relative}
  #panel.bomber:fullscreen .bomber-map-preview img{position:absolute;inset:0}
  #panel.bomber:fullscreen .bomber-teams>section{min-height:0}
  #panel.bomber:fullscreen .bomber-teams [id^=bomber-roster]{max-height:none}
}

/* GAME MODE and MAP navigation share one size; artwork slides inside clipped frames. */
.bomber-mode-card,.bomber-map-card{position:relative}
.bomber-map-preview,.bomber-character-card{position:relative;overflow:hidden}
.bomber-mode-card>.bomber-choice-nav,.bomber-map-card>.bomber-choice-nav{top:auto;bottom:12px;left:6px;right:6px;transform:none;gap:6px;padding:0;align-items:center}
.bomber-mode-card>.bomber-choice-nav button,.bomber-map-card>.bomber-choice-nav button{width:44px;height:44px;min-width:44px;min-height:44px;padding:0}
#bomber-mode-name,#bomber-map-name{position:static;flex:1;min-width:0;height:44px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:0 6px;border-radius:10px;background:#102038d9;color:#fff;font-size:15px}
@media(max-width:500px){.bomber-mode-card>.bomber-choice-nav button,.bomber-map-card>.bomber-choice-nav button{width:36px;height:36px;min-width:36px;min-height:36px}#bomber-mode-name,#bomber-map-name{height:36px;font-size:14px}}/* Waiting slots glow in the colour of the team the player would move to. */
#bomber-team-box-1{--team:#4aa3ff}#bomber-team-box-2{--team:#ff5c6c}#bomber-team-box-3{--team:#4fd18b}#bomber-team-box-4{--team:#b57bff}
.bomber-slot{transition:border-color .15s,box-shadow .15s,color .15s}
.bomber-slot:hover:enabled{background:#14253d55;border-style:solid;border-color:var(--team);color:#fff;box-shadow:inset 0 0 16px color-mix(in srgb,var(--team) 55%,transparent),0 0 10px color-mix(in srgb,var(--team) 40%,transparent)}
/* Game Mode and Map names sit directly on the artwork. */
#bomber-mode-name,#bomber-map-name{background:none;text-shadow:0 1px 3px #000,0 0 6px #000c}

/* NPC members: badge on the card and a + beside each free slot for the host (PvE and CUSTOM rooms). */
.bomber-npc-badge{margin-left:6px;padding:1px 5px;border:1px solid #6fb6ff;border-radius:4px;font-size:9px;letter-spacing:.6px;color:#bfe0ff;background:#13304a;vertical-align:1px}
.bomber-slot-row{display:flex;gap:6px;align-items:stretch}.bomber-slot-row>.bomber-slot{flex:1;min-width:0}
.bomber-add-npc{flex:0 0 auto;width:44px;min-height:0;padding:0;font-size:22px;font-weight:700;line-height:1;color:var(--team,#ceccc3);border:1px dashed color-mix(in srgb,var(--team,#888) 70%,transparent);border-radius:7px;background:transparent}
.bomber-add-npc:hover:enabled{border-style:solid;background:color-mix(in srgb,var(--team,#888) 18%,transparent);box-shadow:inset 0 0 12px color-mix(in srgb,var(--team,#888) 45%,transparent)}
/* NPC settings (host, PvE and CUSTOM): beside LEAVE ROOM while waiting, bottom-right of the arena while playing. */
#bomber-npc-settings{width:36px;height:36px;min-height:36px;padding:8px;border:1px solid #45637b;border-radius:8px;background:#142b43cc;flex-shrink:0;margin-left:auto}#bomber-npc-settings img{display:block;width:18px;height:18px;filter:invert(.85)}#bomber-npc-settings:hover:enabled{background:#254b65}
#bomber-viewport>#bomber-npc-settings{position:absolute;right:10px;bottom:10px;z-index:6}
.bomber-heading{position:relative}#bomber-npc-panel{position:absolute;z-index:7;right:0;top:calc(100% + 6px);width:180px;padding:8px;display:flex;flex-direction:column;gap:4px;background:#142b43;border:1px solid #8fb8df;border-radius:10px}#bomber-viewport>#bomber-npc-panel{top:auto;right:10px;bottom:54px}
#bomber-npc-panel p{margin:0 0 2px;font-size:10px;font-weight:700;letter-spacing:.6px;color:#a9c4de}#bomber-npc-panel button{min-height:30px;font-size:11px;font-weight:700;color:#e8f4ff;background:#1b3550;border:1px solid #3c5569;border-radius:7px}#bomber-npc-panel button[aria-pressed=true]{border-color:#47b3f5;background:linear-gradient(#183a54,#114669);box-shadow:inset 0 0 9px #59c3ff48}
@media(pointer:coarse){#bomber-viewport>#bomber-npc-settings{bottom:74px}#bomber-viewport>#bomber-npc-panel{bottom:118px}#bomber-npc-panel button{min-height:38px}}
/* ADD NPC sits under WAITING FOR PLAYER..., full width. */
.bomber-slot-row{flex-direction:column;gap:6px}.bomber-add-npc{width:100%;min-height:34px;font-size:11px;letter-spacing:.5px}
/* Touch controls (phones/tablets): BOMB bottom-left, swipe area on the right half. The buttons are faint so the arena stays visible.
   They cover the whole play area, so in landscape they sit in the side margins beside the arena. */
#bomber-play{position:relative}
.bomber-touch{display:none}
@media(pointer:coarse){
  #bomber-play[data-phase=playing] .bomber-touch{display:block;position:absolute;inset:0;z-index:4;pointer-events:none;opacity:1}
  #bomber-bomb{position:absolute;left:12px;bottom:12px;width:78px;height:78px;min-height:0;padding:0;border-radius:50%;border:2px solid #efc48199;background:#2a1d0f55;color:#efc481cc;font-weight:700;letter-spacing:1px;opacity:.5;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}
  #bomber-bomb:active{opacity:.85;transform:scale(.94)}
  #bomber-swipe{position:absolute;top:0;right:0;bottom:0;width:50%;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}
  #bomber-swipe-dot{position:absolute;width:56px;height:56px;margin:-28px 0 0 -28px;border:2px solid #ffffff55;border-radius:50%;background:radial-gradient(#ffffff2e,#ffffff08);pointer-events:none}
  #bomber-viewport>#bomber-npc-settings{bottom:auto;top:10px}#bomber-viewport>#bomber-npc-panel{bottom:auto;top:54px}
}
/* Phones held sideways: little chrome so the arena uses the full height. */
@media(pointer:coarse) and (orientation:landscape) and (max-height:520px){
  body:has(#panel.bomber){padding:0}
  #panel.bomber{width:100vw!important;max-width:none;padding:0 6px 4px;border:0;border-radius:0}
  #panel.bomber header{height:28px;margin-bottom:2px}
  #panel.bomber .bomber-toolbar{margin:0 0 2px;font-size:10px}
  #panel.bomber #bomber-viewport,#panel.bomber:fullscreen #bomber-viewport{width:min(100%,calc((100dvh - 62px)*var(--arena-ratio,19/15)))}
  #panel.bomber:fullscreen{padding:0 6px 4px}
  body:has(#panel.bomber) .credit{display:none}
}
/* Host: X in the NPC card's top-right corner removes that NPC. */
.bomber-member{position:relative}.bomber-npc-remove{position:absolute;top:4px;right:4px;width:24px;height:24px;min-height:0;padding:0;border:1px solid #ff8a8a88;border-radius:50%;background:#3a1218cc;color:#ffd0d0;font-size:16px;line-height:1;font-weight:700}.bomber-npc-remove:hover:enabled{background:#7a1f2a;border-color:#ff9b9b;color:#fff}@media(pointer:coarse){.bomber-npc-remove{width:30px;height:30px}}
/* The NPC settings button matches LEAVE ROOM's height. */
#bomber-leave,.bomber-heading>#bomber-npc-settings{height:32px;min-height:32px;box-sizing:border-box}.bomber-heading>#bomber-npc-settings{width:32px;padding:6px;align-self:center;display:flex;align-items:center;justify-content:center}
/* Team 4 is YELLOW. */
.bomber-teams>section:nth-child(4){border-color:#ffd23f;background:linear-gradient(#a8841dcd,#4a3b14d9)}#bomber-team-box-4{--team:#ffd23f}
/* Character frame in grey; GAME MODE and MAP titles without a background. */
.bomber-character-card{--edge:#9a9a9a;--tint:radial-gradient(ellipse at 50% 80%,#6b6b6bcc,#2b2b2ee8)}
.bomber-mode-card>h3,.bomber-map-card>h3{background:none;padding:5px 2px}
/* REMOVE NPC: a round yellow button with a red X on the card's top-right edge, overlapping the border. */
.bomber-member{overflow:visible}
.bomber-npc-remove{top:-9px;right:-9px;width:22px;height:22px;border:2px solid #7a5a00;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3a6,#ffd23f 55%,#e0a800);color:#d01b1b;font-size:15px;font-weight:900;line-height:1;box-shadow:0 2px 4px #0008;z-index:3}
.bomber-npc-remove:hover:enabled{background:radial-gradient(circle at 35% 30%,#fff8c8,#ffe066 55%,#f0b400);border-color:#7a5a00;color:#a00000}
@media(pointer:coarse){.bomber-npc-remove{width:28px;height:28px;top:-11px;right:-11px}}
.bomber-teams [id^=bomber-roster]{padding-top:10px;padding-right:10px}
/* Waiting room sticker chat (bottom-right); stickers pop above the sender's card. */
#bomber-waiting{position:relative}
#bomber-chat{position:absolute;right:8px;bottom:8px;z-index:8;width:40px;height:40px;min-height:0;padding:10px;border:1px solid #45637b;border-radius:50%;background:#142b43dd;box-shadow:0 2px 6px #0007}
#bomber-chat img{display:block;width:18px;height:18px;filter:invert(.85)}#bomber-chat:hover:enabled,#bomber-chat[aria-expanded=true]{background:#254b65}
#bomber-sticker-picker{position:absolute;right:8px;bottom:56px;z-index:9;width:min(300px,calc(100% - 16px));padding:6px;background:#142b43;border:1px solid #8fb8df;border-radius:10px;box-shadow:0 6px 18px #000a}
.bomber-sticker-tabs{display:flex;gap:4px;margin-bottom:4px}.bomber-sticker-tabs button{width:40px;height:34px;min-height:0;padding:2px 6px;border:0;border-bottom:2px solid transparent;border-radius:6px 6px 0 0;background:transparent}.bomber-sticker-tabs button[aria-selected=true]{border-bottom-color:#e8f4ff;background:#1b3550}.bomber-sticker-tabs img{width:26px;height:26px;object-fit:contain}
#bomber-sticker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;max-height:260px;overflow-y:auto}#bomber-sticker-grid button{aspect-ratio:1;min-height:0;padding:0;border:0;border-radius:6px;background:transparent;overflow:hidden}#bomber-sticker-grid button:hover{background:#1b3550}#bomber-sticker-grid img{width:100%;height:100%;object-fit:contain}
.bomber-sticker-bubble{position:absolute;z-index:6;left:50%;bottom:calc(100% - 8px);width:84px;height:84px;object-fit:contain;transform:translateX(-50%);pointer-events:none;filter:drop-shadow(0 4px 6px #000a);animation:bomber-sticker-pop 380ms cubic-bezier(.2,.85,.3,1.25)}
@keyframes bomber-sticker-pop{0%{opacity:0;transform:translate(-50%,10px) scale(.45)}100%{opacity:1;transform:translate(-50%,0) scale(1)}}
.bomber-visitor #bomber-chat,.bomber-visitor #bomber-sticker-picker{display:none}
/* Free slot with [+] inside on the right: one row, same height as a plain slot. */
.bomber-slot-row{display:flex;flex-direction:row;align-items:center;gap:6px;margin-bottom:8px;border:1px dashed #8bb5de77;border-radius:9px;background:#14253d55;padding-right:8px}
.bomber-slot-row>.bomber-slot-join{flex:1;min-width:0;margin:0;border:0;background:transparent;box-shadow:none}
.bomber-slot-row>.bomber-slot-join:hover:enabled{border:0;background:transparent;box-shadow:none}
.bomber-slot-row:has(.bomber-slot-join:hover:enabled){border-style:solid;border-color:var(--team);box-shadow:inset 0 0 16px color-mix(in srgb,var(--team) 55%,transparent),0 0 10px color-mix(in srgb,var(--team) 40%,transparent)}
.bomber-slot-row>.bomber-add-npc{flex:0 0 auto;width:34px;height:34px;min-height:0;padding:0;font-size:20px;line-height:1;letter-spacing:0;border:1px dashed color-mix(in srgb,var(--team,#888) 80%,transparent);border-radius:7px;color:var(--team,#ceccc3);background:#0003}
.bomber-slot-row>.bomber-add-npc:hover:enabled{border-style:solid;background:color-mix(in srgb,var(--team,#888) 22%,transparent)}
/* Phones held upright: the touch controls sit below the arena (BOMB left, swipe area right) instead of covering it. */
@media(pointer:coarse) and (orientation:portrait){
  #bomber-play[data-phase=playing] .bomber-touch{position:relative;inset:auto;height:min(34dvh,240px);margin-top:8px;border:1px solid #ffffff14;border-radius:12px;background:#ffffff06}
  #bomber-play[data-phase=playing] #bomber-bomb{left:16px;bottom:50%;transform:translateY(50%);width:96px;height:96px}
  #bomber-play[data-phase=playing] #bomber-bomb:active{transform:translateY(50%) scale(.94)}
  #bomber-play[data-phase=playing] #bomber-swipe{left:auto;width:60%;border-left:1px dashed #ffffff1a}
  #bomber-play[data-phase=playing] #bomber-swipe::after{content:'SWIPE TO MOVE';position:absolute;inset:auto 0 10px;text-align:center;font-size:10px;letter-spacing:1px;color:#ffffff40;pointer-events:none}
}
/* Right column: GAME MODE and MAP share a row, CHAT below, then READY/START. The Status panel is gone. */
.bomber-options-column{display:flex!important;flex-direction:column;gap:8px;min-width:0}
.bomber-choices-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;flex-shrink:0}
.bomber-choices-row>section{min-width:0;padding:8px!important;position:relative}
.bomber-choices-row>section>h3{font-size:12px!important;top:6px!important;left:8px!important;padding:2px!important}
.bomber-choices-row .bomber-mode-preview,.bomber-choices-row .bomber-map-preview{height:118px!important;min-height:0!important;flex:none!important}
.bomber-choices-row .bomber-choice-nav{position:absolute!important;left:4px!important;right:4px!important;top:auto!important;bottom:8px!important;display:flex;align-items:center;justify-content:space-between;gap:2px}
.bomber-choices-row .bomber-choice-nav button{width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;padding:0}
.bomber-choices-row #bomber-mode-name,.bomber-choices-row #bomber-map-name{position:static!important;height:auto!important;font-size:11px!important;padding:0!important;flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bomber-status-panel{display:none!important}
.bomber-ready-card{flex-shrink:0;padding:0!important;border:0!important;background:none!important;box-shadow:none!important}
.bomber-chat-card{position:relative;flex:1;min-height:170px;display:flex;flex-direction:column;gap:6px;padding:10px;border:3px solid #6fb6ff;border-radius:14px;background:linear-gradient(#173556e6,#0e1f33f0);box-shadow:inset 0 0 14px #ffffff10,0 3px 7px #0005}
.bomber-chat-card>h3{margin:0;font-size:14px}
#bomber-chat-log{flex:1;min-height:60px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding:4px 2px;font-family:'Segoe UI',Arial,sans-serif;font-size:12px;color:#e6f1fc}
.bomber-chat-line{margin:0;line-height:1.35;overflow-wrap:anywhere}.bomber-chat-line strong{font-weight:700;margin-right:2px}.bomber-chat-line img{display:block;width:56px;height:56px;object-fit:contain;margin:2px 0 0 4px}
#bomber-chat-form{display:flex;gap:6px;align-items:center}
#bomber-chat-form #bomber-chat{position:static;flex:0 0 34px;width:34px;height:34px;min-height:0;padding:7px;border-radius:8px;box-shadow:none}
#bomber-chat-input{flex:1;min-width:0;height:34px;min-height:0;border:1px solid #3e5a74;border-radius:8px;background:#0b1828;color:#eef6ff;font-family:'Segoe UI',Arial,sans-serif;font-size:12px}
#bomber-chat-send{flex:0 0 auto;height:34px;min-height:0;padding:0 10px;font-size:11px;border-radius:8px}
.bomber-chat-card #bomber-sticker-picker{right:6px;bottom:52px}
.bomber-visitor #bomber-chat-form{display:none}
#bomber-chat-form>#bomber-chat-send{width:auto!important;flex:0 0 auto!important}#bomber-chat-form>#bomber-chat{width:34px!important}#bomber-chat-form>#bomber-chat-input{width:auto!important;flex:1 1 auto!important}.bomber-choices-row .bomber-mode-preview,.bomber-choices-row .bomber-map-preview{height:132px!important}
/* Chat input spans the row; the sticker button sits inside it on the right; Enter sends. */
#bomber-chat-form{position:relative;display:block}#bomber-chat-form>#bomber-chat-input{display:block;width:100%!important;padding-right:42px}#bomber-chat-form>#bomber-chat{position:absolute;right:3px;top:50%;transform:translateY(-50%);width:28px!important;height:28px;padding:5px;border:0;background:transparent}#bomber-chat-form>#bomber-chat:hover,#bomber-chat-form>#bomber-chat[aria-expanded=true]{background:#1b3550}
/* Bomber's room browser uses the phone height like the other lobbies. */
@media(max-width:600px){#bomber-lobby{height:calc(100dvh - 90px);min-height:382px;max-height:700px}}@media(orientation:landscape) and (max-height:520px) and (pointer:coarse){#bomber-lobby{height:calc(100dvh - 60px);min-height:0}}/* Title bar follows the Polystuff tool header: one line, elided. */
#panel.bomber header{height:35px;min-height:35px}
#panel.bomber #title{white-space:nowrap;overflow-wrap:normal;padding:0;line-height:normal}
/* NPC settings sit in the arena's top-right corner; the level list opens below. */
#bomber-viewport>#bomber-npc-settings{top:10px;bottom:auto;right:10px}
#bomber-viewport>#bomber-npc-panel{top:54px;bottom:auto;right:10px}
/* The chat log and message field use the game font like the rest of the waiting room. */
#bomber-chat-log,#bomber-chat-input{font-family:'Luckiest Guy','Segoe UI',sans-serif;letter-spacing:.35px}
