:root{color:#202020;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8f9f4;font-family:Aptos,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(at 0 0,#eaf3d9 0,#0000 45%),linear-gradient(#f8f9f4f5,#f8f9f4f5),url(/assets/shuttlecock-D4RkLVZN.svg) right 60px top 100px/340px no-repeat;min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button:not(:disabled),summary,select{-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed}.lucide{flex-shrink:0}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #7460a6}#root{min-height:100vh}.page-shell{width:min(1180px,100%);margin:0 auto;padding:30px 28px 64px}.admin-navigation{flex-wrap:wrap;gap:10px;width:min(1180px,100%);margin:0 auto;padding:16px 28px 0;display:flex}.admin-navigation button,.admin-page button{color:#202020;font:inherit;cursor:pointer;background:#fff;border:1px solid #d5dbce;border-radius:12px;min-height:44px;padding:10px 16px;font-weight:700;transition:background .15s,border-color .15s}.admin-navigation button{align-items:center;gap:8px;display:inline-flex}.admin-navigation button:hover,.admin-page button:hover:not(:disabled){background:#eef3e5;border-color:#9ba78c}.admin-navigation button[aria-current],.admin-add-form button{background:#c6f542}.admin-navigation button[aria-current]{border-color:#9bc935;box-shadow:0 3px 10px #35531b12}.admin-page button:disabled{opacity:.5;cursor:not-allowed}.admin-page>p,.admin-page section>p{margin-top:12px;line-height:1.5}.admin-page section,.admin-add-form{margin-top:24px}.admin-add-form label{margin-bottom:8px;font-weight:700;display:block}.admin-add-row{flex-wrap:wrap;gap:12px;margin-top:12px;display:flex}.admin-add-row input{color:#202020;min-width:0;font:inherit;background:#fff;border:1px solid #616467;border-radius:6px;flex:220px;padding:12px}.admin-player-list{padding:0;list-style:none}.admin-player-list li{border-bottom:1px solid #dbdee1;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.admin-player-list span{overflow-wrap:anywhere;min-width:0}.admin-page .admin-delete{color:#8c1515;border-color:#8c1515}.admin-confirm{overflow-wrap:anywhere;border:1px solid #8c1515;border-radius:6px;padding:20px}.admin-feedback{color:#225117}.info-hint{margin:10px 0;font-size:.875rem;line-height:1.5}.info-hint>summary{cursor:pointer;align-items:center;gap:8px;width:fit-content;min-height:44px;font-weight:600;list-style:none;display:flex}.info-hint>summary::-webkit-details-marker{display:none}.info-hint>summary:focus-visible{outline-offset:3px;border-radius:4px;outline:2px solid}.info-hint-icon{color:#63508c;flex:0 0 20px;justify-content:center;align-items:center;height:20px;display:inline-flex}.info-hint[open]>summary{text-underline-offset:3px;text-decoration:underline}.info-hint-content{color:#292332;overflow-wrap:anywhere;background:#f4f0fa;border-left:3px solid #756099;margin:4px 0 12px;padding:12px 16px}.info-hint-content p{font-size:inherit;line-height:inherit;color:inherit;margin:0 0 8px}.info-hint-content p:last-child{margin-bottom:0}.player-name-field input[aria-invalid=true]{outline-offset:2px;border-color:#8c1515;outline:2px solid #8c1515}.leaderboard-scroll{border-radius:16px;margin-top:24px;overflow-x:auto}.leaderboard-filters,.leaderboard-pagination{flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px;display:flex}.leaderboard-filters label{font-weight:700}.leaderboard-filters select{color:#202020;font:inherit;background:#fff;border:1px solid #d5dbce;border-radius:10px;padding:10px 12px}.leaderboard-table{border-collapse:collapse;color:#202020;background:#fff;width:100%}.leaderboard-table caption{text-align:left;padding-bottom:12px}.leaderboard-table th,.leaderboard-table td{text-align:left;border-bottom:1px solid #dbdee1;padding:12px}.leaderboard-table thead{background:#e9f4ce;font-size:.8rem}.leaderboard-table th[scope=row]{overflow-wrap:anywhere;min-width:160px}.leaderboard-save{margin-top:16px;line-height:1.5}.series-results{border-top:1px solid #dbdee1;margin-top:32px;padding-top:16px}.series-results-list{padding:0;list-style:none}.series-results-list>li{color:#202020;overflow-wrap:anywhere;background:#fff;border:1px solid #dce2d6;border-radius:18px;margin-top:16px;padding:20px;box-shadow:0 5px 20px #25311705}.series-results-list ol{padding:0;line-height:1.8;list-style:none}.leaderboard-save button{margin-top:12px}.performance-report{border-top:1px solid #dbdee1;margin-top:30px;padding-top:24px}.performance-report canvas{width:100%;max-width:800px;height:auto;margin:20px auto;display:block}.performance-report ul{color:#616467;padding-left:20px;font-size:.85rem}.login-page .login-submit:not(:disabled),.setup-aside .start-button{color:#171717;background:#c6f542}.login-page .login-submit span,.setup-aside .start-button span{color:#171717}.login-page .login-submit:hover:not(:disabled),.setup-aside .start-button:hover{background:#b5e333}.masthead,.match-header,.match-title,.match-header-actions,.section-heading,.side-score-top,.match-footer,.serve-summary,.rally-heading{align-items:center;display:flex}.masthead,.match-header{justify-content:space-between;gap:20px}.masthead{margin-bottom:30px}.mode-switch{border-bottom:1px solid #bec6cd;gap:4px;margin-bottom:26px;display:inline-flex}.mode-option{color:#787b7e;cursor:pointer;font:inherit;background:0 0;border:0;border-bottom:3px solid #0000;padding:10px 14px 8px;font-size:.84rem;font-weight:800}.mode-option.active{color:#202020;border-bottom-color:#202020}.brand-mark{color:#35383b;background:#c6f542;border-radius:15px;flex:none;place-items:center;width:48px;height:48px;font-family:Georgia,serif;font-size:1.45rem;font-weight:800;display:grid;transform:rotate(-5deg);box-shadow:0 5px #8fb42e}.masthead>div:nth-child(2),.match-title>div:last-child{flex:1}.eyebrow{color:#6d7073;letter-spacing:.12em;text-transform:uppercase;margin:0 0 5px;font-size:.7rem;font-weight:800}h1,h2,p{margin:0}h1,h2{letter-spacing:-.035em;font-family:Aptos Display,Aptos,Segoe UI,sans-serif;font-weight:800}h1{color:#202020;font-size:2rem;line-height:1.12}h2{color:#202020;font-size:1.3rem;line-height:1.2}.status-tag{color:#55585b;text-transform:uppercase;flex:none;align-items:center;gap:8px;font-size:.78rem;font-weight:800;display:inline-flex}.status-tag:before,.serve-dot,.team-dot{background:#76797c;border-radius:50%;width:8px;height:8px}.setup-layout{border-top:1px solid #dbdee1;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:28px;padding-top:30px;display:grid}.section-heading{gap:13px}.section-heading p{color:#787b7e;margin-top:5px;font-size:.88rem}.step-number{color:#7460a6;font-family:Georgia,serif;font-size:.86rem;font-weight:700}.format-switch{gap:10px;margin:22px 0 34px 36px;display:flex}.format-option{color:#4e396b;cursor:pointer;min-width:150px;min-height:68px;font:inherit;text-align:left;background:#f3eef9;border:1px solid #cbb8e6;align-items:center;gap:13px;padding:10px 16px;font-weight:700;transition:border-color .16s,background .16s;display:flex}.format-option.active{background:#e4d8f2;border-color:#77609c;box-shadow:inset 0 -3px #77609c}.format-option:hover{background:#ece3f6}.format-option:focus-visible{outline-offset:3px;outline:3px solid #4e396b}.format-icon{color:#fff;background:#3d2956;place-items:center;width:38px;height:38px;font-size:.72rem;font-weight:900;display:grid}.players-heading{margin-bottom:20px}.team-setup-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-left:36px;display:grid}.schedule-preview{border-top:1px solid #dbdee1;margin:32px 0 0 36px;padding-top:20px}.schedule-heading{margin-bottom:15px}.schedule-slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.schedule-slot{color:#3f4245;background:#fff;border:1px solid #d6d9dc;grid-template-columns:52px minmax(0,1fr) 22px minmax(0,1fr);align-items:center;gap:7px;min-width:0;padding:10px;font-size:.76rem;display:grid}.schedule-slot strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.slot-number{color:#7460a6;text-transform:uppercase;font-size:.62rem;font-weight:900}.slot-vs{color:#8e9194;text-align:center;text-transform:uppercase;font-size:.65rem}.team-setup{background:#f0f6e5;border-color:#a9c17e;border-top-style:solid;border-top-width:3px;border-radius:16px;min-width:0;padding:18px}.team-setup.team-1{background:#f2edf9;border-color:#7460a6}.team-name-label{align-items:center;gap:8px;margin-bottom:15px;display:flex}.team-name-label .team-dot{flex:none}.team-1 .team-dot{background:#7460a6}.team-name-label input,.player-name-label input,.setup-aside select{color:#2f3235;width:100%;min-width:0;font:inherit;background:0 0;border:0;border-bottom:1px solid #d0d3d6;border-radius:0;outline:none}.team-name-label input{padding:4px 0 7px;font-weight:800}.team-name-label input:focus,.player-name-label input:focus,.setup-aside select:focus{border-color:#606366}.setup-player-list{gap:12px;display:grid}.setup-player{align-items:center;gap:12px;min-width:0;display:flex}.photo-picker{cursor:pointer;flex:none;width:60px;height:60px;position:relative}.photo-picker img,.avatar-placeholder{object-fit:cover;border-radius:50%;place-items:center;width:100%;height:100%;display:grid}.avatar-placeholder{color:#384a23;background:#deedbf;font-family:inherit;font-size:1.25rem;font-weight:700}.team-1 .avatar-placeholder{color:#63508c;background:#eee8f7}.photo-plus{color:#34373a;background:#c6f542;border:2px solid #fafafa;border-radius:50%;place-items:center;width:22px;height:22px;font-size:1rem;font-weight:800;line-height:1;display:grid;position:absolute;bottom:-2px;right:-2px}.photo-picker input{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.player-name-label{color:#787b7e;text-transform:uppercase;flex:1;gap:6px;min-width:0;font-size:.7rem;font-weight:700;display:grid}.player-name-label input{color:#2f3235;text-transform:none;padding:5px 0 7px;font-size:.93rem;font-weight:700}.player-name-field{flex:1;min-width:0}.roster-status{color:#5d6063;font-size:.8rem;line-height:1.5}.setup-aside{background:#fff;border:1px solid #e0e4d9;border-radius:20px;padding:22px 18px 22px 10px;box-shadow:0 6px 24px #26341b06}.team-count-field{color:#727578;text-transform:uppercase;gap:8px;margin:17px 0 25px 31px;font-size:.76rem;font-weight:800;display:grid}.team-count-field input{color:#2f3235;width:100%;min-height:44px;font:inherit;background:#fff;border:1px solid #bec6cd;padding:8px 11px;font-size:1rem}.team-count-field small{color:#787b7e;text-transform:none;font-size:.66rem;font-weight:600;line-height:1.4}.bracket-side.bracket-bye{color:#8e9194;font-size:.7rem;font-style:italic}.compact-heading{align-items:flex-start}.target-options{grid-template-columns:1fr 1fr;gap:9px;margin:24px 0 24px 31px;display:grid}.target-option{color:#424548;cursor:pointer;background:#fff;border:1px solid #bec6cd;border-radius:12px;align-content:center;justify-items:center;gap:3px;min-height:104px;display:grid}.target-option strong{font-family:Georgia,serif;font-size:2.2rem;font-weight:700;line-height:1}.target-option span{color:#787b7e;text-transform:uppercase;font-size:.72rem}.target-option.active{background:#f1eaf9;border-color:#8c69b4;box-shadow:inset 0 -3px #8c69b4}.serve-select-label{color:#727578;text-transform:uppercase;margin:0 0 8px 31px;font-size:.76rem;font-weight:800;display:block}.setup-aside select{width:calc(100% - 31px);margin-left:31px;padding:9px 2px;font-size:.95rem}.target-note{color:#787b7e;margin:17px 0 22px 31px;font-size:.82rem}.start-button{color:#fff;cursor:pointer;width:calc(100% - 31px);min-height:52px;font:inherit;background:#202020;border:0;border-radius:12px;justify-content:space-between;align-items:center;margin-left:31px;padding:0 16px;font-weight:800;transition:background .15s,transform .15s;display:flex}.start-button:hover{background:#424548;transform:translateY(-1px)}.start-button span{color:#c6f542;font-size:1.3rem}.match-header{flex-wrap:wrap;margin-bottom:25px}.match-title{flex:1;gap:14px}.match-header-actions{flex-wrap:wrap;gap:12px 18px}.text-button,.switch-sides-button,.reset-button,.undo-button{color:#5c5f62;cursor:pointer;font:inherit;background:0 0;border:0;font-size:.84rem;font-weight:800}.text-button{border-bottom:1px solid #b0b3b6;padding:10px 0}.switch-sides-button{white-space:nowrap;background:#fff;border:1px solid #d4dacd;border-radius:10px;align-items:center;gap:7px;padding:8px 10px;display:inline-flex}.switch-sides-button span{color:#63508c;font-size:1.1rem}.reset-button{color:#63508c;white-space:nowrap;align-items:center;gap:6px;padding:8px 0;display:inline-flex}.reset-button span{font-size:1.1rem}.scoreboard{background:#e8ebee;border:1px solid #d3dacb;border-radius:24px;grid-template-columns:1fr 1fr;display:grid;position:relative;overflow:hidden;box-shadow:0 10px 32px #27371b0a}.side-score{min-width:0;padding:24px 28px 26px;transition:background .18s}.side-0{background:#f1f6e7}.side-1{background:#f3eef9}.side-score.serving{background:#e7f2cb}.side-1.serving{background:#e5daf4}.side-score-top{justify-content:space-between;min-height:20px}.side-score-indicators{justify-content:flex-end;align-items:center;gap:10px;display:inline-flex}.game-point-indicator{color:#63508c;letter-spacing:.07em;text-transform:uppercase;font-size:.67rem;font-weight:900}.side-label{color:#797c7f;letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:800}.serve-indicator,.server-chip{color:#54575a;letter-spacing:.07em;text-transform:uppercase;font-size:.67rem;font-weight:900}.team-title{color:#3f4245;text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:12px;font-size:1rem;font-weight:800;overflow:hidden}.score-value{color:#36393c;letter-spacing:-.06em;font-variant-numeric:tabular-nums;margin:3px 0 17px;font-family:Aptos Display,Aptos,Segoe UI,sans-serif;font-size:6rem;font-weight:800;line-height:1}.side-1 .score-value{color:#43256b}.player-boxes{border-top:1px solid #40434633;grid-template-columns:repeat(auto-fit,minmax(115px,1fr));gap:8px;min-height:158px;padding-top:13px;display:grid}.doubles-player-boxes{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr)}.player-position-switch{color:#5d6063;cursor:pointer;background:#fcffff8c;border:1px solid #4043463d;grid-area:1/2;place-items:center;width:32px;height:32px;margin-top:18px;display:grid}.player-position-switch span{font-size:1.25rem;line-height:1}.player-position-switch:hover:not(:disabled){background:#fff}.player-position-switch:disabled{cursor:not-allowed;opacity:.45}.player-box{flex-direction:column;align-items:flex-start;min-width:0;display:flex;position:relative}.player-profile-action{width:100%;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;flex-direction:column;align-items:flex-start;padding:0;display:flex}.player-profile-action:focus-visible{outline-offset:3px;outline:2px solid #54575a}.player-profile-action:disabled{cursor:default}.player-photo{object-fit:cover;border:3px solid #fcffffcc;border-radius:50%;place-items:center;width:68px;height:68px;display:grid}.player-placeholder{color:#354b22;background:#d5e8ad;font-family:inherit;font-size:1.45rem;font-weight:700}.side-1 .player-placeholder{color:#43256b;background:#7460a624}.side-1 .player-name,.side-1 .player-court,.side-1 .performance-heading,.side-1 .performance-count,.side-1 .serve-indicator{color:#43256b}.player-court{color:#787b7e;text-transform:uppercase;margin-top:7px;font-size:.64rem;font-weight:700}.player-name{color:#383b3e;text-overflow:ellipsis;white-space:nowrap;width:100%;min-height:1.5rem;margin-top:2px;font-size:.85rem;line-height:1.5rem;overflow:hidden}.player-profile-action:hover:not(:disabled) .player-name{color:#63508c;text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.player-name-action{cursor:pointer;text-align:left;text-underline-offset:3px;background:0 0;border:0;padding:0;font-family:inherit;font-weight:800;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.player-name-action:hover:not(:disabled){color:#63508c;text-decoration-style:solid}.player-name-action:disabled{cursor:default}.performance-meter{gap:4px;width:100%;margin-top:8px;display:grid}.performance-heading{color:#787b7e;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:6px;font-size:.59rem;font-weight:800;display:flex}.performance-heading strong{color:#525558;font-variant-numeric:tabular-nums;font-family:Georgia,serif;font-size:.9rem}.side-1 .performance-heading strong{color:#43256b}.performance-track{background:#40434624;height:4px;overflow:hidden}.performance-track span{background:#707376;height:100%;transition:width .18s;display:block}.side-1 .performance-track span{background:#573285}.performance-count{color:#787b7e;text-overflow:ellipsis;white-space:nowrap;font-size:.6rem;overflow:hidden}.server-chip{color:#171717;letter-spacing:.04em;white-space:nowrap;background:#c6f542;border-radius:6px;flex-shrink:0;order:-1;justify-content:center;align-self:stretch;align-items:center;gap:7px;height:31px;margin-bottom:12px;padding:7px 5px;font-size:.7rem;font-weight:900;display:inline-flex}.server-chip-placeholder{visibility:hidden}.server-chip img{object-fit:contain;width:13px;height:17px;animation:1.8s ease-in-out infinite serving-shuttle}.player-serving{--serve-ring:#7b9e25}.player-box{padding:10px}.player-serving .player-name{color:#171717;font-size:1rem;font-weight:900}.side-1 .player-serving{--serve-ring:#573285}.side-1 .player-serving .player-name{color:#43256b}.player-serving .player-photo{border-color:var(--serve-ring);box-shadow:0 0 0 3px color-mix(in srgb, var(--serve-ring) 40%, transparent);animation:.9s ease-in-out serving-coin-flip}@keyframes serving-coin-flip{0%{transform:perspective(400px)translateY(0)rotateY(0)}50%{transform:perspective(400px)translateY(-10px)rotateY(360deg)}to{transform:perspective(400px)translateY(0)rotateY(720deg)}}@keyframes serving-shuttle{0%,to{transform:translateY(0)rotate(-12deg)}50%{transform:translateY(-3px)rotate(12deg)}}.side-1 .server-chip{color:#fff;background:#43256b}@media (prefers-reduced-motion:reduce){.player-serving .player-photo,.server-chip img{animation:none}}.login-page{background:#f8f9f4;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);min-height:100vh;display:grid}.login-story{color:#fafafa;background:#1f2b24;flex-direction:column;min-height:100vh;padding:38px clamp(32px,7vw,100px) 28px;display:flex;position:relative;overflow:hidden}.login-story:before{content:"";opacity:.18;pointer-events:none;background:url(/assets/shuttlecock-D4RkLVZN.svg) 90% 40%/auto 65% no-repeat;position:absolute;inset:0}.login-story:after{content:"";pointer-events:none;background:linear-gradient(90deg,#1f2b24bf,#0000);position:absolute;inset:0}.login-story-footer{z-index:1;position:relative}.login-brand{z-index:1;color:#dbdee1;letter-spacing:.13em;align-items:center;gap:13px;font-size:.7rem;font-weight:900;line-height:1.4;display:flex}.login-story .brand-mark{width:43px;height:43px}.login-story-copy{z-index:1;max-width:440px;margin:auto 0 34px;padding-top:48px}.login-story-copy .eyebrow,.login-story-footer{color:#d1d4d7}.login-story-copy h1{color:#fafafa;margin:0 0 18px;font-size:clamp(3rem,5vw,5rem);line-height:.98}.login-story-copy>p:not(.eyebrow){color:#d1d4d7;max-width:350px;font-size:1rem}.court-art{background:linear-gradient(145deg,#c6f54214,#0000 65%);border:1px solid #c6f54259;border-radius:20px;height:min(32vh,270px);min-height:190px;position:relative}.court-lines{border:1px solid #c6f54275;position:absolute;inset:18px}.court-lines span{background:#c6f5426b;display:block;position:absolute}.court-lines span:first-child{width:100%;height:1px;top:50%;left:0}.court-lines span:nth-child(2){width:1px;height:100%;top:0;left:50%}.court-lines span:nth-child(3),.court-lines span:nth-child(4){width:50%;height:1px;top:24%;left:25%}.court-lines span:nth-child(4){top:76%}.shuttle-art{width:70px;height:70px;position:absolute;top:28%;left:50%;transform:rotate(36deg)}.shuttle-art i{clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);background:repeating-linear-gradient(90deg,#0000 0 8px,#c6f54299 9px 10px);border:2px solid #c6f542;border-radius:48% 48% 24% 24%;width:40px;height:43px;position:absolute;top:0;left:15px}.shuttle-art b{background:#c6f542;border-radius:50% 50% 40% 40%;width:26px;height:26px;position:absolute;top:38px;left:22px}.shuttle-art em{background:#fff;border-radius:0 0 50% 50%;width:16px;height:9px;position:absolute;top:56px;left:27px}.court-caption{color:#c6f542;letter-spacing:.16em;font-size:.6rem;font-weight:900;position:absolute;bottom:20px;right:24px}.login-story-footer{letter-spacing:.15em;margin-top:18px;font-size:.62rem;font-weight:800}.login-panel{place-items:center;padding:48px clamp(28px,7vw,104px);display:grid}.login-form-wrap{width:min(100%,410px)}.login-form-wrap>.eyebrow{color:#7a7d80;margin-bottom:13px}.login-form-wrap h2{margin:0 0 9px;font-size:2rem}.login-intro{color:#787b7e;margin-bottom:31px}.login-form{gap:10px;display:grid}.profile-fields{border:0;gap:12px;min-width:0;margin:0 0 8px;padding:0;display:grid}.profile-fields legend{color:#43256b;margin-bottom:12px;font-weight:800}.profile-field{gap:7px;min-width:0;display:grid}.profile-privacy{color:#626569;margin:0;font-size:.76rem;line-height:1.5}.profile-setup{width:min(100%,520px);margin:32px auto;padding:24px}.profile-setup>p{margin:16px 0 24px;line-height:1.5}.account-welcome{color:#43256b;overflow-wrap:anywhere;width:min(1180px,100%);margin:16px auto 0;padding:0 28px;font-weight:700}.login-form label{color:#3f4245;font-size:.82rem;font-weight:800}.login-form>input,.profile-field input{color:#202020;background:#fff;border:1px solid #cfd6c6;border-radius:10px;width:100%;min-height:50px;padding:0 14px}.login-form>input::placeholder,.profile-field input::placeholder{color:#9fa2a5}.login-form>input:focus,.profile-field input:focus{border-color:#606366}.login-form>input:disabled,.profile-field input:disabled{color:#8d9093;background:#eef1f4}.password-label-row{justify-content:space-between;align-items:center;gap:12px;margin-top:8px;display:flex}.forgot-password,.login-toggle button{color:#202020;cursor:pointer;font:inherit;background:0 0;border:0;font-size:.8rem;font-weight:800}.forgot-password:disabled,.login-toggle button:disabled{color:#9fa2a5;cursor:not-allowed}.login-submit{color:#fafafa;cursor:pointer;min-height:52px;font:inherit;background:#202020;border:0;border-radius:12px;justify-content:space-between;align-items:center;margin-top:11px;padding:0 17px;font-weight:800;transition:background .16s;display:flex}.login-submit:hover:not(:disabled){background:#3e4144}.login-submit:disabled{cursor:wait;background:#8d9093}.login-submit span{color:#c6f542}.login-toggle{color:#787b7e;text-align:center;margin-top:25px;font-size:.84rem}.login-toggle button{font-size:inherit}.login-privacy{color:#8d9093;text-align:center;margin-top:42px;font-size:.71rem}.auth-notice,.auth-error,.auth-success{color:#484b4e;background:#f1ecf8;border-left:3px solid #7460a6;padding:11px 13px;font-size:.8rem}.auth-notice{gap:5px;margin-bottom:19px;display:grid}.auth-notice code{overflow-wrap:anywhere;color:#3a3d40;font-size:.74rem}.auth-error,.auth-success{margin:5px 0 0}.auth-success{color:#55585b;background:#eff2f5;border-color:#76797c}.auth-loading{color:#6d7073;align-content:center;justify-items:center;gap:15px;min-height:100vh;display:grid}.authenticated-shell{min-height:100vh}.session-bar{color:#787b7e;justify-content:flex-end;align-items:center;gap:14px;width:min(1180px,100%);margin:0 auto;padding:12px 28px 0;font-size:.76rem;display:flex;position:relative}.session-email{text-overflow:ellipsis;white-space:nowrap;max-width:min(55vw,350px);overflow:hidden}.session-signout{color:#202020;cursor:pointer;font:inherit;background:0 0;border:1px solid #bec6cd;border-radius:10px;align-items:center;gap:7px;min-height:40px;padding:5px 11px;font-weight:800;display:inline-flex}.session-signout:hover{background:#ebeef1}.session-error{color:#575a5d}@media (width<=760px){.login-page{grid-template-columns:1fr}.login-story{min-height:auto;padding:24px 24px 21px}.login-story-copy{margin:42px 0 24px}.login-story-copy h1{font-size:3rem}.court-art{display:none}.login-story-footer{margin-top:0}.login-panel{padding:42px 24px}.login-form-wrap h2{font-size:1.8rem}.login-privacy{margin-top:30px}.session-bar{padding:12px 16px 0}}.point-button{color:#fff;cursor:pointer;width:100%;min-height:48px;font:inherit;background:#202020;border:0;border-radius:11px;justify-content:center;align-items:center;gap:9px;font-size:.88rem;font-weight:800;transition:filter .14s;display:flex}.side-1 .point-button{background:#7460a6}.point-button:hover:not(:disabled){filter:brightness(.92)}.point-button:disabled{cursor:not-allowed;opacity:.55}.plus-sign{color:#dfe2e5;font-size:1.45rem;font-weight:500;line-height:1}.side-1 .plus-sign{color:#e4d8fa}.court-net{pointer-events:none;background:#393c3f38;width:1px;position:absolute;top:0;bottom:0;left:50%}.court-net span{background:#f4f7fa;border:1px solid #393c3f59;border-radius:50%;width:9px;height:9px;position:absolute;top:50%;left:-4px;transform:translateY(-50%)}.match-footer{border-bottom:1px solid #dbdee1;justify-content:space-between;gap:16px;padding:15px 2px}.serve-summary{color:#65686b;flex-wrap:wrap;gap:9px;font-size:.85rem}.serve-summary strong{color:#494c4f}.serve-court-label{color:#787b7e;border-left:1px solid #c7cacd;margin-left:4px;padding-left:12px;font-size:.76rem}.undo-button{align-items:center;gap:7px;padding:6px 0;display:inline-flex}.undo-button span{font-size:1.1rem}.undo-button:disabled{color:#abaeb1;cursor:not-allowed}.victory-panel{background:#f4f9e9;border:1px solid #ccdcb8;border-left:5px solid #c6f542;border-radius:18px;gap:16px;margin-bottom:14px;padding:18px 20px;animation:.36s ease-out both victory-arrive;display:grid;position:relative}.victory-heading{align-items:center;gap:13px;display:flex}.victory-heading h2{font-size:1.4rem}.victory-mark{color:#c6f542;background:#202020;border-radius:13px;flex:none;place-items:center;width:42px;height:42px;font-family:Georgia,serif;font-size:1.35rem;font-weight:800;display:grid}.victory-label{color:#54575a;letter-spacing:.08em;text-transform:uppercase;border:1px solid #b9bcbf;border-radius:20px;margin-left:auto;padding:5px 9px;font-size:.68rem;font-weight:900}.victory-result-line{color:#3f4245;border-top:1px solid #c0c9d1;flex-wrap:wrap;align-items:baseline;gap:10px;padding-top:12px;display:flex}.victory-result-line strong{font-size:.9rem}.victory-result-line>span{color:#202020;font-variant-numeric:tabular-nums;font-family:Georgia,serif;font-size:1.25rem;font-weight:800}.victory-result-line small{color:#787b7e;font-size:.72rem}.result-post-row{background:#fcffff94;border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.result-post-template{color:#65686b;flex:1;font-size:.8rem;line-height:1.45}.result-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:7px;display:flex}.copy-post-button{color:#fff;cursor:pointer;min-height:38px;font:inherit;background:#202020;border:0;border-radius:10px;flex:none;justify-content:center;align-items:center;gap:7px;padding:8px 12px;font-size:.75rem;font-weight:800;display:inline-flex}.copy-post-button:hover{background:#424548}.download-result-button{color:#202020;cursor:pointer;min-height:38px;font:inherit;background:#fff;border:1px solid #aeb1b4;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:8px 10px;font-size:.75rem;font-weight:800;display:inline-flex}.download-result-button:hover{background:#f2f5f8;border-color:#202020}.result-download-status{color:#54575a;min-height:1em;margin:-10px 0 0;font-size:.72rem;font-weight:700}@keyframes victory-arrive{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.winner-continue-button,.resume-game-button,.bracket-play-button{color:#202020;cursor:pointer;font:inherit;background:#c6f542;border:0;border-radius:10px;justify-content:space-between;align-items:center;gap:14px;padding:10px 13px;font-size:.8rem;font-weight:900;display:inline-flex}.winner-continue-button span,.resume-game-button span,.bracket-play-button span{color:#202020;font-size:1.15rem}.bracket-shell{max-width:1320px}.bracket-shell .masthead{border-bottom:1px solid #dbdee1;padding-bottom:20px}.bracket-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:18px;display:grid}.bracket-round{min-width:0}.bracket-round-heading{border-bottom:2px solid #202020;margin-bottom:12px;padding:0 0 12px}.bracket-round-heading h2{font-size:1.25rem}.bracket-matches{gap:12px;display:grid}.bracket-match{background:#fff;border:1px solid #d6d9dc;border-radius:14px;min-width:0;padding:12px}.bracket-match.complete{background:#f0f3f6;border-color:#b2b5b8}.bracket-match-title{color:#787b7e;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:.68rem;font-weight:900}.bracket-side{color:#3f4245;border-top:1px solid #e4e7ea;justify-content:space-between;align-items:center;gap:8px;min-height:36px;font-size:.82rem;font-weight:700;display:flex}.bracket-side span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bracket-side strong{color:#202020;font-variant-numeric:tabular-nums}.bracket-side.bracket-winner{color:#202020;font-weight:900}.bracket-side.pending{color:#8e9194;font-size:.75rem;font-weight:600}.bracket-side.pending small{color:#aeb1b4;text-transform:uppercase;margin-left:auto;font-size:.65rem}.bracket-play-button{width:100%;min-height:40px;margin-top:10px}.resume-game-button{width:100%;min-height:48px;margin:0 0 24px}.champion-banner{color:#fff;background:#202020;border-left:4px solid #c6f542;justify-content:space-between;align-items:center;gap:12px;margin:0 0 24px;padding:14px 18px;display:flex}.champion-banner span{color:#c6f542;letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:900}.champion-banner strong{font-family:Georgia,serif;font-size:1.2rem}.rally-section{margin-top:32px}.rally-heading{justify-content:space-between;gap:14px;margin-bottom:13px}.rally-heading>span{color:#787b7e;font-size:.78rem;font-weight:700}.rally-empty{color:#787b7e;border-top:1px solid #dbdee1;padding:18px 0;font-size:.86rem}.rally-list{max-height:300px;margin:0;padding:0;list-style:none;overflow-y:auto}.rally-list li{color:#66696c;border-top:1px solid #dbdee1;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 2px;font-size:.85rem;display:grid}.rally-number{color:#7460a6;font-family:Georgia,serif;font-size:.78rem;font-weight:700}.rally-winner{color:#46494c;text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.rally-description{gap:2px;min-width:0;display:grid}.rally-detail{color:#787b7e;text-overflow:ellipsis;white-space:nowrap;font-size:.73rem;overflow:hidden}.rally-score{color:#202020;font-variant-numeric:tabular-nums;font-weight:800}.outcome-backdrop{z-index:10;background:#1e212494;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.outcome-dialog{background:#fafafa;border:1px solid #bec6cd;width:min(480px,100%);padding:24px;box-shadow:0 24px 70px #191c1f4d}.outcome-dialog-header{justify-content:space-between;gap:18px;margin-bottom:20px;display:flex}.outcome-player{color:#787b7e;margin-top:10px;font-size:.84rem}.outcome-player strong{color:#46494c}.dialog-close{color:#65686b;cursor:pointer;background:0 0;border:1px solid #bec6cd;flex:none;width:34px;height:34px;font-size:1.35rem;line-height:1}.outcome-options{grid-template-columns:1fr 1fr;gap:8px;display:grid}.outcome-option{color:#424548;cursor:pointer;min-height:68px;font:inherit;text-align:left;background:#ebeef1;border:1px solid #bec6cd;align-content:center;gap:4px;padding:10px 12px;font-size:.87rem;font-weight:800;display:grid}.outcome-option.winner{color:#205c34;background:#e8f5ec;border-color:#8dbd99}.outcome-option.error{color:#922d2d;background:#fdecec;border-color:#dfa0a0}.outcome-option:hover{filter:brightness(.96)}.outcome-option small{color:inherit;font-size:.67rem;font-weight:700}.icon-heading,.winner-tag,.saved-result-status{align-items:center;gap:10px;display:flex}.undo-button{align-items:center;gap:7px;display:inline-flex}.icon-heading>.lucide{color:#63508c}.login-story-copy .icon-heading>.lucide{color:#c6f542}.login-feature-tags{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.login-feature-tags span{color:#e7f6c5;background:#c6f5420d;border:1px solid #c6f54240;border-radius:24px;align-items:center;gap:6px;padding:7px 10px;font-size:.75rem;display:inline-flex}.rank-badge{font-variant-numeric:tabular-nums;border-radius:12px;justify-content:center;align-items:center;gap:5px;min-width:44px;min-height:36px;font-weight:800;display:inline-flex}.rank-1{color:#6c4b06;background:#fff0bc}.rank-2{color:#455367;background:#e9edf2}.rank-3{color:#75442b;background:#f6e3d6}.podium-1{background:#fffdf4}.series-opponents{flex-wrap:wrap;align-items:center;gap:10px;font-size:1rem;display:flex}.series-opponents>.series-winner{color:#354c1b;background:#eaf4cf;border-radius:9px;padding:6px 10px}.versus-badge{color:#716783;text-transform:uppercase;font-size:.7rem}.winner-tag{color:#425d23;gap:5px;display:inline-flex}.empty-state{text-align:center;background:#ffffffa6;border:1px dashed #d4ddc8;border-radius:20px;justify-items:center;gap:8px;margin-top:20px;padding:28px 20px;display:grid}.empty-state-art{background:#edf4df;border-radius:26px;place-items:center;width:78px;height:78px;display:grid;position:relative}.empty-state-art img{object-fit:contain;width:45px;height:56px;transform:rotate(-16deg)}.empty-state-art .lucide{color:#7861a2;position:absolute;top:5px;right:3px}.empty-state h3{color:#38452e;margin:6px 0 0;font-size:1rem}.empty-state p{color:#5c6555;max-width:460px;font-size:.85rem}.victory-confetti{border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.victory-confetti span{top:-14px;left:var(--confetti-x);background:var(--confetti-color);width:7px;height:12px;animation:confetti-fall 1.35s var(--confetti-delay) ease-out both;border-radius:2px;position:absolute}@keyframes confetti-fall{0%{opacity:0;transform:translateY(0)rotate(0)}15%{opacity:.8}to{opacity:0;transform:translate(var(--confetti-drift), 230px) rotate(270deg)}}@media (width<=820px){.setup-layout{grid-template-columns:1fr;gap:30px}.setup-aside{padding:22px 18px 22px 10px}.target-options{max-width:280px}.start-button{max-width:360px}.bracket-grid{grid-template-columns:1fr 1fr}.bracket-round:last-child{grid-column:1/-1}}@media (width<=620px){.admin-navigation{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px 16px 0;display:grid}.admin-navigation button{text-align:left;padding:10px;font-size:.8rem}.page-shell{padding:20px 16px 40px}.masthead{margin-bottom:21px}.masthead h1,.match-header h1{font-size:1.55rem}.status-tag{font-size:.65rem}.setup-layout{padding-top:22px}.format-switch,.team-setup-grid,.schedule-preview{margin-left:0}.format-option{flex:1;min-width:0}.team-setup-grid{grid-template-columns:1fr;gap:25px}.schedule-slots{grid-template-columns:1fr}.match-header{flex-direction:column;align-items:flex-start}.match-header-actions{flex-wrap:wrap;align-items:center;gap:8px 14px;width:100%}.match-header-actions .status-tag{white-space:nowrap;width:100%}.match-title{align-items:flex-start;gap:10px}.match-title .brand-mark{width:40px;height:40px}.scoreboard{grid-template-columns:1fr}.side-score{padding:18px 18px 20px}.score-value{margin:4px 0 13px;font-size:4.75rem}.player-boxes{min-height:145px}.court-net{display:none}.match-footer{align-items:flex-start}.serve-summary{gap:7px}.serve-court-label{margin-left:17px}.result-post-row{flex-direction:column;align-items:stretch}.copy-post-button{width:auto}.result-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.result-actions button{width:100%}.result-actions .copy-post-button{grid-column:1/-1}.victory-heading{flex-wrap:wrap;align-items:flex-start}.victory-label{margin-left:55px}.winner-continue-button{width:100%}.outcome-options{grid-template-columns:1fr}.outcome-dialog{padding:20px}.bracket-grid{grid-template-columns:1fr}.bracket-round:last-child{grid-column:auto}.champion-banner{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.victory-confetti{display:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
