:root{color-scheme:dark;--bg: #0f1115;--fg: #e6e6e6;--muted: #8a8f98;--accent: #ffb400;--panel: #1a1e26}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--fg);font:15px/1.5 system-ui,sans-serif;padding:16px}header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}header h1{margin:0;font-size:1.4rem}header .brand{color:inherit;text-decoration:none;display:block;cursor:pointer}header .brand:hover h1{color:var(--accent)}header .sub{margin:0;color:var(--muted)}code{color:var(--accent)}.hint{color:var(--muted)}a{color:var(--accent)}main{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}#screen{width:100%;max-width:1152px;aspect-ratio:4 / 3;background:#000;image-rendering:pixelated}#hud{margin:0 0 12px;padding:12px;background:var(--panel);border-radius:6px;font:13px/1.5 ui-monospace,monospace;white-space:pre}button{padding:8px 14px;border:0;border-radius:6px;background:var(--accent);color:#000;font-weight:600;cursor:pointer}@media(max-width:800px){main{grid-template-columns:1fr}}.cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:900px}.cols form{display:grid;gap:14px;align-content:start;padding:16px;background:var(--panel);border-radius:8px}h2{font-size:1.1rem;margin:0}label{display:grid;gap:6px}label.check{grid-template-columns:auto 1fr;align-items:center}small{color:var(--muted)}input,select{padding:8px 10px;border:1px solid #333a47;border-radius:6px;background:var(--bg);color:var(--fg);font:inherit}.row{display:flex;gap:10px}button.secondary{background:#2a2f3a;color:var(--fg)}.error{color:#ff7a7a;min-height:1.5em}#share{max-width:900px;padding:16px;background:var(--panel);border-radius:8px;margin-bottom:16px}#share p{margin:6px 0}.link{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.link code{background:var(--bg);padding:6px 10px;border-radius:6px;word-break:break-all}.link button{padding:4px 12px}@media(max-width:800px){.cols{grid-template-columns:1fr}}.link-button{background:none;color:var(--accent);padding:0;font:inherit;text-decoration:underline}.link-button.person{display:inline-flex;align-items:center;gap:6px;text-decoration:none;cursor:pointer}.link-button.person .nick{text-decoration:underline}dialog{background:var(--panel);color:var(--fg);border:1px solid #333a47;border-radius:8px;padding:20px;max-width:520px;width:calc(100% - 32px)}dialog::backdrop{background:#0009}#remap-dialog .row{flex-wrap:wrap}.remap-fields{display:grid;gap:8px;margin:4px 0}.remap-fields label{grid-template-columns:1fr}#pad-port-label label{display:inline}#pad-port-label select{width:auto;display:inline-block;margin:0 4px;padding:2px 6px}#remap-table{border-collapse:collapse;width:100%;margin:12px 0;font-size:14px}#remap-table td{padding:4px 8px;border-bottom:1px solid #2a2f3a}#remap-table td:first-child{color:var(--muted)}#remap-table tr.current td{color:var(--accent)}.prompt{min-height:1.5em;font-weight:600}.panel{display:grid;gap:14px;align-content:start;padding:16px;background:var(--panel);border-radius:8px;max-width:900px}.list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.list li{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--bg);border-radius:6px;border:1px solid #333a47}.list li.me{border-color:var(--accent)}.list li.head{border:0;background:none;padding:8px 0 0;color:var(--muted);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.list li.busy{color:var(--muted)}.list li button{padding:4px 12px}.list .status{color:var(--muted);font-size:13px}.list .empty{color:var(--muted);border:0;background:none;padding:4px 0}button.danger{background:#b23b3b;color:#fff}button.warn{background:#facc15;color:#111}button.info{background:#3b82f6;color:#fff}.settings{display:grid;gap:10px}.settings button{justify-self:stretch}.settings label{gap:4px}#screen-box{width:min(100%,1024px)}#stage.fill,#stage.fs{position:fixed;inset:0;z-index:10;background:#000;display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:1fr;gap:0;align-items:stretch}#stage.fill aside,#stage.fs aside{display:none}#stage.fill #screen-box,#stage.fs #screen-box{width:100vw;height:100%;min-height:0;display:grid;place-items:center}#stage.fill #screen,#stage.fs #screen{width:auto;height:auto;max-width:100vw}#stage.fill #fs-toggle,#stage.fs #fs-toggle,#stage.fill #fs-menu,#stage.fs #fs-menu{display:block}#stage.fill #settings-float,#stage.fs #settings-float{display:none}.popout-placeholder{aspect-ratio:4 / 3;display:grid;place-items:center;background:#000;color:var(--muted)}#screen-box{position:relative}#settings-float{display:none;position:absolute;top:8px;right:8px;padding:4px 10px;background:#00000080;color:var(--fg);opacity:.4}#settings-float:hover{opacity:1}#scoreboard{display:flex;justify-content:center;align-items:center;gap:10px;width:min(100%,1024px);padding:5px 12px;margin-bottom:8px;background:var(--panel);border-radius:8px;font-weight:600}#scoreboard .who{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}#scoreboard .mid{display:flex;flex-direction:column;align-items:center;gap:0;padding:0 6px}#scoreboard .set-info{font-size:11px;line-height:1.2;color:var(--muted);white-space:nowrap}#scoreboard .p1 #name-p1,#scoreboard .p1 .tag{color:var(--accent)}#scoreboard .p2 #name-p2,#scoreboard .p2 .tag{color:#60a5fa}#scoreboard .tag{font-size:12px;opacity:.8}#scoreboard .score{font-size:1.3rem;line-height:1;font-variant-numeric:tabular-nums;padding:0 4px}#scoreboard .score small{color:var(--muted);font-size:.9rem}#stage.fill #scoreboard,#stage.fs #scoreboard{margin:0;border-radius:0;padding:5px 12px;width:100vw;max-width:none;box-sizing:border-box}.finder{margin:12px 0}.finder .row{flex-wrap:wrap;gap:6px}#finder-report{margin:8px 0 0;padding:10px;background:var(--panel);border-radius:6px;font:12px/1.5 ui-monospace,monospace;white-space:pre-wrap}.stack label{display:block;margin:8px 0}.who{display:flex;align-items:center;gap:14px;margin-bottom:8px}#profile .who,#profile-dialog .who{flex-direction:column;justify-content:center;gap:6px;text-align:center}#profile .who h2,#profile-dialog .who h2{margin:0}.avatar{width:72px;height:72px;border-radius:50%;background:var(--panel);border:4px solid #e8e8e8;overflow:hidden;display:grid;place-items:center;color:var(--muted);font-size:12px;padding:0;cursor:pointer;position:relative}.avatar img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.avatar img[hidden]{display:none}.mini{display:inline-block;width:20px;height:20px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:6px;flex:none;border:2px solid #e8e8e8;box-sizing:border-box}.mini.empty{border:1px solid #3a4050;background:transparent;box-sizing:border-box}.pager{align-items:center;justify-content:center;gap:12px;margin-top:10px}table.stats{border-collapse:collapse;width:100%;font-size:13px;margin-top:8px}table.stats th{text-align:center;color:var(--muted);font-weight:400;padding:4px 8px;border-bottom:1px solid #3a4050;border-right:1px solid #3a4050}table.stats td{padding:4px 8px;text-align:center;border-bottom:1px solid #1e222b;border-right:1px solid #3a4050}table.stats td .faces,table.stats td .who-inline{justify-content:center}table.stats th:last-child,table.stats td:last-child{border-right:0}table.stats tr:nth-child(2n) td{background:#ffffff08}table.stats td.empty{color:var(--muted);text-align:center}.tabs{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.tabs button{padding:4px 10px;font-size:13px;background:var(--panel);color:var(--fg);border:1px solid #2a2f3a}.tabs button.active{background:var(--accent);color:#111;border-color:var(--accent)}#leaderboards{margin-top:16px}.big{font-size:40px;margin:8px 0;text-align:center}.set-info{grid-column:1 / -1;text-align:center;color:var(--muted);font-size:12px}#players li .status{margin-left:8px}#hud{position:absolute;top:8px;left:8px;margin:0;padding:8px 10px;box-sizing:border-box;background:#000000a6;font-size:11px;line-height:1.4;width:clamp(160px,calc(var(--gutter, 0px) - 16px),460px);white-space:pre-wrap;overflow-wrap:anywhere;z-index:2;pointer-events:none}#hud[hidden]{display:none!important}#fs-toggle{display:none;position:absolute;top:8px;right:8px;padding:6px 10px;line-height:0;z-index:3;opacity:.6}#fs-toggle svg{width:20px;height:20px;display:block}#fs-toggle .exit{font-size:16px;line-height:20px}#fs-toggle .exit,#stage.fs #fs-toggle .enter{display:none}#stage.fs #fs-toggle .exit{display:block}#fs-hint,#nav-hint{position:absolute;z-index:6;padding:8px 12px;border-radius:8px;background:#0b0d12eb;border:1px solid var(--accent);color:var(--accent);font-size:14px;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .18s ease,transform .18s ease,visibility 0s linear .18s}#fs-hint{top:48px;right:8px}.nav-anchor{position:relative;display:inline-flex}#nav-hint{top:calc(100% + 6px);left:0}#fs-hint:before,#nav-hint:before{content:"";position:absolute;top:-6px;width:10px;height:10px;background:#0b0d12eb;border-left:1px solid var(--accent);border-top:1px solid var(--accent);transform:rotate(45deg)}#fs-hint:before{right:14px}#nav-hint:before{left:18px}#fs-hint.show,#nav-hint.show{opacity:1;visibility:visible;transform:none;transition:opacity .18s ease,transform .18s ease,visibility 0s}#volume-pop output{min-width:3.2em;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}#fs-menu{display:none;position:absolute;top:8px;right:56px;padding:6px 12px;font-size:16px;z-index:3;opacity:.6}#stage.fill #screen-box,#stage.fs #screen-box{background:radial-gradient(ellipse at center,#1a1e26,#0b0d12 70%,#000)}#stage.fill #screen-box.art,#stage.fs #screen-box.art{background:#000}#screen-box .side{display:none}#stage.fill #screen-box.art .side,#stage.fs #screen-box.art .side{display:block;position:absolute;top:0;bottom:0;width:var(--gutter, 0px);background-image:var(--art);background-repeat:no-repeat}#screen-box.art #side-l{left:0;background-position:left top;background-size:calc(100% / var(--lf, .125)) 100%}#screen-box.art #side-r{right:0;background-position:right top;background-size:calc(100% / var(--rf, .125)) 100%}#toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px 0;justify-content:center}#toolbar button{padding:6px 12px;font-size:13px;background:var(--panel);color:var(--fg);border:1px solid #2a2f3a}#toolbar button.danger{background:#b23b3b;color:#fff;border-color:#7a2d2d}#toolbar button.active{border-color:var(--accent);color:var(--accent)}#stage.fill #toolbar,#stage.fs #toolbar{position:absolute;top:48px;right:8px;z-index:3;display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:10px;background:#0b0d12d1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #2a2f3a;border-radius:10px;transform-origin:top right;transform:scale(.6);opacity:0;visibility:hidden;pointer-events:none;transition:transform .18s ease,opacity .18s ease,visibility 0s linear .18s}#stage.fill.menu #toolbar,#stage.fs.menu #toolbar{transform:scale(1);opacity:1;visibility:visible;pointer-events:auto;transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .2s ease,visibility 0s}#stage.fill #toolbar button,#stage.fs #toolbar button{text-align:left}#fs-menu-close{display:none}#stage.fill #toolbar #fs-menu-close,#stage.fs #toolbar #fs-menu-close{display:block}#stage.fill #toolbar button[data-do=leave],#stage.fs #toolbar button[data-do=leave]{margin-top:6px;border-top:1px solid #2a2f3a;padding-top:10px;border-radius:0 0 6px 6px}#stage.fill #toolbar #voice-members,#stage.fs #toolbar #voice-members{white-space:normal;max-width:220px}#stage.fill #volume-pop,#stage.fs #volume-pop{bottom:auto;top:10px;left:auto;right:calc(100% + 8px);transform:none}#loading{position:absolute;inset:0;z-index:5;display:grid;place-content:center;text-align:center;background:#080a0eeb;color:#e8e8e8}#loading .big{font-size:1.6rem;margin:0 0 .4rem}#loading .big:after{content:"";display:inline-block;width:.6em;height:.6em;margin-left:.5em;border:3px solid #888;border-top-color:#fff;border-radius:50%;animation:spin .9s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}#loading-text{margin:0;color:#aaa;max-width:28rem}.checks{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin:.5rem 0}.checks label{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}#rom-panel{margin-top:1rem;max-width:30rem;text-align:left}#rom-panel .hint{color:#bbb}#rom-links a{display:inline-block;margin:.2rem .6rem .2rem 0;padding:.35rem .7rem;border:1px solid #555;border-radius:6px;color:#fff;text-decoration:none}#rom-links a:hover{border-color:#aaa}#rom-panel input[type=file]{display:block;margin-top:.3rem}#art-blur,#art-pic{display:none}#stage.fill #screen-box.art.frame,#stage.fs #screen-box.art.frame{background:#000}#stage.fill #screen-box.art.frame #art-pic,#stage.fs #screen-box.art.frame #art-pic{display:block;position:absolute;inset:0;background-image:var(--art);background-position:center;background-repeat:no-repeat;background-size:var(--art-w) var(--art-h)}#stage.fill #screen-box.art.frame .side,#stage.fs #screen-box.art.frame .side{display:none}#stage.fill #screen-box.art.frame #art-blur,#stage.fs #screen-box.art.frame #art-blur{display:block;position:absolute;inset:0;z-index:-1;background:var(--art) center / cover no-repeat;filter:blur(18px) brightness(.45)}#stage.fill #screen-box.art.frame,#stage.fs #screen-box.art.frame{isolation:isolate}.gate{display:grid;place-items:start center;margin:8px 0 20px}.gate .panel{width:min(100%,420px)}body.signed-out header,body.signed-out #home-nav,body.signed-out #entry>section[data-panel],body.signed-out #message,body.signed-out #footer{display:none}body.signed-out .gate{min-height:calc(100vh - 32px);place-items:center;margin:0}.brand-in{text-align:center;margin-bottom:4px}.brand-in .brand-title{margin:0;font-size:1.6rem;font-weight:700}.brand-in .sub{margin:0;color:var(--muted)}.dialog-actions{margin-top:18px}td.actions{white-space:nowrap}td.actions button{margin:2px 4px}.busy-line{color:var(--muted);display:flex;align-items:center;gap:8px;margin:8px 0}.spin{display:inline-block;width:.9em;height:.9em;border:3px solid #555;border-top-color:#fff;border-radius:50%;animation:spin .9s linear infinite}#home-nav{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 14px;padding:6px;background:var(--panel);border-radius:8px}#home-nav [data-tab]{background:transparent;color:var(--fg);border:1px solid #2a2f3a;padding:6px 12px}#home-nav [data-tab].active{background:var(--accent);color:#111}#home-nav .spacer{flex:1}#games-empty.favs-empty{color:var(--accent);font-size:1.05rem;font-weight:600;padding:14px 4px}.badge{display:inline-block;min-width:1.4em;padding:0 5px;border-radius:999px;background:#ff5a5a;color:#fff;font-size:12px;line-height:1.4em;text-align:center;vertical-align:1px}.rank{font-weight:600;white-space:nowrap}.rank svg{width:1.05em;height:1.05em;vertical-align:-.15em;fill:currentColor}.carousel{display:grid;grid-template-columns:repeat(var(--cols, 6),minmax(0,1fr));gap:14px;max-height:78vh;overflow-y:auto;overscroll-behavior-y:contain;padding:4px 6px 4px 4px;scrollbar-width:thin}.games-actions{align-items:center;flex-wrap:wrap;margin:10px 0 0}.games-sort{align-items:center;justify-content:flex-start;gap:14px;margin:0 0 8px;font-size:.9rem}.games-sort label{display:inline-flex;align-items:center;gap:6px}.games-sort select{width:auto;margin:0}.games-sort input[type=search]{flex:0 0 auto;width:calc((100% - 10px - (var(--cols, 6) - 1) * 14px) / var(--cols, 6));min-width:120px;margin:0 0 0 4px;box-sizing:border-box}.card.absent .card-pic:after{content:"";position:absolute;inset:0;background:#0000008c;-webkit-backdrop-filter:grayscale(.8);backdrop-filter:grayscale(.8);pointer-events:none}.card-download{z-index:1;font-weight:600}.card.absent h3,.card.absent .card-count{color:var(--muted)}.card-pic{position:relative}.card-download{position:absolute;inset:auto auto 8px 50%;transform:translate(-50%);padding:6px 12px;font-size:13px;background:var(--accent);color:#111;border:0}.card.busy .card-download{background:#555;color:#ddd}.card-fav{position:absolute;top:6px;right:6px;z-index:1;padding:3px 8px;font-size:27px;line-height:1;background:#0000008c;color:#6b7280;border:0;border-radius:6px}.card-fav.on{color:#facc15}.card-fav:hover{color:#fde047}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.card-count{font-size:12px;color:var(--muted);white-space:nowrap}.card-head{justify-content:center;text-align:center}.card-body .card-room button{display:flex;justify-content:center;align-items:center;gap:8px}.card-body .card-room .card-count{color:inherit;opacity:.75;font-size:11px}.card-play{margin:0;padding:6px 8px 8px;border:1px solid #3a4050;border-radius:8px;display:grid;gap:6px;min-width:0}.card-play legend{margin:0 auto;padding:0 6px;font-size:13px;color:#fff}.card-queues button.active{background:var(--accent);color:#000;border-color:var(--accent)}#home-nav #remap-entry{background:transparent;color:var(--fg);border:1px solid #2a2f3a;padding:6px 12px}#footer{position:sticky;bottom:0;margin:16px -16px -16px;padding:8px 16px;background:var(--panel);border-top:1px solid #2a2f3a;color:var(--muted);font-size:13px}body{padding-bottom:0}.card{display:grid;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);background:var(--panel);border-radius:10px;overflow:hidden;border:1px solid #2a2f3a}.card-pic{display:grid;place-items:center;padding:10px;text-align:center;color:var(--muted);aspect-ratio:4 / 3;background:#0b0d12;background-size:contain;background-position:center;background-repeat:no-repeat}.card-body{display:grid;gap:6px;padding:10px 12px 12px}.card-body h3{margin:0;font-size:1rem;line-height:1.3;overflow-wrap:anywhere}.card{container-type:inline-size}.card-pic,.card-body{min-width:0}@container (max-width: 200px){.card-body{padding:8px;gap:4px}.card-body h3{font-size:.8rem}.card-count{font-size:11px}.card-body .row{flex-direction:column;gap:4px}.card-body .card-room button{flex-direction:row}.card-play{padding:4px 6px 6px;gap:4px}.card-body .row button{padding:5px 4px;font-size:12px}.card-download{font-size:12px;padding:4px 8px}}.card-body .row button{flex:1;padding:6px 8px;font-size:13px}@media(max-width:560px){.carousel{max-height:none;overflow:visible;overscroll-behavior-y:auto}.card-body{padding:8px}.card-body h3{font-size:.85rem}.card-body .row button{padding:5px 4px;font-size:12px}}.who-inline{display:inline-flex;align-items:center;gap:6px}.list li .row{gap:6px}.hint.online{color:#7fe3a0}#friend-add input{flex:1;min-width:0}#friend-requests h3{margin:4px 0;font-size:.95rem;color:var(--muted)}#live-list li{flex-wrap:wrap;gap:8px}#scoreboard .pad{display:flex;flex-wrap:wrap;gap:3px;flex:1 1 0;min-width:4em;font:600 12px/1 ui-monospace,monospace}#scoreboard .pad[data-side="1"]{justify-content:flex-end}#scoreboard .who,#scoreboard .faces,#scoreboard .mid{flex-shrink:0}#scoreboard .score{white-space:nowrap}#scoreboard.no-inputs .pad{display:none}#scoreboard .k{min-width:1.5em;padding:3px;border-radius:4px;background:#262b36;color:#6b7280;text-align:center}#scoreboard .k.on{background:var(--accent);color:#111}#scoreboard .k.dir{font-size:14px}@media(max-width:640px){#scoreboard{gap:5px;padding:3px 6px;flex-wrap:wrap;justify-content:space-between}#scoreboard .who{font-size:.85rem}#scoreboard .score{font-size:1.1rem}#scoreboard .set-info{font-size:10px}#scoreboard .pad{order:9;flex-basis:48%;margin:0}#scoreboard .pad[data-side="0"]{justify-content:flex-start}#scoreboard .face{width:20px;height:20px;font-size:8px}#scoreboard .pad{gap:2px;font-size:9px}#scoreboard .k{min-width:1.3em;padding:2px}#scoreboard .k.dir{font-size:11px}}@media(max-height:560px){#stage.fill #scoreboard,#stage.fs #scoreboard{padding:2px 8px;gap:6px}#scoreboard .who{font-size:.8rem}#scoreboard .score{font-size:1rem}#scoreboard .set-info{font-size:9px;max-width:34vw;overflow:hidden;text-overflow:ellipsis}#scoreboard .face{width:18px;height:18px;font-size:7px}#scoreboard .pad{flex:0 1 auto;max-width:130px;gap:2px;font-size:9px}#scoreboard .k{min-width:1.2em;padding:2px}#scoreboard .k.dir{font-size:10px}}.ping-green{color:#4ade80}.ping-blue{color:#60a5fa}.ping-yellow{color:#facc15}.ping-red{color:#f87171}.ping-none{color:var(--muted)}.prefs{flex-wrap:wrap;gap:16px;align-items:center}.prefs label{display:inline-flex;align-items:center;gap:6px}.prefs select,.prefs input{width:auto;margin:0}.prefs input[type=number]{width:5em}.panel.room{max-width:none;position:relative}#downloading{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#080a0ec7;border-radius:8px;text-align:center}#downloading p{margin:0;font-size:1.6rem;font-weight:600;color:var(--accent)}#downloading[hidden]{display:none}table.stats td:has(>img.mini),table.stats td:has(>.person){text-align:left;padding-left:15px}.room-prefs{align-items:center;gap:12px;flex-wrap:wrap}.room-prefs label{display:inline-flex;align-items:center;gap:8px;margin:0}.room-prefs select{width:auto;margin:0}.room-actions{flex-wrap:wrap;align-items:center;margin:0}.room-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.room-head h2{margin:0}.room-head #room-back{margin:0;padding:10px 18px;font-size:1rem}.room-box{margin:10px 0;padding:8px 12px 12px;border:1px solid #3a4050;border-radius:8px;display:grid;gap:8px;min-width:0}.room-box legend{margin:0 auto;padding:0 6px;font-size:13px;color:#fff}.room-box[hidden]{display:none}.top-chars{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;padding:6px 0}.top-chars .item{display:grid;justify-items:center;gap:6px;min-width:100px;max-width:150px;text-align:center}.top-chars .face{width:56px;height:56px;border-width:4px;font-size:16px}.top-chars .name{font-weight:600}.top-chars .game,.top-chars .count{color:var(--muted);font-size:13px}#board-tabs{justify-content:center}#update-bar{position:fixed;top:0;left:0;right:0;z-index:9000;display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 12px;background:var(--accent);color:#111;font-weight:600}#update-bar[hidden]{display:none}#update-bar button{padding:4px 12px;background:#111;color:var(--accent);border:0}#maintenance{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#080a0eb8;color:#fff;text-align:center}#maintenance[hidden]{display:none}#maintenance.see-through{pointer-events:none;background:#080a0e73}#maintenance .icon{display:block;font-size:8rem;line-height:1}#maintenance p{margin:0;font-size:clamp(2.4rem,8vw,5rem);font-weight:800;line-height:1.1}#maintenance p.sub{font-size:clamp(1.4rem,4vw,2.4rem);font-weight:600;color:#facc15}.list.flags li{justify-content:space-between}.switch{position:relative;width:46px;height:24px;flex:none}.flag-who{width:11em;margin:0 10px 0 auto;padding:4px 8px;font-size:13px}.switch input{opacity:0;width:0;height:0;position:absolute}.switch span{position:absolute;inset:0;border-radius:24px;background:#3a4050;transition:background .15s;cursor:pointer}.switch span:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;transition:transform .15s}.switch input:checked+span{background:#3fb950}.switch input:checked+span:before{transform:translate(22px)}.sala-form{flex-wrap:wrap;gap:8px;align-items:center}.sala-form input,.sala-form select{flex:1 1 160px;min-width:0}table.salas{width:100%;margin:8px 0}table.salas td:first-child{text-align:left;padding-left:15px}.sala-controls{gap:6px}#sala-slots{display:grid;gap:8px}.slot{display:grid;grid-template-columns:auto 1fr auto 1fr auto auto;align-items:center;gap:10px;padding:8px 12px;border:1px solid #3a4050;border-radius:8px}.slot .fmt{color:var(--muted);font-size:13px;text-align:center;min-width:64px}.slot .fmt select{margin:0;padding:2px 6px;font-size:13px}.slot.table{grid-template-columns:auto 1fr auto}.slot .table-state{text-align:left;font-weight:400}.slot .row{gap:6px}.slot .n{color:var(--muted);font-size:13px}.slot .seat{text-align:center;font-weight:600}.slot .seat.empty{color:var(--muted);font-weight:400}.slot .x{color:var(--muted)}.slot.playing{border-color:var(--accent)}.title-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.title-row h2{grid-column:2;margin:0;text-align:center}.title-row button{grid-column:3;justify-self:end}#ranks-dialog{text-align:center}#ranks-dialog .room-box{margin:0 0 12px}#ranks-dialog table.stats{width:100%}#ranks-dialog .row{justify-content:center}.chart{width:100%;height:auto;display:block;font-family:inherit}.chart text{fill:var(--fg);font-size:13px}.chart text.val{fill:#facc15;font-weight:600}.chart rect{fill:#facc15;opacity:.85}.chart rect.track{fill:#2a2f3a;opacity:1}.chart rect.win{fill:#3fb950;opacity:1}.chart rect.loss{fill:#d1433b;opacity:1}.chart text.rec{fill:var(--fg);font-size:12px}.room-box .row,.room-box p.hint{margin:0}.room-box p.hint:empty,#table-line:empty{display:none}.room-box table.stats{margin-top:0}.room-box .list{margin:0}.room-box-tight{padding:4px 12px 8px;gap:0}.roster td:first-child{display:flex;align-items:center;gap:4px}.roster tr.me td{color:var(--accent)}.roster tr.busy td{color:var(--muted)}.roster td button:not(.link-button){padding:4px 12px}.room-cols{display:grid;grid-template-columns:minmax(0,1100px) 340px;gap:16px;align-items:stretch;justify-content:start}.panel.chat{display:flex;flex-direction:column;min-height:0;border:1px solid #fff;border-radius:8px;background:linear-gradient(#00000059,#00000059),var(--panel)}.panel.chat h2{color:#fff;font-size:15px;font-weight:600;letter-spacing:.02em;margin:0 0 8px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.5)}.panel.chat .chat-lines li{background:#00000073;color:#eee;padding:2px 6px;margin:2px 0;border-radius:4px;border-bottom:0}.panel.chat .chat-lines li strong{color:var(--accent)}.panel.chat #chat-form input{background:#0009;border:1px solid #3a4050;color:#eee}.chat-lines{list-style:none;margin:0 0 10px;padding:0;overflow-y:auto;flex:1;min-height:0;font-size:13px;scrollbar-width:thin}@media(max-width:900px){.room-cols{grid-template-columns:1fr}.panel.chat{max-height:45vh}.chat-lines{min-height:160px}}.chat-lines li{padding:3px 0;border-bottom:1px solid #1f2430;overflow-wrap:anywhere}.chat-lines li.mine strong{color:var(--accent)}.chat-lines .hint{font-size:11px}#chat-form input{flex:1;margin:0}#chat-form button{padding:6px 12px}.flag{vertical-align:-2px;border-radius:2px}#footer-text.alert{color:#f87171}#stage-chat{position:absolute;top:8px;max-height:calc(100% - 16px);right:8px;width:clamp(180px,calc(var(--gutter, 0px) - 16px),460px);z-index:2;pointer-events:none;font-size:18px;line-height:1.35;display:flex;flex-direction:column;box-sizing:border-box;padding:6px 8px 8px;border:1px solid #fff;border-radius:8px;background:#00000059}#stage.fill #stage-chat,#stage.fs #stage-chat{top:48px;max-height:calc(100% - 56px)}#stage-chat .title{color:#fff;font-weight:600;font-size:15px;letter-spacing:.02em;padding-bottom:4px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.5);flex:none}#stage-chat-lines{list-style:none;margin:0;padding:0;min-height:0;flex:0 1 auto;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}#stage-chat-lines li{background:#00000073;color:#eee;padding:2px 6px;margin:2px 0;border-radius:4px;overflow-wrap:anywhere}#stage-chat-lines li strong{color:var(--accent)}#stage-chat-form{pointer-events:auto;margin-top:4px}#stage-chat-form input{width:100%;margin:0;background:#0009;border:1px solid #3a4050;color:#eee;font-size:16px;padding:6px 8px}#stage:not(.fill):not(.fs) #stage-chat,#stage.chat-off #stage-chat{display:none}#toolbar{position:relative}#volume-pop{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--panel);border:1px solid #2a2f3a;border-radius:8px;padding:8px 14px;z-index:4}#volume-pop{display:grid;gap:6px}#volume-pop label{display:inline-flex;align-items:center;gap:10px;margin:0;white-space:nowrap}#volume-pop input{width:180px;margin:0;padding:0;border:0;background:transparent;accent-color:var(--accent)}.net-icon{display:inline-block;vertical-align:-3px;color:var(--fg)}#challenge-dialog h2 #challenger{color:var(--accent)}.faces{display:inline-flex;gap:6px;vertical-align:middle}.face{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:3px solid #e8e8e8;background:#151923 center / cover no-repeat;font-size:12px;font-weight:600;color:var(--muted);overflow:hidden;image-rendering:pixelated}.face.special{border-color:#facc15}table.storage{width:100%;margin:8px 0}table.storage td:first-child{text-align:left;padding-left:15px}table.storage td button{padding:4px 12px}.face[role=button]{cursor:pointer}.face[role=button]:hover{filter:brightness(1.2)}#char-dialog{text-align:center}#char-dialog h2{margin:0 0 16px}.cd-who{display:grid;justify-items:center;gap:6px;margin-bottom:14px}.cd-who .cd-avatar{width:112px;height:112px;border-radius:50%;object-fit:cover;border:5px solid #e8e8e8}.cd-who strong{font-size:1.1rem}#cd-faces{display:flex;flex-wrap:nowrap;justify-content:center;align-items:flex-start;gap:20px;margin-bottom:20px}.char-row{display:grid;gap:10px;justify-items:center;padding:0 4px;flex:1 1 0;min-width:0}.char-row+.char-row{border-left:1px solid #3a4050;padding-left:20px}.char-row h3{margin:0;font-size:1rem;color:var(--muted);max-width:100%;min-height:48px;display:flex;align-items:center;justify-content:center}#char-dialog{max-width:720px;width:min(720px,calc(100vw - 32px))}.char-faces{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}.char-item{display:grid;gap:10px;justify-items:center}.face.big{width:112px;height:112px;border-width:5px;font-size:32px}.char-name{font-weight:600;font-size:1.05rem}#char-dialog .row{justify-content:center}.face.blank{border-color:#3a4050}.flag.flag-none{display:inline-block;width:20px;height:15px;background:#2a2f3a;border:1px solid #3a4050;box-sizing:border-box}#online-list li{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1.2fr) minmax(0,1fr) auto;gap:12px;align-items:center}#online-list li .status{text-align:left}#online-list li .hint{text-align:right}#toast{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:6;margin:0;padding:10px 22px;border-radius:8px;background:#080a0ed9;color:#fff;font-size:1.3rem;font-weight:600;pointer-events:none;animation:toast 1.6s ease-out forwards}#toast[hidden]{display:none}#table-clock,#afk-clock{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:6;display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 40px;max-width:min(80%,520px);border-radius:14px;background:#080a0ed9;color:#fff;pointer-events:none;text-align:center}#table-clock b,#afk-clock b{font-size:5rem;line-height:1;color:#facc15;font-variant-numeric:tabular-nums}#table-clock span,#afk-clock span{font-size:1.4rem;line-height:1.3;font-weight:600}#table-clock[hidden],#afk-clock[hidden]{display:none}#waiting{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:6;display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 40px;max-width:min(80%,520px);border-radius:14px;background:#080a0ed9;color:#fff;text-align:center}#waiting p{margin:0;font-size:1.6rem;font-weight:600;white-space:nowrap}#waiting .hint{font-size:1.15rem}#waiting p:after{content:"";display:inline-block;width:.9em;height:.9em;margin-left:.6em;border:4px solid #666;border-top-color:#facc15;border-radius:50%;animation:spin .9s linear infinite;vertical-align:middle}#set-dialog{background:#080a0ed9;border:0;border-radius:14px;padding:24px 40px;color:#fff;text-align:center}#set-dialog::backdrop{background:transparent}#set-dialog .row{justify-content:center}#waiting[hidden]{display:none}@keyframes toast{0%,60%{opacity:1}to{opacity:0}}#scoreboard .faces{display:flex;gap:3px;margin:0}#scoreboard .face{width:24px;height:24px;border-width:2px;font-size:9px}.me-box{display:flex;flex-direction:column;align-items:center;gap:3px}.me-box[hidden]{display:none}.me-box .me{display:flex;flex-direction:column;align-items:center;gap:0;padding:0 6px;font-weight:600;color:var(--fg);background:transparent}.me-box .me:hover{text-decoration:underline}.me-box .me .me-avatar{width:30px;height:30px;margin:0;border-width:2px}.me-box .me .me-nick{font-size:13px;line-height:1.1}.me-box #logout{padding:2px 10px;font-size:12px}#login .row{flex-wrap:wrap;gap:6px 16px}.history h3{font-size:.95rem;margin:16px 0 6px;color:var(--muted)}.history td.set{display:grid;grid-template-columns:1fr 112px 1fr;align-items:center;gap:8px}.history td.set .verdict{text-align:center;white-space:nowrap}.history td.set .side{display:inline-flex;align-items:center;gap:8px;min-width:0}.history td.set .side.p1{justify-content:flex-end}.history td.set .side.p2{justify-content:flex-start}.history td.set .side.team{flex-direction:column;gap:2px}.history td.set .side.team.p1{align-items:flex-end}.history td.set .side.team.p2{align-items:flex-start}.history td.game,.history td.play{padding-left:4px;padding-right:4px}.history td.play>*{display:block;margin:2px auto}.history td.set .verdict .ragequit,.history td.set .verdict .afk{display:block;font-size:.85rem;margin-top:2px}.stats-title{margin:6px 0 -4px;font-size:.95rem;color:var(--muted);text-align:center}.history h3,.history h4{text-align:center}.history td.set .faces{display:inline-flex;gap:2px}.history td.set .face{width:22px;height:22px;border-width:1px;font-size:8px}.history tr.won .verdict{color:#4ade80}.history tr.lost .verdict{color:#f87171}.history button{padding:2px 10px;font-size:12px}.history td.set .nick{font-weight:600;color:var(--fg);padding:0}.history td.set .nick:hover{text-decoration:underline}.history button:disabled{opacity:.4;cursor:default}.history .ragequit,table.stats td.ragequit{color:#facc15;font-weight:600;white-space:nowrap}.history .afk{color:#9aa3b5;font-weight:600;white-space:nowrap}#profile-dialog{max-width:850px;width:min(850px,calc(100vw - 32px))}.add-friend{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:30px;padding:0 12px;margin-left:6px;border:0;border-radius:6px;background:var(--accent);color:#111;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer;vertical-align:middle}.add-friend:hover{filter:brightness(1.08)}.with-icon{display:inline-flex;align-items:center;gap:6px}.with-icon svg{width:16px;height:16px}.games-actions{flex-wrap:wrap;gap:8px}.list li .add-friend,.roster td .add-friend,.who-inline .add-friend{padding:0 12px;min-width:0;height:30px}.add-friend svg{width:18px;height:18px;flex:0 0 auto;fill:currentColor}.add-friend.kick{background:#b23b3b;color:#fff}.add-friend:disabled{opacity:.5;cursor:default}#friend-incoming li,#friend-outgoing li,#friend-list li{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}#friend-incoming li>:nth-child(2),#friend-outgoing li>:nth-child(2),#friend-list li>:nth-child(2){text-align:center}#friend-incoming li>:last-child,#friend-outgoing li>:last-child,#friend-list li>:last-child{justify-self:end}.list li .remove-friend{margin:0}#storage-list li{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}#storage-list li>.hint{text-align:center}#storage-list li>button{justify-self:end}dialog.panel-dialog{padding:0;border:0;background:transparent;max-width:900px;width:min(900px,calc(100vw - 32px));max-height:90vh;overflow:auto}dialog.panel-dialog .panel{max-width:none;border:1px solid #333a47}dialog.panel-dialog .panel [data-panel],dialog.panel-dialog [data-panel]{display:grid}dialog.panel-dialog .room-box{margin:0}#remap-dialog{max-width:600px;width:min(600px,calc(100vw - 32px))}.board-faces{display:inline-flex;gap:2px;margin-left:6px;vertical-align:middle}.board-faces .face{width:20px;height:20px;border-width:1px;font-size:7px}.roster .faces{display:inline-flex;gap:2px}.roster .faces .face{width:22px;height:22px;border-width:1px;font-size:8px}.room-actions button.active{background:var(--accent);color:#000;border-color:var(--accent)}.room-prefs button{margin:0}.history th{text-align:center}.card-play button:disabled,.room-actions button:disabled,.room-prefs button:disabled{opacity:.35;background:#1a1e26;color:var(--muted);border:1px dashed #3a4050;text-decoration:line-through;cursor:not-allowed;filter:grayscale(1)}
