:root{--accent: #10B981;--accent-light: #34D399;--accent-deep: #047857;--accent-bg: rgba(16, 185, 129, .08);--accent-bg2: rgba(16, 185, 129, .12);--accent-border: rgba(16, 185, 129, .2);--on-accent: #FFFFFF;--danger: #E11D48;--danger-bg: rgba(225, 29, 72, .08);--warning: #F59E0B;--ball: #C8E000;--text-1: #1B2A22;--text-2: #485C50;--text-3: #6B7E72;--chip: #064E3B;--chip-fg: #FFFFFF;--surface: #FFFFFF;--surface-2: rgba(255, 255, 255, .66);--border: rgba(255, 255, 255, .8);--border-2: rgba(30, 40, 30, .09);--overlay: rgba(30, 40, 30, .06);--bg: #EDF1F0;--bg-rgb: 237, 241, 240;--first-moving: #E2F4EC;--warn-fg: #92600A;--r-sm: calc(8px * var(--scale));--r-md: calc(12px * var(--scale));--r-lg: calc(16px * var(--scale));--r-xl: calc(16px * var(--scale));--r-xxl: calc(20px * var(--scale));--r-card: calc(24px * var(--scale));--r-pill: 999px;--font-text: "Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-num: "Space Grotesk", "Inter Tight", system-ui, sans-serif;--shadow-card: 0 12px 22px rgba(30, 40, 30, .06);--shadow-soft: 0 6px 16px rgba(30, 40, 30, .05);--scale: 1}:root[data-theme=dark]{--accent-light: #34D399;--accent-deep: #6EE7B7;--accent-bg: rgba(16, 185, 129, .16);--accent-bg2: rgba(16, 185, 129, .24);--accent-border: rgba(16, 185, 129, .32);--text-1: #F1F5F3;--text-2: #B9C6BF;--text-3: #7F9188;--surface: #1A2622;--surface-2: rgba(255, 255, 255, .055);--border: rgba(255, 255, 255, .1);--border-2: rgba(255, 255, 255, .09);--overlay: rgba(255, 255, 255, .07);--bg: #0E1512;--bg-rgb: 14, 21, 18;--first-moving: #1F3A2F;--warn-fg: #FBBF24;--shadow-card: 0 12px 22px rgba(0, 0, 0, .35);--shadow-soft: 0 6px 16px rgba(0, 0, 0, .3);color-scheme:dark}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-text);color:var(--text-1);min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:relative;background:var(--bg)}#app{position:relative;z-index:1}button{font-family:inherit;cursor:pointer;background:none;border:none;outline:none;color:inherit}button:focus-visible{outline:calc(2px * var(--scale)) solid var(--accent);outline-offset:calc(2px * var(--scale))}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.page{max-width:calc(960px * var(--scale));margin:0 auto;padding-bottom:calc(48px * var(--scale))}.topbar{display:flex;align-items:center;justify-content:space-between;padding:calc(18px * var(--scale)) calc(22px * var(--scale)) calc(14px * var(--scale))}.brand{display:flex;align-items:center;gap:calc(9px * var(--scale))}.brand-badge{width:calc(34px * var(--scale));height:calc(34px * var(--scale));border-radius:var(--r-md);background:linear-gradient(135deg,var(--accent-light),var(--accent));color:var(--on-accent);font-size:calc(12px * var(--scale));font-weight:700;letter-spacing:calc(-.3px * var(--scale));display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px #10b98140}.brand-label{font-size:calc(16px * var(--scale));font-weight:700;color:var(--text-1);letter-spacing:calc(-.3px * var(--scale))}.status-pill{display:flex;align-items:center;gap:calc(7px * var(--scale));padding:calc(6px * var(--scale)) calc(12px * var(--scale));border-radius:var(--r-pill);font-size:calc(11px * var(--scale));font-weight:700;letter-spacing:calc(.8px * var(--scale));text-transform:uppercase}.status--live{background:var(--overlay);color:var(--text-3)}.status--done{background:var(--overlay);color:var(--text-2)}.status--done svg{width:calc(11px * var(--scale));height:calc(11px * var(--scale));flex-shrink:0}.status--warn{background:#f59e0b1f;color:var(--warn-fg)}.status--warn .live-dot{background:var(--warning);animation:none}.live-dot{width:calc(7px * var(--scale));height:calc(7px * var(--scale));border-radius:50%;background:var(--danger);animation:pulse 1.4s ease-in-out infinite;flex-shrink:0}.live-dot[data-ok=false]{background:var(--warning);animation:none}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}}.topbar-right{display:flex;align-items:center;gap:calc(8px * var(--scale))}.theme-toggle{display:flex;align-items:center;justify-content:center;width:calc(32px * var(--scale));height:calc(32px * var(--scale));border-radius:var(--r-pill);background:var(--overlay);color:var(--text-2);transition:background .15s,color .15s}.theme-toggle:hover{background:var(--accent-bg2);color:var(--accent-deep)}.theme-toggle svg{width:calc(16px * var(--scale));height:calc(16px * var(--scale))}.standings-fab svg{width:calc(16px * var(--scale));height:calc(16px * var(--scale))}.standings-head svg{width:calc(14px * var(--scale));height:calc(14px * var(--scale));flex-shrink:0}.blur-toggle svg{width:calc(17px * var(--scale));height:calc(17px * var(--scale))}.modal-close svg{width:calc(18px * var(--scale));height:calc(18px * var(--scale))}.status-pill svg{width:calc(11px * var(--scale));height:calc(11px * var(--scale));flex-shrink:0}.meta{padding:0 0 calc(16px * var(--scale))}.meta-name{font-size:calc(26px * var(--scale));font-weight:700;letter-spacing:calc(-.8px * var(--scale));line-height:1.15;color:var(--text-1)}.meta-sub{margin-top:calc(6px * var(--scale));font-size:calc(13px * var(--scale));font-weight:500;color:var(--text-3)}.round-strip-wrap{position:sticky;top:0;z-index:15;margin-bottom:calc(10px * var(--scale));padding:calc(8px * var(--scale)) 0 calc(10px * var(--scale));background:linear-gradient(180deg,rgba(var(--bg-rgb),.94),rgba(var(--bg-rgb),.82) 80%,rgba(var(--bg-rgb),0));-webkit-backdrop-filter:blur(calc(8px * var(--scale)));backdrop-filter:blur(calc(8px * var(--scale)))}.round-strip{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab;user-select:none;-webkit-user-select:none}.round-strip::-webkit-scrollbar{display:none}.round-strip.dragging{cursor:grabbing;scroll-behavior:auto}.round-strip.dragging .round-btn{pointer-events:none}.strip-arrow{position:absolute;top:50%;transform:translateY(-50%);width:calc(30px * var(--scale));height:calc(30px * var(--scale));border-radius:var(--r-pill);display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border-2);box-shadow:var(--shadow-soft);color:var(--text-2);opacity:0;pointer-events:none;transition:opacity .18s;z-index:2}.strip-arrow.visible{opacity:1;pointer-events:auto}.strip-arrow:hover{color:var(--accent-deep);border-color:var(--accent)}.strip-arrow svg{width:calc(15px * var(--scale));height:calc(15px * var(--scale))}.strip-arrow-left{left:calc(10px * var(--scale))}.strip-arrow-right{right:calc(10px * var(--scale))}.round-strip-track{display:flex;gap:calc(8px * var(--scale));padding:0 calc(22px * var(--scale));min-width:max-content}.round-btn{display:flex;align-items:center;gap:calc(8px * var(--scale));height:calc(44px * var(--scale));padding:0 calc(15px * var(--scale));border-radius:var(--r-md);border:1px solid var(--border-2);background:var(--surface-2);-webkit-backdrop-filter:blur(calc(12px * var(--scale)));backdrop-filter:blur(calc(12px * var(--scale)));color:var(--text-1);font-size:calc(13px * var(--scale));font-weight:600;letter-spacing:calc(-.2px * var(--scale));white-space:nowrap;transition:border-color .15s,color .15s,background .15s}.round-btn:hover:not(.active){border-color:var(--accent)}.round-btn.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.round-btn.done:not(.active){color:var(--text-3)}.round-badge{width:calc(18px * var(--scale));height:calc(18px * var(--scale));border-radius:5px;display:flex;align-items:center;justify-content:center;font-family:var(--font-num);font-size:calc(10px * var(--scale));font-weight:700;background:var(--border-2);color:var(--text-2);flex-shrink:0}.round-btn.active .round-badge{background:#ffffff47;color:var(--on-accent)}.round-btn.done:not(.active) .round-badge{background:var(--accent);color:var(--on-accent)}.round-badge svg{width:calc(11px * var(--scale));height:calc(11px * var(--scale))}.round-live-dot{width:calc(7px * var(--scale));height:calc(7px * var(--scale));border-radius:50%;background:var(--danger);animation:pulse 1.4s ease-in-out infinite;flex-shrink:0}.layout{padding:0 calc(22px * var(--scale));display:grid;grid-template-columns:1fr;gap:calc(20px * var(--scale))}.main-col{min-width:0}.matches-col .match-card,.matches-col .sitting-out{max-width:calc(720px * var(--scale))}.main-col .round-strip-wrap{margin-left:calc(-22px * var(--scale));margin-right:calc(-22px * var(--scale))}@media(min-width:860px)and (orientation:landscape){.page--with-standings{max-width:calc(1280px * var(--scale))}.page--with-standings .layout{grid-template-columns:minmax(0,1fr) minmax(calc(300px * var(--scale)),calc(360px * var(--scale)));align-items:start}.page--with-standings .match-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(300px * var(--scale)),1fr));align-items:start}.page--with-standings .matches-col .match-card,.page--with-standings .matches-col .sitting-out{max-width:none}.page--with-standings .main-col .round-strip-wrap{margin-left:0;margin-right:0}.page--with-standings .main-col .round-strip-wrap .round-strip-track{padding-left:0;padding-right:0}.page[data-courts="1"] .match-list,.page[data-courts="2"] .match-list,.page[data-courts="3"] .match-list{grid-template-columns:1fr}.page:not(.page--with-standings) .match-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(300px * var(--scale)),1fr));align-items:start}.page:not(.page--with-standings) .matches-col .match-card{max-width:none}.page:not(.page--with-standings) .matches-col .sitting-out{max-width:none}}.matches-col{display:flex;flex-direction:column;gap:calc(10px * var(--scale));min-width:0}.match-list{display:flex;flex-direction:column;gap:calc(10px * var(--scale))}.empty{font-size:calc(14px * var(--scale));color:var(--text-3);padding:calc(24px * var(--scale)) 0;text-align:center}.sitting-out{display:flex;align-items:center;flex-wrap:wrap;gap:calc(8px * var(--scale));padding:calc(10px * var(--scale)) calc(14px * var(--scale));background:var(--surface-2);-webkit-backdrop-filter:blur(calc(12px * var(--scale)));backdrop-filter:blur(calc(12px * var(--scale)));border:1px solid var(--border-2);border-radius:var(--r-lg);font-size:calc(12px * var(--scale));font-weight:600;color:var(--text-3)}.sitting-pills{display:flex;flex-wrap:wrap;gap:calc(6px * var(--scale))}.sitting-pill{padding:calc(3px * var(--scale)) calc(10px * var(--scale));background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-pill);font-size:calc(12px * var(--scale));font-weight:600;color:var(--text-2)}.match-card{background:var(--surface-2);-webkit-backdrop-filter:blur(calc(16px * var(--scale)));backdrop-filter:blur(calc(16px * var(--scale)));border-radius:var(--r-xxl);border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-card)}.match-header{display:flex;align-items:center;justify-content:space-between;padding:calc(9px * var(--scale)) calc(16px * var(--scale));border-bottom:1px solid var(--border-2)}.match-court{font-size:calc(10px * var(--scale));font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text-2)}.match-status{display:flex;align-items:center;gap:calc(5px * var(--scale));font-size:calc(10px * var(--scale));font-weight:600;letter-spacing:calc(.8px * var(--scale));text-transform:uppercase;padding:calc(3px * var(--scale)) calc(9px * var(--scale));border-radius:var(--r-pill)}.status-playing{background:var(--overlay);color:var(--text-3)}.status-scored{background:var(--accent);color:var(--on-accent)}.status-edited{background:var(--overlay);color:var(--text-2)}.pulse-dot{width:calc(5px * var(--scale));height:calc(5px * var(--scale));border-radius:50%;background:var(--danger);animation:pulse 1.4s ease-in-out infinite;flex-shrink:0}.match-body{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch}.team{display:flex;align-items:center;gap:calc(12px * var(--scale));padding:calc(14px * var(--scale)) calc(16px * var(--scale));min-width:0}.team-a{justify-content:space-between}.team-b{justify-content:space-between;flex-direction:row-reverse}.team.win{background:var(--accent-bg)}.team-name{display:flex;flex-direction:column;gap:calc(2px * var(--scale));min-width:0}.team-player{font-size:calc(15px * var(--scale));font-weight:600;letter-spacing:calc(-.3px * var(--scale));line-height:1.25;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-a .team-name{align-items:flex-start;text-align:left}.team-b .team-name{align-items:flex-end;text-align:right}.team-b .team-player{max-width:100%}.team.loss .team-player{color:var(--text-3);font-weight:500}.team-score{font-family:var(--font-num);font-size:calc(40px * var(--scale));font-weight:600;letter-spacing:calc(-2px * var(--scale));line-height:1;color:var(--text-3);font-variant-numeric:tabular-nums;flex-shrink:0;position:relative}.team-score.score-win{color:var(--text-1)}.team-score.score-win:after{content:"";position:absolute;left:calc(2px * var(--scale));right:calc(2px * var(--scale));bottom:calc(-5px * var(--scale));height:calc(4px * var(--scale));border-radius:calc(2px * var(--scale));background:var(--accent)}.match-vs{display:flex;align-items:center;justify-content:center;padding:0 calc(8px * var(--scale));font-size:calc(11px * var(--scale));font-weight:600;letter-spacing:calc(1.5px * var(--scale));color:var(--text-3);user-select:none}.standings-col{display:none}@media(min-width:860px)and (orientation:landscape){.page--with-standings .standings-col{display:block}}.standings-panel{background:var(--surface-2);-webkit-backdrop-filter:blur(calc(16px * var(--scale)));backdrop-filter:blur(calc(16px * var(--scale)));border-radius:var(--r-xxl);border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-card);position:sticky;top:calc(16px * var(--scale));max-height:calc(100dvh - 32px);display:flex;flex-direction:column}.standings-panel .standings-body{overflow-y:auto}.standings-head{display:flex;align-items:center;gap:calc(8px * var(--scale));padding:calc(12px * var(--scale)) calc(16px * var(--scale));font-size:calc(11px * var(--scale));font-weight:700;letter-spacing:calc(.8px * var(--scale));text-transform:uppercase;color:var(--text-3);border-bottom:1px solid var(--border-2)}.standings-head-spacer{flex:1}.blur-toggle{display:flex;align-items:center;justify-content:center;width:calc(30px * var(--scale));height:calc(30px * var(--scale));border-radius:var(--r-sm);color:var(--text-3);transition:background .15s,color .15s;position:relative;z-index:3}.blur-toggle:hover{background:var(--overlay);color:var(--text-2)}.blur-toggle:active{background:var(--accent-bg2);color:var(--accent-deep)}.standings-body{position:relative}.standings-scroll{transition:filter .25s ease}.standings-scroll.blurred{filter:blur(calc(9px * var(--scale)));pointer-events:none;user-select:none}.standings-table{width:100%;border-collapse:collapse}.standings-table thead th{padding:calc(8px * var(--scale)) calc(10px * var(--scale));font-size:calc(10px * var(--scale));font-weight:600;letter-spacing:calc(.6px * var(--scale));text-transform:uppercase;color:var(--text-3);text-align:left;border-bottom:1px solid var(--border-2);background:var(--surface-2)}.standings-table thead th:nth-child(n+3){text-align:center}.standings-table tbody tr{border-top:1px solid var(--border-2)}.standings-table tbody tr:first-child{border-top:none}.standings-table tbody tr.first-place{background:var(--accent-bg)}.standings-table tbody tr.rank-moving{position:relative;z-index:2;background-color:var(--surface)}.standings-table tbody tr.first-place.rank-moving{background-color:var(--first-moving)}.standings-table td{padding:calc(11px * var(--scale)) calc(10px * var(--scale))}.rank-cell{width:calc(40px * var(--scale));text-align:center;font-family:var(--font-num);font-size:calc(13px * var(--scale));font-weight:600;color:var(--text-3)}.rank-badge{display:inline-flex;align-items:center;justify-content:center;width:calc(26px * var(--scale));height:calc(26px * var(--scale));border-radius:var(--r-sm);background:var(--accent);color:var(--on-accent)}.rank-badge svg{width:calc(14px * var(--scale));height:calc(14px * var(--scale))}.name-cell{font-size:calc(15px * var(--scale));font-weight:500;letter-spacing:calc(-.3px * var(--scale));color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(180px * var(--scale))}.first-place .name-cell{font-weight:700;color:var(--text-1)}.record-col{text-align:center;white-space:nowrap}.record-cell{text-align:center;white-space:nowrap;font-size:calc(13px * var(--scale));font-weight:500;color:var(--text-3);letter-spacing:calc(.2px * var(--scale))}.record-cell .num{color:var(--text-2)}.pts-col,.pts-cell{width:calc(44px * var(--scale))}.pts-cell{text-align:center;font-family:var(--font-num);font-size:calc(17px * var(--scale));font-weight:700;letter-spacing:calc(-.4px * var(--scale));color:var(--text-2);font-variant-numeric:tabular-nums}.first-place .pts-cell{color:var(--accent-deep)}.standings-fab{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:20;display:inline-flex;align-items:center;gap:calc(9px * var(--scale));padding:calc(13px * var(--scale)) calc(22px * var(--scale));border-radius:var(--r-pill);background:linear-gradient(135deg,var(--accent-light),var(--accent));color:var(--on-accent);font-size:calc(15px * var(--scale));font-weight:600;letter-spacing:calc(-.2px * var(--scale));box-shadow:0 8px 24px #10b98159,0 2px 6px #1e281e1f}.standings-fab:active{transform:translate(-50%) scale(.96)}.page--with-standings{padding-bottom:calc(92px * var(--scale))}@media(min-width:860px)and (orientation:landscape){.standings-fab{display:none}.page--with-standings{padding-bottom:calc(48px * var(--scale))}}.standings-modal{border:none;padding:0;background:transparent;max-width:calc(520px * var(--scale));width:calc(100% - 32px);margin:auto;color:var(--text-1)}.standings-modal::backdrop{background:#0f191480;-webkit-backdrop-filter:blur(calc(3px * var(--scale)));backdrop-filter:blur(calc(3px * var(--scale)))}.standings-modal[open]{animation:modal-in .22s ease}@keyframes modal-in{0%{opacity:0;transform:translateY(calc(12px * var(--scale))) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.standings-modal-inner{background:var(--surface);border-radius:var(--r-card);border:1px solid var(--border-2);overflow:hidden;box-shadow:0 24px 48px #1e281e38;max-height:82dvh;display:flex;flex-direction:column}.standings-modal-head{display:flex;align-items:center;justify-content:space-between;padding:calc(16px * var(--scale)) calc(18px * var(--scale));border-bottom:1px solid var(--border-2)}.standings-modal-title{font-size:calc(17px * var(--scale));font-weight:700;letter-spacing:-.4px}.modal-close{display:flex;align-items:center;justify-content:center;width:calc(34px * var(--scale));height:calc(34px * var(--scale));border-radius:var(--r-pill);background:var(--surface-2);color:var(--text-2);transition:background .15s}.modal-close:hover{background:var(--overlay)}.standings-modal-body{overflow-y:auto}.standings-modal-body .standings-head{display:none}@media(orientation:landscape)and (max-height:520px){.topbar{padding-top:10px;padding-bottom:8px}.meta{padding-bottom:8px}.meta-name{font-size:20px}.meta-sub{margin-top:3px;font-size:12px}.round-strip-wrap{padding:6px 0 8px;margin-bottom:6px}.round-btn{height:36px;font-size:12px}.team{padding:9px 14px}.team-score{font-size:30px;letter-spacing:-1.5px}.standings-panel{top:8px;max-height:calc(100dvh - 16px)}.standings-table td{padding:7px 10px}}@media(max-width:390px){.topbar{padding-left:16px;padding-right:16px}.layout{padding:0 16px}.main-col .round-strip-wrap{margin-left:-16px;margin-right:-16px}.round-strip-track{padding:0 16px}.team{padding:12px;gap:8px}.team-score{font-size:32px;letter-spacing:-1.5px}.match-vs{padding:0 4px;font-size:10px}.name-cell{max-width:120px}}@media(prefers-reduced-motion:reduce){.live-dot,.pulse-dot,.round-live-dot,.standings-modal[open]{animation:none}.standings-scroll{transition:none}}.page-foot{padding:calc(18px * var(--scale)) 0 0;text-align:center}.page-foot-brand{font-size:calc(11px * var(--scale));font-weight:500;letter-spacing:calc(.2px * var(--scale));line-height:1.7;color:var(--text-3)}.page-foot-brand strong{font-weight:700;color:var(--text-2)}a.brand{text-decoration:none;color:inherit}.page-foot-cta{margin-top:calc(6px * var(--scale));font-size:calc(12px * var(--scale));font-weight:600}.page-foot-cta a{color:var(--accent-deep);text-decoration:none}.page-foot-cta a:hover{text-decoration:underline}.join-code{display:inline-block;padding:1px calc(7px * var(--scale));border-radius:var(--r-sm);background:var(--overlay);font-size:calc(11px * var(--scale));font-weight:700;letter-spacing:1px;color:var(--text-2);transition:background .15s,color .15s}.join-code:hover{background:var(--accent-bg2);color:var(--accent-deep)}.screen-center{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;gap:calc(12px * var(--scale));padding:calc(40px * var(--scale)) calc(24px * var(--scale));text-align:center}.screen-title{font-size:calc(18px * var(--scale));font-weight:700;color:var(--text-1)}.screen-sub{font-size:calc(14px * var(--scale));color:var(--text-3);max-width:300px;line-height:1.5}.spinner{width:calc(32px * var(--scale));height:calc(32px * var(--scale));border:3px solid var(--border-2);border-top-color:var(--accent);border-radius:50%;animation:spin .65s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
