/* Shared Fizio component contract. Page styles may control layout, not visual states. */
html { background: var(--color-canvas); }
body {
  background: var(--color-canvas);
  color: var(--color-text);
  font-family: var(--font-body-system);
  font-size: 1rem;
  line-height: var(--line-height-body);
}
/* Full-page personal cabinet: common tokens, not a stretched modal. */
.profile-page [hidden], #account-menu-button[hidden], #menstrual-symptoms-field[hidden] { display: none !important; }
.profile-shell { max-width: var(--content-width, 1180px); margin: auto; padding: var(--space-6); }
.profile-shell h1 { font-family: var(--font-heading, Georgia, serif); font-size: clamp(2rem, 4vw, 3rem); margin: 0; }
.profile-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: var(--space-6); align-items: start; }
.profile-nav { display: grid; gap: var(--space-2); position: sticky; top: 100px; }
.profile-nav a { display: flex; align-items: center; min-height: var(--control-height); padding: var(--space-2) var(--space-3); border-radius: var(--radius-control); color: var(--color-text); }
.profile-nav a:hover { background: var(--color-accent-soft); }
.profile-section { border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-surface); padding: var(--space-6); margin-bottom: var(--space-4); scroll-margin-top: 100px; min-width: 0; }
.profile-section h2 { margin-top: 0; font-size: 1.4rem; }
.profile-page #profile-form label:not(:has(input[type="checkbox"])) { display: grid; gap: var(--space-2); margin-block: var(--space-3); font-weight: 600; }
.profile-page #profile-form :is(input:not([type="checkbox"]), select) { width: 100%; min-width: 0; min-height: var(--control-height); border: 1px solid var(--color-border); border-radius: var(--radius-control); padding: var(--space-2) var(--space-3); background: var(--color-surface); color: var(--color-text); font: inherit; }
.profile-page #profile-form :is(small,.scope-note) { color: var(--color-text-muted); font-size: .875rem; font-weight: 400; }
.profile-page #profile-form fieldset { min-width: 0; border: 1px solid var(--color-border); border-radius: var(--radius-control); padding: var(--space-3); margin-block: var(--space-4); }
.profile-page #profile-form label:has(input[type="checkbox"]) { display: flex; align-items: center; gap: var(--space-2); min-height: var(--control-height); padding: var(--space-2); font-weight: 500; }
.profile-page .option-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--space-2); }
.profile-page .compact-options { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.profile-page input[type="checkbox"] { flex: 0 0 auto; width: 18px; height: 18px; }
.profile-overview { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: var(--space-4); margin-block: var(--space-6); }
.profile-overview .ui-card { padding: var(--space-4); display: grid; align-content: center; gap: var(--space-2); color: var(--color-text); }
.profile-overview strong { font-size: 1.8rem; }
.profile-savebar { padding: var(--space-4); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-card); }
#profile-view > :is(a,button) { display: block; margin-block: var(--space-3); }
.profile-page #profile-guest { padding: var(--space-6); }
@media (max-width: 850px) {
  .profile-layout { grid-template-columns: 1fr; }
  .profile-nav { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .profile-shell { padding: var(--space-4); }
  .profile-section { padding: var(--space-4); }
}
@media (max-width: 540px) {
  .profile-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .profile-overview > a { grid-column: 1 / -1; }
  .profile-page .option-grid { grid-template-columns: 1fr; }
  .profile-page .topbar { flex-wrap: wrap; gap: var(--space-2); height: auto; min-height: 72px; padding-block: var(--space-3); }
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--color-focus);
  outline-offset: 3px;
  box-shadow: var(--shadow-focus);
}

:where(button, input, select, textarea) { font: inherit; }
:where(button, [role="button"]):not(:disabled) { cursor: pointer; }
:where(button, input, select, textarea):disabled {
  cursor: not-allowed;
  opacity: 0.58;
}

.button,
.ui-button {
  min-height: var(--control-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: 0.7rem 1rem;
  border: 1px solid transparent;
  border-radius: var(--radius-control);
  background: var(--color-surface);
  color: var(--color-text);
  font-weight: 750;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast), transform var(--motion-fast);
}
.button:hover:not(:disabled), .ui-button:hover:not(:disabled) { transform: translateY(-1px); }
.button:active:not(:disabled), .ui-button:active:not(:disabled) { transform: translateY(0); }
.button.primary, .ui-button[data-variant="primary"] {
  background: var(--color-brand);
  color: var(--color-on-brand);
}
.button.primary:hover:not(:disabled), .ui-button[data-variant="primary"]:hover:not(:disabled) { filter: brightness(1.12); }
.button.quiet, .ui-button[data-variant="secondary"], .ui-button[data-variant="quiet"] {
  border-color: var(--color-border-strong);
  background: var(--color-surface);
  color: var(--color-text);
}
.button.full { width: 100%; background: var(--color-accent-soft); color: var(--color-text); }
.button.compact, .ui-button[data-size="sm"] { min-height: var(--control-height); padding: 0.55rem 0.75rem; font-size: var(--font-size-sm); }
.button.danger, .ui-button[data-variant="danger"] {
  border-color: var(--color-danger);
  background: var(--color-danger-soft);
  color: var(--color-danger);
}
.button[aria-busy="true"], .ui-button[aria-busy="true"] { pointer-events: none; }

:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]), select, textarea),
.ui-control {
  width: 100%;
  min-height: var(--control-height);
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-control);
  background: var(--color-surface);
  color: var(--color-text);
  transition: border-color var(--motion-fast), box-shadow var(--motion-fast);
}
:where(input, select, textarea)::placeholder { color: #5e6e69; opacity: 1; }
:where(input, select, textarea)[aria-invalid="true"],
.ui-field[data-state="invalid"] .ui-control { border-color: var(--color-danger); }
:where(input[type="checkbox"], input[type="radio"]) {
  width: 1.25rem;
  height: 1.25rem;
  min-height: 1.25rem;
  accent-color: var(--color-accent);
}
input[type="color"] { min-width: var(--control-height); min-height: var(--control-height); padding: 0.25rem; }

.ui-field { display: grid; gap: var(--space-2); color: var(--color-text-muted); font-size: var(--font-size-sm); font-weight: 700; }
.ui-field__label { color: var(--color-text); }
.ui-field__help { color: var(--color-text-muted); font-size: var(--font-size-xs); font-weight: 500; }
.ui-field__error { color: var(--color-danger); font-size: var(--font-size-xs); }

.ui-card,
.admin-panel,
.module-status-card,
.summary-card,
.catalog-card,
.goal-card,
.standalone-technique,
.training-result,
.training-dashboard > div {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  background: var(--color-surface);
}
.ui-card { padding: var(--space-6); }
.ui-card[data-variant="interactive"] { transition: transform var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast); }
.ui-card[data-variant="interactive"]:hover { transform: translateY(-2px); border-color: var(--color-accent); box-shadow: var(--shadow-card); }
.ui-card[data-variant="selected"] { border-color: var(--color-accent); background: var(--color-accent-soft); }
.ui-card[data-variant="critical"] { border-color: var(--color-danger); background: var(--color-danger-soft); }
.ui-card[data-variant="locked"] { border-color: var(--color-clinical); background: var(--color-clinical-soft); }

.ui-badge,
.status-badge,
.state-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-height: 1.75rem;
  padding: 0.25rem 0.6rem;
  border-radius: var(--radius-pill);
  background: var(--color-surface-muted);
  color: var(--color-text);
  font-size: var(--font-size-xs);
  font-weight: 800;
  line-height: 1.2;
}
.ui-badge[data-tone="success"], .status-badge.success { background: var(--color-success-soft); color: var(--color-success); }
.ui-badge[data-tone="warning"], .status-badge.warning { background: var(--color-warning-soft); color: var(--color-warning); }
.ui-badge[data-tone="danger"], .status-badge.danger { background: var(--color-danger-soft); color: var(--color-danger); }
.ui-badge[data-tone="clinical"], .status-badge.clinical { background: var(--color-clinical-soft); color: var(--color-clinical); }
.ui-badge[data-tone="info"], .status-badge.info { background: var(--color-accent-soft); color: var(--color-accent); }
.muted-section .eyebrow { color: var(--color-brand); }

.ui-alert {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--space-3);
  padding: var(--space-4);
  border: 1px solid var(--color-border-strong);
  border-left-width: 4px;
  border-radius: var(--radius-control);
  background: var(--color-surface);
}
.ui-alert::before { content: "i"; font-weight: 900; }
.ui-alert[data-tone="warning"] { border-color: var(--color-warning); background: var(--color-warning-soft); color: var(--color-warning); }
.ui-alert[data-tone="warning"]::before { content: "!"; }
.ui-alert[data-tone="danger"], .safety-block {
  border-color: var(--color-danger);
  background: var(--color-danger-soft);
  color: var(--color-danger);
}
.ui-alert[data-tone="danger"]::before, .safety-block::before { content: "!"; }
.ui-alert[data-tone="clinical"], .clinical-locked {
  border-color: var(--color-clinical);
  background: var(--color-clinical-soft);
  color: var(--color-clinical);
}
.ui-alert[data-tone="clinical"]::before, .clinical-locked::before { content: "×"; }

.ui-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.ui-grid { display: grid; gap: var(--space-4); }
.ui-empty-state { padding: var(--space-8); border: 1px dashed var(--color-border-strong); border-radius: var(--radius-card); text-align: center; }

dialog,
.ui-dialog {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-dialog);
  background: var(--color-surface);
  color: var(--color-text);
  box-shadow: var(--shadow-card);
}
dialog::backdrop { background: rgba(10, 29, 25, 0.62); backdrop-filter: blur(5px); }
.dialog-close, .help-icon {
  min-width: var(--control-height);
  min-height: var(--control-height);
  display: inline-grid;
  place-items: center;
  border: 0;
  border-radius: var(--radius-pill);
  background: transparent;
  color: currentColor;
}

.toast,
.ui-toast { border-radius: var(--radius-control); background: var(--color-brand); color: var(--color-on-brand); box-shadow: var(--shadow-card); }

.hero, .section, .module-grid { max-width: var(--layout-content); }
.training-main { max-width: min(var(--layout-content), 1100px); }
.admin-main { max-width: min(var(--layout-admin), calc(var(--layout-content) + 200px)); }
.topbar { padding-inline: max(24px, calc((100vw - var(--layout-content)) / 2)); }
.goal-card, .module-grid article { border-radius: var(--radius-card); }

/* Critical states never inherit the editable brand colors. */
.form-error { color: var(--color-danger); }
.catalog-card.rehab, .module-grid article.locked { border-color: var(--color-clinical); }
.lock-badge { background: var(--color-clinical-soft); color: var(--color-clinical); }

@media (forced-colors: active) {
  :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid Highlight; }
  .ui-alert, .ui-badge, .status-badge { border: 1px solid CanvasText; }
}

/* Muscle map and deterministic quick-builder states. */
.muscle-map-card h3,
.quick-builder-shell h3 { margin-block: 0 var(--space-2); }
.muscle-map-card p,
.quick-builder-shell p { color: var(--color-text-muted); }
.muscle-silhouette {
  fill: var(--color-muscle-body);
  stroke: var(--color-border-strong);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}
.muscle-body-detail {
  fill: none;
  stroke: var(--color-border-strong);
  stroke-linecap: round;
  stroke-width: 1.25;
  vector-effect: non-scaling-stroke;
  pointer-events: none;
}
.muscle-zone { outline: none; }
.muscle-zone__shape {
  fill: var(--color-muscle-available);
  stroke: var(--color-muscle-separator);
  stroke-linejoin: round;
  stroke-width: 1.4;
  vector-effect: non-scaling-stroke;
  transition: fill var(--motion-fast), stroke var(--motion-fast), opacity var(--motion-fast);
}
.muscle-zone:not([aria-disabled="true"]):hover .muscle-zone__shape,
.muscle-zone:not([aria-disabled="true"]):focus-visible .muscle-zone__shape {
  fill: var(--color-muscle-selected);
  stroke: var(--color-accent);
}
.muscle-zone[aria-pressed="true"] .muscle-zone__shape {
  fill: var(--color-muscle-selected);
  stroke: var(--color-brand);
}
.muscle-zone[aria-disabled="true"] { cursor: not-allowed; }
.muscle-zone[aria-disabled="true"] .muscle-zone__shape { fill: var(--color-muscle-unavailable); }
.muscle-passive { fill: var(--color-muscle-unavailable); stroke: var(--color-muscle-separator); stroke-width: 1; pointer-events: none; }
.muscle-zone:focus-visible .muscle-zone__shape { stroke: var(--color-focus); stroke-width: 3; stroke-dasharray: 4 2; }
.muscle-map-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); flex-wrap: wrap; }
.muscle-view-switch { display: none; gap: var(--space-2); }
.muscle-view-switch [aria-pressed="true"] { background: var(--color-brand); color: var(--color-on-brand); }
.muscle-map-views { overflow-x: auto; background: var(--color-surface-muted); border: 1px solid var(--color-border); border-radius: var(--radius-card); padding: var(--space-4) var(--space-2); }
.muscle-map-views .muscle-map { width: min(100%, 240px); }
.muscle-map-views.is-expanded { grid-template-columns: repeat(2,minmax(300px,1fr)); }
.muscle-map-views.is-expanded .muscle-map { width: 300px; }
.muscle-map-legend { display: flex; gap: var(--space-3); flex-wrap: wrap; font-size: var(--font-size-sm); color: var(--color-text-muted); }
.muscle-map-legend span { display: inline-flex; align-items: center; gap: var(--space-2); }
.muscle-key { width: var(--space-3); height: var(--space-3); border-radius: var(--radius-pill); background: var(--color-muscle-available); display: inline-block; }
.muscle-key--selected { background: var(--color-muscle-selected); }
.muscle-key--unavailable { background: var(--color-muscle-unavailable); }
.muscle-anatomy-note { font-size: var(--font-size-sm); margin-block: var(--space-3) var(--space-5); }
.muscle-selection-summary { padding: var(--space-3); border-radius: var(--radius-control); background: var(--color-accent-soft); margin-bottom: var(--space-4); }
.muscle-selected-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.muscle-selected-chips:not(:empty) { margin-top: var(--space-2); }
.muscle-selected-chip { min-height: var(--control-height); padding: var(--space-2) var(--space-3); border: 1px solid var(--color-accent); border-radius: var(--radius-pill); background: var(--color-surface); color: var(--color-text); text-align: left; }
.muscle-selected-chip:hover { background: var(--color-accent-soft); }
.muscle-area-list { display: grid; grid-template-columns: 1fr; gap: var(--space-4); }
.muscle-area-group { padding: 0; margin: 0; border: 0; min-width: 0; }
.muscle-area-group summary { font-size: var(--font-size-md); font-weight: 750; padding: var(--space-2) 0; min-height: var(--control-height); cursor: pointer; border-bottom: 1px solid var(--color-border); }
.muscle-area-group[open] summary { margin-bottom: var(--space-2); }
.muscle-area-group-buttons { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-2); }
.muscle-map-shortcut {
  min-height: var(--control-height);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-surface);
  color: var(--color-text);
  font-weight: 700;
}
.muscle-map-shortcut:hover:not(:disabled) { border-color: var(--color-accent); }
.muscle-map-shortcut[aria-pressed="true"] { border-color: var(--color-accent); background: var(--color-accent-soft); }
.muscle-map-shortcut:disabled { cursor: not-allowed; opacity: 0.55; }
.muscle-area-button {
  min-height: var(--control-height);
  display: grid;
  grid-template-columns: var(--space-5) 1fr;
  gap: var(--space-1);
  padding: var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-surface);
  color: var(--color-text);
  text-align: left;
  transition: border-color var(--motion-fast), background var(--motion-fast), transform var(--motion-fast);
}
.muscle-area-button span { color: var(--color-text-muted); font-size: var(--font-size-sm); }
.muscle-area-button .muscle-area-check { grid-row: 1 / 3; align-self: center; font-size: var(--font-size-lg); color: var(--color-accent); }
.muscle-area-button[aria-disabled="true"] { background: var(--color-surface-muted); cursor: not-allowed; }
.muscle-area-button[aria-disabled="true"] .muscle-area-check { color: var(--color-text-muted); }
.muscle-area-button[aria-disabled="true"]:hover { transform: none; border-color: var(--color-border); }
.muscle-area-button:hover:not(:disabled) { border-color: var(--color-accent); transform: translateY(-1px); }
.muscle-area-button[aria-pressed="true"] { border-color: var(--color-accent); background: var(--color-accent-soft); }
.muscle-area-button[aria-pressed="true"] .muscle-area-check { font-weight: 800; }
.muscle-map-status { min-height: 1.5rem; }
.quick-builder-equipment {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
}
.quick-builder-equipment legend { color: var(--color-text); font-weight: 750; }
.quick-builder-equipment label {
  min-height: var(--control-height);
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-surface);
}
.quick-exercise-card {
  border: 1px solid var(--color-border);
  border-left-width: 4px;
  border-radius: var(--radius-control);
  background: var(--color-surface);
}
.quick-exercise-card[data-phase="warmup"] { border-left-color: var(--color-warning); }
.quick-exercise-card[data-phase="main"] { border-left-color: var(--color-accent); }
.quick-exercise-card[data-phase="cooldown"] { border-left-color: var(--color-success); }
.quick-exercise-card h4 { color: var(--color-text); }
.quick-exercise-card small { color: var(--color-text-muted); }
.quick-selected-summary { padding: var(--space-3); background: var(--color-accent-soft); border-radius: var(--radius-control); }
.quick-selected-summary p { margin-block: var(--space-2); }
#quick-builder-schedule:not([hidden]) { display: grid; gap: var(--space-4); }
.quick-weekdays, .quick-day-group { padding: var(--space-3); border: 1px solid var(--color-border); border-radius: var(--radius-control); min-width: 0; margin: 0; }
.quick-weekdays legend, .quick-day-group legend { font-weight: 750; padding-inline: var(--space-1); }
#quick-builder-weekdays { display: flex; flex-wrap: wrap; gap: var(--space-2); }
#quick-builder-weekdays label { min-width: var(--control-height); min-height: var(--control-height); padding: var(--space-2); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-control); display: inline-flex; gap: var(--space-1); align-items: center; }
#quick-builder-weekdays label:has(:checked), .quick-day-group-options label:has(:checked) { background: var(--color-accent-soft); border-color: var(--color-accent); }
#quick-builder-day-groups { display: grid; gap: var(--space-3); }
#quick-builder-day-groups[hidden] { display: none; }
.quick-day-group-options { display: grid; grid-template-columns: 1fr; gap: var(--space-2); }
.quick-day-group-options label { display: flex; gap: var(--space-2); align-items: center; min-height: var(--control-height); border: 1px solid var(--color-border); border-radius: var(--radius-control); padding: var(--space-2); }
.quick-schedule-preview { display: grid; gap: var(--space-3); }
.quick-scheduled-card { border: 1px solid var(--color-border); border-radius: var(--radius-control); padding: var(--space-3); background: var(--color-surface); }
.quick-scheduled-card summary { display: grid; gap: var(--space-1); min-height: var(--control-height); cursor: pointer; }
.quick-scheduled-card summary::after { content: 'Показать состав +'; font-size: var(--font-size-sm); color: var(--color-accent); }
.quick-scheduled-card[open] summary::after { content: 'Свернуть состав −'; }
.quick-scheduled-card summary span { color: var(--color-text-muted); font-size: var(--font-size-sm); }

@media (max-width: 900px) {
  .quick-builder-shell { order: 0; }
}
@media (max-width: 560px) {
  .muscle-view-switch { display: flex; }
  .muscle-map-views, .muscle-map-views.is-expanded { grid-template-columns: 1fr; }
  .muscle-map-views[data-active-view="front"] figure[data-muscle-view="back"],
  .muscle-map-views[data-active-view="back"] figure[data-muscle-view="front"] { display: none; }
  .muscle-map-views.is-expanded figure { min-width: 300px; }
  .muscle-map-views .muscle-map { width: min(100%, 260px); }
  .muscle-map-views.is-expanded .muscle-map { width: 300px; }
  .muscle-area-group-buttons { grid-template-columns: 1fr; }
  .muscle-map-toolbar .ui-button { flex: 1; }
  .muscle-map-toolbar .muscle-view-switch { flex: 1 1 100%; }
}

@media (forced-colors: active) {
  .muscle-silhouette, .muscle-zone__shape { fill: Canvas; stroke: ButtonText; }
  .muscle-zone[aria-pressed="true"] .muscle-zone__shape { fill: Highlight; stroke: Highlight; }
  .muscle-area-button, .quick-exercise-card { border-color: CanvasText; }
  .muscle-map-shortcut[aria-pressed="true"], .muscle-area-button[aria-pressed="true"] {
    border-color: Highlight;
    forced-color-adjust: none;
    background: Highlight;
    color: HighlightText;
  }
}
/* Cycle calendar uses the shared component tokens; letters accompany every state. */
.cycle-shell { max-width: 1180px; }
.cycle-layout { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-5);margin-block:var(--space-5);align-items:start; }
.cycle-layout form,.cycle-layout label { display:grid;gap:var(--space-3); }
.cycle-layout form { gap:var(--space-5); }
.cycle-layout .form-row { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);align-items:start; }
.cycle-layout .profile-opt-in { display:flex;align-items:center;gap:var(--space-2); }
.cycle-layout small { color:var(--color-text-muted); }
.cycle-layout > * { min-width:0;padding:var(--space-5); }
.cycle-toolbar { display:flex;align-items:center;justify-content:space-between;gap:var(--space-2); }
.cycle-toolbar h2 { font-size:1.3rem;text-align:center; }
.cycle-weekdays,.cycle-grid { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-1);text-align:center; }
.cycle-weekdays { margin-block:var(--space-3); }
.cycle-day { min-height:52px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer; }
.cycle-day[data-observed="true"] { background:var(--color-brand);color:var(--color-on-brand); }
.cycle-day[aria-current="date"] { outline:2px solid var(--color-accent);outline-offset:1px; }
.cycle-day small { font-size:0.75rem; }
.cycle-day:hover { box-shadow:inset 0 0 0 2px var(--color-accent); }
@media(max-width:760px){.cycle-layout,.cycle-layout .form-row{grid-template-columns:minmax(0,1fr);}.cycle-layout>*{padding:var(--space-3);}.cycle-grid{gap:2px;}}
