:root{--navy:#102f49;--green:#137a55;--bg:#f2f6f8;--line:#d9e3ea;--text:#172c3b;--muted:#617587}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}.shell{width:min(1120px,calc(100% - 24px));margin:0 auto}.top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0 20px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px;color:var(--navy);text-decoration:none;font-weight:950;letter-spacing:.07em}.brand img{height:47px;max-width:185px;object-fit:contain}nav{display:flex;gap:12px;align-items:center;flex-wrap:wrap}nav a{font-weight:750;color:#31556c;text-decoration:none}a{color:#087253}h1{font-size:clamp(26px,4.8vw,42px);line-height:1.14;margin:8px 0 14px}h2{margin:0 0 14px;font-size:22px}p{margin:7px 0 16px}.hero{padding:30px;background:linear-gradient(130deg,#102f49,#165c56);color:#fff;border-radius:20px;margin-bottom:18px}.hero p{color:#dfebea}.eyebrow{display:block;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.11em;color:#168365}.hero .eyebrow{color:#9bddc4}.panel{padding:24px;background:#fff;border:1px solid var(--line);border-radius:18px;margin-bottom:17px;min-width:0}.panel.soft{background:#e8f4ee}.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stack{display:grid;gap:12px;margin-top:16px}.stack label,.sharelink label{font-weight:750;display:grid;gap:6px}.stack input,.stack select,.sharelink input{width:100%;min-height:45px;border-radius:10px;border:1px solid #a7bdca;background:#fff;padding:10px;color:#183449;font:inherit}.check{font-size:13px;font-weight:500!important;display:flex!important;align-items:start;gap:8px!important}.check input{width:auto;min-height:auto}.primary,.secondary,.danger,.shots button{cursor:pointer;border-radius:11px;border:1px solid transparent;padding:11px 15px;font:800 15px/1.3 system-ui;min-height:44px}.primary{background:var(--navy);color:#fff}.primary.big{min-height:55px}.secondary{background:#e8f1f6;color:#153b50;border-color:#c4d8e4}.danger{background:#fff1f0;color:#a0201e;border:1px solid #e9c2bf}.linkbtn{border:0;background:none;padding:7px;cursor:pointer;color:#2b5972;font-weight:750}.inline{display:inline}.notice,.error{border-radius:12px;padding:12px 17px;margin:5px 0 16px}.notice{background:#e3f2ea;color:#13513b}.error{background:#ffe8e6;color:#8c1d20}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.metrics>div{background:#fff;border-radius:13px;padding:18px;border:1px solid var(--line);display:grid;gap:3px}.metrics span{color:var(--muted);font-size:13px}.metrics strong{font-size:clamp(23px,3vw,31px)}.barlabel{display:flex;justify-content:space-between;gap:8px;font-size:13px;margin-top:12px}.bar{background:#eaf0f3;border-radius:9px;height:12px;margin:6px 0 14px;overflow:hidden}.bar span{display:block;height:100%;background:#11956a;border-radius:9px}.groupitem{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;background:#f1f6f8;border:1px solid var(--line);border-radius:10px;text-decoration:none}.groupitem span{color:var(--muted);font-size:13px}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:10px 9px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{background:#f1f6f8}.muted{color:var(--muted)}.who{color:#455c6e;font-size:13px}.back{display:inline-block;margin-bottom:12px}.shots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.shots button{min-height:106px;color:#fff;font-size:clamp(15px,2.5vw,22px)}.shots button:disabled{opacity:.5}.shots .miss{background:#ad2b2c}.shots .hit{background:#137b54}.shots .carreau{background:#183f78}.livecount{display:flex;align-items:center;gap:18px;margin:18px 0;padding:15px 20px;border-radius:15px;background:#edf4f6}.livecount strong{font-size:31px}.livecount span{color:var(--muted)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.sharing-notice{padding:12px 14px;background:#e6f4f0;border-radius:12px;margin-bottom:20px}.sharelink{display:flex;gap:10px;align-items:flex-end;margin:14px 0}.sharelink label{flex:1;min-width:0}.sharelink input{font-size:12px}.task{padding:12px;margin:8px 0;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.dangerzone{margin-top:35px;border-top:1px solid var(--line);padding-top:15px}details{margin-top:20px}summary{cursor:pointer;font-weight:700;color:#9a3434}footer{color:var(--muted);padding:25px 0;font-size:13px}footer a{color:var(--muted)}@media(max-width:750px){.cols{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{padding:17px}.shots{gap:6px}.shots button{min-height:104px;padding:8px 4px}.livecount{gap:9px}.livecount strong{font-size:24px}.sharelink{display:block}.sharelink button{margin-top:8px}}@media(max-width:390px){.metrics{gap:6px}.metrics>div{padding:11px}.top img{height:35px}}

progress{width:100%;height:14px;accent-color:#13956b;display:block;margin:7px 0 13px}

.sharelink{flex-wrap:wrap}.qr{width:145px;flex:0 0 145px}.qr svg{display:block;width:100%;height:auto}.qr:empty{display:none}

/* Four-score precision mode: two large rows on mobile, four columns on tablet. */
.shots.points{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:600px){.shots.points{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Training choices are visible directly when starting a personal session. */
.training-preset-fieldset{border:0;margin:0;padding:0;min-width:0}
.training-preset-fieldset legend{font-weight:800;margin-bottom:12px;color:var(--navy)}
.training-preset-choices{display:grid;grid-template-columns:1fr;gap:9px}
.stack .training-preset{display:flex;align-items:flex-start;gap:11px;padding:13px 15px;border:2px solid #d7e3e9;border-radius:12px;cursor:pointer;background:#fff;font-weight:500!important}
.training-preset:has(input:checked){border-color:#137a55;background:#edf8f2}
.training-preset input{width:20px;min-width:20px;height:20px;min-height:20px;padding:0;border:0;flex-shrink:0;margin:2px 0 0;accent-color:#137a55}
.training-preset span{display:grid;gap:3px}
.training-preset strong{font-size:15px;color:#123149}
.training-preset small{font-size:13px;color:#506778;line-height:1.4}
.training-preset-hint{font-size:13px;color:#4c6577;padding:8px 11px;border-radius:8px;background:#f2f7f9;margin:0}
[hidden]{display:none!important}

/* Precision target cards use the same schematic arrangements as the Tireur competition. */
.training-atelier-card{background:#f4f9fc;border:1px solid #bcd7e5;border-radius:16px;padding:16px;margin:16px 0}
.training-atelier-main{display:grid;grid-template-columns:minmax(155px,205px) minmax(0,1fr);gap:20px;align-items:center}
.training-atelier-drawing{display:grid;place-items:center;background:#fff;border:1px solid #d2e2eb;border-radius:14px;min-height:170px}
.training-atelier-drawing [data-atelier-figure]{width:100%;max-width:190px}
.training-atelier-svg{display:block;width:100%;height:auto;max-height:176px}
.tr-a-circle{fill:#f4e7b4;stroke:#173f58;stroke-width:2}.tr-a-target{fill:#c5ced5;stroke:#566c7d;stroke-width:1.5}
.tr-a-obstacle{fill:#263746;stroke:#14212b;stroke-width:1.5}.tr-a-jack-obstacle{fill:#d77c31;stroke:#834914;stroke-width:1}
.tr-a-jack-target{fill:#d9533f;stroke:#8a2e23;stroke-width:1}.tr-a-direction{stroke:#2a5b79;stroke-width:2}.tr-a-arrow{fill:none;stroke:#2a5b79;stroke-width:2}
.training-atelier-copy h2{margin:8px 0;font-size:clamp(18px,2.8vw,27px)}.training-atelier-copy p{font-size:14px;color:#3f6075}
.training-atelier-distance{display:inline-block;padding:9px 16px;border-radius:9px;background:#155678;color:#fff;font-size:23px}
.training-atelier-hint{font-size:12px;color:#506c7e;margin:11px 0}
/* 20 shots: one compact atelier column, four equally spaced distance columns. */
.training-atelier-progress{overflow-x:auto;min-width:0;max-width:100%;margin-top:12px}
.training-atelier-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:5px;font-size:14px}
.training-atelier-table col.training-atelier-label-col{width:110px}
.training-atelier-table th,.training-atelier-table td{text-align:center;vertical-align:middle;box-sizing:border-box;overflow:hidden;border-bottom:0}
.training-atelier-table thead th{background:#e5f1f7;border:1px solid #c1d9e6;border-radius:9px;padding:9px 2px;font-size:14px;font-weight:850;color:#164460}
.training-atelier-table thead th:first-child{background:transparent;border:0}
.training-atelier-table .atelier-label{background:transparent;border:0;text-align:left;padding:7px 2px;color:#355c74;font-size:13px;font-weight:750;white-space:nowrap}
.training-atelier-table .training-atelier-step{height:46px;padding:4px;border:1px solid #d1dee5;border-radius:9px;background:#fff;font-size:19px;font-weight:850;color:#567188;line-height:1.2;transition:background-color .12s ease}
.training-atelier-table .training-atelier-step.completed{background:#d8f3e3;color:#095e39;border-color:#a9d8bd}
.training-atelier-table .training-atelier-step.score-0{background:#fae0df;color:#96272b;border-color:#eab0ad}
.training-atelier-table .training-atelier-step.score-1{background:#fff0ce;color:#815608;border-color:#e8cc87}
.training-atelier-table .training-atelier-step.score-3{background:#d8ecf7;color:#175779;border-color:#9dcce0}
.training-atelier-table .training-atelier-step.score-5{background:#d1f2df;color:#11683e;border-color:#89cba9}
.training-atelier-table .training-atelier-step.active{background:#e8f3fd;color:#0b608c;border:2px solid #0b608c;box-shadow:0 0 0 2px #98c6de}
@media(max-width:600px){.training-atelier-table{border-spacing:3px}.training-atelier-table col.training-atelier-label-col{width:75px}.training-atelier-table .atelier-label{font-size:11px}.training-atelier-table thead th{padding:8px 2px;font-size:12px}.training-atelier-table .training-atelier-step{height:42px;font-size:17px}}
.shot-status-ok{color:#0c6944;font-weight:700}.shot-status-error{color:#92282e;font-weight:700}
@media(max-width:610px){.training-atelier-main{grid-template-columns:1fr;gap:12px}.training-atelier-drawing{min-height:160px}.training-atelier-drawing [data-atelier-figure]{max-width:170px}}
[hidden]{display:none!important}

/* Training v2.1 – flexible personal training plans and positive milestones. */
.training-plans{background:#f5faf8;border:1px solid #c6e1d2;border-radius:15px;padding:15px;display:grid;gap:14px}
.training-plans h3{font-size:18px;margin:0 0 5px;color:#143a48}.training-plans p{margin:4px 0 10px}
.training-plan-rows{display:grid;gap:9px}.training-plan-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(85px,.8fr) 44px;gap:8px;align-items:end}
.training-plan-row label{font-size:13px}.training-plan-row button{padding:0;width:44px;height:45px;font-size:24px}
.training-plan-total{font-weight:800;color:#12623c}
.training-distance-choices{border:1px solid #bfd6ca;border-radius:10px;display:flex;flex-wrap:wrap;gap:9px;padding:12px}
.training-distance-choices legend{font-weight:800}.training-distance-choices label{display:flex;align-items:center;gap:5px;background:#fff;padding:7px 10px;border:1px solid #d0e0d8;border-radius:9px;font-weight:700}
.training-distance-choices input{width:18px;height:18px;min-height:auto;margin:0}
.training-plan-live{border-radius:15px;background:#ebf7f1;border:1px solid #b0daca;padding:17px;margin:16px 0;display:grid;gap:6px}
.training-plan-live strong{color:#135437;font-size:clamp(19px,2.8vw,25px)}.training-plan-live span{font-size:14px;font-weight:750}.training-plan-live progress{margin:5px 0}.training-plan-live p{margin:0}
.training-plan-details{margin:10px 0 18px}.training-plan-details summary{color:#164c66}.training-plan-details ol{columns:2;padding-left:25px;color:#335b69}.training-plan-details li{break-inside:avoid;padding:3px 4px}
.training-award{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);width:min(580px,calc(100% - 24px));z-index:1000;background:linear-gradient(125deg,#134a3b,#10685a);color:#fff;box-shadow:0 16px 55px rgba(10,40,45,.32);border:2px solid #8ad6ac;border-radius:20px;padding:18px 48px 18px 18px;display:flex;align-items:center;gap:16px;overflow:hidden}
.training-award strong{display:block;font-size:clamp(20px,3vw,27px)}.training-award p{color:#e7fff1;font-size:14px;margin:4px 0}.training-award-icon{border:2px solid #d7ffe8;border-radius:50%;height:58px;width:58px;flex:0 0 58px;display:grid;place-items:center;font-size:32px;background:#24865b}
.training-award-close{position:absolute;right:9px;top:8px;border:0;background:transparent;color:white;font-size:28px;cursor:pointer;padding:3px 10px}
.training-award-sparkles{position:absolute;right:15px;bottom:0;pointer-events:none;opacity:.3;color:#ffe89c;font-size:22px;letter-spacing:4px}.training-award-sparkles.playing{animation:p24spark 1.8s ease-in-out 3}
@keyframes p24spark{0%,100%{transform:translateY(3px) scale(1);opacity:.3}50%{transform:translateY(-23px) scale(1.5);opacity:1}}
@media(max-width:610px){.training-plan-details ol{columns:1}.training-award{bottom:8px;align-items:start;padding:13px 40px 13px 10px;gap:9px}.training-award-icon{height:40px;width:40px;flex-basis:40px;font-size:25px}.training-plan-row{grid-template-columns:minmax(0,1.2fr) minmax(80px,.7fr) 42px;gap:5px}}
@media(prefers-reduced-motion:reduce){.training-award-sparkles.playing{animation:none}}
/* Coach verification, privacy-preserving statistics and structured comparisons */
.coach-status{padding:13px 16px;border-radius:12px;background:#edf4f9;border-left:4px solid #18688b}
.coach-staff,.coach-compare{padding:16px 0;border-top:1px solid var(--line);margin-top:20px}
.coach-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin:13px 0}
.coach-filters label{flex:1;min-width:126px;font-size:13px}
.coach-filters select{width:100%;min-height:42px}
.coach-filters button{min-height:42px}
.compare-bar{width:100%;height:7px;background:#e4eef1;border-radius:8px;margin-top:5px;overflow:hidden}
.compare-bar span{display:block;height:100%;background:#118264;border-radius:8px}
.staff-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:9px 0;flex-wrap:wrap}
.stat-grids{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.stat-card{background:#f6fafb;border:1px solid #dae7ec;border-radius:12px;padding:14px}
.stat-card strong{display:block;color:#123c4e;font-size:22px;margin:5px 0}
.stat-card small{font-size:13px;color:#547083}
.coach-compare .tablewrap{max-height:650px;overflow:auto}
@media(max-width:600px){.stat-grids{grid-template-columns:1fr}.coach-filters{display:grid;grid-template-columns:1fr 1fr}.coach-filters button{grid-column:1/-1}}

/* Coach tasks v2.4: personal athlete inbox, consent and trainer assignment tools. */
.coach-assignment-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.coach-assignment-heading h2{margin:4px 0}.coach-task-counter{white-space:nowrap;border-radius:18px;background:#e6f4ed;color:#116846;font-weight:800;padding:8px 14px}
.coach-assignment-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:13px}
.coach-assignment{border:1px solid #c7dee4;border-radius:15px;background:#f7fbfd;padding:16px;display:grid;gap:9px}
.coach-assignment-head{display:flex;justify-content:space-between;gap:10px;align-items:start;flex-wrap:wrap}
.coach-assignment-head strong{display:block;font-size:18px;color:#123b51}
.coach-assignment-head small{display:block;color:#557282;font-size:12px;line-height:1.5;margin-top:4px}
.coach-assignment-state{border-radius:18px;background:#e5eff7;color:#1d5879;font-size:12px;padding:5px 9px;font-weight:800}
.coach-assignment p{margin:0}.coach-assignment progress{margin:0;height:11px}.coach-assignment-action{display:grid;gap:10px}
.coach-assignment-action button{justify-self:start}.coach-task-consent{display:flex!important;align-items:flex-start;gap:10px;font-size:13px;font-weight:500;line-height:1.5}
.coach-task-consent input{flex:none;width:18px;height:18px;min-height:18px;padding:0;margin:3px 0 0}
.coach-task-complete{font-weight:800;color:#0e7551}.coach-task-progress{width:100%;margin-top:10px}.coach-task-progress table{min-width:400px}
.coach-task-form{margin-top:20px;padding:18px;border:1px solid #c7dee4;border-radius:15px;background:#f7fbfd}
.coach-task-athletes{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:9px;padding:12px;border:1px solid #c7dee4;border-radius:12px}
.coach-task-athletes legend{font-weight:800}.coach-task-athletes label{display:flex;align-items:center;gap:7px;padding:8px 10px;background:white;border-radius:9px}
.coach-task-athletes input{width:18px;height:18px;min-height:18px;margin:0}
.coach-athlete-analysis{border:1px solid #c7dee4;border-radius:14px;padding:18px;margin:20px 0;background:#f8fbfd}
@media(max-width:610px){.coach-assignment-heading{display:block}.coach-task-counter{display:inline-block;margin:0 0 12px}.coach-task-form{padding:12px}}

/* Coach athlete roster and explicitly shared multi-group trainings (v2.5) */
.coach-roster{background:#f7fafc;border:1px solid #d3e2eb;border-radius:15px;padding:18px;margin:20px 0}
.coach-roster-email{display:block;color:#617587;font-size:12px;overflow-wrap:anywhere}
.coach-roster .danger,.coach-roster .secondary{min-height:36px;padding:7px 10px;font-size:13px}
.coach-invite-form{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.coach-invite-form label{display:grid;gap:4px;flex:1 1 260px;font-weight:750;font-size:13px}
.coach-invite-form input{min-height:42px;border:1px solid #a7bdca;border-radius:10px;padding:8px 11px;width:100%;font:inherit}
.training-multishare{background:#f6faf7;border:1px solid #c9dfd5;border-radius:14px;margin:16px 0;padding:16px}
.training-multishare h2{font-size:19px}
.session-share-form{display:grid;gap:9px}
.session-share-option{display:flex;gap:10px;align-items:center;padding:9px 12px;background:#fff;border:1px solid #d2e4da;border-radius:10px;cursor:pointer}
.session-share-option input{width:19px;height:19px;accent-color:#137a55;flex:0 0 19px}
.session-share-option span{display:grid;gap:1px}
.session-share-option small{color:#5c7681;font-size:12px}
.session-share-option:has(input:disabled){background:#e9f1ef;cursor:default}
@media(max-width:650px){.coach-roster{padding:12px}.training-multishare{padding:12px}}


/* Statistics dashboards v2.6 */
.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px;margin-top:14px}
.dash-card{border:1px solid #d4e2ea;border-radius:16px;background:linear-gradient(180deg,#fbfdfe 0%,#f3f8fb 100%);padding:16px;display:grid;gap:12px;box-shadow:0 6px 16px rgba(17,52,79,.05)}
.dash-card h3{margin:0;font-size:20px;color:#113451}.dash-card p{margin:0}
.dash-bars{display:grid;gap:12px}.dash-row{display:grid;gap:5px}.dash-row-head{display:flex;justify-content:space-between;gap:10px;align-items:end;flex-wrap:wrap}
.dash-row-head strong{font-size:15px;color:#123b51}.dash-row-head span{font-size:12px;color:#5d7686}
.dash-bar{height:12px;border-radius:999px;background:#dfeaf1;overflow:hidden;position:relative}.dash-bar.compact{height:10px}
.dash-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0c6d9c 0%,#1a88be 100%)}
.dash-row.simple .dash-bar span{background:linear-gradient(90deg,#0f7e58 0%,#23a36f 100%)}
.dash-row.points .dash-bar span{background:linear-gradient(90deg,#1f4c90 0%,#3f72bf 100%)}
.dash-row small,.dash-trend-card em,.compare-meta span{color:#5a7485;font-size:12px}
.dash-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(68px,1fr));gap:10px;align-items:end;min-height:170px}
.dash-col{display:grid;gap:6px;justify-items:center;text-align:center}
.dash-col small{font-size:12px;color:#5a7485;font-weight:700}.dash-col strong{font-size:14px;color:#123b51}.dash-col em{font-style:normal;font-size:11px;color:#6f8491}
.dash-col-track{width:100%;height:92px;border-radius:14px;background:#ebf1f5;display:flex;align-items:flex-end;justify-content:center;padding:6px;box-sizing:border-box}
.dash-col-track span{display:block;width:100%;max-width:46px;border-radius:10px 10px 6px 6px;background:linear-gradient(180deg,#5ba8e5 0%,#174a86 100%)}
.dash-trend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.dash-trend-card{border:1px solid #d6e3ea;border-radius:14px;padding:12px;background:#fff;display:grid;gap:8px}
.dash-trend-card strong{font-size:26px;color:#113451}
.compare-dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px;margin:14px 0}
.compare-card{border:1px solid #d4e2ea;border-radius:16px;background:linear-gradient(180deg,#fff 0%,#f5f9fc 100%);padding:14px;display:grid;gap:10px;box-shadow:0 5px 14px rgba(17,52,79,.04)}
.compare-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.compare-card-head strong{font-size:16px;color:#113451}
.compare-main{font-size:28px;font-weight:900;color:#0f6a96}.compare-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px}
@media(max-width:720px){.dashboard-grid{grid-template-columns:1fr}.dash-row-head{display:block}.compare-dashboard{grid-template-columns:1fr}.compare-meta{grid-template-columns:1fr}}


/* v2.7.1 – Focus the live session on the shot, keep privacy options last. */
#shotentry .training-atelier-card{margin-bottom:12px}
#shotentry .training-scoring-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;margin:16px 0 9px}
#shotentry .training-scoring-heading strong{color:#123b51;font-size:clamp(17px,2.3vw,22px)}
#shotentry .training-scoring-heading small{color:#557183;font-size:13px}
#shotentry .shotbuttons{margin:0}
#shotentry .shots{gap:10px}
#shotentry .shots button{min-height:100px;font-size:clamp(19px,2vw,24px);font-weight:850}
#shotentry [data-shot-status]{margin:10px 0 8px;min-height:1.35em}
#shotentry .training-scoring-details,#shotentry .training-freigaben{margin-top:20px;border:1px solid #d0e0e7;border-radius:13px;background:#f7fafc;overflow:hidden}
#shotentry .training-scoring-details summary,#shotentry .training-freigaben summary{cursor:pointer;list-style:revert;padding:15px 18px;font-weight:750;color:#31586e;margin:0;background:#f4f8fa}
#shotentry .training-scoring-details summary:hover,#shotentry .training-freigaben summary:hover{background:#edf4f7}
#shotentry .training-scoring-details .tablewrap{padding:0 15px 15px}
#shotentry .training-freigaben{margin-top:14px;border-color:#c9dfd8;background:#fafdfb}
#shotentry .training-freigaben summary{background:#f1f8f4;color:#205844}
#shotentry .training-freigaben summary span{display:inline-grid;gap:3px;vertical-align:middle}
#shotentry .training-freigaben summary strong{font-size:16px}
#shotentry .training-freigaben summary small{font-weight:400;color:#59776b;font-size:12px}
#shotentry .training-freigaben-inner{padding:0 15px 15px}
#shotentry .training-freigaben-inner>.training-multishare{margin:6px 0 0;box-shadow:none}
#shotentry .training-freigaben-inner>.sharing-notice{margin:12px 0 8px}
@media(max-width:680px){
 #shotentry .shots.points{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 #shotentry .shots button{min-height:84px;font-size:20px}
 #shotentry .training-scoring-heading{display:grid;gap:3px}
 #shotentry .training-scoring-details summary,#shotentry .training-freigaben summary{padding:14px}
}


/* v2.8.0 – CSP-safe analytics: no inline style attributes, fixed percentage axis. */
.dash-card {min-width:0; overflow:hidden;}
.dash-row-head {align-items:center;}
.dash-row-head span {overflow-wrap:anywhere;}
.dash-meter {display:block;box-sizing:border-box;width:100%;height:15px;margin:5px 0 2px;border:0;border-radius:999px;background-color:#dfeaf1;overflow:hidden;appearance:none;-webkit-appearance:none;accent-color:#10825e;}
.dash-meter::-webkit-progress-bar {background:#dfeaf1;border-radius:999px;}
.dash-meter::-webkit-progress-value {background:linear-gradient(90deg,#08784e,#2caf78);border-radius:999px;}
.dash-meter::-moz-progress-bar {background:linear-gradient(90deg,#08784e,#2caf78);border-radius:999px;}
.dash-meter-points {accent-color:#245da4;}
.dash-meter-points::-webkit-progress-value {background:linear-gradient(90deg,#184d8a,#4d8bd0);}
.dash-meter-points::-moz-progress-bar {background:linear-gradient(90deg,#184d8a,#4d8bd0);}
.dash-meter-neutral::-webkit-progress-value {background:#197b98;}
.dash-meter-neutral::-moz-progress-bar {background:#197b98;}
.dash-card .muted{font-size:13px;line-height:1.4}
.dash-chart-scroll {width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;padding:4px 0;}
.dash-chart-scroll:focus-visible {outline:2px solid #165b94;outline-offset:-2px;border-radius:5px;}
.dash-svg {display:block;max-width:none;height:auto;background:#fff;border-radius:12px;}
.dash-axis {stroke:#deebf1;stroke-width:1;}
.dash-axis-label {fill:#657d8b;font-size:10px;font-weight:650;}
.dash-svg-bar {fill:#13855d;stroke:none;}
.dash-svg-bar.points {fill:#2f6cab;}
.dash-svg-bar.score-0 {fill:#a9343d;}
.dash-svg-bar.score-1 {fill:#ad7918;}
.dash-svg-bar.score-3 {fill:#22749f;}
.dash-svg-bar.score-5 {fill:#13855d;}
.dash-svg-value {fill:#122e41;font-size:10px;font-weight:800;}
.dash-svg-bottom-label {fill:#2a5068;font-size:10px;font-weight:750;}
.dash-svg-caption {fill:#718492;font-size:9px;}
.compare-dashboard .dash-meter {margin:1px 0 5px;}
.compare-card {min-width:0;}
.compare-card-head strong {overflow-wrap:anywhere;}
@media(max-width:650px){.dash-card{padding:13px}.dash-svg-value{font-size:10px}.compare-card{padding:13px}}
@media(forced-colors:active){.dash-meter{forced-color-adjust:auto}.dash-svg-bar{fill:CanvasText}.dash-axis{stroke:CanvasText}}

.dash-swipe-hint{display:none;margin:0!important;font-size:12px!important;color:#506d80!important}
.dash-row-head span{display:inline-block;margin-left:6px}
@media(max-width:650px){.dash-swipe-hint{display:block}.dash-row-head span{display:block;margin:3px 0 0}}

/* Coach athlete invitations via messenger and email */
.coach-invites{border:1px solid #c8dbe4;border-radius:16px;background:#f4f9fc;padding:17px;margin:18px 0 24px}
.coach-invites h2{margin:0 0 14px}
.coach-invite-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.coach-invite-card{background:#fff;border:1px solid #d0e1e9;border-radius:13px;padding:15px;display:grid;align-content:start;gap:10px}
.coach-invite-card h3{font-size:18px;margin:0;color:#153d54}.coach-invite-card p{margin:0;font-size:13px;line-height:1.5}
.coach-invite-card .coach-invite-form{display:grid;gap:10px;margin-top:6px}.coach-invite-card button{justify-self:start}
.coach-invite-card .coach-invite-caution{color:#6d5660;font-size:12px}
.coach-invite-active{border-top:1px solid #d0e1e9;padding-top:10px;display:grid;gap:8px;font-size:12px;color:#28536b}
.coach-invite-active form{margin:0}.coach-invite-active button{padding:5px 0}
.coach-invite-created{margin:15px 0;background:#e7f5ed;border:1px solid #a7d8bd;border-radius:13px;padding:15px}
.coach-invite-created strong{color:#11583f}.coach-invite-created p{margin:6px 0 0;font-size:13px}
.coach-whatsapp-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-height:40px;padding:10px 13px;border-radius:9px;background:#e7f1ee;color:#155340;border:1px solid #bad7cb;font-weight:700}
.coach-invite-created .sharelink{align-items:center;gap:10px}.coach-invite-created .sharelink label{min-width:min(100%,260px)}
@media(max-width:720px){.coach-invite-options{grid-template-columns:1fr}.coach-invites{padding:12px}.coach-invite-created .sharelink{display:flex;flex-wrap:wrap}.coach-invite-created .sharelink label{flex:1 1 100%}.coach-invite-created .sharelink button,.coach-invite-created .sharelink a{flex:1 1 150px}}

/* Self-service membership for friends only; coach membership remains trainer-managed. */
.group-membership-actions{margin-top:25px;padding:18px;border:1px solid #cbdde6;background:#f6fafc;border-radius:14px;display:grid;gap:9px}
.group-membership-actions h2{margin:0;font-size:19px;color:#163d56}
.group-membership-actions p{margin:0;line-height:1.55}
.group-membership-actions form{margin:3px 0 0}
.group-membership-actions button{width:auto;max-width:100%;white-space:normal;text-align:center}
.group-membership-actions.coach-managed-membership{background:#f4f8fb;border-left:4px solid #2f6588}
.group-overview-entry{margin-bottom:13px}
.group-overview-entry .groupitem{margin-bottom:4px}
.group-overview-entry>small{display:block;color:#516b7b;font-size:12px;line-height:1.45;padding:0 5px}
@media(max-width:600px){.group-membership-actions{padding:13px}.group-membership-actions button{width:100%}}

/* Explicit dual role: a verified coach may also be a player in this group. */
.coach-player-role{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 22px;background:#f2f8fb;border:1px solid #bdd9e8;border-radius:16px;padding:17px;margin:18px 0}
.coach-player-role h2{margin:5px 0 8px;font-size:clamp(18px,2vw,23px)}.coach-player-role p{margin:5px 0}
.coach-player-role .coach-player-status{display:inline-block;background:#e0f2e8;color:#15593d;border-radius:999px;padding:5px 11px;font-weight:800;font-size:13px}
.coach-player-role form{justify-self:end}.coach-player-role button{white-space:normal;min-height:42px}
.coach-player-role .coach-player-note{grid-column:1/-1;font-size:12px}
@media(max-width:680px){.coach-player-role{grid-template-columns:1fr}.coach-player-role form{justify-self:stretch}.coach-player-role button{width:100%}}

/* v2.10 - all memberships are reachable from the top navigation and a dedicated page. */
.top-groups-link{background:#e4f3eb;color:#105e43!important;border:1px solid #bbdccb;border-radius:11px;padding:8px 12px;white-space:nowrap}
.top-groups-link[aria-current="page"]{background:#166c50;color:#fff!important;border-color:#166c50}
.training-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 18px}
.training-shortcut{display:grid;gap:4px;align-content:center;padding:14px 17px;min-height:76px;background:#fff;border:1px solid #c8dbe4;border-radius:15px;color:#153c54;text-decoration:none}
.training-shortcut:first-child{border-color:#b6d9c6;background:#f0faf4}.training-shortcut strong{font-size:17px}.training-shortcut span{font-size:12px;color:#546e7d}
.group-center-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:21px 0 25px}
.group-center-summary span{display:grid;gap:3px;padding:11px 12px;border:1px solid #d5e4e8;background:#f4f8fa;border-radius:12px;color:#516b78;font-size:12px}
.group-center-summary strong{font-size:25px;line-height:1.1;color:#113c54}
.group-center h2{margin:25px 0 12px}.group-center-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:14px}
.group-center-card{display:grid;align-content:start;gap:12px;border:1px solid #cbdce5;border-radius:15px;background:#f9fcfd;padding:17px;min-width:0}
.group-center-card p{font-size:13px;color:#4d6878;line-height:1.55;margin:0}
.group-center-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.group-center-title>div{display:grid;gap:4px;min-width:0}.group-center-title strong{font-size:19px;color:#143951;overflow-wrap:anywhere}.group-center-title small{font-size:12px;color:#617b89}
.group-center-pill{display:inline-block;white-space:nowrap;font-size:12px;font-weight:800;padding:5px 9px;border-radius:99px;background:#e6f3ed;color:#176647}
.group-center-coach{background:#f4f8fc;border-color:#c2d7ea}.group-center-coach .group-center-pill{background:#dfeafb;color:#244e83}
.group-center-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:auto}.group-center-actions form{margin:0}
.group-center-actions button,.group-center-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;text-align:center;text-decoration:none;font-size:13px;white-space:normal}
.group-center-rule{font-size:12px;color:#5d7280}.group-center-create-form{max-width:570px;grid-template-columns:minmax(0,1fr) auto;align-items:end}
.group-center-create-form button{margin-bottom:0}.group-center-create-form label{min-width:0}
@media(max-width:720px){.group-center-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.training-shortcuts{grid-template-columns:1fr}.group-center-card{padding:14px}.group-center-create-form{grid-template-columns:1fr}.group-center-actions>*{flex-grow:1}}

/* v2.11 UI: consistent product navigation, focused training journey and accessible data depth. */
:root{--ui-surface:#ffffff;--ui-shadow:0 12px 30px rgba(17,47,70,.07),0 2px 6px rgba(17,47,70,.04);--ui-outline:#d8e5ec}
body{background:radial-gradient(ellipse at 10% 5%,rgba(196,228,239,.35) 0%,transparent 34%),linear-gradient(180deg,#f2f7fa,#edf3f7)}
.shell{width:min(1220px,calc(100% - 26px))}
.top{display:block;padding:13px 0 17px;margin-bottom:13px;border-bottom:1px solid #d6e3eb}
.training-head-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:49px}
.training-head-account{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0;font-size:13px;color:#4f697a}
.training-head-account .who{font-weight:750;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.training-head-account .linkbtn{color:#315b72;font-size:13px;white-space:nowrap}
.training-head-account a{text-decoration:none;font-weight:700}
.training-main-nav{display:flex;align-items:center;gap:24px;flex-wrap:nowrap;overflow-x:auto;border-top:1px solid #e0eaf0;margin-top:9px;padding:2px 0 0;scrollbar-width:thin}
.training-main-nav a{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:47px;padding:8px 4px 10px;background:transparent!important;color:#546b7c!important;border:0!important;border-bottom:3px solid transparent!important;border-radius:0!important;white-space:nowrap;font-weight:750;font-size:14px;text-decoration:none}
.training-main-nav a:hover{color:#0e7053!important;border-bottom-color:#b1d7c3!important}
.training-main-nav a[aria-current="page"]{color:#135d47!important;border-bottom-color:#159064!important;font-weight:900}
.training-main-nav a:focus-visible,.training-section-nav a:focus-visible{outline:3px solid #77b9d1;outline-offset:-3px}
.training-shortcuts{display:none}
.hero{padding:25px 28px;margin-bottom:14px;background:linear-gradient(120deg,#102f49 4%,#15516a 47%,#176a58 100%);box-shadow:0 18px 42px rgba(16,47,73,.16);position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;width:230px;height:230px;right:-80px;top:-115px;border:1px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 0 0 32px rgba(255,255,255,.035),0 0 0 70px rgba(255,255,255,.02);pointer-events:none}
.hero h1{font-size:clamp(27px,3.5vw,37px)}
.training-section-nav{display:flex;gap:7px;flex-wrap:wrap;padding:7px;background:#eaf2f5;border:1px solid #d5e4eb;border-radius:13px;margin:0 0 17px}
.training-section-nav a{padding:10px 13px;color:#22556f;text-decoration:none;font-size:13px;font-weight:800;white-space:nowrap;border-radius:9px;transition:background .16s ease}
.training-section-nav a:hover{background:#fff;color:#086443}
.training-group-nav{margin-top:14px;margin-bottom:19px}
.panel{border:1px solid var(--ui-outline);box-shadow:var(--ui-shadow);background:#fff}
.section-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.section-heading h2{margin:0;font-size:clamp(20px,2.5vw,25px)}
.section-heading .eyebrow{margin-bottom:1px}
.section-index{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;background:linear-gradient(145deg,#155c75,#0f8b6a);color:#fff;border-radius:11px;font-weight:900;font-size:14px;box-shadow:inset 1px 1px 0 rgba(255,255,255,.25),0 7px 14px rgba(19,87,95,.17)}
.training-kpis{gap:12px;margin-bottom:8px}
.training-kpis>div{padding:17px 18px;min-height:108px;background:linear-gradient(150deg,#fff,#f3f8fb);box-shadow:0 10px 23px rgba(17,47,70,.06);border:1px solid #dbe8ef;border-top:3px solid #3d9c8b;align-content:center}
.training-kpis>div:nth-child(2){border-top-color:#20a16f}
.training-kpis>div:nth-child(3){border-top-color:#3a72b7}
.training-kpis>div:nth-child(4){border-top-color:#697fa0}
.training-kpis strong{letter-spacing:-.03em;color:#163e55;font-size:clamp(24px,3vw,32px);line-height:1.15}
.training-kpis small{font-size:11px;color:#698091}
.training-kpi-note{font-size:12px;color:#667d88;margin:0 0 20px}
.coach-assignment-dashboard,.training-start-panel,.training-dashboard-panel,.training-history-panel{scroll-margin-top:20px}
.coach-assignment-dashboard{border-left:4px solid #2a8c76}
.coach-assignment-dashboard .coach-assignment-heading{margin-bottom:12px}
.training-start-panel{background:linear-gradient(130deg,#fff 0%,#f7fbfa 100%)}
.training-start-panel .training-preset-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.training-start-panel .training-preset{min-height:72px;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}
.training-start-panel .training-preset:has(input:checked){box-shadow:0 6px 15px rgba(20,112,79,.1);transform:translateY(-1px)}
.training-start-panel form{max-width:none}
.training-start-panel [data-training-distance],.training-start-panel [data-plans],.training-start-panel .training-preset-hint{max-width:850px}
.start-sharing{margin:2px 0 0;padding:0;border:1px solid #d4e4e3;border-radius:12px;background:#f8fbfa;max-width:850px}
.start-sharing summary{padding:11px 14px;color:#315f5c!important;font-size:13px}
.start-sharing label{padding:0 14px 14px}
.training-start-panel .primary.big{width:min(100%,360px);background:linear-gradient(120deg,#102f49,#12654d);box-shadow:0 10px 20px rgba(16,74,75,.14)}
.training-dashboard-panel{background:linear-gradient(135deg,#fff,#f7fafc)}
.dashboard-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
.dash-card{border:1px solid #d9e5eb;background:linear-gradient(146deg,rgba(255,255,255,.97),#eff6fa);box-shadow:0 12px 25px rgba(18,52,75,.075),inset 0 1px 0 #fff;min-width:0}
.dash-card h3{font-size:clamp(16px,1.7vw,19px);line-height:1.3}
.dash-kicker{font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-weight:950;color:#187b70}
.dash-card-heading{display:grid;gap:5px;min-height:48px}
.dash-donut-layout{display:grid;grid-template-columns:minmax(138px,190px) minmax(0,1fr);gap:14px;align-items:center}
.dash-donut-svg{display:block;width:100%;max-width:185px;height:auto;overflow:visible;filter:drop-shadow(0 9px 10px rgba(24,57,84,.11))}
.dash-donut-depth{stroke:#9db6c2;opacity:.35}
.dash-donut-track{stroke:#e1eaf0}
.dash-donut-segment{transition:stroke-width .15s ease}
.dash-donut-segment.miss,.dash-donut-dot.miss{stroke:#d55e64;background:#d55e64}
.dash-donut-segment.hit,.dash-donut-dot.hit{stroke:#319a86;background:#319a86}
.dash-donut-segment.carreau,.dash-donut-dot.carreau{stroke:#236997;background:#236997}
.dash-donut-segment.score-0,.dash-donut-dot.score-0{stroke:#c65e66;background:#c65e66}
.dash-donut-segment.score-1,.dash-donut-dot.score-1{stroke:#d7a23a;background:#d7a23a}
.dash-donut-segment.score-3,.dash-donut-dot.score-3{stroke:#368bc1;background:#368bc1}
.dash-donut-segment.score-5,.dash-donut-dot.score-5{stroke:#28a779;background:#28a779}
.dash-donut-center{fill:#123b54;font-weight:900;font-size:17px;letter-spacing:-.02em}
.dash-donut-sublabel{fill:#5c7688;font-size:11px;font-weight:650}
.dash-donut-legend{display:grid;gap:9px}
.dash-donut-legend-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto 25px;align-items:center;gap:7px;font-size:12px;color:#33576b}
.dash-donut-legend-row strong{color:#173f55;font-variant-numeric:tabular-nums}
.dash-donut-legend-row small{text-align:right;color:#658091}
.dash-donut-dot{display:block;width:10px;height:10px;border-radius:50%;border:1px solid rgba(30,50,70,.1);box-shadow:0 1px 2px rgba(10,30,50,.18)}
.dash-extras{margin:15px 0 0;border:1px solid #d7e4ed;border-radius:14px;padding:0;background:#f4f8fb}
.dash-extras>summary{color:#1d536f!important;padding:14px 16px;font-size:14px;list-style-position:inside}
.dash-extras>.dashboard-grid{padding:0 13px 14px;margin-top:0}
.training-detail-block{padding:0;overflow:hidden}
.training-detail-block>summary{color:#1d536f!important;background:#eff5f8;padding:17px 23px;font-weight:850;font-size:16px}
.training-detail-content{padding:15px 18px 1px}
.training-detail-content>.panel,.training-detail-content .cols>.panel{box-shadow:none;border-color:#e0eaf0;background:#fbfdfe;padding:17px}
.training-detail-grid{margin:0}
.training-history-panel .tablewrap{border-radius:12px;border:1px solid #e0e9ef}
.training-history-panel th{position:sticky;top:0}
.group-center-card{background:linear-gradient(145deg,#fff,#f4f9fc);box-shadow:0 9px 20px rgba(18,53,77,.07)}
.group-center-summary span{background:linear-gradient(145deg,#fff,#f3f8fa)}
.group-center .group-center-btn{background:#eaf2f7;box-shadow:none}
.coach-compare,.coach-athlete-analysis{scroll-margin-top:24px}
.compare-card{box-shadow:0 12px 26px rgba(24,60,82,.095),inset 0 1px 0 #fff}
.training-focus-panel{border:1px solid #c5dae4}
.training-focus-panel .training-livecount{position:relative;background:linear-gradient(110deg,#eaf4f7,#e8f6ef);border:1px solid #d3e5e7;box-shadow:inset 0 1px 0 #fff}
.training-focus-panel .training-atelier-card{margin:12px 0;padding:14px}
.training-focus-panel .training-scoring-heading{margin-top:14px}
.training-focus-panel .shots button{border-bottom:4px solid rgba(0,0,0,.18);box-shadow:0 6px 12px rgba(20,48,70,.13);transition:transform .09s ease,box-shadow .09s ease}
.training-focus-panel .shots button:active{transform:translateY(2px);box-shadow:0 2px 5px rgba(20,48,70,.12)}
.training-focus-panel .shots button:focus-visible{outline:3px solid #9acddd;outline-offset:2px}
.training-focus-panel .training-freigaben{margin-top:24px}
@media(max-width:940px){.dash-donut-layout{grid-template-columns:1fr;justify-items:center}.dash-donut-legend{width:min(100%,260px)}}
@media(max-width:760px){
 .training-start-panel .training-preset-choices,.dashboard-overview{grid-template-columns:1fr}
 .training-section-nav{gap:5px}.training-section-nav a{flex:1 1 40%;text-align:center;padding:10px 5px;font-size:12px}
 .training-main-nav{gap:19px}
 .training-head-row .brand img{height:37px}
 .training-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .dash-donut-layout{grid-template-columns:minmax(110px,150px) minmax(0,1fr);justify-items:stretch}
 .dash-donut-legend{width:auto}
 .training-detail-content{padding:11px}
}
@media(max-width:490px){
 .top{padding-top:9px}.training-head-account .who{max-width:115px}
 .training-main-nav{gap:18px}.training-main-nav a{font-size:13px;min-height:42px}
 .hero{padding:21px}.hero h1{font-size:26px}
 .training-kpis>div{padding:13px 12px;min-height:95px}
 .training-kpis strong{font-size:25px}
 .training-start-panel .training-preset{min-height:64px;padding:11px}
 .dash-donut-layout{grid-template-columns:minmax(0,135px) minmax(0,1fr);gap:7px}
 .dash-donut-legend-row{grid-template-columns:9px minmax(0,1fr) auto;gap:5px;font-size:11px}
 .dash-donut-legend-row small{display:none}
 .training-focus-panel{padding:12px}
 .training-focus-panel .training-atelier-main{display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px;align-items:center}
 .training-focus-panel .training-atelier-drawing{min-height:110px;padding:4px}
 .training-focus-panel .training-atelier-drawing [data-atelier-figure]{max-width:100px}
 .training-focus-panel .training-atelier-svg{max-height:98px}
 .training-focus-panel .training-atelier-copy h2{font-size:17px;line-height:1.25}
 .training-focus-panel .training-atelier-distance{font-size:19px;padding:7px 10px}
 .training-focus-panel .training-atelier-hint{font-size:11px;margin:7px 0}
 .training-focus-panel .training-atelier-table .training-atelier-step{height:39px;font-size:17px}
 .training-focus-panel .shots button{min-height:83px}
 .training-livecount{margin:12px 0;padding:11px 13px}
}
@media(prefers-reduced-motion:reduce){.training-preset,.training-focus-panel .shots button,.dash-donut-segment{transition:none!important}}

/* Compact gauges in player comparison keep numbers readable and show value on a 0–100 scale. */
.compare-card-visual{display:flex;align-items:center;gap:12px;min-height:88px}
.dash-gauge{width:86px;height:86px;flex:0 0 86px;filter:drop-shadow(0 5px 7px rgba(19,53,70,.11))}
.dash-gauge-depth{stroke:#a8bfcc;opacity:.35}.dash-gauge-track{stroke:#e0e9ef}.dash-gauge-value{stroke:#15906c;stroke-linecap:round}
.dash-gauge-text{fill:#123b54;font-size:16px;font-weight:900}
.compare-card .compare-main{margin:0;font-size:clamp(22px,2.8vw,28px)}
.compare-card-visual+progress{margin-top:0}
@media(max-width:450px){.dash-gauge{width:73px;height:73px;flex-basis:73px}.compare-card-visual{min-height:73px}}

/* Training account security / passkeys */
.training-security{display:grid;gap:14px}
.training-security h3{margin:14px 0 3px}
.training-security>p{margin:0}
.auth-method{border:1px solid #cbdce5;border-radius:12px;padding:13px;display:flex;gap:14px;flex-wrap:wrap}
.auth-method legend{font-weight:800;color:#153d57;padding:0 4px}
.auth-method label{display:flex!important;gap:7px;align-items:center;font-size:14px}
.auth-method input{width:19px;min-width:19px;height:19px;min-height:19px;margin:0;accent-color:#0f815b}
.auth-passkey-box{background:#f0f7fb;border:1px solid #c8dfe9;border-radius:14px;padding:16px;margin:15px 0}
.auth-passkey-box button{min-height:48px}
.training-security [data-passkey-auth]{background:#f0f8f5;border:1px solid #cce1d5;border-radius:14px;padding:15px;display:grid;gap:10px}
.training-security [data-passkey-auth] button{justify-self:start}
.auth-key-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid #d9e6eb}
@media(max-width:560px){.auth-method{display:grid}.auth-key-row{display:grid;gap:6px}}


/* Atelier × distance precision heatmap v2.12.1; explicit, fixed score scale 0–5. */
.dash-matrix-card{margin:18px 0;display:block;overflow:hidden;background:linear-gradient(160deg,#ffffff 0%,#f1f7fb 100%)}
.dash-matrix-card .dash-card-heading{margin-bottom:8px}
.dash-matrix-scroll{overflow-x:auto;max-width:100%;padding-bottom:8px;-webkit-overflow-scrolling:touch}
.dash-matrix{width:100%;min-width:600px;border-collapse:separate;border-spacing:6px;table-layout:fixed;font-variant-numeric:tabular-nums}
.dash-matrix th,.dash-matrix td{border:0;vertical-align:middle}
.dash-matrix thead th{background:#e7f0f5;color:#244f67;text-align:center;border-radius:10px;padding:11px 3px;font-weight:850;font-size:14px}
.dash-matrix thead th:first-child{width:156px;text-align:left;padding-left:12px}
.dash-matrix thead .dash-matrix-total-head{background:#dbeae8}
.dash-matrix tbody th{background:#eef5f8;border-radius:10px;padding:10px;text-align:left}
.dash-matrix tbody th strong{font-size:14px;display:block;color:#16445b}
.dash-matrix tbody th small{display:block;font-size:11px;font-weight:500;color:#597487;line-height:1.3;margin-top:4px}
.dash-matrix tfoot th{padding:10px 8px;background:#deebe9;color:#1d554c;border-radius:10px;text-align:left}
.dash-matrix .dash-heat{height:84px;padding:6px 3px;border:1px solid rgba(33,63,80,.15);border-radius:12px;text-align:center;box-shadow:inset 0 1px rgba(255,255,255,.5),0 3px 7px rgba(16,45,65,.06)}
.dash-heat strong{display:block;font-size:clamp(16px,2vw,22px);font-weight:900;line-height:1.1;white-space:nowrap}
.dash-heat small,.dash-heat em{display:block;font-size:10px;font-weight:650;line-height:1.5;font-style:normal}
.dash-heat .dash-heat-caution{display:block;font-size:9px;opacity:.7;text-decoration:underline dotted}
.dash-heat.heat-0,.dash-matrix-legend .heat-0{background:#f8d9da;color:#7a252b}
.dash-heat.heat-1,.dash-matrix-legend .heat-1{background:#fae4c4;color:#795122}
.dash-heat.heat-2,.dash-matrix-legend .heat-2{background:#f9edb8;color:#725c18}
.dash-heat.heat-3,.dash-matrix-legend .heat-3{background:#cdeee0;color:#135943}
.dash-heat.heat-4,.dash-matrix-legend .heat-4{background:#a6dfba;color:#155633}
.dash-heat.dash-heat-empty,.dash-matrix-legend .heat-empty{background:#edf2f5;color:#8194a1}
.dash-heat.dash-heat-few{outline:2px dotted rgba(39,69,90,.3);outline-offset:-4px}
.dash-heat.dash-heat-total{border:2px solid #739e9d}
.dash-matrix-legend{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:12px 0 16px;font-size:11px;color:#516a78}
.dash-matrix-legend>span{display:inline-flex;align-items:center;gap:5px}
.dash-matrix-legend i{display:inline-block;width:14px;height:14px;border:1px solid rgba(30,60,75,.14);border-radius:4px}
.dash-matrix-insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;margin-top:12px}
.dash-matrix-insights>div{padding:13px;border:1px solid #d8e5e8;background:#ffffff;border-radius:12px;display:grid;gap:5px}
.dash-matrix-insights small{font-size:11px;color:#557080;font-weight:700}
.dash-matrix-insights strong{font-size:18px;color:#15435a;line-height:1.25}
.dash-matrix-insights span{font-size:12px;color:#597282}
.dash-matrix-caution{grid-column:1/-1;color:#6a5a30;font-size:13px}
.dash-matrix-trend{margin:14px 0 7px;background:#e9f4f1;border-radius:9px;padding:10px 12px;font-size:13px}
.dash-matrix-note{margin:10px 0 0;color:#607889;font-size:12px}
.dash-matrix-empty{padding:11px;border:1px dashed #bed1db;color:#5d7485;border-radius:11px;background:#f6fafc;font-size:13px}
@media(max-width:580px){.dash-matrix{min-width:565px;border-spacing:4px}.dash-matrix .dash-heat{height:72px}.dash-heat strong{font-size:18px}.dash-heat small,.dash-heat em{font-size:10px}.dash-matrix-insights{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-matrix-card{padding:12px}}
@media(max-width:380px){.dash-matrix-insights{grid-template-columns:1fr}}

.dash-matrix-swipe-hint{display:none;color:#456c80;font-size:12px;font-weight:750;margin:7px 0}
@media(max-width:680px){.dash-matrix-swipe-hint{display:block}}

/* Group competition & coach task dashboards v2.13: responsive, no inline percentage CSS. */
.gc-hub,.gc-group-stats,.gc-personal{background:linear-gradient(145deg,#fff 0%,#f0f7fb 100%);border:1px solid #c9dce8;border-radius:20px;padding:22px;margin:20px 0;box-shadow:0 11px 27px rgba(19,54,77,.075)}
.gc-hub-head{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:16px}.gc-hub-head h2,.gc-personal h2{margin:5px 0 9px;color:#153d58}
.gc-hub-head p{margin:0}
.gc-mainnav{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.gc-mainnav a{background:#e8f2f8;border:1px solid #c1d9e6;border-radius:999px;color:#154966;padding:9px 15px;font-weight:700;text-decoration:none}
.gc-mainnav a:focus-visible,.gc-mainnav a:hover{background:#d6eaf4;outline-offset:2px}
.gc-create{border:1px solid #bfdcd4;border-radius:14px;background:#f4faf7;padding:13px 17px;margin:16px 0}
.gc-create summary{color:#12684b;font-size:16px;font-weight:800}.gc-create form{margin-top:15px}.gc-full{grid-column:1/-1}
.gc-create textarea,.coach-task-form textarea{width:100%;min-height:92px;padding:10px 12px;border:1px solid #afc7d2;border-radius:10px;font:inherit;color:#153d58;resize:vertical}
.gc-list{display:grid;grid-template-columns:1fr;gap:17px}
.gc-card{background:#fff;border:1px solid #cbdce7;border-radius:19px;padding:18px;box-shadow:0 7px 20px rgba(17,52,79,.065)}
.gc-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:11px}.gc-label{font-weight:800;text-transform:uppercase;letter-spacing:.045em;font-size:11px;color:#0b7958}
.gc-state{font-size:12px;font-weight:800;border-radius:999px;padding:6px 12px}.gc-state.running{background:#d9f4e8;color:#0d6645}.gc-state.ended{background:#edf0f3;color:#596e7b}
.gc-card h3{margin:0;color:#113a58;font-size:clamp(19px,2.5vw,25px)}.gc-card-desc{white-space:pre-line;color:#36576c;margin:12px 0 7px;overflow-wrap:anywhere}
.gc-chips{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.gc-chips span{font-size:12px;padding:7px 11px;border-radius:9px;background:#eaf3f8;color:#164b69;border:1px solid #d5e5ed;font-weight:650}
.gc-byline{color:#61798a;font-size:12px}.gc-start-form{display:grid;gap:12px;margin:15px 0;justify-items:start}
.gc-consent{display:flex!important;align-items:start;gap:9px;font-weight:500;font-size:13px;line-height:1.45;color:#315668;max-width:850px}.gc-consent input{height:19px!important;min-height:19px!important;width:19px!important;flex:0 0 19px;margin:2px 0 0}
.gc-action{display:inline-block;text-decoration:none;border-radius:11px;padding:10px 15px;margin:4px 0 15px}
.gc-rankings{border:1px solid #d4e3ed;background:linear-gradient(180deg,#f9fcff,#eff6fa);padding:16px;border-radius:15px;margin:15px 0}.gc-rank-title{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}.gc-rank-title h3{margin:0;font-size:17px}.gc-rank-title small{color:#597689}
.gc-leaderboard{display:grid;gap:9px}.gc-entry{background:#fff;border:1px solid #d6e4eb;border-radius:12px;display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px}.gc-entry.leader{background:linear-gradient(115deg,#fff3d0,#fff);border-color:#edd58b;box-shadow:inset 4px 0 #bd8a1e}
.gc-rank-number{font-size:20px;text-align:center;color:#1a5f82;font-weight:900}.gc-entry-main{display:grid;gap:4px;min-width:0}.gc-entry-main strong{color:#173e56;overflow-wrap:anywhere}.gc-entry-main small{color:#597487}.gc-entry-main progress{height:10px;margin:2px 0;width:100%;accent-color:#147db2}
.gc-entry-status{white-space:nowrap;border-radius:15px;background:#e9f2f8;padding:6px 9px;font-weight:750;font-size:11px;color:#325f79}
.gc-task-rankings{border:1px solid #cbdce7;background:#f8fbfd;border-radius:14px;padding:12px 15px;margin:12px 0}.gc-task-rankings summary{color:#195677;font-size:14px}.gc-instructions{background:#fff8e9;border-left:4px solid #e3ad45;padding:10px 14px;border-radius:9px;color:#503b1a;white-space:pre-wrap;margin:12px 0}
.gc-matrix-wrap{overflow-x:auto;max-width:100%;padding-bottom:4px}.gc-matrix{width:100%;min-width:550px;border-collapse:separate;border-spacing:7px;table-layout:fixed}.gc-matrix th{background:#ecf3f8;color:#274e66;font-weight:800;text-align:center;border-radius:10px;font-size:13px;padding:10px 8px}.gc-matrix th:first-child{width:80px}
.gc-matrix td{border:1px solid #d5e0e7;border-radius:12px;padding:13px 5px;text-align:center;vertical-align:middle}.gc-matrix td strong{display:block;font-size:clamp(16px,2vw,22px);font-weight:900;font-variant-numeric:tabular-nums}.gc-matrix td small{display:block;font-size:11px;line-height:1.5;margin-top:5px}.gc-heat-0{background:#f6d3d2;color:#782e30}.gc-heat-1{background:#f8e4c2;color:#805a26}.gc-heat-2{background:#fff2cd;color:#745b22}.gc-heat-3{background:#ddf1dc;color:#2b663c}.gc-heat-4{background:#bce5d0;color:#176548}.gc-heat-5{background:#a0dabe;color:#075936}.gc-empty{background:#f0f4f6;color:#718694}
.gc-podium{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:15px 0}.gc-podium-card{padding:17px 14px;border:1px solid #d4e1e9;border-radius:17px;display:grid;gap:7px;justify-items:center;text-align:center;background:linear-gradient(155deg,#fff,#e7eff5);box-shadow:0 8px 20px rgba(16,51,73,.07)}.gc-podium-card.gc-place-1{background:linear-gradient(140deg,#fff5ca,#f3d891);border-color:#e1bd66}.gc-podium-card.gc-place-2{background:linear-gradient(140deg,#fff,#d7e7f1)}.gc-podium-card.gc-place-3{background:linear-gradient(140deg,#fff5ec,#e9c4a7)}
.gc-podium-card .gc-medal{font-weight:900;letter-spacing:.04em;font-size:12px;color:#244e67}.gc-podium-card strong{color:#153b59;font-size:16px;overflow-wrap:anywhere}.gc-podium-card b{color:#115e83;font-size:27px}.gc-podium-card small{color:#59778a}
.gc-personal-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:12px}.gc-personal-item{display:grid;gap:4px;padding:13px 16px;border:1px solid #c8e1d6;background:#f7fcf9;border-radius:14px;text-decoration:none;color:#163e51;box-shadow:0 4px 11px rgba(26,85,66,.06)}.gc-personal-item small{color:#627985}.gc-personal-item span{color:#0b7857;font-size:13px;font-weight:800}
.gc-session-notice{border:1px solid #accfdc;border-left:5px solid #17678e;border-radius:14px;padding:14px;background:#e9f5fa;margin:15px 0}.gc-session-notice strong,.gc-session-notice span{display:block}.gc-session-notice span{color:#365c72;font-size:13px;margin-top:4px}.gc-session-notice p{white-space:pre-line;margin:8px 0 0}.gc-complete-note{background:#dff3e8;padding:12px;border-radius:10px;font-weight:800;color:#13623f}
@media(max-width:660px){.gc-hub,.gc-group-stats,.gc-personal{padding:14px;border-radius:14px}.gc-card{padding:13px}.gc-entry{grid-template-columns:32px minmax(0,1fr);gap:8px}.gc-entry-status{grid-column:2;justify-self:start}.gc-rank-number{font-size:17px}.gc-mainnav{gap:6px}.gc-mainnav a{font-size:12px;padding:8px 10px}.gc-card-top{gap:8px}.gc-podium{grid-template-columns:1fr}}

/* One-tap feedback: only the actual selected result lights up while saving. */
.training-focus-panel .shots button:disabled:not(.shot-selected){opacity:.43;filter:saturate(.62)}
.training-focus-panel .shots button.shot-selected,
.training-focus-panel .shots button.shot-selected:disabled{
  opacity:1;filter:brightness(1.14) saturate(1.17);
  outline:4px solid #f1c74a;outline-offset:2px;
  box-shadow:0 0 0 3px rgba(17,48,72,.24),0 0 24px rgba(241,199,74,.52),0 3px 8px rgba(17,48,72,.25);
  transform:translateY(2px) scale(1.015);
  position:relative;z-index:1;
}
@media(prefers-reduced-motion:reduce){.training-focus-panel .shots button.shot-selected{transform:none}}
/* Pétanque24 Legetraining v1: one visual language across catalogue, coach and challenges. */
.lege-head h2,.lege-level h2{margin:.25rem 0 .55rem;color:#153f5e}
.lege-eyebrow{display:block;color:#326887;font-size:.73rem;font-weight:850;letter-spacing:.075em;text-transform:uppercase}
.lege-level{margin:1.35rem 0 2rem}
.lege-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.lege-tile{border:1px solid #c8d9e3;border-radius:17px;background:#fff;overflow:hidden;box-shadow:0 4px 20px #1c506b12}
.lege-tile-visual{height:220px;background:#eef5f7;padding:.45rem;display:flex;align-items:center;justify-content:center}
.lege-tile>div:last-child{padding:1rem 1.15rem 1.25rem}
.lege-tile h3{font-size:1.18rem;color:#143c58;margin:.25rem 0 .5rem}
.lege-tile p{font-size:.92rem;line-height:1.53;color:#395d73;margin:.45rem 0}
.lege-start-inline{margin:.95rem 0 .1rem}
.lege-start-inline button{min-height:42px}
.lege-start-picker{border:1px solid #8fbad2;background:#edf7fa;border-radius:12px;padding:1rem;margin:.8rem 0}
.lege-start-picker label{display:grid;gap:.4rem;font-weight:800}
.lege-at-card{border:1px solid #bed8e6;border-radius:18px;overflow:hidden;margin:1rem 0;background:#f7fbfd;box-shadow:0 8px 28px #12446412}
.lege-at-card header{display:flex;align-items:flex-start;flex-direction:column;gap:.3rem;padding:1rem 1.15rem;background:#e5f2f8}
.lege-at-card h2{font-size:1.3rem;margin:.1rem 0;color:#163b55}
.lege-current{font-weight:800;color:#14658b}
.lege-visual{padding:.7rem;background:#edf3f5;max-height:340px;display:flex;justify-content:center}
.lege-svg{width:100%;height:100%;max-width:400px;max-height:300px}
.lege-court{fill:#e6dcc8;stroke:#ad9b7c;stroke-width:1.5}
.lege-ring{fill:none;stroke:#b49a71;stroke-width:1.4;stroke-dasharray:3 4}
.lege-ring.middle{stroke:#d09e54;stroke-width:2}
.lege-ring.inner{stroke:#36a477;stroke-width:2.5;fill:#a9deb939}
.lege-path{stroke:#257aa3;stroke-width:2.4;stroke-dasharray:5 7;fill:none}
.lege-jack{fill:#d98927;stroke:#fff;stroke-width:2}
.lege-jack.ghost{opacity:.38}
.lege-ball{fill:#485d6d;stroke:#fff;stroke-width:1.9}
.lege-ball.own{fill:#38a0ad}
.lege-throw{stroke:#647688;stroke-width:2.5;fill:none}
.lege-svg-label{font-size:11px;fill:#3b576b;font-weight:700}
.lege-donnee{fill:#5aaad344;stroke:#2e88ae;stroke-width:2;stroke-dasharray:4 3}
.lege-zone{fill:#4daf7870;stroke:#398e65;stroke-width:1.7}
.lege-boundary{stroke:#8a7458;stroke-dasharray:6 5;stroke-width:2}
.lege-lane{stroke:#2e869c;stroke-dasharray:5 4;stroke-width:2}
.lege-instructions{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;padding:1rem 1.15rem}
.lege-instructions>div{background:#fff;padding:.9rem;border-radius:12px;border:1px solid #d9e6ed}
.lege-instructions strong{color:#1a5477}
.lege-instructions p{margin:.4rem 0 0;line-height:1.55;color:#34576e;font-size:.92rem}
.lege-points-note{margin:.1rem 1.15rem .7rem;color:#38566b;font-size:.82rem;line-height:1.5}
.lege-progress-track{display:grid;gap:.35rem;padding:.5rem 1.15rem 1rem;color:#4c6b7e;font-size:.8rem}
.lege-progress-track progress{width:100%;height:11px;accent-color:#2b8b74}
.lege-stats .lege-stat-overview{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0}
.lege-stat-overview>div{flex:1;min-width:130px;border:1px solid #c6dce8;border-radius:12px;padding:1rem;background:#eff7fa;display:grid;gap:.4rem}
.lege-stat-overview strong{font-size:1.8rem;color:#104e70}
.lege-stat-overview span{font-size:.8rem;color:#527184}
.lege-matrix small{display:block;font-size:.74rem;color:#718798}
.lege-editor{margin:1.25rem 0}
.lege-editor-preview{border:1px solid #c6dce8;border-radius:12px;background:#edf4f7;min-height:190px;max-width:400px;padding:.7rem}
.lege-editor-preview svg{height:185px}
.lege-editor-preview p{font-size:.82rem;color:#325d77}
.lege-template-list{display:grid;gap:.6rem}
.lege-template-list>div{padding:.75rem;border:1px solid #d0e1eb;border-radius:10px;display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap}
.lege-template-list small{color:#60798c}
.lege-community{display:grid;gap:1rem}
.lege-community-card{border:1px solid #c7dce8;border-radius:14px;background:#fff;padding:1.15rem}
.lege-community-card h3{margin:.5rem 0;color:#163f5a}
.lege-community-card .gc-card-top{display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap}
.lege-create{border:1px solid #a8cdda;border-radius:12px;padding:1rem;background:#edf7fa}
.lege-create>summary{cursor:pointer;font-weight:800;color:#1c597a}
.lege-ranking{margin:.9rem 0}
.lege-ranking summary{cursor:pointer;font-weight:750}
@media(max-width:760px){.lege-catalog,.lege-instructions{grid-template-columns:1fr}.lege-tile-visual{height:190px}.lege-at-card header{padding:.8rem}.lege-community-card{padding:.9rem}.lege-at-card{border-radius:13px}}
.lege-feedback{width:100%;display:block;border:1px solid #c8dbe6;border-radius:12px;background:#f1f8fa;padding:.7rem .9rem;margin:.5rem 0}
.lege-feedback>summary{color:#285b76;font-weight:800;font-size:.89rem;cursor:pointer}
.lege-feedback-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:.8rem 0}
.lege-feedback-grid label{display:grid;gap:.35rem;font-size:.8rem;color:#3d627b;min-width:0;font-weight:800}
.lege-feedback-grid select,.lege-feedback-grid input{min-width:0;width:100%;background:#fff;border:1px solid #bdd1df;border-radius:8px;min-height:40px;padding:.4rem}
.lege-tech-stats{padding:.8rem;border:1px solid #cbdfe9;border-radius:12px;margin-top:.8rem}
.lege-tech-stats>summary{font-weight:850;cursor:pointer;color:#1d5876}
.lege-direction-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.lege-direction-chips span{background:#e4f2f8;border-radius:999px;padding:.35rem .7rem;color:#1b5a7c;font-size:.84rem}
@media(max-width:480px){.lege-feedback-grid{grid-template-columns:1fr}}
.shots .lege-feedback{grid-column:1 / -1}
.lege-create .gc-consent{display:flex;flex-direction:row;gap:.6rem;align-items:flex-start}
.lege-create .gc-consent input[type=checkbox]{width:auto;min-height:auto;flex:none}

/* v2.15: discipline-neutral navigation and two independent training dashboards. */
.training-main-nav{display:flex;flex-wrap:wrap;gap:5px 9px;align-items:center}
.training-main-nav a[aria-current="page"]{font-weight:900}
.training-discipline-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:12px 0 18px}
.training-discipline-kpis>a,.training-discipline-kpis>article{display:flex;flex-direction:column;gap:4px;padding:17px;border:1px solid #c8dae6;background:#f7fbff;border-radius:12px;color:#173d57;text-decoration:none}
.training-discipline-kpis>a:hover,.training-discipline-kpis>a:focus-visible{border-color:#207bb0;box-shadow:0 2px 10px rgba(25,75,110,.12)}
.training-discipline-kpis strong{font-size:clamp(21px,3vw,32px);line-height:1.2;color:#10334e;font-weight:900}
.training-discipline-kpis span{font-size:12px;letter-spacing:.035em;font-weight:850}
.training-discipline-kpis small{font-size:12px;color:#536e80}
.training-dashboard-panel[id$="-schiessen"]{border-top:4px solid #2478aa}
.training-dashboard-panel[id$="-legen"],.lege-stats[id$="-legen"]{border-top:4px solid #568b5e}
.training-dashboard-panel h2{margin-top:0}
@media(max-width:600px){.training-discipline-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.training-discipline-kpis>a,.training-discipline-kpis>article{padding:12px}.training-main-nav a{white-space:nowrap}}


/* v2.16 - compact Lege catalogue + equal group challenges in both disciplines. */
.lege-training-picker{border-top:4px solid #568b5e}
.lege-training-picker .lege-quick-start{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:14px}
.lege-quick-action{align-self:end}.lege-quick-action button{min-height:46px}
.lege-standard-compact{padding:18px 21px}
.lege-compact-head{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.lege-compact-head>div{flex:1;min-width:200px}.lege-compact-head h2{margin:6px 0 7px}
.lege-compact-head p{margin:0;font-size:14px;color:#426077}
.lege-compact-details{margin:12px 0 0;border-top:1px solid #dde8ed;padding-top:10px}
.lege-compact-details>summary,.lege-at-details>summary{color:#205a7c;cursor:pointer;font-size:13px;font-weight:850;list-style-position:inside}
.lege-compact-details[open]>summary,.lege-at-details[open]>summary{margin-bottom:12px}
.lege-compact-details p{font-size:14px;margin:10px 0}
.lege-standard-visual{max-width:380px;background:#eff6f7;border-radius:12px;padding:10px;margin:12px auto}
.lege-level{margin-bottom:19px}.lege-catalog-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lege-tile-compact{box-shadow:none;border-radius:12px;display:flex;flex-direction:column;min-width:0}
.lege-tile-compact .lege-tile-body{padding:14px 16px;display:flex;flex-direction:column;gap:9px;flex:1}
.lege-tile-compact h3{margin:3px 0 4px;font-size:17px}
.lege-tile-compact .lege-eyebrow{font-size:11px}
.lege-tile-compact .lege-compact-description{font-size:13px;color:#4d697c;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}
.lege-tile-compact .lege-tile-actions{margin-top:auto}
.lege-tile-compact .lege-start-inline{margin:3px 0 1px}
.lege-tile-compact .lege-compact-details{margin:0;border-top:1px solid #e2e9ef;background:#fafcfe;padding:10px 14px}
.lege-tile-compact .lege-tile-visual{height:auto;min-height:175px;max-height:240px;margin:12px 0;border-radius:10px;overflow:hidden}
.lege-tile-compact .lege-tile-visual .lege-svg{height:225px}
.lege-tile-compact .lege-tile-explainer p{color:#3f596b;font-size:13px;line-height:1.5}
.lege-active-task{padding:12px 17px;margin:0;border-bottom:1px solid #d3e4ec;font-size:14px;color:#36576c}
.lege-at-details{margin:0;border-bottom:1px solid #d3e4ec;padding:11px 16px}
.lege-at-details .lege-instructions{padding:11px 0 0}
.gc-overview-row{background:#fafcfe;border:1px solid #d4e3eb;border-radius:12px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;margin:11px 0}
.gc-overview-row h3{margin:3px 0 5px;font-size:17px;color:#163e58}
.gc-overview-row p{font-size:13px;margin:0 0 5px;color:#4a697b}.gc-overview-row small{font-size:12px;color:#5c7383}
.gc-overview-row a{white-space:nowrap;text-decoration:none;align-self:center}
.gc-rankings-collapse{border-top:1px solid #d5e4e9;padding:12px 0 0;margin:12px 0 0}
.gc-rankings-collapse>summary,.gc-results-detail>summary{color:#235b7a;font-weight:850;cursor:pointer;font-size:14px}
.gc-results-detail{border-top:1px solid #d5e4ea;padding-top:12px}
.group-challenge-hub .training-section-nav{margin:14px 0}
/* Single-button feedback: never apply highlight to sibling buttons during AJAX saving. */
[data-shot-form] .shots button[name="result"]{transition:opacity .12s,filter .12s,outline-color .12s,transform .12s}
[data-shot-form] .shots button[name="result"]:disabled:not(.shot-selected){opacity:.40!important;filter:saturate(.6)!important;outline:0!important;box-shadow:none!important;transform:none!important}
[data-shot-form] .shots button[name="result"].shot-selected,
[data-shot-form] .shots button[name="result"].shot-selected:disabled{opacity:1!important;filter:brightness(1.16) saturate(1.14)!important;outline:4px solid #f1c74a!important;outline-offset:2px!important;box-shadow:0 0 0 3px rgba(17,48,72,.24),0 0 18px rgba(241,199,74,.44)!important;position:relative;z-index:2}
@media(max-width:760px){.lege-catalog-compact{grid-template-columns:1fr}}
@media(max-width:600px){.lege-training-picker .lege-quick-start{grid-template-columns:1fr}.lege-quick-action button{width:100%}.gc-overview-row{flex-direction:column;align-items:stretch}.gc-overview-row a{align-self:stretch;white-space:normal;text-align:center}}
@media(prefers-reduced-motion:reduce){[data-shot-form] .shots button[name="result"]{transition:none}}

.lege-level-collapse{border:1px solid #c7dce7;border-radius:13px;padding:0;background:#fff;overflow:hidden;margin:12px 0}
.lege-level-collapse>summary{list-style-position:inside;padding:15px 17px;color:#164c6b;font-size:17px;font-weight:850;background:#f2f7fa}
.lege-level-collapse>summary small{color:#5e788a;font-size:12px;float:right;font-weight:650;margin-top:3px}
.lege-level-collapse>.lege-catalog{padding:13px}
.lege-level-collapse[open]>summary{border-bottom:1px solid #d8e5ed}
@media(max-width:480px){.lege-level-collapse>summary small{float:none;display:block;margin:4px 0 0 20px}}

/* 2.17.0: one task per view, clean training entry, mobile-first scoring. */
.training-main-nav{flex-wrap:nowrap;gap:18px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding-bottom:0}
.training-main-nav a{font-weight:750;white-space:nowrap;flex-shrink:0}
.account-security-link{color:#315b72;font-size:13px;text-decoration:none}
.training-entry-choice{margin:13px 0 18px}
.training-entry-choice h2{margin:0 0 4px}.training-entry-choice p{margin:0 0 14px;color:#546d7d}
.training-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.training-entry-grid a{display:flex;flex-direction:column;gap:9px;padding:21px 19px;border:1px solid #bfd8e1;border-radius:13px;background:#f5fbfe;text-decoration:none;color:#20495f;min-width:0}
.training-entry-grid a:nth-child(2){background:#f4faf6;border-color:#bcdbca}
.training-entry-grid a strong{font-size:21px;color:#133a53}.training-entry-grid a span{font-size:13px;color:#526a77;flex:1}
.training-entry-grid a b{font-size:14px;color:#0b7152}.training-entry-grid a:focus-visible{outline:3px solid #187a9b;outline-offset:2px}
.training-catalog-closed,.training-closed-stats,.training-overview-deep{background:#fff;border:1px solid #d8e4eb;border-radius:13px;margin:13px 0;overflow:hidden}
.training-catalog-closed>summary,.training-closed-stats>summary,.training-overview-deep>summary{padding:17px 19px;cursor:pointer;color:#19445c;font-size:15px;font-weight:800}
.training-catalog-closed[open]>summary,.training-closed-stats[open]>summary,.training-overview-deep[open]>summary{border-bottom:1px solid #dfebf0;background:#f5f9fa}
.training-catalog-closed>.panel,.training-closed-stats>.panel,.training-overview-deep>.panel{border:0;border-radius:0;box-shadow:none;margin:0}
.training-catalog-closed>.lege-level{margin:12px}
.training-catalog-closed>.lege-standard-compact{margin:10px}
.lege-compact-info{border-top:1px solid #deebf0;padding:14px 0}
.lege-compact-info h3{font-size:16px;color:#174560;margin:0 0 9px}
.lege-compact-info .lege-tile-visual{max-width:340px}
.training-start-panel .section-heading{margin-bottom:7px}
.lege-training-picker .lege-quick-start{grid-template-columns:1fr;max-width:660px;gap:13px}
.lege-training-picker .lege-quick-start>label{max-width:660px}
.lege-training-picker .primary.big{min-height:52px;width:100%;max-width:340px}
.lege-tile-actions .secondary{display:inline-flex;padding:10px 13px;text-decoration:none;white-space:nowrap}
.training-focus-panel .shots button[hidden]{display:none!important}
.training-focus-panel .shots button:disabled:not(.shot-selected){opacity:.55}
@media(max-width:650px){.training-entry-grid{grid-template-columns:1fr}.training-entry-grid a{padding:17px}.training-main-nav{gap:16px}.training-main-nav a{font-size:13px}.training-catalog-closed>summary,.training-closed-stats>summary,.training-overview-deep>summary{padding:16px 13px}.training-start-panel .training-preset-choices{grid-template-columns:1fr}.lege-training-picker .primary.big{max-width:none}.training-head-account{gap:8px}.training-head-account .who{max-width:90px}}

/* Same quick-start control hierarchy for Schießen and Legen. */
.training-option-select,.lege-quick-start>label:first-of-type{max-width:650px;font-weight:750;color:#123149}
.training-option-select select,.lege-quick-start select[name="lege_exercise"]{width:100%;min-height:52px;font-weight:650;background:#fff;border:1px solid #bfd4da;border-radius:10px;padding:10px 12px}
.training-option-select select:focus-visible,.lege-quick-start select[name="lege_exercise"]:focus-visible{outline:3px solid #278777;outline-offset:2px}

/* v2.18: no dropdown for the exercise selection in either discipline. */
.training-start-panel .training-preset-fieldset{margin:2px 0 0}
.training-start-panel .training-preset-fieldset>legend{font-size:15px;margin-bottom:12px}
.training-start-panel .training-preset-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
.training-start-panel .training-preset{min-height:78px;height:100%;align-items:center;font-size:inherit;line-height:1.3}
.training-start-panel .training-preset input[type="radio"]{min-height:20px;width:20px;padding:0;flex-shrink:0;accent-color:#137a55}
.training-start-panel .training-preset:focus-within{outline:3px solid #238879;outline-offset:2px}
.training-start-panel .training-preset:has(input:checked){border-color:#137a55;background:#e8f6ee;box-shadow:0 2px 12px rgba(19,122,85,.15)}
.training-lege-choices .training-card-unit{min-width:0}
.training-card-unit{border:1px solid #d6e6e7;border-radius:13px;padding:4px;background:#fbfdfd;min-width:0}
.training-card-unit .training-preset{border:1px solid #d7e3e9}
.training-card-unit:has(input:checked){border-color:#137a55;background:#f1faf5}
.training-featured-exercise{margin:0 0 9px;background:#f6faf7}
.training-exercise-level{margin:7px 0 0;border:1px solid #cfe1e5;border-radius:12px;overflow:hidden;background:#fff}
.training-exercise-level>summary{margin:0;padding:15px 14px;font-size:15px;color:#143e55;background:#f1f6f8;line-height:1.35;list-style-position:inside}
.training-exercise-level>summary small{font-size:12px;color:#617587;font-weight:650;padding-left:7px}
.training-exercise-level[open]>summary{border-bottom:1px solid #d8e6ec}
.training-exercise-level>.training-lege-choices{padding:10px}
.training-exercise-info{margin:0 4px 4px;padding:0 9px 5px;border-top:1px solid #e2ecf0}
.training-exercise-info>summary{font-size:12px;font-weight:750;color:#245c74;padding:10px 0;line-height:1.35}
.training-exercise-info>p{font-size:13px;color:#37566a;line-height:1.5}
.training-exercise-info .lege-tile-visual{max-width:320px;margin:8px auto}
.training-exercise-info .lege-compact-info{padding:10px 0}
.training-exercise-info .lege-compact-info h3{font-size:15px}
.training-start-submit{position:relative;width:100%}
.training-start-panel .training-start-submit .primary.big{min-height:52px;max-width:100%;width:340px}
@media(max-width:650px){
 .training-start-panel .training-preset-choices{grid-template-columns:1fr}
 .training-start-panel .training-preset{min-height:68px;padding:12px}
 .training-start-panel .training-start-submit{position:sticky;bottom:8px;z-index:8;background:rgba(248,252,250,.97);border:1px solid #d4e6df;border-radius:13px;padding:7px;box-shadow:0 6px 18px rgba(13,47,48,.17)}
 .training-start-panel .training-start-submit .primary.big{width:100%;max-width:none}
}
