/* WOD owns its app theme; it does not load the main website stylesheet. */
:root {
  color-scheme: light;
  --c-bg: #f6f5fa;
  --c-bg-soft: #f1eff7;
  --c-surface: #fff;
  --c-text: #252133;
  --c-text-soft: #696176;
  --c-border: #e5e0ec;
  --c-accent: #753adb;
  --c-primary-bg: #753adb;
  --c-primary-text: #fff;
  --c-text-danger: #b42332;
  --c-danger: #c73341;
  --c-text-info: #087f7b;
  --c-placeholder: #607185;
  --c-nav: #fffffff5;
  --c-selected: #eee5fc;
  --wod-plan-blue: #2e68b8;
  --wod-plan-purple: #8050c1;
  --wod-plan-green: #24724d;
  --radius-sm: 12px;
  --radius: 16px;
  --radius-lg: 22px;
  --wod-action-height: 44px;
  --wod-icon-size: 44px;
  --wod-nav-height: 74px;
  --wod-footer-offset: calc(var(--wod-nav-height) + 12px + env(safe-area-inset-bottom, 0px));
}
:root[data-wod-theme=dark] {
  color-scheme: dark;
  --c-bg: #100e16;
  --c-bg-soft: #26212f;
  --c-surface: #1c1924;
  --c-text: #f6f2fc;
  --c-text-soft: #b3aabe;
  --c-border: #36303f;
  --c-accent: #b996ff;
  --c-primary-bg: #b996ff;
  --c-primary-text: #201232;
  --c-text-danger: #ffaaa5;
  --c-danger: #ed7475;
  --c-text-info: #8ed8e9;
  --c-placeholder: #8c9bb0;
  --c-nav: #100e16f5;
  --c-selected: #753adb11;
  --wod-plan-blue: #7eb8ff;
  --wod-plan-purple: #af95ee;
  --wod-plan-green: #71cca0;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--c-bg); color: var(--c-text); font-family: system-ui, -apple-system, "Segoe UI", sans-serif; line-height: 1.5; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
button, input, select { font: inherit; }
:where(:root[data-wod-standalone=true]) input, :where(:root[data-wod-standalone=true]) select, :where(:root[data-wod-standalone=true]) textarea { font-size: max(16px, 1em); }
button, a, input, select, summary { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; }
h1, h2, h3, h4, h5 { line-height: 1.2; }
h1 { font-size: clamp(1.65rem, 5vw, 2.2rem); letter-spacing: -.045em; margin: .4rem 0; }
h2 { font-size: 1.5rem; letter-spacing: -.025em; }
h3 { font-size: 1.12rem; }
p { margin: .6rem 0; }
[hidden] { display: none !important; }
/* Native dialogs live beside the app shell. Keep the page still behind them. */
html:has(dialog[open]), body:has(dialog[open]) { overflow: hidden; overscroll-behavior: none; }
summary { list-style: none; }
summary::-webkit-details-marker { display: none; }

/* Shared layout and readable fields. */
.wod-shell {
  max-width: 760px;
  margin: 0 auto;
  padding: calc(16px + env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) calc(110px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
}
.wod-shell * { min-width: 0; }
.wod-shell h1, .wod-shell h2, .wod-shell h3, .wod-shell h4, .wod-shell h5, .wod-shell p, .wod-shell strong { overflow-wrap: anywhere; }
.wod-card { background: var(--c-surface); border: 1px solid var(--c-border); border-radius: var(--radius-lg); padding: 20px; margin: 16px 0; box-shadow: 0 8px 28px #00000014; scroll-margin-top: 16px; }
.wod-card h2, .wod-card h3 { margin: 0 0 16px; }
.wod-muted, .wod-shell .wod-muted { color: var(--c-text-soft); font-size: .875rem; font-weight: 400; }
.wod-shell label, .wod-exercise-sheet label { display: block; margin: 0 0 16px; color: var(--c-text-soft); font-size: .875rem; font-weight: 600; line-height: 1.5; }
.wod-shell input, .wod-shell select, .wod-exercise-sheet input, .wod-exercise-sheet select {
  display: block; width: 100%; max-width: 100%; min-height: var(--wod-action-height); margin-top: 8px;
  background: var(--c-bg-soft); color: var(--c-text); border: 1px solid var(--c-border); border-radius: var(--radius-sm);
  padding: 9px 11px; font-size: max(16px, 1rem); font-weight: 500;
}
.wod-shell input::placeholder, .wod-exercise-sheet input::placeholder { color: var(--c-placeholder); }
/* Bound native date/time controls as well as their WebKit value renderer. */
:is(.wod-shell, .wod-exercise-sheet, .wod-field-editor) input:is([type=date], [type=time], [type=datetime-local]) {
  -webkit-appearance: none; appearance: none; box-sizing: border-box;
  width: 100%; min-width: 0; max-width: 100%; inline-size: 100%; min-inline-size: 0; max-inline-size: 100%;
  line-height: 1.5; text-align: left; font-variant-numeric: tabular-nums;
}
:is(.wod-shell, .wod-exercise-sheet, .wod-field-editor) input:is([type=date], [type=time], [type=datetime-local])::-webkit-date-and-time-value { min-width: 0; min-inline-size: 0; margin: 0; text-align: left; }
:is(.wod-shell, .wod-exercise-sheet, .wod-field-editor) input:is([type=date], [type=time], [type=datetime-local])::-webkit-datetime-edit { min-width: 0; padding: 0; }
.wod-shell .wod-filter-panel > .wod-grid { gap: 12px; margin-top: 12px; }
.wod-shell #wod-date, .wod-shell .wod-schedule-editor input[type=datetime-local] { height: max(var(--wod-action-height), calc(1.5em + 20px)); min-height: var(--wod-action-height); }
.wod-day-field { min-width: 0; color: var(--c-text-soft); font-size: .875rem; font-weight: 600; }
.wod-shell .wod-day-picker-trigger { width: 100%; min-width: 0; min-height: 44px; margin-top: 8px; padding: 9px 11px; border-radius: var(--radius-sm); font-size: max(16px, 1rem); font-weight: 500; line-height: 1.5; text-align: left; }
.wod-day-picker-trigger .wod-action-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wod-day-picker-trigger .wod-action-icon { width: 18px; height: 18px; flex-basis: 18px; order: 1; }
.wod-shell input:focus-visible, .wod-shell select:focus-visible, .wod-shell button:focus-visible, .wod-shell a:focus-visible, .wod-shell summary:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 3px; }
.wod-shell fieldset { border: 0; padding: 0; margin: 0; }
.wod-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.wod-shell input.wod-check { display: inline-block; width: 24px; min-height: 24px; height: 24px; flex-shrink: 0; margin: 0; padding: 0; }
.wod-shell label:has(.wod-check) { display: flex; align-items: center; gap: 10px; min-height: 48px; }

.wod-shell [aria-invalid=true] { border-color: var(--c-danger); }
.wod-actions, .wod-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.wod-actions > * { flex: 1 1 140px; }
.wod-row { justify-content: space-between; }
.wod-row > h2, .wod-row > h3, .wod-row > h4 { margin-bottom: 0; }
.wod-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 16px; }
.wod-grid > label { margin: 0; }
.wod-divider { border-top: 1px solid var(--c-border); margin: 24px 0; }

/* All form actions share one size. Icon and navigation controls have their own fixed roles. */
.btn, .wod-shell button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-width: var(--wod-icon-size); max-width: 100%; min-height: var(--wod-action-height);
  padding: 9px 12px; border: 1px solid var(--c-border); border-radius: var(--radius-sm);
  background: var(--c-bg-soft); color: var(--c-text); font-size: 1rem; font-weight: 650; line-height: 1.35;
  white-space: normal; overflow-wrap: anywhere; text-align: center;
  transition: background .15s, transform .15s, border-color .15s;
}
.wod-shell button:active { transform: scale(.98); }
.wod-shell button:disabled { opacity: .5; cursor: default; }
.wod-shell button[aria-busy=true] { cursor: wait; }
.wod-shell .btn--ghost, .wod-exercise-sheet .btn--ghost { background: transparent; }
.wod-shell .btn--primary, .wod-shell .wod-primary-action, .wod-exercise-sheet .btn--primary { background: var(--c-primary-bg); border-color: var(--c-primary-bg); color: var(--c-primary-text); }
.wod-primary-action { width: 100%; margin-top: 16px; }
.wod-icon-button {
  display: grid; place-items: center; flex: 0 0 var(--wod-icon-size); width: var(--wod-icon-size);
  min-width: var(--wod-icon-size); min-height: var(--wod-icon-size); height: var(--wod-icon-size);
  padding: 11px; border-radius: 50%; font-size: 1.1rem; color: var(--c-text);
}
.wod-action-icon { display: block; width: 24px; height: 24px; flex: 0 0 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.wod-action-icon-only { display: inline-flex; flex: 0 0 var(--wod-icon-size); width: var(--wod-icon-size); min-width: var(--wod-icon-size); max-width: var(--wod-icon-size); height: var(--wod-icon-size); min-height: var(--wod-icon-size); padding: 9px; border-radius: 10px; }
.wod-shell .wod-action-toolbar { justify-content: flex-start; gap: 10px; }
.wod-shell .wod-action-toolbar > button { flex: 0 0 var(--wod-icon-size); }
.wod-action-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 16px 0; color: var(--c-text-soft); font-size: .8125rem; }
.wod-action-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.wod-action-legend .wod-action-icon { width: 18px; height: 18px; flex-basis: 18px; }
.wod-help-new { border-color: var(--c-accent); }
.wod-quick-links { display: flex; gap: 12px; flex-wrap: wrap; }
.wod-quick-links > button { flex: 1 1 180px; }
.wod-quick-links > #wod-home-pair { flex: 0 0 var(--wod-action-height); }

/* App frame, account access and theme controls. */
.wod-appbar, .wod-account-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 24px; }
.wod-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 850; font-size: 1.4rem; line-height: 1; }
.wod-brand img { flex-shrink: 0; border-radius: 10px; }
.wod-brand small { display: block; color: var(--c-text-soft); font-size: .52rem; font-weight: 650; letter-spacing: .1em; margin-top: 7px; }
.wod-header-controls { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.wod-shell .wod-language-label { margin: 0; }
.wod-shell #wod-language { width: 56px; min-height: var(--wod-action-height); height: var(--wod-action-height); margin: 0; padding: 8px 5px; font-size: .875rem; }
.wod-header-controls svg, .wod-nav svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.wod-theme-label { max-width: 320px; }
.wod-help-card .wod-theme-label { margin: 16px 0; }
.wod-account-row { align-items: flex-start; }
.wod-account-row h1 { font-size: 1.45rem; }
.wod-editing .wod-account-row, .wod-editing #wod-account-details { display: none; }
.wod-eyebrow { font-size: .7rem; letter-spacing: .14em; font-weight: 750; color: var(--c-accent); margin: 0 0 8px; }
.wod-screen-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin: 24px 0 16px; }
.wod-screen-heading h2 { margin: 0; }
.wod-auth-card { padding: 28px 24px; }
.wod-auth-card h1 { margin: 0 0 12px; }
.wod-auth-card form { margin-top: 24px; }
.wod-auth-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding: 4px; background: var(--c-bg); border-radius: 16px; margin-top: 24px; }
.wod-auth-tabs button { border: 0; background: transparent; padding: 12px 8px; }
.wod-auth-tabs button[aria-pressed=true] { background: var(--c-surface); color: var(--c-accent); }
.wod-install-card { padding: 16px 4px; margin-top: 24px; color: var(--c-text-soft); font-size: .875rem; }
.wod-install-card strong { color: var(--c-text); }
.wod-install-card p { margin: 8px 0; }
.wod-install-card button { margin-top: 8px; }
.wod-install-card [role=status]:empty { display: none; }
.wod-help-card ol { padding-left: 22px; color: var(--c-text-soft); }
.wod-help-card li { padding: 8px 0; }

/* Brief disclosures keep supporting information out of the main task. */
.wod-shell details { margin-top: 16px; }
.wod-shell summary { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 0; cursor: pointer; font-size: .9375rem; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.wod-shell summary::before { content: "▸"; flex-shrink: 0; color: var(--c-accent); }
.wod-shell details[open] > summary::before { content: "▾"; }
#wod-status:empty { display: none; }
.wod-auth-feedback { margin: 0; padding: 12px 14px; border-radius: var(--radius-sm); background: var(--c-bg-soft); color: var(--c-text); overflow-wrap: anywhere; }
.wod-auth-feedback.wod-auth-error { color: var(--c-text-danger); border: 1px solid var(--c-danger); }
.wod-watch-state { color: var(--c-text-soft); margin: 12px 0 0; }
.wod-watch-state[data-paired="true"] { color: var(--c-text-info); font-weight: 600; }
.wod-pair-feedback { display: flex; align-items: flex-start; gap: 12px; margin-top: 16px; padding: 16px; border: 1px solid var(--c-border); border-radius: var(--radius); background: var(--c-bg-soft); overflow-wrap: anywhere; }
.wod-pair-feedback[hidden],#wod-pair-check[hidden] { display: none; }
.wod-pair-feedback strong { display: block; }
.wod-pair-feedback p { margin: 8px 0 0; color: var(--c-text-soft); }
.wod-pair-feedback .btn { margin-top: 12px; }
.wod-pair-feedback[data-kind="success"] { border-color: var(--c-text-info); }
.wod-pair-feedback[data-kind="error"] { border-color: var(--c-danger); }
.wod-pair-feedback[data-kind="error"] strong { color: var(--c-text-danger); }
#wod-pair-indicator { width: 22px; height: 22px; flex: 0 0 22px; font-size: 24px; line-height: 1; color: var(--c-text-info); }
.wod-pair-feedback[data-kind="progress"] #wod-pair-indicator { border: 3px solid var(--c-border); border-top-color: var(--c-accent); border-radius: 50%; animation: wod-photo-spin .9s linear infinite; }
#wod-pair .wod-help-row { flex-wrap: wrap; align-items: flex-end; }
#wod-pair .wod-help-row label { flex: 1 1 180px; }
@media (prefers-reduced-motion: reduce) { .wod-pair-feedback[data-kind="progress"] #wod-pair-indicator { animation: none; } }
.wod-password-field { display: grid; gap: 6px; min-width: 0; }
.wod-password-input { position: relative; min-width: 0; }
.wod-shell .wod-password-input input { width: 100%; padding-right: 64px; }
.wod-shell .wod-password-toggle { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 48px; height: 48px; min-height: 48px; padding: 0; border: 0; border-radius: 12px; background: transparent; color: var(--c-accent); cursor: pointer; }
.wod-password-toggle:hover { background: var(--c-bg-soft); }
.wod-shell .wod-password-toggle:active { transform: translateY(-50%) scale(.98); }
.wod-password-toggle:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }
.wod-password-toggle svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.wod-password-eye-slash { display: none; }
.wod-password-toggle[aria-pressed="true"] .wod-password-eye-slash { display: block; }
#wod-status:not(:empty) { padding: 12px 16px; border-left: 3px solid var(--c-accent); background: var(--c-bg-soft); border-radius: var(--radius-sm); overflow-wrap: anywhere; }
#wod-preview-banner { padding: 0; margin: 0 0 16px; border: 0; border-radius: 0; color: var(--c-text-soft); font-size: .8125rem; background: transparent; box-shadow: none; }
#wod-preview-banner details { margin: 0; }
#wod-preview-banner summary { display: inline-flex; padding: 8px 0; color: var(--c-accent); font-size: .8125rem; }
#wod-preview-banner strong { color: var(--c-accent); }
#wod-preview-banner details > span, #wod-preview-banner details > p { display: block; max-width: 560px; margin: 0 0 8px; line-height: 1.5; }
.wod-filter-panel { padding: 0; border: 0; background: transparent; }
.wod-filter-panel > .wod-grid { margin-top: 16px; }
/* Profile identity stays within the same mobile app rhythm. */
.wod-profile-identity { display: flex; align-items: center; gap: 12px; min-width: 0; }
.wod-profile-identity { margin-bottom: 16px; }
.wod-profile-identity > strong { min-width: 0; overflow-wrap: anywhere; }
.wod-avatar { position: relative; display: inline-grid; flex: 0 0 44px; width: 44px; height: 44px; place-items: center; overflow: hidden; border-radius: 50%; background: var(--c-bg-soft); color: var(--c-text); border: 1px solid var(--c-border); font-weight: 700; }
.wod-avatar--profile { width: 72px; height: 72px; flex-basis: 72px; font-size: 1.4rem; }
.wod-avatar img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.wod-profile-photo-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.wod-profile-photo-actions .btn { flex: 1 1 150px; }
#wod-profile-panel form { margin: 16px 0; }

/* Short, adjacent help replaces paragraphs that compete with the first action. */
.wod-inline-help { display: inline-flex; flex: 0 0 44px; align-self: center; margin: 0; position: relative; }
.wod-shell .wod-inline-help > summary { display: inline-flex; flex: 0 0 44px; width: 44px; min-width: 44px; min-height: 44px; height: 44px; padding: 10px; border: 0; border-radius: 50%; color: var(--c-text-soft); }
.wod-shell .wod-inline-help > summary::before, .wod-shell .wod-inline-help[open] > summary::before { content: none; }
.wod-inline-help > summary .wod-action-icon { width: 20px; height: 20px; flex-basis: 20px; }
.wod-inline-help > p { position: absolute; z-index: 12; top: calc(100% + 8px); right: 0; width: min(280px, calc(100vw - 64px)); margin: 0; padding: 12px; border: 1px solid var(--c-border); border-radius: var(--radius-sm); background: var(--c-surface); box-shadow: 0 10px 24px #00000022; line-height: 1.45; }
.wod-profile-photo-actions .wod-inline-help { margin-left: auto; }

.wod-help-row { display: flex; align-items: center; gap: 8px; }
.wod-help-row > :first-child { flex: 1; min-width: 0; }
.wod-help-row .wod-inline-help, .wod-help-row > button { flex: 0 0 auto; }
.wod-compact-actions { display: flex; align-items: center; gap: 4px; }
.wod-compact-actions > button { flex: 0 0 auto; }
.wod-shell .wod-compact-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.wod-shell .wod-compact-heading > h2, .wod-shell .wod-compact-heading > h3, .wod-shell .wod-compact-heading > h4 { min-width: 0; margin: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; overflow-wrap: normal; font-size: 1.125rem; }
.wod-heading-actions { display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-end; gap: 4px; }
.wod-shell .wod-heading-actions > button, .wod-shell .wod-heading-actions > .wod-inline-help, .wod-shell .wod-heading-actions > .wod-inline-help > summary { flex: 0 0 44px; width: 44px; min-width: 44px; max-width: 44px; height: 44px; min-height: 44px; margin: 0; padding: 10px; border-radius: 12px; }
.wod-shell .wod-heading-actions > .wod-inline-help { padding: 0; }
.wod-heading-actions .wod-action-icon { width: 18px; height: 18px; flex-basis: 18px; }
.wod-shell details.wod-filter-panel { margin-top: 8px; }
.wod-shell .wod-day-item { padding: 12px 0; }
.wod-day-item > p { margin: 6px 0 0; }
.wod-schedule-editor { margin-top: 12px; padding: 12px; background: var(--c-bg-soft); border: 1px solid var(--c-border); border-radius: var(--radius-sm); }
.wod-schedule-editor > .wod-grid { margin-top: 12px; }
.wod-shell .wod-schedule-editor > label { margin: 12px 0 0; }
.wod-help-row h2, .wod-help-row h3 { margin: 0; }

#wod-screen-account .wod-card > h2, #wod-screen-account .wod-card > h3 { margin-top: 0; }
.wod-logout { width: 100%; margin: 8px 0 24px; }
/* A signed-in member starts with the day itself. The section title already supplies the context. */
#wod-screen-home .wod-screen-heading .wod-eyebrow { display: none; }
#wod-screen-home .wod-screen-heading { margin-top: 16px; }
.wod-profile-status:empty { display: none; }

/* Fixed app navigation reserves space below sticky task actions. */
.wod-nav {
  position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); width: min(760px, 100%);
  display: flex; flex-wrap: nowrap; gap: 4px; z-index: 10;
  background: var(--c-nav); backdrop-filter: blur(14px); border-top: 1px solid var(--c-border);
  padding: 8px max(8px, env(safe-area-inset-right, 0px)) calc(8px + env(safe-area-inset-bottom, 0px)) max(8px, env(safe-area-inset-left, 0px));
}
.wod-nav button, .wod-nav a {
  flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  min-width: 0; min-height: 58px; padding: 5px 3px; border: 0; background: transparent; text-decoration: none;
  font-size: .75rem; color: var(--c-text-soft); border-radius: var(--radius-sm);
}
.wod-nav button[aria-current=page], .wod-nav a[aria-current=page] { background: var(--c-bg-soft); color: var(--c-accent); }
.wod-nav:has(#wod-builder-link:not([hidden])) button { font-size: .6875rem; }

/* Advanced editor retains every existing plan field, with consistent action sizes. */

.wod-shell .wod-action-menu { width: 100%; max-width: 100%; margin: 8px 0 0; padding: 0; border: 0; }
.wod-shell .wod-action-menu > summary { display: flex; align-items: center; justify-content: center; width: 52px; min-width: 52px; height: 52px; min-height: 52px; margin: 0 0 0 auto; padding: 13px; list-style: none; border: 1px solid var(--c-border); border-radius: 14px; background: var(--c-surface); cursor: pointer; }
.wod-shell .wod-action-menu > summary::before { content: none; }
.wod-shell .wod-action-menu[open] > summary::before { content: none; }
.wod-action-menu > summary::marker { content: ""; }
.wod-action-menu > summary::-webkit-details-marker { display: none; }
.wod-shell .wod-action-menu-items { display: grid; gap: 4px; width: 100%; min-width: 0; padding: 8px; margin: 8px 0 0; border: 1px solid var(--c-border); border-radius: 16px; background: var(--c-surface); }
.wod-shell .wod-action-menu:not([open]) > .wod-action-menu-items { display: none; }
.wod-shell .wod-action-menu-items > button { width: 100%; min-height: 52px; padding: 12px; justify-content: flex-start; text-align: left; border-color: transparent; background: transparent; }
.wod-action-menu-items > button .wod-action-label { flex: 1; }
.wod-shell .wod-action-menu-items > button:hover, .wod-action-menu > summary[aria-expanded=true] { background: var(--c-selected); }
 .wod-coach-settings { border-top: 1px solid var(--c-border); padding-top: 8px; margin-top: 24px; }
.wod-coach-settings label { line-height: 1.5; }
.wod-coach-settings p:empty { display: none; }

/* Sequential wizard: one current step, one readable column, one next action. */

/* Task footers remain above navigation and return to normal flow for the keyboard. */

.wod-keyboard-open .wod-nav { display: none; }

.wod-keyboard-open .wod-shell { padding-bottom: 24px; }

/* Review and recorded results. */

.wod-item { padding: 16px 0; border-bottom: 1px solid var(--c-border); }
.wod-shell details.wod-item { margin-top: 0; }
.wod-item > strong { display: block; font-size: 1.0625rem; }
.wod-item > p { font-size: .875rem; color: var(--c-text-soft); }
.wod-item .wod-actions { margin-top: 16px; }
.wod-workout-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.wod-shell .wod-workout-name { display: block; min-width: 0; white-space: normal; overflow-wrap: anywhere; font-size: 1rem; line-height: 1.35; }
.wod-shell .wod-workout-heading .wod-action-toolbar { flex-wrap: nowrap; justify-content: flex-end; gap: 4px; margin: 0; }
.wod-shell .wod-workout-heading .wod-action-toolbar > .wod-action-icon-only { flex: 0 0 44px; width: 44px; min-width: 44px; max-width: 44px; height: 44px; min-height: 44px; padding: 9px; border-radius: 10px; }
.wod-workout-heading .wod-action-icon { width: 18px; height: 18px; flex-basis: 18px; }
@media(max-width:600px){
  .wod-workout-heading { grid-template-columns:minmax(0,1fr);gap:10px; }
  .wod-shell .wod-workout-heading .wod-action-toolbar { justify-content:flex-start;flex-wrap:wrap; }
}

.wod-fit-help > summary { display: grid; place-items: center; width: 44px; min-height: 44px; cursor: pointer; list-style: none; }
.wod-fit-help > summary::-webkit-details-marker { display: none; }
.wod-fit-help[open] { flex: 1 1 100%; min-width: 0; }
.wod-fit-help > p { position: static; width: 100%; margin: 8px 0; padding: 12px; border: 1px solid var(--c-border); border-radius: var(--radius-sm); line-height: 1.5; overflow-wrap: anywhere; }
#wod-catalog-browser > details > summary { min-height: 44px; align-content: center; font-size: 16px; font-weight: 650; }
.wod-shell .wod-library-exercise { padding: 8px 0; border-left: 3px solid var(--wod-muscle-color, var(--c-border)); padding-left: 10px; }
.wod-shell .wod-library-exercise > summary { display: flex; align-items: center; gap: 8px; min-height: 44px; }
.wod-library-exercise-name { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.wod-library-video-mark { flex: 0 0 24px; color: var(--c-accent); text-align: center; font-size: 1.3rem; }
.wod-exercise-guide { padding: 4px 0 8px; font-size: .9375rem; }
.wod-exercise-guide .wod-exercise-alias { margin: 0 0 8px; font-size: .875rem; }
.wod-exercise-guide-tags { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; margin-bottom: 8px; }
.wod-exercise-guide-tags > span { max-width: 100%; padding: 2px 8px; border-radius: 6px; background: var(--c-bg-soft); font-size: .8125rem; overflow-wrap: anywhere; }
.wod-exercise-guide-tags .wod-guide-muscle-tag { border-left: 3px solid var(--wod-muscle-color, var(--c-border)); }
.wod-exercise-guide-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 12px; }
.wod-exercise-guide-heading h4 { margin: 0; font-size: .9375rem; }
.wod-shell .wod-exercise-video-link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; flex-shrink: 0; gap: 4px; padding: 4px 8px; border: 1px solid var(--c-border); border-radius: 8px; text-decoration: none; font-weight: 650; font-size: .875rem; color: var(--c-accent); background: var(--c-bg-soft); }
.wod-exercise-guide ol { padding-left: 22px; margin: 8px 0; }
.wod-exercise-guide li { padding-left: 2px; margin: 6px 0; }
.wod-exercise-guide small { display: block; margin-top: 6px; font-size: .75rem; }
.wod-choices { display: flex; flex-wrap: wrap; gap: 12px 16px; margin: 16px 0; }
.wod-choices label { display: inline-flex; align-items: center; gap: 10px; margin: 0; min-height: 48px; padding: 8px; }
.wod-plan-tree { padding-left: 20px; overflow-wrap: anywhere; }
.wod-plan-tree li { margin: 8px 0; }
.wod-plan-tree ul { padding-left: 16px; }
.wod-block-score { border-left: 3px solid var(--c-accent); background: var(--c-bg-soft); padding: 12px 16px; margin: 16px 0; }
.wod-block-score strong { display: block; }

[data-wod-screen]:not([hidden]) { animation: wod-reveal .16s ease-out; }
@keyframes wod-reveal { from { opacity: .4; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

/* Phone spacing stays regular even at 320px; cards do not cut off long names. */

@media (max-width: 420px) {
  .wod-shell { padding-right: max(16px, env(safe-area-inset-right, 0px)); padding-left: max(16px, env(safe-area-inset-left, 0px)); }
  .wod-card { padding: 16px; }
  .wod-auth-card { padding: 24px 16px; }

  .wod-screen-heading { align-items: flex-start; }

}
@media (max-width: 359px) {

  .wod-brand small { display: none; }
  .wod-appbar { gap: 8px; }
  .wod-brand { gap: 8px; font-size: 1.25rem; }

}

@media (min-width: 760px) {
  .wod-shell { padding-top: 28px; }
  .wod-auth-card { max-width: 480px; margin: 24px auto; }
  .wod-nav { border: 1px solid var(--c-border); border-bottom: 0; border-radius: 20px 20px 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Approved progressive wizard and compact, consistent account controls. */
.wod-help-row h3 { margin: 12px 0; }
#wod-approved-wizard { display: grid; gap: 16px; }
#wod-approved-wizard > .wod-row:first-child { justify-content: flex-start; flex-wrap: nowrap; gap: 8px; }
#wod-approved-wizard > .wod-row:first-child > h2 { margin-right: auto; min-width: 0; }
#wod-approved-wizard > .wod-row:first-child > button { flex-shrink: 0; }
.wod-photo-source-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.wod-photo-source-actions .btn { flex: 1 1 150px; }
.wod-photo-source-actions > .wod-photo-source { position: relative; display: flex; align-items: center; justify-content: center; margin: 0; color: var(--c-text); font-size: 1rem; font-weight: 650; line-height: 1.35; overflow: hidden; cursor: pointer; }
.wod-photo-source-actions .wod-photo-source > input[type=file] { position: absolute; inset: 0; z-index: 1; display: block; width: 100%; max-width: none; min-height: 0; height: 100%; margin: 0; padding: 0; border: 0; opacity: 0; cursor: pointer; }
.wod-photo-source:focus-within { outline: 2px solid var(--c-accent); outline-offset: 2px; }
.wod-photo-notes { margin: 16px 0; text-align: left; }
.wod-photo-notes label { display: block; font-weight: 650; }
.wod-photo-notes textarea { display: block; box-sizing: border-box; width: 100%; min-height: 112px; margin-top: 8px; padding: 12px; border: 1px solid var(--c-border); border-radius: 12px; background: var(--c-bg-soft); color: var(--c-text); font: inherit; font-weight: 400; line-height: 1.5; resize: vertical; }
.wod-photo-notes p { margin: 8px 0 0; color: var(--c-text-soft); font-size: .875rem; line-height: 1.5; }
.wod-photo-notes-review { margin-bottom: 16px; text-align: left; }
.wod-photo-notes-review p { white-space: pre-wrap; overflow-wrap: anywhere; }
.wod-photo-review-tools { display:flex;align-items:center;gap:8px;position:relative;margin:0 0 12px; }
.wod-photo-review-tools > .wod-icon-button,.wod-photo-review-help > summary { display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:44px;min-width:44px;max-width:44px;height:44px;min-height:44px;margin:0;padding:10px;border:1px solid var(--c-border);border-radius:12px;background:var(--c-bg-soft);color:var(--c-text);cursor:pointer; }
.wod-photo-review-tools .wod-action-icon { width:22px;height:22px;flex:0 0 22px; }
.wod-photo-review-help { margin:0; }
.wod-photo-review-help > summary::before { content:none; }
.wod-photo-review-help-body { position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:8;max-height:min(360px,45dvh);overflow:auto;margin:0;padding:14px;border:1px solid var(--c-border);border-radius:12px;background:var(--c-surface);color:var(--c-text);box-shadow:0 10px 24px #0002;overflow-wrap:anywhere; }
.wod-photo-review-help-body > p { margin:0 0 12px;font-size:.875rem;line-height:1.5; }
.wod-photo-review-help-body .wod-photo-notes-review { margin:0;font-size:.875rem; }
.wod-photo-review-help:not([open]) > .wod-photo-review-help-body { display:none; }

/* The shell updates the visible viewport variables when the iOS keyboard moves. */
dialog.wod-photo-sheet { inset: auto; top: calc(var(--wod-visual-top, 0px) + var(--wod-visual-height, 100dvh) / 2); left: 50%; margin: 0; width: min(520px, calc(100vw - 32px)); max-width: none; max-height: max(80px, calc(var(--wod-visual-height, 100dvh) - 32px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px))); border-radius: 20px; transform: translate(-50%, -50%); animation: none; box-shadow: 0 20px 60px #0003; overscroll-behavior: contain; }
dialog.wod-photo-sheet > .wod-photo-heading { align-items: center; flex-wrap: nowrap; gap: 12px; margin: 0 0 16px; }
dialog.wod-photo-sheet[data-phase=review] > .wod-photo-heading { position: sticky; top: -20px; z-index: 3; margin: -20px -20px 16px; padding: 16px 20px; border-bottom: 1px solid var(--c-border); background: var(--c-surface); }
dialog.wod-photo-sheet[data-phase=review] > .wod-photo-heading > h2 { margin: 0; }
.wod-photo-heading > h2 { flex: 1; min-width: 0; overflow-wrap: anywhere; }
dialog.wod-photo-sheet .wod-photo-heading > .wod-icon-button { appearance: none; -webkit-appearance: none; box-sizing: border-box; flex: 0 0 44px; width: 44px; min-width: 44px; max-width: 44px; height: 44px; min-height: 44px; margin: 0; padding: 9px; border: 1px solid var(--c-border); border-radius: 10px; background: var(--c-bg-soft); color: var(--c-text); box-shadow: none; }
.wod-photo-heading > .wod-icon-button > svg { flex: 0 0 20px; width: 20px; height: 20px; }
dialog.wod-photo-sheet .wod-photo-heading > .wod-icon-button:focus { outline: none; }
dialog.wod-photo-sheet .wod-photo-heading > .wod-icon-button:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }
dialog.wod-photo-sheet > .wod-photo-source-actions, dialog.wod-photo-sheet > .wod-photo-actions { margin-bottom: 0; }
dialog.wod-photo-sheet > [role=status]:empty { display: none; }
dialog.wod-photo-sheet > .wod-photo-navigation { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); gap: 10px; margin: 12px 0 0; }
.wod-photo-navigation > .btn { min-width: 0; width: 100%; height: 100%; margin: 0; padding: 10px 8px; }
.wod-photo-content { min-width: 0; margin: 0; padding: 0; border: 0; }
.wod-photo-resolve-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: 100%; }
.wod-photo-resolve-actions .btn { min-width: 0; min-height: 56px; padding: 12px 10px; white-space: normal; overflow-wrap: anywhere; }
.wod-photo-part { margin: 12px 0; }
.wod-photo-part-toggle { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; min-height: 72px; padding: 12px 16px; border: 1.5px solid var(--c-accent); border-radius: 14px; background: var(--c-bg-soft); color: var(--c-text); cursor: pointer; touch-action: manipulation; }
.wod-photo-part-labels { display: grid; gap: 3px; min-width: 0; }
.wod-photo-part-labels strong { font-size: 1.125rem; font-weight: 750; line-height: 1.3; overflow-wrap: anywhere; }
.wod-photo-part-show, .wod-photo-part-hide { color: var(--c-text-soft); font-size: .8125rem; line-height: 1.4; }
.wod-photo-part-hide { display: none; }
.wod-photo-part-arrow { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%; background: var(--c-primary-bg); color: var(--c-primary-text); }
.wod-photo-part-arrow::after { content: ""; width: 9px; height: 9px; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.wod-photo-part-toggle:hover, .wod-photo-part[open] > .wod-photo-part-toggle { background: var(--c-selected); }
.wod-photo-part-toggle:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 3px; }
.wod-photo-part[open] > .wod-photo-part-toggle .wod-photo-part-show { display: none; }
.wod-photo-part[open] > .wod-photo-part-toggle .wod-photo-part-hide { display: inline; }
.wod-photo-part[open] > .wod-photo-part-toggle .wod-photo-part-arrow::after { margin-top: 4px; transform: rotate(225deg); }
.wod-photo-search-status { margin: 0; color: var(--c-text-soft); font-size: .875rem; }
.wod-photo-exercise-results { display: grid; gap: 8px; max-height: 280px; overflow-y: auto; }
.wod-photo-exercise-choice { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 56px; padding: 10px 12px; border: 1px solid var(--c-border); border-radius: 12px; background: var(--c-surface); color: var(--c-text); text-align: left; touch-action: manipulation; }
.wod-photo-exercise-labels { display: grid; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.wod-photo-exercise-labels strong { font-size: 1rem; line-height: 1.35; }
.wod-photo-exercise-labels small { color: var(--c-text-soft); font-size: .8125rem; }
.wod-photo-exercise-add { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; border-radius: 10px; background: var(--c-primary-bg); color: var(--c-primary-text); font-size: 1.4rem; line-height: 1; }
.wod-photo-exercise-choice:hover, .wod-photo-exercise-choice[aria-pressed=true] { border-color: var(--c-accent); background: var(--c-selected); }
.wod-photo-exercise-choice:focus-visible { outline: 3px solid var(--c-accent); outline-offset: -3px; }
.wod-photo-sheet[data-phase=loading] { text-align: center; }
.wod-photo-sheet[data-phase=loading] .wod-row:first-child h2 { font-size: clamp(1.4rem, 5vw, 1.8rem); }
.wod-photo-sheet[data-phase=loading] [role=status] { line-height: 1.6; color: var(--c-text-soft); }
.wod-photo-sheet[data-phase=loading] .wod-row:last-of-type { justify-content: center; }
.wod-photo-analyst { width: min(224px, 100%); height: 176px; margin: 4px auto 10px; background: url("../images/wod-photo-analyst.svg") center / contain no-repeat; }
.wod-photo-analyst[hidden],.wod-photo-sheet [hidden] { display: none !important; }
.wod-photo-notice { position: fixed; z-index: 120; right: 16px; bottom: calc(100px + env(safe-area-inset-bottom, 0px)); width: min(420px, calc(100vw - 32px)); box-sizing: border-box; padding: 0; overflow: hidden; border: 1px solid var(--c-border); border-left: 4px solid var(--c-accent); border-radius: 18px; background: var(--c-surface); color: var(--c-text); box-shadow: 0 16px 50px #0003; }
.wod-photo-notice-toggle { display: grid; grid-template-columns: minmax(0, 1fr) 24px; align-items: center; gap: 10px; width: 100%; min-height: 44px; margin: 0; padding: 12px 14px 6px; border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; touch-action: manipulation; }
.wod-photo-notice-heading { display: flex; align-items: center; gap: 8px; min-width: 0; }
.wod-photo-notice-heading strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 1rem; line-height: 1.4; }
.wod-photo-notice-count { display: inline-grid; place-items: center; flex-shrink: 0; min-width: 26px; min-height: 26px; padding: 0 6px; border-radius: 8px; box-sizing: border-box; background: var(--c-selected); color: var(--c-accent); font-size: .875rem; font-weight: 750; }
.wod-photo-notice-summary { display: block; padding: 0 14px 10px; color: var(--c-text-soft); font-size: .75rem; line-height: 1.45; overflow-wrap: anywhere; }
.wod-photo-notice-arrow { justify-self: center; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(225deg); }
.wod-photo-notice-toggle[aria-expanded=false] .wod-photo-notice-arrow { transform: rotate(45deg); }
.wod-photo-job-list { display: grid; max-height: min(280px, 38dvh); margin: 0; padding: 0 12px; overflow-y: auto; overscroll-behavior: contain; list-style: none; border-top: 1px solid var(--c-border); }
.wod-photo-job { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 4px 8px; min-height: 64px; box-sizing: border-box; padding: 10px 0; border-bottom: 1px solid var(--c-border); }
.wod-photo-job:last-child { border-bottom: 0; }
.wod-photo-job-symbol { display: grid; place-items: center; width: 18px; height: 18px; box-sizing: border-box; border-radius: 50%; color: var(--c-success-text); font-size: .875rem; font-weight: 750; }
.wod-photo-job[data-photo-state=pending] .wod-photo-job-symbol { border: 2px solid var(--c-border); border-top-color: var(--c-accent); animation: wod-photo-job-spin .9s linear infinite; }
.wod-photo-job[data-photo-state=failed] .wod-photo-job-symbol { color: var(--c-danger-text); border: 1px solid currentColor; }
.wod-photo-job-copy { display: grid; gap: 3px; min-width: 0; }
.wod-photo-job-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .875rem; line-height: 1.35; }
.wod-photo-job-state { color: var(--c-text-soft); font-size: .75rem; line-height: 1.4; }
.wod-photo-job-actions { display: flex; align-items: center; gap: 5px; }
.wod-photo-notice .wod-photo-job-action { display: inline-grid; place-items: center; flex: 0 0 36px; width: 36px; min-width: 36px; height: 36px; min-height: 36px; padding: 8px; margin: 0; border-radius: 10px; }
.wod-photo-notice .wod-action-icon { width: 18px; height: 18px; }
.wod-photo-notice .wod-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.wod-photo-notice-toggle:focus-visible, .wod-photo-job-action:focus-visible { outline: 2px solid var(--c-accent); outline-offset: -3px; }
.wod-photo-job-error { grid-column: 2 / -1; margin: 2px 0 0; color: var(--c-danger-text); font-size: .75rem; line-height: 1.4; overflow-wrap: anywhere; }
.wod-photo-notice [hidden] { display: none !important; }
@keyframes wod-photo-job-spin { to { transform: rotate(360deg); } }
.wod-invite-setting-row { display: grid; grid-template-columns: minmax(0, 1fr) 48px 48px; gap: 8px; align-items: center; margin-top: 8px; }
.wod-invite-setting-row input { min-width: 0; font-family: ui-monospace, monospace; font-size: 1rem; }
.wod-shell .wod-invite-setting-row button { width: 48px; min-width: 48px; height: 48px; min-height: 48px; padding: 10px; }
.wod-invite-feedback:empty { display: none; }
@media (max-width: 360px) {
  .wod-invite-setting-row input { grid-column: 1 / -1; }
  .wod-invite-setting-row button:nth-child(2) { grid-column: 2; }
}
@media (max-height: 520px) { .wod-photo-analyst { width: 144px; height: 112px; margin: 0 auto; } .wod-photo-sheet[data-phase=loading] > .wod-photo-heading { margin-bottom: 4px; } .wod-photo-sheet[data-phase=loading] .wod-row:first-child h2 { font-size: 1.125rem; } .wod-photo-sheet[data-phase=loading] [role=status] { margin: 4px 0; font-size: .8rem; line-height: 1.4; } }
@media (prefers-reduced-motion: reduce) { .wod-photo-analyst { background-image: url("../images/wod-photo-analyst-still.svg"); } .wod-photo-job[data-photo-state=pending] .wod-photo-job-symbol { animation: none; } }

.wod-chip-row [aria-pressed=true] { background:var(--c-selected);color:var(--c-accent);border-color:var(--c-accent); }
.wod-structure-card { border:1px solid var(--c-border);border-radius:var(--radius);padding:14px;display:grid;gap:12px;background:var(--c-surface);min-width:0; }
.wod-structure-card h4 { margin:0; }

.wod-chip-row { display:flex;gap:8px;overflow-x:auto;max-width:100%;padding-bottom:5px;scrollbar-width:thin; }
.wod-chip-row .btn { flex-shrink:0;min-height:44px;white-space:nowrap;padding:8px 13px; }

.wod-wizard-error { flex-basis:100%;grid-column:1/-1;margin:0;padding:12px;border:1px solid #c74355;border-radius:12px;background:var(--c-bg-soft);color:var(--c-text);overflow-wrap:anywhere;font-weight:600; }
.wod-editor-draft-state { font-size:.875rem;margin:8px 0; }
.wod-editor-draft-state:empty { display:none; }

.wod-exercise-sheet { box-sizing:border-box;color:var(--c-text);background:var(--c-surface);border:1px solid var(--c-border);border-radius:24px 24px 0 0;width:min(100%,580px);max-height:88dvh;overflow:auto;padding:20px;position:fixed;inset:auto 0 0;margin:0 auto;animation:wod-sheet-enter .18s ease-out; }
.wod-exercise-sheet .wod-sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.wod-exercise-sheet::backdrop { background:#100e1666;backdrop-filter:blur(2px); }
.wod-exercise-sheet>div,.wod-exercise-sheet>label { margin-bottom:16px; }
.wod-exercise-sheet>.btn { width:100%;position:sticky;bottom:0; }
.wod-exercise-sheet>.btn.wod-action-icon-only { position:static;width:var(--wod-icon-size); }
.wod-shell .wod-setting-toggle, .wod-exercise-sheet .wod-setting-toggle { display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--c-border); }
.wod-setting-toggle input[type=checkbox] { width:24px;height:24px;min-height:24px;padding:0;margin:0;flex:0 0 24px;accent-color:var(--c-accent); }
.wod-structure-card .wod-setting-toggle { min-height:44px;padding:4px 0;border-bottom:0; }
.wod-structure-card>label { margin:0; }
.wod-member-row { display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--c-border);padding:12px 0; }
.wod-member-row strong { flex:1;min-width:0;overflow-wrap:anywhere; }
.wod-member-actions summary { min-width:44px;min-height:44px;text-align:center;font-size:1.5rem; }
.wod-member-actions[open] { position:relative; }
.wod-member-actions .btn { margin:3px; }
/* Full workout flow: targets remain visible without nested disclosures. */
.wod-flow-summary { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 10px;min-width:0;margin:12px 0;padding:16px 14px;border:1px solid var(--c-border);border-radius:16px;background:var(--c-surface,var(--c-bg));overflow-wrap:anywhere; }
.wod-flow-summary>.wod-flow-title { margin:0;font-size:1.05rem;line-height:1.4;min-width:0;align-self:center; }
.wod-flow-activity { align-self:start;max-width:100%;padding:3px 7px;border:1px solid var(--c-border);border-radius:7px;font-size:.6875rem;font-weight:650;line-height:1.5;color:var(--c-text-soft); }
.wod-flow-summary>.wod-flow-date { grid-column:1/-1;margin:5px 0 0;font-size:.8125rem;color:var(--c-text-soft); }
.wod-flow-facts { grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 14px;margin:12px 0 0;font-size:.75rem;color:var(--c-text-soft); }
.wod-flow-summary>.wod-flow-time { grid-column:1/-1;margin:6px 0 15px;font-size:.8125rem;font-weight:600;line-height:1.5; }
.wod-flow-summary>.wod-flow-cap { grid-column:1/-1;margin:-6px 0 15px;font-size:.8125rem;color:var(--c-accent); }
.wod-flow-summary>.wod-flow { grid-column:1/-1;list-style:none;margin:0;padding:0;min-width:0; }
.wod-flow>.wod-flow-block { --wod-flow-color:var(--c-accent);position:relative;margin:0;padding:0 0 18px 39px;min-width:0; }
.wod-flow>.wod-flow-block:last-child { padding-bottom:0; }
.wod-flow-block:not(:last-child)::before { content:"";position:absolute;top:30px;left:14px;bottom:0;width:1px;background:var(--c-border); }
.wod-flow-block[data-tone=cardio] { --wod-flow-color:#3975ba; }
.wod-flow-block[data-tone=repeat] { --wod-flow-color:#a56817; }
.wod-flow-block[data-tone=emom] { --wod-flow-color:#238267; }
.wod-flow-block[data-tone=rest] { --wod-flow-color:var(--c-text-soft); }
[data-wod-theme=dark] .wod-flow-block[data-tone=cardio] { --wod-flow-color:#8ebcff; }
[data-wod-theme=dark] .wod-flow-block[data-tone=repeat] { --wod-flow-color:#e9b96e; }
[data-wod-theme=dark] .wod-flow-block[data-tone=emom] { --wod-flow-color:#82d3b2; }
.wod-flow-letter { position:absolute;top:0;left:0;display:grid;place-items:center;width:29px;height:29px;border-radius:8px;color:var(--wod-flow-color);background:color-mix(in srgb,var(--wod-flow-color) 12%,transparent);font-size:.8125rem;font-weight:750; }
.wod-flow-head { display:flex;align-items:baseline;justify-content:space-between;gap:7px 10px;min-height:29px;line-height:1.45; }
.wod-flow-head>strong { flex:1;min-width:0;font-size:.875rem; }
.wod-flow-metric { flex:0 1 auto;max-width:55%;font-size:.875rem;font-weight:700;text-align:right;font-variant-numeric:tabular-nums; }
.wod-flow-block>.wod-flow-note { margin:0 0 5px;font-size:.6875rem;line-height:1.45;color:var(--c-text-soft); }
.wod-flow-row { display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px;padding:5px 0;font-size:.875rem;line-height:1.45; }
.wod-flow-name { flex:1;min-width:0; }
.wod-flow-goals { display:flex;flex:0 1 auto;max-width:55%;justify-content:flex-end;flex-wrap:wrap;gap:2px 7px;text-align:right;font-weight:650;font-variant-numeric:tabular-nums; }
.wod-flow-goals>span { min-width:0;max-width:100%; }
.wod-flow-row-note { flex:0 0 100%;font-size:.6875rem;color:var(--c-text-soft); }
.wod-flow-heading { margin-top:7px;font-size:.75rem;font-weight:700; }
.wod-flow-pause,.wod-flow-note { color:var(--c-text-soft);font-size:.75rem; }
@media(max-width:360px){.wod-flow-summary{padding:13px 10px;gap:0 6px;}.wod-flow>.wod-flow-block{padding-left:35px;}.wod-flow-row{gap:2px 7px;}}

@keyframes wod-sheet-enter { from { transform:translateY(30px);opacity:.3; } to { transform:translateY(0);opacity:1; } }
@media(min-width:980px){.wod-exercise-sheet{inset:10vh 0 auto;border-radius:24px;max-height:80vh;}}
@media(prefers-reduced-motion:reduce){.wod-exercise-sheet{animation:none;}}
/* Q119–168: the same compact controls in both themes. */
.wod-data-plot{width:100%;height:auto;display:block;color:var(--wod-accent,#9672e8);touch-action:pan-y}
.wod-data-plot circle{cursor:pointer}.wod-data-plot circle:focus{outline:none;stroke:var(--wod-text,#222);stroke-width:3}
.wod-hr-zones{display:grid;gap:8px}.wod-hr-zone{display:grid;grid-template-columns:28px minmax(0,1fr) 110px;gap:8px;align-items:center;font-size:.85rem}
.wod-hr-zone-bar{height:10px;border-radius:8px;background:color-mix(in srgb,var(--zone-color) 12%,transparent);position:relative}
.wod-hr-zone-bar:after{content:"";display:block;width:var(--zone-percent);height:100%;border-radius:inherit;background:var(--zone-color)}
.wod-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:14px 0}
.wod-calendar-grid button{min-width:0;min-height:48px;padding:4px;aspect-ratio:1;font-variant-numeric:tabular-nums;position:relative;white-space:nowrap}
.wod-calendar-grid button[aria-pressed=true]{background:var(--wod-accent,#9672e8);color:#fff}.wod-calendar-grid button[data-count]:after{content:"•";position:absolute;bottom:4px;left:50%;transform:translateX(-50%);line-height:.6}
.wod-calendar-weekday{text-align:center;font-size:.8rem;opacity:.65}.wod-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.wod-metadata-options{display:grid;gap:12px}.wod-metadata-options .wod-setting-toggle{min-height:44px}
.wod-calendar-day-list details{margin:8px 0}.wod-measurement-detail{font-size:.85rem}
dialog.wod-day-picker{width:min(420px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 24px);margin:auto;padding:16px;border:1px solid var(--c-border);border-radius:18px;background:var(--c-surface);color:var(--c-text);font:inherit;box-shadow:0 16px 50px #0003;overflow:auto;overscroll-behavior:contain}
.wod-day-picker::backdrop{background:#140c2470;backdrop-filter:blur(4px)}
.wod-day-picker .wod-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.wod-day-picker button:disabled{opacity:.5;cursor:default}
.wod-day-picker button:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}
.wod-day-picker .wod-compact-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}
.wod-day-picker h3{min-width:0;margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:1.0625rem}
.wod-day-picker .wod-heading-actions>button{width:44px;min-width:44px;max-width:44px;height:44px;min-height:44px;flex:0 0 44px;padding:10px;border-radius:12px}
.wod-day-picker .wod-calendar-grid button{min-height:40px;padding:4px;font-size:1rem}
.wod-calendar-grid button[data-count]{border-color:var(--c-accent);font-weight:700}
.wod-calendar-grid button[aria-pressed=true]{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-primary-text)}

/* App states stay readable without replacing the five familiar destinations. */
.wod-library-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:8px 0 12px;padding:2px}
.wod-library-status>.btn{min-width:0;min-height:44px;padding:8px 6px;white-space:normal;line-height:1.25;font-size:.8125rem}
.wod-library-status>.btn[aria-pressed=true]{background:var(--c-primary-bg);color:var(--c-primary-text);border-color:var(--c-primary-bg)}
.wod-library-feedback{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;color:var(--c-text-soft);font-size:.875rem}
.wod-library-feedback>p{flex-basis:100%}
.wod-library-feedback .btn{min-height:44px;font-size:.875rem}
.wod-library-feedback:empty{display:none}
.wod-shelf-draft-card,.wod-editor-draft-card{border-inline-start:3px solid var(--c-accent);padding-inline-start:12px}
.wod-shelf-draft-card .wod-actions{margin-top:0}
.wod-library-filters select{width:100%}
.wod-plan-summary button:focus-visible,.wod-library-status button:focus-visible{outline:3px solid var(--c-accent);outline-offset:2px}
@media(max-width:359px){.wod-library-status>.btn{font-size:.75rem;padding-inline:4px}.wod-nav button,.wod-nav a{font-size:.6875rem;padding-inline:0}.wod-nav span{overflow-wrap:normal;word-break:normal}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.wod-shell *,.wod-exercise-sheet *{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.wod-day-picker-state{margin:8px 0 0;font-size:.8125rem;line-height:1.4}
.wod-fit-coverage{margin:16px 0;padding:12px 14px;border:1px solid var(--c-accent,#753adb);border-radius:12px;background:color-mix(in srgb,var(--c-accent,#753adb) 9%,var(--c-surface,#fff));font-size:.9rem}
.wod-fit-coverage>p{margin:0;line-height:1.5}
.wod-fit-coverage-list{display:grid;gap:4px;margin:8px 0 0;padding-inline-start:1.3em;line-height:1.5}
.wod-fit-coverage-list>li{font-weight:600;overflow-wrap:anywhere}

/* Personal photo exercise suggestions retain their review provenance. */
.wod-photo-match-memory{padding:12px;border:1px solid var(--line,#b8a9d4);border-left:4px solid var(--accent,#7939d4);border-radius:10px;line-height:1.45}.wod-photo-match-memory strong,.wod-photo-match-memory span{display:block}.wod-photo-match-memory span{margin-top:4px}

/* Compact category filters stay inside the card at phone widths. */
.wod-library-filters{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:10px;align-items:end;}
.wod-library-filters>label{min-width:0;}
.wod-library-filters>label:first-child{grid-column:1/-1;}
.wod-editor-draft-card{padding:16px;border:1px solid var(--c-primary-bg);border-radius:14px;margin-block:12px;}
.wod-draft-badge{display:inline-block;font-size:.8rem;padding:3px 9px;border-radius:20px;background:var(--c-selected);color:var(--c-text);}
.wod-library-filters select{-webkit-appearance:none;appearance:none;min-inline-size:0;inline-size:100%;max-inline-size:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-inline-end:24px;background-image:linear-gradient(45deg,transparent 50%,var(--c-text-soft) 50%),linear-gradient(135deg,var(--c-text-soft) 50%,transparent 50%);background-position:calc(100% - 12px) 50%,calc(100% - 8px) 50%;background-size:4px 4px;background-repeat:no-repeat;}
.wod-shell .wod-calendar-category-filter{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;margin:8px 0 10px;font-weight:500;}
.wod-calendar-category-filter>select{margin-top:0;}
.wod-flow-facts>.wod-flow-category{align-self:center;max-width:100%;padding:1px 6px;border-radius:5px;background:var(--c-bg-soft);color:var(--c-accent);overflow-wrap:anywhere;}

/* Standalone WOD saved performances; separate from the current plan summary. */
.wod-history-summary{justify-content:flex-start;flex-wrap:wrap;column-gap:10px;row-gap:4px;color:var(--c-text)}
.wod-history-summary>strong{flex:1 1 160px;overflow-wrap:anywhere}.wod-history-summary>p{flex:1 1 100%;margin:0;color:var(--c-text-soft);font-size:.8125rem;font-weight:400}.wod-history-summary small{color:var(--c-text-soft);font-size:.8125rem;font-weight:400}.wod-history-body{padding:8px 0 0}
.wod-progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.wod-stat{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);padding:12px;min-width:0}.wod-stat strong{display:block;font-size:clamp(1.25rem,6vw,1.8rem);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.wod-stat small{display:block;color:var(--c-text-soft);line-height:1.4}.wod-statistics-more{padding:0;border:0;background:transparent}
.wod-chart{background:var(--c-surface);border:1px solid var(--c-border);border-radius:18px;padding:16px;margin:16px 0;min-width:0}.wod-chart svg{display:block;width:100%;min-height:110px;color:var(--c-accent);overflow:visible}.wod-chart h3{margin:0 0 8px}.wod-chart-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,.5fr);gap:12px}.wod-chart-controls select{min-width:0}.wod-chart-point{min-height:3em;font-variant-numeric:tabular-nums}.wod-progress-chart-footer{display:flex;justify-content:space-between;gap:12px;font-size:.8125rem;color:var(--c-text-soft);margin-top:8px}.wod-progress-chart-footer>div{display:grid;gap:4px;min-width:0}.wod-progress-chart-footer strong{font-size:1.15rem;color:var(--c-text);font-variant-numeric:tabular-nums}
.wod-hr-zones{display:grid;gap:8px;margin-top:12px}.wod-hr-zone{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center}.wod-hr-zone-bar{height:10px;border-radius:5px;background:linear-gradient(to right,var(--zone-color) var(--zone-percent),var(--c-bg-soft) var(--zone-percent))}
.wod-result-set{display:grid;gap:8px;padding:12px 0;border-bottom:1px solid var(--c-border)}.wod-result-set>strong{overflow-wrap:anywhere}.wod-result-set table{width:100%;table-layout:fixed}.wod-result-set th,.wod-result-set td{overflow-wrap:anywhere;text-align:left}.wod-result-summary{display:grid;gap:8px;padding:12px 0;font-variant-numeric:tabular-nums}.wod-result-summary>div{display:flex;justify-content:space-between;gap:12px}.wod-result-summary small{color:var(--c-text-soft)}.wod-result-summary span{text-align:right}
.wod-block-score{border-left:3px solid var(--c-accent);background:var(--c-bg-soft);padding:12px 16px;margin:16px 0}.wod-block-score strong{display:block}.wod-fit-help>summary{display:grid;place-items:center;width:40px;min-height:40px;cursor:pointer;list-style:none}.wod-fit-help>summary::-webkit-details-marker{display:none}.wod-fit-help[open]{flex:1 1 100%;min-width:0}.wod-fit-help>p{position:static;width:100%;margin:8px 0;padding:12px;border:1px solid var(--c-border);border-radius:var(--radius-sm);line-height:1.5;overflow-wrap:anywhere}

/* RTL language presentation; numeric targets retain their direction. */
html[dir="rtl"] .wod-shell{text-align:right}html[dir="rtl"] .wod-actions{direction:rtl}html[dir="rtl"] input[type="number"],html[dir="rtl"] .wod-flow-goals{direction:ltr}html[dir="rtl"] .wod-flow-list,html[dir="rtl"] .wod-flow{padding-inline-start:0}.wod-language-label select{width:4rem;max-width:4rem}.wod-geoip-credit{font-size:.75rem}

html[dir="rtl"] [data-action-icon="back"] .wod-action-icon,html[dir="rtl"] [data-action-icon="next"] .wod-action-icon{transform:scaleX(-1)}

/* Exercise descriptions stay in an explicit review dialog over the current plan. */
.wod-exercise-description[open]{display:flex;flex-direction:column;position:fixed;inset:0;margin:auto;box-sizing:border-box;width:min(620px,calc(100vw - 24px));max-width:calc(100vw - 24px);height:fit-content;max-height:calc(100dvh - 32px);padding:0;overflow:hidden;border:1px solid var(--c-border);border-radius:24px;color:var(--c-text);background:var(--c-surface);box-shadow:0 24px 80px #15102235;animation:wod-description-enter .18s ease-out;}
.wod-exercise-description::backdrop{background:#17112570;backdrop-filter:blur(3px);}
.wod-exercise-description>.wod-description-head{display:flex;align-items:center;gap:16px;flex:0 0 auto;margin:0;padding:20px 22px 16px;border-bottom:1px solid var(--c-border);background:var(--c-surface);z-index:1;}
.wod-description-head h2,.wod-description-head h3{flex:1;min-width:0;font-size:1.25rem;line-height:1.3;margin:0;overflow-wrap:anywhere;}
.wod-description-head>.btn{flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:9px;border-radius:12px;}
.wod-exercise-description>.wod-description-body{flex:1 1 auto;width:100%;min-width:0;max-width:100%;min-height:0;margin:0;padding:20px 22px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;scrollbar-gutter:stable;}
.wod-description-body>p:first-child{margin-top:0;}
.wod-description-body label{display:flex;flex-direction:column;gap:8px;font-size:.95rem;font-weight:600;}
.wod-description-input{box-sizing:border-box;width:100%;min-height:132px;resize:vertical;max-height:38dvh;padding:14px;border:1px solid var(--c-border);border-radius:14px;background:var(--c-bg-soft);color:var(--c-text);font:inherit;font-weight:400;line-height:1.5;}
.wod-description-input:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;}
.wod-description-status{font-size:.94rem;color:var(--c-text-soft);line-height:1.5;overflow-wrap:anywhere;}
.wod-description-status[role=alert]{color:var(--c-text-danger);}
.wod-description-results{display:grid;gap:12px;}
.wod-description-candidate{display:grid;gap:10px;min-width:0;padding:16px;border:1px solid var(--c-border);border-radius:16px;background:var(--c-bg);overflow-wrap:anywhere;}
.wod-description-candidate h4,.wod-description-candidate p{margin:0;}
.wod-description-candidate small{color:var(--c-text-soft);}
.wod-description-video{justify-self:start;max-width:100%;min-height:44px;white-space:normal;text-align:start;text-decoration:none;}
.wod-description-video:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;}
.wod-description-candidate-actions{display:flex;gap:10px;flex-wrap:wrap;}
.wod-description-candidate-actions .btn{flex:1;min-width:100px;}
.wod-exercise-description>.wod-description-footer{display:flex;align-items:center;gap:10px;flex:0 0 auto;flex-wrap:wrap;margin:0;padding:16px 22px 20px;border-top:1px solid var(--c-border);background:var(--c-surface);}
.wod-description-footer .btn{flex:1;min-width:120px;white-space:normal;}
.wod-describe-exercise{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;white-space:normal;}
.wod-exercise-editor-search>.wod-describe-exercise{grid-column:1/-1;justify-self:stretch;}
.wod-description-candidate>h3{margin:0;font-size:1.05rem;line-height:1.4;}
.wod-description-loading{display:flex;align-items:center;gap:12px;margin-block:14px;}
.wod-description-loading::before{content:"";flex:0 0 20px;width:20px;height:20px;border:3px solid var(--c-selected);border-top-color:var(--c-accent);border-radius:50%;animation:wod-description-spin .8s linear infinite;}
@keyframes wod-description-spin{to{transform:rotate(360deg);}}
@keyframes wod-description-enter{from{opacity:0;transform:translateY(10px) scale(.985);}to{opacity:1;transform:none;}}
@media(max-width:480px){.wod-exercise-description>.wod-description-head{padding:16px;gap:12px;}.wod-exercise-description>.wod-description-body{padding:16px;}.wod-exercise-description>.wod-description-footer{padding:14px 16px 16px;}.wod-description-candidate{padding:14px;}}
@media(prefers-reduced-motion:reduce){.wod-exercise-description[open],.wod-description-loading::before{animation:none;}}
.wod-personal-plan-list{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;max-width:100%;gap:12px;}
.wod-personal-plan-exercise{width:100%;min-width:0;max-width:100%;border:1px solid var(--c-border);border-radius:16px;background:var(--c-bg);padding:14px;overflow-wrap:anywhere;}
.wod-personal-plan-exercise>summary{min-height:44px;cursor:pointer;overflow-wrap:anywhere;}
.wod-personal-plan-exercise>summary strong,.wod-personal-plan-exercise>summary small{display:block;}
.wod-personal-plan-exercise>summary small{margin-top:4px;color:var(--c-text-soft);font-weight:400;line-height:1.45;}
.wod-personal-plan-exercise>p{margin:12px 0 0;font-size:.875rem;}
.wod-personal-plan-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;max-width:100%;gap:14px 12px;margin-top:16px;}
.wod-personal-plan-fields>label{display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;line-height:1.4;font-size:.875rem;}
.wod-personal-plan-fields input,.wod-personal-plan-fields select{width:100%;min-width:0;max-width:100%;min-inline-size:0;max-inline-size:100%;margin:0;font-variant-numeric:tabular-nums;}
.wod-personal-plan-status[role=alert]{color:var(--c-text-danger);}
.wod-calendar-day-list .wod-personal-plan-trigger{margin:12px 0;}
@media(max-width:479px){.wod-personal-plan-fields{grid-template-columns:minmax(0,1fr);}}

.wod-photo-voice { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--c-border); }
.wod-photo-voice-controls { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
/* One shared row for photo input and its voice controls. Keep labels accessible
   and visible; all cells stretch to the same width and height. */
dialog.wod-photo-sheet > .wod-photo-toolbar { display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;align-items:stretch;position:sticky;bottom:-20px;z-index:4;margin:16px -20px -20px;padding:12px 20px max(16px,env(safe-area-inset-bottom,0px));border-top:1px solid var(--c-border);background:var(--c-surface); }
.wod-photo-toolbar > .wod-photo-actions,.wod-photo-toolbar > .wod-photo-navigation,.wod-photo-toolbar > .wod-photo-voice-controls { display:contents; }
.wod-photo-sheet:not([data-phase=select]) .wod-photo-toolbar > .wod-photo-voice-controls { display:none; }
.wod-photo-toolbar .btn { display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:6px;width:100%;min-width:0;max-width:none;height:100%;min-height:76px;margin:0;padding:10px 3px;border-radius:12px;font-size:12px;line-height:1.25;white-space:normal;overflow-wrap:anywhere; }
.wod-photo-toolbar .wod-action-icon { flex:0 0 22px;width:22px;height:22px; }
.wod-photo-toolbar .wod-action-label { min-width:0;max-width:100%;text-align:center; }

.wod-photo-voice audio { display: block; width: 100%; max-width: 100%; height: 42px; margin-top: 8px; }
.wod-photo-voice [role=status]:empty { display: none; }

/* Component movements share one timer; individual targets remain editable. */
.wod-interval-badge{display:block;color:var(--primary,#a77af4);font-weight:700;margin:.25rem 0 .5rem}.wod-shared-interval{border-inline-start:3px solid var(--primary,#a77af4)}.wod-composer-review-exercise.wod-shared-interval{flex-wrap:wrap;padding-inline-start:.6rem}.wod-composer-review-exercise .wod-interval-badge{flex-basis:100%;margin-bottom:0}

.wod-description-reuse{padding:.8rem;border:1px solid var(--border,#ddd);border-radius:1rem}.wod-description-reuse p{margin-top:0}.wod-description-queries{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.wod-description-queries .btn{font-size:.9rem;padding:.5rem .8rem}.wod-exercise-description .wod-photo-voice{margin:1rem 0}

/* Approved month/week calendar. Scope this layout to the main page so the
   independent day-picker dialog retains its compact month presentation. */
#wod-calendar.wod-card{padding:0;margin:20px 0;border:0;border-radius:0;background:transparent;box-shadow:none;}
#wod-calendar .wod-calendar-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;}
#wod-calendar .wod-calendar-modes{display:flex;flex:0 0 auto;width:max-content;gap:4px;padding:4px;border-radius:14px;background:var(--c-bg-soft);}
#wod-calendar .wod-calendar-modes>.btn{flex:0 0 auto;min-width:max-content;min-height:44px;margin:0;padding:8px 14px;border:0;border-radius:10px;color:var(--c-text-soft);background:transparent;line-height:1.25;white-space:nowrap;overflow-wrap:normal;word-break:normal;}
#wod-calendar .wod-calendar-modes>.btn[aria-pressed=true]{background:var(--c-surface);color:var(--c-text);box-shadow:0 2px 7px #0000000a;}
#wod-calendar .wod-calendar-controls>[data-calendar-action=today]{min-height:44px;padding:8px 4px;color:var(--c-accent);border-color:transparent;line-height:1.25;white-space:normal;}
#wod-calendar .wod-calendar-header{margin-bottom:14px;gap:10px;}
#wod-calendar .wod-calendar-header h3{margin:0;font-size:1.3rem;line-height:1.3;letter-spacing:-.025em;}
#wod-calendar .wod-calendar-header .wod-heading-actions{display:flex;flex:0 0 auto;gap:6px;}
#wod-calendar .wod-calendar-header .wod-heading-actions>.btn{display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:10px;border-radius:12px;}
#wod-calendar .wod-calendar-category-filter{grid-template-columns:auto minmax(0,1fr);gap:10px;margin:0 0 16px;font-size:.8125rem;}
#wod-calendar .wod-calendar-category-filter>select{min-height:44px;font-size:.875rem;}
#wod-calendar .wod-calendar-main-grid{gap:4px;margin:8px 0 0;}
#wod-calendar .wod-calendar-main-grid .wod-calendar-weekday{padding:6px 0 10px;opacity:1;color:var(--c-text-soft);font-size:.6875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#wod-calendar .wod-calendar-main-grid>.btn{display:flex;align-items:center;justify-content:center;min-height:52px;aspect-ratio:auto;padding:8px 2px 12px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--c-text);font-size:1rem;line-height:1.25;}
#wod-calendar .wod-calendar-main-grid>.btn strong{font-weight:650;overflow-wrap:normal;}
#wod-calendar .wod-calendar-main-grid>.btn[data-adjacent=true]{background:var(--c-bg-soft);color:var(--c-text-soft);}
#wod-calendar .wod-calendar-main-grid>.btn[aria-current=date]{border-color:var(--c-accent);color:var(--c-accent);}
#wod-calendar .wod-calendar-main-grid>.btn[aria-pressed=true]{background:var(--c-primary-bg);color:var(--c-primary-text);border-color:var(--c-primary-bg);}
#wod-calendar .wod-calendar-main-grid>.btn[data-count]:after{bottom:7px;color:var(--c-accent);}
#wod-calendar .wod-calendar-main-grid>.btn[aria-pressed=true][data-count]:after{color:var(--c-primary-text);}
#wod-calendar .wod-calendar-main-grid>.btn:disabled{cursor:default;opacity:.6;}
#wod-calendar .wod-calendar-main-grid>.btn:focus-visible{outline:3px solid var(--c-accent);outline-offset:0;position:relative;z-index:1;}
#wod-calendar .wod-calendar-day-list{margin-top:24px;padding-top:20px;border-top:1px solid var(--c-border);}
#wod-calendar .wod-calendar-day-list h4{margin:0 0 16px;font-size:1rem;line-height:1.5;letter-spacing:-.015em;}
#wod-calendar .wod-calendar-day-list>details{margin:12px 0;padding:16px;border:1px solid var(--c-border);border-radius:18px;background:var(--c-surface);}
#wod-calendar .wod-calendar-day-list>details>summary{min-height:44px;font-size:1rem;font-weight:700;cursor:pointer;line-height:1.45;}
#wod-calendar .wod-calendar-day-list>details>summary small{display:block;margin-top:7px;font-size:.8125rem;font-weight:400;color:var(--c-text-soft);line-height:1.5;}
#wod-calendar .wod-calendar-state{padding:14px 0;margin:0;}
@media(max-width:359px){#wod-calendar .wod-calendar-controls{gap:8px;}#wod-calendar .wod-calendar-modes>.btn{padding-inline:10px;font-size:.875rem;}#wod-calendar .wod-calendar-main-grid{gap:3px;}#wod-calendar .wod-calendar-main-grid>.btn{min-height:50px;font-size:.9375rem;border-radius:10px;}#wod-calendar .wod-calendar-header h3{font-size:1.125rem;}#wod-calendar .wod-calendar-category-filter{font-size:.75rem;}}
