:root{--bg:#0a0f0a;--surface:#111811;--card:#161e16;--border:#2a3a2a;--green:#4eff7a;--green-dim:#1a3320;--text:#e8f0e8;--muted:#6a826a;--danger:#ff4e6a;--gold:#ffd766;--warn:#ffaa4e;--safe-top: env(safe-area-inset-top, 0px);--safe-bot: env(safe-area-inset-bottom, 0px)}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:DM Sans,sans-serif;min-height:100vh;overflow-x:hidden;padding-bottom:calc(var(--safe-bot) + 8px)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 60% 40% at 80% 10%,rgba(78,255,122,.06) 0%,transparent 60%),radial-gradient(ellipse 40% 30% at 10% 80%,rgba(78,255,122,.04) 0%,transparent 60%),url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%232a3a2a' fill-opacity='0.25'%3E%3Cpath d='M0 40L40 0H20L0 20M40 40V20L20 40'/%3E%3C/g%3E%3C/svg%3E");pointer-events:none;z-index:0}header{position:sticky;top:0;z-index:100;background:#0a0f0aeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);padding:0 16px;padding-top:var(--safe-top);display:flex;align-items:center;justify-content:space-between;min-height:56px}.logo{font-family:Bebas Neue,sans-serif;font-size:1.7rem;letter-spacing:.05em;color:var(--green);text-shadow:0 0 20px rgba(78,255,122,.4)}.logo span{color:var(--text)}#tourStatus{font-size:.74rem;color:var(--muted)}#installBanner{display:none;position:relative;z-index:10;background:var(--green-dim);border-bottom:1px solid rgba(78,255,122,.3);padding:10px 16px;gap:10px;align-items:center}#installBanner.show{display:flex}#installBanner p{font-size:.8rem;flex:1;color:var(--text)}#installBanner p span{color:var(--green);font-weight:600}.banner-btns{display:flex;gap:6px;flex-shrink:0}#updateBanner{display:none;background:#4eb4ff1a;border-bottom:1px solid rgba(78,180,255,.3);padding:10px 16px;gap:10px;align-items:center}#updateBanner.show{display:flex}#updateBanner p{font-size:.8rem;flex:1;color:var(--text)}#updateBanner p span{color:#4eb4ff;font-weight:600}#offlineBadge{display:none;background:#ffaa4e26;border-bottom:1px solid rgba(255,170,78,.3);padding:6px 16px;font-size:.74rem;color:var(--warn);text-align:center}#offlineBadge.show{display:block}.tabs{position:relative;z-index:1;display:flex;gap:3px;padding:12px 12px 0;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab-btn{font-family:DM Sans,sans-serif;font-size:.76rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:7px 13px;border:1px solid transparent;border-radius:7px 7px 0 0;background:none;color:var(--muted);cursor:pointer;white-space:nowrap;transition:all .2s;border-bottom:none}.tab-btn.active{background:var(--card);border-color:var(--border);border-bottom-color:var(--card);color:var(--green)}.tab-btn:hover:not(.active){color:var(--text)}.content{position:relative;z-index:1;padding:16px 14px;max-width:680px;margin:0 auto}.panel{display:none}.panel.active{display:block;animation:fadeUp .25s ease}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.section-title{font-family:Bebas Neue,sans-serif;font-size:1.85rem;letter-spacing:.05em;color:var(--text);margin-bottom:3px}.section-sub{color:var(--muted);font-size:.81rem;margin-bottom:16px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:12px}.card-title{font-family:Bebas Neue,sans-serif;font-size:.88rem;letter-spacing:.08em;color:var(--muted);margin-bottom:10px}input[type=text],input[type=number]{background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:DM Sans,sans-serif;font-size:.88rem;padding:9px 11px;width:100%;outline:none;transition:border-color .2s}input:focus{border-color:var(--green)}.input-row{display:flex;gap:8px;margin-bottom:10px;align-items:flex-end}.input-row input{flex:1}.label-sm{font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.btn{font-family:DM Sans,sans-serif;font-size:.82rem;font-weight:600;letter-spacing:.04em;padding:9px 15px;border:none;border-radius:8px;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-primary{background:var(--green);color:#000}.btn-primary:hover{background:#6fffaa;transform:translateY(-1px);box-shadow:0 4px 16px #4eff7a4d}.btn-secondary{background:var(--green-dim);color:var(--green);border:1px solid rgba(78,255,122,.3)}.btn-secondary:hover{border-color:var(--green)}.btn-ghost{background:none;color:var(--muted);border:1px solid var(--border)}.btn-ghost:hover{color:var(--text);border-color:var(--muted)}.btn-danger{background:#ff4e6a1f;color:var(--danger);border:1px solid rgba(255,78,106,.3)}.btn-danger:hover{background:#ff4e6a38}.btn-sm{padding:5px 11px;font-size:.74rem}.btn-full{width:100%}.player-list{display:flex;flex-wrap:wrap;gap:6px;min-height:32px}.chip{display:flex;align-items:center;gap:5px;background:var(--green-dim);border:1px solid rgba(78,255,122,.25);border-radius:20px;padding:4px 10px 4px 12px;font-size:.79rem;color:var(--text);animation:popIn .2s ease}@keyframes popIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.chip-remove{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1rem;line-height:1;padding:0;transition:color .15s}.chip-remove:hover{color:var(--danger)}.qchip{display:flex;align-items:center;gap:5px;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:5px 12px;font-size:.8rem;color:var(--muted);cursor:pointer;transition:all .15s}.qchip:hover{border-color:var(--green);color:var(--green);background:var(--green-dim)}.qchip.added{background:var(--green-dim);border-color:#4eff7a66;color:var(--green);opacity:.5;cursor:default}.qchip-count{font-size:.68rem;color:var(--muted)}.round-dots{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;margin-bottom:12px}.rdot{width:26px;height:26px;border-radius:6px;border:1px solid var(--border);background:var(--surface);font-size:.7rem;font-weight:600;color:var(--muted);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.rdot:hover{border-color:var(--green);color:var(--green)}.rdot.done{background:var(--green-dim);border-color:#4eff7a66;color:var(--green)}.rdot.cur{background:var(--green);color:#000;border-color:var(--green)}.round-pager{display:flex;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:14px}.pager-btn{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1.3rem;padding:10px 16px;transition:all .15s;flex-shrink:0}.pager-btn:hover:not(:disabled){color:var(--green);background:var(--green-dim)}.pager-btn:disabled{opacity:.25;cursor:default}.pager-center{flex:1;text-align:center;border-left:1px solid var(--border);border-right:1px solid var(--border);padding:8px 4px}.pager-round{font-family:Bebas Neue,sans-serif;font-size:1.6rem;letter-spacing:.06em;color:var(--green);line-height:1}.pager-sub{font-size:.68rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.match-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:11px 12px;margin-bottom:8px;display:flex;align-items:center;gap:8px;transition:border-color .2s}.match-card.scored{border-color:#4eff7a4d}.team-col{flex:1;min-width:0}.team-label{font-size:.67rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}.p1{font-size:.86rem;font-weight:500}.p2{font-size:.78rem;color:var(--muted)}.score-col{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}.court-badge{background:var(--green-dim);color:var(--green);border-radius:5px;padding:2px 7px;font-size:.67rem;font-weight:600;letter-spacing:.05em}.score-inputs{display:flex;flex-direction:row;gap:6px;align-items:center}.score-inputs input[type=number]{width:50px;text-align:center;padding:6px 2px;font-size:.92rem;font-weight:600}.score-inputs .score-sep{font-size:.9rem;color:var(--muted);font-weight:600}.bye-section{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 12px;display:flex;align-items:center;gap:8px;font-size:.81rem;color:var(--muted);margin-bottom:8px}.round-done-banner{background:var(--green-dim);border:1px solid rgba(78,255,122,.35);border-radius:8px;padding:8px 12px;font-size:.82rem;color:var(--green);display:flex;align-items:center;gap:8px;margin-bottom:10px}.add-round-area{margin-top:16px;border-top:1px solid var(--border);padding-top:14px}.add-round-row{display:flex;gap:8px;margin-bottom:8px}.standings-table{width:100%;border-collapse:collapse}.standings-table th{text-align:left;font-size:.67rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:6px 7px;border-bottom:1px solid var(--border);font-weight:600}.standings-table td{padding:9px 7px;border-bottom:1px solid rgba(42,58,42,.5);font-size:.85rem;vertical-align:middle}.standings-table tr:last-child td{border-bottom:none}.standings-table tr:hover td{background:#4eff7a08}.rank-1 .rk{color:var(--gold);font-weight:700}.rank-2 .rk{color:silver;font-weight:700}.rank-3 .rk{color:#cd7f32;font-weight:700}.pts-val{font-family:Bebas Neue,sans-serif;font-size:1.05rem;color:var(--green)}.diff.pos{color:var(--green)}.diff.neg{color:var(--danger)}.pt-bar{width:54px;height:4px;background:var(--border);border-radius:3px;margin-top:3px}.pt-fill{height:100%;border-radius:3px;background:var(--green)}.pt-fill.warn{background:var(--warn)}.pt-num{font-size:.7rem;color:var(--muted)}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:none}.settings-label{font-size:.87rem;font-weight:500}.settings-desc{font-size:.72rem;color:var(--muted);margin-top:2px}.toggle{position:relative;width:40px;height:22px;cursor:pointer;flex-shrink:0}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--surface);border:1px solid var(--border);border-radius:22px;transition:.2s}.toggle-slider:before{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:var(--muted);top:2px;left:2px;transition:.2s}.toggle input:checked+.toggle-slider{background:var(--green-dim);border-color:var(--green)}.toggle input:checked+.toggle-slider:before{background:var(--green);transform:translate(18px)}.save-indicator{font-size:.72rem;color:var(--muted);text-align:center;padding:4px 0;opacity:0;transition:opacity .3s}.save-indicator.show{opacity:1}.empty-state{text-align:center;padding:44px 20px;color:var(--muted)}.empty-state .icon{font-size:2.2rem;margin-bottom:10px}.empty-state p{font-size:.85rem}.hist-card{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;overflow:hidden}.hist-header{padding:12px 14px;display:flex;align-items:center;gap:10px;cursor:pointer;transition:background .15s}.hist-header:hover{background:#4eff7a0a}.hist-date{font-size:.72rem;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;flex:1}.hist-meta{font-size:.78rem;color:var(--muted)}.hist-chevron{color:var(--muted);font-size:.9rem;transition:transform .2s;flex-shrink:0}.hist-card.open .hist-chevron{transform:rotate(90deg)}.hist-podium{display:flex;gap:8px;padding:0 14px 12px;align-items:flex-end;justify-content:center}.podium-slot{flex:1;max-width:110px;text-align:center}.podium-place{font-family:Bebas Neue,sans-serif;font-size:1.6rem;line-height:1}.podium-name{font-size:.78rem;font-weight:600;margin-top:2px;word-break:break-word}.podium-pts{font-size:.7rem;color:var(--muted);margin-top:1px}.podium-bar{border-radius:6px 6px 0 0;margin:6px auto 0;width:100%}.p1-slot .podium-place{color:var(--gold)}.p1-slot .podium-bar{background:#ffd76633;border:1px solid rgba(255,215,102,.3);height:48px}.p2-slot .podium-place{color:silver}.p2-slot .podium-bar{background:#c0c0c026;border:1px solid rgba(192,192,192,.25);height:36px}.p3-slot .podium-place{color:#cd7f32}.p3-slot .podium-bar{background:#cd7f321f;border:1px solid rgba(205,127,50,.2);height:26px}.hist-body{display:none;border-top:1px solid var(--border)}.hist-card.open .hist-body{display:block}.hist-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.hist-table-wrap::-webkit-scrollbar{height:3px}.hist-table-wrap::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.hist-table{width:100%;min-width:420px;border-collapse:collapse;font-size:.82rem}.hist-table td{padding:7px 14px;border-bottom:1px solid rgba(42,58,42,.4);white-space:nowrap}.hist-table tr:last-child td{border-bottom:none}.hist-del{float:right;background:none;border:none;color:var(--muted);cursor:pointer;font-size:.78rem;padding:2px 6px;border-radius:4px;transition:color .15s}.hist-del:hover{color:var(--danger)}.game-chips{display:flex;flex-wrap:wrap;gap:3px;padding:2px 0 6px 14px}.gchip{font-size:.68rem;font-weight:600;padding:2px 6px;border-radius:4px;letter-spacing:.02em;white-space:nowrap}.gchip.win{background:#4eff7a26;color:var(--green);border:1px solid rgba(78,255,122,.3)}.gchip.loss{background:#ff50501f;color:var(--danger);border:1px solid rgba(255,80,80,.25)}.gchip.tie{background:#ffc8501f;color:var(--warn);border:1px solid rgba(255,200,80,.3)}.gchip.addon{background:#7878781f;color:var(--muted);border:1px solid rgba(120,120,120,.25)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}#loginPage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;gap:0}#loginPage .login-logo{font-family:Bebas Neue,sans-serif;font-size:2.8rem;letter-spacing:.06em;color:var(--green);text-shadow:0 0 30px rgba(78,255,122,.4);margin-bottom:4px}#loginPage .login-logo span{color:var(--text)}#loginPage .login-sub{font-size:.82rem;color:var(--muted);margin-bottom:48px;letter-spacing:.04em}#loginPage .login-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:32px 28px;width:100%;max-width:340px;text-align:center}#loginPage .login-title{font-size:1.1rem;font-weight:600;margin-bottom:8px}#loginPage .login-desc{font-size:.8rem;color:var(--muted);margin-bottom:28px;line-height:1.5}#googleSignInBtn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:DM Sans,sans-serif;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}#googleSignInBtn:hover{border-color:var(--green);background:var(--green-dim);color:var(--green)}#googleSignInBtn:disabled{opacity:.5;cursor:not-allowed}#loginError{font-size:.75rem;color:var(--danger);margin-top:14px;min-height:18px}#loginSpinner{display:none;font-size:.78rem;color:var(--muted);margin-top:14px}#gdprPage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:998;background:var(--bg);display:none;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px}#gdprPage.show{display:flex}#gdprPage .gdpr-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:28px 24px;width:100%;max-width:400px}#gdprPage .gdpr-title{font-size:1.05rem;font-weight:600;margin-bottom:6px}#gdprPage .gdpr-body{font-size:.78rem;color:var(--muted);line-height:1.6;margin-bottom:20px}#gdprPage .gdpr-body strong{color:var(--text)}#gdprPage .gdpr-body ul{padding-left:16px;margin-top:6px}#gdprPage .gdpr-body li{margin-bottom:4px}#gdprPage .gdpr-actions{display:flex;flex-direction:column;gap:8px}#gdprAcceptBtn{padding:13px;border-radius:10px;border:none;background:var(--green);color:#0a0f0a;font-family:DM Sans,sans-serif;font-size:.9rem;font-weight:600;cursor:pointer}#gdprAcceptBtn:hover{opacity:.88}#gdprDeclineBtn{padding:10px;border-radius:10px;border:1px solid var(--border);background:none;color:var(--muted);font-family:DM Sans,sans-serif;font-size:.82rem;cursor:pointer}#gdprDeclineBtn:hover{color:var(--text)}#appShell{display:none}#authAvatar{width:26px;height:26px;border-radius:50%;object-fit:cover;display:none}#syncBadge{display:none;font-size:.62rem;padding:1px 5px;border-radius:3px;background:var(--green-dim);color:var(--green);border:1px solid rgba(78,255,122,.3)}#syncBadge.syncing{background:#ffaa4e1a;color:var(--warn);border-color:#ffaa4e4d}
