:root{--yellow-50:#fffbeb;--yellow-100:#fef3c7;--yellow-200:#fde68a;--yellow-300:#fcd34d;--yellow-400:#fbbf24;--yellow-500:#f59e0b;--yellow-600:#d97706;--yellow-700:#b45309;--yellow-800:#92400e;--yellow-900:#78350f;--lime-50:#f7fee7;--lime-100:#ecfccb;--lime-200:#d9f99d;--lime-300:#bef264;--lime-400:#a3e635;--lime-500:#84cc16;--lime-600:#65a30d;--lime-700:#4d7c0f;--lime-800:#3f6212;--lime-900:#365314;--bg:#fafafa;--card-bg:#fff;--text-main:#1e293b;--text-muted:#64748b;--accent:var(--lime-500);--primary:var(--yellow-400);--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a}#auth-section{background:radial-gradient(circle at top left, var(--yellow-100), transparent), radial-gradient(circle at bottom right, var(--lime-100), transparent);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.auth-card{text-align:center;width:100%;max-width:400px;padding:3rem 2rem}.auth-card h2{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.75rem;font-weight:800}.auth-card p{color:var(--text-muted);margin-bottom:2rem}.logo-wrapper.large{flex-direction:column;gap:1rem}.auth-logo-img{border-radius:50%;width:80px;height:80px;box-shadow:0 10px 25px #eab3084d}.auth-buttons{flex-direction:column;gap:1rem;display:flex}.google-btn{color:#1e293b;border-radius:var(--radius-md);cursor:pointer;background:#fff;border:1px solid #e2e8f0;justify-content:center;align-items:center;gap:1rem;padding:1rem;font-family:inherit;font-size:1rem;font-weight:700;transition:all .2s;display:flex}.google-btn:hover{background:#f8fafc;border-color:#cbd5e1;transform:translateY(-1px)}.google-btn img{width:20px;height:20px}.auth-form{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.auth-submit{padding:1rem;font-size:1rem}.divider{color:var(--text-muted);align-items:center;gap:1rem;margin-bottom:1.5rem;font-size:.75rem;font-weight:700;display:flex}.divider:before,.divider:after{content:"";background:#e2e8f0;flex:1;height:1px}.toggle-text{color:var(--text-muted);margin-top:.5rem;font-size:.875rem}.toggle-text span{color:var(--yellow-600);cursor:pointer;font-weight:700;text-decoration:underline}.logout svg{color:#ef4444}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{background-color:var(--bg);color:var(--text-main);min-height:100vh;padding-bottom:80px;font-family:Outfit,sans-serif;line-height:1.5}#app{max-width:500px;margin:0 auto}.glass-nav{z-index:100;-webkit-backdrop-filter:blur(12px);background:#fffc;border-bottom:1px solid #0000000d;padding:1rem;position:sticky;top:0}.nav-content{justify-content:space-between;align-items:center;display:flex}.logo-wrapper{align-items:center;gap:.75rem;display:flex}.nav-logo-img{border-radius:50%;width:32px;height:32px;box-shadow:0 4px 10px #84cc164d}.logo{color:var(--text-main);letter-spacing:-.5px;background:linear-gradient(135deg, var(--yellow-600), var(--lime-600));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800}.nav-actions{gap:.5rem;display:flex}.icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:.5rem;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex}.icon-btn.active{color:var(--text-main)}.icon-btn svg{width:24px;height:24px}.container{padding:1rem}section{animation:.4s cubic-bezier(.4,0,.2,1) slideIn;display:none}section.active{display:block}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.card{background:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid #00000008;margin-bottom:1.5rem;padding:1.5rem}.card-header{text-align:center;margin-bottom:1.5rem}.card-header h2{margin-bottom:.25rem;font-size:1.25rem;font-weight:700}.card-header p{color:var(--text-muted);font-size:.875rem}.form-group{margin-bottom:1.5rem}.form-group.row{gap:1rem;display:flex}.input-wrapper{flex-direction:column;flex:1;gap:.5rem;display:flex}label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}input,select{border-radius:var(--radius-md);background:#f8fafc;border:1.5px solid #e2e8f0;width:100%;padding:.75rem 1rem;font-family:inherit;font-size:1rem;transition:all .2s}input:focus,select:focus{border-color:var(--yellow-400);box-shadow:0 0 0 4px var(--yellow-100);background:#fff;outline:none}.players-grid{flex-direction:column;gap:1.5rem;margin-bottom:1.5rem;display:flex}.team-section{border-radius:var(--radius-md);background:#f8fafc;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.team-section h3{color:var(--text-muted);font-size:.875rem;font-weight:700}.player-input{gap:.5rem;display:flex}.gender-select{background:var(--yellow-100);border-color:var(--yellow-200);width:60px;font-weight:600}.vs-divider{text-align:center;color:var(--text-muted);font-style:italic;font-weight:800;position:relative}.vs-divider:before,.vs-divider:after{content:"";background:#e2e8f0;width:40%;height:1px;position:absolute;top:50%}.vs-divider:before{left:0}.vs-divider:after{right:0}.score-input-section{text-align:center;margin-bottom:2rem}.score-inputs{justify-content:center;gap:2rem;margin-top:1rem;display:flex}.score-box{flex-direction:column;align-items:center;gap:.5rem;display:flex}.score-box span{font-size:.75rem;font-weight:800}.score-box input{text-align:center;border-radius:var(--radius-md);background:#fff;width:70px;height:70px;padding:0;font-size:2rem;font-weight:800}.submit-btn{background:linear-gradient(135deg, var(--yellow-400), var(--yellow-500));color:#000;border-radius:var(--radius-lg);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:1.25rem;font-size:1.125rem;font-weight:800;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 15px -1px #eab30866}.submit-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px -1px #eab30880}.submit-btn:active{transform:translateY(0)}.stats-header{margin-bottom:2rem}.stats-header h2{margin-bottom:1rem;font-size:1.5rem;font-weight:800}.filter-chips{scrollbar-width:none;gap:.5rem;margin-bottom:1rem;padding:.25rem;display:flex;overflow-x:auto}.filter-chips::-webkit-scrollbar{display:none}.chip{white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:99px;padding:.5rem 1rem;font-size:.875rem;font-weight:600;transition:all .2s}.chip.active{background:var(--yellow-400);border-color:var(--yellow-400);color:#000;box-shadow:var(--shadow-sm)}.date-slider-wrapper{margin-top:1.5rem;padding:0 .5rem}.slider-labels{color:var(--text-muted);justify-content:space-between;margin-bottom:.5rem;font-size:.75rem;font-weight:700;display:flex}#slider-value-label{color:var(--yellow-600)}.range-slider{-webkit-appearance:none;background:var(--yellow-100);border-radius:5px;outline:none;width:100%;height:6px}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--yellow-500);cursor:pointer;border:2px solid #fff;border-radius:50%;width:22px;height:22px;box-shadow:0 0 10px #0000001a}.win-loss-container{border-radius:var(--radius-lg);border:1px solid var(--yellow-100);box-shadow:var(--shadow-sm);background:#fff;margin-bottom:1rem;padding:1.25rem}.wl-header{justify-content:space-between;align-items:flex-end;margin-bottom:.75rem;display:flex}.wl-label{color:var(--text-muted);font-size:.875rem;font-weight:700}.wl-percent{color:var(--text-main);font-size:1.25rem;font-weight:900}.wl-bar-wrapper{background:var(--yellow-50);border-radius:12px;height:24px;display:flex;overflow:hidden}.wl-bar{height:100%;transition:width .6s cubic-bezier(.34,1.56,.64,1)}.wl-bar.win{background:linear-gradient(to right, var(--lime-400), var(--lime-500))}.wl-bar.loss{background:#e2e8f0}.wl-footer{gap:1rem;margin-top:.75rem;font-size:.875rem;font-weight:700;display:flex}.win-text{color:var(--lime-600)}.loss-text{color:var(--text-muted)}.stats-grid{grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:2rem;display:grid}.recent-picks{flex-wrap:wrap;gap:.4rem;min-height:1.5rem;margin-top:.4rem;margin-bottom:.8rem;display:flex}.name-chip{background:var(--yellow-50);border:1px solid var(--yellow-200);color:var(--yellow-900);cursor:pointer;border-radius:6px;padding:.25rem .6rem;font-size:.7rem;font-weight:700;transition:all .2s}.name-chip:hover{background:var(--yellow-100);border-color:var(--yellow-400);transform:translateY(-1px)}.stat-card{border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-sm);background:#fff;border:1px solid #f1f5f9;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex}.stat-card.yellow{background:var(--yellow-50);border-color:var(--yellow-100)}.stat-card .label{color:var(--text-muted);text-transform:uppercase;font-size:.75rem;font-weight:700}.stat-card .value{color:var(--text-main);font-size:2rem;font-weight:800;line-height:1}.history-list h3{margin-bottom:1rem}.wl-badge{letter-spacing:.025em;border-radius:99px;padding:.35rem .75rem;font-size:.75rem;font-weight:900}.wl-badge.win{background:var(--lime-100);color:var(--lime-700)}.wl-badge.loss{color:#64748b;background:#f1f5f9}.score-summary{color:var(--text-muted);text-align:right;margin-top:.25rem;font-size:.875rem;font-weight:700}.game-score{flex-direction:column;align-items:flex-end;display:flex}.games-list{flex-direction:column;gap:1rem;display:flex}.game-item{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border-left:4px solid var(--lime-400);cursor:pointer;background:#fff;padding:1rem;transition:all .2s;display:block}.game-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.game-main-row{justify-content:space-between;align-items:center;display:flex}.game-details{border-top:1px solid #0000000d;margin-top:1rem;padding-top:1rem;animation:.3s cubic-bezier(.4,0,.2,1) slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.details-grid{grid-template-columns:1fr 1fr;gap:1rem;font-size:.85rem;display:grid}.game-actions{border-top:1px dashed #0000001a;gap:.75rem;margin-top:1.25rem;padding-top:1rem;display:flex}.action-btn{border-radius:var(--radius-sm);cursor:pointer;text-transform:uppercase;border:1px solid #0000;flex:1;justify-content:center;align-items:center;gap:.4rem;padding:.6rem;font-size:.75rem;font-weight:800;transition:all .2s;display:flex}.action-btn.edit{background:var(--yellow-50);border-color:var(--yellow-200);color:var(--yellow-800)}.action-btn.delete{color:#ef4444;background:#fff;border-color:#fee2e2}.action-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.detail-team strong{text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem;font-size:.7rem;display:block}.participant{flex-direction:column;margin-bottom:.75rem;font-weight:700;display:flex}.p-meta{color:var(--text-muted);font-size:.7rem;font-weight:400}.winner{color:var(--lime-600)}#custom-range-input{border-radius:var(--radius-md);box-shadow:var(--shadow-md);background:#fff;margin-top:1rem;padding:1rem}.range-inputs{align-items:center;gap:.5rem;display:flex}.range-inputs input{padding:.5rem}.apply-btn{background:var(--text-main);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:.5rem 1rem}.quick-log-card{border:2px solid var(--yellow-400);background:linear-gradient(145deg,#fff,#fffdf0);position:relative;overflow:hidden}.quick-log-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.title-group h3{color:var(--text-main);font-size:1.25rem;font-weight:800}.title-group p{color:var(--text-muted);font-size:.875rem}.edit-btn{background:var(--yellow-100);width:36px;height:36px;color:var(--yellow-700);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.edit-btn:hover{background:var(--yellow-200);transform:rotate(30deg)}.session-panel{border-radius:var(--radius-md);border:1px dashed var(--yellow-300);background:#f8fafc;margin-bottom:1.5rem;padding:1.25rem}.players-mini-grid{flex-direction:column;gap:1.5rem;margin:1rem 0;display:flex}.team-mini{flex-direction:column;gap:.5rem;display:flex}.mini-player-row{gap:.5rem;display:flex}.mini-gender,.mini-dupr{background-color:var(--yellow-100);border-color:var(--yellow-300);text-align:left;font-weight:700;padding:.5rem .15rem .5rem .25rem!important}.mini-gender{min-width:45px;width:45px!important}.mini-dupr{min-width:55px;width:55px!important}.save-session-btn{background:var(--text-main);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;width:100%;padding:.75rem;font-weight:700}.repair-btn{width:100%;color:var(--text-muted);border:1px solid var(--yellow-300);border-radius:var(--radius-md);cursor:pointer;background:#fff;flex-direction:column;align-items:center;gap:.25rem;margin-top:1rem;padding:.75rem;display:flex}.repair-btn span{font-size:.875rem;font-weight:700}.repair-btn p{opacity:.7;font-size:.75rem}.quick-scores-row{justify-content:space-around;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem 0;display:flex}.score-input-group{flex-direction:column;align-items:center;gap:.5rem;display:flex}.team-label{color:var(--text-muted);font-size:.75rem;font-weight:800}.score-picker{border-radius:var(--radius-lg);border:2px solid var(--yellow-200);background:#fff;width:100px;height:120px;position:relative;overflow:hidden;box-shadow:inset 0 2px 10px #0000000d}.picker-viewport{scroll-snap-type:y mandatory;scrollbar-width:none;-ms-overflow-style:none;height:100%;padding:40px 0;overflow-y:auto}.picker-viewport::-webkit-scrollbar{display:none}.picker-list{flex-direction:column;align-items:center;display:flex}.picker-item{width:100%;height:40px;min-height:40px;color:var(--text-muted);scroll-snap-align:center;cursor:pointer;justify-content:center;align-items:center;font-size:2rem;font-weight:800;transition:all .2s;display:flex}.picker-item.active{color:var(--text-main);font-size:2.5rem;transform:scale(1.2)}.picker-selection-overlay{background:var(--yellow-50);pointer-events:none;z-index:0;border-top:1px solid var(--yellow-200);border-bottom:1px solid var(--yellow-200);opacity:.5;height:40px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.court-net{background:repeating-linear-gradient(to bottom, var(--yellow-400), var(--yellow-400) 8px, transparent 8px, transparent 12px);width:2px;height:70px;position:relative}.court-net:before,.court-net:after{content:"";background:var(--yellow-500);border-radius:50%;width:10px;height:10px;position:absolute;left:50%;transform:translate(-50%)}.court-net:before{top:-5px}.court-net:after{bottom:-5px}.quick-log-btn{background:linear-gradient(135deg, var(--lime-400), var(--lime-500));box-shadow:0 4px 15px -1px #84cc1666}.quick-log-btn:hover{box-shadow:0 6px 20px -1px #84cc1680}.hidden{display:none!important}.toast{color:#fff;z-index:1000;background:#000;border-radius:99px;padding:.75rem 1.5rem;font-weight:600;position:fixed;bottom:2rem;left:50%;transform:translate(-50%)}#loading-overlay{z-index:1001;background:#fffc;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loader{border:5px solid var(--yellow-200);border-bottom-color:var(--yellow-500);border-radius:50%;width:48px;height:48px;animation:1s linear infinite rotation;display:inline-block}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.players-page-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-top:.5rem;display:flex}.players-page-header h2{margin-bottom:.15rem;font-size:1.5rem;font-weight:800}.players-page-header p{color:var(--text-muted);font-size:.875rem}.add-player-btn{background:linear-gradient(135deg, var(--yellow-400), var(--yellow-500));border-radius:var(--radius-md);color:#000;cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:.4rem;padding:.65rem 1.1rem;font-family:inherit;font-size:.875rem;font-weight:800;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 12px -2px #eab30859}.add-player-btn svg{width:16px;height:16px}.add-player-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px -2px #eab30873}.player-filter-tabs{border-radius:var(--radius-md);background:#f1f5f9;gap:.5rem;margin-bottom:1.25rem;padding:.3rem;display:flex}.player-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:.5rem;font-family:inherit;font-size:.875rem;font-weight:700;transition:all .2s}.player-tab.active{color:var(--text-main);box-shadow:var(--shadow-sm);background:#fff}.players-cards-list{flex-direction:column;gap:.75rem;margin-bottom:1.5rem;display:flex}.player-card{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;border:1px solid #f1f5f9;border-left:4px solid #0000;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;transition:all .2s;display:flex}.player-card--teammate{border-left-color:var(--lime-400)}.player-card--opponent{border-left-color:var(--yellow-400)}.player-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.player-card-left{flex:1;align-items:center;gap:.875rem;min-width:0;display:flex}.player-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:1.1rem;font-weight:900;display:flex}.player-avatar--teammate{background:var(--lime-100);color:var(--lime-700)}.player-avatar--opponent{background:var(--yellow-100);color:var(--yellow-700)}.player-info{min-width:0}.player-name{white-space:nowrap;text-overflow:ellipsis;margin-bottom:.3rem;font-size:1rem;font-weight:800;overflow:hidden}.player-meta{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.player-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:99px;padding:.2rem .5rem;font-size:.65rem;font-weight:800}.player-badge--teammate{background:var(--lime-100);color:var(--lime-700)}.player-badge--opponent{background:var(--yellow-100);color:var(--yellow-700)}.player-meta-item{color:var(--text-muted);font-size:.75rem;font-weight:600}.player-edit-btn{width:34px;height:34px;color:var(--text-muted);cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.player-edit-btn svg{width:15px;height:15px}.player-edit-btn:hover{background:var(--yellow-100);border-color:var(--yellow-300);color:var(--yellow-800);transform:rotate(30deg)}.import-btn{border:1.5px dashed var(--yellow-300);border-radius:var(--radius-md);width:100%;color:var(--yellow-700);cursor:pointer;background:#fff;justify-content:center;align-items:center;gap:.5rem;margin-bottom:2rem;padding:.875rem;font-family:inherit;font-size:.875rem;font-weight:700;transition:all .2s;display:flex}.import-btn svg{width:16px;height:16px}.import-btn:hover{background:var(--yellow-50);border-color:var(--yellow-400)}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:500;background:#00000073;justify-content:center;align-items:flex-end;padding:0;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-overlay.hidden{display:none!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-card{border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:#fff;width:100%;max-width:500px;padding:1.5rem;animation:.3s cubic-bezier(.34,1.56,.64,1) slideUp}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.modal-header h3{font-size:1.25rem;font-weight:800}.modal-close-btn{width:34px;height:34px;color:var(--text-muted);cursor:pointer;background:#f1f5f9;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.modal-close-btn svg{width:16px;height:16px}.modal-close-btn:hover{color:var(--text-main);background:#e2e8f0}.modal-actions{gap:.75rem;margin-top:.5rem;display:flex}.modal-save-btn{flex:1;padding:1rem!important;font-size:1rem!important}.empty-msg{text-align:center;color:var(--text-muted);padding:2rem 0;font-size:.9rem}.header-actions{align-items:center;gap:12px;display:flex}.mini-fetch-btn:hover{background:var(--primary);color:#000;border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 12px #dcff004d}.mini-fetch-btn:active{transform:translateY(0)}.mini-fetch-btn.loading i{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.support-fab{background:var(--lime-500);color:#fff;cursor:pointer;z-index:90;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;bottom:90px;right:20px;box-shadow:0 4px 15px #84cc1666}.support-fab:hover{transform:scale(1.1);box-shadow:0 6px 20px #84cc1680}#support-note{resize:none;border-radius:var(--radius-md);background:#f8fafc;border:1.5px solid #e2e8f0;width:100%;padding:.75rem;font-family:inherit}#support-note:focus{border-color:var(--lime-500);outline:none}
