:root{color-scheme:dark;--bg:#10171b;--panel:#192328;--panel-raised:#243238;--paper:#f3f4e9;--muted:#a2b2b9;--line:#34454d;--accent:#c9f266;--focus:#c9f266;--accent-ink:#182317;--soft:#122026;--hover:#2a3c43;--input:#101b20;--chart-grid:#617881;--home:#bce884;--away:#f09a85;--home-text:var(--home);--away-text:var(--away);--error:#ffb4a5;--error-bg:#3e2626;--notice:#c9dfaa;--notice-bg:#223020;--overlay:#071016d9;--shadow:0 24px 90px #0005;--font:'DM Sans',Arial,sans-serif;--display:'Barlow Condensed','Arial Narrow',sans-serif}
html[data-theme=light]{color-scheme:light;--bg:#f4f6f8;--panel:#fff;--panel-raised:#edf2f5;--paper:#17252d;--muted:#52626b;--line:#d6dfe4;--accent:#bbec5f;--focus:#3c681a;--accent-ink:#17270c;--soft:#f1f5f7;--hover:#e4ecef;--input:#fff;--chart-grid:#b4c4cc;--error:#a32222;--error-bg:#fff0ec;--notice:#34551e;--notice-bg:#eff8e5;--overlay:#263c4b99;--shadow:0 24px 80px #23384726}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--paper);font:16px/1.5 var(--font);-webkit-font-smoothing:antialiased}body{overscroll-behavior-y:contain}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;touch-action:manipulation}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button:focus:not(:focus-visible){outline:0}a{color:inherit;text-decoration:none}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}button svg{pointer-events:none}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}h1,h2,h3,p{margin:0}[hidden]{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.eyebrow{font-size:13px;line-height:1.5;letter-spacing:.09em;font-weight:700;color:var(--muted);text-transform:uppercase}.app-shell{width:min(100%,1440px);margin:auto;min-height:100vh;min-height:100dvh;padding:0 40px 116px}.app-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;border-bottom:1px solid var(--line);gap:20px;padding:22px 0}.brand{display:inline-flex;align-items:center;gap:10px;width:max-content;line-height:1}.brand-ball{color:var(--accent);width:42px;height:42px;stroke-width:1.2;transform:rotate(-15deg)}html[data-theme=light] .brand-ball{color:#486c1a}.brand>span{display:flex;flex-direction:column;gap:4px;font-size:13px;letter-spacing:.07em}.brand strong{font-size:26px;font-weight:750;letter-spacing:-.05em}.brand-dot{color:var(--accent)}html[data-theme=light] .brand-dot{color:#547b20}.view-switch{display:flex;background:var(--soft);border:1px solid var(--line);padding:4px;border-radius:12px;gap:3px;justify-self:center}.view-switch button{display:flex;gap:8px;align-items:center;justify-content:center;min-width:115px;min-height:46px;padding:10px 17px;border:0;background:none;border-radius:8px;color:var(--muted);font-size:15px;font-weight:650;transition:.2s}.view-switch button svg{width:19px;height:19px}.view-switch button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;min-width:46px;min-height:46px;flex-shrink:0;padding:10px;border:1px solid var(--line);background:var(--panel);border-radius:10px;color:var(--paper)}.theme-toggle:hover{background:var(--hover)}.theme-toggle svg{width:24px;height:24px;flex:none}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px}.connection{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:var(--muted);margin-right:7px;white-space:nowrap}.connection i,.dock-status:before{display:block;width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}.connection.connecting i{background:#b9a650}.connection.offline i{background:var(--error)}.connection.offline{color:var(--error)}html[data-theme=light] .connection:not(.offline):not(.connecting) i{background:#477723}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;min-width:44px;min-height:44px;background:transparent;border:1px solid transparent;border-radius:10px;color:var(--muted);transition:.15s}.icon-button:hover{background:var(--hover);color:var(--paper)}.icon-button[aria-pressed=true]{background:var(--notice-bg);color:var(--notice)}.icon-button.bordered{border-color:var(--line)}.main-content{padding:25px 0 0;display:flex;flex-direction:column;gap:20px}.match-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.role-label{color:var(--muted);font-size:14px}.scoreboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:100%;align-items:stretch}.team-panel{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.85fr) minmax(150px,.5fr);grid-template-rows:auto auto;column-gap:28px;min-height:250px;align-items:center;border:1px solid var(--line);border-radius:20px;background:var(--panel);padding:25px 34px;--team:var(--home);--team-ink:var(--home-ink,#102019);--team-text:var(--home-text);border-left:5px solid var(--team)}.away-panel{--team:var(--away);--team-ink:var(--away-ink,#102019);--team-text:var(--away-text)}.team-caption{grid-column:1;grid-row:1;align-self:end;display:flex;align-items:center;gap:9px;font-size:14px;letter-spacing:.08em;color:var(--muted);font-weight:600;flex-wrap:wrap}.team-dot{width:8px;height:8px;border-radius:50%;background:var(--team-text);flex:none}.team-sets{display:flex;gap:5px;align-items:baseline;letter-spacing:0;font-size:14px;margin-left:auto}.team-sets b{font:500 24px/1 var(--display);color:var(--team-text)}.team-panel h1,.team-panel h2{grid-column:1;grid-row:2;align-self:start;margin-top:12px;font-size:clamp(25px,3vw,38px);font-weight:500;line-height:1.2;letter-spacing:-.035em;overflow-wrap:anywhere}.score-value{grid-column:2;grid-row:1/3;display:flex;align-items:center;justify-content:center;min-width:0;font:600 clamp(96px,25vh,320px)/.9 var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.055em;color:var(--paper);position:relative;padding:0 12px 12px 0}.score-value .adv{font-size:.24em;letter-spacing:0;align-self:center;margin:12px 0 0 8px;color:var(--team-text)}.score-value.changed{animation:score-bump .28s ease-out}.score-controls{grid-column:3;grid-row:1/3;display:flex;flex-direction:column;gap:12px;min-width:0}.subtract-point,.add-point{width:100%;min-width:44px;min-height:58px;border-radius:11px;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:600;transition:filter .15s,transform .15s}.subtract-point{border:1px solid var(--line);background:var(--soft);font-size:25px;color:var(--paper);line-height:1.1}.subtract-point span{font-size:14px;font-weight:500}.subtract-point:hover{background:var(--hover)}.add-point{order:-1;border:0;background:var(--team);color:var(--team-ink);font-size:14px;letter-spacing:.03em;padding:8px 12px}.add-point>span:first-child{font-size:31px;font-weight:500;line-height:1}.add-point:hover{filter:brightness(1.05)}.add-point:active,.subtract-point:active{transform:scale(.98)}.read-only-score{grid-column:3;grid-row:1/3;text-align:center;color:var(--muted);font-size:15px;letter-spacing:.08em}.set-console{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:6px 12px;color:var(--paper)}.set-caption{font-size:14px;color:var(--muted);font-weight:600;letter-spacing:.04em}.set-button{display:flex;align-items:center;justify-content:center;gap:9px;background:var(--panel);border:1px solid var(--line);color:var(--paper);border-radius:10px;padding:3px 14px;min-height:46px;font:500 34px/1.1 var(--display)}.set-button:disabled{opacity:1}.set-button svg{width:16px;height:16px;color:var(--muted)}.set-button:not(:disabled):hover{background:var(--hover)}.set-separator,.versus{display:none}.set-scores{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;order:2}.set-chip{display:grid;grid-template-columns:25px 1fr 1fr;align-items:center;gap:8px;border:1px solid var(--line);padding:8px 10px;border-radius:8px;background:var(--panel);white-space:nowrap;font-size:15px;font-variant-numeric:tabular-nums;text-align:center;min-height:44px;min-width:100px}.set-chip.current{border-color:var(--notice);background:var(--notice-bg)}.set-chip>span:first-child{font-size:13px;color:var(--muted)}.set-chip b{font-weight:500}.set-chip b.winner{color:var(--notice);font-weight:700}.timeout-button{order:3;display:flex;align-items:center;justify-content:center;gap:7px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-height:46px;font-size:14px;color:var(--paper);margin-left:auto}.timeout-button:hover{background:var(--hover)}.timeout-button svg{width:20px;height:20px}.match-tracking{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:16px;margin-top:2px}.tracking-card{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:20px 23px;min-width:0}.tracking-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:14px}.tracking-heading h2{font-size:17px;font-weight:600;color:var(--paper)}.tracking-heading>span{font-size:14px;color:var(--muted)}.progression-chart{height:150px;position:relative}.progression-chart svg{height:100%;width:100%;overflow:visible;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}.chart-empty{height:100%;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--muted);font-size:14px;text-align:center;border-top:1px dashed var(--line);line-height:1.6}.chart-empty .empty-line{width:25px;height:1px;background:var(--line);flex:none}.momentum{display:flex;gap:7px;align-items:center;min-height:53px;margin-top:22px}.momentum-ball{flex:1;max-width:45px;height:27px;border-radius:5px;background:var(--home);position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--paper) 15%,transparent)}.momentum-ball.away{background:var(--away)}.momentum-ball.empty{background:var(--soft);border:1px solid var(--line)}.momentum-ball:last-child:not(.empty):after{content:'';height:3px;background:#10171b55;position:absolute;bottom:4px;left:5px;right:5px;border-radius:2px}.chart-legend{display:flex;gap:13px;align-items:center;flex-wrap:wrap;margin-top:20px}.chart-legend>span{display:flex;align-items:center;gap:7px;min-width:0;font-size:14px;color:var(--muted)}.chart-legend b{font-weight:400;overflow-wrap:anywhere}.chart-legend i{width:8px;height:8px;border-radius:50%;flex:none}.home-dot{background:var(--home-text)}.away-dot{background:var(--away-text)}.match-dock{position:fixed;bottom:0;left:0;right:0;z-index:5;min-height:89px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);background:var(--panel);gap:20px;padding:14px max(24px,calc((100vw - 1360px)/2)) max(14px,env(safe-area-inset-bottom));box-shadow:0 -6px 30px #0001}.dock-left{display:flex;flex-direction:column;gap:4px}.dock-status{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:7px}.dock-status:before{content:'';width:5px;height:5px;background:var(--muted)}.dock-hint{font-size:14px;color:var(--paper)}.dock-actions{display:flex;gap:10px;align-items:center}.dock-button{display:flex;align-items:center;justify-content:center;gap:9px;padding:12px 18px;min-height:50px;border:1px solid var(--line);border-radius:10px;background:var(--panel);font-size:15px;font-weight:500;white-space:nowrap}.dock-button svg{width:21px;height:21px;color:var(--muted)}.dock-button:hover{background:var(--hover)}.dock-button.photo-button{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.photo-button svg{color:var(--accent-ink)}.counter{font-size:13px;color:var(--muted);padding:1px 5px;border:1px solid var(--line);border-radius:5px}.professional-panel{margin:20px 0 24px}.pro-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px;flex-wrap:wrap}.pro-heading h2{font-size:36px;letter-spacing:-.045em;font-weight:500;margin-top:8px;line-height:1.2}.pro-heading h2>span,.dialog-heading h2>span{color:var(--notice)}.pro-heading-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.pro-heading-actions select{width:auto;max-width:220px;min-height:46px;padding:10px 35px 10px 13px;font-size:15px}.pro-heading-actions .button{font-size:15px;min-height:46px;padding:10px 15px}.coverage-note{font-size:15px;color:var(--muted);line-height:1.7;margin-bottom:20px;border-left:3px solid var(--notice);padding-left:14px}.coverage-note b{color:var(--paper);font-weight:600}.stat-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat-card{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:22px;min-width:0}.stat-card>span{font-size:15px;color:var(--muted)}.stat-card .stat-number{font:500 46px/1.15 var(--display);margin:12px 0 10px;display:flex;align-items:baseline;gap:14px;letter-spacing:-.02em}.stat-number .home-number{color:var(--home-text)}.stat-number .away-number{color:var(--away-text)}.stat-number i{height:22px;width:1px;background:var(--line);display:block}.stat-card p{font-size:13px;color:var(--muted);line-height:1.6}.pro-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;margin-bottom:18px}.analytics-card{border:1px solid var(--line);background:var(--panel);border-radius:15px;padding:24px;min-width:0}.analytics-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px;flex-wrap:wrap}.analytics-heading h3{font-size:19px;font-weight:500;letter-spacing:-.015em;line-height:1.35}.analytics-heading>span{color:var(--muted);font-size:14px}.analytics-heading p{color:var(--muted);font-size:14px;margin-top:6px}.type-chart{display:flex;flex-direction:column;gap:20px}.type-row{display:grid;grid-template-columns:127px 1fr 60px;gap:12px;align-items:center}.type-row>span{font-size:14px;color:var(--muted)}.type-bars{display:flex;flex-direction:column;gap:6px}.type-bar{height:8px;border-radius:4px;background:var(--home-text);min-width:0;transition:width .3s}.type-bar.away{background:var(--away-text)}.type-totals{text-align:right;font-size:15px;font-variant-numeric:tabular-nums;display:flex;gap:12px;justify-content:flex-end}.type-totals b{font-weight:600;color:var(--home-text)}.type-totals b:last-child{color:var(--away-text)}.comparison-row{padding:16px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:45px 1fr 45px;align-items:center;text-align:center;gap:8px;font-size:15px;color:var(--muted)}.comparison-row:first-child{border-top:0;padding-top:0}.comparison-row b{font:500 32px/1 var(--display);color:var(--home-text)}.comparison-row b:last-child{color:var(--away-text)}.comparison-row span{font-size:15px}.comparison-team-labels{display:flex;justify-content:space-between;gap:18px;margin-bottom:18px;font-size:14px;color:var(--muted)}.comparison-team-labels>span{max-width:45%;overflow-wrap:anywhere}.team-tabs{display:flex;gap:4px;background:var(--soft);padding:4px;border-radius:10px;max-width:100%;flex-wrap:wrap}.team-tabs button{background:transparent;border:0;border-radius:7px;padding:10px 14px;min-height:44px;color:var(--muted);font-size:14px;overflow-wrap:anywhere}.team-tabs button[aria-pressed=true]{color:var(--paper);background:var(--panel-raised)}.table-scroll{overflow-x:auto;scrollbar-width:thin}table{border-collapse:collapse;width:100%;text-align:left;font-size:15px;white-space:nowrap}th{font-weight:500;color:var(--muted);font-size:14px;padding:13px 14px 17px;text-align:center;border-bottom:1px solid var(--line)}th:first-child,td:first-child{text-align:left;padding-left:0}td{padding:17px 14px;border-bottom:1px solid var(--line);text-align:center;color:var(--paper)}tr:last-child td{border-bottom:0}td:first-child{min-width:220px}td.total-points{color:var(--notice);font-weight:700;font-size:18px}.player-identity{display:flex;align-items:center;gap:11px}.jersey{display:inline-flex;align-items:center;justify-content:center;font:500 23px/1 var(--display);width:38px;height:38px;border-radius:8px;background:var(--soft);border:1px solid var(--line);color:var(--paper);flex:none}.table-footnote{padding-top:17px;margin-top:12px;font-size:13px;line-height:1.7;color:var(--muted);border-top:1px solid var(--line)}.stats-empty{text-align:center;padding:30px 15px;color:var(--muted);font-size:16px;line-height:1.7;white-space:normal}.stats-empty strong{display:block;color:var(--paper);font-weight:500;margin-bottom:7px}.stats-empty button{margin-top:17px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:11px 19px;font-size:16px;font-weight:600;border:1px solid var(--line);border-radius:10px;background:transparent;transition:filter .15s}.button svg{width:20px;height:20px}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.button.secondary{color:var(--paper);background:var(--panel)}.button:hover{filter:brightness(1.05)}.button.secondary:hover{background:var(--hover)}.text-button{border:0;background:none;color:var(--notice);font-size:15px;min-height:44px;padding:8px 0;text-decoration:underline;text-underline-offset:3px}.text-button:hover{color:var(--paper)}.app-dialog{padding:30px;border:1px solid var(--line);background:var(--panel);color:var(--paper);border-radius:20px;width:min(94vw,660px);max-height:90vh;max-height:90dvh;box-shadow:var(--shadow);overflow:auto;scroll-padding:24px}.app-dialog::backdrop,.photo-dialog::backdrop{background:var(--overlay);backdrop-filter:blur(6px)}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:26px}.dialog-heading h2{font-size:30px;font-weight:500;line-height:1.2;letter-spacing:-.035em;margin-top:9px}.dialog-heading .icon-button{margin-top:-4px;margin-right:-6px;flex:none}.dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line);flex-wrap:wrap}.dialog-actions .button{min-width:120px}.dialog-intro{font-size:16px;line-height:1.7;color:var(--muted);margin-top:-7px;margin-bottom:24px}.small-dialog{max-width:570px}select,input[type=text],input[type=number]{width:100%;background-color:var(--input);color:var(--paper);border:1px solid var(--line);border-radius:9px;padding:12px 14px;font-size:16px;min-height:48px}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m2 5 5 5 5-5' fill='none' stroke='%237a909a' stroke-width='1.7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}input::placeholder{color:var(--muted);opacity:1}.field-label{display:block;font-size:16px;margin-bottom:10px;color:var(--paper)}.field-help{font-size:14px;color:var(--muted);margin-top:12px;line-height:1.7}.form-error{padding:14px;margin-top:15px;background:var(--error-bg);border:1px solid var(--error);border-radius:8px;color:var(--error);font-size:15px;line-height:1.6}.point-team{display:flex;align-items:center;gap:9px;margin-bottom:23px;font-size:16px;border-left:3px solid var(--home);padding:11px 14px;background:var(--soft);line-height:1.5;flex-wrap:wrap}.point-team b{font-weight:600}.type-fieldset{border:0;padding:0;margin:0 0 24px}.type-fieldset legend{font-size:16px;color:var(--paper);margin-bottom:11px}.point-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.point-type{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;text-align:left;min-height:92px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:var(--soft);font-size:15px;color:var(--paper);line-height:1.4}.point-type>strong{font:500 23px/1 var(--display);color:var(--muted);letter-spacing:.04em}.point-type[aria-pressed=true]{border-color:var(--notice);background:var(--notice-bg);color:var(--notice);box-shadow:inset 0 0 0 1px var(--notice)}.point-type[aria-pressed=true]>strong{color:var(--notice)}.point-type:hover{border-color:var(--muted)}.player-selector-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}.player-selector-head label{font-size:16px;color:var(--paper)}.roster-dialog{width:min(94vw,930px)}.roster-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.roster-column h3{font-size:20px;font-weight:500;padding-bottom:13px;border-bottom:3px solid var(--home-text);margin-bottom:17px;overflow-wrap:anywhere}.roster-column.away h3{border-color:var(--away-text)}.roster-labels{display:grid;grid-template-columns:70px 1fr 44px;gap:9px;font-size:14px;color:var(--muted);margin-bottom:9px}.roster-row{display:grid;grid-template-columns:70px 1fr 44px;gap:9px;align-items:center;margin-bottom:10px}.roster-row input{font-size:16px;padding:11px;min-height:46px;min-width:0}.roster-row input[type=number]{appearance:textfield}.roster-row input::-webkit-inner-spin-button{display:none}.roster-row .icon-button{width:44px;height:44px}.roster-row .icon-button svg{width:21px;height:21px}.add-player{border:1px dashed var(--muted);background:var(--soft);border-radius:8px;padding:12px;width:100%;font-size:15px;color:var(--paper);margin-top:7px;min-height:46px}.add-player:hover{background:var(--hover)}.roster-empty{font-size:15px;color:var(--muted);padding:10px 0 16px}.account-roster-options{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}.save-teams-option{display:flex;gap:12px;align-items:flex-start;cursor:pointer;color:var(--paper)}.save-teams-option>input{width:22px;height:22px;margin:3px 0 0;accent-color:var(--notice);flex:none}.save-teams-option>span{display:flex;flex-direction:column;gap:5px}.save-teams-option strong{font-size:16px;font-weight:600}.save-teams-option>span>span{font-size:14px;color:var(--muted);line-height:1.65}.account-roster-note{font-size:14px;color:var(--muted);line-height:1.7;margin-top:13px}.text-link{color:var(--notice);text-decoration:underline;text-underline-offset:3px}.notice{font-size:15px;line-height:1.7;background:var(--notice-bg);border:1px solid var(--line);border-radius:9px;color:var(--notice);padding:15px 17px;margin-top:20px}.share-block{padding:23px 0;border-top:1px solid var(--line)}.share-block:first-child{border-top:0;padding-top:0}.share-block:last-child{padding-bottom:0}.share-block h3{font-size:19px;font-weight:500;margin-bottom:9px}.share-block p{font-size:15px;line-height:1.7;color:var(--muted);margin-bottom:16px}.share-buttons{display:flex;gap:8px;flex-wrap:wrap}.share-buttons .button{min-height:46px;font-size:15px;padding:10px 14px}.share-url{margin-top:13px;font-size:14px;color:var(--paper);background:var(--soft);border:1px solid var(--line);padding:11px 13px;border-radius:8px;word-break:break-all;user-select:all}.history-dialog{width:min(94vw,800px);height:85vh;height:85dvh;padding:28px}.history-dialog .dialog-heading{margin-bottom:22px}.history-filters{display:flex;gap:8px;padding-bottom:19px;border-bottom:1px solid var(--line);margin-bottom:20px;flex-wrap:wrap}.history-filters button{padding:10px 15px;min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);font-size:15px}.history-filters button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.history-list{display:flex;flex-direction:column;gap:12px}.history-event{border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--soft)}.history-event.score{border-left:3px solid var(--home-text)}.history-event.score.away{border-left-color:var(--away-text)}.history-event.cancelled h3{text-decoration:line-through}.history-event-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.history-event-meta{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.history-event-meta .event-context{font-size:14px;color:var(--paper)}.event-actions{display:flex;gap:3px;margin-left:auto}.event-actions .icon-button{width:44px;height:44px}.event-actions svg{width:20px;height:20px}.history-event h3{font-size:18px;font-weight:500;line-height:1.5}.history-event .event-detail{font-size:15px;color:var(--muted);line-height:1.7;margin-top:7px}.history-event .event-type-label{display:inline-block;border:1px solid var(--line);padding:5px 8px;border-radius:5px;color:var(--paper);background:var(--panel);font-size:14px;margin-right:7px;margin-top:10px}.history-event .photo-thumb{display:block;width:100%;padding:0;border:0;background:none;overflow:hidden;border-radius:8px}.photo-thumb img{width:100%;max-height:420px;object-fit:cover;display:block}.history-empty{text-align:center;padding:40px 15px;color:var(--muted);font-size:16px;line-height:1.7}.photo-dialog{border:0;background:var(--bg);width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100vh;max-height:100dvh;margin:0;padding:65px 75px;color:var(--paper);overflow:auto}.photo-dialog[open]{display:flex;align-items:center;justify-content:center}.photo-dialog figure{margin:0;max-width:100%;display:flex;flex-direction:column;align-items:center;gap:16px}.photo-dialog img{max-width:100%;max-height:calc(100vh - 170px);max-height:calc(100dvh - 170px);object-fit:contain;border-radius:9px}.photo-dialog figcaption{color:var(--muted);font-size:15px;text-align:center;line-height:1.6}.photo-close{position:absolute;right:18px;top:14px;color:var(--paper);background:var(--panel);border-color:var(--line)}.photo-arrow{position:absolute;top:50%;background:var(--panel);border:1px solid var(--line);color:var(--paper);width:46px;height:58px;transform:translateY(-50%);border-radius:9px;font-size:39px;font-family:Arial;line-height:1}.photo-arrow.prev{left:15px}.photo-arrow.next{right:15px}.toast{position:fixed;bottom:116px;left:50%;transform:translate(-50%,15px);background:var(--paper);color:var(--bg);padding:15px 20px;max-width:min(92vw,620px);border-radius:11px;font-size:16px;line-height:1.6;z-index:200;box-shadow:var(--shadow);opacity:0;visibility:hidden;transition:.2s;pointer-events:none}.toast.visible{opacity:1;visibility:visible;transform:translate(-50%,0)}.busy-overlay{position:fixed;inset:0;z-index:100;background:var(--overlay);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;text-align:center}.busy-overlay>div{padding:35px;background:var(--panel);border:1px solid var(--line);border-radius:18px;margin:20px}.busy-overlay h2{font-size:27px;font-weight:500;margin:22px 0 11px}.busy-overlay p{font-size:16px;color:var(--muted);line-height:1.7}.spinner{display:inline-block;width:38px;height:38px;border:3px solid var(--line);border-top-color:var(--notice);border-radius:50%;animation:spin .8s linear infinite}.access-error{max-width:600px;margin:14vh auto;padding:30px}.access-error h1{font-size:36px;font-weight:500;letter-spacing:-.04em;margin:18px 0;line-height:1.2}.access-error p{font-size:17px;color:var(--muted);line-height:1.7;margin-bottom:25px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes score-bump{0%{transform:scale(1)}45%{transform:scale(1.035);color:var(--team-text)}100%{transform:scale(1)}}
@media(min-width:1600px){.app-shell{max-width:1530px;padding-left:55px;padding-right:55px}.team-panel{min-height:280px;padding:28px 42px}.score-value{font-size:clamp(170px,25vh,320px)}.score-controls{gap:14px}.add-point,.subtract-point{min-height:66px}.match-dock{padding-left:max(30px,calc((100vw - 1420px)/2));padding-right:max(30px,calc((100vw - 1420px)/2))}}
@media(max-width:1150px){.app-shell{padding-left:25px;padding-right:25px}.app-header{grid-template-columns:1fr auto;gap:16px;padding:20px 0}.brand{grid-column:1;grid-row:1}.theme-toggle{grid-column:2;grid-row:1}.view-switch{grid-column:1;grid-row:2;justify-self:start}.header-actions{grid-column:2;grid-row:2}.team-panel{grid-template-columns:minmax(0,1fr) minmax(160px,.8fr) minmax(130px,.5fr);gap:20px;padding:22px 27px;min-height:235px}.team-panel h1,.team-panel h2{font-size:30px}.score-value{font-size:clamp(130px,23vh,260px)}.team-caption{font-size:13px;letter-spacing:.05em}.team-sets{margin-left:0;gap:5px}.set-console{padding:4px 0}.set-scores{flex-basis:50%}.stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.pro-grid{grid-template-columns:1fr 1fr}.analytics-card{padding:22px}.type-row{grid-template-columns:105px 1fr 48px;gap:9px}.type-totals{gap:9px}.dock-left{max-width:320px}}
@media(max-width:760px){.app-shell{padding-left:18px;padding-right:18px;padding-bottom:112px}.app-header{gap:14px}.brand-ball{width:36px;height:36px}.brand strong{font-size:24px}.brand>span{font-size:13px}.brand{gap:8px}.view-switch button{min-width:96px;padding:9px 12px;font-size:15px}.view-switch button svg{width:19px;height:19px}.connection{font-size:13px;margin-right:1px}.header-actions{gap:1px}.theme-toggle{padding:10px}.main-content{padding-top:22px;gap:17px}.match-meta{align-items:flex-start;flex-direction:column;gap:5px}.match-meta .eyebrow{font-size:13px}.role-label{font-size:14px}.team-panel{grid-template-columns:minmax(0,1fr) 135px;grid-template-rows:auto auto auto;column-gap:18px;row-gap:0;padding:22px 25px;min-height:260px;border-radius:16px}.team-caption{grid-column:1/-1;grid-row:1;align-self:auto;font-size:14px;letter-spacing:.06em}.team-sets{margin-left:auto;font-size:14px}.team-sets b{font-size:23px}.team-panel h1,.team-panel h2{grid-column:1/-1;grid-row:2;font-size:29px;line-height:1.25;margin-top:11px;align-self:auto}.score-value{grid-column:1;grid-row:3;font-size:clamp(120px,21vh,220px);justify-content:flex-start;padding:12px 10px 2px 0}.score-controls{grid-column:2;grid-row:3;gap:11px;align-self:center}.add-point,.subtract-point{min-height:56px}.add-point{font-size:14px;padding:8px}.add-point>span:first-child{font-size:30px}.subtract-point{font-size:24px}.subtract-point span{font-size:13px}.read-only-score{grid-column:2;grid-row:3;font-size:15px;text-align:left}.set-console{gap:11px;padding:5px 0}.set-scores{order:4;flex-basis:100%;gap:7px}.set-chip{font-size:15px;min-height:44px;min-width:98px;gap:7px;padding:8px 9px}.timeout-button{font-size:14px;padding:10px 12px}.match-tracking{grid-template-columns:1fr;gap:15px}.tracking-card{padding:20px}.tracking-heading h2{font-size:17px}.tracking-heading>span{font-size:14px}.progression-chart{height:150px}.momentum{margin-top:5px;min-height:43px;gap:8px}.momentum-ball{max-width:none;height:26px}.chart-legend{gap:12px;margin-top:15px}.chart-legend>span{font-size:14px}.match-dock{padding:12px 18px max(12px,env(safe-area-inset-bottom));min-height:84px;justify-content:center;gap:10px}.dock-left{display:none}.dock-actions{width:100%;gap:9px}.dock-button{flex:1;min-height:52px;font-size:15px;padding:12px 14px;gap:8px}.counter{display:none}.pro-heading{align-items:flex-start;gap:18px}.pro-heading h2{font-size:32px}.pro-heading-actions{width:100%;gap:9px}.pro-heading-actions select{flex:1;max-width:none;min-width:155px}.stat-cards{gap:12px}.stat-card{padding:20px}.stat-card>span{font-size:15px}.stat-card .stat-number{font-size:43px}.stat-card p{font-size:13px}.pro-grid{grid-template-columns:1fr;gap:15px}.analytics-card{padding:21px}.analytics-heading{margin-bottom:23px;gap:10px}.analytics-heading h3{font-size:19px}.analytics-heading>span{font-size:14px}.type-row{grid-template-columns:125px 1fr 58px;gap:10px}.player-stats .analytics-heading{align-items:flex-start;flex-direction:column;gap:15px}.team-tabs{width:100%}.team-tabs button{flex:1}.professional-panel{margin-top:15px}.app-dialog{padding:24px;width:94vw;border-radius:17px;max-height:90dvh}.dialog-heading h2{font-size:28px}.dialog-heading{margin-bottom:23px}.roster-columns{grid-template-columns:1fr;gap:28px}.photo-dialog{padding:65px 58px}.photo-arrow{width:44px;height:54px}.photo-arrow.prev{left:7px}.photo-arrow.next{right:7px}.photo-dialog figcaption{font-size:14px}.history-dialog{height:88dvh}.point-types{gap:8px}.point-type{padding:12px;min-height:92px;font-size:15px}.history-event{padding:16px}.toast{bottom:106px;font-size:15px}}
@media(max-width:530px){.app-header{grid-template-columns:1fr auto;gap:14px;padding:18px 0}.view-switch{grid-column:1/-1;grid-row:2;justify-self:stretch;width:100%}.view-switch button{flex:1;min-height:48px;font-size:16px}.header-actions{grid-column:1/-1;grid-row:3;width:100%;justify-content:flex-end;gap:5px}.connection{margin-right:auto;font-size:14px}.header-actions .icon-button{width:44px;height:44px}.team-panel{grid-template-columns:minmax(0,1fr) 122px;padding:20px;column-gap:13px;min-height:250px}.team-panel h1,.team-panel h2{font-size:27px}.score-value{font-size:clamp(90px,17vh,150px);padding-top:14px}.score-controls{gap:10px}.subtract-point{font-size:24px;gap:5px}.subtract-point span{font-size:13px}.add-point{font-size:13px;gap:6px}.add-point>span:first-child{font-size:29px}.set-caption{font-size:13px}.set-button{font-size:32px}.set-chip{font-size:14px;min-width:92px;padding:8px;gap:6px}.set-chip>span:first-child{font-size:13px}.match-dock{padding-left:12px;padding-right:12px}.dock-actions{gap:8px}.dock-button{font-size:14px;padding:12px 10px;gap:7px}.dock-button svg{width:20px;height:20px}.stat-cards{gap:10px}.stat-card{padding:17px}.type-row{grid-template-columns:110px 1fr 52px;gap:9px}.type-row>span{font-size:14px}.type-totals{font-size:15px;gap:9px}.coverage-note{font-size:15px}.analytics-card{padding:19px}.analytics-heading h3{font-size:18px}.comparison-row span{font-size:14px}.comparison-team-labels{font-size:14px}.app-dialog{padding:22px}.dialog-heading h2{font-size:26px}.dialog-actions .button{min-width:110px;font-size:15px;padding:11px 14px}.point-types{gap:7px}.point-type{font-size:14px;padding:12px 10px;min-height:94px}.point-type>strong{font-size:23px}.player-selector-head label{font-size:16px}.text-button{font-size:15px}.roster-labels,.roster-row{grid-template-columns:65px 1fr 44px;gap:8px}.history-event-meta{font-size:13px}.photo-dialog{padding-left:51px;padding-right:51px}.photo-dialog figcaption{font-size:14px}}
@media(max-width:370px){.app-shell{padding-left:12px;padding-right:12px}.brand-ball{width:30px;height:30px}.brand strong{font-size:22px}.theme-toggle{padding:10px}.theme-toggle svg{width:24px;height:24px}.team-panel{grid-template-columns:minmax(0,1fr) 112px;padding:17px;column-gap:10px}.team-panel h1,.team-panel h2{font-size:25px}.score-value{font-size:clamp(90px,17vh,150px)}.subtract-point span{display:none}.add-point{font-size:13px;gap:5px}.add-point>span:first-child{font-size:28px}.team-caption{font-size:13px;gap:6px}.team-sets{font-size:13px}.tracking-card{padding:17px}.set-chip{min-width:90px}.dock-button{flex-direction:column;padding:10px 5px;font-size:14px;gap:5px;min-height:64px}.match-dock{min-height:88px}.app-shell{padding-bottom:120px}.point-types{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{padding:15px}.stat-card>span{font-size:14px}.stat-card p{font-size:13px}.type-row{grid-template-columns:105px 1fr 45px;gap:7px}.type-totals{gap:7px}.app-dialog{padding:19px}.dialog-heading h2{font-size:25px}}
@media(orientation:landscape) and (max-height:540px){.app-shell{padding-bottom:104px}.app-header{display:grid;grid-template-columns:auto 1fr auto;gap:14px;padding:14px 0}.brand{grid-column:1;grid-row:1}.theme-toggle{grid-column:3;grid-row:1}.view-switch{grid-column:2;grid-row:1;justify-self:center;width:auto}.header-actions{grid-column:1/-1;grid-row:2;justify-content:flex-end;width:100%;gap:6px}.connection{margin-right:auto;font-size:14px}.team-panel{grid-template-columns:minmax(0,1fr) minmax(140px,.7fr) 140px;grid-template-rows:auto auto;min-height:215px;gap:15px;padding:20px 25px}.team-caption{grid-column:1;grid-row:1;align-self:end;font-size:14px}.team-panel h1,.team-panel h2{grid-column:1;grid-row:2;align-self:start;font-size:27px}.score-value{grid-column:2;grid-row:1/3;font-size:clamp(70px,26vh,130px);justify-content:center;padding:0 8px 6px 0}.score-controls,.read-only-score{grid-column:3;grid-row:1/3}.add-point,.subtract-point{min-height:54px}.set-console{gap:12px}.set-scores{flex-basis:100%}.match-tracking{grid-template-columns:1.25fr 1fr}.tracking-card{padding:18px}.tracking-heading{margin-bottom:12px}.tracking-heading h2{font-size:16px}.tracking-heading>span{font-size:13px}.progression-chart{height:150px}.momentum{margin-top:20px}.chart-legend{flex-direction:column;align-items:flex-start;font-size:14px}.match-dock{min-height:76px;padding-top:10px;padding-bottom:max(10px,env(safe-area-inset-bottom))}.dock-left{display:none}.dock-actions{width:auto;margin-left:auto}.dock-button{font-size:15px;min-height:48px;flex-direction:row;padding:10px 18px}.app-dialog{max-height:90dvh}.dialog-heading{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Marcadores en paralelo: conservar las fuentes y adaptar solo la distribución. */
.scoreboard>.home-panel{grid-column:1;grid-row:1}
.scoreboard>.away-panel{grid-column:2;grid-row:1}
.scoreboard>.set-console{grid-column:1/-1;grid-row:2}
.scoreboard>.team-panel{display:flex;flex-direction:column;align-items:stretch;min-width:0;min-height:0;gap:0;padding:26px 28px}
.scoreboard .team-caption{align-self:stretch;justify-content:center}
.scoreboard .team-sets{margin-left:0}
.scoreboard .team-panel h1,.scoreboard .team-panel h2{align-self:stretch;text-align:center;margin:12px 0 0;min-width:0}
.scoreboard .score-value{align-self:stretch;justify-content:center;flex-shrink:0;margin-top:auto;padding:24px 0 18px}
.scoreboard .score-controls{align-self:stretch;flex-direction:row;gap:12px;margin:0;width:100%}
.scoreboard .read-only-score{align-self:stretch;text-align:center;padding-bottom:8px}
@media(max-width:760px){
  .scoreboard{gap:12px}
  .scoreboard>.team-panel{padding:20px 14px}
  .scoreboard .team-caption{justify-content:center;gap:6px}
  .scoreboard .team-sets{flex-basis:100%;justify-content:center;margin-top:2px}
  .scoreboard .score-controls{flex-direction:column;gap:10px}
  .scoreboard .score-value{padding:22px 0 16px}
}
@media(max-width:530px){
  .scoreboard{gap:10px}
  .scoreboard>.team-panel{padding:18px 10px;border-radius:14px}
  .scoreboard .score-value{padding:32px 0 16px}
  .scoreboard .score-value .adv{position:absolute;top:0;right:2px;margin:0}
}
@media(max-width:370px){
  .scoreboard{gap:8px}
  .scoreboard>.team-panel{padding:16px 6px}
}

/* Operación rápida: no seleccionar textos al pulsar el marcador. */
body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
input,textarea,[contenteditable]:not([contenteditable="false"]),[contenteditable]:not([contenteditable="false"]) *,.share-url,.share-url *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}

/* Cinco parciales siempre en una única fila, junto al set actual. */
.scoreboard>.set-console{display:grid;grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:12px;padding:6px 0;min-width:0}
.set-current-group{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0}
.set-current-group .set-caption{font-size:13px;line-height:1.2;letter-spacing:0;text-align:center}
.set-current-group .set-button{min-width:48px;min-height:44px;padding:3px 9px;font-size:32px;gap:5px}
.set-current-group .set-button svg{width:14px;height:14px}
.scoreboard .set-scores{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:8px;min-width:0;width:100%;order:initial;flex:none}
.scoreboard .set-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:64px;margin:0;padding:7px 0;border-radius:8px;white-space:nowrap}
.scoreboard .set-chip .set-chip-label{font-size:14px;line-height:1.2;color:var(--muted);font-family:var(--font);font-weight:500}
.scoreboard .set-chip .set-result{display:flex;align-items:center;justify-content:center;gap:3px;font:500 21px/1.2 var(--display);letter-spacing:0}
.scoreboard .set-chip .set-result b{font-weight:600;font-size:inherit;line-height:inherit}
.scoreboard .set-chip .set-result-separator{font-size:16px;color:var(--muted);font-weight:400}
.scoreboard .set-chip .set-placeholder{font:500 21px/1.2 var(--display);color:var(--muted)}
.scoreboard .set-chip.pending{background:var(--soft)}
.scoreboard .timeout-button{margin:0;order:initial;min-height:46px}

/* Compartir: acciones diferenciadas visualmente. */
.share-block-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.share-block-heading h3{margin:0;font-size:20px;line-height:1.3}
.share-option-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;flex:none;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--paper)}
.share-option-icon svg{width:25px;height:25px}
.share-admin .share-option-icon{background:var(--notice-bg);border-color:var(--notice);color:var(--notice)}

/* Punto profesional: primero acción, después tarjeta de jugador/a. */
.point-dialog{width:min(94vw,710px)}
.point-steps{display:flex;align-items:center;gap:8px;margin:-5px 0 20px;color:var(--muted)}
.point-step-dot{display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;flex:none;border:1px solid var(--line);border-radius:50%;font-size:14px;line-height:1;background:var(--soft);font-weight:600}
.point-step-dot.active,.point-step-dot.complete{background:var(--notice-bg);border-color:var(--notice);color:var(--notice)}
.point-step-line{width:18px;height:1px;background:var(--line);flex:none}
#pointStepLabel{font-size:14px;line-height:1.5;margin-left:5px}
#pointTypeStep .type-fieldset{margin-bottom:12px}
#pointTypeStep .point-types{grid-template-columns:repeat(3,minmax(0,1fr))}
#pointTypeStep .point-type{min-height:103px}
.point-selected-action{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:0 0 16px;border-bottom:1px solid var(--line);margin-bottom:19px}
#pointSelectedType{display:inline-flex;align-items:center;min-height:38px;padding:7px 12px;border:1px solid var(--notice);border-radius:7px;background:var(--notice-bg);color:var(--notice);font-size:15px;font-weight:600}
#pointBackButton{display:inline-flex;align-items:center;gap:6px;font-size:15px;line-height:1.4}
#pointBackButton svg{width:18px;height:18px}
#pointPlayerLabel{font-size:18px;font-weight:500;line-height:1.4;overflow-wrap:anywhere}
#pointPlayerStep .field-help{margin:0 0 17px;font-size:15px}
.point-player-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.point-player-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:122px;min-width:0;padding:14px 10px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--paper);text-align:center;transition:background .15s,border-color .15s,transform .15s}
.point-player-card:hover{background:var(--notice-bg);border-color:var(--notice)}
.point-player-card:active{transform:scale(.97)}
.point-player-card.selected{border-color:var(--notice)}
.point-player-number{font:600 38px/1 var(--display);color:var(--notice);letter-spacing:-.02em}
.point-player-name{font-size:16px;line-height:1.4;overflow-wrap:anywhere;font-weight:500}
.point-player-status{font-size:13px;line-height:1.4;color:var(--muted)}
.point-player-empty{grid-column:1/-1;display:flex;flex-direction:column;gap:8px;padding:22px 18px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:15px;line-height:1.65}
.point-player-empty strong{font-size:16px;font-weight:500;color:var(--paper)}
.point-unassigned{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;min-height:68px;margin-top:13px;padding:12px 15px;border:1px dashed var(--muted);border-radius:10px;background:transparent;color:var(--paper)}
.point-unassigned>span:first-child{font-size:16px;font-weight:600;line-height:1.5}
.point-unassigned>span:last-child{font-size:14px;color:var(--muted);line-height:1.5}
.point-unassigned:hover{background:var(--hover)}
.point-saving{font-size:16px;color:var(--notice);font-weight:500;margin-top:16px;padding:12px 15px;background:var(--notice-bg);border-radius:8px;line-height:1.5}
.point-dialog[aria-busy=true] .point-player-cards{opacity:.7}
@media(max-width:760px){
 .scoreboard>.set-console{grid-template-columns:62px minmax(0,1fr);gap:8px}
 .scoreboard .set-scores{gap:5px}
 .scoreboard .set-chip{min-height:64px;border-radius:7px}
 .scoreboard .set-chip .set-chip-label{font-size:13px}
 .scoreboard .set-chip .set-result{font-size:19px;gap:2px}
 .scoreboard .timeout-button{grid-column:1/-1;justify-self:end;min-height:46px}
 .point-player-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .point-player-card{min-height:123px}
}
@media(max-width:530px){
 .scoreboard>.set-console{grid-template-columns:54px minmax(0,1fr);gap:6px}
 .scoreboard .set-scores{gap:4px}
 .set-current-group .set-caption{font-size:13px;max-width:54px}
 .set-current-group .set-button{font-size:30px;gap:3px;padding:3px 5px;min-width:46px}
 .set-current-group .set-button svg{width:13px;height:13px}
 .scoreboard .set-chip{min-height:62px;padding:7px 0}
 .scoreboard .set-chip .set-result{font-size:17px;gap:1px}
 .scoreboard .set-chip .set-result-separator{font-size:14px}
 .scoreboard .set-chip .set-placeholder{font-size:19px}
 .share-block-heading h3{font-size:19px}
 .share-option-icon{width:45px;height:45px}
 #pointStepLabel{font-size:14px;margin-left:2px}
 .point-step-line{width:12px}
 #pointTypeStep .point-types{grid-template-columns:repeat(2,minmax(0,1fr))}
 #pointTypeStep .point-type{min-height:97px;font-size:15px}
 #pointTypeStep .point-type>strong{font-size:24px}
 .point-player-card{min-height:120px;padding:13px 9px}
 .point-player-number{font-size:38px}
 .point-player-name{font-size:16px}
 .point-selected-action{gap:7px}
 #pointBackButton{font-size:14px}
}
@media(max-width:370px){
 .scoreboard>.set-console{grid-template-columns:51px minmax(0,1fr);gap:5px}
 .scoreboard .set-scores{gap:3px}
 .scoreboard .set-chip .set-result{font-size:16px;gap:1px}
 #pointStepLabel{font-size:13px}
 .point-player-cards{gap:8px}
 .point-player-name{font-size:15px}
}

/* El ganador del set procede del estado calculado en el servidor. */
.set-win-badge{display:inline-flex;align-items:center;justify-content:center;gap:7px;align-self:center;padding:7px 11px;margin:13px auto 0;border:1px solid var(--team-text);border-radius:8px;background:var(--soft);color:var(--team-text);font-size:14px;line-height:1.4;font-weight:700;letter-spacing:.025em}
.set-win-badge svg{width:19px;height:19px}
.scoreboard>.team-panel.set-winner{border-color:var(--team-text);box-shadow:inset 0 0 0 1px var(--team-text)}
@media(max-width:760px){
 .scoreboard>.set-console{grid-template-columns:minmax(0,1fr) auto;gap:10px}
 .scoreboard .set-current-group{grid-column:1;grid-row:1;flex-direction:row;justify-content:flex-start;gap:10px;justify-self:start}
 .set-current-group .set-caption{max-width:none;font-size:14px;white-space:nowrap}
 .scoreboard .set-scores{grid-column:1/-1;grid-row:2;gap:6px}
 .scoreboard .set-chip{min-height:65px}
 .scoreboard .set-chip .set-chip-label{font-size:14px}
 .scoreboard .set-chip .set-result{font-size:20px;gap:2px}
 .scoreboard .set-chip .set-result-separator{font-size:16px}
 .scoreboard .timeout-button{grid-column:2;grid-row:1;justify-self:end}
}
@media(max-width:370px){
 .scoreboard .set-scores{gap:4px}
 .scoreboard .set-chip .set-result{font-size:19px;gap:1px}
 .set-win-badge{font-size:14px;letter-spacing:0;gap:5px;padding:7px 6px}
 .set-win-badge svg{width:17px;height:17px}
}

/* Presence follows the scoreboard polling cycle. */
.connection{min-width:0;flex-wrap:wrap;row-gap:5px;line-height:1.4}
.connection>span:first-of-type{white-space:nowrap}
.presence-count{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:3px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--paper);font-size:14px;line-height:1.2;white-space:nowrap}
.presence-count[hidden]{display:none}
.presence-count svg{width:16px;height:16px;flex:none}
.presence-count b{font-size:inherit;font-weight:600;font-variant-numeric:tabular-nums}

/* Guardado independiente de cada equipo desde su plantilla. */
.roster-team-save{display:flex;align-items:flex-start;gap:12px;min-height:52px;margin:0 0 20px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--soft);cursor:pointer;line-height:1.5}
.roster-team-save input[type=checkbox]{flex:none;width:22px;height:22px;min-height:0;margin:2px 0 0;padding:0;accent-color:var(--focus);cursor:pointer}
.roster-team-save-copy{display:flex;flex-direction:column;gap:5px;min-width:0;overflow-wrap:anywhere}
.roster-team-save-copy strong{font-size:16px;font-weight:650;color:var(--paper)}
.roster-team-save-copy>span{font-size:15px;color:var(--muted)}
.roster-team-save:focus-within{outline:2px solid var(--focus);outline-offset:2px}

/* Aviso de cambios pendientes en la plantilla. */
.roster-confirm-dialog .dialog-heading{align-items:flex-start;gap:12px;margin-bottom:18px}
.roster-confirm-dialog .dialog-heading h2{font-size:28px;line-height:1.25}
.roster-confirm-dialog .dialog-intro{font-size:17px;line-height:1.65;margin-bottom:24px}
.roster-unsaved-actions{display:grid;grid-template-columns:1fr;gap:11px}
.roster-unsaved-actions .button{width:100%;min-height:50px;font-size:16px}
#rosterError:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
#rosterForm[aria-busy=true]{cursor:progress}

/* Shared dropdown in the former theme-button position. */
.app-header>.app-menu{justify-self:end}
@media(max-width:1150px){.app-header>.app-menu{grid-column:2;grid-row:1}}
@media(orientation:landscape) and (max-height:540px){.app-header>.app-menu{grid-column:3;grid-row:1}}

/* Acabado profesional: cambia el entorno y los acentos, nunca las superficies de equipo. */
body[data-view=professional]{--bg:#111b25;--accent:#e4c48c;--accent-ink:#2d2417;--focus:#e4c48c;--pro-switch:#15222c;--pro-edge:#74654d;--pro-rule:rgba(228,196,140,.22);background-color:var(--bg);background-image:radial-gradient(ellipse at 100% 0,rgba(228,196,140,.045),transparent 55%)}
body[data-view=professional] .view-switch{background:var(--pro-switch);border-color:var(--pro-edge);box-shadow:0 4px 18px rgba(0,0,0,.08)}
body[data-view=professional] .view-switch button[aria-pressed=true]{box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 2px 6px rgba(0,0,0,.12)}
body[data-view=professional] .brand-ball,body[data-view=professional] .brand-dot,body[data-view=professional] .pro-heading .eyebrow,body[data-view=professional] .pro-heading h2>span{color:var(--focus)}
body[data-view=professional] .pro-heading{box-shadow:0 1px 0 var(--pro-rule)}
/* El indicador de conexión conserva su verde; conectando y error mantienen sus reglas. */
body[data-view=professional] .connection:not(.offline):not(.connecting) i{background:#c9f266}
html[data-theme=light] body[data-view=professional]{--bg:#f8f5ee;--accent:#dfc797;--accent-ink:#302619;--focus:#77561d;--pro-switch:#eee8dd;--pro-edge:#cbb98f;--pro-rule:#d8c8a6;background-image:radial-gradient(ellipse at 100% 0,rgba(196,158,90,.07),transparent 55%)}
html[data-theme=light] body[data-view=professional] .view-switch{box-shadow:0 4px 18px rgba(85,64,29,.06)}
html[data-theme=light] body[data-view=professional] .connection:not(.offline):not(.connecting) i{background:#477723}

/* Seguimiento en dos columnas, con cada evolución y la galería en su lugar. */
.match-tracking{align-items:start}
.tracking-evolutions,.tracking-updates{display:flex;flex-direction:column;gap:16px;min-width:0}

/* Todas las métricas de cada jugador/a caben en la anchura de la tabla. */
.player-table-wrap{width:100%;min-width:0;max-width:100%}
.player-metric-help{min-height:44px;display:flex;align-items:center;margin:0 0 10px;padding:9px 12px;border-radius:8px;background:var(--soft);color:var(--paper);font-size:15px;line-height:1.5;overflow-wrap:anywhere}
.player-metric-help[hidden]{display:none}
.player-stats-table{width:100%;table-layout:fixed;white-space:normal;font-size:15px;font-variant-numeric:tabular-nums}
.player-stats-table .player-col-player{width:32%}
.player-stats-table .player-col-points{width:12%}
.player-stats-table col:not(.player-col-player):not(.player-col-points){width:9.333333%}
.player-stats-table th,.player-stats-table td{min-width:0;padding:13px 3px;text-align:center;white-space:normal;overflow-wrap:anywhere;font-size:15px;line-height:1.4}
.player-stats-table thead th{padding:4px 0;color:var(--muted);font-weight:500}
.player-stats-table th:first-child{text-align:left;padding-left:0}
.player-stats-table tbody th{font-weight:400;color:var(--paper)}
.player-stats-table td.total-points{font-size:15px;font-weight:700;color:var(--paper)}
.player-stats-table .player-identity{min-width:0;gap:8px}
.player-stats-table .player-name{min-width:0;overflow-wrap:anywhere;white-space:normal;font-size:15px}
.player-stats-table .jersey{width:28px;height:30px;min-width:0;font-size:20px}
.stat-abbreviation{display:block;width:100%;min-width:0;min-height:44px;padding:4px 0;border:0;border-radius:5px;background:transparent;color:var(--muted);font:inherit;font-weight:600;line-height:1.4;text-decoration:underline dotted;text-underline-offset:5px;cursor:pointer}
.stat-abbreviation:hover,.stat-abbreviation[aria-pressed=true]{color:var(--paper);background:var(--soft)}
.stat-abbreviation:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
@media(max-width:760px){.player-stats-table th,.player-stats-table td{padding-left:1px;padding-right:1px}.player-stats-table thead th{padding-left:0;padding-right:0}}
@media(max-width:530px){.analytics-card.player-stats{padding:16px 10px}.player-stats-table th,.player-stats-table td{padding-left:0;padding-right:0}.player-stats-table .player-identity{flex-direction:column;align-items:flex-start;gap:5px}.player-stats-table .jersey{width:24px;height:26px;font-size:18px}.player-metric-help{padding:8px;font-size:15px}}

/* Últimos puntos encabeza el seguimiento; los parciales usan toda su fila. */
.match-tracking>.momentum-card{grid-column:1/-1}
.role-open .tracking-updates{display:none}
.role-open .tracking-evolutions{grid-column:1/-1}
.momentum-ball.is-latest{outline:2px solid var(--focus);outline-offset:2px;animation:last-point-pulse 1.8s ease-in-out infinite}
@keyframes last-point-pulse{0%,100%{opacity:1}50%{opacity:.35}}
@media(prefers-reduced-motion:reduce){.momentum-ball.is-latest{animation:none}}
.scoreboard>.set-console{grid-template-columns:minmax(0,1fr) auto;gap:12px}
.scoreboard .set-current-group{grid-column:1;grid-row:1;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;justify-self:start}
.scoreboard .set-scores{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(var(--set-count,1),minmax(0,1fr));width:100%;min-width:0;gap:8px}
.scoreboard .set-chip{min-width:0;min-height:70px;padding:9px 0}
.scoreboard .timeout-button{grid-column:2;grid-row:1;justify-self:end;margin:0}
@media(max-width:760px){.scoreboard .set-scores{gap:6px}}
@media(max-width:370px){.scoreboard .set-scores{gap:4px}}

/* El rótulo y el número comparten el botón; el borde del parcial sigue la ventaja. */
.scoreboard .set-current-group .set-button{min-height:46px;gap:10px;padding:6px 12px}
.scoreboard .set-button .set-caption,.scoreboard .timeout-button{font:600 14px/1.2 var(--font);letter-spacing:.02em;white-space:nowrap;max-width:none}
.scoreboard .set-button svg{flex:none}
.scoreboard .set-chip.leading-home{border-color:var(--home-text)}
.scoreboard .set-chip.leading-away{border-color:var(--away-text)}

/* Primera carga: ningún marcador provisional se muestra antes de recibir los datos. */
.match-content-pending{visibility:hidden;opacity:0;pointer-events:none}
.match-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;min-height:clamp(260px,55vh,500px);margin-top:25px;padding:32px 20px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--paper);text-align:center}
.match-loading h2{margin:0 0 10px;font:600 24px/1.3 var(--font);letter-spacing:0}
.match-loading p{max-width:38ch;margin:0;color:var(--muted);font:400 16px/1.6 var(--font)}
.match-loading .button{min-height:46px}
@media(max-width:480px){.match-loading{margin-top:20px;padding:28px 16px}.match-loading h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.match-loading .spinner{animation:none}}

/* Decisión explícita al abrir un set que ya tiene puntos. */
.set-score-options{display:grid;gap:12px;margin:18px 0 6px}
.set-score-options .set-score-choice{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;min-height:82px;padding:15px 16px;text-align:left;white-space:normal}
.set-score-choice-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.set-score-choice-copy strong{font:600 16px/1.4 var(--font)}
.set-score-choice-copy small{font:400 14px/1.4 var(--font);color:inherit}
.set-score-choice-value{font:600 27px/1.1 var(--display);font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:380px){.set-score-options .set-score-choice{gap:10px;padding:13px 12px}}
