*{box-sizing:border-box}body{margin:0;background:#050b13;color:#c8e0e5;font:14px system-ui,sans-serif;user-select:none}canvas#map{position:fixed;inset:0;width:100%;height:100%;touch-action:none}header{position:fixed;inset:0 0 auto;display:flex;gap:24px;padding:18px;background:#09121eee;align-items:center}header strong{letter-spacing:.18em}header span{color:#a8b8c8;font-size:11px}#status{margin-left:auto;color:#a4deca}#join{position:fixed;top:27%;left:50%;transform:translateX(-50%);width:min(520px,92vw);padding:30px;background:#0c1829f5;border:1px solid #466074}h1{font-size:25px;font-weight:500}p{line-height:1.6}#note{font-size:12px;color:#97acbc}button{background:#152b3b;border:1px solid #4b6c79;color:#d0e9e5;padding:9px 12px;cursor:pointer}button:disabled{opacity:.45;cursor:default}button[aria-pressed=true]{border-color:#a0e0c8;background:#255148}button:focus-visible,input:focus-visible{outline:2px solid #e6c978;outline-offset:3px}#hud{position:fixed;left:16px;top:85px;padding:15px;width:260px;background:#0b1725ed}#sync{color:#a4deca;font-size:12px}#mini{position:fixed;right:16px;bottom:20px;width:180px;height:180px;background:#0b1725}footer{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:min(720px,calc(100vw - 440px));padding:12px;background:#0b1725ed}#tools{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}label{display:flex;align-items:center;gap:10px}#feedback{display:block;margin-top:8px;font-size:12px}#commitment{flex:1}@media(max-width:900px){footer{left:12px;transform:none;width:calc(100vw - 220px)}header{gap:10px}header span{display:none}}
[hidden]{display:none!important}#join{top:50%;transform:translate(-50%,-50%);max-height:calc(100vh - 100px);overflow:auto;width:min(580px,92vw);background:#0b1727ed}body:has(#join:not([hidden])){background:linear-gradient(#050b1390,#050b13c0),url('/assets/menu/quiet-starfield.png') center/cover fixed}body:has(#join:not([hidden])) #mini{display:none}h2{font-size:14px;letter-spacing:.1em;font-weight:500;color:#a4deca}input:not([type=range]){min-width:0;padding:9px;background:#122331;color:#d0e9e5;border:1px solid #4b6c79;font:inherit}#lobby-name{flex:1}#public-game{margin:25px 0;padding:20px;border:1px solid #a4deca55;background:#a4deca08}#countdown,#room-countdown{font-size:23px;color:#e4c77f;margin:12px 0}#private-actions{display:flex;gap:12px;flex-wrap:wrap}#join-code-form{display:flex;gap:5px;flex:1}#join-code{width:105px;flex:1}#player-list{list-style:none;padding:0;max-height:260px;overflow:auto}#player-list li{padding:8px 0;border-bottom:1px solid #a4deca22}#lobby-feedback{color:#e4c77f}#back-menu{color:#a4deca}#note{font-size:11px;line-height:1.6}
.open-games-heading{margin:25px 0 10px}#public-game{position:relative;isolation:isolate;min-height:230px;margin-top:0;overflow:hidden;background:#0d1c2b}#map-card-preview{position:absolute;z-index:-2;right:8px;top:8px;width:52%;height:calc(100% - 16px);object-fit:contain;opacity:.85;pointer-events:none}#public-game::before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(90deg,#0d1c2b 0%,#0d1c2bed 35%,#0d1c2b00 62%)}#public-game h3{margin:0 0 8px;font-size:22px;font-weight:500;color:#e0ece9}#map-card-detail{margin:0;color:#a7bec8;font-size:12px}#public-game #countdown{font-size:20px;max-width:55%}#public-game #public-count{font-size:13px}#public-game>h3,#public-game>p,#public-game>button{position:relative;text-shadow:0 1px 4px #07101b}
#join:has(#lobby-members:not([hidden])),#join:has(#lobby-list-screen:not([hidden])){width:min(680px,94vw)}
#lobby-name-label{margin-bottom:22px}#lobby-list-screen #join-code-form{margin:22px 0}#lobby-list-screen h2{margin-top:24px}
.open-lobby{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:12px;margin:8px 0;background:#10212d;border-color:#334d5b}
.open-lobby img{width:72px;height:72px;object-fit:contain;background:#09141f;pointer-events:none}.open-lobby-copy{flex:1;min-width:0}.open-lobby strong,.open-lobby small{display:block}.open-lobby strong{font-weight:500;color:#c1e8df}.open-lobby small{font-size:11px;color:#a0b7c3;line-height:1.6;margin-top:3px}.open-lobby-meta{font-size:12px;text-align:right;flex:none}.open-lobby time{display:block;margin-top:8px;color:#e2c789}
.room-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}#room-code{font:12px monospace;letter-spacing:.1em;user-select:text}.room-visibility{display:flex;gap:8px}.room-visibility button{flex:1}#visibility-detail{font-size:12px;color:#a3b6c0;line-height:1.6;margin:12px 0 24px}#room-player-count{font-size:12px;color:#9bb8c5}#room-countdown{font-size:17px}
.room-actions{position:sticky;bottom:-30px;display:flex;gap:8px;justify-content:flex-end;margin:20px -30px -10px;padding:15px 30px;background:#0b1727;border-top:1px solid #334b57;z-index:3}.room-actions #leave-lobby{margin-right:auto}#join:has(#lobby-members:not([hidden])) #back-menu{display:none}#join:has(#lobby-members:not([hidden])) #note{margin-top:24px}#lobby-feedback:empty{display:none}
@media(max-width:500px){.open-lobby{gap:8px}.open-lobby img{width:48px;height:58px}.room-actions{padding:12px}.room-actions button{font-size:11px;padding:10px 8px}}

#spawn-selection{position:fixed;left:20px;top:80px;padding:20px;max-width:320px;background:#0b1727ed;border:1px solid #466074}#spawn-roster{padding-left:16px;font-size:12px;line-height:1.8}#spawn-time{font-size:24px;color:#e4c77f}

#network-results {text-align:left;margin:18px 0 24px}
.results-meta,.results-note {color:#8dabb5;font-size:12px}
.results-table-scroll {overflow:auto;max-height:48vh}
.results-table {width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.results-table th {font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#8dabb5;position:sticky;top:0;background:#0b151e}
.results-table td,.results-table th {padding:12px 10px;border-bottom:1px solid #293c48;text-align:right;white-space:nowrap}
.results-table td:first-child,.results-table th:first-child {text-align:left}
.results-table button,.results-back {background:none;border:0;color:#b6dddb;font:inherit;cursor:pointer;text-align:left;padding:4px 0}
.results-table button:hover,.results-back:hover {color:white;text-decoration:underline}
.results-own {background:#87d8c60b}
#network-results h3 {font-size:24px;margin:16px 0 8px;color:#e2efed}
.results-style {font-size:20px;font-weight:500;color:var(--mint);margin:12px 0 6px}
.results-support {color:#b6c8cc;font-size:13px}
.results-secondary {display:flex;gap:12px;align-items:baseline;font-size:12px;color:#a8bac2;margin:18px 0;padding:12px 0;border-block:1px solid #293c48}
.results-secondary strong {color:#ddc48c;white-space:nowrap}
.results-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 18px;margin:24px 0}
.results-grid dt {font-size:11px;color:#8dabb5;margin-bottom:6px}
.results-grid dd {font-size:19px;color:#d1e7e4;margin:0}
#network-result-dialog{background:#0b151e;color:#c8e0e5;border:1px solid #466074;width:min(1000px,94vw);max-height:90vh;padding:26px}#network-result-dialog::backdrop{background:#020810cc}
#recovery-panel { position:fixed;z-index:1002;top:90px;left:50%;transform:translateX(-50%);width:min(460px,calc(100vw - 32px));box-sizing:border-box;padding:18px 22px;text-align:center;background:#0c1925f5;border:1px solid #587781;border-radius:6px;box-shadow:0 12px 40px #0008; }
#recovery-message { margin:0 0 14px;color:#d3e5e7;font:15px/1.5 system-ui,sans-serif;overflow-wrap:anywhere; }
#recovery-leave { padding:10px 18px;background:#17303a;color:#b9e5da;border:1px solid #51747c;border-radius:3px;cursor:pointer; }
#recovery-leave:focus-visible { outline:2px solid #b9e5da;outline-offset:3px; }
