:root{--bg:#08111d;--bg2:#0d1827;--panel:#111e2f;--panel2:#16263a;--line:#293b50;--text:#edf4fb;--muted:#9fb0c2;--accent:#51d3a8;--accent2:#70a7ff;--warn:#ffc764;--danger:#ff6b7a;--shadow:0 18px 55px rgba(0,0,0,.28);--radius:18px}
*{box-sizing:border-box}html{color-scheme:dark;-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 15% 0,#13283d 0,transparent 36%),linear-gradient(150deg,var(--bg),#050a11 72%);color:var(--text)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.muted{color:var(--muted);line-height:1.55}.wide{width:100%}
.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px clamp(14px,4vw,46px);background:rgba(8,17,29,.9);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.07)}h1,h2,h3,p{margin-top:0}.topbar h1{margin:2px 0 0;font-size:clamp(23px,4vw,36px);letter-spacing:-.04em}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.18em;color:var(--accent);text-transform:uppercase}.top-actions,.head-actions,.actions-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.shell{width:min(1220px,calc(100% - 28px));margin:28px auto 70px}.panel,.tab-panel{background:linear-gradient(180deg,rgba(22,38,58,.96),rgba(13,24,39,.96));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:clamp(20px,4vw,34px)}
.landing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:900px;margin:8vh auto}.role-card{min-height:280px;text-align:left;border:1px solid var(--line);border-radius:24px;padding:28px;background:linear-gradient(160deg,#182b42,#0d1827);color:var(--text);cursor:pointer;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:flex-start;transition:.18s}.role-card:hover{transform:translateY(-3px);border-color:#4b6989}.role-card strong{font-size:32px;margin:8px 0}.role-card small{color:var(--muted);font-size:15px;line-height:1.55}.role-icon{font-size:48px;margin-bottom:22px}.auth-panel{width:min(560px,100%);margin:5vh auto}.auth-panel h2{font-size:30px;margin-bottom:8px}.back-link{border:0;background:transparent;color:var(--muted);padding:0;margin-bottom:22px;cursor:pointer;font-weight:800}.back-link:hover{color:var(--text)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:20px}.section-head h2{margin:3px 0 0;font-size:clamp(24px,3vw,31px)}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.span-2{grid-column:span 2}.field{display:flex;flex-direction:column;gap:8px}.field>span{font-size:13px;color:var(--muted);font-weight:800}.field input,.field select,.field textarea{width:100%;border:1px solid #31465e;background:#09131f;color:var(--text);border-radius:12px;padding:13px 14px;outline:none;transition:.18s}.field textarea{resize:vertical;line-height:1.5}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent2);box-shadow:0 0 0 3px rgba(112,167,255,.13)}.code-input{text-transform:uppercase;letter-spacing:.28em;text-align:center;font-size:28px!important;font-weight:950}.hint{margin:16px 0;color:var(--muted);font-size:14px;line-height:1.55}.btn{border:1px solid #34495e;border-radius:11px;padding:10px 14px;min-height:42px;background:#162538;color:var(--text);cursor:pointer;font-weight:800;transition:transform .12s,border-color .12s,background .12s}.btn:hover{transform:translateY(-1px);border-color:#59728d}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn.primary{background:linear-gradient(135deg,#35bd95,#2b9b80);border-color:#52d3ab;color:#04120e}.btn.ghost{background:transparent}.btn.danger{background:rgba(255,107,122,.12);border-color:rgba(255,107,122,.5);color:#ff9aa5}.btn.small{padding:7px 10px;font-size:13px;min-height:36px}.status-pill{font-size:12px;color:var(--muted);border:1px solid var(--line);padding:7px 10px;border-radius:999px}.status-pill.ok{color:#91e7c8;border-color:#2f705e}.status-pill.error{color:#ff9aa5;border-color:#6b3440}
.join-player-list{display:grid;gap:10px;margin-top:18px}.join-player{width:100%;display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:left;border:1px solid #334960;background:#0b1725;color:var(--text);border-radius:14px;padding:16px;cursor:pointer}.join-player strong{font-size:18px}.join-player span{color:var(--accent);font-size:13px;font-weight:800}.join-player.taken{opacity:.45;cursor:not-allowed}.join-player.taken span{color:var(--muted)}
.join-code-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;padding:18px 20px;border-radius:16px;border:1px solid #34715f;background:linear-gradient(135deg,rgba(81,211,168,.15),rgba(112,167,255,.07))}.join-code-banner span{display:block;color:var(--muted);font-size:12px;font-weight:800}.join-code-banner strong{display:block;font-size:clamp(30px,5vw,45px);letter-spacing:.16em;margin-top:2px;color:#bdf5df}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.summary-card{padding:16px 18px;border-radius:15px;background:linear-gradient(180deg,#14243a,#0d1a2a);border:1px solid var(--line)}.summary-card span{display:block;color:var(--muted);font-size:12px;font-weight:800}.summary-card strong{display:block;font-size:26px;margin-top:4px}
.tabs{display:flex;gap:7px;overflow:auto;padding:5px;margin-bottom:12px;background:#09131f;border:1px solid var(--line);border-radius:14px;-webkit-overflow-scrolling:touch}.tab,.player-tab{white-space:nowrap;flex:0 0 auto;border:0;border-radius:10px;background:transparent;color:var(--muted);padding:10px 16px;font-weight:900;cursor:pointer}.tab.active,.player-tab.active{background:#1b3048;color:var(--text)}.tab-panel{display:none;padding:clamp(18px,3vw,30px)}.tab-panel.active{display:block}
.rounds{display:grid;gap:16px}.round-card{border:1px solid var(--line);border-radius:15px;background:#0c1827;overflow:hidden}.round-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);background:#122238}.round-head h3{margin:0;font-size:18px}.round-meta{color:var(--muted);font-size:12px}.round-meta.warn{color:var(--warn);font-weight:900}.matches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px}.matches.single{grid-template-columns:1fr}.match{border:1px solid #2a3e54;border-radius:13px;background:#101e30;padding:14px}.match.done{border-color:#315d52}.court{font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:var(--accent2);font-weight:900;margin-bottom:10px}.teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}.team{text-align:center;font-weight:900;line-height:1.4}.team.my-team{background:rgba(81,211,168,.08);border-radius:10px;padding:8px}.team .me{color:#77efc6;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.versus{color:#62758b;font-size:12px;font-weight:900}.score-row{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:12px}.score-input{width:68px;text-align:center;border:1px solid #38516a;border-radius:10px;background:#07111c;color:#fff;font-size:20px;font-weight:900;padding:8px}.score-sep{font-weight:900;color:var(--muted)}.match-actions{display:flex;justify-content:center;gap:8px;margin-top:10px}.bye{padding:0 14px 14px;color:var(--muted);font-size:13px}.bye strong{color:var(--warn)}.big-bye{padding:22px;font-size:16px}.result-note{color:var(--muted);font-size:11px;text-align:center;margin-top:9px;line-height:1.4}.mobile-result-btn{margin-top:12px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;min-width:660px}th,td{padding:11px 12px;border-bottom:1px solid #23364b;text-align:right}th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#0b1725;position:sticky;top:0}th:nth-child(2),td:nth-child(2){text-align:left}tbody tr:hover{background:rgba(112,167,255,.04)}.rank{font-weight:900;color:var(--accent)}.player-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.player-card{border:1px solid var(--line);border-radius:14px;background:#0d1a2a;padding:15px}.player-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.player-card h3{margin:0 0 10px}.claim-pill{font-size:10px;border:1px solid #46556a;color:var(--muted);border-radius:999px;padding:5px 7px}.claim-pill.claimed{color:#7ceac4;border-color:#2f705e}.mini-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.mini{background:#09131f;border-radius:9px;padding:8px}.mini span{display:block;font-size:10px;color:var(--muted);text-transform:uppercase}.mini strong{font-size:16px}.history{margin-top:10px;color:var(--muted);font-size:12px;line-height:1.5}.release-btn{margin-top:12px;width:100%}
.player-welcome{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;padding:18px 20px;border:1px solid var(--line);background:#0e1c2d;border-radius:16px}.player-welcome h2{margin:3px 0 0;font-size:28px}.player-badge{background:rgba(81,211,168,.11);border:1px solid #346d5c;color:#9ef0d4;padding:9px 12px;border-radius:999px;font-size:13px;font-weight:900}.danger-zone{margin-top:18px;padding:16px 18px;border:1px solid rgba(255,107,122,.28);border-radius:14px;background:rgba(255,107,122,.05);display:flex;align-items:center;justify-content:space-between;gap:18px}.danger-zone span{display:block;color:var(--muted);font-size:12px;margin-top:3px}.toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translate(-50%,30px);opacity:0;pointer-events:none;background:#e8f3ff;color:#07111c;padding:11px 15px;border-radius:11px;font-weight:800;box-shadow:var(--shadow);transition:.2s;z-index:99;max-width:calc(100% - 24px);text-align:center}.toast.show{transform:translate(-50%,0);opacity:1}.toast.error{background:#ffc0c6}
@media(max-width:900px){.summary-grid{grid-template-columns:repeat(2,1fr)}.matches{grid-template-columns:1fr}.player-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){body{padding-bottom:env(safe-area-inset-bottom)}.topbar{align-items:flex-start;flex-direction:column;padding:12px 14px}.topbar h1{font-size:25px}.top-actions{width:100%;display:grid;grid-template-columns:1fr auto auto}.status-pill{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell{width:min(100% - 14px,1220px);margin:10px auto 36px}.landing-grid{grid-template-columns:1fr;margin:18px auto;gap:12px}.role-card{min-height:0;padding:22px}.role-card strong{font-size:27px}.role-icon{font-size:38px;margin-bottom:10px}.auth-panel{margin:10px auto;padding:20px 16px}.auth-panel h2{font-size:26px}.code-input{font-size:25px!important}.setup-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.summary-grid{grid-template-columns:repeat(2,1fr);gap:7px}.summary-card{padding:11px 12px}.summary-card span{font-size:10px}.summary-card strong{font-size:21px}.join-code-banner{align-items:stretch;flex-direction:column;padding:14px}.join-code-banner .btn{width:100%}.join-code-banner strong{font-size:34px}.section-head{align-items:flex-start;flex-direction:column}.head-actions{width:100%}.head-actions .btn{width:100%}.tab-panel{padding:12px 9px}.round-head{padding:12px}.matches{padding:9px;gap:9px}.match{padding:12px 9px}.teams{grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);gap:2px}.team{font-size:14px;overflow-wrap:anywhere}.score-input{width:72px;min-height:48px;font-size:22px}.match-actions{flex-direction:column}.match-actions .btn{width:100%}.mobile-result-btn{min-height:48px;font-size:15px}.player-stats{grid-template-columns:1fr}.danger-zone{align-items:flex-start;flex-direction:column}.danger-zone .btn{width:100%}.player-welcome{padding:14px;align-items:flex-start}.player-badge{font-size:11px}.player-summary{grid-template-columns:repeat(2,1fr)}table{min-width:620px}.join-player{min-height:58px;padding:14px}.join-player strong{font-size:17px}.tabs{position:sticky;top:118px;z-index:10;background:#09131f}.btn{min-height:44px}}
