@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--brand-1:#5b57f2;--brand-2:#8b5cf6;--pop:#c8f250;--pop-ink:#1b2408;--live:#ff5b4a;--gold:#f5b63d;--silver:#b9c0cc;--bg:#f5f6fa;--bg-tint:#eceefb;--surface:#fff;--surface-2:#f1f3f8;--surface-3:#e6e9f2;--border:#e0e4ee;--border-strong:#c9cfdd;--text:#12141c;--text-dim:#5b6376;--text-faint:#8a92a4;--good:#17915a;--good-bg:#e4f6ec;--warn:#9a6a00;--warn-bg:#fdf1d8;--bad:#c92a2a;--bad-bg:#fdeaea;--r-sm:10px;--r:16px;--r-lg:22px;--tap:48px;--shadow-1:0 1px 2px #12141c0f, 0 1px 3px #12141c0a;--shadow-2:0 4px 12px #12141c14, 0 2px 4px #12141c0a;--shadow-brand:0 8px 24px #5b57f247;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#0b0d16;--bg-tint:#131629;--surface:#161a28;--surface-2:#1e2333;--surface-3:#283046;--border:#262c3d;--border-strong:#3a4256;--text:#eef1f8;--text-dim:#9aa3b8;--text-faint:#6d7689;--brand-1:#7b78ff;--brand-2:#a78bfa;--good:#3ecf8e;--good-bg:#123026;--warn:#e9b949;--warn-bg:#33280d;--bad:#ff6b6b;--bad-bg:#36191c;--shadow-1:0 1px 2px #00000080;--shadow-2:0 6px 18px #00000080;--shadow-brand:0 8px 28px #5b57f259}}:root[data-theme=dark]{--bg:#0b0d16;--bg-tint:#131629;--surface:#161a28;--surface-2:#1e2333;--surface-3:#283046;--border:#262c3d;--border-strong:#3a4256;--text:#eef1f8;--text-dim:#9aa3b8;--text-faint:#6d7689;--brand-1:#7b78ff;--brand-2:#a78bfa;--good:#3ecf8e;--good-bg:#123026;--warn:#e9b949;--warn-bg:#33280d;--bad:#ff6b6b;--bad-bg:#36191c}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;font-family:Plus Jakarta Sans,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}body:before{content:"";background:radial-gradient(120% 100% at 50% 0%, var(--bg-tint) 0%, transparent 70%);pointer-events:none;z-index:0;height:280px;position:fixed;inset:0 0 auto}.app{z-index:1;max-width:720px;margin:0 auto;padding:0 16px 120px;position:relative}h1,h2,h3{letter-spacing:-.02em;margin:0 0 8px;font-weight:800;line-height:1.2}h1{font-size:1.6rem}h2{font-size:1.2rem}h3{font-size:.95rem;font-weight:700}p{margin:0 0 12px}a{color:var(--brand-1);font-weight:600}.muted{color:var(--text-dim);font-size:.875rem}.faint{color:var(--text-faint)}.eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);font-size:.6875rem;font-weight:800}.topbar{z-index:20;background:linear-gradient(to bottom, var(--bg) 70%, transparent);align-items:center;gap:12px;padding:14px 0 12px;display:flex;position:sticky;top:0}.topbar h1{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:1.15rem;overflow:hidden}.iconbtn{width:var(--tap);height:var(--tap);min-height:var(--tap);background:var(--surface);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow-1);border-radius:13px;flex:none;place-items:center;padding:0;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-1);margin:14px 0;padding:18px;position:relative}.card.tight{padding:12px 14px}.card>h2:first-child,.card>h3:first-child{margin-top:0}.hero{border-radius:var(--r-lg);background:linear-gradient(135deg, var(--brand-1), var(--brand-2));color:#fff;box-shadow:var(--shadow-brand);margin:8px 0 18px;padding:26px 22px;position:relative;overflow:hidden}.hero:after{content:"";background:#ffffff1f;border-radius:50%;width:180px;height:180px;position:absolute;top:-40px;right:-40px}.hero h1{margin-bottom:6px;font-size:1.85rem}.hero p{opacity:.9;max-width:34ch;margin:0;font-size:.9375rem}.hero .mark{background:var(--pop);width:46px;height:46px;color:var(--pop-ink);border-radius:14px;place-items:center;margin-bottom:14px;display:grid}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.spread{justify-content:space-between}.grow{flex:1;min-width:0}.stack>*+*{margin-top:12px}label{color:var(--text-dim);margin-bottom:6px;font-size:.8125rem;font-weight:600;display:block}input,select,textarea{width:100%;min-height:var(--tap);font:inherit;color:var(--text);background:var(--surface-2);border-radius:var(--r-sm);border:1.5px solid #0000;padding:12px 14px;font-weight:500;transition:border-color .15s,background .15s}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:focus,select:focus,textarea:focus{border-color:var(--brand-1);background:var(--surface);outline:none}textarea{resize:vertical;min-height:80px}:focus-visible{outline:2px solid var(--brand-1);outline-offset:2px}.field{margin-bottom:14px}.field:last-child{margin-bottom:0}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.prefixed{position:relative}.prefixed span{color:var(--text-faint);pointer-events:none;font-weight:600;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.prefixed input{padding-left:30px}button{min-height:var(--tap);font:inherit;color:var(--text);background:var(--surface-2);border-radius:var(--r-sm);cursor:pointer;border:1px solid #0000;padding:12px 18px;font-weight:700;transition:transform 80ms,background .15s,box-shadow .15s}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:linear-gradient(135deg, var(--brand-1), var(--brand-2));color:#fff;box-shadow:var(--shadow-brand)}button.pop{background:var(--pop);color:var(--pop-ink)}button.danger{color:var(--bad)}button.ghost{border-color:var(--border);background:0 0}button.bare{min-height:var(--tap);background:0 0;border:0;padding:0}button.xbtn{min-width:var(--tap);min-height:var(--tap);color:var(--bad);background:0 0;border:0;flex:none;padding:0;font-size:1.05rem}button.full{width:100%}button.sm{min-height:var(--tap);padding:8px 14px;font-size:.875rem}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{min-height:var(--tap);min-width:var(--tap);background:var(--surface-2);color:var(--text-dim);border:1.5px solid #0000;border-radius:999px;padding:9px 16px;font-size:.9375rem;font-weight:700}.chip[aria-pressed=true]{background:var(--brand-1);border-color:var(--brand-1);color:#fff;box-shadow:var(--shadow-1)}.optioncard{text-align:left;border-radius:var(--r);background:var(--surface-2);border:1.5px solid #0000;width:100%;min-height:0;padding:14px 16px;font-weight:500;display:block}.optioncard[aria-pressed=true]{border-color:var(--brand-1);background:var(--surface);box-shadow:var(--shadow-2)}.badge{letter-spacing:.03em;text-transform:uppercase;background:var(--surface-3);color:var(--text-dim);border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:.6875rem;font-weight:800;display:inline-flex}.badge.live{background:var(--live);color:#fff}.badge.done{background:var(--good-bg);color:var(--good)}.badge.pop{background:var(--pop);color:var(--pop-ink)}.courtchip{background:var(--surface-2);width:34px;height:34px;color:var(--text-dim);border-radius:11px;flex:none;place-items:center;font-size:.75rem;font-weight:800;display:grid}.rank{background:var(--surface-3);width:26px;height:26px;color:var(--text-dim);border-radius:9px;place-items:center;font-size:.8125rem;font-weight:800;display:grid}.rank.one{background:var(--gold);color:#3a2a00}.rank.two{background:var(--silver);color:#23272e}.notice{border-radius:var(--r-sm);background:var(--warn-bg);color:var(--warn);gap:10px;margin:14px 0;padding:12px 14px;font-size:.9375rem;font-weight:600;display:flex}.notice.bad{background:var(--bad-bg);color:var(--bad)}.notice.good{background:var(--good-bg);color:var(--good)}.notice p{margin:0}.stats{grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:10px;display:grid}.stat{border-radius:var(--r);background:var(--surface-2);padding:14px}.stat .k{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin-bottom:4px;font-size:.6875rem;font-weight:800}.stat .v{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:800}.stat.hilite{background:linear-gradient(135deg, var(--brand-1), var(--brand-2));color:#fff}.stat.hilite .k{color:#ffffffbf}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9375rem}th,td{text-align:right;border-bottom:1px solid var(--border);padding:10px 5px}tbody tr:last-child td{border-bottom:0}th:first-child,td:first-child{text-align:left;padding-left:0}th{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-size:.6875rem;font-weight:800}tr.qualified td{background:linear-gradient(to right, var(--good-bg), transparent 60%)}.matchrow{border:0;border-bottom:1px solid var(--border);text-align:left;background:0 0;border-radius:0;align-items:center;gap:12px;width:100%;min-height:0;padding:12px 0;font-weight:500;display:flex}.matchrow:last-child{border-bottom:0}.matchrow:active:not(:disabled){background:var(--surface-2);transform:none}.matchrow .teams{flex:1;min-width:0;font-size:.9375rem}.matchrow .vs{color:var(--text-faint);padding:0 2px;font-weight:600}.matchrow .meta{color:var(--text-faint);margin-top:2px;font-size:.75rem;font-weight:500;display:block}.matchrow .score{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1rem;font-weight:800}.winner{font-weight:800}.loser{color:var(--text-faint)}.scorepad{grid-template-columns:1fr 1fr;gap:12px;margin-top:4px;display:grid}.scoreside{border-radius:var(--r-lg);background:var(--surface);border:1.5px solid var(--border);box-shadow:var(--shadow-1);text-align:center;flex-direction:column;display:flex;overflow:hidden}.scoreside.leading{border-color:var(--brand-1)}.scoreside .head{padding:14px 12px 6px}.scoreside .name{letter-spacing:-.01em;justify-content:center;align-items:center;min-height:2.4em;font-size:1rem;font-weight:800;display:flex}.scoreside .players{color:var(--text-faint);min-height:1.2em;font-size:.75rem}.tapzone{background:0 0;border:0;border-radius:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;width:100%;min-height:max(190px,34vh);padding:4px 0 18px;display:flex}.tapzone:active:not(:disabled){background:var(--surface-2);transform:none}.tapzone:disabled{opacity:1;cursor:default}.tapzone:disabled .taphint{opacity:.6}.scoreside.won{border-color:var(--good)}.scoreside.won .bignum{color:var(--good)}.scoreside.lost .bignum{color:var(--text-faint)}.bignum{font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-size:4.8rem;font-weight:800;line-height:1}.taphint{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);font-size:.6875rem;font-weight:700}.matchpoint{color:var(--live);letter-spacing:.05em;text-transform:uppercase;min-height:1.1em;font-size:.75rem;font-weight:800}.scoreside .undo{border-top:1px solid var(--border);color:var(--text-dim);background:0 0;border-radius:0;min-height:44px;font-size:.875rem}.gamepills{justify-content:center;gap:8px;display:flex}.gamepill{background:var(--surface-2);font-variant-numeric:tabular-nums;color:var(--text-dim);border-radius:999px;padding:6px 12px;font-size:.875rem;font-weight:700}.gamepill.current{background:var(--brand-1);color:#fff}.champion{text-align:center;border-radius:var(--r-lg);background:linear-gradient(135deg, var(--brand-1), var(--brand-2));color:#fff;box-shadow:var(--shadow-brand);margin:14px 0;padding:30px 20px}.champion .cup{background:var(--pop);width:62px;height:62px;color:var(--pop-ink);border-radius:20px;place-items:center;margin:0 auto 12px;display:grid}.champion h2{margin-bottom:2px;font-size:1.7rem}.bottomnav{z-index:30;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:0;right:0}.bottomnav .inner{grid-template-columns:repeat(6,1fr);max-width:720px;margin:0 auto;display:grid}.bottomnav button{min-height:58px;color:var(--text-faint);letter-spacing:-.01em;background:0 0;border:0;border-radius:0;flex-direction:column;align-items:center;gap:3px;padding:9px 0 7px;font-size:.625rem;font-weight:700;display:flex}.bottomnav button[aria-selected=true]{color:var(--brand-1)}.bottomnav button:active{transform:none}.footerbar{z-index:30;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);position:fixed;bottom:0;left:0;right:0}.footerbar .inner{max-width:720px;margin:0 auto}.statusdot{color:var(--text-faint);align-items:center;gap:5px;font-size:.6875rem;font-weight:700;display:inline-flex}.swtoast{left:12px;right:12px;bottom:calc(70px + env(safe-area-inset-bottom));z-index:40;border-radius:var(--r);background:var(--surface-3);max-width:696px;color:var(--text);box-shadow:var(--shadow-2);align-items:center;gap:8px;margin:0 auto;padding:10px 12px;font-size:.875rem;font-weight:600;display:flex;position:fixed}.betatag{letter-spacing:.05em;text-transform:uppercase;background:#fff3;border-radius:999px;margin-top:14px;padding:4px 11px;font-size:.6875rem;font-weight:800;display:inline-block}.linkbox{border-radius:var(--r-sm);background:var(--surface-2);word-break:break-all;color:var(--text-dim);padding:12px 14px;font-size:.875rem;font-weight:600}.namelist li{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:9px 0;font-weight:600;display:flex}.namelist li:last-child{border-bottom:0}.rsvpbuttons{grid-template-columns:1fr 1fr;gap:10px;display:grid}.rsvpbuttons button{justify-content:center;align-items:center;gap:8px;min-height:54px;display:flex}.wizardbar{z-index:20;background:linear-gradient(to bottom, var(--bg) 72%, transparent);padding:14px 0 12px;position:sticky;top:0}.wizardbar .top{align-items:center;gap:12px;display:flex}.wizardbar .count{letter-spacing:.04em;color:var(--text-faint);text-transform:uppercase;font-size:.75rem;font-weight:800}.progress{gap:4px;margin-top:12px;display:flex}.progress span{background:var(--surface-3);border-radius:99px;flex:1;height:4px}.progress span.done{background:var(--brand-1)}.progress span.current{background:linear-gradient(90deg, var(--brand-1), var(--brand-2))}.steptitle{margin:4px 0 2px;font-size:1.5rem}.stepsub{color:var(--text-dim);margin-bottom:4px;font-size:.9375rem}.wizardnav{gap:10px;display:flex}.wizardnav .next{flex:1}.qrcard{text-align:center}.qrcanvas{background:#fff;border-radius:12px;width:min(320px,100vw - 80px);height:auto;margin:0 auto;padding:8px;display:block}.scanframe{border-radius:var(--r-lg);aspect-ratio:3/4;background:#000;margin:12px 0;position:relative;overflow:hidden}.scanframe video{object-fit:cover;width:100%;height:100%;display:block}.scanreticle{border:3px solid var(--pop);pointer-events:none;border-radius:18px;position:absolute;inset:16% 12%;box-shadow:0 0 0 100vmax #00000059}.list-reset{margin:0;padding:0;list-style:none}.sectionhead{align-items:center;gap:10px;margin-bottom:14px;display:flex}.sectionhead .ic{background:var(--bg-tint);width:34px;height:34px;color:var(--brand-1);border-radius:11px;flex:none;place-items:center;display:grid}.sectionhead h2{margin:0}.empty{text-align:center;color:var(--text-dim);padding:30px 16px}.empty .ic{background:var(--surface-2);width:56px;height:56px;color:var(--text-faint);border-radius:18px;place-items:center;margin:0 auto 12px;display:grid}@media (width>=560px){.field-row.three{grid-template-columns:repeat(3,1fr)}.bignum{font-size:5.5rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important}button:active:not(:disabled){transform:none}}.slotrow{border-radius:var(--r-sm);background:var(--surface-2);align-items:center;gap:10px;padding:12px;display:flex}.slotrow .meta{color:var(--text-dim);margin-top:3px;font-size:.8125rem;display:block}.courttime{align-items:center;gap:8px;display:flex}.courttime input{flex:1;min-width:0}.framedots{justify-content:center;gap:6px;margin-top:12px;display:flex}.framedots span{background:var(--border-strong);border-radius:50%;width:7px;height:7px;transition:background .2s}.framedots span.on{background:var(--brand-1)}.frontdoors{grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 8px;display:grid}.frontdoor{border-radius:var(--r);background:var(--surface);border:1px solid var(--border);min-height:108px;box-shadow:var(--shadow-1);text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:16px 14px;display:flex}.frontdoor strong{margin-top:6px;font-size:.9375rem}.frontdoor span{color:var(--text-dim);font-size:.75rem;font-weight:500;line-height:1.3}.frontdoor.primary span{color:#ffffffd9}.listingcard{text-align:left;width:100%;min-height:0;font-weight:500;display:block}.listingcard .meta{color:var(--text-dim);margin-top:3px;font-size:.8125rem;display:block}:root{--court-1:#5b57f2;--court-2:#0d9488;--court-3:#d97706;--court-4:#db2777;--court-5:#15803d}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--court-1:#7b78ff;--court-2:#2dd4bf;--court-3:#fbbf24;--court-4:#f472b6;--court-5:#4ade80}}:root[data-theme=dark]{--court-1:#7b78ff;--court-2:#2dd4bf;--court-3:#fbbf24;--court-4:#f472b6;--court-5:#4ade80}.c1{--court:var(--court-1)}.c2{--court:var(--court-2)}.c3{--court:var(--court-3)}.c4{--court:var(--court-4)}.c5{--court:var(--court-5)}.courtchip.c1,.courtchip.c2,.courtchip.c3,.courtchip.c4,.courtchip.c5{background:color-mix(in srgb, var(--court) 16%, transparent);color:var(--court)}.matchcard{border:1px solid var(--border);border-left:4px solid var(--court,var(--brand-1));border-radius:var(--r);background:var(--surface);text-align:left;width:100%;margin-bottom:10px;padding:14px 16px;display:block}.matchcard:last-child{margin-bottom:0}.matchcard .head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.matchcard .court{letter-spacing:.06em;text-transform:uppercase;color:var(--court,var(--brand-1));font-size:.6875rem;font-weight:800}.matchcard .sides{grid-template-columns:1fr auto;align-items:center;gap:4px 12px;display:grid}.matchcard .side{letter-spacing:-.01em;font-size:1.0625rem;font-weight:700}.matchcard .pts{font-variant-numeric:tabular-nums;text-align:right;font-size:1.5rem;font-weight:800;line-height:1}.matchcard .pts.dim{color:var(--text-faint);font-weight:700}.matchcard .go{border-radius:var(--r-sm);background:var(--court,var(--brand-1));color:#fff;width:100%;min-height:46px;margin-top:12px;font-weight:700}.matchlist[data-density=roomy] .matchrow{padding:14px 0}.matchlist[data-density=normal] .matchrow{padding:10px 0}.matchlist[data-density=tight] .matchrow{padding:6px 0}.matchlist[data-density=tight] .matchrow .meta{display:none}.matchlist[data-density=tight] .courtchip{border-radius:9px;width:28px;height:28px;font-size:.6875rem}.glance{grid-template-columns:repeat(auto-fit,minmax(74px,1fr));gap:8px;margin:14px 0;display:grid}.glance div{border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--border);min-width:0;padding:10px 11px}.glance .k{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);font-size:.625rem;font-weight:800}.glance .v{letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:1.05rem;font-weight:800;overflow:hidden}@keyframes pointScored{0%{transform:scale(1)}40%{transform:scale(1.14)}to{transform:scale(1)}}.bignum{animation:.26s ease-out pointScored}@keyframes rowSettle{0%{background:color-mix(in srgb, var(--brand-1) 22%, transparent)}to{background:0 0}}tr.moved td{animation:1.1s ease-out rowSettle}@keyframes doneFlash{0%{background:color-mix(in srgb, var(--good) 20%, transparent)}to{background:0 0}}.matchrow.justdone,.matchcard.justdone{animation:1.2s ease-out doneFlash}@media (prefers-reduced-motion:reduce){.bignum,tr.moved td,.matchrow.justdone,.matchcard.justdone{animation:none}}
