:root{--color-bg: #070a0f;--color-surface: #0e141c;--color-surface-raised: #141c26;--color-ink: #f4f7fb;--color-muted: #8490a3;--color-primary: #c8ff3d;--color-accent: #7c5cfc;--color-border: #202a38;--color-danger: #ff5d7a;color-scheme:dark;color:var(--color-ink);background:var(--color-bg);font-family:-apple-system,BlinkMacSystemFont,Avenir Next,Segoe UI,sans-serif}*{box-sizing:border-box;touch-action:manipulation}body{margin:0;min-width:320px}button,input{min-height:48px;font:inherit}input[type=radio],input[type=checkbox]{width:auto;min-height:auto;padding:0}button{border:0;border-radius:8px;cursor:pointer;font-weight:750;transition:opacity .14s ease,transform .14s ease,background-color .14s ease}button:active{transform:scale(.98)}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 72%,white);outline-offset:2px}input{width:100%;border:1px solid var(--color-border);border-radius:8px;background:#fff;color:var(--color-ink);padding:0 12px}input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea,select{font-size:max(1rem,16px)}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.page-shell{width:min(100%,560px);min-height:100svh;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 18px calc(104px + env(safe-area-inset-bottom));display:grid;grid-template-rows:auto 1fr;gap:18px}.page-shell.auth-only{grid-template-rows:1fr;align-items:center}.topbar,.section-heading,summary{display:flex;align-items:center;justify-content:space-between;gap:16px}.eyebrow,.section-label{margin:0 0 6px;color:var(--color-primary);font-size:.76rem;font-weight:900;letter-spacing:0}h1,h2,p{margin:0}h1{font-size:clamp(2rem,10vw,3.35rem);line-height:.95}h2{font-size:1.35rem;line-height:1.12}p{color:var(--color-muted);line-height:1.5}.icon-button{width:48px;padding:0;display:grid;place-items:center;background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-border)}.screen-frame{min-height:420px;display:grid}.screen{align-self:start;display:grid;gap:12px;padding:18px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);animation:screen-in .22s ease both}.screen:has(.session-winners){padding-bottom:96px}.primary-action,.secondary-action,.danger-outline,.mini-action,.inline-form button,.row-actions button,.player-form button{width:100%;padding:0 16px}.primary-action,.inline-form button,.row-actions button,.player-form button{background:var(--color-primary);color:#fffdf8}.secondary-action{background:#ecf2ed;color:var(--color-primary)}.danger-outline{background:color-mix(in srgb,var(--color-danger) 9%,white);color:var(--color-danger);border:1px solid color-mix(in srgb,var(--color-danger) 34%,var(--color-border))}.mini-action{width:auto;min-width:76px;background:var(--color-primary);color:#fffdf8}.inline-form,.row-actions,.player-form{display:grid;gap:10px}.match-card{display:grid;gap:12px}.tracker-panel{min-height:162px;display:grid;gap:10px;padding:14px;border:1px solid color-mix(in srgb,var(--color-primary) 28%,var(--color-border));border-radius:8px;background:linear-gradient(180deg,#fff,#f4faf6)}.scoreboard{display:grid;grid-template-columns:1fr 1fr;gap:10px}.score-card{min-height:104px;padding:20px 8px;display:grid;place-items:center;gap:2px;border-radius:8px;background:#fff;box-shadow:inset 0 0 0 1px #2e7d5b24}.scoreboard small,.serve-meta small{color:var(--color-primary);font-weight:900}.score-reel{width:2.4ch;height:1em;display:block;overflow:hidden;color:var(--color-ink);font-size:3rem;line-height:.9;font-weight:950;font-variant-numeric:tabular-nums}.score-reel>span{display:grid;transform:translateY(calc(var(--score) * -1em));transition:transform .3s cubic-bezier(.2,.8,.2,1)}.score-reel b{height:1em;display:block;font:inherit;line-height:1;text-align:center}.serve-meta{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--color-muted);font-size:.88rem;font-weight:850;text-align:center}.server-choice{width:100%;min-height:116px;display:grid;place-items:center;gap:8px;padding:12px;background:var(--color-primary);color:#fffdf8}.server-choice img{width:58px;height:58px;border-radius:50%;background:#ecf2ed}.server-choice span{font-weight:950}.server-choice small{color:#fffdf8;font-weight:900}.rally-actions,.server-picks,.match-secondary-actions,.post-match-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rally-action{min-height:72px;padding-block:18px}.tracker-start{display:grid;gap:10px}.court-diagram{position:relative;height:clamp(132px,22svh,230px);overflow:hidden;border:3px solid var(--color-primary);border-radius:8px;background:linear-gradient(90deg,#2e7d5b24 0,#2e7d5b24 50%,#f2c94c29 50%,#f2c94c29),#fff}.court-line{position:absolute;display:block;background:color-mix(in srgb,var(--color-primary) 58%,white)}.court-net{top:0;bottom:0;left:50%;width:3px;transform:translate(-50%);background:var(--color-primary)}.court-kitchen-left,.court-kitchen-right{top:0;bottom:0;width:2px}.court-kitchen-left{left:37%}.court-kitchen-right{right:37%}.court-center-left,.court-center-right{top:50%;width:37%;height:2px}.court-center-left{left:0}.court-center-right{right:0}.court-label{position:absolute;top:10px;z-index:2;color:var(--color-primary);font-size:.74rem;font-weight:900}.team-a-label{left:12px}.team-b-label{right:12px}.court-player{position:absolute;z-index:3;width:min(38%,138px);min-height:44px;padding:5px 8px;display:flex;align-items:center;gap:7px;border:1px solid var(--color-border);border-radius:8px;background:color-mix(in srgb,var(--color-surface) 94%,white);box-shadow:0 8px 18px #17211b1f;color:var(--color-ink);font-size:.84rem;font-weight:900;transition:box-shadow .16s ease}.court-player.server{border-color:var(--color-accent);box-shadow:0 0 0 3px #f2c94c8c,0 8px 18px #17211b1f}.court-player img{width:28px;height:28px;flex:0 0 auto;border-radius:50%;background:#ecf2ed}.court-player span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.court-player small{color:var(--color-primary);font-size:.68rem;font-weight:950}.team-a{left:7%}.team-b{right:7%}.slot-a1,.slot-b1{top:26px}.slot-a2,.slot-b2{bottom:10px}.team-grid{display:grid;gap:10px}.team-panel{display:grid;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:8px;background:#fff}.player-pill{min-height:48px;display:flex;align-items:center;gap:10px;color:var(--color-ink);font-weight:850}.player-pill img{width:38px;height:38px;border-radius:50%;background:#ecf2ed}.bench-line{font-size:.9rem}.session-winners{display:grid;gap:10px;margin-top:6px}.winner-list{display:grid;gap:8px}.winner-row{min-height:58px;padding:8px 12px;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;border-left:5px solid var(--color-border);border-radius:8px;background:#fff;box-shadow:inset 0 0 0 1px #17211b12}.winner-row.rank-1{border-left-color:#d8a118}.winner-row.rank-2{border-left-color:#a9b1b8}.winner-row.rank-3{border-left-color:#b8793f}.rank-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#ecf2ed;color:var(--color-primary);font-weight:950}.winner-dialog{width:min(calc(100% - 28px),430px);margin:auto;padding:0;border:0;border-radius:8px;background:transparent;color:var(--color-ink)}.winner-dialog::backdrop{background:#17211b7a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.winner-party{position:relative;overflow:hidden;padding:28px 18px 18px;display:grid;justify-items:center;gap:16px;border-radius:8px;background:var(--color-surface);box-shadow:0 18px 70px #17211b47;text-align:center;animation:winner-pop .24s ease-out both}.session-summary-card{max-height:min(82svh,620px);overflow:auto;padding:24px 16px 16px;display:grid;gap:16px;border-radius:8px;background:var(--color-surface);box-shadow:0 18px 70px #17211b47;text-align:center;animation:winner-pop .24s ease-out both}.podium{min-height:168px;display:grid;grid-template-columns:1fr 1.1fr 1fr;align-items:end;gap:8px}.podium-place{min-width:0;padding:12px 8px 10px;display:grid;gap:5px;border-radius:8px 8px 0 0;background:#fff;box-shadow:inset 0 0 0 1px #17211b14}.podium-place strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.podium-place span{color:var(--color-primary);font-weight:950}.podium-place small{width:34px;height:34px;margin:0 auto;display:grid;place-items:center;border-radius:50%;background:#ecf2ed}.place-1{min-height:150px;border-top:6px solid #d8a118}.place-2{min-height:124px;border-top:6px solid #a9b1b8}.place-3{min-height:104px;border-top:6px solid #b8793f}.summary-list{display:grid;gap:8px}.summary-list div{min-height:48px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:8px;background:#fff;box-shadow:inset 0 0 0 1px #17211b14;font-weight:850}.winner-party h2{max-width:100%;overflow-wrap:anywhere}.winner-avatars{min-height:118px;display:flex;align-items:end;justify-content:center;gap:18px}.jumping-avatar{display:grid;justify-items:center;gap:8px;color:var(--color-primary);font-weight:900;animation:winner-jump .9s cubic-bezier(.25,.9,.35,1) var(--delay) infinite}.jumping-avatar img{width:76px;height:76px;border-radius:50%;background:#ecf2ed;box-shadow:0 10px 24px #17211b29}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.confetti span{position:absolute;top:-12px;left:calc(50% + var(--x) * 38px);width:9px;height:16px;border-radius:3px;background:var(--color-accent);opacity:0;animation:confetti-drop 1.35s ease-in var(--delay) infinite}.confetti span:nth-child(3n){background:var(--color-primary)}.confetti span:nth-child(3n+1){background:#d95a9b}.session-player-grid{max-height:min(46vh,420px);overflow-y:auto;padding-right:2px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;overscroll-behavior:contain}.session-player-grid.compact{max-height:min(32vh,300px)}.round-actions{display:grid;gap:10px}.manual-team-columns{display:grid;gap:14px}.manual-team-columns section{display:grid;gap:8px}.manual-team-columns h3{margin:0;color:var(--color-primary);font-size:.9rem}.session-player-tile{min-height:106px;padding:10px;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:8px;background:#fff}.session-player-tile input{position:absolute;opacity:0}.session-player-tile span{display:grid;justify-items:center;gap:6px;color:var(--color-muted);font-weight:900;text-align:center}.session-player-tile img{width:48px;height:48px;border-radius:50%;background:#ecf2ed}.session-player-tile:has(input:checked){border-color:var(--color-primary);box-shadow:inset 0 0 0 2px var(--color-primary)}.session-player-tile:has(input:disabled:not(:checked)){opacity:.45}.score-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.history-switch{min-height:52px;padding:5px;display:grid;grid-template-columns:1fr 1fr;gap:5px;border-radius:8px;background:#ecf2ed}.history-switch button{min-height:42px;background:transparent;color:var(--color-primary)}.history-switch button.active{background:#fff;color:var(--color-ink);box-shadow:0 1px 8px #17211b14}.leaderboard-list{display:grid;gap:8px;padding-bottom:76px}.leaderboard-row{min-height:66px;padding:8px 10px;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;border-left:5px solid var(--color-border);border-radius:8px;background:#fff;box-shadow:inset 0 0 0 1px #17211b12}.leaderboard-row.rank-1{border-left-color:#d8a118}.leaderboard-row.rank-2{border-left-color:#a9b1b8}.leaderboard-row.rank-3{border-left-color:#b8793f}.leaderboard-player{min-width:0;display:flex;align-items:center;gap:10px}.leaderboard-player img{width:42px;height:42px;flex:0 0 auto;border-radius:50%;background:#ecf2ed}.leaderboard-player span{min-width:0;display:grid;gap:2px}.leaderboard-player strong,.leaderboard-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rating-pill{min-width:58px;min-height:34px;padding:0 10px;display:grid;place-items:center;border-radius:999px;background:var(--color-primary);color:#fffdf8;font-weight:950;font-variant-numeric:tabular-nums}.session-history{display:grid;gap:10px}.history-row{min-height:62px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--color-border);border-radius:8px;background:#fff}.history-row span{display:grid;gap:2px}.mini-danger{width:auto;min-width:72px;min-height:40px;padding:0 10px;background:color-mix(in srgb,var(--color-danger) 9%,white);color:var(--color-danger);border:1px solid color-mix(in srgb,var(--color-danger) 30%,var(--color-border))}label{display:grid;gap:6px;color:var(--color-muted);font-size:.84rem;font-weight:800}.group-list,.manage-list,.player-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.group-list li,details,.player-card{border:1px solid var(--color-border);border-radius:8px;background:#fff}.group-list li.current,details[open]{border-color:var(--color-primary)}.group-select{width:100%;min-height:64px;padding:0 14px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:transparent;color:var(--color-ink);text-align:left}small{color:var(--color-primary);font-weight:900}summary{min-height:60px;padding:0 14px;cursor:pointer;font-weight:850}summary::marker{content:""}.player-row{min-height:64px;padding:0 10px 0 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.row-edit{width:auto;min-width:64px;min-height:44px;padding:0 12px;background:#ecf2ed;color:var(--color-primary)}details form{margin:0 12px 12px}.roster-heading{margin-top:8px}.bottom-sheet{width:min(100%,560px);max-height:calc(100dvh - 24px);max-width:none;margin:auto auto 0;padding:22px 18px max(22px,env(safe-area-inset-bottom));border:0;border-radius:8px 8px 0 0;background:var(--color-surface);color:var(--color-ink);box-shadow:0 -18px 60px #17211b38}.bottom-sheet::backdrop{background:#17211b6b}.sheet-slide-up[open]{animation:sheet-slide-up .22s ease-out both}.sheet-slide-up[open]::backdrop{animation:sheet-backdrop-in .18s ease-out both}.sheet-slide-up.closing{animation:sheet-slide-down .18s ease-in both}.sheet-slide-up.closing::backdrop{animation:sheet-backdrop-out .18s ease-in both}.sheet-close{position:absolute;top:12px;right:12px;width:48px;padding:0;display:grid;place-items:center;background:#ecf2ed;color:var(--color-primary)}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.segmented label,.toggle-row{min-height:48px;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:8px;background:#fff}.segmented input{position:absolute;opacity:0}.segmented span{color:var(--color-muted);text-transform:capitalize}.segmented label:has(input:checked){border-color:var(--color-primary);box-shadow:inset 0 0 0 2px var(--color-primary)}.player-main img{width:42px;height:42px;border-radius:50%;background:#ecf2ed}.player-main{display:flex;align-items:center;gap:10px}.player-main span{display:grid;gap:2px}.toggle-row{grid-template-columns:auto 1fr;justify-items:start;gap:10px;padding:0 12px}button.danger{width:100%;background:var(--color-danger);color:#fffdf8;border:1px solid var(--color-danger)}.form-error{padding:12px;border-radius:8px;background:color-mix(in srgb,var(--color-danger) 10%,white);color:var(--color-danger);font-weight:800}.court-screen{gap:18px;background:radial-gradient(circle at 90% 0%,rgb(200 255 61 / 7%),transparent 34%),var(--color-surface)}.dashboard-compact{min-height:0;padding:20px;display:grid;gap:18px;border:1px solid var(--color-border);border-radius:18px;background:linear-gradient(145deg,#111b22,#0a1118)}.dashboard-compact h2{margin-bottom:6px;font-size:1.65rem}.readiness-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.readiness-stats span{min-height:70px;padding:12px;display:grid;align-content:center;border-radius:12px;background:#ffffff08}.readiness-stats strong{color:var(--color-ink);font-size:1.5rem}.readiness-stats small{color:var(--color-muted)}.hero-action{min-height:58px;color:#11170a;font-size:1rem}.session-strip,.match-header,.rotation-row,.arrival-row,.arrival-row>span{display:flex;align-items:center}.session-strip{min-height:42px;justify-content:space-between;color:var(--color-muted);font-size:.85rem}.session-strip span{display:flex;align-items:center;gap:8px}.session-strip i{width:9px;height:9px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 12px #c8ff3d9e}.match-header{justify-content:space-between;gap:12px}.preview-badge{padding:7px 10px;border:1px solid rgb(200 255 61 / 32%);border-radius:999px;color:var(--color-primary);font-size:.75rem;font-weight:850}.match-reason{padding:11px 12px;display:flex;gap:9px;border-radius:10px;background:#c8ff3d14;color:#ced7c4;font-size:.86rem}.match-reason span{color:var(--color-primary)}.clean-court{display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border:1px solid rgb(200 255 61 / 38%);border-radius:16px;background:linear-gradient(90deg,transparent calc(50% - 1px),rgb(200 255 61 / 35%) 50%,transparent calc(50% + 1px)),#0a1716}.clean-team{min-width:0;padding:14px 10px;display:grid;gap:10px}.team-name{color:var(--color-primary);font-size:.76rem;font-weight:900}.match-player{min-height:74px;padding:9px;display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:8px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-raised)}.match-player img,.rotation-row img,.arrival-row img{width:40px;height:40px;border-radius:50%;background:#1d2732}.match-player>span,.rotation-name{min-width:0;display:grid;gap:2px}.match-player strong,.rotation-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-player small,.rotation-name small{color:var(--color-muted);text-transform:capitalize}.match-player form{grid-column:1 / -1}.skip-button,.availability-button,.text-action{min-height:44px;padding:0 12px;background:transparent;color:var(--color-muted);border:1px solid var(--color-border)}.preview-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.final-score-form,.availability-panel,.rotation-list{display:grid;gap:10px}.score-entry-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:10px}.score-entry-grid input{min-height:76px;padding:6px;background:#080d12;color:var(--color-ink);font-size:2.4rem;font-weight:900;text-align:center;font-variant-numeric:tabular-nums}.score-divider{padding-bottom:24px;color:var(--color-muted);font-size:1.4rem}.availability-panel{padding-top:4px}.rotation-row,.arrival-row{min-height:62px;gap:10px;padding:8px;border:1px solid var(--color-border);border-radius:12px;background:#0a1017}.rotation-name{flex:1}.availability-button{min-width:68px}.arrival-row{justify-content:space-between}.arrival-row>span{gap:10px}.text-action{width:100%}.compact-empty{padding:22px 4px 8px}@media(max-width:340px){.clean-court{grid-template-columns:1fr;background:#0a1716}.clean-team+.clean-team{border-top:1px solid rgb(200 255 61 / 28%)}.match-player{grid-template-columns:40px minmax(0,1fr) auto}.match-player form{grid-column:auto}}.empty-copy{color:var(--color-muted)}.bottom-nav{position:fixed;left:50%;bottom:max(14px,env(safe-area-inset-bottom));z-index:10;width:min(calc(100% - 28px),520px);min-height:72px;padding:8px;display:grid;grid-template-columns:repeat(5,1fr);gap:6px;transform:translate(-50%);border:1px solid color-mix(in srgb,var(--color-border) 82%,white);border-radius:8px;background:color-mix(in srgb,var(--color-surface) 94%,transparent);box-shadow:0 12px 40px #17211b24;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.bottom-nav button{min-height:56px;display:grid;place-items:center;gap:2px;padding:4px;background:transparent;color:var(--color-muted);font-size:11px}.bottom-nav button.active{background:var(--color-primary);color:#fffdf8}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-slide-down{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(24px)}}@keyframes sheet-backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes winner-pop{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes winner-jump{0%,to{transform:translateY(0) scale(1)}42%{transform:translateY(-22px) scale(1.03,.98)}58%{transform:translateY(2px) scale(.98,1.03)}}@keyframes confetti-drop{0%{opacity:0;transform:translateY(0) rotate(0)}12%{opacity:1}to{opacity:0;transform:translateY(250px) translate(calc(var(--x) * 7px)) rotate(310deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;scroll-behavior:auto!important;transition-duration:1ms!important}}@media(min-width:520px){.inline-form,.row-actions{grid-template-columns:1fr auto;align-items:end}.team-grid{grid-template-columns:1fr 1fr}}body{min-height:100svh;background:radial-gradient(circle at 8% 0%,rgb(124 92 252 / 15%),transparent 30rem),radial-gradient(circle at 100% 42%,rgb(200 255 61 / 8%),transparent 26rem),var(--color-bg);color:var(--color-ink)}body:before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;content:"";pointer-events:none;background-image:linear-gradient(rgb(255 255 255 / 1.5%) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / 1.5%) 1px,transparent 1px);background-size:36px 36px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 68%);mask-image:linear-gradient(to bottom,black,transparent 68%)}::selection{background:#c8ff3d47;color:var(--color-ink)}button{border-radius:14px;letter-spacing:-.01em;transition:opacity .16s ease,transform .16s cubic-bezier(.2,.8,.2,1),color .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease}button:disabled{cursor:not-allowed;filter:saturate(.35);opacity:.45}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}input{border-color:var(--color-border);border-radius:14px;background:#0a1017;color:var(--color-ink);box-shadow:inset 0 1px #ffffff08}input::placeholder{color:#5f6c7e}.page-shell{position:relative}.topbar{min-height:68px;animation:topbar-in .48s cubic-bezier(.2,.85,.25,1) both}.eyebrow,.section-label{color:var(--color-primary);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase}h1,h2{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:760;letter-spacing:-.04em}h1{color:var(--color-ink);text-shadow:0 10px 34px rgb(0 0 0 / 42%)}h2{color:var(--color-ink)}p{color:var(--color-muted)}small{color:var(--color-muted);font-weight:650}.icon-button{position:relative;overflow:visible;border-color:var(--color-border);border-radius:16px;background:linear-gradient(145deg,#141c26,#0b1017);color:var(--color-primary);box-shadow:inset 0 1px #ffffff12,0 12px 34px #00000047}.icon-button:after{position:absolute;top:-2px;right:-2px;width:8px;height:8px;content:"";border:2px solid var(--color-bg);border-radius:50%;background:var(--color-primary);box-shadow:0 0 12px var(--color-primary)}.screen{overflow:hidden;border-color:#7e91a92e;border-radius:24px;background:linear-gradient(145deg,rgb(255 255 255 / 3.5%),transparent 32%),color-mix(in srgb,var(--color-surface) 96%,transparent);box-shadow:inset 0 1px #ffffff0a,0 24px 70px #00000038;animation:screen-in .44s cubic-bezier(.2,.85,.25,1) both}.screen>:not(dialog){animation:reveal-up .42s cubic-bezier(.2,.85,.25,1) both}.screen>:not(dialog):nth-child(2){animation-delay:55ms}.screen>:not(dialog):nth-child(3){animation-delay:.1s}.screen>:not(dialog):nth-child(4){animation-delay:145ms}.primary-action,.inline-form button,.row-actions button,.player-form button,.mini-action{background:linear-gradient(135deg,#d6ff67,var(--color-primary) 54%,#a9e519);color:#101604;box-shadow:inset 0 1px #ffffff73,0 10px 28px #c8ff3d21}.secondary-action,.row-edit,.sheet-close{border:1px solid var(--color-border);background:linear-gradient(145deg,#17202b,#101720);color:#d9e1ec;box-shadow:inset 0 1px #ffffff0d}.danger-outline,.mini-danger{border-color:#ff5d7a4d;background:#ff5d7a14;color:#ff8299}button.danger{border-color:#ff5d7a59;background:linear-gradient(135deg,#a82f49,#7c2035);color:#fff}.tracker-panel{border-color:#c8ff3d2b;border-radius:20px;background:radial-gradient(circle at 50% 115%,rgb(200 255 61 / 10%),transparent 52%),linear-gradient(145deg,#121a24,#0b1118);box-shadow:inset 0 1px #ffffff0d}.score-card{border:1px solid var(--color-border);border-radius:16px;background:#070b10b8;box-shadow:inset 0 1px #ffffff0a}.scoreboard small,.serve-meta small,.serve-meta{color:var(--color-muted)}.score-reel,.score-card strong{color:var(--color-ink);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-shadow:0 0 26px rgb(200 255 61 / 10%)}.server-choice{border:1px solid rgb(200 255 61 / 22%);background:radial-gradient(circle at 50% 65%,rgb(200 255 61 / 13%),transparent 46%),#101720;color:var(--color-ink)}.server-choice small{color:var(--color-muted)}.server-choice img,.court-player img,.player-pill img,.jumping-avatar img,.session-player-tile img,.leaderboard-player img,.player-main img{background:linear-gradient(145deg,#222d3a,#101720);box-shadow:inset 0 0 0 1px #ffffff17}.court-diagram{border-color:#c8ff3d8f;border-radius:18px;background:linear-gradient(90deg,#7c5cfc14 0,#7c5cfc14 50%,#c8ff3d12 50%,#c8ff3d12),repeating-linear-gradient(0deg,transparent 0 21px,rgb(255 255 255 / 1.5%) 22px),#09120f;box-shadow:inset 0 0 44px #c8ff3d0d,0 0 35px #c8ff3d0d}.court-line{background:#c8ff3d4d}.court-net{background:#c8ff3dad;box-shadow:0 0 16px #c8ff3d3d}.court-label,.court-player small{color:var(--color-primary)}.court-player{border-color:#8295ae3d;border-radius:14px;background:#0f161feb;color:var(--color-ink);box-shadow:inset 0 1px #ffffff0f,0 10px 24px #0000004d}.court-player.server{border-color:var(--color-primary);box-shadow:0 0 0 2px #c8ff3d33,0 0 24px #c8ff3d2e}.bench-line{padding:10px 12px;border:1px solid var(--color-border);border-radius:12px;background:#ffffff06}.winner-row,.leaderboard-row,.history-row,.summary-list div,.podium-place,.team-panel,.group-list li,details,.player-card,.session-player-tile{border-color:var(--color-border);background:linear-gradient(145deg,#141c26,#0d131b);box-shadow:inset 0 1px #ffffff0a}.winner-row,.leaderboard-row,.history-row,.group-list li,details,.player-card,.session-player-tile,.team-panel{border-radius:16px}.winner-row.rank-1,.leaderboard-row.rank-1{border-left-color:var(--color-primary)}.winner-row.rank-2,.leaderboard-row.rank-2{border-left-color:var(--color-accent)}.winner-row.rank-3,.leaderboard-row.rank-3{border-left-color:#37c6c0}.rank-icon{background:#c8ff3d1a;color:var(--color-primary);box-shadow:inset 0 0 0 1px #c8ff3d24}.rating-pill{background:#c8ff3d1a;color:var(--color-primary);box-shadow:inset 0 0 0 1px #c8ff3d21}.history-switch{border:1px solid var(--color-border);border-radius:16px;background:#090e14}.history-switch button{color:var(--color-muted)}.history-switch button.active{background:linear-gradient(145deg,#1a2430,#111821);color:var(--color-ink);box-shadow:inset 0 1px #ffffff0f,0 6px 16px #0003}.group-list li.current,details[open]{border-color:#c8ff3d8c;box-shadow:0 0 20px #c8ff3d0d}.group-select{color:var(--color-ink)}.segmented,.toggle-row{border-radius:14px}.segmented label,.toggle-row{border-color:var(--color-border);border-radius:12px;background:#0b1118}.segmented span{color:var(--color-muted)}.segmented label:has(input:checked),.session-player-tile:has(input:checked){border-color:var(--color-primary);background:#c8ff3d12;box-shadow:inset 0 0 0 1px var(--color-primary),0 0 20px #c8ff3d12}.session-player-tile:has(input:checked) span{color:var(--color-ink)}.manual-team-columns h3{color:var(--color-primary)}.bottom-sheet,.winner-party,.session-summary-card{border:1px solid rgb(124 145 172 / 20%);background:linear-gradient(145deg,rgb(255 255 255 / 4%),transparent 28%),#0e141c;color:var(--color-ink);box-shadow:inset 0 1px #ffffff12,0 -24px 80px #0000008c}.bottom-sheet{border-radius:24px 24px 0 0}.winner-party,.session-summary-card,.winner-dialog{border-radius:24px}.bottom-sheet::backdrop,.winner-dialog::backdrop{background:#020407b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.winner-party{background:radial-gradient(circle at 50% 24%,rgb(124 92 252 / 22%),transparent 38%),radial-gradient(circle at 50% 100%,rgb(200 255 61 / 9%),transparent 42%),#0e141c}.form-error{border:1px solid rgb(255 93 122 / 28%);border-radius:14px;background:#ff5d7a17;color:#ff8da2}.bottom-nav{min-height:76px;border-color:#8195ae2e;border-radius:22px;background:#0c121ae0;box-shadow:inset 0 1px #ffffff0f,0 20px 60px #0000007a;-webkit-backdrop-filter:blur(24px) saturate(140%);backdrop-filter:blur(24px) saturate(140%);animation:nav-in .52s cubic-bezier(.2,.85,.25,1) .12s both}.bottom-nav button{position:relative;border-radius:16px;color:#788599}.bottom-nav button.active{background:#c8ff3d17;color:var(--color-primary);box-shadow:inset 0 0 0 1px #c8ff3d1f,0 0 22px #c8ff3d12}.bottom-nav button.active:before{position:absolute;top:5px;width:18px;height:2px;content:"";border-radius:999px;background:var(--color-primary);box-shadow:0 0 10px var(--color-primary)}.dashboard{display:grid;gap:12px}.dashboard-hero{position:relative;min-height:254px;overflow:hidden;padding:22px;border:1px solid rgb(118 139 166 / 20%);border-radius:22px;background:radial-gradient(circle at 82% 38%,rgb(200 255 61 / 10%),transparent 25%),radial-gradient(circle at 7% 0%,rgb(124 92 252 / 13%),transparent 42%),linear-gradient(145deg,#121a24,#090e14);box-shadow:inset 0 1px #ffffff0f,0 20px 50px #0003}.dashboard-hero:after{position:absolute;right:-35%;bottom:-54%;width:118%;aspect-ratio:1;content:"";border:1px solid rgb(200 255 61 / 8%);border-radius:50%;box-shadow:0 0 0 34px #c8ff3d06,0 0 0 68px #c8ff3d05}.dashboard-copy{position:relative;z-index:2;width:62%;display:grid;align-content:start}.dashboard-copy h2{max-width:11ch;overflow:hidden;font-size:clamp(1.65rem,8vw,2.3rem);line-height:1;text-overflow:ellipsis;white-space:nowrap}.live-status{margin-top:9px;display:flex;align-items:center;gap:7px;color:#a8b3c3;font-size:.76rem;font-weight:700}.live-status i{width:7px;height:7px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 11px var(--color-primary)}.dashboard-rating{margin-top:31px;display:grid;justify-items:start}.dashboard-rating small,.dashboard-stat span,.dashboard-leader>span:nth-child(2) small{color:var(--color-muted);font-size:.67rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}.dashboard-rating strong{color:var(--color-ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:clamp(2.55rem,13vw,4rem);font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.09em;text-shadow:0 0 34px rgb(200 255 61 / 10%)}.dashboard-rating>span{margin-top:5px;color:var(--color-primary);font-size:.75rem;font-weight:850}.court-radar{position:absolute;top:26px;right:-2px;width:48%;aspect-ratio:1}.dashboard-ball{position:absolute;top:14%;right:9%;z-index:2;width:112px;height:112px;overflow:visible;filter:drop-shadow(0 0 9px rgb(200 255 61 / 65%)) drop-shadow(0 0 28px rgb(200 255 61 / 24%));animation:ball-hover 5s ease-in-out infinite}.radar-ring{position:absolute;border:1px solid rgb(200 255 61 / 13%);border-radius:50%}.ring-one{top:6%;right:6%;bottom:6%;left:6%}.ring-two{top:22%;right:22%;bottom:22%;left:22%}.radar-trail{position:absolute;top:48%;right:52%;width:125%;height:42%;transform:skewY(-12deg);background:linear-gradient(90deg,transparent,rgb(200 255 61 / 4%) 35%,rgb(200 255 61 / 18%));filter:blur(7px)}.dashboard-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.dashboard-stat{min-width:0;min-height:96px;padding:13px 10px;display:grid;align-content:center;gap:1px;border:1px solid var(--color-border);border-radius:16px;background:linear-gradient(145deg,rgb(255 255 255 / 3.5%),transparent 45%),#0d131b;box-shadow:inset 0 1px #ffffff0a}.dashboard-stat strong{color:var(--color-ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.65rem;font-variant-numeric:tabular-nums;letter-spacing:-.06em}.dashboard-stat small{color:var(--color-primary);font-size:11px}.dashboard-stat span{font-size:11px}.dashboard-leader{min-height:70px;padding:10px 12px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;border:1px solid rgb(124 92 252 / 22%);border-radius:16px;background:radial-gradient(circle at 93% 50%,rgb(124 92 252 / 12%),transparent 26%),#0d131b}.dashboard-leader>span:nth-child(2){min-width:0;display:grid;gap:2px}.dashboard-leader>span:nth-child(2) strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar-stack{display:flex;padding-left:7px}.avatar-stack img{width:38px;height:38px;margin-left:-7px;border:2px solid #0d131b;border-radius:50%;background:#17202b}.leader-mmr{display:grid;justify-items:end;color:#a991ff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.9rem;font-weight:900}.leader-mmr small{color:var(--color-muted);font-family:inherit;font-size:.55rem;letter-spacing:.08em}@keyframes topbar-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes nav-in{0%{opacity:0;transform:translate(-50%,18px)}to{opacity:1;transform:translate(-50%)}}@keyframes reveal-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes ball-hover{0%,to{transform:translateZ(0) rotate(-3deg)}50%{transform:translate3d(0,-7px,0) rotate(3deg)}}@media(hover:hover)and (pointer:fine){button:not(:disabled):hover{transform:translateY(-1px)}.primary-action:hover,.inline-form button:hover,.row-actions button:hover,.player-form button:hover,.mini-action:hover{box-shadow:inset 0 1px #ffffff73,0 12px 34px #c8ff3d38}}@media(max-width:370px){.dashboard-hero{min-height:238px;padding:18px}.dashboard-ball{width:96px;height:96px}.dashboard-copy{width:68%}.dashboard-stat{padding-inline:8px}}@media(prefers-reduced-motion:reduce){.dashboard-ball{animation:none}}.screen>.match-swap{display:grid;gap:18px;animation:match-refresh .18s cubic-bezier(.2,.85,.25,1) both}.session-error{margin:-4px 0 0}@keyframes match-refresh{0%{opacity:0;transform:translateY(5px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.screen>.match-swap,.screen,.screen>:not(dialog),.topbar,.bottom-nav{animation:none}}.rotation-row{flex-wrap:wrap}.manual-teams{margin-block:16px}.manual-teams form{display:grid;gap:12px;padding-block:12px}
