:root{--navy: #1B3A5C;--navy-deep: #10263D;--gold: #D4AF37;--ink: #F4F1E8;--muted: #A9B6C6;--line: rgba(212, 175, 55, .25);color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--navy-deep);color:var(--ink)}button{font:inherit}.splash{height:100%;display:grid;place-content:center;text-align:center;gap:8px;color:var(--muted)}.brand-mark{font-family:Georgia,Times New Roman,serif;font-size:22px;letter-spacing:.04em;color:var(--gold)}.lobby{height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--navy);border-bottom:1px solid var(--line)}.host-line{display:flex;align-items:center;gap:8px;flex:1;min-width:0;color:var(--ink)}.host-line span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-actions{display:flex;align-items:center;gap:8px}.conn{color:var(--gold);font-size:13px}.content{flex:1;display:grid;grid-template-columns:1fr 280px;min-height:0}.grid{overflow-y:auto;padding:16px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start}.card{position:relative;aspect-ratio:4 / 3;border:1px solid var(--line);border-radius:12px;cursor:pointer;background:linear-gradient(160deg,var(--accent) 0%,var(--navy-deep) 115%);color:var(--ink);display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:10px;text-align:left;transition:transform .12s ease,box-shadow .12s ease}.card:hover,.card:focus-visible{transform:translateY(-2px);box-shadow:0 6px 18px #00000059;outline:none}.card-code{font-size:11px;color:var(--gold);letter-spacing:.08em}.card-title{font-weight:600;font-size:15px}.card-ribbon{position:absolute;top:8px;right:8px;font-size:11px;padding:2px 8px;border-radius:999px;background:#10263dcc;border:1px solid var(--line)}.roster{border-left:1px solid var(--line);background:#1b3a5c59;padding:12px;overflow-y:auto}.roster h2{font-size:14px;font-weight:600;color:var(--muted);margin:4px 4px 12px}.roster .count{color:var(--gold);margin-left:6px}.roster-list{display:flex;flex-direction:column;gap:8px}.pc-card{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:8px;border:1px solid;border-radius:10px;background:#10263d99}.pc-portrait{grid-row:1 / span 2;width:44px;height:44px;border-radius:50%;position:relative;overflow:visible;display:grid;place-items:center;background:var(--navy)}.pc-portrait img{width:100%;height:100%;border-radius:50%;object-fit:cover}.pc-crown{position:absolute;top:-12px;left:50%;transform:translate(-50%)}.pc-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc-me{color:var(--muted);font-size:12px}.pc-status{font-size:12px;color:var(--gold)}.pc-actions{grid-column:2;margin-top:4px}.btn{border:1px solid var(--line);background:var(--navy);color:var(--ink);border-radius:8px;padding:6px 12px;cursor:pointer}.btn:hover{border-color:var(--gold)}.btn.gold{background:var(--gold);color:var(--navy-deep);border-color:var(--gold);font-weight:600}.btn.ghost{background:transparent}.btn.small{padding:3px 8px;font-size:12px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;z-index:10}.sheet{width:min(420px,calc(100vw - 32px));background:var(--navy);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px}.sheet-banner{border-radius:10px;padding:18px 14px;font-weight:600;font-size:18px;background:linear-gradient(160deg,var(--accent, var(--navy)) 0%,var(--navy-deep) 120%)}.muted{color:var(--muted);margin:0}.select{background:var(--navy-deep);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px}.row{display:flex;justify-content:flex-end;gap:8px}.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:20;background:var(--navy);border:1px solid var(--gold);color:var(--ink);padding:10px 16px;border-radius:10px;max-width:calc(100vw - 32px)}@media(max-width:640px){.content{grid-template-columns:1fr;grid-template-rows:1fr auto}.grid{grid-template-columns:repeat(2,1fr);padding:12px;gap:10px}.roster{border-left:0;border-top:1px solid var(--line);max-height:40vh}.sheet-backdrop{place-items:end center}.sheet{width:100vw;border-radius:14px 14px 0 0}}
