:root{--color-primary: #155eef;--color-primary-hover: #0b4dcc;--color-secondary: #7446d7;--color-accent: #17a8d8;--gradient-brand: linear-gradient(135deg, #155eef 0%, #7446d7 100%);--color-surface: #ffffff;--color-background: #f2f5ff;--color-text: #172033;--color-muted: #5d6679;--color-border: #ccd3e3;--color-success: #087a55;--color-warning: #9a5b00;--color-danger: #b42318;--color-on-primary: #ffffff;--ink: var(--color-text);--muted: var(--color-muted);--surface: var(--color-surface);--bg: var(--color-background);--primary: var(--color-primary);--primary-dark: var(--color-primary-hover);--accent: var(--color-accent);--amber: #9a5b00;--amber-bg: #fff4d6;--danger: #b42318;--danger-bg: #ffebe9;--line: var(--color-border);--space-1: .35rem;--space-2: .65rem;--space-3: 1rem;--space-4: 1.4rem;--space-5: 2rem;--radius: 14px;--shadow: 0 5px 20px rgba(16, 35, 27, .08);--text-sm: .82rem;--text-base: 1rem;--text-lg: 1.25rem;--button-height: 48px;--max-width: 780px;color:var(--ink);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}.pwa-banner,.pwa-toast,.pwa-hint{padding:.8rem 1rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);box-shadow:var(--shadow)}.pwa-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem}.pwa-toast{border-color:var(--color-primary);color:var(--color-primary-hover)}.pwa-hint{color:var(--color-muted)}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding-bottom:calc(88px + env(safe-area-inset-bottom))}.topbar{position:sticky;z-index:10;top:0;display:flex;align-items:center;gap:var(--space-3);min-height:60px;padding:.5rem max(1rem,calc((100vw - var(--max-width)) / 2));border-bottom:1px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.topbar strong{font-size:1.05rem}.topbar__spacer{margin-left:auto}.brand-mark{display:grid;width:40px;height:40px;place-items:center;border-radius:11px;color:var(--color-on-primary);background:var(--gradient-brand);font-weight:850;letter-spacing:-.05em}.brand-mark--large{width:64px;height:64px;margin:auto;border-radius:18px;font-size:1.35rem}.icon-button{flex:0 0 44px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:1.4rem}.icon-button:focus-visible,.button:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #82b7ff;outline-offset:2px}.page{display:flex;width:min(100% - 2rem,var(--max-width));margin:auto;padding:var(--space-4) 0;flex-direction:column;gap:var(--space-3)}h1,h2,p{margin-top:0}h1{margin-bottom:.4rem;font-size:clamp(1.65rem,7vw,2.4rem);line-height:1.1}h2{margin-bottom:.65rem;font-size:var(--text-lg)}p{color:var(--muted);line-height:1.5}.hero{display:grid;min-height:44vh;place-items:center;align-content:center;text-align:center}.hero .button{width:min(100%,320px);margin-top:1rem}.alpha-note{max-width:34rem;margin-top:1rem;font-size:var(--text-sm)}.alpha-information{display:grid;padding-left:1.25rem;gap:.75rem;color:var(--color-muted);line-height:1.5}.card{padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.resume-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.resume-card h2{margin:.75rem 0 .25rem}.resume-card p{margin-bottom:.25rem}.button{min-height:var(--button-height);padding:.7rem 1rem;border:1px solid transparent;border-radius:12px;font-weight:750}.button:disabled{cursor:not-allowed;opacity:.45}.button--primary{color:var(--color-on-primary);background:var(--gradient-brand)}.button--primary:hover{background:linear-gradient(135deg,var(--color-primary-hover),#6335c4)}.button--secondary{border-color:var(--primary);color:var(--primary-dark);background:#fff}.button--ghost{color:var(--primary-dark);background:transparent}.button--danger{color:#fff;background:var(--danger)}.bottom-bar{position:fixed;z-index:20;right:0;bottom:0;left:0;display:flex;justify-content:center;gap:.6rem;padding:.7rem max(1rem,calc((100vw - var(--max-width)) / 2)) calc(.7rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffffffa}.bottom-bar .button{flex:1;max-width:320px}.field{display:grid;margin:0 0 var(--space-4);gap:.45rem;border:0;padding:0}.field>span,.field legend{font-weight:700}.field input,.field select,.player-row input{width:100%;min-height:46px;padding:.65rem .8rem;border:1px solid #9bafa6;border-radius:10px;background:#fff}.stepper{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);font-weight:700}.stepper>div{display:flex;align-items:center;gap:.8rem}.stepper button,.round-nav button,.chips button{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:10px;background:#fff}.stepper output{min-width:2ch;text-align:center;font-size:1.2rem}.segmented{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;border-radius:12px;background:#e7ebf8}.segmented button{min-height:44px;border:0;border-radius:9px;background:transparent}.segmented button[aria-pressed=true]{color:var(--color-on-primary);background:var(--gradient-brand);font-weight:750}.chips{display:flex;flex-wrap:wrap;gap:.5rem}.chips button,.chips span{display:grid;min-height:40px;padding:.5rem .75rem;place-items:center;border:1px solid var(--line);border-radius:999px;background:#fff}.chips button{min-height:44px}.chips button.selected{border-color:var(--primary);color:#fff;background:var(--gradient-brand)}.custom-target{max-width:180px;margin-top:.75rem}.alert{padding:.85rem 1rem;border-left:5px solid var(--amber);border-radius:10px;color:#603c00;background:var(--amber-bg);line-height:1.4}.alert--danger{border-color:var(--danger);color:#7a1a12;background:var(--danger-bg)}.badge{display:inline-flex;padding:.28rem .6rem;border-radius:999px;font-size:var(--text-sm);font-weight:800}.badge--positive{color:#07583d;background:#d9f4e8}.badge--warning{color:#754500;background:#ffedbd}.badge--neutral{background:#e6ece9}.badge--danger{color:#831b12;background:var(--danger-bg)}.demo-toggle,.demo-controls label{display:flex;align-items:center;gap:.55rem;color:var(--muted);font-size:var(--text-sm)}.quick-add{display:grid;grid-template-columns:1fr auto;align-items:end;gap:.6rem}.quick-add .field{margin:0}.stats-strip{padding:.75rem;border-radius:10px;color:#243b78;background:#e5ebff;font-size:var(--text-sm);line-height:1.6}.player-list{display:grid;width:min(100%,680px);gap:0;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.player-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto 44px;align-items:center;gap:.5rem;min-height:58px;padding:.35rem .5rem;border-bottom:1px solid var(--color-border)}.player-row:last-child{border-bottom:0}.player-number{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:#e7ebf8;font-weight:800}.player-row .check{display:flex;align-items:center;gap:.3rem;min-height:44px;font-size:var(--text-sm)}.player-row .check input{width:20px;height:20px}.player-row input[type=text],.player-row>input{min-width:0;border-color:transparent;background:transparent}.player-menu{width:44px;height:44px;border:0;border-radius:50%;color:var(--color-muted);background:transparent;font-size:1.35rem}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.stats-grid span{display:flex;flex-direction:column}.stats-grid strong{font-size:1.15rem}.text-danger{min-height:44px;border:0;color:var(--danger);background:transparent;font-weight:700}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.review-grid span{color:var(--muted)}.review-grid strong{text-align:right}.compact-players{display:flex;flex-wrap:wrap;gap:.55rem}.compact-players span{padding:.4rem .7rem;border-radius:99px;background:#edf3f0}.button-row{display:flex;flex-wrap:wrap;gap:.6rem}.round-summary{display:flex;align-items:center;gap:1rem}.round-summary .button{margin-left:auto}.eyebrow{margin:0;color:var(--primary-dark);font-size:var(--text-sm);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.round-nav{display:flex;align-items:center;justify-content:center;gap:1.5rem}.round-selector{display:flex;gap:.25rem;max-width:min(70vw,420px);overflow-x:auto;scrollbar-width:thin}.round-pill{display:grid;place-items:center;flex:0 0 44px;padding:.25rem;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.round-pill[aria-pressed=true]{border:2px solid var(--primary);font-weight:800}.round-pill i{width:7px;height:7px;border-radius:50%;background:var(--muted)}.round-pill--completed span{font-weight:800}.round-pill--complete i{background:var(--success)}.round-pill--partial i,.round-pill--current i{background:var(--warning)}.round-pill--future i{border:1px solid var(--muted);background:transparent}.court-card{padding:0;overflow:hidden}.court-head{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;border-bottom:1px solid var(--line)}.court-head h2{margin:0}.match{display:grid;width:100%;min-height:112px;padding:.65rem;border:0;background:#fff;grid-template-columns:minmax(0,1fr) 112px minmax(0,1fr);align-items:center;gap:.7rem;text-align:left}.match-team{min-width:0;min-height:44px;padding:.5rem;border:0;border-radius:12px;background:transparent;text-align:left}.match-team:last-child{text-align:right}.match-team:hover,.match-team:focus-visible{background:var(--surface-soft);outline:2px solid var(--primary)}.match>span:last-child{text-align:right}.match small,.match strong{display:block}.match small{margin-bottom:.3rem;color:var(--muted)}.match-score{padding:.55rem;border-radius:10px;color:var(--primary-dark);background:#e1f1ea;font-size:1.1rem;font-weight:850;text-align:center}.pending-score{display:inline-flex;align-items:center;gap:.25rem}.pending-score button{min-width:44px;min-height:44px;border:0;border-radius:8px;color:inherit;background:transparent;font:inherit;cursor:pointer}.resting-unavailable{border-color:#b7791f!important;color:#744210!important;background:#fff3cd!important}.field-error{color:var(--danger)}.arrival-card{border-color:#e1b75c;background:#fffaf0}.demo-controls{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border:1px dashed var(--line);border-radius:10px}.ranking-table{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.ranking-head,.ranking-row{display:grid;grid-template-columns:40px minmax(110px,1.6fr) repeat(3,minmax(62px,1fr));align-items:center;gap:.5rem;padding:.75rem}.ranking-head{color:var(--muted);background:#e3ede8;font-size:.75rem;font-weight:800}.ranking-row{border-top:1px solid var(--line)}.supporting{font-size:.9rem}.manage-row,.setting-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 0;border-top:1px solid var(--line)}.manage-row span,.manage-row small{display:block}.action-menu{position:relative}.action-menu summary{display:grid;width:44px;height:44px;place-items:center;border-radius:50%;cursor:pointer;font-size:1.35rem;list-style:none}.action-menu summary::-webkit-details-marker{display:none}.action-menu div{position:absolute;z-index:8;right:0;display:grid;min-width:210px;padding:.35rem;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);box-shadow:var(--shadow)}.action-menu button{min-height:46px;padding:.5rem .75rem;border:0;background:transparent;text-align:left}.manage-row small{margin-top:.2rem;color:var(--muted)}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.metric-grid div{display:flex;flex-direction:column}.metric-grid strong{font-size:1.5rem}.metric-grid span{color:var(--muted)}.final-hero{text-align:center}.podium{display:grid;grid-template-columns:1fr 1.25fr 1fr;align-items:end;gap:.6rem}.podium .card{display:flex;min-height:110px;flex-direction:column;justify-content:center;text-align:center}.podium-first{min-height:145px!important;border-color:#e3b23c;background:#fff9e8}.podium-place{display:grid;width:42px;height:42px;margin:0 auto .4rem;place-items:center;border-radius:50%;color:var(--color-on-primary);background:var(--gradient-brand);font-size:1.35rem;font-weight:900}.diagnostic-card{text-align:center}.diagnostic-card ul{display:inline-grid;gap:.55rem;margin-bottom:.9rem;text-align:left}.file-icon{display:grid;width:74px;height:86px;margin:0 auto 1rem;place-items:center;border:2px solid var(--primary);border-radius:8px;color:var(--primary);font-weight:900}.switch{position:relative;display:inline-flex}.switch input{position:absolute;opacity:0}.switch span{width:52px;height:30px;border-radius:99px;background:#9caaa4}.switch span:after{display:block;width:24px;height:24px;margin:3px;border-radius:50%;background:#fff;content:"";transition:transform .15s}.switch input:checked+span{background:var(--primary)}.switch input:checked+span:after{transform:translate(22px)}.modal-backdrop{position:fixed;z-index:50;inset:0;display:grid;align-items:end;background:#0618118c}.sheet{width:min(100%,560px);margin:0 auto;padding:1rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:#fff;box-shadow:0 -10px 40px #0003}.sheet-handle{width:48px;height:5px;margin:0 auto 1rem;border-radius:10px;background:#a7b5af}.score-editor{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:1rem;margin:1.5rem 0}.score-editor label{display:grid;gap:.4rem;text-align:center}.score-editor input,.score-editor output{display:grid;width:100%;height:72px;place-items:center;border:2px solid var(--primary);border-radius:14px;background:#fff;font-size:2rem;font-weight:850;text-align:center}.sheet-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.sheet-danger{width:100%;margin-top:.5rem}.inline-confirm{margin-top:.75rem;padding:.75rem;border:1px solid var(--color-danger);border-radius:10px;background:var(--danger-bg)}.inline-confirm p{margin-bottom:.6rem;color:#7a1a12}.score-sheet{max-height:min(92vh,760px);overflow-y:auto}.team-select{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.team-select button{display:grid;min-height:68px;padding:.6rem;border:2px solid var(--color-border);border-radius:12px;color:var(--color-text);background:var(--color-surface);text-align:left}.team-select button[aria-pressed=true]{border-color:var(--color-primary);background:#e8eeff;box-shadow:inset 0 0 0 1px var(--color-primary)}.team-select strong{margin-top:.25rem}.result-preview{display:grid;gap:.35rem;margin:1rem 0;padding:.85rem;border-radius:12px;background:#edf1ff;text-align:center}.result-preview strong{font-size:1.05rem}.result-preview b{color:var(--color-primary);font-size:1.3rem}.result-preview span{color:var(--color-muted);font-size:var(--text-sm)}.score-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.45rem;margin-bottom:1rem}.score-grid button{min-width:0;min-height:46px;border:1px solid var(--color-border);border-radius:10px;color:var(--color-text);background:var(--color-surface);font-weight:750}.score-grid button[aria-pressed=true]{border-color:transparent;color:var(--color-on-primary);background:var(--gradient-brand)}.numeric-score input{font-size:1.25rem}.select-all{min-height:44px;margin-bottom:.5rem;border:0;color:var(--color-primary);background:transparent;font-weight:750}.saved-player-list{display:grid;max-height:320px;margin-bottom:1rem;overflow-y:auto;border-block:1px solid var(--color-border)}.saved-player-list label{display:flex;align-items:center;justify-content:space-between;min-height:52px;gap:1rem;border-bottom:1px solid var(--color-border)}.saved-player-list label:last-child{border:0}.saved-player-list small{display:block;color:var(--color-muted)}.saved-player-list input{width:22px;height:22px}.saved-player-list .is-added{opacity:.55}@media(max-width:600px){.pwa-banner,.resume-card{align-items:stretch;flex-direction:column}.quick-add{grid-template-columns:1fr 1fr}.quick-add .field{grid-column:1/-1}.player-row{grid-template-columns:28px minmax(0,1fr) auto 40px;gap:.25rem}.stats-grid{grid-template-columns:1fr 1fr}.score-grid{grid-template-columns:repeat(6,1fr);gap:.3rem}.score-grid button{min-height:44px;padding:.25rem}.ranking-head,.ranking-row{grid-template-columns:34px minmax(90px,1.5fr) 58px 44px}.ranking-head>*:nth-child(n+5),.ranking-row>*:nth-child(n+5){display:none}.match{min-height:170px;grid-template-columns:1fr 70px 1fr}.button-row .button{flex:1}.round-summary{align-items:flex-start;flex-wrap:wrap}.round-summary .button{margin-left:0}.bottom-bar{gap:.35rem}.bottom-bar .button{padding:.6rem .5rem;font-size:.88rem}.podium{gap:.35rem}.podium .card{padding:.65rem;font-size:.8rem}}@media(min-width:768px){.page{padding-top:2rem}.court-card,.arrival-card{width:100%}.app-shell[data-screen=players] .page,.app-shell[data-screen=create] .page{max-width:720px}.app-shell[data-screen=round] .page{display:grid;grid-template-columns:1fr 1fr}.app-shell[data-screen=round] .round-summary,.app-shell[data-screen=round] .round-nav,.app-shell[data-screen=round] .alert,.app-shell[data-screen=round] .demo-controls{grid-column:1/-1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
