:root{color-scheme:dark;--bg:#0e1015;--panel:#171a21;--panel2:#20242d;--line:#373b43;--gold:#d7ae56;--gold2:#f1d089;--red:#a93935;--muted:#9297a1;--text:#e7e5df;--green:#67c889}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 12% 0%,#27232a 0,#111319 38%,#0b0d11 100%);color:var(--text);font-family:'Noto Sans SC',sans-serif}
.topbar{height:82px;padding:0 max(24px,calc((100vw - 1340px)/2));display:flex;align-items:center;gap:14px;border-bottom:1px solid #39363a;background:#111318e8;box-shadow:0 8px 28px #0005}.brand-mark{width:44px;height:44px;display:grid;place-items:center;background:#2c241b;border:1px solid var(--gold);color:var(--gold2);font:700 27px Rajdhani,sans-serif;transform:skew(-6deg);text-shadow:0 0 12px #f1d08955}.brand-copy{flex:1}.eyebrow{font:600 11px Rajdhani,sans-serif;letter-spacing:2px;color:var(--gold)}h1{margin:0;font-size:22px;letter-spacing:2px}.top-status{display:flex;align-items:center;gap:9px;color:#c9c7c1;font-size:13px}.dot{width:9px;height:9px;border-radius:50%;background:#737780;box-shadow:0 0 9px #73778088}.dot.online{background:var(--green);box-shadow:0 0 10px #67c88988}.dot.error{background:#e17067;box-shadow:0 0 10px #e1706788}
.layout{max-width:1340px;margin:28px auto 0;padding:0 24px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.game-column{min-width:0}.stage-frame{padding:9px;background:linear-gradient(145deg,#302b2b,#16191f 26%,#0b0d10);border:1px solid #4c4540;box-shadow:0 16px 50px #0008}.stage{width:100%;aspect-ratio:850/530;background:#07080a;overflow:hidden}.stage ruffle-player{width:100%;height:100%;display:block}.stage-footer{display:flex;justify-content:space-between;color:#89847e;font:600 11px Rajdhani,sans-serif;letter-spacing:1.2px;padding:8px 3px 0}.notice{display:flex;gap:12px;align-items:baseline;margin:12px 3px;color:#9599a2;font-size:12px;line-height:1.65}.notice b{color:var(--gold2);white-space:nowrap}
.side-panel{background:linear-gradient(155deg,#1b1e25,#14161c);border:1px solid #49433c;box-shadow:0 12px 35px #0005;padding:20px 18px;position:relative}.side-panel:before{content:'';position:absolute;top:-1px;left:18px;width:76px;border-top:2px solid var(--gold)}.panel-title{display:flex;align-items:center;gap:11px;margin:0 0 20px}.sigil{width:38px;height:38px;display:grid;place-items:center;border:1px solid #8d7040;background:#30271d;color:var(--gold2);font-size:19px}.panel-title h2{margin:0;font-size:17px;letter-spacing:1px}.panel-title p{margin:1px 0 0;color:#858892;font:600 11px Rajdhani,sans-serif;letter-spacing:1.5px}.field-label{display:block;margin:11px 0 6px;color:#a8a9ae;font-size:12px}.field{display:block;width:100%;height:38px;padding:0 11px;background:#101217;border:1px solid #42454c;color:#eeece6;font:500 14px 'Noto Sans SC',sans-serif;outline:none}.field:focus{border-color:#bc9550;box-shadow:0 0 0 2px #bc955022}.button{width:100%;height:41px;margin-top:12px;cursor:pointer;border:1px solid #706249;font:700 13px 'Noto Sans SC',sans-serif;letter-spacing:.5px;transition:filter .12s,transform .12s}.button:hover:not(:disabled){filter:brightness(1.15);transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.55}.secondary{color:#e1d5ba;background:#29251f}.primary{color:#241d11;background:linear-gradient(180deg,#efcf86,#c49340);border-color:#f0d391;box-shadow:inset 0 1px #fff5}.text-button{height:32px;background:transparent;color:#aaa39a;border-color:transparent;margin-top:4px}.divider{height:1px;background:linear-gradient(90deg,#756242,#37383e 70%,transparent);margin:21px 0 16px}.players-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600}.count{color:var(--gold2);font:700 13px Rajdhani,sans-serif}.player-list{margin:10px 0 12px;min-height:98px;padding:6px;background:#101217;border:1px solid #30333a}.player-row{display:flex;align-items:center;gap:9px;padding:8px 5px;border-bottom:1px solid #25282e;font-size:12px}.player-row:last-child{border-bottom:0}.player-icon{width:22px;height:22px;display:grid;place-items:center;background:#332a1e;color:var(--gold2);border:1px solid #6b5637;font:700 12px Rajdhani,sans-serif}.role{margin-left:auto;color:#a6a8ac;font-size:10px}.empty{padding:20px 6px;text-align:center;color:#777c84;font-size:12px}.lobby-status{min-height:32px;color:#a9a9ab;font-size:11px;line-height:1.5}.lobby-status.good{color:#83d39b}.lobby-status.bad{color:#ec978c}.latency{display:flex;justify-content:space-between;margin-top:9px;color:#777d86;font:600 11px Rajdhani,sans-serif;letter-spacing:.5px}.latency b{color:#c3c5c9}.small-note{margin-top:13px;color:#777b83;font-size:10px;line-height:1.65}.footer{text-align:center;color:#686c75;font:600 10px Rajdhani,sans-serif;letter-spacing:1.4px;padding:25px 10px 16px}
.loadout-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:-4px;color:var(--gold2);font-size:12px}.loadout-title span{color:#858892;font-size:9px;white-space:nowrap}.field[type=select],select.field{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#c5a362 50%),linear-gradient(135deg,#c5a362 50%,transparent 50%);background-position:calc(100% - 15px) 16px,calc(100% - 10px) 16px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:28px}
@media(max-width:980px){.layout{grid-template-columns:1fr;max-width:850px}.side-panel{display:grid;grid-template-columns:1fr 1fr;column-gap:12px}.panel-title,.divider,.players-head,.player-list,.lobby-status,.primary,.text-button,.latency,.small-note{grid-column:1/-1}.panel-title{margin-bottom:8px}.field-label{align-self:end}.side-panel .button.secondary{grid-column:1/-1;margin-top:10px}}
@media(max-width:560px){.topbar{height:70px;padding:0 14px}.top-status{font-size:11px}.layout{padding:0 10px;margin-top:12px;gap:12px}.stage-frame{padding:5px}.notice{font-size:11px}.side-panel{padding:16px 13px}}
.p2p-panel{background:#10131a;border:1px solid #33404f;border-left:3px solid #4f9d8f;padding:10px 12px;margin-top:4px}
.p2p-head{color:#7fd6c2;font:700 12px 'Noto Sans SC',sans-serif;letter-spacing:1px;margin-bottom:7px}
.p2p-line{color:#c9c7c1;font-size:13px;margin:4px 0}.p2p-line b{color:#e7e5df}
.p2p-line.small{color:#858892;font-size:11px;line-height:1.6}
.p2p-line.small b{color:#a8a9ae}
