:root{--t-bg:#07111f;--t-panel:#101e30;--t-border:#7193bb59;--t-text:#f4f8fc;--t-muted:#91a5bb;--t-blue:#247bff;--t-green:#8fd72d;--t-gold:#ffd84c}*{box-sizing:border-box}body{background:var(--t-bg);color:var(--t-text);margin:0}.tournament-shell{background:radial-gradient(circle at 50% -20%,#183856 0,var(--t-bg) 45%);min-height:100dvh;padding:18px clamp(14px,3vw,42px) 36px;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.tournament-top{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;min-height:58px;display:grid}.tournament-top>a{color:#b7c9dd;font-weight:750;text-decoration:none}.tournament-nav{gap:14px;display:flex}.tournament-nav a{color:#b7c9dd;font-weight:750;text-decoration:none}.tournament-top>button{border:1px solid var(--t-border);color:#fff;background:#172942;border-radius:12px;justify-self:end;padding:10px 14px;font-weight:800}.tournament-top-actions{justify-self:end;gap:7px;display:flex}.tournament-top-actions button{border:1px solid var(--t-border);color:#fff;background:#172942;border-radius:11px;padding:9px 12px;font-weight:800}.tournament-brand{letter-spacing:.14em;align-items:center;gap:10px;font-size:.78rem;font-weight:900;display:flex}.tournament-brand img{object-fit:contain;background:#091522;border-radius:13px;width:48px;height:48px}.tournament-intro{text-align:center;padding:18px 0 10px}.tournament-intro p{color:#55a9ff;letter-spacing:.2em;font-size:.75rem;font-weight:900}.tournament-intro h1{margin:6px 0;font-size:clamp(2.25rem,5vw,4.2rem);line-height:.9}.tournament-intro span{color:var(--t-muted)}.tournament-setup-card,.tournament-new-player{border:1px solid var(--t-border);background:linear-gradient(#122338f7,#0b1829fa);border-radius:20px;width:min(900px,100%);margin:10px auto;padding:18px;box-shadow:0 24px 70px #00000047}.tournament-setup-card h2,.tournament-new-player h3{margin-top:0}.tournament-selects{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.tournament-setup-card label{color:#c6d5e6;gap:7px;margin-bottom:14px;font-size:.82rem;font-weight:750;display:grid}.tournament-setup-card select,.tournament-new-player input,.tournament-new-player select{border:1px solid var(--t-border);color:#fff;width:100%;min-height:48px;font:inherit;background:#081525;border-radius:12px;padding:11px 12px}.tournament-rule{background:#247bff1a;border:1px solid #247bff40;border-radius:14px;gap:4px;margin:4px 0 18px;padding:14px;display:grid}.tournament-rule span{color:var(--t-muted);font-size:.86rem}.tournament-primary,.tournament-new-player button{color:#fff;width:100%;min-height:50px;font:inherit;cursor:pointer;background:linear-gradient(135deg,#2695f5,#536bff);border:0;border-radius:13px;font-weight:900}.tournament-primary:disabled{opacity:.45}.tournament-new-player{grid-template-columns:1fr 1fr auto;gap:10px;display:grid}.tournament-new-player h3{grid-column:1/-1}.tournament-new-player button{width:auto;padding-inline:20px}.tournament-error{color:#ffb5bc;text-align:center;background:#ff4a5b24;border-radius:12px;width:min(760px,100%);margin:12px auto;padding:11px 14px}.tournament-status{text-align:center;gap:4px;margin:16px auto 10px;display:grid}.tournament-status>span{color:#5bacff;letter-spacing:.18em;font-size:.74rem;font-weight:900}.tournament-status>strong{font-size:clamp(1.25rem,3vw,2rem)}.tournament-status>small{color:var(--t-muted)}.tournament-punto{z-index:20;color:#352b00;text-align:center;background:#ffd84c;border-radius:14px;padding:10px 20px;animation:.9s infinite alternate t-pulse;position:fixed;top:84px;left:50%;transform:translate(-50%);box-shadow:0 14px 45px #ffd84c4d}.tournament-punto small,.tournament-punto strong{display:block}.tournament-punto small{letter-spacing:.15em;font-size:.65rem}.tournament-punto strong{font-size:1.15rem}@keyframes t-pulse{to{transform:translate(-50%)scale(1.04)}}.tournament-court{grid-template-columns:1fr 1fr;gap:14px;width:min(1180px,100%);min-height:43vh;margin:12px auto;display:grid;position:relative}.tournament-side{border:1px solid var(--t-border);color:#fff;cursor:pointer;border-radius:24px;align-content:center;place-items:center;gap:8px;padding:20px;display:grid;position:relative;overflow:hidden}.tournament-side:before{content:"";opacity:.14;pointer-events:none;position:absolute;inset:0}.tournament-side .player-avatar{z-index:1;position:relative}.tournament-player-name{z-index:1;font-size:clamp(1.25rem,3vw,2rem);font-weight:900;position:relative}.tournament-server{z-index:1;letter-spacing:.12em;background:#ffffff1f;border-radius:999px;padding:5px 9px;font-size:.68rem;position:relative}.tournament-score{z-index:1;text-shadow:0 12px 35px #00000040;font-size:clamp(5rem,14vw,11rem);line-height:.85;position:relative}.tournament-side>small{z-index:1;color:#d2e1ef;position:relative}.tournament-vs{z-index:3;border:1px solid var(--t-border);background:#081524;border-radius:50%;place-items:center;width:52px;height:52px;font-weight:1000;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tournament-waiting{border:1px dashed var(--t-border);background:#0d1d30cc;border-radius:16px;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;width:min(530px,100%);margin:12px auto 20px;padding:12px 16px;display:grid}.tournament-waiting>span{color:var(--t-muted);letter-spacing:.15em;grid-column:1/-1;font-size:.66rem;font-weight:900}.tournament-waiting small{color:var(--t-muted)}.tournament-ranking{width:min(980px,100%);margin:24px auto}.tournament-ranking h2{text-align:center}.tournament-ranking>div{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.tournament-ranking article{border:1px solid var(--t-border);background:#101e30;border-radius:15px;grid-template-columns:auto 1fr;align-items:center;gap:4px 10px;padding:14px;display:grid}.tournament-ranking article.is-playing{outline:1px solid #47a0ff99}.tournament-ranking article span{color:var(--t-muted);font-size:.75rem}.tournament-ranking article span b{color:#fff}.tournament-ranking article em{color:#a9ef65;grid-column:2;font-size:.72rem;font-style:normal}.tournament-controls{flex-wrap:wrap;justify-content:center;gap:9px;margin:20px 0;display:flex}.tournament-controls button{border:1px solid var(--t-border);color:#fff;min-height:46px;font:inherit;background:#182b45;border-radius:12px;padding:10px 17px;font-weight:800}.tournament-controls .finish{background:#a93144}.tournament-controls button:disabled{opacity:.4}.tournament-remote-card{border:1px solid var(--t-border);background:#101e30;border-radius:20px;grid-template-columns:1fr auto;align-items:center;gap:20px;width:min(620px,100%);margin:22px auto;padding:18px;display:grid}.tournament-remote-card>div{gap:5px;display:grid}.tournament-remote-card small{color:var(--t-muted)}.tournament-remote-card strong{letter-spacing:.12em;font-size:2.4rem}.tournament-remote-card span{color:#b9cadb}.tournament-remote-card a{color:#6db7ff;margin-top:8px;font-weight:800}.tournament-remote-card img{border-radius:12px;width:150px}.tournament-winner{z-index:50;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);text-align:center;background:#030a12eb;align-content:center;place-items:center;gap:16px;padding:20px;display:grid;position:fixed;inset:0}.tournament-winner>small{color:var(--t-gold);letter-spacing:.25em;font-weight:900}.tournament-winner>div{gap:22px;display:flex}.tournament-winner>div>span{place-items:center;gap:8px;font-size:clamp(2rem,6vw,4.6rem);display:grid}.tournament-winner p{color:#c7d4e2}.tournament-winner button{color:#fff;font:inherit;background:linear-gradient(135deg,#2d9bf4,#596cff);border:0;border-radius:13px;padding:14px 24px;font-weight:900}.tournament-error.floating{z-index:80;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.tournament-setup-tools{grid-template-columns:1fr 1fr auto;align-items:start;gap:8px;width:min(900px,100%);margin:8px auto;display:grid}.tournament-setup-tools>details,.tournament-setup-tools>a{border:1px solid var(--t-border);background:#101e30;border-radius:12px}.tournament-setup-tools summary,.tournament-setup-tools>a{color:#c8d7e7;cursor:pointer;padding:11px 13px;font-size:.78rem;font-weight:850;text-decoration:none;display:block}.tournament-setup-tools .tournament-voice-card,.tournament-setup-tools .tournament-new-player{border:0;border-top:1px solid var(--t-border);width:auto;box-shadow:none;border-radius:0 0 12px 12px;grid-template-columns:1fr;margin:0}.tournament-setup-tools .tournament-new-player button{width:100%}.tournament-pairing{z-index:70;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#02080fe8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.tournament-pairing>section{border:1px solid var(--t-border);background:linear-gradient(145deg,#12304d,#081522);border-radius:24px;grid-template-columns:1fr 230px;align-items:center;gap:18px 24px;width:min(720px,100%);padding:26px;display:grid;box-shadow:0 30px 100px #000}.tournament-pairing p{color:#ffd84c;letter-spacing:.17em;margin:0;font-size:.68rem;font-weight:950}.tournament-pairing h2{margin:6px 0;font-size:clamp(2rem,5vw,3.3rem)}.tournament-pairing span{color:var(--t-muted)}.tournament-pairing img,.tournament-pairing-loading{color:#345;text-align:center;background:#fff;border:10px solid #fff;border-radius:15px;grid-row:span 2;place-items:center;width:230px;min-height:230px;display:grid}.tournament-pairing-code{border:1px dashed #5d7896;border-radius:11px;gap:3px;width:max-content;margin-top:14px;padding:9px 16px;display:grid}.tournament-pairing-code strong{letter-spacing:.15em;font-size:1.6rem}.tournament-pairing-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:9px;display:grid}.tournament-pairing-actions a,.tournament-pairing-actions button{color:#fff;background:#163552;border:1px solid #46617e;border-radius:11px;place-items:center;min-height:48px;padding:10px;font-weight:900;text-decoration:none;display:grid}.tournament-pairing-actions button{color:#07111f;background:#8fd72d;border:0}.tournament-remote-pair,.tournament-phone{color:#fff;background:radial-gradient(circle at top,#173854,#07111f 55%);min-height:100dvh;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.tournament-remote-pair{align-content:center;place-items:center;gap:10px;padding:22px;display:grid}.tournament-remote-pair>img{width:90px}.tournament-remote-pair>p{color:#60afff;letter-spacing:.17em;font-size:.72rem;font-weight:900}.tournament-remote-pair h1{text-align:center;margin:0 0 12px}.tournament-remote-pair form{gap:12px;width:min(420px,100%);display:grid}.tournament-remote-pair label{color:#c4d4e6;gap:6px;display:grid}.tournament-remote-pair input{border:1px solid var(--t-border);color:#fff;text-transform:uppercase;background:#091729;border-radius:13px;min-height:52px;padding:12px;font-size:1.1rem}.tournament-remote-pair button{color:#fff;background:#247bff;border:0;border-radius:13px;min-height:54px;font-weight:900}.tournament-phone{grid-template-rows:auto 1fr auto auto;display:grid;overflow:hidden}.tournament-phone>header{background:#0a1728;justify-content:space-between;align-items:center;min-height:72px;padding:10px 14px;display:flex}.tournament-phone header>div{gap:3px;display:grid}.tournament-phone header small{color:#71b8ff}.tournament-phone header button{color:#fff;background:#192b42;border:0;border-radius:50%;width:44px;height:44px;font-size:1.4rem}.phone-score{grid-template-columns:1fr 1fr;min-height:54dvh;display:grid}.phone-player{color:#fff;border:0;align-content:center;place-items:center;gap:7px;display:grid}.phone-player.sent{filter:brightness(1.45)}.phone-player>b{font-size:clamp(5rem,28vw,9rem);line-height:.85}.phone-player>strong{font-size:clamp(1.05rem,5vw,1.5rem)}.phone-player>span{background:#0003;border-radius:999px;padding:7px 12px;font-size:.75rem;font-weight:900}.phone-waiting{background:#111f32;justify-content:center;align-items:center;gap:9px;padding:10px;display:flex}.phone-waiting>span{color:var(--t-muted);letter-spacing:.1em;font-size:.65rem}.phone-undo{border:1px solid var(--t-border);color:#fff;min-height:50px;font:inherit;background:#192a40;border-radius:13px;margin:10px 12px;font-weight:850}.phone-undo:disabled{opacity:.4}.phone-ranking{grid-template-columns:repeat(3,1fr);gap:5px;padding:0 12px 12px;display:grid}.phone-ranking span{text-align:center;background:#101f33;border-radius:10px;padding:8px;display:grid}.phone-ranking small{color:var(--t-muted);font-size:.65rem}@media (width<=700px){.tournament-shell{padding:10px 10px 24px}.tournament-top{grid-template-columns:1fr auto}.tournament-brand{grid-area:1/2}.tournament-top-actions{grid-column:1/-1;justify-self:stretch}.tournament-top-actions button{flex:1}.tournament-brand span{display:none}.tournament-intro{padding-top:3vh}.tournament-intro h1{font-size:3.1rem}.tournament-setup-card,.tournament-new-player{border-radius:17px;padding:16px}.tournament-selects,.tournament-new-player{grid-template-columns:1fr}.tournament-new-player h3{grid-column:auto}.tournament-new-player button{width:100%}.tournament-status{margin-top:4px}.tournament-court{gap:6px;min-height:48vh}.tournament-side{border-radius:17px;padding:10px 4px}.tournament-side .player-avatar{transform:scale(.86)}.tournament-player-name{font-size:1.08rem}.tournament-score{font-size:clamp(4.8rem,27vw,7rem)}.tournament-side>small{font-size:.62rem}.tournament-vs{width:40px;height:40px;font-size:.8rem}.tournament-punto{top:68px}.tournament-waiting{grid-template-columns:auto 1fr}.tournament-waiting>span,.tournament-waiting small{grid-column:1/-1}.tournament-ranking>div{grid-template-columns:1fr}.tournament-ranking article{grid-template-columns:auto 1fr 1fr}.tournament-ranking article .player-avatar{grid-row:1/3}.tournament-ranking article em{grid-column:2/-1}.tournament-controls{grid-template-columns:1fr 1fr;display:grid}.tournament-controls .finish{grid-column:1/-1}.tournament-remote-card{text-align:center;grid-template-columns:1fr}.tournament-remote-card img{width:180px;margin:auto}.tournament-winner>div{flex-direction:column}.tournament-setup-tools{grid-template-columns:1fr}.tournament-pairing>section{text-align:center;grid-template-columns:1fr}.tournament-pairing img,.tournament-pairing-loading{grid-row:auto;width:205px;min-height:205px;margin:auto}.tournament-pairing-code{margin:14px auto 0}.tournament-pairing-actions{grid-column:1;grid-template-columns:1fr}}@media (width>=701px) and (height<=820px){.tournament-shell.tournament-setup{padding-top:8px}.tournament-shell.tournament-setup .tournament-top{min-height:50px}.tournament-shell.tournament-setup .tournament-intro{padding:7px 0 5px}.tournament-shell.tournament-setup .tournament-intro p{margin:2px}.tournament-shell.tournament-setup .tournament-intro h1{font-size:2.8rem}.tournament-shell.tournament-setup .tournament-setup-card{margin:6px auto;padding:13px 16px}.tournament-shell.tournament-setup .tournament-setup-card h2,.tournament-shell.tournament-setup .tournament-setup-card label{margin-bottom:8px}.tournament-shell.tournament-setup .tournament-setup-card select{min-height:41px;padding:8px 10px}.tournament-shell.tournament-setup .tournament-rule{margin:3px 0 9px;padding:9px 12px}.tournament-shell.tournament-setup .tournament-primary{min-height:44px}}.tournament-selects fieldset{border:1px solid var(--player-primary);background:linear-gradient(155deg,var(--player-dark),#081525 75%);border-radius:15px;min-width:0;margin:0;padding:12px}.tournament-options{grid-template-columns:repeat(2,1fr);gap:0 12px;margin-top:14px;display:grid}.tournament-voice-card{border:1px solid var(--t-border);background:#101e30;border-radius:20px;grid-template-columns:1fr 1fr;align-items:end;gap:12px;width:min(760px,100%);margin:16px auto;padding:20px;display:grid}.tournament-voice-card h3,.tournament-voice-card p{margin:0}.tournament-voice-card p{color:var(--t-muted);margin-top:6px;font-size:.82rem}.tournament-voice-card select,.tournament-voice-card button{border:1px solid var(--t-border);color:#fff;min-height:46px;font:inherit;background:#081525;border-radius:12px;padding:9px 12px}.tournament-voice-card button{background:#1b4f86;font-weight:850}.tournament-voice-card label{color:#c6d5e6;gap:6px;font-size:.82rem;display:grid}.voice-card-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tournament-history{width:min(900px,100%);margin:28px auto}.tournament-history h2{text-align:center}.tournament-history>div{gap:8px;display:grid}.tournament-history article{border-left:5px solid var(--player-primary);background:#101e30;border-radius:14px;grid-template-columns:42px auto 1fr auto;align-items:center;gap:8px 12px;padding:12px 14px;display:grid}.tournament-history article>b{color:var(--player-soft)}.tournament-history article span{color:var(--t-muted);font-size:.78rem}.tournament-history article span:last-child{grid-column:3/-1}.tournament-past-results{width:min(900px,100%);margin:28px auto}.tournament-past-results h2{text-align:center}.tournament-past-results>div{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.tournament-past-results a{border:1px solid var(--t-border);color:#fff;background:#101e30;border-radius:14px;gap:4px;padding:14px;text-decoration:none;display:grid}.tournament-past-results a span,.tournament-past-results a small{color:var(--t-muted)}.tournament-past-results a strong{font-size:1.08rem}.tournament-side-0{background:linear-gradient(150deg,var(--player-dark),#101f34)}.tournament-side-0:before{background:radial-gradient(circle at top left,var(--player-primary),transparent 55%)}.tournament-side-1{background:linear-gradient(210deg,var(--player-dark),#101f34)}.tournament-side-1:before{background:radial-gradient(circle at top right,var(--player-primary),transparent 55%)}.tournament-waiting{border-color:var(--player-primary,var(--t-border));background:linear-gradient(90deg,var(--player-dark,#0d1d30),#0d1d30e6)}.tournament-ranking article{border-top:3px solid var(--player-primary)}.tournament-ranking article.is-playing{outline-color:var(--player-primary)}.tournament-ranking article .player-avatar{grid-row:1/5}.tournament-ranking article em{color:var(--player-soft)}.tournament-controls .abandon{color:#ffb8c1;background:0 0;border-color:#a55763}.tournament-result-link{border:1px solid var(--t-border);color:#fff;font:inherit;background:#183e62;border-radius:13px;padding:14px 24px;font-weight:900;text-decoration:none}.phone-player-0{background:linear-gradient(155deg,var(--player-primary),var(--player-dark))}.phone-player-1{background:linear-gradient(205deg,var(--player-primary),var(--player-dark))}.phone-waiting{background:linear-gradient(90deg,#111f32,var(--player-dark),#111f32)}.phone-undo{touch-action:none;position:relative;overflow:hidden}.phone-undo:before{content:"";background:#ffbe453d;width:0;position:absolute;inset:0 auto 0 0}.phone-undo.holding:before{width:100%;transition:width .9s linear}.tournament-result-page{color:#fff;background:radial-gradient(circle at top,#183a5a,#07111f 52%);min-height:100dvh;padding:24px;font-family:Inter,ui-sans-serif,system-ui,sans-serif}.tournament-result-page>header{justify-content:space-between;align-items:center;width:min(900px,100%);margin:auto;display:flex}.tournament-result-page a{color:#8dc7ff}.result-card{border:1px solid var(--t-border);background:#101e30;border-radius:24px;width:min(900px,100%);margin:34px auto;padding:28px}.result-card h1{margin:.2em 0;font-size:clamp(2.4rem,7vw,5.5rem)}.result-winners,.result-ranking,.result-log{gap:10px;display:grid}.result-winners{grid-template-columns:repeat(3,1fr)}.result-winners article,.result-ranking article,.result-log article{border-top:4px solid var(--player-primary,#247bff);background:#0a1728;border-radius:14px;padding:14px}.result-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.result-actions button{color:#fff;background:#247bff;border:0;border-radius:12px;min-height:48px;padding:10px 18px;font-weight:850}@media (width<=700px){.tournament-selects,.tournament-options,.tournament-new-player,.tournament-voice-card{grid-template-columns:1fr}.tournament-controls .abandon{grid-column:1/-1}.tournament-history article{grid-template-columns:36px auto 1fr}.tournament-history article span{grid-column:3}.tournament-past-results>div,.result-winners{grid-template-columns:1fr}}
