/* Perfect Serve · iPad ekranı ek stilleri — © Ozan Eren Kayan */
.card.wide{width:min(1180px,100%);padding:24px clamp(18px,3vw,32px)}
.card h2{margin:0}
.form{display:grid;gap:12px}
.form label{display:grid;gap:6px;font-family:var(--f-ui);font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.form input:not([type=checkbox]),.form select,.lbfoot select{font:500 18px var(--f-body);color:var(--cream);background:#0a1222;border:2px solid rgba(232,180,74,.4);border-radius:12px;padding:10px 12px;min-width:0;text-transform:none;letter-spacing:0}
.form input:focus,.form select:focus{outline:none;border-color:var(--brass)}
.form .chk{display:flex;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:0;font:500 15px/1.35 var(--f-body);color:var(--cream)}
.form .chk input{width:22px;height:22px;accent-color:var(--brass);flex:none;margin-top:1px}
.form a{color:var(--brass)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.err{color:#ff8a8a;min-height:1.2em;margin:0;font-weight:600}
.btn.sm{font-size:15px;padding:8px 14px;border-radius:10px}
.btn.ghost.danger{border-color:#e5484d;color:#ff8a8a}
.btn:disabled{opacity:.4;cursor:default}
.sesslist{display:grid;gap:8px}
.sessbtn{display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--navy-2);border:1px solid rgba(232,180,74,.35);border-radius:12px;padding:12px 14px;cursor:pointer;text-align:left}
.sessbtn b{font:700 20px var(--f-ui)} .sessbtn span{color:var(--muted);font-size:14px}
.lobbygrid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:28px;align-items:start}
.qrcol{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.qr{background:#fff;border-radius:18px;padding:14px;width:100%;max-width:340px;aspect-ratio:1;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.qr img{width:100%;height:100%;display:block}
.url{font:600 16px var(--f-ui);letter-spacing:.04em;color:var(--brass);word-break:break-all}
.pcol{display:flex;flex-direction:column;gap:12px;min-width:0}
.phead{display:flex;justify-content:space-between;align-items:center;gap:10px}
.cnt{display:inline-grid;place-items:center;min-width:34px;height:30px;padding:0 8px;border-radius:999px;background:var(--brass);color:#2a1a00;font-size:18px;vertical-align:middle}
.plist{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-height:min(52vh,560px);overflow:auto}
.plist li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;background:var(--navy-2);border-radius:12px;padding:10px 12px;border:2px solid transparent}
.plist li.act{border-color:var(--brass)}
.plist li.played .pn b{color:#c9d5e6}
.plist li.empty{display:block;color:var(--muted);text-align:center;padding:26px}
.pn{display:flex;gap:8px;align-items:center;min-width:0;flex-wrap:wrap}
.pn b{font:700 20px var(--f-ui);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.ps{display:grid;justify-items:end;font-family:var(--f-ui);font-size:13px;color:var(--muted);letter-spacing:.04em}
.ps b{font-size:20px;color:var(--cream)}
.chip{font:600 12px var(--f-ui);letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.1);color:var(--muted)}
.chip.on{background:rgba(47,191,113,.18);color:#6be3a2}
.chip.off{background:rgba(229,72,77,.15);color:#ff9a9a}
.medal{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font:700 14px var(--f-ui);color:#2a1a00}
.medal.m1{background:#f2c15a}.medal.m2{background:#cfd8e3}.medal.m3{background:#d39a6a}
.lbfoot{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding-top:4px}
.inl{display:flex;gap:8px;align-items:center;font-family:var(--f-ui);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:14px}
.lbfoot select{font-size:15px;padding:6px 8px}
.conn{font:600 14px var(--f-ui);letter-spacing:.04em}
.conn.on{color:var(--ok)}.conn.off{color:#ffb347}
.countdown{font:700 140px/1 var(--f-ui);color:var(--brass);text-align:center;min-height:.1em;font-variant-numeric:tabular-nums}
.countdown:empty{display:none}
.hudbtns{display:flex;gap:8px}
.playerbar{display:flex;gap:10px;align-items:center;padding:8px 18px 0;font-family:var(--f-ui);font-size:16px;color:var(--muted);letter-spacing:.03em;flex-wrap:wrap}
.playerbar b{color:var(--cream);font-size:20px}
.pdot{width:12px;height:12px;border-radius:50%;background:var(--muted)}
.pdot.on{background:var(--ok);box-shadow:0 0 0 4px rgba(47,191,113,.2)}
.pdot.off{background:var(--bad);box-shadow:0 0 0 4px rgba(229,72,77,.2)}
.pdot.tab{background:var(--brass)}
.abortq{margin-left:auto;color:#ff8a8a;font-weight:700}
.overname{font:600 24px var(--f-body);letter-spacing:.01em;color:var(--cream);margin:-4px 0 0!important}
#lobby{z-index:25}
@media (max-width:900px){ .lobbygrid{grid-template-columns:1fr} .qr{max-width:240px} }
.credit{position:absolute;left:0;right:0;bottom:max(10px,env(safe-area-inset-bottom));margin:0;text-align:center;font:500 12px var(--f-body);letter-spacing:.04em;color:rgba(246,234,208,.55);pointer-events:none}
