.header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.profile-button {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 35px;
  padding: 7px 12px;
  border: 1px solid var(--line);
  border-radius: 99px;
  background: var(--deep);
  color: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
}

.profile-button span {
  color: #91c9b8;
  font-size: 9px;
}

.profile-button b { font-weight: 750; }
.module-card { min-height:210px; padding:22px; border-radius:20px; background:var(--card); border:1px solid var(--line); text-align:left; color:var(--ink); font:inherit; cursor:pointer; transition:.2s; }
.module-card:hover,.module-card:focus-visible { transform:translateY(-4px); border-color:var(--green); box-shadow:var(--shadow); }
.module-card h3 { margin:40px 0 6px; }.module-card p { color:var(--muted); font-size:14px; }.module-card b { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--green); }
.catalog-card[type="button"] { text-align:left; color:var(--ink); font:inherit; cursor:pointer; transition:.2s; }
.catalog-card[type="button"]:hover,.catalog-card[type="button"]:focus-visible { transform:translateY(-3px); border-color:var(--green); box-shadow:var(--shadow); }
.catalog-card .exercise-open { display:block; width:auto; margin-top:16px; padding:8px 12px; border-radius:9px; background:var(--mint); color:var(--deep); font-size:12px; font-weight:800; }
.catalog-card .exercise-open:hover,.catalog-card .exercise-open:focus-visible { background:var(--deep); color:#fff; }
.safety-question { margin:0; padding:14px; border:1px solid var(--line); border-radius:14px; }
.safety-question legend { padding:0 5px; color:var(--ink); font-size:13px; font-weight:700; }
.binary-choice { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:8px; }
.binary-choice label { display:flex!important; grid-template-columns:auto 1fr!important; align-items:center; justify-content:center; padding:10px; border:1px solid var(--line); border-radius:10px; cursor:pointer; }
.account-dialog .binary-choice input[type="radio"] { appearance:none; width:16px; height:16px; min-height:16px; flex:0 0 16px; margin:0 7px 0 0; padding:0; border:1.5px solid #87938f; border-radius:50%; background:#fff; }
.account-dialog .binary-choice input[type="radio"]:checked { border:4px solid currentColor; }
.binary-choice .choice-no:has(input:checked) { color:#155f42; background:#dcf3e7; border-color:#4eaa7a; }
.binary-choice .choice-yes:has(input:checked) { color:#8d2f2f; background:#fde1df; border-color:#d76561; }
.help-icon { position:relative; display:inline-grid; place-items:center; width:20px; height:20px; padding:0; border:1px solid var(--green); border-radius:50%; background:#fff; color:var(--green); font-weight:900; cursor:help; }
.help-icon::after{content:"";position:absolute;inset:-12px}
.brand,.desktop-nav a,.profile-button{min-height:44px}.desktop-nav a{display:flex;align-items:center}.catalog-card .exercise-open,.button.compact{min-height:40px}
.scale-help { margin:0; padding:11px 13px; border-left:3px solid var(--green); border-radius:8px; background:var(--mint); color:var(--ink); font-size:12px; position:relative; z-index:3; }
.scale-help[hidden] { display:none!important; }
.account-dialog output { color:var(--deep); font-size:20px; }
.result-scales { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }.result-scales label{padding:11px;border:1px solid var(--line);border-radius:12px;background:#f8faf8}.result-scales output{justify-self:center}
.account-dialog input[type="range"] { appearance:none; display:block; width:100%; height:28px; min-height:28px; margin:2px 0 0; padding:0; border:0; border-radius:0; background:linear-gradient(90deg,var(--mint),var(--green)) center/calc(100% - 18px) 6px no-repeat; }
.account-dialog input[type="range"]::-webkit-slider-runnable-track { width:100%; height:6px; border-radius:99px; background:transparent; }
.account-dialog input[type="range"]::-webkit-slider-thumb { appearance:none; width:18px; height:18px; margin-top:-6px; border:3px solid #fff; border-radius:50%; background:var(--deep); box-shadow:0 0 0 1px var(--green); }
.account-dialog input[type="range"]::-moz-range-track { height:6px; border:0; border-radius:99px; background:transparent; }
.account-dialog input[type="range"]::-moz-range-thumb { width:14px; height:14px; border:3px solid #fff; border-radius:50%; background:var(--deep); box-shadow:0 0 0 1px var(--green); }
.account-dialog input[type="range"] + output { justify-self:center; line-height:1; }
.exercise-dialog { width:min(680px,calc(100vw - 28px)); max-width:680px; }
.exercise-dialog h3 { margin:22px 0 7px; }.exercise-dialog ul,.exercise-dialog ol { padding-left:22px; }
.workout-dialog,.account-dialog:has(#workout-exercises) { width:min(720px,calc(100vw - 28px)); max-width:720px; }
.workout-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:-8px 0 14px; }.workout-toolbar p{margin:0;color:var(--muted);font-size:13px}.button.compact{padding:8px 11px;font-size:12px;white-space:nowrap}
.workout-button-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.workout-exercise-button { display:grid; grid-template-columns:28px 1fr; gap:2px 9px; align-items:center; padding:10px 11px; border:1px solid var(--line); border-radius:11px; background:#fff; color:var(--ink); text-align:left; cursor:pointer; }
.workout-exercise-button>span { grid-row:1/4; display:grid; place-items:center; width:26px; height:26px; border-radius:8px; background:var(--mint); color:var(--green); font-size:11px; font-weight:900; }.workout-exercise-button b{font-size:13px}.workout-exercise-button small{color:var(--muted);font-size:11px}.workout-exercise-button i{color:var(--green);font-size:10px;font-style:normal;font-weight:800}.workout-exercise-button:hover,.workout-exercise-button.active{border-color:var(--green);background:#f4faf7}
.workout-technique { margin-top:12px; padding:16px; border:1px solid #a8cec0; border-radius:14px; background:#f3faf7; }.workout-technique[hidden]{display:none}.technique-head{display:flex;justify-content:space-between;gap:12px}.technique-head h3{margin:0}.technique-head button{align-self:start;border:0;background:none;font-size:22px;cursor:pointer}.workout-technique h4{margin:14px 0 4px}.workout-technique p{margin:4px 0;color:var(--muted);font-size:13px}.workout-technique ol,.workout-technique ul{margin:5px 0;padding-left:20px;font-size:13px}
.account-dialog { width: min(480px, calc(100vw - 28px)); }
.account-dialog form { display: grid; gap: 14px; }
.account-dialog label { display: grid; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 700; }
.account-dialog input,.account-dialog select { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--ink); font: inherit; }
.account-dialog .full { width: 100%; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-error { min-height: 18px; margin: 0; color: #a0443f; font-size: 12px; }
.account-email { margin-top: -12px; color: var(--muted); font-size: 13px; }

.today-card {
  align-self: center;
  height: auto;
  min-height: 0;
  padding: 24px;
  transform: none;
}

.today-card .activity-ring {
  width: 112px;
  height: 112px;
  margin: 20px auto;
  border-width: 8px;
}

.today-card .activity-ring strong {
  font-size: 34px;
}

.today-card h2 {
  margin-top: 18px;
}

.today-card .button {
  margin-top: 8px;
}

.goal-card {
  position: relative;
}

.goal-card.selected::after {
  content: "Выбрано";
  position: absolute;
  top: 18px;
  right: 18px;
  padding: 4px 9px;
  border-radius: 99px;
  background: var(--deep);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}

button.catalog-card {
  width: 100%;
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: transform .2s, border-color .2s, box-shadow .2s;
}

button.catalog-card h3 {
  margin: 4px 0 7px;
}

button.catalog-card:hover,
button.catalog-card.selected {
  transform: translateY(-4px);
  border-color: var(--green);
  box-shadow: var(--shadow);
}

button.catalog-card.selected::after {
  content: "Выбрано";
  display: inline-block;
  margin-top: 18px;
  padding: 4px 9px;
  border-radius: 99px;
  background: var(--mint);
  color: var(--green);
  font-size: 11px;
  font-weight: 800;
}

button.catalog-card:disabled {
  cursor: not-allowed;
}

button.catalog-card:disabled:hover {
  transform: none;
  box-shadow: none;
}

.status-area {
  position: relative;
}

.status-chip > b {
  font-weight: 400;
}

.status-details {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 40;
  width: 300px;
  padding: 16px;
  visibility: hidden;
  opacity: 0;
  transform: translateY(-5px);
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--shadow);
  transition: opacity .15s, transform .15s, visibility .15s;
}

.status-area:hover .status-details,
.status-area:focus-within .status-details {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

.status-details strong {
  display: block;
  margin-bottom: 10px;
  font-size: 13px;
}

.status-details ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.status-details li {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  font-size: 12px;
}

.status-details li span {
  color: var(--muted);
}

.status-details li b {
  text-align: right;
}

@media (max-width: 720px) {
  .topbar {
    gap: 14px;
  }

  .header-actions {
    margin-left: auto;
  }

  .profile-button {
    padding: 8px 10px;
  }
}

@media (max-width: 440px) {
  .status-chip {
    display: none;
  }

  .profile-button {
    min-height: 38px;
  }

  #safety-form .form-row { grid-template-columns:1fr; }
  .workout-toolbar { align-items:stretch; flex-direction:column; }
  .workout-button-list { grid-template-columns:1fr; }
  .result-scales { grid-template-columns:1fr; }
}

/* Авторизованная главная и динамические настройки оформления */
:root { --card-radius: 20px; --content-width: 1180px; }
.hero, .section, .module-grid { max-width: var(--content-width); }
/* Full-bleed background; its content follows the same gutters as other sections.
   Do not combine a capped section width with viewport-sized inner padding. */
.section.muted-section {
  max-width: none;
  padding-inline: max(24px, calc((100% - var(--layout-content)) / 2 + 24px));
}
/* At most four columns; narrow content must wrap even on a wide viewport.
   42px is the existing grid's three 14px gaps. Long labels cannot widen it. */
#training-types {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(250px, calc((100% - 42px) / 4))), 1fr));
}
#training-types .catalog-card { min-width: 0; overflow-wrap: anywhere; }
#training-types .catalog-card.rehab h3 { clear: both; }
@media (max-width: 540px) {
  .section.muted-section { padding-inline: 18px; }
}
.today-card, .goal-card, .catalog-card, .module-card, .module-grid > .locked { border-radius: var(--card-radius); }
body[data-font="humanist"] { font-family: "Segoe UI", Candara, Calibri, sans-serif; }
body[data-font="rounded"] { font-family: "Arial Rounded MT Bold", "Trebuchet MS", sans-serif; }
body[data-heading-font="sans"] h1, body[data-heading-font="sans"] h2 { font-family: inherit; font-weight: 750; }
body.authenticated .onboarding-section { display: none; }
body.authenticated.editing-preferences .onboarding-section { display: block; }
body.authenticated .desktop-nav a[href="#goals"], body.authenticated .desktop-nav a[href="#directions"], body.authenticated .desktop-nav a[href="#equipment"] { display: none; }
.wellness-link,.wellness-module { display: none; }
body.authenticated .wellness-link { display: flex; }
body.authenticated .wellness-module { display: block; text-decoration: none; color: inherit; }
body.authenticated .hero-copy { padding: clamp(24px, 4vw, 52px); border: 1px solid var(--line); border-radius: var(--card-radius); background: linear-gradient(145deg,#fff,#e8f2ee); box-shadow: var(--shadow); }
body.authenticated .hero-copy .hero-actions { display: none; }
body.authenticated .hero-copy .safety-note { margin-top: 28px; }
body.authenticated #hero-title { overflow-wrap: anywhere; }
.status-details li b { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; }
.module-dot { display: inline-block; width: 8px; height: 8px; flex: 0 0 8px; border-radius: 50%; background: #b4b9b6; }
.module-dot.online { background: #2ca36c; box-shadow: 0 0 0 3px rgba(44,163,108,.13); animation: healthyPulse 2.4s ease-in-out infinite; }
.module-dot.offline { background: #d23d3d; box-shadow: 0 0 0 3px rgba(210,61,61,.13); }
.module-dot.checking { background: #d39b32; animation: statusPulse 1.3s ease-in-out infinite; }
@keyframes statusPulse { 50% { opacity: .35; transform: scale(.82); } }
@keyframes healthyPulse { 50% { box-shadow: 0 0 0 6px rgba(44,163,108,.04); } }
@media (max-width: 760px) { body.authenticated .hero-copy { padding: 24px; } }

.today-secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.today-secondary-actions[hidden]{display:none}.button.danger{color:#a52c2c;border-color:#e3bcbc}.password-settings{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:14px}.password-settings summary{cursor:pointer;color:var(--green);font-weight:750}.password-settings form{display:grid;gap:12px;margin-top:14px}.history-toolbar{display:flex;align-items:end;gap:10px;margin-bottom:16px}.history-toolbar label{display:grid;gap:5px;color:var(--muted);font-size:12px}.history-toolbar select{min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}.history-list{display:grid;gap:10px}.history-card{display:flex;justify-content:space-between;gap:20px;padding:18px;background:#fff;border:1px solid var(--line);border-left:5px solid #aeb7b3;border-radius:var(--card-radius)}.history-card.status-completed{border-left-color:#2ca36c}.history-card.status-in_progress{border-left-color:#d39b32}.history-card.status-skipped,.history-card.status-cancelled{border-left-color:#c65353}.history-card h3,.history-card p{margin:6px 0}.history-result{display:grid;text-align:right;align-content:center;gap:5px}.history-result small{color:var(--muted)}.history-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px}.workout-exercise-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:8px;border:1px solid var(--line);border-radius:14px}.workout-exercise-row.completed{border-color:#6bb49e;background:#f1faf6}.workout-item-actions{display:grid;align-content:center;gap:6px}.during-feedback{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#f7f9f6}.replacement-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.replacement-list .catalog-card{text-align:left}.account-dialog textarea{min-height:90px}.member-only[hidden]{display:none!important}
@media(max-width:700px){.history-card{display:grid}.history-result{text-align:left}.workout-exercise-row{grid-template-columns:1fr}.workout-item-actions{grid-template-columns:1fr 1fr}.replacement-list{grid-template-columns:1fr}.today-secondary-actions{grid-template-columns:1fr}.history-toolbar{align-items:stretch;flex-direction:column}.history-toolbar>*{width:100%}}

.planning-settings{padding:14px;border:1px solid var(--line);border-radius:14px}.planning-settings summary{cursor:pointer;font-weight:750}.planning-settings>div,.planning-settings>label,.planning-settings>fieldset{margin-top:12px}.compact-options,.option-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.compact-options label,.option-grid label{display:flex;align-items:center;gap:7px;padding:9px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:12px}.compact-options input,.option-grid input{width:auto;margin:0}@media(max-width:700px){.compact-options{grid-template-columns:repeat(4,1fr)}.option-grid{grid-template-columns:1fr 1fr}}
#locomotion-options .option-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:700px){#locomotion-options .option-grid{grid-template-columns:1fr}}
.recovery-list{display:grid;gap:12px}.recovery-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border:1px solid #d8c98e;border-radius:var(--card-radius);background:#fff9e8}.recovery-card h3,.recovery-card p{margin:4px 0}.recovery-card small{color:var(--muted)}.recovery-decision{padding:16px;border-left:4px solid var(--green);background:#f1faf6;border-radius:12px}.recovery-decision.block{border-left-color:#b33636;background:#fff2f2}@media(max-width:700px){.recovery-card{display:grid}.recovery-card .button{width:100%}}
.today-card .button.skip{background:#f2c978;color:#17322e;border-color:#f2c978}.today-card .button.skip:hover{background:#ffd98c}

/* Layout only: muscle map and quick builder use visual states from components.css. */
.muscle-builder-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:var(--space-5);align-items:start}.muscle-map-heading{display:flex;justify-content:space-between;gap:var(--space-4);align-items:start}.muscle-map-heading p{margin:0}.muscle-map-views{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);margin-block:var(--space-5)}.muscle-map-views figure{margin:0;text-align:center}.muscle-map-views figcaption{margin-bottom:var(--space-2);font-weight:750}.muscle-map{display:block;width:min(100%,240px);height:auto;margin:auto}.muscle-map-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin-bottom:var(--space-3)}.muscle-area-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.quick-builder-shell>div{display:grid;gap:var(--space-4)}.quick-builder-shell>[hidden]{display:none!important}.quick-builder-shell form{display:grid;gap:var(--space-4)}.quick-builder-equipment{margin:0;padding:var(--space-3)}.quick-builder-equipment>div{display:grid;gap:var(--space-2);margin-top:var(--space-2)}.quick-builder-equipment p{margin:0}.quick-builder-preview{display:grid;gap:var(--space-4);margin-top:var(--space-5)}.quick-builder-preview:empty{display:none}.quick-preview-heading h3{margin-top:var(--space-3)}.quick-exercise-list{display:grid;gap:var(--space-2)}.quick-exercise-card{padding:var(--space-4)}.quick-exercise-card h4{margin:var(--space-2) 0}.quick-exercise-card p{margin:0 0 var(--space-2)}.quick-builder-preview details ul{padding-left:var(--space-5)}
@media(max-width:900px){.muscle-builder-layout{grid-template-columns:1fr}.quick-builder-shell{order:-1}}
@media(max-width:560px){.muscle-map-heading{display:grid}.muscle-map-heading .ui-button{width:100%}.muscle-map-views{grid-template-columns:1fr;gap:var(--space-5)}.muscle-map-shortcuts,.muscle-area-list{grid-template-columns:1fr}.muscle-map-card,.quick-builder-shell{padding:var(--space-4)}}
