/* Sport: Training-Hub, Training durchführen, Aktivität erfassen, Verlauf und Sportblock.
   Nutzt nur Tokens aus product-system.css; wird nach diesem Stylesheet geladen. */

/* --- Training durchführen: Satzzeilen (Wdh., kg, Haken) --- */
body.product-body .workout-page .set-list{display:grid;gap:var(--sp-5)}
body.product-body .workout-page .exercise-group{border-top:1px solid var(--line);padding-top:var(--sp-4)}
body.product-body .workout-page .exercise-group:first-child{border-top:0;padding-top:0}
body.product-body .ws-head,body.product-body .ws-row{display:grid;align-items:center;column-gap:var(--sp-2)}
body.product-body .ws-weight,body.product-body .ws-cardio{grid-template-columns:96px minmax(0,1fr) minmax(0,1fr) 44px}
body.product-body .ws-compact{grid-template-columns:96px minmax(0,1fr) 44px}
body.product-body .ws-head{font-size:var(--fs-micro);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-bottom:var(--sp-1)}
body.product-body .ws-head>span:last-child{text-align:center}
body.product-body .ws-row{padding:var(--sp-1) 0;scroll-margin-top:var(--sp-4)}
body.product-body .ws-row .form-control{min-width:0;width:100%}
body.product-body .ws-label{display:grid;gap:2px;min-width:0}
body.product-body .ws-label .set-number{font-size:var(--fs-small);white-space:nowrap}
body.product-body .ws-label .prefill-tag{display:block;width:auto;margin:0;font-size:var(--fs-micro);font-weight:600;color:var(--info)}
body.product-body .ws-status{display:block;font-size:var(--fs-micro);line-height:16px;min-height:16px;color:var(--muted);white-space:normal;overflow-wrap:anywhere;min-width:0;padding-right:var(--sp-1)}
body.product-body .ws-status.ws-ok{color:var(--ok);font-weight:600}
body.product-body .ws-status.ws-error{color:var(--danger);font-weight:700}
body.product-body .ws-row.ws-row-error{background:var(--danger-bg);box-shadow:inset 3px 0 0 var(--danger-line);margin-left:calc(var(--sp-2) * -1);padding-left:var(--sp-2);border-radius:var(--radius-s)}
body.product-body .workout-metrics.ws-row-error{background:var(--danger-bg);box-shadow:inset 3px 0 0 var(--danger-line);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-3);border-radius:var(--radius-s)}
body.product-body .ws-check{display:grid;place-items:center;width:44px;height:44px;margin:0;cursor:pointer;border-radius:var(--radius-s)}
body.product-body .ws-check input{width:28px;height:28px;margin:0;accent-color:var(--accent);cursor:pointer}
body.product-body .ws-check:focus-within{outline:3px solid var(--accent);outline-offset:2px}
body.product-body .ws-check input:disabled{cursor:default}

/* --- Aktionsleiste unten (Pause, Abschließen, Starten) --- */
body.product-body .workout-bar{position:sticky;bottom:0;z-index:4;display:flex;gap:var(--sp-3);justify-content:flex-end;
  margin-top:var(--sp-4);padding:var(--sp-3) 0;background:var(--canvas);border-top:1px solid var(--line)}
body.product-body .workout-bar{flex-wrap:wrap}
body.product-body .workout-bar [hidden]{display:none!important}
body.product-body .workout-bar form{margin:0}
/* Fehler/Offline: genau eine Zeile (Kurztext, Knopf, Details); die Einzelheiten klappen über der Leiste auf, die Leiste wächst nicht. */
body.product-body .workout-bar>.ws-alert-line{order:-1;flex:1 1 100%;display:flex;align-items:center;gap:var(--sp-2);min-width:0}
body.product-body .workout-bar .ws-alert{flex:1 1 0;min-width:0;margin:0;font-size:var(--fs-small);font-weight:600;color:var(--danger)}
body.product-body .workout-bar .ws-alert-line .btn{flex:0 0 auto;width:auto;white-space:nowrap;padding:var(--sp-2)!important;font-size:var(--fs-small)!important}
body.product-body .workout-bar .ws-details-toggle{display:flex;align-items:center;gap:var(--sp-1);max-width:100%;min-height:44px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left}
body.product-body .workout-bar .ws-details-toggle>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.product-body .workout-bar .ws-details-toggle>span:first-child{text-decoration:underline dotted;text-underline-offset:3px}
body.product-body .workout-bar .ws-details-toggle[aria-expanded="true"]>.bi{transform:rotate(180deg)}
@media(max-width:340px){body.product-body .workout-bar .ws-details-toggle>.bi{display:none}body.product-body .workout-bar .ws-alert-line{gap:var(--sp-1)}body.product-body .workout-bar .ws-alert-line .btn{padding:var(--sp-2) var(--sp-1)!important}}
body.product-body .workout-bar .ws-details{position:absolute;left:0;right:0;bottom:100%;margin:0;padding:var(--sp-3);max-height:40vh;overflow:auto;background:var(--canvas);border:1px solid var(--line);border-bottom:0;font-size:var(--fs-small);color:var(--danger)}
body.product-body .activity-form .field-error{margin:var(--sp-1) 0 0;color:var(--danger);font-weight:600;font-size:var(--fs-small)}
body.product-body .workout-bar-alert-only:not(.has-alert){display:none}
body.product-body .workout-state-text{max-width:62ch}
body.product-body .cancel-workout{margin:var(--sp-5) 0 0}
body.product-body .workout-metrics{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-3)}
body.product-body .workout-metrics .ws-status{flex:1 1 100%}
body.product-body .workout-metrics label{display:grid;gap:var(--sp-1);font-size:var(--fs-small);font-weight:600;flex:1 1 140px}
body.product-body .workout-optional>summary{cursor:pointer;min-height:var(--h-md);display:flex;align-items:center;font-weight:600;color:var(--accent)}
body.product-body .workout-optional[open]>summary{margin-bottom:var(--sp-3)}
@media(max-width:760px){
  body.product-body .workout-bar{bottom:calc(64px + env(safe-area-inset-bottom,0px));margin:var(--sp-3) -14px 0;padding:var(--sp-3) 14px}
  body.product-body .workout-bar>*{flex:1 1 0}
  body.product-body .workout-bar>.ws-alert-line{flex:1 1 100%}
  body.product-body .workout-bar .btn{width:100%}
}

/* --- Training-Hub und Erfassen --- */
body.product-body .training-kinds-hint{max-width:62ch;margin-bottom:var(--sp-4)}
body.product-body .capture-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:var(--sp-6)}
body.product-body .capture-part h3{margin:0 0 var(--sp-3)}
body.product-body .start-today-form{display:grid;gap:var(--sp-3);justify-items:start}
body.product-body .start-today-form .form-select{max-width:100%}
body.product-body .activity-form{display:grid;gap:var(--sp-3)}
body.product-body .activity-form-numbers{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:var(--sp-3)}
body.product-body .activity-form .btn{justify-self:start}
body.product-body .week-add-hint{max-width:62ch}
body.product-body .skip-notice{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3)}
body.product-body .skip-notice form{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3)}
@media(max-width:760px){body.product-body .capture-grid{grid-template-columns:minmax(0,1fr)}
  body.product-body .activity-form .btn,body.product-body .start-today-form .btn{width:100%;justify-self:stretch}}

/* --- Heute: Bewegung --- */
body.product-body .today-move-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);align-items:center;margin-top:var(--sp-3)}
body.product-body .today-move-form{margin-top:var(--sp-4);border-top:1px solid var(--line);padding-top:var(--sp-4)}
body.product-body .today-move-form>summary{cursor:pointer;min-height:var(--h-md);display:flex;align-items:center;gap:var(--sp-2);font-weight:600;color:var(--accent)}
body.product-body .today-move-form[open]>summary{margin-bottom:var(--sp-3)}
body.product-body .logged-activity-list .activity-meta{color:var(--muted);font-size:var(--fs-small)}

/* --- Verlauf einer Übung: Bestwerte, Diagramm, Tabelle --- */
body.product-body .history-bests{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-3);margin:0 0 var(--sp-4);padding:0;list-style:none}
body.product-body .history-bests li{border:1px solid var(--line);border-radius:var(--radius-s);padding:var(--sp-3);background:var(--surface)}
body.product-body .history-bests strong{display:block;font-size:var(--fs-h2);line-height:1.2}
body.product-body .history-bests span{display:block;color:var(--muted);font-size:var(--fs-small)}
body.product-body .history-metrics{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:0 0 var(--sp-3);padding:0;list-style:none}
body.product-body .history-metrics a{display:inline-flex;align-items:center;min-height:var(--h-md);padding:0 var(--sp-4);border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink);font-size:var(--fs-small);font-weight:600;text-decoration:none}
body.product-body .history-metrics a[aria-current="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
body.product-body .history-chart{margin:0 0 var(--sp-4)}
body.product-body .history-chart svg{display:block;width:100%;max-height:220px;overflow:visible}
body.product-body .history-table .set-chip{display:inline;margin:0 var(--sp-2) 0 0}
body.product-body .history-table td,body.product-body .history-table th{vertical-align:top}

/* --- Fortschritt: Sportblock --- */
body.product-body .sport-weeks{display:grid;gap:var(--sp-2);margin:var(--sp-3) 0 0;padding:0;list-style:none}
body.product-body .sport-weeks li{display:grid;grid-template-columns:84px minmax(0,1fr) auto;align-items:center;gap:var(--sp-3);font-size:var(--fs-small)}
body.product-body .sport-bar{display:block;height:12px;border-radius:var(--radius-pill);background:var(--neutral-bg);overflow:hidden}
body.product-body .sport-bar>span{display:block;height:100%;background:var(--accent);border-radius:var(--radius-pill)}
body.product-body .sport-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--sp-3)}
body.product-body .sport-stats .focus-number{font-size:var(--fs-h1)}
body.product-body .sport-bests{margin:var(--sp-3) 0 0;padding:0;list-style:none;display:grid;gap:var(--sp-2)}
body.product-body .sport-bests li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--sp-1) var(--sp-3);padding:var(--sp-2) 0;border-top:1px solid var(--line)}
body.product-body .sport-bests .badge-new{font-size:var(--fs-micro);font-weight:700;color:var(--ok);background:var(--ok-bg);border-radius:var(--radius-pill);padding:2px var(--sp-2);margin-left:var(--sp-2)}
body.product-body .archived-templates>summary{min-height:var(--h-md);display:flex;align-items:center;cursor:pointer}

/* --- Chat-Knopf (unten rechts, ab 761 px sichtbar) darf die Aktionsleiste nicht überdecken --- */
@media(min-width:761px){
  body.product-body .workout-bar{padding-right:88px}
}

/* --- Handy: Wochenbalken bekommen eine eigene Zeile, nie 0 px Breite --- */
@media(max-width:640px){
  body.product-body .sport-weeks li{grid-template-columns:auto minmax(0,1fr);gap:var(--sp-1) var(--sp-3)}
  body.product-body .sport-weeks li>.sport-bar{min-width:96px}
  body.product-body .sport-weeks li>span:last-child{grid-column:1/-1}
  /* Verlaufstabelle: je Training ein Block statt sieben Zeilen in drei schmalen Spalten */
  body.product-body .history-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  body.product-body .history-table,body.product-body .history-table tbody,body.product-body .history-table tr,body.product-body .history-table td{display:block;width:100%}
  body.product-body .history-table tr{padding:var(--sp-3) 0;border-bottom:1px solid var(--line)}
  body.product-body .history-table td{border:0;padding:var(--sp-1) 0;display:grid;grid-template-columns:7rem minmax(0,1fr);gap:var(--sp-2)}
  body.product-body .history-table td::before{content:attr(data-label);color:var(--muted);font-size:var(--fs-small);font-weight:600}
  body.product-body .history-table td:first-child{font-weight:700}
}

/* --- Hub am Handy: "Direkt erfassen" als zwei Aufklapper ------------------------------------------------- */
body.product-body .capture-fold>summary{list-style:none;cursor:default}
body.product-body .capture-fold>summary::-webkit-details-marker{display:none}
body.product-body .capture-fold>summary h3{margin:0 0 var(--sp-3);display:flex;align-items:center;gap:var(--sp-2)}
@media(max-width:760px){
  body.product-body .capture-grid{gap:var(--sp-3)}
  body.product-body .capture-fold>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:var(--h-md);padding:0 var(--sp-4);border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--surface)}
  body.product-body .capture-fold>summary h3{margin:0;font-size:var(--fs-body)}
  body.product-body .capture-fold>summary::after{content:"\F282";font-family:"bootstrap-icons";color:var(--muted)}
  body.product-body .capture-fold[open]>summary{background:var(--accent-soft);border-color:var(--accent);margin-bottom:var(--sp-3)}
  body.product-body .capture-fold[open]>summary::after{content:"\F286"}
  body.product-body .capture-fold>summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
}

/* --- Polar: importierte Session (Kennzahlen, Pulskurve, Zonenbalken) --- */
body.product-body .polar-badge{display:inline-flex;align-items:center;min-height:22px;padding:0 var(--sp-2);border-radius:var(--radius-pill);background:var(--info-bg);color:var(--info);font-size:var(--fs-micro);font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle}
body.product-body .polar-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--sp-3);margin:0 0 var(--sp-4)}
body.product-body .polar-facts>div{min-width:0;border:1px solid var(--line);border-radius:var(--radius-s);padding:var(--sp-3);background:var(--surface)}
body.product-body .polar-facts dt{color:var(--muted);font-size:var(--fs-small);font-weight:400}
body.product-body .polar-facts dd{margin:0;font-size:var(--fs-h3);font-weight:700;line-height:1.3;overflow-wrap:anywhere}
body.product-body .polar-line{stroke-width:2}
body.product-body .polar-zones-title{font-size:var(--fs-h3);margin:var(--sp-4) 0 var(--sp-2)}
body.product-body .polar-zones{margin:0;padding:0;list-style:none;display:grid;gap:var(--sp-3)}
body.product-body .polar-zones li{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr) 5.5rem;align-items:center;gap:var(--sp-3);font-size:var(--fs-small)}
body.product-body .polar-zone-limits{display:block;color:var(--muted)}
body.product-body .polar-zone-bar{display:block;height:12px;border-radius:var(--radius-pill);background:var(--neutral-bg);overflow:hidden}
body.product-body .polar-zone-bar>span{display:block;height:100%;background:var(--accent);border-radius:var(--radius-pill)}
body.product-body .polar-zone-time{text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:560px){body.product-body .polar-zones li{grid-template-columns:minmax(0,1fr) auto}body.product-body .polar-zone-bar{grid-column:1 / -1;grid-row:2}}
body.product-body .polar-upload{display:grid;gap:var(--sp-3);margin-top:var(--sp-3)}
body.product-body .polar-status{display:grid;gap:var(--sp-1);margin:0 0 var(--sp-3);padding:0;list-style:none}
