/* Compact waiting room; configuration lives outside the page flow. */
.lobby-match-rules { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 12px; padding:8px 12px; border:1px solid #a7b3b22a; background:#07151bcc; }
#select.in-lobby #lobby-arena { display:none; }
#choose-lobby-map { display:flex; align-items:center; gap:12px; padding:0; border:0; background:none; color:#e8dfca; cursor:pointer; text-align:left; min-width:0; }
#choose-lobby-map>img { width:86px; height:48px; object-fit:cover; border:1px solid #ad9a6655; border-radius:2px; }
#choose-lobby-map span { display:grid; gap:5px; }
#choose-lobby-map small,.lobby-match-rules label>span { font:700 9px system-ui; letter-spacing:.15em; color:#91a7b0; }
#choose-lobby-map strong { font:600 14px system-ui; }
#choose-lobby-map>b { font:26px Georgia; color:#d9be82; padding:0 12px; }
.lobby-match-rules label { display:grid; grid-template-columns:auto auto; align-items:center; gap:4px 12px; }
.lobby-match-rules label small { grid-column:1/-1; text-align:right; font:10px system-ui; color:#92a9b3; }
#lobby-best-of,#lobby-game-mode,#lobby-team-size { background:#101f29; color:#efdbac; border:1px solid #ad9a6660; padding:6px 12px; font:700 13px system-ui; }
#lobby-map-dialog { width:min(860px,calc(100vw - 28px)); max-height:calc(100dvh - 32px); padding:22px; box-sizing:border-box; overflow:auto; overscroll-behavior:contain; background:linear-gradient(135deg,#182c36,#07141d); color:#e7dfca; border:1px solid #a38b59; box-shadow:0 20px 100px #000b; }
#lobby-map-dialog::backdrop { background:#020912cc; backdrop-filter:blur(3px); }
#lobby-map-dialog[open] { display:flex; flex-direction:column; overflow:hidden; }
#lobby-map-dialog header,#lobby-map-dialog footer { flex-shrink:0; }
#lobby-map-dialog header { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
#lobby-map-dialog h2 { margin:0; font:small-caps 28px Georgia; }
#lobby-map-dialog header button { background:none; color:#c6d6da; border:1px solid #81979944; font-size:22px; cursor:pointer; }
.lobby-map-grid { display:grid; grid-auto-rows:max-content; align-content:start; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; min-height:0; overflow:auto; padding:2px; }
.lobby-map-card { padding:0; overflow:hidden; text-align:left; background:#0a1922; border:1px solid #889eaa44; color:#c4d4d9; cursor:pointer; }
.lobby-map-card img { display:block; width:100%; aspect-ratio:5/3; object-fit:cover; }
.lobby-map-card[data-arena=random] img { object-fit:contain; background:radial-gradient(ellipse,#263c46,#0b1720); }
.lobby-map-card strong { display:block; padding:10px; font:600 12px system-ui; }
.lobby-map-card[aria-pressed=true] { border-color:#ead395; box-shadow:0 0 0 1px #ead395; color:#ffe9ad; }
#lobby-map-dialog footer { display:flex; justify-content:flex-end; gap:10px; margin-top:20px; }
#lobby-map-dialog footer button { padding:10px 18px; min-height:40px; cursor:pointer; }
@media(max-width:650px){.lobby-match-rules{align-items:stretch;flex-direction:column;gap:12px}.lobby-match-rules label{grid-template-columns:1fr auto}.lobby-match-rules label small{text-align:left}.lobby-map-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#lobby-map-dialog{padding:14px}}
#select.in-lobby { --menu-icon:42px; grid-template-rows:64px auto auto auto 36px; align-content:start; }
#select.in-lobby .menu-top { min-height:64px; }
#select.in-lobby .wordmark img { height:66px; }
#select.in-lobby .lobby-view { padding:10px 0 0; }
#select.in-lobby .lobby-heading { gap:10px; }
#select.in-lobby .lobby-heading>div { flex:1; }
#select.in-lobby .lobby-heading h1 { margin:0; font:small-caps 26px Georgia,serif; }
#select.in-lobby .lobby-heading p { margin:5px 0 0; }
#select.in-lobby .lobby-heading button { min-height:36px; padding:8px 16px; }
#select.in-lobby .lobby-meta { margin:8px 0; padding:8px 0; gap:18px; }
#select.in-lobby #lobby-ranking-note { margin:0; padding:4px 8px; border:1px solid #a1b4ba30; color:#94acb6; font:10px system-ui; white-space:nowrap; }
#select.in-lobby .teams-grid { gap:10px; grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr); }
#select.in-lobby .team-panel { padding:12px; }
#select.in-lobby .team-panel.blue { box-shadow:inset 0 3px #58c2ef70; }
#select.in-lobby .team-panel.red { box-shadow:inset 0 3px #ef637170; }
#select.in-lobby .team-heading { margin-bottom:8px; }
#select.in-lobby .player-slot { min-height:52px; padding:8px 10px; margin-top:6px; box-sizing:border-box; }
#select.in-lobby .slot-info strong { white-space:nowrap; }
#select.in-lobby .bot-slot-controls { display:flex; align-items:center; gap:7px; flex-shrink:0; }
#select.in-lobby .bot-slot-skill,#select.in-lobby .bot-slot-class { width:105px; padding:7px 8px; border:1px solid #7b8c9455; background:#0b1e28; color:#eee1c2; font:12px system-ui; }
#select.in-lobby .add-bot,#select.in-lobby .remove-bot { border:1px solid #a99a6655; border-radius:3px; background:#172a31; color:#e0cf9e; min-height:30px; padding:5px 10px; font:11px system-ui; cursor:pointer; }
#select.in-lobby .remove-bot { font-size:18px; padding:2px 9px; }
#select.in-lobby .bot-slot-skill:disabled { opacity:.8; }
#select.in-lobby .versus { height:66px; background:url('assets/ui/lobby-v2/arena-crest.png') center/56px auto no-repeat; font-size:0; }
#select.in-lobby .lobby-bottom { padding:12px 0; gap:12px; }
#select.in-lobby .lobby-bottom p { margin:0; font-size:12px; }
#select.in-lobby .lobby-actions button { min-height:42px; }
#select.in-lobby .roster-section { padding:14px 0 10px; }
#select.in-lobby .classes { max-width:760px; gap:6px; }
#select.in-lobby .card { --class-icon-size:42px; min-height:70px; padding:7px 4px; }
#select.in-lobby .card .name { font-size:10px; }
#select.in-lobby .ability-section { max-width:760px; margin-top:10px; padding-top:10px; }
#select.in-lobby .ability-section>h2 { display:none; }
#select.in-lobby .menu-ability { width:42px; height:76px; overflow:visible; }
#select.in-lobby .shared-detail .menu-ability { height:42px; }
#select.in-lobby .hero-detail,#select.in-lobby .shared-detail { grid-row:1; }
#select.in-lobby .menu-footer { min-height:36px; }
#select.in-lobby #lobby-spectators { margin:8px 0; padding:10px 12px; }
#select.in-lobby #lobby-spectators h2 { margin:0; font-size:15px; }
#select.in-lobby #lobby-spectators>p { display:none; }
#select.in-lobby .spectator-slot { min-height:32px; padding:6px 8px; }

#lobby-settings-dialog { width:min(540px,calc(100vw - 28px)); max-height:calc(100dvh - 40px); padding:0; box-sizing:border-box; overflow:auto; overscroll-behavior:contain; background:linear-gradient(135deg,#162934,#08141c); color:#e6e6df; border:1px solid #aa9260; box-shadow:0 20px 100px #000b; }
#lobby-settings-dialog::backdrop { background:#030a11bb; backdrop-filter:blur(3px); }
#lobby-settings-dialog .lobby-settings { display:block; padding:22px; margin:0; border:0; background:none; }
#lobby-settings-dialog header { display:flex; align-items:center; gap:12px; margin-bottom:22px; }
#lobby-settings-dialog header img { flex-shrink:0; object-fit:contain; }
#lobby-settings-dialog h2 { flex:1; font:small-caps 27px Georgia,serif; margin:0; color:#ead9b0; }
#lobby-settings-dialog header button { min-width:34px; min-height:34px; padding:0; background:none; border:1px solid #7c8b9044; color:#d0dadd; font:22px system-ui; cursor:pointer; }
#lobby-settings-dialog label { font:12px/1.5 system-ui; color:#b6ccd4; }
#lobby-settings-dialog input:not([type=checkbox]),#lobby-settings-dialog select { width:100%; max-width:none; min-width:0; box-sizing:border-box; border:1px solid #536770; border-radius:3px; padding:10px; background:#07141ce0; color:#eef3f2; font:13px system-ui; }
.lobby-basic-settings { display:grid; grid-template-columns:140px 1fr; align-items:center; gap:20px; }
#lobby-settings-dialog .bot-toggle { flex-direction:row; align-items:center; gap:10px; }
#lobby-settings-dialog input[type=checkbox] { width:17px; height:17px; min-height:0; flex-shrink:0; accent-color:#d8bd81; }
.lobby-broadcast-settings { margin-top:22px; padding-top:18px; border-top:1px solid #b7a37530; }
.lobby-broadcast-settings summary { cursor:pointer; color:#cbbd9e; font:12px system-ui; }
.lobby-broadcast-settings p { color:#97adb7; font:11px/1.6 system-ui; }
.lobby-settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
#lobby-settings-dialog .series-setting div { display:flex; gap:8px; align-items:center; }
#lobby-settings-dialog .series-setting input { width:calc(50% - 12px)!important; }
#lobby-settings-dialog .lobby-settings-status { color:#ffba9e; font:12px/1.5 system-ui; }
#lobby-settings-dialog footer { display:flex; justify-content:flex-end; gap:10px; margin-top:24px; }
#lobby-settings-dialog footer button { min-width:105px; min-height:40px; padding:10px 16px; cursor:pointer; }
#lobby-settings-dialog [hidden] { display:none!important; }
@media(max-width:950px){
 #select.in-lobby .lobby-view { order:1; }
 #select.in-lobby .roster-section { order:2; }
}
@media(max-width:650px){
 #select.in-lobby .lobby-heading { flex-wrap:wrap; }
 #select.in-lobby .lobby-heading>div { flex-basis:100%; }
 #select.in-lobby .teams-grid { grid-template-columns:1fr; }
 #select.in-lobby .versus { display:none; }
 #select.in-lobby .lobby-meta { gap:10px; }
 #select.in-lobby #lobby-mode { margin-left:0; }
 #select.in-lobby .classes { grid-template-columns:repeat(4,minmax(0,1fr)); }
 #select.in-lobby .hero-detail { grid-row:2; grid-column:1; }
 #lobby-settings-dialog .lobby-settings { padding:16px; }
 .lobby-basic-settings { grid-template-columns:1fr; gap:16px; }
 #lobby-settings-dialog h2 { font-size:23px; }
}
.lobby-match-rules { flex-wrap:wrap; }
.lobby-match-rules > label[hidden] { display:none; }
.lobby-match-rules > label { min-width:110px; }
#lobby-game-mode { min-width:140px; }
#lobby-bushes { width:22px;height:22px;accent-color:#7de6be; }
.harvest-mode .round-timer,.harvest-mode .round-format,.harvest-mode .round-wins { display:none!important; }
.harvest-status { display:flex;align-items:center;justify-content:center;gap:8px;color:#a4ffe8;font-size:12px;max-width:270px; }
.harvest-status[hidden] { display:none; }
.harvest-status img { width:28px;height:40px;object-fit:contain;filter:drop-shadow(0 0 7px #56edca); }
.harvest-status strong { font-size:25px;color:#fff6c3;white-space:nowrap; }
.harvest-status.contested strong { color:#ff8499; }
.soul-count { display:block;color:#b5ffec;text-shadow:0 0 8px #4fffc8;font-size:15px;font-weight:800; }
.soul-count[hidden] { display:none; }

.harvest-respawn { position:absolute;top:30%;left:50%;transform:translateX(-50%);padding:14px 24px;background:#0b192be8;border:1px solid #88cfc0;color:#d3fff1;font-size:24px;letter-spacing:2px;text-align:center;box-shadow:0 0 28px #5acfb133; }
.harvest-respawn[hidden] { display:none; }

@media(max-width:900px){#select.in-lobby .bot-slot{display:grid;grid-template-columns:32px minmax(0,1fr)}#select.in-lobby .bot-slot-controls{grid-column:2;flex-wrap:wrap}#select.in-lobby .bot-slot-skill,#select.in-lobby .bot-slot-class{width:90px}}

/* Match-winning countdown, separate from the compact team scoreboard. */
.harvest-status{position:absolute;top:125px;left:50%;transform:translateX(-50%);z-index:12;display:grid;grid-template-columns:38px auto 70px;gap:12px;max-width:calc(100vw - 40px);padding:12px 20px 16px;background:#081725ed;border:1px solid #68cfff;box-shadow:0 5px 25px #0009;color:#b6e8ff;pointer-events:none;font:700 13px/1.3 system-ui;letter-spacing:1px;white-space:nowrap}
.harvest-status::after{content:'';position:absolute;bottom:0;left:0;width:var(--hold-progress,100%);height:4px;background:#65ceff}
.harvest-status strong{font:800 40px/1 system-ui;color:#fff}.harvest-status[data-team="1"]{border-color:#ff747d;color:#ffbcc1}.harvest-status[data-team="1"]::after{background:#ff747d}.harvest-status.contested strong{color:#fff}.harvest-status[hidden]{display:none}
.plate .soul-count{display:table;margin:3px auto;padding:2px 8px;border:1px solid #f5cf75;border-radius:5px;background:#171423ef;color:#fff0b2;font:800 17px/1.2 system-ui;text-shadow:0 1px 2px #000;box-shadow:0 2px 6px #000a}.plate .soul-count[hidden]{display:none}
@media(max-width:600px){.harvest-status{top:105px;padding:9px 12px 13px;gap:8px;grid-template-columns:26px auto 60px;font-size:11px}.harvest-status strong{font-size:32px}}
