:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#050505;--bg-elevated:#121212;--panel:#121212e0;--panel-strong:#171717;--fg:#f5f5f5;--muted:#a0a0a0;--accent:#fff;--accent-ink:#050505;--border:#ffffff24;--shadow:0 24px 80px #00000040}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f1ea;--bg-elevated:#fffef8;--panel:#ffffffe0;--panel-strong:#fbfaf5;--fg:#111;--muted:#5c5c57;--accent:#111;--accent-ink:#f7f5ee;--border:#0000001f;--shadow:0 24px 70px #1b191214}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f3f1ea;--bg-elevated:#fffef8;--panel:#ffffffe0;--panel-strong:#fbfaf5;--fg:#111;--muted:#5c5c57;--accent:#111;--accent-ink:#f7f5ee;--border:#0000001f;--shadow:0 24px 70px #1b191214}}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:radial-gradient(circle at top, #ffffff14, transparent 28%), linear-gradient(145deg, var(--bg) 0%, var(--bg-elevated) 100%);min-height:100vh;color:var(--fg);margin:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.portrait-notice{z-index:100;background:var(--bg);color:var(--fg);text-align:center;place-content:center;gap:12px;padding:24px;display:grid;position:fixed;inset:0}.portrait-notice h2,.portrait-notice p{margin:0}.portrait-notice p{color:var(--muted)}button,input,select{font:inherit}.app-shell{min-height:100vh;padding:24px}.app-frame{border:1px solid var(--border);background:var(--panel);width:min(1200px,100%);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:28px;margin:0 auto;padding:28px}.topbar{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.eyebrow,.section-tag,.panel-note{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-size:.72rem;display:inline-block}h1,h2,h3,p{margin:0}h1{margin-top:8px;font-size:clamp(2.4rem,6vw,4.8rem);line-height:.95}h2{font-size:clamp(2rem,4vw,3.2rem);line-height:.98}h3{margin-top:8px;font-size:1.35rem}.nav-actions{gap:10px;display:flex}.nav-button,.theme-chip,.secondary-button,.primary-button,.sport-card{border:1px solid var(--border);transition:transform .14s,background-color .14s,border-color .14s}.nav-button,.theme-chip,.secondary-button,.primary-button{color:var(--fg);cursor:pointer;background:0 0;border-radius:999px;padding:12px 16px}.nav-button.active,.theme-chip.active,.primary-button{background:var(--accent);color:var(--accent-ink);border-color:#0000}.nav-button:hover,.theme-chip:hover,.secondary-button:hover,.primary-button:hover,.sport-card:hover{transform:translateY(-1px)}.page-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;display:grid}.hero-card,.panel{border:1px solid var(--border);background:var(--panel-strong);border-radius:24px}.hero-card{grid-column:span 7;padding:28px}.panel{grid-column:span 5;padding:24px}.panel-wide{grid-column:span 12}.panel-wide>h2{margin-bottom:28px}.compact{min-height:220px}.lead,.panel-copy,.config-hint{max-width:48rem;color:var(--muted);margin-top:16px;line-height:1.6}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.panel-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.sport-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.sport-card{color:var(--fg);cursor:pointer;text-align:left;background:0 0;border-radius:18px;flex-direction:column;align-items:flex-start;gap:8px;padding:18px;display:flex}.sport-card.selected{background:var(--accent);color:var(--accent-ink);border-color:#0000}.sport-card span,.sport-card small{opacity:.8}.feature-list{color:var(--muted);margin:18px 0 0;padding-left:18px;line-height:1.8}.score-stage{flex-direction:column;gap:18px;display:flex}.score-topbar,.score-meta,.control-strip,.swap-row{align-items:center;gap:12px;display:flex}.score-topbar{justify-content:space-between}.score-meta{flex-wrap:wrap;justify-content:flex-end}.mode-badge{border:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.14em;border-radius:999px;padding:10px 14px;font-size:.74rem}.scoreboard{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;min-height:60vh;display:grid;position:relative}.tennis-court .scoreboard{isolation:isolate;background-color:#267548;background-image:linear-gradient(90deg,#0000 calc(50% - 2px),#fffffff2 calc(50% - 2px) calc(50% + 2px),#0000 calc(50% + 2px)),linear-gradient(0deg,#0000 calc(12.5% - 2px),#ffffffe6 calc(12.5% - 2px) calc(12.5% + 2px),#0000 calc(12.5% + 2px)),linear-gradient(0deg,#0000 calc(87.5% - 2px),#ffffffe6 calc(87.5% - 2px) calc(87.5% + 2px),#0000 calc(87.5% + 2px)),linear-gradient(145deg,#318b59,#1b633c);border:4px solid #ffffffeb;border-radius:22px;padding:12px;overflow:hidden}.tennis-court .scoreboard:before{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(90deg,#0000 calc(23.08% - 2px),#ffffffe6 calc(23.08% - 2px) calc(23.08% + 2px),#0000 calc(23.08% + 2px)),linear-gradient(90deg,#0000 calc(76.92% - 2px),#ffffffe6 calc(76.92% - 2px) calc(76.92% + 2px),#0000 calc(76.92% + 2px));position:absolute;inset:12.5% 0}.tennis-court .scoreboard:after{content:"";z-index:0;pointer-events:none;background:#ffffffe6;height:4px;position:absolute;top:calc(50% - 2px);left:23.08%;right:23.08%}.tennis-court .team-score-card{z-index:1;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#031b1294;border-color:#ffffff9e;box-shadow:0 14px 32px #0022143d}.badminton-court .scoreboard{isolation:isolate;background-color:#176aa6;background-image:linear-gradient(90deg,#0000 calc(50% - 2px),#fffffff2 calc(50% - 2px) calc(50% + 2px),#0000 calc(50% + 2px)),linear-gradient(0deg,#0000 calc(7.54% - 2px),#ffffffe6 calc(7.54% - 2px) calc(7.54% + 2px),#0000 calc(7.54% + 2px)),linear-gradient(0deg,#0000 calc(92.46% - 2px),#ffffffe6 calc(92.46% - 2px) calc(92.46% + 2px),#0000 calc(92.46% + 2px)),linear-gradient(145deg,#2b86c5,#0e4f87);border:4px solid #ffffffeb;border-radius:22px;padding:12px;overflow:hidden}.badminton-court .scoreboard:before{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(90deg,#0000 calc(5.67% - 2px),#ffffffe6 calc(5.67% - 2px) calc(5.67% + 2px),#0000 calc(5.67% + 2px)),linear-gradient(90deg,#0000 calc(35.22% - 2px),#ffffffe6 calc(35.22% - 2px) calc(35.22% + 2px),#0000 calc(35.22% + 2px)),linear-gradient(90deg,#0000 calc(64.78% - 2px),#ffffffe6 calc(64.78% - 2px) calc(64.78% + 2px),#0000 calc(64.78% + 2px)),linear-gradient(90deg,#0000 calc(94.33% - 2px),#ffffffe6 calc(94.33% - 2px) calc(94.33% + 2px),#0000 calc(94.33% + 2px));position:absolute;inset:0}.badminton-court .scoreboard:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg,#ffffffe6 0 35.22%,#0000 35.22% 64.78%,#ffffffe6 64.78% 100%);height:4px;position:absolute;top:calc(50% - 2px);left:0;right:0}.badminton-court .team-score-card{z-index:1;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#0319308f;border-color:#ffffff9e;box-shadow:0 14px 32px #001f3d42}.team-score-card,.score-divider{border:1px solid var(--border);background:var(--panel-strong);border-radius:26px}.team-score-card{flex-direction:column;justify-content:space-between;min-height:460px;padding:18px;display:flex;position:relative}.team-score-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.serve-indicator{z-index:1;border:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;border-radius:9px;padding:6px 8px;font-size:.62rem;position:absolute;right:10px}.serve-indicator.active{background:var(--accent);color:var(--accent-ink);border-color:#0000}.serve-indicator.top{top:18px}.serve-indicator.bottom{bottom:18px}.player-marker{z-index:2;color:#fff;background:#0000009e;border:1px solid #ffffff4d;border-radius:12px;align-items:center;gap:8px;max-width:48%;padding:8px 12px;font-size:clamp(1rem,2.4vw,2rem);line-height:1;display:flex;position:absolute}.player-marker.edge-left{left:14px}.player-marker.edge-right{right:14px}.player-marker strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-marker small{color:#fff;letter-spacing:.08em;text-transform:uppercase;background:#111;border-radius:6px;padding:4px 6px;font-size:.58em}.player-marker.serving{color:#111;background:#fff;border-color:#fff;box-shadow:0 0 0 4px #ffffff2e}.player-marker.top{top:58px}.player-marker.bottom{bottom:18px}.game-score-button,.point-score-button{width:100%;color:var(--fg);cursor:pointer;background:0 0;border:0}.game-score-button{min-height:100px;color:var(--muted);font-size:clamp(2rem,6vw,4rem)}.point-score-button{flex:1;min-height:260px;font-size:clamp(7rem,20vw,16rem);line-height:.9}:is(.tennis-court,.badminton-court,.padel-court,.table-tennis-court,.pickleball-court) .point-score-button{color:#fff}:is(.tennis-court,.badminton-court,.padel-court,.table-tennis-court,.pickleball-court) .game-score-button{color:#ffffffc2}:is(.tennis-court,.badminton-court,.padel-court,.table-tennis-court,.pickleball-court) .team-score-header .section-tag{color:#ffffffbd}:is(.tennis-court,.badminton-court,.padel-court,.table-tennis-court,.pickleball-court) .serve-indicator.active{color:#111;background:#fff}.score-divider{text-transform:uppercase;letter-spacing:.18em;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:.78rem;display:flex}.score-divider strong{color:var(--fg);font-size:1rem}.score-divider small{letter-spacing:.08em;font-size:.7rem}.control-strip{flex-wrap:wrap}.swap-row{justify-content:center}.win-overlay{text-align:center;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.flash-banner{z-index:20;color:#fff;text-align:center;text-shadow:0 8px 32px #000000b3;text-transform:uppercase;letter-spacing:.04em;pointer-events:none;background:#000000d1;justify-content:center;align-items:center;padding:clamp(24px,6vw,80px);font-size:clamp(4rem,18vw,14rem);font-weight:900;line-height:.9;display:flex;position:fixed;inset:0}.win-overlay{z-index:10;color:#111;cursor:pointer;background:radial-gradient(circle at top,#ffffff2e,#0000 35%),linear-gradient(135deg,#ffc83ceb,#ff6e32eb);border:0;border-radius:0;flex-direction:column;gap:12px;position:fixed}.win-overlay span{text-transform:uppercase;letter-spacing:.08em;font-size:clamp(3rem,10vw,7rem);font-weight:700}.win-overlay small{font-size:1rem}.confetti{top:-64px;left:var(--confetti-left);background:var(--confetti-color);width:12px;height:28px;animation:confetti-fall var(--confetti-duration) linear var(--confetti-delay) infinite;border-radius:3px;position:absolute}@keyframes confetti-fall{0%{transform:translateX(0) rotate(var(--confetti-rotation))}to{transform:translate(var(--confetti-drift), calc(100vh + 96px)) rotate(calc(var(--confetti-rotation) + 540deg))}}.padel-court .scoreboard{isolation:isolate;background-color:#bd3d78;background-image:linear-gradient(90deg,#0000 calc(50% - 2px),#f0f9fff2 calc(50% - 2px) calc(50% + 2px),#0000 calc(50% + 2px)),linear-gradient(90deg,#0000 calc(15.25% - 2px),#f0f9ffe6 calc(15.25% - 2px) calc(15.25% + 2px),#0000 calc(15.25% + 2px)),linear-gradient(90deg,#0000 calc(84.75% - 2px),#f0f9ffe6 calc(84.75% - 2px) calc(84.75% + 2px),#0000 calc(84.75% + 2px)),linear-gradient(145deg,#df5d98,#982d61);border:5px solid #ffcde7e6;border-radius:22px;padding:12px;overflow:hidden;box-shadow:inset 0 0 0 4px #4a0d2b4d,inset 0 22px 38px #ffdcee17}.padel-court .scoreboard:after{content:"";z-index:0;pointer-events:none;background:#f0f9ffe6;height:4px;position:absolute;top:calc(50% - 2px);left:15.25%;right:15.25%}.padel-court .team-score-card{z-index:1;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#34071f91;border-color:#ffd5eaa6;box-shadow:0 14px 32px #42042447}.table-tennis-court .scoreboard{isolation:isolate;background-color:#07366f;background-image:linear-gradient(90deg,#0000 calc(50% - 3px),#e1f0fffa calc(50% - 3px) calc(50% + 3px),#0000 calc(50% + 3px)),linear-gradient(0deg,#0000 calc(50% - 1px),#e1f0ffb8 calc(50% - 1px) calc(50% + 1px),#0000 calc(50% + 1px)),linear-gradient(145deg,#0b4e96,#042755);border:5px solid #e0effff0;border-radius:22px;padding:12px;overflow:hidden;box-shadow:inset 0 0 0 3px #01102461,inset 0 20px 40px #a8d2ff0f}.table-tennis-court .team-score-card{z-index:1;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#01112894;border-color:#cde4ff9e;box-shadow:0 14px 32px #00122b4d}.pickleball-court .scoreboard{isolation:isolate;background-color:#176bb0;background-image:linear-gradient(90deg,#0000 calc(50% - 2px),#fffffff5 calc(50% - 2px) calc(50% + 2px),#0000 calc(50% + 2px)),linear-gradient(90deg,#0000 calc(34.09% - 2px),#ffffffeb calc(34.09% - 2px) calc(34.09% + 2px),#0000 calc(34.09% + 2px)),linear-gradient(90deg,#0000 calc(65.91% - 2px),#ffffffeb calc(65.91% - 2px) calc(65.91% + 2px),#0000 calc(65.91% + 2px)),linear-gradient(90deg,#227fc6 0 34.09%,#ed842f 34.09% 65.91%,#227fc6 65.91% 100%);border:4px solid #fffffff0;border-radius:22px;padding:12px;overflow:hidden;box-shadow:inset 0 0 0 3px #04254442,inset 0 20px 40px #ffffff0f}.pickleball-court .scoreboard:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg,#ffffffe6 0 34.09%,#0000 34.09% 65.91%,#ffffffe6 65.91% 100%);height:4px;position:absolute;top:calc(50% - 2px);left:0;right:0}.pickleball-court .team-score-card{z-index:1;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#021b348f;border-color:#e0efffa3;box-shadow:0 14px 32px #00193447}.theme-switcher{flex-wrap:wrap;gap:10px;margin:24px 0;display:flex}.lineup-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:22px;display:grid}.lineup-slot{border:1px solid var(--border);background:var(--panel-strong);border-radius:16px;gap:8px;padding:16px;display:grid}.lineup-slot span,.first-serve-fieldset legend{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem}.lineup-slot select,.roster-row input,.roster-add input{border:1px solid var(--border);background:var(--bg-elevated);width:100%;min-height:48px;color:var(--fg);border-radius:12px;padding:10px 12px}.first-serve-fieldset{border:1px solid var(--border);border-radius:16px;gap:10px;margin:18px 0 0;padding:14px;display:flex}.first-serve-fieldset legend{padding:0 6px}.start-match-button{width:100%;margin-top:18px}.start-match-button:disabled,.roster-row button:disabled{cursor:not-allowed;opacity:.45}.roster-list{gap:10px;margin-top:18px;display:grid}.roster-row,.roster-add{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.roster-add{margin-top:14px}.form-error{color:#ff8b7d;margin:12px 0 0}.mapping-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.mapping-field{border:1px solid var(--border);background:#ffffff05;border-radius:18px;flex-direction:column;gap:8px;padding:14px;display:flex}.mapping-field span{min-height:2.5em;color:var(--muted);font-size:.92rem;line-height:1.35}.mapping-field input{width:100%}.binding-button{border:1px solid var(--border);width:100%;min-height:52px;color:var(--fg);cursor:pointer;text-transform:uppercase;background:0 0;border-radius:12px;padding:12px 14px}.binding-button.listening{background:var(--accent);color:var(--accent-ink);border-color:#0000}.binding-button:focus-visible,.nav-button:focus-visible,.theme-chip:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.sport-card:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.competition-list,.match-list,.court-grid{gap:14px;display:grid}.competitions-page>.panel+.panel{margin-top:0}.competition-card{border:1px solid var(--border);background:#ffffff05;border-radius:18px;justify-content:space-between;align-items:center;gap:20px;padding:18px;display:flex}.competition-card h3{margin:6px 0}.competition-card p,.empty-state,.format-fieldset p{color:var(--muted);line-height:1.5}.competition-card-actions,.dashboard-actions,.form-actions,.match-actions{flex-wrap:wrap;gap:10px;display:flex}.danger-button{color:#ff8b7d;border-color:#ff8b7d5c}.match-alert,.match-error{grid-column:1/-1;margin:0}.match-alert{color:#ffd166}.competition-form>h2{margin:8px 0 24px}.competition-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-field,.result-editor label{gap:8px;display:grid}.form-field-wide{grid-column:1/-1}.form-field>span,.result-editor label>span,.format-fieldset legend,.player-select-fieldset legend{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.76rem}.form-field input,.inline-player-form input,.inline-player-form select,.result-editor input,.result-editor select{border:1px solid var(--border);background:var(--bg-elevated);width:100%;min-height:48px;color:var(--fg);border-radius:12px;padding:10px 12px}.format-fieldset,.player-select-fieldset{border:1px solid var(--border);border-radius:16px;margin:0;padding:16px}.format-fieldset .theme-chip{margin:8px 8px 8px 0}.format-fieldset p{margin-top:4px}.player-select-fieldset{margin-top:18px}.player-check-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:8px;display:grid}.player-check{border:1px solid var(--border);min-height:48px;color:var(--muted);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:12px;display:flex}.player-check.selected{border-color:var(--fg);color:var(--fg);background:#ffffff0f}.form-actions{justify-content:flex-end;margin-top:20px}.competition-dashboard{grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;display:grid}.competition-hero,.player-manager-panel,.now-playing-panel,.standings-panel,.match-history-panel{grid-column:1/-1}.competition-hero{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.dashboard-actions{justify-content:flex-end}.stop-notice{color:#ffcb69;margin:12px 0 0}.standings-note{margin:0 0 14px}.provisional-badge{color:#ffcb69;letter-spacing:.04em;text-transform:uppercase;border:1px solid #ffcb696b;border-radius:999px;padding:4px 7px;font-size:.66rem;display:inline-flex}.late-player-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.inline-player-form{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.availability-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.availability-player{border:1px solid var(--border);min-height:46px;color:var(--muted);cursor:pointer;border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px 12px;display:grid}.availability-player.available{color:var(--fg);background:#ffffff0d}.availability-player small{color:var(--accent);letter-spacing:.05em;text-transform:uppercase;font-size:.68rem}.court-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}.waiting-court{border:1px dashed var(--border);min-height:108px;color:var(--muted);border-radius:16px;gap:10px;padding:18px;display:grid}.secondary-button:disabled,.primary-button:disabled{cursor:not-allowed;opacity:.42;transform:none}.standings-scroll{overflow-x:auto}.standings-table{border-collapse:collapse;white-space:nowrap;width:100%}.standings-table th,.standings-table td{border-bottom:1px solid var(--border);text-align:right;padding:11px 10px}.standings-table th:nth-child(2),.standings-table td:nth-child(2){text-align:left}.standings-table thead th{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem}.match-card{border:1px solid var(--border);background:#ffffff05;border-radius:16px;grid-template-columns:minmax(76px,auto) minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px;display:grid}.match-card.completed{background:#ffffff0d}.match-card.active-match{border-color:color-mix(in srgb, var(--accent) 58%, var(--border))}.court-grid .match-card{grid-template-columns:minmax(76px,auto) minmax(0,1fr)}.court-grid .match-actions{grid-column:1/-1}.match-location{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;gap:3px;font-size:.72rem;display:grid}.match-pairing{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;display:grid}.match-pairing strong:last-child{text-align:right}.match-pairing span{min-width:56px;color:var(--muted);text-align:center;font-size:1.1rem}.result-editor{border-top:1px solid var(--border);grid-column:1/-1;grid-template-columns:minmax(90px,130px) auto minmax(90px,130px) auto auto auto;align-items:end;gap:10px;padding-top:14px;display:grid}.result-editor>strong,.result-total{color:var(--muted);align-self:center}.result-editor .form-error{grid-column:1/-1}@media (width<=980px){.hero-card,.panel,.panel-wide{grid-column:span 12}.mapping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scoreboard{grid-template-columns:1fr}.score-divider{min-height:96px}.player-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.competition-hero,.competition-card{flex-direction:column;align-items:stretch}.dashboard-actions,.competition-card-actions{justify-content:flex-start}.match-card{grid-template-columns:minmax(70px,auto) minmax(0,1fr)}.match-actions{grid-column:1/-1}.result-editor{grid-template-columns:minmax(90px,1fr) auto minmax(90px,1fr) auto}.late-player-grid{grid-template-columns:1fr}}@media (width<=720px){.app-shell{padding:14px}.app-frame,.hero-card,.panel{border-radius:20px;padding:18px}.topbar,.panel-heading,.score-topbar{flex-direction:column}.nav-actions,.theme-switcher,.hero-actions,.control-strip,.score-meta{width:100%}.nav-button,.theme-chip,.primary-button,.secondary-button,.mode-badge{flex:auto}.mapping-grid,.lineup-grid{grid-template-columns:1fr}.sport-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-actions{flex-wrap:wrap}.competition-form-grid,.player-check-grid,.availability-grid{grid-template-columns:1fr}.competition-card-actions>*,.dashboard-actions>*,.form-actions>*,.match-actions>*{flex:auto}.match-card,.match-pairing{grid-template-columns:1fr}.match-pairing strong,.match-pairing strong:last-child,.match-pairing span{text-align:left}.match-actions,.result-editor{grid-column:auto}.result-editor{grid-template-columns:1fr auto 1fr}.result-editor .primary-button,.result-editor .secondary-button,.result-editor .form-error{grid-column:1/-1}.team-score-card{min-height:320px}.point-score-button{min-height:180px;font-size:clamp(5rem,22vw,9rem)}}@media (orientation:landscape) and (width<=980px){.app-shell{padding:10px}.app-frame{border-radius:18px;padding:12px}.topbar{flex-direction:row;align-items:center;margin-bottom:10px;display:flex}.topbar .nav-actions{width:auto}.score-stage{gap:10px}.score-topbar{flex-direction:row;align-items:center}.score-meta{width:auto}.scoreboard{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0}.team-score-card{min-height:190px;padding:12px}.score-divider{min-height:0}.serve-indicator.top{top:12px}.serve-indicator.bottom{bottom:12px}.player-marker{border-radius:9px;padding:6px 8px;font-size:clamp(.9rem,2.5vw,1.35rem)}.player-marker.edge-left{left:10px}.player-marker.edge-right{right:10px}.player-marker.top{top:48px}.player-marker.bottom{bottom:12px}.game-score-button{min-height:52px;font-size:clamp(1.6rem,5vw,3rem)}.point-score-button{min-height:100px;font-size:clamp(5rem,18vw,10rem)}.control-strip{gap:8px;width:100%}.control-strip .secondary-button,.score-meta .secondary-button,.mode-badge{padding:8px 10px;font-size:.82rem}}
