:root {
  --bg: #07090c;
  --bg-soft: #0b0f14;
  --panel: rgba(18, 23, 30, 0.92);
  --panel-2: rgba(12, 16, 22, 0.96);
  --line: rgba(255, 255, 255, 0.09);
  --text: #f5f7fb;
  --muted: #8d96a4;
  --lime: #b9ff16;
  --cyan: #17c7ff;
  --purple: #a66cff;
  --orange: #ff9d26;
  --danger: #ff5576;
  --radius-xl: 28px;
  --radius-lg: 22px;
  --radius-md: 16px;
  --shadow: 0 24px 70px rgba(0, 0, 0, 0.38);
}

* {
  box-sizing: border-box;
}

html {
  background: var(--bg);
  color-scheme: dark;
}

body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 20% 0%, rgba(185, 255, 22, 0.08), transparent 26%),
    radial-gradient(circle at 100% 12%, rgba(23, 199, 255, 0.08), transparent 26%),
    var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

button,
input,
textarea,
select {
  font: inherit;
}

button {
  cursor: pointer;
}

.app-shell {
  width: min(100%, 1080px);
  margin: 0 auto;
  min-height: 100vh;
  padding: calc(env(safe-area-inset-top) + 22px) 18px calc(104px + env(safe-area-inset-bottom));
}

.topbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
}
.topbar-actions{display:flex;gap:10px}.coach-nav-item{position:relative;color:var(--cyan)!important}.coach-nav-item>span:first-child{width:42px;height:42px;margin:-18px auto 1px;display:grid;place-items:center;border-radius:50%;background:#102a35;border:2px solid var(--cyan);font-size:20px;box-shadow:0 0 22px rgba(23,199,255,.25)}.coach-nav-item .coach-notification{right:calc(50% - 25px);top:-13px;border-color:#0b0f14}.coach-nav-item.coach-pending .coach-notification,.coach-nav-item.coach-unread .coach-notification{display:block}
.coach-nav-item.coach-pending .coach-notification{animation:coach-notification-pulse 1s ease-in-out infinite}.coach-nav-item.coach-unread .coach-notification{animation:coach-notification-blink 1.4s ease-in-out infinite}
@media(max-width:440px){.app-shell{padding-left:8px;padding-right:8px}.topbar{align-items:center}.topbar h1{font-size:34px}.topbar p{font-size:12px}.topbar-actions{gap:6px}.topbar-actions .icon-button{width:42px;height:42px}.hero-card,.panel{padding:15px}.metric-grid{grid-template-columns:1fr 1fr;gap:8px}.metric-card{min-width:0;padding:13px}.energy-balance-card,.macros-card{grid-column:1/-1}.energy-values{gap:8px}.energy-values strong{font-size:22px}.energy-values small{font-size:10px}.macro-segments strong{font-size:17px}.macro-segments strong small{display:block;margin-top:2px}.bottom-nav{padding-left:4px;padding-right:4px}.nav-item small{font-size:8px}.coach-nav-item>span:first-child{width:40px;height:40px}.nutrition-detail-card,.coach-card,.settings-card{padding:15px}.coach-form{grid-template-columns:1fr}.coach-form button{width:100%}.manual-meal-dialog{width:calc(100% - 10px)}.manual-ingredient-row{gap:6px}.week-strip{grid-template-columns:repeat(7,56px)}}
@media(max-width:760px){#settingsDialog{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border-radius:0}#settingsDialog .settings-card{width:100%;height:100dvh;max-height:none;border-radius:0;border:0;padding:18px 14px calc(24px + env(safe-area-inset-bottom));overflow-y:auto}.profile-settings-card{max-height:none}.goal-mode-grid{grid-template-columns:1fr}.training-day-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:760px){dialog{width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;margin:0!important;padding:0!important;border-radius:0!important}dialog>article,dialog>form{width:100%!important;min-height:100dvh;height:100dvh;max-height:100dvh!important;margin:0!important;border-radius:0!important;border:0!important;padding:18px 14px calc(28px + env(safe-area-inset-bottom))!important;overflow-y:auto!important}.coach-messages{height:auto;min-height:45vh;max-height:none}.exercise-dialog,.nutrition-dialog,.coach-dialog,.manual-meal-dialog,.weight-reminder-dialog,.workout-finish-dialog{overflow:hidden!important}}
.product-price{margin-top:8px;color:var(--lime);font-weight:800}
button:disabled{cursor:not-allowed;opacity:.45;filter:saturate(.45)}
.workout-finish-dialog{border:0;padding:0;background:transparent;width:min(600px,calc(100% - 20px))}.workout-finish-dialog form{display:grid;gap:15px}.workout-finish-dialog label{display:grid;gap:8px}.workout-finish-dialog select,.workout-finish-dialog textarea{width:100%}

.topbar h1 {
  margin: 0;
  font-size: clamp(34px, 7vw, 54px);
  line-height: 0.96;
  letter-spacing: -0.05em;
}

.topbar h1 span {
  color: var(--lime);
}

.topbar p,
.screen-title p {
  margin: 10px 0 0;
  color: var(--muted);
  line-height: 1.5;
}

.icon-button,
.round-button {
  border: 1px solid rgba(185, 255, 22, 0.35);
  background: rgba(185, 255, 22, 0.08);
  color: var(--lime);
  width: 48px;
  height: 48px;
  border-radius: 16px;
  font-size: 20px;
}

.screen {
  display: none;
  animation: fade 0.2s ease;
}

.screen.active {
  display: block;
}

@keyframes fade {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

.week-strip {
  display: grid;
  grid-template-columns: repeat(7, minmax(50px, 1fr));
  gap: 8px;
  margin-bottom: 20px;
  overflow-x: auto;
  scrollbar-width: none;
}

.week-strip::-webkit-scrollbar {
  display: none;
}

.day-chip {
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.025);
  color: var(--muted);
  min-width: 58px;
  padding: 12px 7px;
  border-radius: 18px;
  text-align: center;
}

.day-chip strong {
  display: block;
  color: var(--text);
  font-size: 22px;
  margin-top: 5px;
}

.day-chip.active {
  background: var(--lime);
  color: #101500;
  border-color: transparent;
  box-shadow: 0 10px 28px rgba(185, 255, 22, 0.2);
}

.day-chip.active strong {
  color: #101500;
}

.hero-card,
.panel,
.ai-card,
.metric-card {
  border: 1px solid var(--line);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0)),
    var(--panel);
  box-shadow: var(--shadow);
}

.hero-card {
  padding: 26px;
  border-radius: var(--radius-xl);
  margin-bottom: 18px;
}

.section-kicker {
  font-size: 14px;
  color: var(--muted);
}

.hero-card h2,
.screen-title h2 {
  margin: 5px 0 20px;
  font-size: clamp(38px, 8vw, 64px);
  letter-spacing: -0.05em;
  line-height: 0.98;
}

.hero-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.action-card {
  border: 0;
  min-height: 118px;
  border-radius: 24px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 18px;
  text-align: left;
  color: #081000;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.22);
}

.action-card.lime {
  background: linear-gradient(135deg, #d6ff43, var(--lime));
}

.action-card.cyan {
  background: linear-gradient(135deg, #4ee6ff, var(--cyan));
  color: #00131b;
}

.action-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #07090c;
  font-size: 24px;
}

.action-card strong {
  display: block;
  font-size: 18px;
  line-height: 1.2;
}

.action-card small {
  display: block;
  margin-top: 6px;
  opacity: 0.7;
  line-height: 1.3;
}

.action-card b {
  font-size: 32px;
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 18px;
}

.metric-card {
  border-radius: var(--radius-lg);
  padding: 18px;
  min-height: 142px;
}

.metric-label,
.metric-note {
  color: var(--muted);
  font-size: 13px;
}

.metric-card strong {
  display: block;
  font-size: clamp(24px, 5vw, 38px);
  margin: 10px 0 4px;
  letter-spacing: -0.04em;
}

.metric-card strong small {
  font-size: 13px;
  color: var(--muted);
  letter-spacing: normal;
}

.progress {
  height: 4px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.09);
  margin-top: 14px;
  overflow: hidden;
}

.progress i {
  display: block;
  width: 0;
  height: 100%;
  background: var(--cyan);
  transition: width 0.25s ease;
}

.progress.purple i {
  background: var(--purple);
}

.progress.orange i {
  background: var(--orange);
}

.content-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.panel {
  border-radius: var(--radius-xl);
  padding: 22px;
  margin-bottom: 16px;
}

.panel-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 18px;
}

.panel-heading h3 {
  margin: 4px 0 0;
  font-size: 22px;
  letter-spacing: -0.03em;
}

.panel-kicker {
  color: var(--muted);
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.lime-text { color: var(--lime); }
.cyan-text { color: var(--cyan); }
.purple-text { color: var(--purple); }
.orange-text { color: var(--orange); }

.text-button {
  border: 0;
  background: transparent;
  color: var(--muted);
}

.empty-state {
  color: var(--muted);
  padding: 20px 0;
  line-height: 1.5;
}

.preview-list,
.stack-list,
.check-list {
  display: grid;
  gap: 10px;
}

.preview-item,
.stack-item,
.check-item {
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.025);
  border-radius: 16px;
  padding: 14px;
}

.preview-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.preview-item strong,
.stack-item strong {
  display: block;
}

.preview-item small,
.stack-item small {
  color: var(--muted);
  display: block;
  margin-top: 4px;
  line-height: 1.4;
}

.stack-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 14px;
  align-items: center;
}

.stack-item .value {
  color: var(--lime);
  font-weight: 700;
}

.ai-card {
  border-radius: var(--radius-xl);
  padding: 22px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  margin-top: 16px;
  border-color: rgba(23, 199, 255, 0.45);
}

.ai-icon {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  color: var(--cyan);
  border: 1px solid rgba(23, 199, 255, 0.45);
  background: rgba(23, 199, 255, 0.09);
  font-size: 30px;
}

.ai-card h3 {
  margin: 5px 0 8px;
}

.ai-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.screen-title {
  margin: 14px 0 22px;
}

.calendar-panel {
  padding: 18px;
}

.calendar-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
}

.calendar-toolbar h3 {
  margin: 0;
}

.calendar-weekdays,
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
}

.calendar-weekdays {
  color: var(--muted);
  font-size: 12px;
  text-align: center;
  margin-bottom: 8px;
}

.calendar-day {
  aspect-ratio: 1;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.02);
  color: var(--text);
  display: grid;
  place-items: center;
  position: relative;
}

.calendar-day.muted {
  opacity: 0.25;
}

.calendar-day.selected {
  background: var(--lime);
  color: #101500;
  border-color: transparent;
}

.calendar-day.has-data::after {
  content: "";
  position: absolute;
  bottom: 6px;
  width: 5px;
  height: 5px;
  background: var(--cyan);
  border-radius: 50%;
}

.calendar-day.selected.has-data::after {
  background: #101500;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

label {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 13px;
  margin-bottom: 14px;
}

input,
textarea {
  width: 100%;
  color: var(--text);
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.035);
  border-radius: 16px;
  padding: 14px 15px;
  outline: none;
}

input:focus,
textarea:focus {
  border-color: rgba(185, 255, 22, 0.55);
  box-shadow: 0 0 0 3px rgba(185, 255, 22, 0.08);
}

textarea {
  resize: vertical;
}

.primary-button,
.secondary-button,
.bright-mini-button {
  border: 0;
  border-radius: 16px;
  padding: 15px 18px;
  font-weight: 800;
}

.primary-button {
  width: 100%;
  color: #101500;
  background: var(--lime);
}

.cyan-button,
.bright-mini-button.blue {
  color: #00131b;
  background: var(--cyan);
}

.secondary-button {
  width: 100%;
  color: var(--text);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid var(--line);
}

.bright-mini-button {
  color: #101500;
  background: var(--lime);
  padding: 10px 14px;
}

.status-pill {
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 8px 12px;
  font-size: 12px;
}

.toggle-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 0;
}

.toggle-row input {
  width: 20px;
  height: 20px;
}

.check-item {
  display: flex;
  gap: 12px;
  align-items: center;
}

.check-item input {
  width: 20px;
  height: 20px;
}

.feedback-result {
  display: none;
  margin-top: 14px;
  border-radius: 16px;
  padding: 14px;
  line-height: 1.5;
  color: var(--text);
  border: 1px solid rgba(23, 199, 255, 0.3);
  background: rgba(23, 199, 255, 0.07);
}

.feedback-result.visible {
  display: block;
}

.chart {
  min-height: 220px;
  display: flex;
  align-items: flex-end;
  gap: 8px;
  padding: 18px 4px 0;
  overflow-x: auto;
}

.chart-column {
  min-width: 38px;
  display: grid;
  justify-items: center;
  gap: 8px;
}

.chart-bar {
  width: 20px;
  border-radius: 999px 999px 5px 5px;
  background: linear-gradient(180deg, var(--lime), rgba(185, 255, 22, 0.25));
}

.chart-column span {
  color: var(--muted);
  font-size: 10px;
}

.chart-column strong {
  font-size: 11px;
}

.summary-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.summary-item {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.025);
}

.summary-item strong {
  display: block;
  font-size: 28px;
  margin-bottom: 6px;
}

.summary-item span {
  color: var(--muted);
  font-size: 12px;
}

.bottom-nav {
  position: fixed;
  z-index: 50;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: min(100%, 1080px);
  padding: 12px 12px calc(12px + env(safe-area-inset-bottom));
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 4px;
  background: rgba(8, 11, 15, 0.92);
  border-top: 1px solid var(--line);
  backdrop-filter: blur(20px);
}

.nav-item {
  border: 0;
  background: transparent;
  color: var(--muted);
  display: grid;
  gap: 4px;
  justify-items: center;
  padding: 8px 2px;
}

.nav-item span {
  font-size: 23px;
}

.nav-item small {
  font-size: 10px;
}

.nav-item.active {
  color: var(--lime);
}

dialog {
  width: min(92vw, 640px);
  border: 0;
  padding: 0;
  border-radius: 26px;
  background: transparent;
}

dialog::backdrop {
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(8px);
}

.settings-card {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 26px;
  background: #0b0f14;
  box-shadow: var(--shadow);
}

@media (max-width: 760px) {
  .app-shell {
    padding-left: 12px;
    padding-right: 12px;
  }

  .hero-card {
    padding: 20px;
  }

  .hero-actions,
  .content-grid {
    grid-template-columns: 1fr;
  }

  .metric-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .summary-grid {
    grid-template-columns: 1fr;
  }

  .week-strip {
    grid-template-columns: repeat(7, 64px);
  }
}

@media (max-width: 440px) {
  .topbar p {
    max-width: 250px;
  }

  .hero-card h2,
  .screen-title h2 {
    font-size: 40px;
  }

  .metric-card {
    min-height: 128px;
  }

  .form-grid {
    grid-template-columns: 1fr;
  }

  .bottom-nav {
    gap: 0;
  }

  .nav-item small {
    font-size: 9px;
  }
}

/* ===== FitPilot AI v2: compact mobile header and exercise guide ===== */
.calendar-title-group {
  display: grid;
  justify-items: center;
  gap: 5px;
}

.calendar-today-button {
  border: 0;
  padding: 4px 10px;
  border-radius: 999px;
  color: var(--lime);
  background: rgba(185, 255, 22, 0.09);
  font-size: 11px;
  font-weight: 700;
}

.exercise-row {
  width: 100%;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.025);
  color: var(--text);
  border-radius: 16px;
  padding: 14px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  text-align: left;
  transition: transform 0.16s ease, border-color 0.16s ease, background 0.16s ease;
}
.exercise-row:has(.task-check){grid-template-columns:auto 54px minmax(0,1fr) auto auto}.exercise-photo-thumb{width:54px;height:54px;border-radius:12px;object-fit:cover;background:#0c1118}.meal-card>.task-check,.meal-preview-item>.task-check{position:relative;z-index:3}.exercise-row>.task-check{position:relative;z-index:3}.task-done strong{text-decoration:line-through;text-decoration-color:var(--lime);text-decoration-thickness:2px}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.progress.burned i{background:linear-gradient(90deg,var(--orange),#ff5576)}
.chart.month-chart .chart-column{min-width:24px}.chart.calorie-chart .chart-bar{background:linear-gradient(180deg,var(--orange),rgba(255,85,118,.25))}.chart.calorie-chart{min-height:250px}.chart-axis-note{color:var(--muted);font-size:12px;padding:8px 0}.plan-applied-banner{margin:10px 0;padding:12px 14px;border:1px solid rgba(185,255,22,.35);border-radius:14px;background:rgba(185,255,22,.07);color:var(--lime)}
.energy-balance-card,.macros-card{grid-column:span 2}.energy-values{display:grid;grid-template-columns:1fr 1fr;gap:18px}.energy-values>div:last-child{text-align:right}.energy-values small{color:var(--muted)}.meeting-progress{height:10px;margin-top:18px;background:#272d36;border-radius:999px;position:relative;overflow:hidden}.meeting-progress i,.meeting-progress em{position:absolute;top:0;height:100%;width:0;transition:width .3s ease}.meeting-progress i{left:0;background:linear-gradient(90deg,var(--cyan),#63e7ff)}.meeting-progress em{right:0;background:linear-gradient(270deg,var(--orange),#ff5576)}.meeting-progress b{position:absolute;z-index:2;left:50%;top:-3px;width:2px;height:16px;background:#fff;opacity:.65}.macro-segments{display:grid;grid-template-columns:repeat(3,1fr);gap:0}.macro-segments>div{padding:0 14px;border-right:1px solid var(--line)}.macro-segments>div:first-child{padding-left:0}.macro-segments>div:last-child{padding-right:0;border:0;text-align:right}.macro-segments>div:nth-child(2){text-align:center}.macro-segments span{color:var(--muted);font-size:12px}.macro-segments strong{display:block;margin:8px 0;font-size:23px}.macro-segments strong>span{color:var(--text);font-size:inherit}.macro-progress{height:5px;background:#272d36;border-radius:9px;overflow:hidden}.macro-progress i{display:block;height:100%;width:0;background:var(--purple)}.macro-progress.fat i{background:var(--orange)}.macro-progress.carbs i{background:var(--cyan)}
@media(max-width:620px){.energy-balance-card,.macros-card{grid-column:1/-1}.macro-segments>div{padding:0 7px}.macro-segments strong{font-size:18px}.energy-values strong{font-size:25px}}
.monthly-weight-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.monthly-weight-item{padding:16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.025)}.monthly-weight-item span{display:block;color:var(--muted);font-size:12px}.monthly-weight-item strong{display:block;font-size:25px;margin-top:7px}.monthly-weight-item.good strong{color:var(--lime)}.weight-reminder-dialog{border:0;padding:0;background:transparent;width:min(520px,calc(100% - 24px))}.weight-reminder-card p{color:var(--muted);line-height:1.5}.weight-reminder-card label{display:grid;gap:8px}.weight-reminder-card input{width:100%}@media(max-width:620px){.monthly-weight-summary{grid-template-columns:1fr 1fr}}
.manual-meal-open{width:100%;margin:12px 0}.manual-meal-dialog{width:min(980px,96vw)}.manual-ingredient-head,.manual-ingredient-row{display:grid;grid-template-columns:minmax(150px,2fr) repeat(5,minmax(72px,1fr)) 38px;gap:8px;align-items:center}.manual-ingredient-head{color:var(--muted);font-size:11px;padding:10px 4px}.manual-ingredient-rows{display:grid;gap:8px}.manual-ingredient-row input{width:100%;min-width:0}.remove-manual-ingredient{border:0;background:rgba(255,85,118,.12);color:var(--danger);border-radius:10px;height:38px}.manual-meal-totals{margin:16px 0;padding:14px;border-radius:14px;background:rgba(185,255,22,.07);color:var(--lime);font-weight:700}@media(max-width:720px){.manual-ingredient-head{display:none}.manual-ingredient-row{grid-template-columns:1fr 1fr}.manual-ingredient-row input:first-child{grid-column:1/-1}.remove-manual-ingredient{grid-column:2;justify-self:end;width:38px}}
@media(max-width:620px){.exercise-row:has(.task-check){grid-template-columns:auto 46px minmax(0,1fr) auto}.exercise-row:has(.task-check) .exercise-chevron{display:none}.exercise-photo-thumb{width:46px;height:46px}}

.exercise-row:hover,
.exercise-row:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(23, 199, 255, 0.42);
  background: rgba(23, 199, 255, 0.055);
  outline: none;
}

.exercise-row .value {
  color: var(--lime);
  font-weight: 800;
  white-space: nowrap;
}

.exercise-row .exercise-chevron {
  color: var(--muted);
  font-size: 24px;
}

.exercise-row strong {
  display: block;
}

.exercise-row small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.35;
}

.exercise-dialog {
  width: min(94vw, 760px);
  max-height: min(92vh, 920px);
  overflow: hidden;
}

.exercise-detail-card {
  max-height: min(92vh, 920px);
  overflow-y: auto;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 26px;
  background: #0b0f14;
  box-shadow: var(--shadow);
  overscroll-behavior: contain;
}

.exercise-detail-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
}

.exercise-detail-header h2 {
  margin: 5px 0 0;
  font-size: clamp(30px, 7vw, 48px);
  line-height: 1;
  letter-spacing: -0.04em;
}

.exercise-description {
  margin: 18px 0 14px;
  color: var(--muted);
  line-height: 1.55;
}

.muscle-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}

.muscle-tag {
  padding: 7px 10px;
  border: 1px solid rgba(185, 255, 22, 0.28);
  border-radius: 999px;
  color: var(--lime);
  background: rgba(185, 255, 22, 0.07);
  font-size: 12px;
}

.exercise-gallery {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(220px, 72%);
  gap: 12px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 2px 2px 12px;
  margin-bottom: 12px;
  scrollbar-width: thin;
}

.exercise-figure {
  margin: 0;
  scroll-snap-align: start;
  border: 1px solid var(--line);
  border-radius: 18px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.025);
}

.exercise-figure img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: #0d1218;
}

.exercise-figure figcaption {
  padding: 10px 12px;
  color: var(--muted);
  font-size: 12px;
}

.exercise-steps {
  border-top: 1px solid var(--line);
  padding-top: 18px;
}

.exercise-steps ol {
  margin: 12px 0 0;
  padding-left: 22px;
  color: var(--text);
}

.exercise-steps li {
  margin: 0 0 10px;
  padding-left: 5px;
  line-height: 1.5;
}

.exercise-safety {
  margin-top: 18px;
  padding: 14px;
  border-radius: 16px;
  border: 1px solid rgba(255, 157, 38, 0.28);
  background: rgba(255, 157, 38, 0.07);
  color: #d7c5ad;
  font-size: 12px;
  line-height: 1.5;
}

@media (max-width: 440px) {
  .app-shell {
    padding-top: calc(env(safe-area-inset-top) + 10px);
    padding-left: 10px;
    padding-right: 10px;
    padding-bottom: calc(82px + env(safe-area-inset-bottom));
  }

  .topbar {
    align-items: flex-start;
    margin-bottom: 10px;
    gap: 10px;
  }

  .topbar h1 {
    font-size: 29px;
  }

  .topbar p {
    max-width: 235px;
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.35;
  }

  .icon-button,
  .round-button {
    width: 38px;
    height: 38px;
    min-width: 38px;
    border-radius: 13px;
    font-size: 17px;
  }

  .week-strip {
    grid-template-columns: repeat(7, 50px);
    gap: 6px;
    margin-bottom: 10px;
  }

  .day-chip {
    min-width: 50px;
    padding: 8px 5px;
    border-radius: 15px;
    font-size: 11px;
  }

  .day-chip strong {
    margin-top: 3px;
    font-size: 18px;
  }

  .hero-card {
    padding: 15px;
    margin-bottom: 10px;
    border-radius: 22px;
  }

  .hero-card h2 {
    margin: 3px 0 12px;
    font-size: 32px;
  }

  .section-kicker {
    font-size: 11px;
  }

  .hero-actions {
    gap: 9px;
  }

  .action-card {
    min-height: 77px;
    padding: 11px 12px;
    border-radius: 18px;
    gap: 10px;
  }

  .action-icon {
    width: 38px;
    height: 38px;
    font-size: 17px;
  }

  .action-card strong {
    font-size: 15px;
  }

  .action-card small {
    margin-top: 3px;
    font-size: 10px;
  }

  .action-card b {
    font-size: 23px;
  }

  .metric-grid {
    gap: 8px;
    margin-bottom: 10px;
  }

  .metric-card {
    min-height: 102px;
    padding: 12px;
    border-radius: 18px;
  }

  .metric-card strong {
    margin: 7px 0 2px;
    font-size: 24px;
  }

  .metric-label,
  .metric-note {
    font-size: 11px;
  }

  .progress {
    margin-top: 9px;
  }

  .panel,
  .ai-card {
    border-radius: 22px;
  }

  .bottom-nav {
    padding-top: 8px;
    padding-bottom: calc(8px + env(safe-area-inset-bottom));
  }

  .nav-item {
    padding: 5px 1px;
  }

  .nav-item span {
    font-size: 18px;
  }

  .nav-item small {
    font-size: 8px;
  }

  .exercise-detail-card {
    padding: 17px;
  }

  .exercise-gallery {
    grid-auto-columns: 86%;
  }
}


/* Nutrition controls and visual cards */
.panel-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.ghost-mini-button {
  border: 1px solid var(--line);
  border-radius: 13px;
  padding: 9px 12px;
  color: var(--text);
  background: rgba(255, 255, 255, 0.045);
  font-weight: 700;
}

.danger-text { color: var(--danger) !important; }

.catalog-note {
  margin: -7px 0 16px;
  padding: 11px 13px;
  border: 1px solid rgba(23, 199, 255, 0.18);
  border-radius: 14px;
  color: var(--muted);
  background: rgba(23, 199, 255, 0.045);
  font-size: 12px;
  line-height: 1.45;
}

.meal-card {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.025);
}

.meal-image,
.product-image,
.preview-thumb {
  display: block;
  width: 100%;
  object-fit: cover;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.07);
  background: #0d1218;
}

.meal-image { width: 86px; height: 72px; }
.product-image { width: 68px; height: 68px; }
.preview-thumb { width: 48px; height: 48px; flex: 0 0 48px; }

.meal-copy,
.shopping-copy,
.preview-copy {
  min-width: 0;
}

.meal-copy strong,
.shopping-copy strong {
  display: block;
  margin-top: 4px;
  line-height: 1.35;
}

.meal-copy small,
.shopping-copy small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  line-height: 1.35;
}

.meal-slot {
  color: var(--lime);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.item-actions {
  display: grid;
  gap: 7px;
}

.item-actions button,
.product-pick-button,
.icon-delete-button,
.select-product-button {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 8px 10px;
  background: rgba(255,255,255,.045);
  color: var(--text);
  font-size: 12px;
  font-weight: 750;
}

.shopping-card {
  display: grid;
  grid-template-columns: auto 68px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.025);
  transition: opacity .2s ease, border-color .2s ease;
}

.shopping-card.checked {
  opacity: .58;
  border-color: rgba(185,255,22,.22);
}

.shopping-check {
  width: 21px;
  height: 21px;
  margin: 0;
}

.shopping-actions {
  display: grid;
  gap: 7px;
  justify-items: stretch;
}

.product-pick-button {
  color: #00131b;
  background: var(--cyan);
  border-color: transparent;
}

.icon-delete-button {
  color: var(--danger);
  font-size: 18px;
  line-height: 1;
}

.selected-product {
  display: block;
  margin-top: 8px;
  color: var(--cyan);
  font-size: 11px;
  line-height: 1.35;
}

.muted-choice { color: var(--muted); }

.meal-preview-item {
  display: grid;
  grid-template-columns: 48px minmax(0,1fr) auto;
}
.meal-preview-item:has(.task-check){grid-template-columns:auto 48px minmax(0,1fr) auto auto}.meal-card:has(.task-check){grid-template-columns:auto 86px minmax(0,1fr) auto}

.nutrition-dialog {
  width: min(94vw, 760px);
  max-height: min(92vh, 920px);
  overflow: hidden;
}

.nutrition-detail-card {
  max-height: min(92vh, 920px);
  overflow-y: auto;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 26px;
  background: #0b0f14;
  box-shadow: var(--shadow);
}

.nutrition-detail-card h2 {
  margin: 5px 0 0;
  font-size: clamp(28px, 6vw, 44px);
  line-height: 1.02;
  letter-spacing: -.04em;
}

.meal-alternatives,
.product-options {
  display: grid;
  gap: 12px;
}

.alternative-meal-card {
  display: grid;
  grid-template-columns: 92px minmax(0,1fr) auto;
  align-items: center;
  gap: 13px;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 18px;
  color: var(--text);
  text-align: left;
  background: rgba(255,255,255,.025);
}

.alternative-meal-card img {
  width: 92px;
  height: 74px;
  object-fit: cover;
  border-radius: 13px;
}

.alternative-meal-card strong,
.alternative-meal-card small {
  display: block;
}

.alternative-meal-card small {
  margin-top: 6px;
  color: var(--muted);
}

.alternative-meal-card b {
  color: var(--lime);
  font-size: 12px;
}

.product-option-card {
  display: grid;
  grid-template-columns: 76px minmax(0,1fr) auto;
  gap: 13px;
  align-items: center;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.025);
}

.product-option-card.selected {
  border-color: rgba(185,255,22,.55);
  background: rgba(185,255,22,.055);
}

.product-option-card img {
  width: 76px;
  height: 76px;
  object-fit: cover;
  border-radius: 14px;
}

.product-option-copy strong,
.product-option-copy small,
.product-option-copy em {
  display: block;
}

.product-option-copy strong { margin-top: 7px; }
.product-option-copy small { margin-top: 5px; color: var(--muted); }
.product-option-copy p { margin: 8px 0 0; color: #c8d0db; font-size: 12px; line-height: 1.4; }
.product-option-copy em { margin-top: 7px; color: var(--cyan); font-size: 11px; font-style: normal; }

.budget-tag {
  display: inline-flex;
  border-radius: 999px;
  padding: 5px 8px;
  background: rgba(185,255,22,.1);
  color: var(--lime);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.segment-toggle { display: flex; gap: 8px; margin: 4px 0 10px; }
.segment-chip {
  flex: 1; border: 1px solid var(--line); background: rgba(255,255,255,.025); color: var(--muted);
  border-radius: 12px; padding: 9px; font-weight: 700; font-size: 13px; cursor: pointer;
}
.segment-chip.active { border-color: var(--lime); color: var(--lime); background: rgba(185,255,22,.08); }

.select-product-button {
  color: #101500;
  background: var(--lime);
  border-color: transparent;
}

.refresh-options-button { margin-top: 14px; }
.product-disclaimer {
  margin-top: 13px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

@media (max-width: 520px) {
  .panel-heading { align-items: flex-start; }
  .panel-actions { max-width: 145px; }
  .bright-mini-button, .ghost-mini-button { padding: 8px 10px; font-size: 11px; }

  .meal-card {
    grid-template-columns: 68px minmax(0,1fr);
    gap: 10px;
  }
  .meal-card:has(.task-check){grid-template-columns:auto 58px minmax(0,1fr)}.meal-card:has(.task-check) .meal-image{width:58px;height:58px}.meal-card:has(.task-check) .item-actions{grid-column:1/-1}
  .meal-image { width: 68px; height: 62px; }
  .item-actions {
    grid-column: 1 / -1;
    grid-template-columns: 1fr 1fr;
  }

  .shopping-card {
    grid-template-columns: auto 56px minmax(0,1fr);
    gap: 9px;
  }
  .product-image { width: 56px; height: 56px; }
  .shopping-actions {
    grid-column: 1 / -1;
    grid-template-columns: 1fr auto;
  }

  .meal-preview-item {
    grid-template-columns: 42px minmax(0,1fr);
  }
  .meal-preview-item:has(.task-check){grid-template-columns:auto 42px minmax(0,1fr) auto}.meal-preview-item:has(.task-check) .preview-arrow{display:none}.meal-preview-item > b {font-size:12px}.meal-preview-item:has(.task-check)>b{grid-column:4}
  .preview-thumb { width: 42px; height: 42px; }

  .alternative-meal-card {
    grid-template-columns: 72px minmax(0,1fr);
  }
  .alternative-meal-card img { width: 72px; height: 64px; }
  .alternative-meal-card b { grid-column: 2; }

  .product-option-card {
    grid-template-columns: 62px minmax(0,1fr);
  }
  .product-option-card img { width: 62px; height: 62px; }
  .select-product-button { grid-column: 1 / -1; width: 100%; }
}

/* ===== FitPilot AI v4: real food and catalogue photography ===== */
.product-option-card img.catalog-package,
.product-image.selected-package-image {
  object-fit: contain;
  background: #ffffff;
  padding: 4px;
}

.meal-image,
.preview-thumb,
.alternative-meal-card img,
.product-image {
  image-rendering: auto;
}

.photo-source-note {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}


/* v6: activities, real exercise photos and store catalogue */
select {
  width: 100%;
  color: var(--text);
  border: 1px solid var(--line);
  background: #111720;
  border-radius: 16px;
  padding: 14px 15px;
  outline: none;
}
.activity-editor {
  border: 1px solid rgba(255, 157, 38, .23);
  background: rgba(255, 157, 38, .035);
  border-radius: 20px;
  padding: 18px;
  margin: 6px 0 18px;
}
.activity-heading h3 { margin: 5px 0 16px; font-size: 20px; }
.activity-note { color: var(--muted); font-size: 12px; line-height: 1.5; margin: -2px 0 4px; }
.catalog-filters { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin: 0 0 18px; }
.catalog-filters label { margin:0; }
.product-badges { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:7px; }
.store-tag { color:#06131a; background:var(--cyan); border-radius:999px; padding:5px 9px; font-size:10px; font-weight:900; text-transform:uppercase; }
.nutrition-line, .portion-line { margin-top:7px; font-size:12px; color:#c4ccd8; }
.portion-line { color:var(--lime); font-weight:700; }
.source-link { display:inline-block; margin-top:9px; color:var(--cyan); font-size:12px; text-decoration:none; }
.catalog-empty { border:1px dashed var(--line); border-radius:18px; padding:22px; color:var(--muted); line-height:1.5; }
.catalog-empty strong { color:var(--text); display:block; margin-bottom:7px; }
.catalog-empty p { margin:0; }
.exercise-gallery { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.exercise-figure.real-photo img { width:100%; height:auto; min-height:220px; max-height:480px; object-fit:contain; background:#090d12; }
.exercise-figure.real-photo figcaption { display:flex; flex-direction:column; gap:4px; }
.exercise-figure.real-photo figcaption small { color:var(--muted); font-size:11px; }
@media (max-width: 520px) {
  .catalog-filters { grid-template-columns:1fr; }
  .activity-editor { padding:14px; }
  .exercise-figure.real-photo img { min-height:180px; }
}


/* v7: точные ингредиенты, рецепты и справочник товаров */
.menu-total-card {
  display: grid;
  gap: 5px;
  padding: 16px 18px;
  border: 1px solid rgba(185, 255, 22, 0.24);
  border-radius: 18px;
  background: rgba(185, 255, 22, 0.06);
}
.menu-total-card span,
.menu-total-card small { color: var(--muted); }
.menu-total-card strong { font-size: 26px; color: var(--lime); }

.meal-ingredient-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.meal-ingredient-preview span {
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.025);
  font-size: 11px;
}
.recipe-button {
  color: #071100 !important;
  background: var(--lime) !important;
  border-color: transparent !important;
}
.recipe-detail-card { width: min(94vw, 820px); }
.recipe-hero-image {
  width: 100%;
  max-height: 330px;
  object-fit: cover;
  border-radius: 22px;
  border: 1px solid var(--line);
}
.recipe-macros {
  margin: 14px 0 22px;
  padding: 13px 16px;
  border-radius: 15px;
  background: rgba(185, 255, 22, 0.08);
  color: var(--lime);
  font-weight: 800;
}
.recipe-section {
  border-top: 1px solid var(--line);
  padding-top: 20px;
  margin-top: 20px;
}
.recipe-ingredient-list {
  list-style: none;
  padding: 0;
  margin: 14px 0 0;
  display: grid;
  gap: 10px;
}
.recipe-ingredient-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.025);
}
.recipe-ingredient-list strong,
.recipe-ingredient-list small { display: block; }
.recipe-ingredient-list small { color: var(--muted); margin-top: 4px; }
.recipe-ingredient-list b { color: var(--text); }
.recipe-ingredient-list em { color: var(--lime); font-style: normal; font-size: 12px; }
.recipe-step-list {
  margin: 14px 0 0;
  padding-left: 24px;
  display: grid;
  gap: 12px;
  color: var(--text);
  line-height: 1.55;
}
.catalog-image-wrap { position: relative; }
.photo-kind-badge {
  position: absolute;
  left: 6px;
  bottom: 6px;
  padding: 4px 6px;
  border-radius: 999px;
  background: rgba(7, 9, 12, 0.86);
  color: var(--muted);
  font-size: 9px;
  border: 1px solid var(--line);
}
@media (max-width: 620px) {
  .recipe-ingredient-list li { grid-template-columns: 1fr auto; }
  .recipe-ingredient-list em { grid-column: 1 / -1; }
}

/* v8: profile calculation, clickable recipes and exercise library */
.clickable-preview {
  width: 100%;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.preview-arrow { color: var(--muted); font-size: 24px; }

.profile-settings-card { width: min(94vw, 760px); max-height: 90vh; overflow-y: auto; }
.profile-settings-card select,
.exercise-library-controls select { width: 100%; color: var(--text); border: 1px solid var(--line); background: rgba(255,255,255,.035); border-radius: 16px; padding: 14px 15px; }
.settings-label { display: block; color: var(--muted); font-size: 13px; margin-bottom: 10px; }
.goal-mode-section { margin: 6px 0 18px; }
.goal-mode-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.goal-mode-card {
  position: relative; min-height: 115px; margin: 0; padding: 15px; border: 1px solid var(--line);
  border-radius: 18px; background: rgba(255,255,255,.025); cursor: pointer; align-content: start;
}
.goal-mode-card input { width: 18px; height: 18px; margin: 0 0 10px; }
.goal-mode-card strong, .goal-mode-card small { display: block; }
.goal-mode-card small { color: var(--muted); line-height: 1.4; margin-top: 6px; }
.goal-mode-card:has(input:checked) { border-color: var(--lime); background: rgba(185,255,22,.08); box-shadow: 0 0 0 3px rgba(185,255,22,.06); }
.calculated-targets { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 16px 0; }
.calculated-targets div { border: 1px solid var(--line); border-radius: 16px; padding: 13px; background: rgba(255,255,255,.025); }
.calculated-targets span { display: block; color: var(--muted); font-size: 12px; margin-bottom: 6px; }
.calculated-targets strong { color: var(--text); }
.calculated-targets b { color: var(--lime); font-size: 20px; }
.calculation-note, .library-note { color: var(--muted); line-height: 1.5; font-size: 13px; }
.history-toggle { border: 1px solid var(--line); border-radius: 16px; padding: 14px; }

.exercise-library-controls { display: grid; grid-template-columns: 1fr 220px; gap: 10px; margin: 16px 0; }
.exercise-library-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; max-height: 560px; overflow-y: auto; padding-right: 4px; }
.library-exercise-card {
  border: 1px solid var(--line); background: rgba(255,255,255,.025); color: var(--text); border-radius: 17px;
  padding: 10px; display: grid; grid-template-columns: 58px minmax(0,1fr) auto; gap: 12px; align-items: center; text-align: left;
}
.library-exercise-card img { width: 58px; height: 58px; object-fit: cover; border-radius: 13px; background: var(--bg-soft); }
.library-exercise-card strong, .library-exercise-card small { display: block; }
.library-exercise-card small { color: var(--muted); margin-top: 5px; line-height: 1.35; }
.library-exercise-card b { color: var(--lime); font-size: 24px; }
.photo-not-ready {
  width: 58px; height: 58px; border-radius: 13px; background: var(--bg-soft);
  display: flex; align-items: center; justify-content: center; text-align: center;
  color: var(--muted); font-size: 9px; line-height: 1.2; padding: 4px;
}
.empty-state.photo-not-ready { width: auto; height: auto; font-size: 14px; padding: 24px; }
.exercise-history-note { margin: 12px 0 18px; padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(166,108,255,.3); background: rgba(166,108,255,.07); color: var(--muted); line-height: 1.45; }
.exercise-history-note.history-origin { border-color: rgba(23,199,255,.3); background: rgba(23,199,255,.06); }
.exercise-figure img { background: #0b0f14; }

@media (max-width: 700px) {
  .goal-mode-grid, .calculated-targets { grid-template-columns: 1fr; }
  .exercise-library-controls { grid-template-columns: 1fr; }
  .exercise-library-list { grid-template-columns: 1fr; max-height: 480px; }
}

/* v9 weekly planning and energy estimates */
.week-plan-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.week-plan-day{min-height:92px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.025);color:var(--text);padding:10px 6px;display:grid;gap:3px;place-items:center}.week-plan-day span{color:var(--muted);font-size:11px}.week-plan-day strong{font-size:20px}.week-plan-day small{font-size:10px;line-height:1.2;text-align:center;color:var(--muted)}.week-plan-day i{font-size:9px;color:var(--cyan);font-style:normal}.week-plan-day.planned{border-color:rgba(185,255,22,.25)}.week-plan-day.active{background:var(--lime);color:#101500;border-color:transparent}.week-plan-day.active span,.week-plan-day.active small,.week-plan-day.active i{color:#101500}.workout-head-actions{display:flex;gap:8px;align-items:center}.workout-summary-card{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:16px;border:1px solid rgba(23,199,255,.25);background:rgba(23,199,255,.05);border-radius:17px;margin-bottom:10px}.workout-summary-card span,.workout-summary-card small{display:block;color:var(--muted)}.workout-summary-card strong{display:block;margin:4px 0}.workout-summary-card b{color:var(--cyan)}.preview-energy{padding:9px 11px;border-radius:12px;background:rgba(23,199,255,.07);color:var(--cyan);font-size:11px;margin-bottom:8px}.training-days-section{margin:18px 0}.training-day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-top:9px}.training-day-grid label{margin:0}.training-day-grid input{position:absolute;opacity:0;pointer-events:none}.training-day-grid span{display:grid;place-items:center;padding:11px 5px;border:1px solid var(--line);border-radius:12px;color:var(--muted);background:rgba(255,255,255,.025)}.training-day-grid input:checked+span{background:var(--lime);color:#101500;border-color:transparent;font-weight:800}.duration-field{margin-top:14px}.exercise-figure img[src*="missing"]{object-fit:contain;background:#0b0f14}
@media(max-width:620px){.week-plan-grid{grid-template-columns:repeat(4,1fr)}.training-day-grid{grid-template-columns:repeat(4,1fr)}.workout-summary-card{align-items:flex-start;flex-direction:column}.weekly-planner-panel .panel-heading{align-items:flex-start;flex-direction:column}.weekly-planner-panel .bright-mini-button{width:100%}}


/* v10 */
.catalog-filters.single-filter {
  grid-template-columns: minmax(180px, 320px);
}
.budget-section-title {
  grid-column: 1 / -1;
  margin: 16px 0 4px;
  color: var(--lime);
  font-size: 20px;
}
.product-options {
  display: grid;
}
.product-option-card + .budget-section-title {
  margin-top: 26px;
}

/* v11 */
.exercise-library-controls { grid-template-columns: 1fr; }
.log-link { display:block; text-align:center; text-decoration:none; margin:14px 0 8px; }
.product-option-card .catalog-package { object-fit:contain; background:#fff; }
.product-option-card { break-inside:avoid; }
.recipe-count-badge { color:var(--lime); }
code { color:var(--cyan); }
.access-dialog{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;padding:0;background:#07090c;color:var(--text)}.access-dialog::backdrop{background:#07090c}.access-card{min-height:100dvh;width:min(100%,520px);margin:auto;padding:clamp(28px,8vh,80px) 22px;display:flex;flex-direction:column;justify-content:center;gap:14px}.access-card h1{font-size:clamp(34px,10vw,56px);line-height:1;margin:5px 0}.access-card p{color:var(--muted);line-height:1.55}.access-card label{display:grid;gap:8px;color:var(--muted);font-size:13px}.access-card input{font-size:17px}.access-brand{font-size:25px;font-weight:950}.access-brand span{color:var(--lime)}.access-error{color:#ff6d7e!important;min-height:20px}.access-device-id{color:var(--muted);text-align:center}.access-locked body{overflow:hidden}
.admin-body{min-height:100vh;background:#07090c;color:var(--text)}.admin-shell{width:min(1050px,calc(100% - 28px));margin:auto;padding:35px 0 80px}.admin-header,.admin-code-card,.panel-heading,.admin-device{display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-header{margin-bottom:30px}.admin-header h1{font-size:clamp(36px,6vw,62px);margin:8px 0}.admin-header p,.admin-code-card p{color:var(--muted)}.admin-login,.admin-code-card{border:1px solid var(--line);border-radius:24px;background:var(--panel);padding:22px;margin:20px 0}.admin-login{display:grid;grid-template-columns:1fr auto;gap:12px}.admin-login label{display:grid;gap:8px;color:var(--muted)}.admin-code-card{flex-wrap:wrap}.admin-code-output{width:100%;border:1px dashed var(--lime);border-radius:16px;padding:18px;text-align:center;color:var(--lime);font-size:clamp(20px,5vw,34px);font-weight:900;letter-spacing:2px;min-height:70px}.admin-device-list{display:grid;gap:10px}.admin-device{border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:16px}.admin-device>div{display:grid;gap:6px}.admin-device>div:last-child{text-align:right;justify-items:end}.admin-device small{display:block;color:var(--muted)}.device-status{padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800}.device-status.pending{color:#ffad45;background:#ffad451c}.device-status.approved{color:var(--lime);background:#b9ff161c}.device-status.revoked{color:#ff6677;background:#ff66771c}.danger-button{border:1px solid #ff667755;background:transparent;color:#ff8090;border-radius:10px;padding:8px 12px;cursor:pointer}
@media(max-width:650px){.admin-header,.admin-code-card,.panel-heading,.admin-device{align-items:stretch;flex-direction:column}.admin-login{grid-template-columns:1fr}.admin-device>div:last-child{text-align:left;justify-items:start}}
.ai-card[role="button"]{cursor:pointer}.ai-card[role="button"]:hover{transform:translateY(-1px)}
.ai-card{position:relative}.coach-notification{position:absolute;right:18px;top:16px;width:13px;height:13px;border-radius:50%;background:#ff334f;border:2px solid #131820;box-shadow:0 0 0 3px rgba(255,51,79,.18);display:none}.ai-card.coach-unread .coach-notification,.ai-card.coach-pending .coach-notification{display:block}.ai-card.coach-pending .coach-notification{animation:coach-notification-pulse 1s ease-in-out infinite}.ai-card.coach-unread .coach-notification{animation:coach-notification-blink 1.4s ease-in-out infinite}@keyframes coach-notification-pulse{0%,100%{transform:scale(.8);opacity:.55}50%{transform:scale(1.25);opacity:1;box-shadow:0 0 0 7px rgba(255,51,79,.16)}}@keyframes coach-notification-blink{0%,55%,100%{opacity:1}70%{opacity:.25}}
.health-field{grid-column:1/-1}.health-field textarea{min-height:96px}
.coach-dialog{width:min(760px,calc(100% - 24px));border:0;padding:0;background:transparent}.coach-card{background:#131820;border:1px solid #285268;border-radius:24px;padding:22px;color:#fff}.coach-messages{height:min(55vh,520px);overflow:auto;display:flex;flex-direction:column;gap:12px;padding:12px 2px}.coach-message{max-width:85%;padding:12px 14px;border-radius:16px;background:#202733;white-space:pre-wrap}.coach-message.user{align-self:flex-end;background:#123b49}.coach-message.error{border:1px solid #ff6d6d}.coach-form{display:grid;grid-template-columns:1fr auto;gap:10px}.coach-form textarea{resize:vertical}.coach-safety{color:#98a7c3;font-size:13px}
.coach-plan-status{padding:9px 12px;border-radius:12px;background:#202733;color:var(--muted);font-size:13px}.coach-plan-status.applied{color:var(--lime);border:1px solid rgba(185,255,22,.3);background:rgba(185,255,22,.07)}.coach-plan-status.updating{color:var(--cyan)}.coach-plan-status.error{color:var(--danger)}
.task-check{display:inline-grid;place-items:center;width:24px;height:24px;flex:0 0 auto;accent-color:#baff20}.task-done{opacity:.58;text-decoration-color:#baff20}.metric-card.steps-editable{cursor:pointer}.metric-card.steps-editable:hover{border-color:#ff9f43}.calendar-day.completed-day{box-shadow:inset 0 0 0 2px #baff20}.calendar-day.completed-day::after{content:'✓';color:#baff20;font-weight:900;position:absolute;right:5px;top:3px}

.admin-device-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

@media (max-width: 650px) {
  .admin-device-actions {
    justify-content: flex-start;
  }
}

/* Не позволяет iPhone увеличивать страницу при нажатии на поля формы. */
@media (max-width: 900px) {
  input,
  select,
  textarea,
  button {
    font-size: 16px;
  }
}

html {
  -webkit-text-size-adjust: 100%;
}


/* FitPilot required onboarding styles */

.required-profile-error {
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 110, 110, 0.35);
  border-radius: 14px;
  background: rgba(255, 90, 90, 0.12);
  color: #ffbaba;
  font-size: 15px;
  line-height: 1.4;
}

dialog[data-required="true"]::backdrop {
  background: rgba(2, 6, 12, 0.9);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}


/* FitPilot past workout tip styles */

.past-workout-tip-dialog {
  max-width: min(92vw, 560px);
}

.past-workout-tip-card {
  width: min(92vw, 540px);
}

.past-workout-tip-card > p {
  margin: 8px 0 18px;
  line-height: 1.55;
}

.past-workout-example {
  display: grid;
  gap: 7px;
  margin: 0 0 20px;
  padding: 14px 16px;
  border: 1px solid rgba(95, 220, 255, 0.18);
  border-radius: 16px;
  background: rgba(95, 220, 255, 0.07);
}

.past-workout-example strong {
  font-size: 14px;
}

.past-workout-example span {
  opacity: 0.78;
  font-size: 14px;
  line-height: 1.45;
}

.past-workout-tip-card .panel-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.past-workout-tip-card .panel-actions button {
  flex: 1 1 190px;
}

@media (max-width: 600px) {
  .past-workout-tip-card .panel-actions {
    flex-direction: column;
  }

  .past-workout-tip-card .panel-actions button {
    width: 100%;
    flex: none;
  }
}
