/* ===================== Energy: workout "usual / extra", duplicates, Today › Details › Energy =====================
   Uses the shared tokens (css/app.css, css/living.css): cards, mint accent, warm tints — no new colours. */

/* Diary › Exercise: "This workout is  Extra today | Part of my usual routine" */
.exercise-form .ex-counts { margin: 0; padding: 0; border: 0; min-width: 0; }
.ex-counts-legend { padding: 0; margin: 0 0 6px; font-size: 12px; font-weight: 600; color: var(--text-secondary); }
.ex-counts-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ex-count-opt { position: relative; display: flex; align-items: flex-start; gap: 8px; min-height: 44px; padding: 9px 10px; border-radius: var(--radius-md);
  background: var(--surface-soft); box-shadow: inset 0 0 0 1px var(--line); cursor: pointer; min-width: 0; }
.ex-count-opt input { flex: 0 0 auto; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--accent); }
.ex-count-opt:has(input:checked) { background: var(--accent-light); box-shadow: inset 0 0 0 2px var(--accent); }
.ex-count-opt:has(input:focus-visible) { box-shadow: inset 0 0 0 2px var(--accent), var(--focus-ring); }
.ex-count-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ex-count-title { font-size: 13.5px; font-weight: 700; line-height: 1.25; color: var(--text-primary); overflow-wrap: anywhere; }
.ex-count-sub { font-size: 12px; line-height: 1.3; color: var(--text-secondary); overflow-wrap: anywhere; }
.ex-counts-hint { margin: 6px 0 0; font-size: 12.5px; line-height: 1.45; color: var(--text-secondary); text-wrap: pretty; }
.ex-counts-hint:empty { display: none; }
@media (max-width: 340px) { .ex-counts-options { grid-template-columns: minmax(0, 1fr); } }

/* "You already logged … Is this another session?" */
.ex-dup { padding: 10px 12px; border-radius: var(--radius-md); background: var(--yellow-light); color: var(--text-primary); box-shadow: inset 0 0 0 1px var(--line); }
.exercise-form .ex-dup[hidden] { display: none; }
.ex-dup-text { margin: 0 0 8px; font-size: 13.5px; line-height: 1.45; font-weight: 600; }
.ex-dup-text:focus { outline: none; }
.ex-dup-text:focus-visible { outline: 3px solid var(--accent-strong); outline-offset: 2px; border-radius: 6px; }
.ex-dup-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ex-dup-actions button { flex: 1 1 150px; min-height: 44px; font-size: 14px; padding: 8px 12px; }

/* Today › Details › Energy: a value with a short explanation under it */
.snap-energy-row.has-sub { flex-wrap: wrap; row-gap: 0; padding: 2px 0; }
.snap-energy-sub { flex: 0 0 100%; margin-top: -2px; font-size: 12px; line-height: 1.4; color: var(--text-secondary); text-wrap: pretty; overflow-wrap: anywhere; }
.snap-energy-row .snap-energy-label { min-width: 0; }
.snap-energy-foot { margin: 6px 0 0; font-size: 12px; line-height: 1.45; color: var(--text-secondary); text-wrap: pretty; }
.snap-energy-foot .link-btn { font-size: 12px; padding: 0 2px; margin: -8px 0; vertical-align: baseline; } /* keeps its 44 px touch height on phones */

/* The toast sizes to its text up to the screen width (a workout's two-sentence message was squeezed
   into half the screen by left: 50%); short toasts keep their pill look. */
.toast { width: max-content; border-radius: 20px; }

/* Today's three chips at 320 px: "Not logged" wraps instead of being cut to "Not logg…" */
@media (max-width: 359px) { .snap-chip-value.empty { white-space: normal; overflow: visible; text-overflow: clip; } }

/* Profile › Health goals › What counts as extra activity */
.pf-extra-activity { margin-top: 12px; padding: 10px 12px; border-radius: var(--radius-md); background: var(--surface-soft); box-shadow: inset 0 0 0 1px var(--line-soft); }
.pf-extra-activity .pf-label { margin: 0 0 4px; }
.pf-extra-activity p { margin: 0 0 6px; font-size: 13px; line-height: 1.5; color: var(--text-primary); text-wrap: pretty; }
.pf-extra-activity p:last-child { margin-bottom: 0; }
