/* Session launcher: intentionally independent of in-game HUD and addon UI styling. */
#menu{background:var(--ae-bg);z-index:20;padding:0;overflow:auto;color:var(--ae-text);font-family:var(--ae-font);align-items:stretch}
.launcher-shell{display:grid;grid-template-columns:240px minmax(0,1fr);width:min(1500px,100%);min-height:100%;margin:auto}
.launcher-sidebar{padding:42px 25px;border-right:1px solid var(--ae-border);display:flex;flex-direction:column;background:var(--ae-surface)}
.launcher-brand{font-family:var(--display);font-size:35px;font-weight:800;letter-spacing:.04em;line-height:1}.launcher-brand span{color:var(--ae-accent);display:block;font-size:64px}
.launcher-tagline{color:var(--ae-muted);font-size:12px;line-height:1.6;margin:18px 0 38px}.launcher-sidebar nav{display:grid;gap:8px}.launcher-sidebar button{text-align:left;padding:14px 15px;border:1px solid transparent;background:transparent;color:var(--ae-muted);font:600 14px var(--ae-font);cursor:pointer;border-radius:6px}.launcher-sidebar button[aria-current="page"]{color:var(--ae-accent);background:var(--ae-surface-3);border-color:var(--ae-border)}.launcher-sidebar button small{display:block;font-size:10px;margin-top:4px;font-weight:400}.launcher-status{margin-top:auto;padding-top:40px;color:var(--ae-muted);font-size:12px;line-height:1.8}.launcher-status i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ae-ok);margin-right:6px}.launcher-status small{color:var(--ae-subtle)}
.launcher-content{padding:30px 50px 50px;min-width:0}.launcher-header{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.13em;color:var(--ae-subtle);border-bottom:1px solid var(--ae-border);padding-bottom:22px;margin-bottom:40px}.launcher-header b{font-weight:500;color:var(--ae-muted)}.launcher-badge{border:1px solid var(--ae-border);padding:7px 10px;border-radius:3px;color:var(--ae-muted)}
#menu h1{font-family:var(--display);font-size:clamp(36px,4vw,62px);text-transform:uppercase;letter-spacing:.01em;line-height:1;margin:0 0 14px}#menu h2{font-family:var(--display);font-size:23px;letter-spacing:.04em;margin:0 0 14px}#menu p{line-height:1.65;font-size:13px}.launcher-intro{max-width:700px;color:var(--ae-muted);margin:0 0 30px}.launcher-hero{padding:40px;background:linear-gradient(115deg,var(--ae-surface-3),var(--ae-surface-3) 70%);border:1px solid var(--ae-border);border-radius:8px;margin:32px 0 22px;position:relative;overflow:hidden}.launcher-hero:after{content:"";position:absolute;width:240px;height:240px;border:32px solid #51676025;border-radius:50%;right:-85px;top:-45px;pointer-events:none}.launcher-eyebrow{color:var(--ae-accent);letter-spacing:.15em;font-size:10px}.launcher-hero h2{font-size:38px!important;margin:20px 0 12px!important}.launcher-hero p{color:var(--ae-muted);max-width:430px;margin-bottom:26px}.launcher-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.launcher-stat{padding:24px;background:var(--ae-surface-2);border:1px solid var(--ae-border);border-radius:6px;display:grid;gap:8px}.launcher-stat strong{font:700 34px var(--display);color:var(--ae-accent)}.launcher-stat span{font-size:12px;color:var(--ae-muted)}.launcher-note{border-top:1px solid var(--ae-border);margin-top:32px;padding-top:24px;font-size:13px;color:var(--ae-muted)}.launcher-note p{color:var(--ae-muted)}
.launcher-section{padding:24px 0;border-top:1px solid var(--ae-border)}.launcher-muted{color:var(--ae-muted);margin:6px 0 18px;font-size:12px!important}#menu #modePick,#menu #mapPick,.launcher-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#menu .launcher-choice{display:flex;flex-direction:column;align-items:flex-start;gap:9px;text-transform:none;text-align:left;padding:18px;background:var(--ae-surface-2);border:1px solid var(--ae-border);border-radius:6px;color:var(--ae-text);font-family:var(--ae-font);font-size:13px;letter-spacing:0;cursor:pointer;min-width:0}#menu .launcher-choice strong{font:600 21px var(--display);letter-spacing:.03em}#menu .launcher-choice span{font-size:12px;line-height:1.55;color:var(--ae-muted)}#menu .launcher-choice small{font-size:10px;color:var(--ae-muted);margin-top:auto}#menu .launcher-choice[aria-pressed="true"]{border-color:var(--ae-accent);background:var(--ae-surface-3);box-shadow:inset 3px 0 var(--ae-accent)}#menu .launcher-choice[aria-pressed="true"] strong{color:var(--ae-accent)}
#menu button{transition:border-color .15s,background .15s}#menu button:disabled{opacity:.38;cursor:not-allowed}#menu input:disabled{opacity:.5;cursor:not-allowed}#menu button:focus-visible,#menu input:focus-visible,#menu select:focus-visible,#menu summary:focus-visible{outline:2px solid var(--ae-accent);outline-offset:3px}#menu button:not(:disabled):hover{border-color:var(--ae-accent)}
#menu .launcher-primary{font:700 15px var(--ae-font);padding:14px 26px;background:var(--ae-accent);color:var(--ae-on-accent);border:1px solid var(--ae-accent);border-radius:5px;cursor:pointer;position:relative;z-index:1}#menu .launcher-actions button,#menu .launcher-section>button{font:500 12px var(--ae-font);color:var(--ae-text);border:1px solid var(--ae-border-strong);background:var(--ae-surface-2);border-radius:4px;padding:10px 15px;cursor:pointer;margin-right:8px}.launcher-actions{display:flex;gap:10px;flex-wrap:wrap;margin:25px 0 15px}
.launcher-field{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:650px;color:var(--ae-text);font-size:13px;margin:18px 0}.launcher-field input[type=number],.launcher-field select{background:var(--ae-surface-2);color:var(--ae-text);border:1px solid var(--ae-border-strong);border-radius:4px;padding:9px 12px;font:13px var(--ae-font);width:200px;box-sizing:border-box}.launcher-field input[type=range]{flex:1;max-width:240px}.launcher-field output{font-size:12px;min-width:46px;text-align:right}.launcher-field input[type=checkbox],.launcher-addon-toggle input{accent-color:var(--ae-accent);width:17px;height:17px}.launcher-field input[type=range]{accent-color:var(--ae-accent)}.launcher-package{padding:18px 20px;margin:12px 0;border:1px solid var(--ae-border);border-radius:5px;background:var(--ae-surface-2)}.launcher-package-heading{display:flex;justify-content:space-between;gap:15px;align-items:center}.launcher-package-heading strong{font:600 20px var(--display)}.launcher-package p{color:var(--ae-muted);font-size:12px!important;margin:9px 0}.launcher-package small{color:var(--ae-muted);font-size:10px}.launcher-addon-toggle{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--ae-muted);margin-top:12px}.launcher-launch{padding:24px;background:var(--ae-surface-2);border:1px solid var(--ae-border);border-radius:6px;display:grid;gap:12px;margin-top:20px}.launcher-session-summary{font:600 25px var(--display);color:var(--ae-accent)}.launcher-launch small{color:var(--ae-muted);font-size:12px}.launcher-launch button{justify-self:start}.launcher-warning,#menuError{color:var(--ae-danger)!important}#menuError{padding:16px;border:1px solid var(--ae-danger);background:var(--ae-danger-bg);border-radius:5px;font-size:13px}#menu details{margin-top:25px;border-top:1px solid var(--ae-border);padding-top:20px;font-size:13px;color:var(--ae-muted)}#menu summary{cursor:pointer}.launcher-keys{display:grid;grid-template-columns:180px 1fr;gap:15px;font-size:12px;line-height:1.6}.launcher-keys dt{color:var(--ae-accent)}.launcher-keys dd{margin:0;color:var(--ae-muted)}.launcher-loading{padding:45px;color:var(--ae-accent);font:24px var(--display)}
body:has(#menu:not([hidden])) .hud,body:has(#menu:not([hidden])) #modeHud,body:has(#menu:not([hidden])) #toolHint{visibility:hidden}
@media(min-width:1000px){.launcher-sidebar{position:sticky;top:0;height:100vh;box-sizing:border-box}.launcher-shell{align-items:start}}
@media(max-width:800px){.launcher-shell{grid-template-columns:1fr}.launcher-sidebar{padding:20px;border-right:0;border-bottom:1px solid var(--ae-border)}.launcher-brand{font-size:25px}.launcher-brand span{display:inline;font-size:25px}.launcher-tagline,.launcher-status{display:none}.launcher-sidebar nav{display:flex;gap:3px;flex-wrap:wrap;margin-top:16px}.launcher-sidebar button{padding:10px;font-size:12px}.launcher-sidebar button small{font-size:8px}.launcher-content{padding:22px}.launcher-header{margin-bottom:25px}.launcher-hero{padding:25px}.launcher-overview{gap:8px}.launcher-stat{padding:15px}.launcher-field{gap:12px}.launcher-field select,.launcher-field input[type=number]{width:145px}.launcher-package-heading{align-items:start;flex-direction:column;gap:5px}.launcher-keys{grid-template-columns:110px 1fr}}
@media(max-width:480px){#menu #modePick,#menu #mapPick{grid-template-columns:1fr}.launcher-field{flex-wrap:wrap}.launcher-field input[type=range]{max-width:150px}.launcher-badge{display:none}.launcher-hero h2{font-size:30px!important}}

.launcher-field input[type=text],.launcher-field input[type=password]{background:var(--ae-surface-2);color:var(--ae-text);border:1px solid var(--ae-border-strong);border-radius:4px;padding:9px 12px;font:13px var(--ae-font);width:280px;max-width:60vw;box-sizing:border-box}#joinForm .launcher-primary{margin-top:8px}#joinStatus{min-height:1.4em}

/* Join Server: server browser */
.sb{display:grid;grid-template-columns:190px minmax(0,1fr) 320px;gap:14px;min-height:460px;margin-bottom:22px}
.sb-side{background:var(--ae-surface);border:1px solid var(--ae-border);border-radius:6px;padding:14px;display:flex;flex-direction:column;gap:6px}
.sb-label{font-size:10px;letter-spacing:.15em;color:var(--ae-accent);margin:8px 0 4px}
.sb-filters{display:flex;flex-direction:column;gap:4px}
#menu .sb-filter{display:flex;justify-content:space-between;align-items:center;font:600 13px var(--ae-font);color:var(--ae-text);background:transparent;border:1px solid transparent;border-radius:4px;padding:9px 10px;cursor:pointer;text-align:left}
#menu .sb-filter small{font-size:11px;color:var(--ae-muted);background:var(--ae-surface-3);border-radius:10px;padding:1px 8px}
#menu .sb-filter:hover{background:var(--ae-surface-2)}
#menu .sb-filter[aria-pressed="true"]{background:var(--ae-surface-3);border-color:var(--ae-border-strong);color:var(--ae-accent);box-shadow:inset 3px 0 var(--ae-accent)}
#menu .sb-side-btn{font:500 12px var(--ae-font);color:var(--ae-text);border:1px solid var(--ae-border-strong);background:var(--ae-surface-2);border-radius:4px;padding:9px 10px;cursor:pointer;text-align:left}
#menu .sb-side-btn:hover:not(:disabled){border-color:var(--ae-accent)}#menu .sb-side-btn:disabled{opacity:.5}
.sb-toggle{display:flex;gap:8px;align-items:center;font-size:11px;color:var(--ae-muted);margin-top:10px}.sb-toggle input{accent-color:var(--ae-accent)}
#menu .sb-status{font-size:11px;color:var(--ae-muted);line-height:1.5;margin:auto 0 0}
.sb-main{background:var(--ae-surface);border:1px solid var(--ae-border);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;min-width:0}
.sb-row{display:grid;grid-template-columns:minmax(0,1fr) 150px 80px 70px;gap:10px;align-items:center;padding:0 14px}
.sb-head{background:var(--ae-surface-2);border-bottom:1px solid var(--ae-border);padding:0 14px}
#menu .sb-col{font:700 10px var(--ae-font);letter-spacing:.12em;text-transform:uppercase;color:var(--ae-muted);background:none;border:0;padding:11px 0;text-align:left;cursor:pointer}
#menu .sb-col:hover{color:var(--ae-accent)}
.sb-list{overflow:auto;flex:1;max-height:560px}
.sb-chev{color:var(--ae-accent);width:12px}.sb-gplayers{margin-left:auto;color:var(--ae-accent);font-weight:700;font-size:12px}
.sb-server{padding:9px 14px;border-bottom:1px solid var(--ae-border);font-size:12px;color:var(--ae-text);cursor:pointer;outline:none}
.sb-server:nth-child(even){background:var(--ae-surface)}.sb-server:hover,.sb-server:focus{background:var(--ae-surface-2)}
.sb-server.selected{background:var(--ae-surface-3);box-shadow:inset 3px 0 var(--ae-accent)}
.sb-name{display:flex;align-items:center;gap:6px;min-width:0}.sb-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ae-text)}
.sb-owner{color:var(--ae-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-players{font-variant-numeric:tabular-nums}.sb-players.full{color:var(--ae-danger)}
.sb-ping{font-variant-numeric:tabular-nums;color:var(--ae-ok)}.sb-ping.mid{color:var(--ae-warn)}.sb-ping.bad{color:var(--ae-danger)}
.sb-tag{font:700 9px var(--ae-font);letter-spacing:.1em;padding:2px 5px;border-radius:3px;flex:none}
.sb-tag.sample{background:#4a3a1c;color:#f0c97a;border:1px solid #7a6030}.sb-tag.official{background:#1c4a45;color:#7fe0d4;border:1px solid #2f7a70}.sb-tag.lock{background:#3b2822;color:#f1b195;border:1px solid #80543c}
.sb-lock{font-size:11px;flex:none}
#menu .sb-empty{padding:30px;color:var(--ae-muted);text-align:center}
.sb-detail{background:var(--ae-surface);border:1px solid var(--ae-border);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}
.sb-banner{height:130px;background:linear-gradient(120deg,#1f3a3f,#2c5d63 55%,#132229);position:relative;flex:none;overflow:hidden}
.sb-banner img{width:100%;height:100%;object-fit:cover}
.sb-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,#111d25)}
.sb-banner-mode{position:absolute;left:14px;bottom:10px;z-index:1;font:700 11px var(--ae-font);letter-spacing:.15em;text-transform:uppercase;color:#fff;text-shadow:0 1px 3px #000}
.sb-detail-body{padding:14px 16px 18px;display:flex;flex-direction:column;gap:8px;overflow:auto}
.sb-tags{display:flex;gap:6px;flex-wrap:wrap}
#menu .sb-detail h3{font:700 17px var(--ae-font);margin:2px 0 0;color:var(--ae-text);line-height:1.3}
#menu .sb-owner-line{color:var(--ae-accent);font-size:12px;margin:0}
.sb-motd{margin:4px 0;padding:9px 12px;border-left:3px solid var(--ae-accent);background:var(--ae-surface-2);font-size:12px;color:var(--ae-text);line-height:1.5}
#menu .sb-desc{color:var(--ae-muted);font-size:12px;margin:0}
.sb-facts{display:grid;grid-template-columns:80px 1fr;gap:5px 10px;font-size:12px;margin:6px 0 10px}.sb-facts dt{color:var(--ae-muted)}.sb-facts dd{margin:0;color:var(--ae-text);overflow-wrap:anywhere}
#menu .sb-join{width:100%}#menu .sb-join:disabled{opacity:.45;cursor:not-allowed}
#menu .sb-hint{padding:16px;color:var(--ae-muted);font-size:12px}
#joinForm[hidden]{display:none}
@media (max-width:1100px){.sb{grid-template-columns:170px minmax(0,1fr)}.sb-detail{grid-column:1/-1}}

/* Join Server: drill-in mode list */
.sb-crumbs{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--ae-border);background:var(--ae-surface-2);font-size:12px;min-height:22px}
#menu .sb-back{font:600 12px var(--ae-font);color:var(--ae-on-accent);background:var(--ae-accent);border:0;border-radius:4px;padding:6px 12px;cursor:pointer;margin-right:4px}
#menu .sb-crumb{font:600 12px var(--ae-font);color:var(--ae-accent);background:none;border:0;padding:0;cursor:pointer}#menu .sb-crumb:disabled{color:var(--ae-text);cursor:default}
.sb-sep{color:var(--ae-subtle)}.sb-crumb-current{color:var(--ae-accent);font-size:13px}.sb-crumb-meta{margin-left:auto;color:var(--ae-muted);font-size:11px}
.sb-section:focus,.sb:focus{outline:none}.sb-head[hidden]{display:none}
#menu .sb-mode{display:grid;grid-template-columns:44px minmax(0,1fr) 90px 90px 16px;gap:14px;align-items:center;width:100%;padding:13px 16px;background:transparent;border:0;border-bottom:1px solid var(--ae-border);color:var(--ae-text);cursor:pointer;text-align:left;font:13px var(--ae-font)}
#menu .sb-mode:hover,#menu .sb-mode:focus{background:linear-gradient(90deg,var(--ae-surface-3),var(--ae-surface-2));outline:none}
.sb-mode-icon{width:44px;height:44px;border-radius:6px;display:grid;place-items:center;font:800 20px var(--ae-font);color:#142029;background:linear-gradient(135deg,#5fc9bd,#2c6d68)}
.sb-mode:nth-child(4n+2) .sb-mode-icon{background:linear-gradient(135deg,#e2bb80,#8a6430)}.sb-mode:nth-child(4n+3) .sb-mode-icon{background:linear-gradient(135deg,#9ab4f0,#3d5590)}.sb-mode:nth-child(4n+4) .sb-mode-icon{background:linear-gradient(135deg,#d99ad0,#7a3d70)}
.sb-mode-info{display:flex;flex-direction:column;gap:3px;min-width:0}.sb-mode-info strong{font:700 16px var(--ae-font);letter-spacing:.02em}.sb-mode-info small{color:var(--ae-muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-mode-count{color:var(--ae-muted);font-size:12px}.sb-mode .sb-chev{color:var(--ae-accent);font-size:20px}

/* Anything Engine main menu (docs/DESIGN_GUIDE.md): text wordmark, pill column, devlog card. Colours: assets/ui/tokens.css. */
#menu{--display:var(--ae-font)}
#menu h1{text-transform:none;font-weight:900;letter-spacing:-.01em}#menu h2{font-weight:800;letter-spacing:0}
.launcher-sidebar{background:var(--ae-bg);border-right:0;padding:36px 28px}
.launcher-brand{font:900 30px/1.05 var(--ae-font);color:var(--ae-accent);letter-spacing:-.01em}
.launcher-tagline{color:var(--ae-muted);margin:10px 0 34px}
.launcher-sidebar nav{gap:10px}
#menu .launcher-sidebar nav .launcher-pill{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:13px 22px;border-radius:var(--ae-radius-pill);border:1px solid var(--ae-border);background:var(--ae-surface);color:var(--ae-text);font:800 16px var(--ae-font);box-shadow:var(--ae-shadow)}
#menu .launcher-sidebar nav .launcher-pill:not(:disabled):hover{border-color:var(--ae-accent);background:var(--ae-surface-2)}
#menu .launcher-sidebar nav .launcher-pill[aria-current="page"]{border-color:var(--ae-accent);color:var(--ae-text);background:var(--ae-accent-soft)}
#menu .launcher-sidebar nav .launcher-pill.launcher-play{background:var(--ae-accent);border-color:var(--ae-accent);color:var(--ae-on-accent);font-size:18px}
#menu .launcher-sidebar nav .launcher-pill.launcher-play:not(:disabled):hover{background:var(--ae-accent-hover)}
#menu .launcher-pill small{font:700 10px var(--ae-font);letter-spacing:.06em;text-transform:uppercase;color:var(--ae-subtle);margin:0}
.launcher-more{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:18px}
#menu .launcher-more button{padding:4px 0;border:0;background:none;color:var(--ae-muted);font:700 13px var(--ae-font);border-radius:4px}
#menu .launcher-more button[aria-current="page"],#menu .launcher-more button:hover{color:var(--ae-accent)}
.launcher-header{border-bottom-color:var(--ae-border)}
.launcher-player{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--ae-radius-pill);background:var(--ae-surface);border:1px solid var(--ae-border);color:var(--ae-text);font:700 12px var(--ae-font);letter-spacing:0}
.launcher-player:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ae-accent)}
.launcher-hero{background:var(--ae-surface);border-color:var(--ae-border);border-radius:var(--ae-radius);box-shadow:var(--ae-shadow)}
.launcher-hero:after{border-color:color-mix(in srgb,var(--ae-accent) 18%,transparent)}
.launcher-stat,.launcher-package,#menu .launcher-choice,.launcher-launch{border-radius:var(--ae-radius)}
#menu .launcher-primary{border-radius:var(--ae-radius-pill);font:800 15px var(--ae-font)}
.launcher-home-bottom{display:flex;justify-content:flex-end;margin-top:28px}
.launcher-devlog{width:min(380px,100%);padding:20px 22px;background:var(--ae-surface);border:1px solid var(--ae-border);border-radius:var(--ae-radius);box-shadow:var(--ae-shadow)}
.launcher-devlog .launcher-eyebrow{color:var(--ae-accent);font-weight:800}
#menu .launcher-devlog h3{font:800 18px var(--ae-font);margin:8px 0 4px;color:var(--ae-text)}
#menu .launcher-devlog time{font-size:11px;color:var(--ae-subtle)}
#menu .launcher-devlog p{margin:8px 0 0;color:var(--ae-muted)}
@media(max-width:800px){.launcher-sidebar{padding:18px}.launcher-brand{font-size:22px}#menu .launcher-sidebar nav{display:flex;flex-wrap:wrap}#menu .launcher-sidebar nav .launcher-pill{width:auto;padding:9px 14px;font-size:13px}#menu .launcher-pill small{display:none}.launcher-home-bottom{justify-content:stretch}}
