      /* ---------- Gesundheitsdaten: Health ---------- */
      .healthDataSyncedRow {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin: 22px 0 12px;
      }
      .healthDataSyncedRow h3 {
        font-size: var(--fs-md);
        margin: 0;
        font-weight: 600;
      }
      .healthDataSynced {
        font-size: var(--fs-xs);
        color: var(--ink-3);
        display: flex;
        align-items: center;
        gap: 6px;
      }
      .healthDataSynced .dot {
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: var(--primary);
      }
      .healthDataError {
        color: var(--danger);
        font-size: var(--fs-sm);
        padding: 14px 0;
      }

      .healthDataOverviewGrid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
      }
      @media (max-width: 640px) {
        .healthDataOverviewGrid {
          grid-template-columns: 1fr 1fr;
        }
      }
      .healthDataOverviewGrid .statTile {
        margin-bottom: 0;
      }
      .healthDataOverviewGrid .statTile .value span {
        font-size: var(--fs-xs);
        color: var(--ink-3);
        font-weight: 600;
        margin-left: 2px;
      }

      .healthDataChartHead {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin: 22px 0 12px;
        flex-wrap: wrap;
        gap: 10px;
      }
      .healthDataChartHead h3 {
        font-size: var(--fs-md);
        margin: 0;
        font-weight: 600;
      }
      
      
      
      .healthDataChartUnitNote {
        font-size: var(--fs-xs);
        color: var(--ink-3);
        margin-top: 6px;
        text-align: right;
      }

      .healthDataDayRow {
        display: flex;
        align-items: center;
        gap: 14px;
        padding: 14px 0;
        border-top: 1px solid var(--border);
      }
      .healthDataDayRow:first-child {
        border-top: none;
      }
      .healthDataDayDate {
        width: 84px;
        flex-shrink: 0;
        font-size: var(--fs-sm);
        font-weight: 600;
      }
      .healthDataDayDate small {
        display: block;
        font-size: var(--fs-xs);
        font-weight: 400;
        color: var(--ink-3);
        margin-top: 2px;
      }
      .healthDateNote {
        font-size: var(--fs-xs);
        font-weight: 400;
        color: var(--ink-3);
      }
      .healthDataChipRow {
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
        flex: 1;
      }
      .healthDataChip {
        display: flex;
        align-items: center;
        gap: 5px;
        background: var(--surface-2);
        border: 1px solid var(--border);
        border-radius: var(--r-md);
        padding: 5px 9px;
        font-size: var(--fs-xs);
        color: var(--ink-3);
      }
      .healthDataChip b {
        color: var(--ink);
        font-weight: 600;
      }

      /* ---------- Gesundheitsdaten: Strava ---------- */
      .stravaSyncedRow {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin: 22px 0 12px;
      }
      .stravaSyncedRow h3 {
        font-size: var(--fs-md);
        margin: 0;
        font-weight: 600;
      }
      
      
      .stravaError {
        color: var(--danger);
        font-size: var(--fs-sm);
        padding: 14px 0;
      }

      .stravaOverviewGrid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 12px;
        margin-bottom: 16px;
      }
      @media (max-width: 640px) {
        .stravaOverviewGrid {
          grid-template-columns: 1fr 1fr;
        }
      }
      .stravaOverviewGrid .statTile {
        margin-bottom: 0;
      }
      .stravaOverviewGrid .statTile .value span {
        font-size: var(--fs-xs);
        color: var(--ink-3);
        font-weight: 600;
        margin-left: 2px;
      }

      .stravaSplitRow {
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
        border-top: 1px solid var(--border);
        padding-top: 14px;
        margin-bottom: 24px;
      }
      .stravaSplitChip {
        flex: 1;
        min-width: 110px;
        display: flex;
        align-items: center;
        gap: 8px;
        background: var(--surface-2);
        border-radius: var(--r-md);
        padding: 9px 12px;
        font-size: var(--fs-xs);
      }
      
      .stravaSplitChip b {
        font-size: var(--fs-xs);
        margin-left: auto;
      }

      .stravaChartLegend {
        display: flex;
        gap: 16px;
        flex-wrap: wrap;
        margin-bottom: 16px;
      }
      .stravaLegendItem {
        display: flex;
        align-items: center;
        gap: 6px;
        font-size: var(--fs-xs);
        color: var(--ink-3);
      }
      
      .stravaTrendSummary {
        margin-top: 14px;
        padding-top: 14px;
        border-top: 1px solid var(--border);
        font-size: var(--fs-xs);
        color: var(--ink-3);
        line-height: 1.5;
      }
      .stravaTrendSummary b {
        color: var(--ink);
      }

      .stravaGoalRow {
        display: flex;
        align-items: center;
        gap: 10px;
        font-size: var(--fs-sm);
        color: var(--ink-3);
        margin-bottom: 14px;
        flex-wrap: wrap;
      }
      .stravaGoalRow b {
        color: var(--ink);
      }
      .stravaGoalRow input[type="number"] {
        width: 64px;
        padding: 8px 10px;
        font-size: var(--fs-sm);
      }
      .stravaEditLink {
        background: none;
        border: none;
        color: var(--primary);
        font-size: var(--fs-xs);
        font-weight: 600;
        cursor: pointer;
        font-family: inherit;
        padding: 0;
      }

      .stravaActivity {
        display: flex;
        align-items: flex-start;
        gap: 14px;
        padding: 16px 0;
        border-top: 1px solid var(--border);
      }
      .stravaActivity:first-child {
        border-top: none;
      }
      .stravaActivityIcon {
        width: 38px;
        height: 38px;
        border-radius: var(--r-md);
        background: var(--surface-2);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: var(--fs-lg);
        flex-shrink: 0;
        margin-top: 2px;
      }
      .stravaActivityMeta {
        flex: 1;
        min-width: 0;
      }
      .stravaActivityName {
        font-size: var(--fs-md);
        font-weight: 600;
        margin-bottom: 2px;
      }
      .stravaActivityDate {
        font-size: var(--fs-xs);
        color: var(--ink-3);
        margin-bottom: 10px;
      }
      .stravaChipRow {
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
      }
      .stravaChip {
        display: flex;
        align-items: center;
        gap: 5px;
        background: var(--surface-2);
        border: 1px solid var(--border);
        border-radius: var(--r-md);
        padding: 5px 9px;
        font-size: var(--fs-xs);
        color: var(--ink-3);
      }
      .stravaChip b {
        color: var(--ink);
        font-weight: 600;
      }
      .stravaEditBtn {
        background: var(--surface-2);
        border: 1px solid var(--border);
        color: var(--ink-3);
        width: 32px;
        height: 32px;
        border-radius: var(--r-md);
        font-size: var(--fs-md);
        cursor: pointer;
        flex-shrink: 0;
        margin-top: 2px;
        font-family: inherit;
      }
      .stravaEditBtn:hover {
        color: var(--primary);
        border-color: var(--primary);
      }
      .stravaEditBtn.active {
        background: color-mix(in srgb, var(--primary) 12%, transparent);
        color: var(--primary);
        border-color: var(--primary);
      }

      .stravaEditPanel {
        overflow: hidden;
        max-height: 0;
        transition: max-height 0.25s ease;
      }
      .stravaEditPanel.open {
        /* Großzügig bemessen statt der früheren 640px: eine Krafttraining-
     Einheit mit vielen Übungen kann den Inhalt leicht über 640px treiben,
     wodurch der Speichern-Button unterhalb der max-height verschwand
     (overflow:hidden schnitt ihn einfach ab). */
        max-height: 3000px;
      }
      .stravaEditPanelInner {
        margin-top: 14px;
        padding-top: 14px;
        border-top: 1px dashed var(--border);
      }
      .stravaEditCaption {
        font-size: var(--fs-xs);
        color: var(--ink-3);
        margin: 0 0 10px;
      }

      
      dashed var(--border);
        color: var(--primary);
        font-size: var(--fs-xs);
        font-weight: 600;
        padding: 9px 12px;
        border-radius: var(--r-md);
        cursor: pointer;
        font-family: inherit;
        margin-top: 2px;
      }
      .stravaRemoveRow {
        background: none;
        border: none;
        color: var(--ink-3);
        font-size: var(--fs-md);
        cursor: pointer;
        width: 24px;
        font-family: inherit;
      }
      .stravaRemoveRow:hover {
        color: var(--danger);
      }

      .stravaUnitExerciseList {
        display: flex;
        flex-direction: column;
        gap: 8px;
      }
      .stravaUnitExerciseRow {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        background: var(--surface-2);
        border: 1px solid var(--border);
        border-radius: var(--r-md);
        padding: 10px 13px;
        font-size: var(--fs-xs);
        color: var(--ink-3);
      }
      .stravaUnitExerciseRow .exName {
        color: var(--ink);
        font-weight: 600;
      }
      .stravaUnitExerciseRow .exMeta {
        color: var(--ink-3);
        font-size: var(--fs-xs);
      }
      .stravaExtraExercises {
        display: flex;
        flex-direction: column;
        gap: 8px;
        margin-top: 8px;
      }
      .stravaExtraExerciseRow {
        display: grid;
        grid-template-columns: auto 1.5fr 0.8fr 1fr 1fr auto;
        gap: 8px;
        align-items: center;
      }
      @media (max-width: 640px) {
        .stravaExtraExerciseRow {
          grid-template-columns: auto 1fr 1fr;
        }
      }
      .stravaExtraBadge {
        font-size: var(--fs-xs);
        font-weight: 600;
        color: var(--ink-3);
        background: var(--surface-2);
        border: 1px solid var(--border);
        padding: 5px 7px;
        border-radius: var(--r-sm);
        white-space: nowrap;
      }

      .stravaToggleRow {
        display: flex;
        align-items: center;
        gap: 10px;
        font-size: var(--fs-xs);
        color: var(--ink-3);
        cursor: pointer;
        margin-bottom: 14px;
        user-select: none;
      }
      .stravaToggleRow input {
        position: absolute;
        opacity: 0;
        width: 0;
        height: 0;
      }
      .stravaToggleTrack {
        width: 34px;
        height: 20px;
        background: var(--surface-2);
        border: 1px solid var(--border);
        border-radius: 99px;
        position: relative;
        flex-shrink: 0;
        transition: background 0.15s ease;
      }
      .stravaToggleThumb {
        position: absolute;
        top: 2px;
        left: 2px;
        width: 14px;
        height: 14px;
        border-radius: 50%;
        background: var(--ink-3);
        transition:
          transform 0.15s ease,
          background 0.15s ease;
      }
      .stravaToggleRow input:checked + .stravaToggleTrack {
        background: color-mix(in srgb, var(--primary) 12%, transparent);
        border-color: var(--primary);
      }
      .stravaToggleRow input:checked + .stravaToggleTrack .stravaToggleThumb {
        transform: translateX(14px);
        background: var(--primary);
      }

      .stravaManualStrengthSection {
        display: none;
        margin-top: 4px;
        padding-top: 16px;
        border-top: 1px dashed var(--border);
      }
      .stravaManualStrengthSection.open {
        display: block;
      }


/* Gewichts-Verlauf je Übung */
.chg {
  margin-top: var(--s3);
  display: flex;
  gap: var(--s2);
  align-items: center;
  font-size: var(--fs-sm);
  color: var(--ink-2);
  flex-wrap: wrap;
}
.chg svg {
  color: var(--ink-3);
}
.chg b {
  font-variant-numeric: tabular-nums;
}
.chg .link {
  background: none;
  border: 0;
  padding: 0;
  color: var(--primary);
  font-size: var(--fs-sm);
  font-weight: 500;
  cursor: pointer;
}
.chg .link:hover {
  text-decoration: underline;
}
.hist {
  display: none;
  margin: var(--s3) 0 0;
  padding: var(--s3) 0 0;
  border-top: 1px solid var(--border);
  list-style: none;
}
.hist.open {
  display: block;
}
.hist li {
  display: grid;
  grid-template-columns: 110px 1fr auto;
  gap: var(--s3);
  padding: 5px 0;
  font-size: var(--fs-sm);
  font-variant-numeric: tabular-nums;
}
.hist li span:first-child {
  color: var(--ink-3);
}
.hist li .src {
  color: var(--ink-3);
  font-size: var(--fs-xs);
}
.chg .up,
.hist .up {
  color: var(--success);
}
.chg .down,
.hist .down {
  color: var(--danger);
}
@media (max-width: 640px) {
  .hist li {
    grid-template-columns: 92px 1fr;
  }
  .hist li .src {
    grid-column: 1 / -1;
  }
}
