/* Map-first flow. Scoped to the playroom; global shell is deliberately unchanged. */
.lobby-app{max-width:1240px;font-size:16px;padding-block:20px 40px}
.lobby-app .lobby-hero{min-height:0;grid-template-columns:1.05fr 1fr;border-radius:16px}
.lobby-app .hero-copy{padding:24px 28px}
.lobby-app .lobby-hero h1{font-size:clamp(1.8rem,3vw,2.5rem);margin:8px 0;line-height:1.4}
.lobby-app .squad-visual{min-height:320px;max-height:none;padding:14px 16px 50px;align-self:stretch;justify-content:center;background:transparent}
.lobby-app .squad-visual>img{width:100%;height:auto;max-width:none;max-height:none;object-fit:contain}
.lobby-app .squad-caption{bottom:20px;font-size:.94rem}
.lobby-app .hero-chips{margin-top:12px;gap:14px}
.lobby-app .activity{margin-block:18px 24px}
.lobby-app .stat-card{padding:12px 16px;gap:10px;border-radius:10px}
.lobby-app .stat-card strong{font-size:1.7rem;line-height:1.5}
.lobby-app .stat-icon{width:32px;height:32px}
.lobby-app .stat-label{font-size:.85rem}
.lobby-app .stat-card small,.lobby-app .stats-footnote{font-size:.75rem}
.lobby-app :is(button,.action-link){min-height:44px;padding:9px 16px;font-size:.9rem;border-radius:9px;line-height:1.5}
.lobby-app select{min-height:44px;padding:8px 12px;font-size:.94rem;border-radius:9px}
.lobby-app .catalog-filters{gap:8px;margin-block:16px 12px}
.lobby-app .catalog-filters button{padding:8px 15px;font-size:.85rem;min-height:44px}
.lobby-app .workshop-catalog .map-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;border:0;padding:0;margin:0;min-width:0}
.lobby-app .workshop-catalog .map-photo{aspect-ratio:1.95}
.lobby-app .workshop-catalog .map-title{font-size:1.13rem;line-height:1.35;inset-inline:14px;bottom:12px}
.lobby-app .map-caption{padding:12px 14px;font-size:.86rem;min-height:76px;gap:10px;flex-wrap:nowrap}
.lobby-app .map-caption small{font-size:.76rem}
.lobby-app .map-state{font-size:.78rem;white-space:nowrap}
.lobby-app .map-card{border:1px solid var(--line);border-radius:12px;transition:border-color .15s,box-shadow .15s}
.lobby-app .map-card:hover{border-color:#806091;box-shadow:0 4px 16px #25163012}
.lobby-app .map-card:has(input:checked){border-color:#ad7d17;box-shadow:0 0 0 2px #ffce3960}
.lobby-app .section-heading{align-items:flex-end;gap:16px}
.lobby-app h2{font-size:1.4rem;line-height:1.45}
.lobby-app .section-description{font-size:.9rem;margin-top:6px}
.resume-lobby{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 18px;margin-block:18px;background:#fff6d6;border:1px solid #dac37b;border-radius:12px}
.resume-copy{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:.9rem}
.resume-copy strong{font-size:.95rem}
.lobby-app .resume-lobby button{background:var(--ink);color:#fff}
.lobby-app .lobby-columns{display:block;max-width:720px;margin:24px auto 32px}
.flow-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.flow-toolbar button{display:inline-flex;gap:8px}
.lobby-app .lobby-panel{padding:22px 24px;border-radius:14px}
.lobby-app .panel-heading h2{font-size:1.35rem}
.lobby-app .panel-heading p{font-size:.88rem;margin-top:4px}
.lobby-app #create-panel{padding:24px 28px;box-shadow:0 8px 28px #25163008}
.lobby-app .setup-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.lobby-app .setup-heading>div{min-width:0}
.lobby-app .setup-heading h2:focus{outline:none}
.lobby-app #setup-change-map{flex-shrink:0;padding:8px 12px;background:var(--soft);border-color:transparent}
.lobby-app #setup-change-map:hover{background:#e9e1d5}
.selection-preview{display:flex;align-items:center;gap:18px;padding:16px 0;margin:18px 0 20px;border-block:1px solid var(--line)}
.selection-preview img{width:160px;height:100px;object-fit:cover;border-radius:10px;flex-shrink:0}
.selection-preview div{display:grid;justify-items:start;gap:8px;min-width:0}
.selection-preview strong{font-size:1.2rem;line-height:1.4;overflow-wrap:anywhere}
.selection-preview small{color:#654777;background:#f0e9f4;padding:3px 9px;border-radius:6px;font-size:.8rem}
.lobby-app .field-grid{grid-template-columns:1.3fr 1fr;gap:18px}
.lobby-app .field-grid label{font-size:1rem;margin-bottom:8px}
.lobby-app .field-grid select{min-height:48px;font-size:1rem;background:#fff}
.lobby-app .field-help{font-size:.85rem;margin:7px 0 20px;line-height:1.65}
.lobby-app .rules-picker{margin:0 0 18px;border-radius:10px}
.lobby-app .rules-picker summary{min-height:64px;padding:12px 16px}
.lobby-app .rules-picker summary strong{font-size:.96rem}
.lobby-app .rules-picker summary small{font-size:.78rem}
.lobby-app .option-toggle{padding:10px;gap:9px}
.lobby-app .option-toggle strong{font-size:.84rem}
.lobby-app .option-toggle small{font-size:.76rem}
.lobby-app .setup-actions{display:flex;align-items:center;gap:16px;justify-content:space-between;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.lobby-app .setup-actions :is(button,.action-link){min-width:160px;min-height:48px;padding:10px 22px;flex-shrink:0;font-size:1rem}
.lobby-app .setup-actions .full-button{width:auto;background:var(--ink);border-color:var(--ink);color:#fff}
.lobby-app .setup-actions .full-button:hover:not(:disabled){background:#49265d}
.lobby-app .setup-login{display:inline-flex;margin:0}
.lobby-app .setup-hint{font-size:.85rem;line-height:1.8;max-width:32ch}
.lobby-app .existing-lobby-note{margin-bottom:14px;padding:12px;background:#fff3d6;border-radius:8px;font-size:.88rem;line-height:1.8}
.lobby-app .room-preview{height:130px;margin-block:18px 14px}
.lobby-app .lobby-progress{margin-block:16px}
.lobby-app .lobby-detail{font-size:.9rem;padding-block:7px}
.lobby-app .lobby-primary-actions{align-items:center;gap:8px;flex-wrap:wrap}
.lobby-app .lobby-primary-actions>button,.lobby-app .lobby-primary-actions #leave-button{flex:0 1 auto;min-height:44px;min-width:0;padding:9px 16px;font-size:.88rem;white-space:normal;margin:0}
.lobby-app #leave-button.lobby-remove{background:transparent;border-color:#cf9898;color:#8c2929}
.lobby-app #leave-button.lobby-remove:hover{background:#fbe9e7}
.lobby-app .connect-box{padding:14px;margin-top:18px;font-size:.88rem}
.lobby-app .connect-box code{margin-block:10px;font-size:.75rem;line-height:1.75}
.lobby-app .host-controls{margin-top:16px;padding:10px 14px}
.lobby-app .host-controls summary{font-size:.92rem}
.lobby-app .host-controls p{font-size:.8rem;margin-block:6px 12px}
.lobby-app .host-controls>summary{font-size:1rem;font-weight:800}
.lobby-app .host-controls .lobby-actions button{min-height:44px;padding:9px 13px;font-size:.86rem;width:auto;flex:0 1 auto}
.lobby-app .host-rules-editor{margin-top:16px;padding-top:10px;border-top:1px solid var(--line)}
.lobby-app .host-rules-editor>summary{min-height:44px;font-size:.9rem;font-weight:700;cursor:pointer}
.lobby-app .host-rules-editor form{margin-top:12px}
.lobby-app .host-rules-editor .option-toggle{min-height:44px;align-items:center;font-size:.84rem;padding:10px}
.lobby-app .match-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.lobby-app .match-field{min-width:0}
.lobby-app .match-field label{display:block;font-size:.85rem;font-weight:700;margin-bottom:6px}
.lobby-app .match-field select{min-height:44px;width:100%;font-size:.9rem;padding:7px 10px}
.lobby-app .friendly-fire-toggle{margin-top:12px}
.lobby-app #rules-match-fields{padding:0 16px 16px}
.lobby-app .match-rules-help{font-size:.82rem;line-height:1.8;color:var(--muted);margin-block:12px}
.lobby-app .public-join-help{font-size:.8rem;line-height:1.7;margin:10px 0 0;color:var(--muted)}
.lobby-app .public-room button{min-height:44px}
.lobby-app #host-rules-form .lobby-actions{margin-top:14px}
.lobby-app #host-rules-form .lobby-actions .secondary{color:var(--ink)}
/* One in-card status surface; never a second page-wide error banner. */
.lobby-app .lobby-status{margin-block:16px 18px;border:1px solid #dac37b;border-radius:10px;background:#fff8e4;overflow:hidden}
.lobby-app .lobby-status :is(.launch-progress,.server-notice){margin:0;padding:16px;border:0;border-radius:0;background:transparent}
.lobby-app .lobby-status .server-notice[data-kind=offline]{background:#fff0ed}
.lobby-app .lobby-status .server-notice[data-kind=checking]{background:#fff3e9}
.lobby-app .lobby-status .server-notice h3{font-size:1rem;margin:0 0 8px;line-height:1.6}
.lobby-app .lobby-status .server-notice p{font-size:.86rem;margin:0;line-height:1.8}
.lobby-app .status-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:12px 16px;border-top:1px solid #dac37b66}
.lobby-app .status-times{display:grid;gap:5px;font-size:.78rem;color:#654a24;font-variant-numeric:tabular-nums}
.lobby-app .status-wait{direction:ltr;unicode-bidi:plaintext}
.lobby-app .room-feedback:empty{display:none}
.lobby-app .room-feedback{padding:14px 16px;font-size:.88rem;line-height:1.8;background:#fff0ed;color:var(--bad);overflow-wrap:anywhere}
.lobby-app .room-feedback[data-kind=success]{background:#e7f8ee;color:var(--good)}
.lobby-app .fly-controls{border:1px solid var(--line);border-radius:10px;padding:12px;margin-block:14px}
.lobby-app .fly-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.88rem}
.lobby-app .fly-state{font-size:.78rem;padding:4px 9px;background:#f1eee7;border-radius:20px;color:var(--muted)}
.lobby-app .fly-state[data-enabled=true]{background:#e7f8ee;color:var(--good)}
.lobby-app .fly-help{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-size:.82rem}
.lobby-app .fly-help summary{min-height:44px;display:flex;align-items:center;font-weight:700;cursor:pointer}
.lobby-app .fly-help p{font-size:.8rem;line-height:1.8;margin-block:8px;overflow-wrap:anywhere}
.lobby-app .fly-bind{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.lobby-app .fly-bind code{direction:ltr;unicode-bidi:isolate;background:#f1eee7;padding:8px 10px;font-size:.78rem;overflow-wrap:anywhere}
.lobby-app .fly-bind button{width:auto;min-height:44px;font-size:.8rem;padding:8px 12px}
@media(max-width:420px){.lobby-app .status-footer{align-items:stretch;flex-direction:column}.lobby-app .status-footer button{width:100%}}
@media(max-width:420px){.lobby-app .match-fields{grid-template-columns:1fr;gap:12px}.lobby-app .host-controls{padding:12px}.lobby-app .host-controls .lobby-actions{flex-wrap:wrap;align-items:center}}
.lobby-app .lobby-actions{gap:8px}
.lobby-app .pilot-note{font-size:.8rem;padding:10px 12px}
.lobby-app :is(#map-title,#create-title,#my-title,#lobby-flow){scroll-margin-top:130px}
@media(min-width:1100px){.lobby-app .workshop-catalog .map-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.lobby-app .map-caption{font-size:.8rem}.lobby-app .map-title{font-size:1rem}}
@media(max-width:760px){.lobby-app .lobby-hero{grid-template-columns:1fr}.lobby-app .squad-visual{display:flex;min-height:0;max-height:none;padding:0 20px 46px}.lobby-app .squad-visual>img{width:100%;height:auto;max-width:520px;max-height:none}.lobby-app .hero-copy{padding:22px}.lobby-app .workshop-catalog .map-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lobby-app .lobby-panel{padding:20px}.lobby-app .map-state{display:none}.lobby-app .map-caption{min-height:86px}.lobby-app .workshop-catalog .map-title{font-size:1rem}.lobby-app .section-heading{align-items:start}.lobby-app .lobby-columns{margin-top:18px}}
@media(max-width:480px){.lobby-app{padding-inline:14px}.lobby-app .stat-card{padding:10px}.lobby-app .stat-icon{display:none}.lobby-app .stat-grid{gap:8px}.lobby-app .stat-label{font-size:.78rem}.lobby-app .stat-card small{font-size:.7rem}.lobby-app .hero-copy{padding:18px}.lobby-app .lobby-hero h1{font-size:1.8rem}.lobby-app .workshop-catalog .map-grid{grid-template-columns:1fr}.lobby-app .workshop-catalog .map-photo{aspect-ratio:2.25}.lobby-app .workshop-catalog .map-title{font-size:1.15rem}.lobby-app .map-caption{min-height:0}.lobby-app .map-state{display:block}.lobby-app .lobby-panel,.lobby-app #create-panel{padding:18px}.lobby-app .field-grid{grid-template-columns:1fr;gap:0}.lobby-app .selection-preview{gap:12px;margin-block:16px;padding-block:14px}.lobby-app .selection-preview img{width:112px;height:80px}.lobby-app .selection-preview strong{font-size:1rem}.lobby-app .setup-heading{gap:12px;align-items:start}.lobby-app .setup-heading h2{font-size:1.2rem}.lobby-app #setup-change-map{font-size:.82rem;padding-inline:10px}.lobby-app .setup-heading p{font-size:.82rem}.lobby-app .setup-actions{align-items:stretch;flex-direction:column;gap:12px;margin-top:18px;padding-top:16px}.lobby-app .setup-actions :is(button,.action-link){width:100%;min-width:0}.lobby-app .setup-hint{max-width:none;text-align:center}.flow-toolbar{gap:8px}.flow-toolbar button{padding-inline:11px;font-size:.82rem}.lobby-app .host-controls .lobby-actions button{width:auto}.lobby-app .resume-lobby{padding:12px}.lobby-app :is(#map-title,#create-title,#my-title){scroll-margin-top:110px}}
@media(prefers-reduced-motion:reduce){.lobby-app *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
