:root{color-scheme:dark;--ink:#f2eadb;--muted:#aaa49d;--gold:#d6b66c;--panel:#17191f;--line:#393b43;--blue:#9dd8df}
*{box-sizing:border-box}
body{margin:0;background:#101115;color:var(--ink);font:15px/1.45 system-ui,-apple-system,sans-serif}
button,input{font:inherit}
button{color:var(--ink);background:#272a32;border:1px solid #555661;border-radius:6px;padding:8px 12px;cursor:pointer}
button:hover:not(:disabled),button:focus-visible{border-color:var(--gold);outline:2px solid #d6b66c55}
button:disabled{opacity:.45;cursor:default}
.roster-shell{max-width:1120px;margin:auto;padding:20px}
.roster-header{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding-bottom:12px}
h1{font:600 clamp(24px,4vw,34px)/1.15 Georgia,serif;margin:0}
.eyebrow{color:var(--gold);font-size:11px;letter-spacing:.16em;margin:0 0 6px}
.privacy-note,.status{color:var(--muted);margin:12px 0}
.filters{display:flex;align-items:center;flex-wrap:wrap;gap:12px 28px;padding:12px 14px;background:var(--panel);border:1px solid var(--line);border-radius:9px}
fieldset{border:0;margin:0;padding:0;display:flex;gap:12px;flex-wrap:wrap}
legend{color:var(--gold);font-size:12px;margin-bottom:5px}
.filters label{white-space:nowrap}
input{accent-color:var(--gold)}
.history-toggle{margin-left:auto}
.roster-layout{display:grid;grid-template-columns:minmax(250px,.78fr) minmax(330px,1.22fr);gap:16px}
.players{display:grid;gap:8px;align-content:start}
.player-card{width:100%;text-align:left;padding:12px;background:var(--panel);border:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:2px 12px}
.player-card[aria-pressed=true]{border-color:var(--gold);background:#25241f}
.player-name{font-weight:650;overflow-wrap:anywhere}
.player-state,.player-meta{font-size:12px;color:var(--muted)}
.player-state.online{color:var(--blue)}
.player-state.previous{color:var(--gold)}
.player-meta{grid-column:1/-1}
.pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px 0}
.detail{min-height:420px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:12px}
.detail-heading{display:flex;justify-content:space-between;gap:12px;align-items:start}
.detail-heading h2{font:600 22px Georgia,serif;margin:0}
.detail-heading p{margin:3px 0;color:var(--muted);font-size:13px}
.inspect{display:block;width:100%;height:min(42vw,330px);min-height:210px;margin:10px 0;background:#18191f;border-radius:6px;touch-action:none;cursor:grab}
.inspect:active{cursor:grabbing}
.inspect:focus-visible{outline:2px solid var(--gold)}
.orbit-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.orbit-presets{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.orbit-presets button{padding:7px 4px}
.orbit-presets button[aria-pressed=true]{border-color:var(--gold)}
.orbit-controls label{font-size:12px;color:var(--muted)}
.orbit-controls output{float:right;color:var(--ink)}
.orbit-controls input{display:block;width:100%;margin:5px 0}
.orbit-help{font-size:12px;color:var(--muted);margin:8px 0 12px}
.preview-status{min-height:22px;color:var(--muted);font-size:12px;margin:-4px 0 10px}
.preview-status.error{color:#ff9b9b}
.equipment{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;padding:0;margin:10px 0 0;list-style:none}
.equipment li{border-top:1px solid var(--line);padding:7px 0;font-size:13px;overflow-wrap:anywhere}
.equipment strong{color:var(--gold);font-weight:500}
.custom-parts{font-size:12px;color:var(--muted);margin:3px 0 0}
.empty-detail,.empty-list{color:var(--muted);text-align:center;padding:48px 10px}
@media(max-width:760px){.roster-shell{padding:12px}.roster-layout{grid-template-columns:1fr}.detail{grid-row:1}.history-toggle{margin-left:0}.inspect{height:280px}}
@media(max-width:430px){fieldset{gap:6px 10px}.equipment{grid-template-columns:1fr 1fr}.roster-header{align-items:flex-start}}
