/* A calmer, more legible training workspace. Motion follows Emil Kowalski's
   interaction guidance: brief, intentional feedback and no layout movement. */
:root {
  color-scheme: dark;
  --bg: #101211;
  --bg-soft: #141715;
  --panel: #191d1a;
  --panel-raised: #202521;
  --panel-deep: #151815;
  --line: rgba(232, 238, 226, .075);
  --line-strong: rgba(232, 238, 226, .14);
  --text: #f1f2ed;
  --muted: #a4aaa0;
  --subtle: #747c72;
  --lime: #d5f47a;
  --lime-strong: #c4e96b;
  --lime-soft: rgba(213, 244, 122, .11);
  --blue: #a0b4f7;
  --orange: #f0a085;
  --purple: #c7acef;
  --success: #98d6a8;
  --danger: #ed8989;
  --radius-sm: 10px;
  --radius: 16px;
  --radius-lg: 21px;
  --shadow: 0 18px 55px rgba(0, 0, 0, .22);
  --motion-fast: 120ms;
  --motion-ui: 160ms;
  --motion-ease: cubic-bezier(.16, 1, .3, 1);
}

html { background: var(--bg); }
body { min-height: 100dvh; background: var(--bg); overscroll-behavior-y: none; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { touch-action: manipulation; }

.app-shell { min-height: 100dvh; grid-template-columns: 248px minmax(0, 1fr); }
.sidebar {
  height: 100dvh;
  padding: 24px 16px 16px;
  background: #141714;
  border-right-color: rgba(232, 238, 226, .065);
}
.brand { gap: 11px; padding: 0 10px 31px; }
.brand-symbol { width: 38px; height: 38px; border-radius: 12px; color: #202519; box-shadow: none; }
.brand-symbol span { color: #536533; }
.brand-caption { margin-top: 4px; color: #899087; font-size: 9px; letter-spacing: .07em; text-transform: none; }
.nav-label { padding: 10px 11px 9px; color: #7f887e; font-size: 9px; letter-spacing: .12em; }
.nav-list { gap: 3px; }
.nav-item {
  min-height: 44px;
  gap: 12px;
  padding: 0 12px;
  border-radius: 10px;
  color: #a5aaa1;
  font-size: 12px;
  font-weight: 620;
  transition: color var(--motion-ui) var(--motion-ease), background-color var(--motion-ui) var(--motion-ease);
}
.nav-icon { width: 20px; height: 20px; color: #878e83; font-size: 15px; }
.nav-item.active { color: #e3f4bb; background: rgba(213, 244, 122, .085); box-shadow: inset 2px 0 0 var(--lime); }
.nav-item.active .nav-icon { color: var(--lime); }
.sidebar-spacer { min-height: 26px; }
.sidebar-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0 3px 15px;
  padding: 13px 12px;
  color: #9ca396;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255, 255, 255, .018);
}
.sidebar-note-mark { color: var(--lime); font-size: 16px; line-height: 1.1; }
.sidebar-note p { margin: 0; font-size: 10px; line-height: 1.55; }
.sidebar-note strong { color: #d4d9cf; font-weight: 650; }
.sidebar-session {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin: 0 0 15px;
  padding: 12px 11px;
  text-align: left;
  color: var(--text);
  background: rgba(213, 244, 122, .07);
  border: 1px solid rgba(213, 244, 122, .2);
  border-radius: 12px;
  cursor: pointer;
}
.sidebar-session > span:nth-child(2) { display: grid; gap: 5px; min-width: 0; }
.sidebar-session small { color: #b5cb82; font-size: 8px; letter-spacing: .1em; font-weight: 800; }
.sidebar-session strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-session-pulse { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: var(--lime); }
.sidebar-session-arrow { margin-left: auto; color: var(--lime); }
.profile-row {
  width: 100%;
  min-height: 58px;
  margin-top: 10px;
  padding: 11px 8px 2px;
  text-align: left;
  color: var(--text);
  background: transparent;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  cursor: pointer;
}
.profile-row.active { color: var(--lime); }
.profile-copy { display: grid; gap: 4px; min-width: 0; text-align: left; }
.profile-name { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.profile-caption { margin: 0; color: var(--muted); font-size: 9px; }
.profile-settings-icon { margin-left: auto; color: #858d82; font-size: 14px; }
.avatar {
  width: 35px;
  height: 35px;
  border-color: rgba(213, 244, 122, .2);
  background: #293124;
  color: #d5f47a;
  font-size: 12px;
}

.main-area { min-width: 0; }
.topbar {
  height: 68px;
  padding: 0 clamp(22px, 4.5vw, 68px);
  background: rgba(16, 18, 17, .93);
  border-bottom-color: var(--line);
  backdrop-filter: blur(14px);
}
.topbar-left { gap: 12px; }
.topbar-context { display: grid; gap: 4px; }
.topbar-kicker { color: #81897f; font-size: 8px; letter-spacing: .12em; font-weight: 750; }
.topbar-kicker span { padding: 0 5px; color: #697166; }
.topbar-title { color: #e3e7df; font-size: 12px; font-weight: 650; }
.topbar-right { gap: 12px; }
.today-chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 0 8px 12px; color: #a8afa3; border: 0; font-size: 10px; }
.today-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--lime); }
.coach-topbar-button { display: none; }
.icon-button.coach-topbar-button {
  display: none;
  width: auto;
  min-height: 36px;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  color: #d9ebb0;
  background: rgba(213, 244, 122, .07);
  border: 1px solid rgba(213, 244, 122, .16);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 680;
}
.coach-topbar-button span:first-child { color: var(--lime); font-size: 13px; }
.topbar-account-button { display: none; cursor: pointer; }
.mobile-only { display: none; }
.page-content {
  width: min(1320px, 100%);
  padding: 37px clamp(22px, 4.5vw, 68px) 86px;
  animation: redesign-appear 150ms var(--motion-ease) both;
}
@keyframes redesign-appear { from { opacity: .72; } to { opacity: 1; } }

h1, h2, h3 { color: #f0f2ed; }
h1 { font-size: clamp(29px, 3.2vw, 40px); line-height: 1.06; letter-spacing: -.045em; font-weight: 720; }
.page-heading { margin-bottom: 26px; }
.page-heading .eyebrow { margin-bottom: 11px; font-size: 9px; letter-spacing: .12em; }
.heading-copy { max-width: 610px; margin-top: 11px; color: #a0a69b; font-size: 13px; line-height: 1.65; }
.heading-actions { gap: 8px; }
.btn {
  min-height: 42px;
  padding: 0 16px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 680;
  transition: color var(--motion-fast) var(--motion-ease), background-color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), box-shadow var(--motion-fast) var(--motion-ease), transform 90ms var(--motion-ease);
}
.btn-small { min-height: 35px; padding: 0 11px; border-radius: 9px; font-size: 10px; }
.btn-primary { color: #202619; background: var(--lime); box-shadow: none; }
.btn-secondary { color: #e1e5dc; background: #252a25; border-color: var(--line-strong); }
.btn-ghost { color: #b0b6ab; border-color: var(--line); background: transparent; }
.btn-quiet { display: inline-flex; min-height: 42px; align-items: center; gap: 9px; padding: 0 13px; color: #c0c7bc; border: 0; border-radius: 9px; background: transparent; font-size: 11px; font-weight: 620; cursor: pointer; }
.btn:active, .btn-quiet:active, .icon-button:active, .nav-item:active, .bottom-nav-item:active { transform: scale(.975); }
.btn:disabled { box-shadow: none; }
.card {
  background: #191d1a;
  border-color: var(--line);
  border-radius: var(--radius);
  box-shadow: none;
}
.card-pad { padding: 21px; }
.card-title { font-size: 14px; font-weight: 670; }
.card-subtitle { color: #9ba297; font-size: 11px; line-height: 1.58; }
.card-kicker { color: #92998f; font-size: 9px; letter-spacing: .1em; }
.eyebrow { color: var(--lime); letter-spacing: .12em; }
.text-button { color: #c7d9a0; font-size: 10px; font-weight: 680; }
.section-heading { margin: 32px 0 13px; }
.section-heading h2 { font-size: 21px; font-weight: 690; }
.section-heading p { margin-top: 6px; font-size: 11px; }

/* Overview */
.overview-page { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; min-width: 0; width: 100%; }
.overview-hero, .overview-metrics, .overview-tools, .overview-section { min-width: 0; max-width: 100%; }
.overview-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 228px;
  align-items: center;
  gap: 32px;
  min-height: 292px;
  padding: clamp(25px, 3.3vw, 42px);
  background: #1b201a;
  border: 1px solid rgba(213, 244, 122, .16);
  border-radius: 20px;
}
.overview-hero-main { max-width: 700px; }
.overview-eyebrow { display: flex; align-items: center; gap: 8px; margin-bottom: 18px; color: #c4dc91; font-size: 9px; letter-spacing: .14em; font-weight: 800; }
.overview-live-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--lime); }
.overview-hero h1 { max-width: 720px; margin: 0; font-size: clamp(36px, 4.3vw, 54px); line-height: 1.02; letter-spacing: -.055em; }
.overview-lede { max-width: 620px; margin: 15px 0 0; color: #afb7aa; font-size: 13px; line-height: 1.7; }
.overview-lede strong { color: #e7ebdf; font-weight: 650; }
.overview-actions { display: flex; align-items: center; gap: 11px; flex-wrap: wrap; margin-top: 23px; }
.overview-actions .btn-primary { min-height: 46px; padding-inline: 18px; }
.week-focus { padding: 20px; background: rgba(12, 15, 12, .32); border: 1px solid rgba(232, 238, 226, .09); border-radius: 15px; }
.week-focus-head, .week-focus-foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.week-focus-head { color: #9ca596; font-size: 8px; letter-spacing: .11em; font-weight: 750; }
.week-focus-icon { display: grid; width: 26px; height: 26px; place-items: center; color: var(--lime); background: rgba(213, 244, 122, .09); border-radius: 8px; font-size: 13px; }
.week-focus-count { margin-top: 19px; color: #f0f2ed; font-size: 47px; line-height: 1; letter-spacing: -.06em; font-weight: 690; font-variant-numeric: tabular-nums; }
.week-focus-count span { color: #8c9686; font-size: 20px; letter-spacing: -.04em; font-weight: 500; }
.week-focus-caption { margin-top: 7px; color: #aab1a4; font-size: 10px; }
.week-focus-track { height: 4px; margin-top: 18px; overflow: hidden; background: rgba(255,255,255,.09); border-radius: 8px; }
.week-focus-track span { display: block; height: 100%; background: var(--lime); border-radius: inherit; }
.week-focus-foot { margin-top: 12px; color: #adb5a6; font-size: 9px; }
.week-focus-foot span:first-child { color: #e2c885; }
.overview-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; margin-top: 14px; }
.overview-metrics .stat-card { min-height: 132px; padding: 16px; background: #191d1a; border-radius: 15px; }
.stat-top { color: #aab0a6; font-size: 10px; font-weight: 620; }
.stat-icon { width: 29px; height: 29px; border: 0; border-radius: 9px; background: rgba(255,255,255,.045); font-size: 12px; }
.stat-icon.lime { color: var(--lime); }
.stat-icon.orange { color: var(--orange); }
.stat-icon.blue { color: var(--blue); }
.stat-icon.purple { color: var(--purple); }
.stat-value { margin-top: 17px; color: #f0f2ed; font-size: 26px; line-height: 1; letter-spacing: -.035em; font-weight: 670; }
.stat-caption { margin-top: 8px; color: #879084; font-size: 10px; }
.overview-section { margin-top: 34px; }
.overview-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.overview-section-heading h2 { margin: 7px 0 0; font-size: 22px; line-height: 1.15; letter-spacing: -.035em; font-weight: 680; }
.overview-section-heading p { margin: 6px 0 0; color: #949c91; font-size: 11px; }
.section-index { color: #a9c57a; font-size: 8px; letter-spacing: .12em; font-weight: 800; }
.overview-section-heading .text-button { display: inline-flex; min-height: 35px; align-items: center; gap: 8px; padding: 0 2px 0 10px; white-space: nowrap; }
.schedule-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(125px, 1fr)); gap: 9px; }
.schedule-card { min-height: 116px; padding: 13px; background: #191d1a; border-color: var(--line); border-radius: 13px; transition: background-color var(--motion-ui) var(--motion-ease), border-color var(--motion-ui) var(--motion-ease); }
.schedule-card.today { background: rgba(213, 244, 122, .065); border-color: rgba(213, 244, 122, .23); }
.schedule-card.done .schedule-day::after { color: var(--lime); }
.schedule-day { color: #c7d4b1; font-size: 9px; font-weight: 720; }
.schedule-name { margin-top: 11px; color: #e3e7df; font-size: 11px; line-height: 1.3; font-weight: 650; }
.schedule-focus { margin-top: 6px; color: #91998e; font-size: 9px; line-height: 1.4; }
.schedule-type { top: 11px; right: 11px; color: #b9c48d; font-size: 11px; }
.overview-tools { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 11px; margin-top: 25px; }
.readiness-card { min-height: 110px; gap: 14px; padding: 18px; background: #191d1a; border: 1px solid var(--line); border-radius: 15px; }
.readiness-icon { width: 38px; height: 38px; color: var(--lime); background: rgba(213, 244, 122, .08); border: 0; border-radius: 11px; font-size: 17px; }
.readiness-title { color: #e9ece5; font-size: 13px; font-weight: 660; }
.readiness-caption { margin-top: 5px; color: #99a094; font-size: 10px; line-height: 1.5; }
.readiness-card .btn { flex: 0 0 auto; }
.insight-card { min-height: 110px; padding: 17px 19px; background: #1b201a; border: 1px solid rgba(213, 244, 122, .12); border-radius: 15px; }
.insight-label { color: #b8d485; font-size: 8px; letter-spacing: .12em; font-weight: 800; }
.insight-text { margin: 9px 0 8px; color: #e2e7dc; font-size: 11px; line-height: 1.55; }
.insight-foot { color: #8b9487; font-size: 9px; }
.insight-open { padding: 0; color: #cde49b; background: none; border: 0; font-size: 9px; font-weight: 700; cursor: pointer; }
.overview-recent { margin-top: 34px; }
.overview-recent .history-list { gap: 7px; }
.overview-recent .history-row { padding: 12px 14px; background: #191d1a; border-radius: 12px; }

/* Training, progress, history and plan pages */
.plan-list { gap: 9px; }
.plan-day-card { grid-template-columns: 44px minmax(0,1fr) auto; gap: 14px; padding: 16px; background: #191d1a; border-radius: 14px; transition: border-color var(--motion-ui) var(--motion-ease), background-color var(--motion-ui) var(--motion-ease); }
.day-token { width: 42px; height: 42px; background: #262d23; color: #d3e6a4; border: 1px solid rgba(213,244,122,.13); border-radius: 11px; }
.plan-day-title { color: #e9ece5; font-size: 13px; font-weight: 650; }
.plan-day-focus { margin-top: 6px; color: #a5aca1; font-size: 11px; }
.plan-day-meta { margin-top: 8px; color: #8c9588; font-size: 9px; }
.plan-day-actions { gap: 7px; }
.page-heading + .grid, .page-heading + .plan-list, .page-heading + .stat-grid { margin-top: 0; }
.grid.grid-3 { gap: 12px; }
.grid.grid-2 { gap: 12px; }
.stat-grid { gap: 11px; }
.stat-grid > .stat-card { min-height: 126px; padding: 16px; background: #191d1a; border-radius: 14px; }
.history-list { gap: 8px; }
.history-row { min-height: 66px; padding: 13px 15px; background: #191d1a; border-radius: 13px; transition: border-color var(--motion-ui) var(--motion-ease), background-color var(--motion-ui) var(--motion-ease); }
.history-date { background: #252b24; color: #c8d6ad; }
.history-title { color: #e5e9e1; font-size: 12px; }
.history-meta, .history-duration { color: #969e93; font-size: 10px; }
.history-stats { color: #d1d8ca; font-size: 10px; }
.progress-chart, .chart-wrap, .chart-card { border-radius: 12px; }
.chart-empty { min-height: 175px; color: #a0a69c; font-size: 11px; }
.badge { border-color: var(--line-strong); color: #b8c0b3; background: rgba(255,255,255,.035); }
.badge-lime { color: #d5e8a7; border-color: rgba(213,244,122,.2); background: rgba(213,244,122,.08); }
.badge-blue { color: #c3cdf4; border-color: rgba(160,180,247,.18); background: rgba(160,180,247,.08); }
.empty-state { padding: 36px 18px; border: 1px dashed var(--line-strong); border-radius: 15px; background: rgba(255,255,255,.012); }
.empty-state h3 { font-size: 15px; }
.empty-state p { max-width: 430px; margin-inline: auto; color: #9ea59a; font-size: 11px; line-height: 1.6; }

/* Active session: make the next action and timer easy to find. */
.session-page { max-width: 1180px; margin-inline: auto; padding-top: 1px; }
.session-topline { margin-bottom: 15px; }
.session-kicker { color: #c5d89d; font-size: 9px; letter-spacing: .11em; font-weight: 760; }
.session-clock-card { margin-bottom: 13px; padding: 18px 20px; background: #191d1a; border: 1px solid var(--line); border-radius: 15px; }
.session-clock-label { color: #9ba496; font-size: 9px; letter-spacing: .08em; }
.session-clock-value { color: #f0f2ed; font-size: 25px; }
.session-clock-sub { color: #899286; font-size: 9px; }
.session-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 13px; }
.session-exercise-card, .timer-card, .session-list-card, .session-rest-panel, .session-summary-card { background: #191d1a; border-color: var(--line); border-radius: 16px; }
.session-exercise-card { padding: 22px; }
.session-exercise-title { font-size: clamp(24px, 2.5vw, 34px); }
.session-cue { max-width: 650px; color: #a0a79c; font-size: 12px; line-height: 1.6; }
.set-target { background: #20251f; border: 1px solid var(--line); border-radius: 12px; }
.target-value { color: #e8ede2; font-size: 23px; }
.set-input-grid { gap: 11px; }
.set-input-grid .field label { color: #a8b09f; font-size: 9px; letter-spacing: .04em; }
.input, .textarea, .select { min-height: 43px; color: #eff1ea; background: #141815; border-color: rgba(232, 238, 226, .12); border-radius: 9px; }
.input:focus, .textarea:focus, .select:focus { border-color: rgba(213,244,122,.55); box-shadow: 0 0 0 3px rgba(213,244,122,.075); }
.feel-chip { min-height: 37px; color: #bbc1b5; background: #202521; border-color: var(--line-strong); border-radius: 9px; transition: color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), background-color var(--motion-fast) var(--motion-ease); }
.feel-chip.selected { color: #e4f2c5; background: rgba(213,244,122,.1); border-color: rgba(213,244,122,.3); }
.last-load-note, .feel-helper { color: #969e92; font-size: 10px; line-height: 1.55; }
.live-session-snapshot { background: rgba(213,244,122,.045); border-color: rgba(213,244,122,.13); border-radius: 12px; }
.timer-card { padding: 18px; }
.timer-title { color: #e7ebe2; font-size: 13px; }
.timer-ring { width: 152px; height: 152px; margin-block: 16px; background: conic-gradient(var(--lime) var(--timer-progress), rgba(255,255,255,.08) 0); }
.timer-ring-inner { background: #191d1a; }
.timer-value { font-size: 32px; }
.timer-caption { color: #99a194; font-size: 9px; }
.timer-note { color: #969f93; font-size: 10px; line-height: 1.5; }
.timer-controls { flex-wrap: wrap; gap: 7px; }
.session-list-card { padding: 16px; }
.session-list-card .card-title { margin-bottom: 11px; }
.session-ex-list { gap: 5px; }
.session-ex-row { min-height: 39px; color: #aeb5a9; border-radius: 8px; }
.session-ex-row.active { color: #e0f1bb; background: rgba(213,244,122,.09); }
.mobile-session-sticky .btn { min-height: 48px; box-shadow: 0 8px 24px rgba(0,0,0,.34); }

/* Coach, forms and overlays */
.coach-launcher { min-height: 45px; color: #202619; background: var(--lime); border: 0; border-radius: 12px; box-shadow: 0 8px 22px rgba(0,0,0,.28); transition: background-color var(--motion-fast) var(--motion-ease), transform 90ms var(--motion-ease); }
.coach-launcher-orbit { color: #d7eeaa; background: #343f27; }
.coach-drawer { color: var(--text); background: #1b201c; border-color: var(--line-strong); border-radius: 17px; box-shadow: 0 24px 70px rgba(0,0,0,.46); backdrop-filter: blur(16px); transition: opacity 150ms var(--motion-ease), transform 150ms var(--motion-ease), visibility 150ms; }
.coach-header { border-bottom-color: var(--line); }
.coach-avatar { color: #29311f; background: var(--lime); border-radius: 11px; box-shadow: none; }
.coach-heading strong { color: #eff1eb; }
.coach-heading span { color: #a0a79c; }
.coach-context { color: #aab1a5; background: rgba(255,255,255,.018); }
.coach-message { padding: 11px 13px; color: #e4e9e0; background: #282e29; border-color: var(--line); border-radius: 13px 13px 13px 4px; font-size: 12px; line-height: 1.55; animation-duration: 140ms; }
.coach-message.from-user { color: #21271c; background: #d7efa0; border-color: rgba(213,244,122,.4); }
.coach-form { background: #151a16; border-color: var(--line-strong); }
.coach-form textarea { font-size: 16px; }
.coach-form button { color: #202619; background: var(--lime); }
.coach-footnote { color: #838b80; font-size: 9px; }
.modal { background: #1b201c; border-color: var(--line-strong); border-radius: 17px; box-shadow: 0 24px 75px rgba(0,0,0,.52); animation: modal-appear 140ms var(--motion-ease) both; }
@keyframes modal-appear { from { opacity: 0; } to { opacity: 1; } }
.modal-backdrop { background: rgba(5, 7, 5, .7); backdrop-filter: blur(4px); }
.toast { background: #252c26; border-color: var(--line-strong); border-radius: 11px; }
.login-shell { min-height: 100dvh; }
.login-panel { min-height: 100dvh; }

/* Hover changes only on devices with a real hover pointer. */
.nav-item:hover, .btn:hover, .icon-button:hover, .coach-launcher:hover,
.schedule-card:hover, .plan-day-card:hover, .history-row:hover { transform: none; }
.btn:focus-visible, .btn-quiet:focus-visible, .nav-item:focus-visible,
.bottom-nav-item:focus-visible, .profile-row:focus-visible, .schedule-card:focus-visible,
.coach-launcher:focus-visible, .sidebar-session:focus-visible { outline: 2px solid var(--lime); outline-offset: 3px; }
@media (hover: hover) and (pointer: fine) {
  .nav-item:hover { color: var(--text); background: rgba(255,255,255,.045); }
  .btn-primary:hover { background: #e1f8a6; box-shadow: 0 5px 14px rgba(213,244,122,.11); }
  .btn-secondary:hover { background: #2d342d; border-color: var(--line-strong); }
  .btn-ghost:hover, .btn-quiet:hover { color: var(--text); background: rgba(255,255,255,.035); }
  .icon-button:hover { color: var(--lime); border-color: rgba(213,244,122,.32); }
  .coach-launcher:hover { background: #e0f7a2; box-shadow: 0 9px 23px rgba(0,0,0,.3); }
  .schedule-card:hover, .plan-day-card:hover, .history-row:hover { border-color: var(--line-strong); background-color: #1e231e; }
}

@media (max-width: 1020px) {
  .app-shell { grid-template-columns: 218px minmax(0, 1fr); }
  .sidebar { padding-inline: 13px; }
  .page-content { padding-inline: 31px; }
  .overview-hero { grid-template-columns: minmax(0, 1fr) 205px; gap: 22px; }
  .overview-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .session-layout { grid-template-columns: minmax(0,1fr) 270px; }
}
@media (max-width: 820px) {
  .app-shell { display: block; }
  .sidebar { display: none; }
  .topbar { height: 60px; padding-inline: 19px; }
  .topbar-mark { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; background: var(--lime); color: #26301d; font-size: 10px; font-weight: 850; letter-spacing: -.1em; }
  .topbar-mark span { color: #647447; }
  .topbar-kicker { display: none; }
  .topbar-title { font-size: 11px; }
  .topbar-account-button { display: grid; }
  .today-chip { display: none; }
  .page-content { width: min(720px, 100%); padding: 25px 21px calc(116px + env(safe-area-inset-bottom)); }
  .bottom-nav { left: 12px; right: 12px; bottom: max(10px, env(safe-area-inset-bottom)); grid-template-columns: repeat(5, minmax(0,1fr)); padding: 6px; background: rgba(27, 32, 28, .97); border: 1px solid var(--line-strong); border-radius: 15px; box-shadow: 0 10px 35px rgba(0,0,0,.45); backdrop-filter: blur(16px); }
  .bottom-nav-item { min-height: 47px; gap: 4px; color: #a2a99d; border-radius: 10px; font-size: 9px; font-weight: 650; }
  .bottom-nav-item span:first-child { font-size: 15px; }
  .bottom-nav-item.active { color: var(--lime); background: rgba(213,244,122,.08); }
  .overview-hero { min-height: 0; grid-template-columns: minmax(0,1fr) 180px; padding: 25px; }
  .overview-hero h1 { font-size: clamp(34px, 6vw, 45px); }
  .overview-metrics { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .schedule-strip { display: flex; overflow-x: auto; gap: 8px; margin-right: -15px; padding: 1px 15px 8px 1px; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .schedule-strip::-webkit-scrollbar { display: none; }
  .schedule-card { flex: 0 0 145px; scroll-snap-align: start; }
  .session-layout { grid-template-columns: minmax(0,1fr); grid-template-areas: "timer" "main" "list"; }
  .session-side { display: contents; }
  .session-side .timer-card { grid-area: timer; }
  .session-side .session-list-card { grid-area: list; }
  .coach-widget { right: 14px; bottom: calc(86px + env(safe-area-inset-bottom)); }
  .coach-launcher { display: none; }
  .coach-topbar-button { display: inline-flex !important; }
  .coach-drawer { position: fixed; right: 10px; bottom: calc(77px + env(safe-area-inset-bottom)); width: min(410px, calc(100vw - 20px)); height: min(72dvh, 590px); border-radius: 16px; }
  .coach-active-session .coach-drawer { bottom: calc(142px + env(safe-area-inset-bottom)); height: min(61dvh, 520px); }
}
@media (max-width: 620px) {
  .topbar { padding-inline: 15px; }
  .topbar-right { gap: 8px; }
  .coach-topbar-button { min-height: 35px !important; padding-inline: 10px !important; font-size: 9px !important; }
  .topbar-account-button { width: 33px; height: 33px; }
  .page-content { padding: 20px 15px calc(115px + env(safe-area-inset-bottom)); }
  .page-heading { display: block; margin-bottom: 20px; }
  .page-heading h1 { max-width: 520px; font-size: 29px; }
  .heading-copy { font-size: 12px; }
  .heading-actions { margin-top: 14px; }
  .overview-hero { grid-template-columns: minmax(0,1fr); gap: 20px; padding: 23px 20px; border-radius: 17px; }
  .overview-eyebrow { margin-bottom: 15px; font-size: 8px; }
  .overview-hero h1 { max-width: 520px; font-size: clamp(34px, 9.4vw, 43px); }
  .overview-lede { margin-top: 12px; font-size: 12px; }
  .overview-actions { gap: 7px; margin-top: 18px; }
  .overview-actions .btn-primary { min-height: 45px; padding-inline: 13px; font-size: 10px; }
  .overview-actions .btn-quiet { min-height: 40px; padding-inline: 9px; font-size: 10px; }
  .week-focus { display: grid; grid-template-columns: auto minmax(0,1fr); column-gap: 13px; align-items: center; padding: 13px; }
  .week-focus-head { grid-column: 1 / -1; }
  .week-focus-icon { display: none; }
  .week-focus-count { grid-column: 1; grid-row: 2 / span 2; margin: 0; font-size: 34px; }
  .week-focus-count span { font-size: 15px; }
  .week-focus-caption { grid-column: 2; grid-row: 2; margin: 0; }
  .week-focus-track { grid-column: 2; grid-row: 3; margin-top: 8px; }
  .week-focus-foot { grid-column: 1 / -1; margin-top: 10px; }
  .overview-metrics { gap: 8px; margin-top: 9px; }
  .overview-metrics .stat-card, .stat-grid > .stat-card { min-height: 116px; padding: 13px; border-radius: 13px; }
  .stat-top { gap: 7px; font-size: 9px; }
  .stat-icon { width: 26px; height: 26px; flex: 0 0 auto; }
  .stat-value { margin-top: 13px; font-size: 22px; }
  .stat-caption { font-size: 9px; }
  .overview-section { margin-top: 28px; }
  .overview-section-heading { align-items: center; gap: 7px; margin-bottom: 12px; }
  .overview-section-heading h2 { font-size: 20px; }
  .overview-section-heading p { max-width: 280px; font-size: 10px; }
  .overview-section-heading .text-button { min-height: 34px; padding-inline: 5px; font-size: 9px; }
  .schedule-card { flex-basis: 129px; min-height: 106px; padding: 11px; }
  .schedule-focus { display: block; font-size: 8px; }
  .overview-tools { grid-template-columns: minmax(0,1fr); gap: 8px; margin-top: 20px; }
  .readiness-card { min-height: 91px; gap: 10px; padding: 13px; }
  .readiness-icon { width: 33px; height: 33px; flex: 0 0 auto; }
  .readiness-title { font-size: 12px; }
  .readiness-caption { font-size: 9px; }
  .readiness-card .btn { min-height: 35px; padding-inline: 9px; font-size: 9px; }
  .insight-card { min-height: 0; padding: 14px; }
  .overview-recent { margin-top: 28px; }
  .section-heading { margin-top: 24px; }
  .grid.grid-2, .grid.grid-3, .grid.grid-4 { grid-template-columns: minmax(0,1fr); }
  .plan-day-card { grid-template-columns: 37px minmax(0,1fr); gap: 10px; padding: 13px; }
  .day-token { width: 36px; height: 36px; }
  .plan-day-actions { grid-column: 2; justify-content: flex-start; }
  .session-page { padding-top: 6px; }
  .session-topline { align-items: flex-start; gap: 8px; }
  .session-top-actions { gap: 5px; }
  .session-topline .btn { min-height: 34px; padding-inline: 9px; font-size: 9px; }
  .session-clock-card { padding: 13px; }
  .session-clock-value { font-size: 21px; }
  .session-exercise-card { padding: 17px 14px; }
  .session-exercise-title { font-size: 24px; }
  .set-input-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .set-input-grid .field label { min-height: 22px; font-size: 8px; }
  .input, .textarea, .select { min-height: 46px; font-size: 16px; }
  .timer-card { padding: 15px; }
  .timer-ring { width: 132px; height: 132px; }
  .timer-value { font-size: 28px; }
  .timer-card[data-timer-state="interval"] .timer-controls,
  .timer-card[data-timer-state="idle"] .timer-controls { display: flex; }
  .session-submit-row > .btn { display: inline-flex; }
  .session-submit-row { align-items: stretch; flex-direction: column; }
  .session-submit-row > .last-load-note { display: none; }
  .session-submit-row > .btn { width: 100%; min-height: 46px; }
  .mobile-session-sticky { display: none; }
  .keyboard-open .session-submit-row > .btn { display: none; }
  .session-ex-list { max-height: 220px; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .session-ex-row { grid-template-columns: 22px minmax(0,1fr); padding: 7px; }
  .session-ex-meta { display: none; }
  .modal { width: min(100%, 540px); padding: 17px; border-radius: 15px; }
  .input, .textarea, .select, .coach-form textarea { font-size: 16px; }
  .login-panel { min-height: 100dvh; padding: 20px; }
  .login-card { padding: 23px; }
  .toast-stack { right: 12px; left: 12px; bottom: calc(78px + env(safe-area-inset-bottom)); }
  .toast { max-width: none; }
}
@media (max-width: 370px) {
  .overview-actions { align-items: stretch; flex-direction: column; }
  .overview-actions .btn { justify-content: center; }
  .week-focus-foot { font-size: 8px; }
  .stat-top { font-size: 8px; }
  .coach-topbar-button { gap: 5px !important; padding-inline: 8px !important; }
  .bottom-nav-item { font-size: 8px; }
}

@media (hover: none) and (pointer: coarse) {
  .nav-item, .btn, .icon-button, .bottom-nav-item, .feel-chip, .schedule-card, .plan-day-card, .history-row { transition-duration: var(--motion-fast); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .overview-hero, .overview-metrics, .overview-tools, .overview-section { animation: none !important; }
  .demo-pose-a, .demo-pose-b, .demo-travel, .demo-athlete, .coach-pending span { animation: none !important; }
}

/* Gym Log app pass: make the next action, training rhythm and data hierarchy easier to scan. */
:root {
  --bg: #101211;
  --bg-soft: #141715;
  --panel: #181b18;
  --panel-raised: #202420;
  --panel-deep: #141714;
  --line: #272c27;
  --line-strong: #3a413a;
  --text: #f0f3ec;
  --muted: #b3bbb0;
  --subtle: #939c91;
  --lime: #d5f47a;
  --lime-strong: #c6e96d;
  --lime-soft: rgba(213, 244, 122, .12);
  --radius-sm: 8px;
  --radius: 14px;
  --radius-lg: 18px;
  --motion-ease: cubic-bezier(.23, 1, .32, 1);
}

html, body { background: var(--bg); }
body { color: var(--text); font-size: 14px; line-height: 1.5; }
.app-shell { grid-template-columns: 232px minmax(0, 1fr); }
.sidebar { background: var(--bg); border-right: 1px solid var(--line); padding: 20px 14px 14px; }
.brand { gap: 10px; padding: 0 9px 18px; }
.brand-symbol { width: 34px; height: 34px; display: grid; place-items: center; padding: 0; color: var(--lime); background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.brand-symbol svg { width: 34px; height: 34px; overflow: visible; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.brand-name { font-size: 16px; font-weight: 700; letter-spacing: -.025em; }
.brand-caption { color: var(--muted); margin-top: 2px; font-size: 12px; letter-spacing: 0; text-transform: none; }
.sidebar-account-scope { display: flex; align-items: center; gap: 10px; min-height: 52px; margin: 0 3px 21px; padding: 7px 9px; background: var(--panel); border-radius: 10px; }
.scope-mark { display: grid; flex: 0 0 auto; width: 32px; height: 32px; place-items: center; color: var(--lime); background: #252b22; border-radius: 50%; font-size: 13px; font-weight: 650; }
.sidebar-account-scope > span:nth-child(2) { display: grid; gap: 1px; min-width: 0; }
.sidebar-account-scope strong { overflow: hidden; color: var(--text); font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-account-scope small { color: var(--muted); font-size: 11px; }
.scope-chevron { display: grid; margin-left: auto; color: var(--subtle); }
.nav-list { display: grid; gap: 19px; }
.nav-group { display: grid; gap: 3px; }
.nav-label { padding: 0 10px 5px; color: var(--muted); font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.nav-item { min-height: 40px; gap: 10px; padding: 0 10px; color: var(--muted); border: 0; border-radius: 8px; font-size: 13px; font-weight: 500; transition: color 140ms ease, background-color 140ms ease; }
.nav-icon { display: grid; width: 20px; height: 20px; place-items: center; color: var(--subtle); font-size: 16px; }
.ui-icon { display: block; flex: 0 0 auto; }
.nav-item.active { color: #f4f6f1; background: transparent; box-shadow: none; font-weight: 650; }
.nav-item.active .nav-icon { color: #f4f6f1; }
.nav-disclosure-icon { display: grid; margin-left: auto; color: var(--subtle); transition: transform 160ms var(--motion-ease); }
.nav-disclosure-icon.is-open { transform: rotate(180deg); }
.nav-submenu { display: grid; gap: 2px; margin: 1px 0 1px 19px; padding-left: 12px; border-left: 1px solid var(--line-strong); }
.nav-submenu[hidden] { display: none; }
.nav-subitem { min-height: 36px; padding: 0 10px; text-align: left; color: var(--muted); background: transparent; border: 0; border-radius: 7px; font-size: 12px; cursor: pointer; transition: color 140ms ease, background-color 140ms ease; }
.nav-subitem.active { color: var(--text); background: var(--panel-raised); }
.nav-assistant-group { margin-top: 1px; }
.nav-live-dot { width: 7px; height: 7px; margin-left: auto; border-radius: 50%; background: var(--lime); }
.sidebar-spacer { min-height: 18px; }
.sidebar-session { margin-bottom: 12px; padding: 11px; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; }
.sidebar-session small { color: var(--lime); font-size: 11px; letter-spacing: 0; }
.sidebar-session strong { font-size: 13px; }
.sidebar-session-pulse { box-shadow: 0 0 0 3px rgba(213,244,122,.12); }
.profile-row { min-height: 60px; margin-top: 0; padding: 11px 7px 0; border-top-color: var(--line); }
.profile-row.active { color: var(--text); }
.profile-name { font-size: 13px; font-weight: 600; }
.profile-caption { color: var(--muted); font-size: 11px; }
.profile-settings-icon { display: grid; color: var(--subtle); }
.avatar { width: 34px; height: 34px; color: var(--lime); background: #252b22; border: 0; font-size: 13px; }
.main-area { background: var(--bg); }
.topbar { height: 60px; padding: 0 clamp(24px, 3.5vw, 52px); background: var(--bg); border-bottom: 1px solid var(--line); backdrop-filter: none; }
.topbar-kicker { color: var(--muted); font-size: 12px; letter-spacing: 0; font-weight: 500; text-transform: none; }
.topbar-kicker span { padding: 0 4px; color: var(--subtle); }
.topbar-title { color: var(--text); font-size: 13px; font-weight: 600; }
.topbar-right { gap: 12px; }
.coach-topbar-button, .icon-button.coach-topbar-button { display: inline-flex; width: auto; min-height: 38px; align-items: center; gap: 8px; padding: 0 12px; color: var(--text); background: var(--panel); border: 1px solid var(--line); border-radius: 9px; font-size: 12px; font-weight: 550; }
.coach-topbar-button span:first-child { display: grid; color: var(--lime); font-size: 14px; }
.coach-topbar-button:hover { color: var(--text); background: var(--panel-raised); border-color: var(--line-strong); }
.topbar-account-button { display: grid; }
.page-content { width: min(1320px, 100%); padding: 27px clamp(24px, 3.5vw, 52px) 64px; animation: none; }
.page-heading { align-items: center; gap: 16px; margin-bottom: 20px; }
h1 { color: var(--text); font-size: clamp(24px, 2.1vw, 30px); line-height: 1.2; letter-spacing: -.03em; font-weight: 650; }
h2 { color: var(--text); }
.page-heading .eyebrow { margin-bottom: 4px; color: var(--muted); font-size: 12px; letter-spacing: 0; text-transform: none; }
.heading-copy { max-width: 660px; margin-top: 5px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.heading-actions { align-items: center; gap: 8px; }
.btn { min-height: 42px; gap: 8px; padding: 0 14px; border-radius: 8px; font-size: 13px; font-weight: 600; transition: color 140ms ease, background-color 140ms ease, border-color 140ms ease, transform 120ms var(--motion-ease); }
.btn-small { min-height: 38px; padding: 0 11px; border-radius: 7px; font-size: 12px; }
.btn-primary { color: #202619; background: var(--lime); box-shadow: none; }
.btn-secondary { color: var(--text); background: var(--panel-raised); border-color: var(--line-strong); }
.btn-ghost, .btn-quiet { color: var(--muted); }
.btn:active, .btn-quiet:active, .icon-button:active, .nav-item:active, .bottom-nav-item:active { transform: scale(.985); }
.card { background: var(--panel); border-color: var(--line); border-radius: 14px; box-shadow: none; }
.card-pad { padding: 20px; }
.card-title { font-size: 15px; font-weight: 600; letter-spacing: -.01em; }
.card-subtitle { color: var(--muted); font-size: 12px; line-height: 1.55; }
.card-kicker { color: var(--muted); font-size: 11px; letter-spacing: 0; text-transform: none; }
.eyebrow { color: var(--muted); letter-spacing: 0; text-transform: none; }
.small, .muted { color: var(--muted); }
.section-heading { margin: 29px 0 13px; }
.section-heading h2 { font-size: 18px; font-weight: 600; }
.section-heading p { color: var(--muted); font-size: 12px; }
.text-button, .insight-open { min-height: 38px; display: inline-flex; align-items: center; gap: 7px; color: var(--lime); font-size: 12px; font-weight: 600; }
.input, .textarea, .select { min-height: 44px; color: var(--text); background: #131613; border-color: var(--line-strong); border-radius: 8px; font-size: 14px; }
.textarea { min-height: 100px; }
.field label { color: var(--muted); font-size: 12px; }
.badge { min-height: 24px; padding: 4px 8px; border-radius: 5px; font-size: 11px; }
.badge-lime { color: var(--lime); background: rgba(213,244,122,.1); }
.chart-axis { fill: var(--muted); font-size: 11px; }
.chart-gridline { stroke: #292e29; }
.chart-line { stroke: var(--lime); stroke-width: 2.5; }
.chart-point { fill: var(--lime); stroke: var(--panel); stroke-width: 2; }
.chart-bar-secondary { fill: rgba(213,244,122,.72); }
.chart-empty { min-height: 116px; display: flex; align-items: center; color: var(--muted); font-size: 13px; }
.empty-state { padding: 25px 16px; }
.empty-icon { color: var(--muted); }
.empty-state h3 { font-size: 15px; }
.empty-state p { max-width: 480px; color: var(--muted); font-size: 13px; }

/* Dashboard: the next session leads; the week strip shows actual planned and completed days. */
.overview-page { gap: 0; }
.overview-heading { margin-bottom: 16px; }
.overview-hero { min-height: 218px; grid-template-columns: minmax(0, 1fr) minmax(260px, 310px); gap: 25px; padding: 24px; background: var(--panel); border: 1px solid var(--line); border-radius: 15px; box-shadow: none; }
.overview-hero-main { max-width: 700px; }
.overview-eyebrow { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; color: var(--muted); font-size: 12px; letter-spacing: 0; font-weight: 550; }
.overview-live-dot { width: 8px; height: 8px; background: var(--subtle); }
.overview-live-dot.is-live { background: var(--lime); }
.overview-session-title { max-width: 680px; margin: 0; font-size: clamp(22px, 2vw, 28px); line-height: 1.2; letter-spacing: -.025em; font-weight: 650; }
.overview-lede { max-width: 620px; margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.overview-session-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 10px; color: var(--muted); font-size: 12px; }
.meta-separator { color: var(--subtle); }
.overview-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 16px; }
.overview-actions .btn-primary { min-height: 42px; }
.overview-actions .btn-quiet { min-height: 42px; padding: 0 9px; font-size: 12px; }
.week-focus { display: flex; flex-direction: column; align-self: stretch; gap: 8px; padding: 2px 0 2px 22px; border-left: 1px solid var(--line-strong); }
.week-focus-head { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: 12px; }
.week-focus-head svg { color: var(--subtle); }
.week-focus-count { color: var(--text); font-size: 28px; font-weight: 600; line-height: 1.1; font-variant-numeric: tabular-nums; }
.week-focus-count span { color: var(--muted); font-size: 14px; font-weight: 450; }
.week-focus-caption { color: var(--muted); font-size: 12px; line-height: 1.4; }
.week-focus-foot { margin-top: auto; color: var(--muted); font-size: 12px; }
.week-rhythm { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; margin-top: 4px; }
.week-rhythm-day { display: grid; justify-items: center; gap: 4px; min-width: 0; color: var(--muted); font-size: 10px; }
.week-rhythm-mark { width: 25px; height: 25px; display: grid; place-items: center; color: var(--subtle); background: var(--panel-raised); border-radius: 50%; font-size: 11px; }
.week-rhythm-day.is-complete .week-rhythm-mark { color: #202619; background: var(--lime); }
.week-rhythm-day.has-plan:not(.is-complete) .week-rhythm-mark { color: var(--lime); background: rgba(213,244,122,.1); }
.week-rhythm-day.is-today > span:last-child { color: var(--text); font-weight: 650; }
.overview-metrics, .stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin-top: 14px; overflow: hidden; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; }
.metric-cell { min-width: 0; padding: 14px 17px; border-right: 1px solid var(--line); }
.metric-cell:last-child { border-right: 0; }
.metric-label { color: var(--muted); font-size: 12px; }
.metric-value { overflow: hidden; margin-top: 4px; color: var(--text); font-size: 21px; font-weight: 550; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
.metric-caption { overflow: hidden; margin-top: 2px; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.overview-section { margin-top: 28px; }
.overview-section-heading { align-items: center; gap: 14px; margin-bottom: 12px; }
.overview-section-heading h2 { margin: 0; font-size: 17px; line-height: 1.25; letter-spacing: -.01em; font-weight: 600; }
.overview-section-heading p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.overview-section-heading .text-button { min-height: 36px; padding: 0 2px 0 8px; white-space: nowrap; }
.schedule-strip { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.training-day { min-width: 0; min-height: 125px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 11px; text-align: left; color: var(--text); background: var(--panel); border: 1px solid var(--line); border-radius: 11px; }
button.training-day { cursor: pointer; transition: background-color 140ms ease, border-color 140ms ease, transform 120ms var(--motion-ease); }
.training-day-top { width: 100%; display: flex; align-items: center; gap: 7px; color: var(--muted); }
.training-day-name { font-size: 11px; }
.training-day-top strong { margin-left: auto; color: var(--text); font-size: 13px; font-variant-numeric: tabular-nums; }
.training-today-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--lime); }
.training-day-mark { height: 18px; display: grid; place-items: center; color: var(--muted); font-size: 13px; }
.training-day.is-complete .training-day-mark { color: var(--lime); }
.training-day-title { display: -webkit-box; overflow: hidden; color: var(--text); font-size: 12px; font-weight: 550; line-height: 1.3; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.training-day-meta { color: var(--muted); font-size: 11px; line-height: 1.35; }
.training-day.is-rest .training-day-title { color: var(--muted); font-weight: 450; }
.training-day.is-today { border-color: var(--line-strong); }
.training-day.is-complete { background: #181d17; }
.overview-tools { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 12px; margin-top: 18px; }
.readiness-card, .insight-card { min-width: 0; min-height: 96px; padding: 17px; background: var(--panel); border: 1px solid var(--line); border-radius: 13px; }
.readiness-card { gap: 12px; }
.readiness-icon { width: 34px; height: 34px; display: grid; flex: 0 0 auto; place-items: center; color: var(--lime); background: var(--panel-raised); border-radius: 9px; }
.readiness-title { color: var(--text); font-size: 14px; font-weight: 600; }
.readiness-caption { margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.readiness-card .btn { min-height: 38px; flex: 0 0 auto; font-size: 12px; }
.insight-card { padding: 15px 18px; background: var(--panel); border-color: var(--line); }
.insight-label { color: var(--muted); font-size: 12px; letter-spacing: 0; text-transform: none; }
.insight-text { margin: 6px 0 4px; color: var(--text); font-size: 13px; line-height: 1.45; }
.insight-open { min-height: 30px; }
.overview-recent { margin-top: 27px; }
.overview-recent .history-row { background: var(--panel); border-radius: 9px; }
.history-list { gap: 7px; }
.history-row { min-height: 72px; padding: 11px 14px; background: var(--panel); border-color: var(--line); border-radius: 10px; }
.history-date { width: 42px; height: 43px; color: var(--text); background: var(--panel-raised); border: 0; border-radius: 8px; }
.history-date strong { font-size: 15px; }
.history-date span { color: var(--muted); font-size: 11px; }
.history-title { font-size: 14px; font-weight: 600; }
.history-meta { color: var(--muted); font-size: 12px; line-height: 1.4; }
.history-volume { font-size: 13px; font-variant-numeric: tabular-nums; }
.history-duration { color: var(--muted); font-size: 11px; }
.sport-setting-name { display: flex; align-items: center; gap: 8px; }
.stat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stat-grid + .grid { margin-top: 18px; }
.chart-wrap { min-height: 150px; }
.chart-svg { max-height: 205px; }
.chart-gridline { stroke-width: 1; }
.chart-axis { font-size: 11px; }
.session-page h1, .session-exercise-title { font-size: 24px; }
.session-exercise-card, .timer-card, .session-list-card { border-radius: 13px; }
.timer-card { background: var(--panel); }
.session-layout { gap: 16px; }
.login-card { background: var(--panel); border-color: var(--line); border-radius: 16px; box-shadow: none; }
.login-showcase { background: var(--bg); }

/* Motion stays on controls and disclosures; page content itself does not enter. */
@media (hover: hover) and (pointer: fine) {
  .nav-item:hover, .nav-subitem:hover, .bottom-nav-item:hover { color: var(--text); background: var(--panel-raised); }
  .btn-primary:hover { background: #e0f6a2; box-shadow: none; }
  .btn-secondary:hover { background: #282e28; border-color: #4b544b; }
  .btn-ghost:hover, .btn-quiet:hover { color: var(--text); background: #1b1f1b; }
  button.training-day:hover, .history-row:hover, .plan-day-card:hover { background-color: var(--panel-raised); border-color: var(--line-strong); }
}
.coach-launcher { display: none; }
.coach-widget { right: 24px; bottom: 24px; }
.coach-drawer { color: var(--text); background: #191d1a; border-color: var(--line-strong); border-radius: 14px; box-shadow: 0 16px 48px rgba(0,0,0,.36); backdrop-filter: none; transition: opacity 180ms var(--motion-ease), transform 180ms var(--motion-ease), visibility 180ms; }
.coach-header { border-bottom-color: var(--line); }
.coach-avatar { color: var(--lime); background: var(--panel-raised); border-radius: 10px; box-shadow: none; }
.coach-heading strong { font-size: 15px; }
.coach-heading span, .coach-context { color: var(--muted); font-size: 12px; }
.coach-message { color: var(--text); background: var(--panel-raised); border-color: var(--line); font-size: 13px; }
.coach-message.from-user { color: #202619; background: var(--lime); border-color: var(--lime); }
.coach-form { background: var(--panel-deep); border-color: var(--line-strong); }
.coach-footnote { color: var(--muted); font-size: 11px; }
.modal { background: #191d1a; border-color: var(--line-strong); border-radius: 14px; box-shadow: 0 18px 56px rgba(0,0,0,.44); }
.modal-backdrop { background: rgba(5,7,5,.72); backdrop-filter: none; }
.modal-title { font-size: 22px; }
.modal-copy { color: var(--muted); font-size: 13px; }
.toast { background: #242a24; border-color: var(--line-strong); }
.mobile-session-sticky .btn { box-shadow: 0 7px 20px rgba(0,0,0,.28); }

@media (max-width: 1020px) {
  .app-shell { grid-template-columns: 220px minmax(0, 1fr); }
  .sidebar { padding-inline: 12px; }
  .page-content { padding-inline: 28px; }
  .overview-hero { grid-template-columns: minmax(0, 1fr) 265px; gap: 18px; }
  .schedule-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .training-day:nth-child(n+5) { display: none; }
}
@media (max-width: 820px) {
  .app-shell { display: block; }
  .sidebar { display: none; }
  .topbar { height: 56px; padding-inline: 18px; }
  .topbar-mark { display: grid; width: 30px; height: 30px; place-items: center; color: var(--lime); background: transparent; border-radius: 0; }
  .topbar-kicker { display: none; }
  .topbar-title { font-size: 13px; }
  .coach-topbar-button { min-height: 38px; }
  .topbar-account-button { display: grid; }
  .today-chip { display: none; }
  .page-content { width: min(720px, 100%); padding: 22px 20px calc(106px + env(safe-area-inset-bottom)); }
  .bottom-nav { left: 12px; right: 12px; bottom: max(10px, env(safe-area-inset-bottom)); grid-template-columns: repeat(5, minmax(0,1fr)); padding: 5px; background: #191d1a; border: 1px solid var(--line-strong); border-radius: 13px; box-shadow: 0 8px 24px rgba(0,0,0,.34); backdrop-filter: none; }
  .bottom-nav-item { min-width: 0; min-height: 46px; gap: 3px; padding: 3px 1px; color: var(--muted); border-radius: 8px; font-size: 11px; font-weight: 500; }
  .bottom-nav-item .nav-icon { color: currentColor; }
  .bottom-nav-item.active { color: var(--text); background: transparent; font-weight: 650; }
  .mobile-more-menu { position: absolute; right: 0; bottom: calc(100% + 9px); width: min(260px, calc(100vw - 28px)); display: grid; gap: 3px; padding: 7px; background: #202420; border: 1px solid var(--line-strong); border-radius: 12px; box-shadow: 0 12px 36px rgba(0,0,0,.4); transform-origin: bottom right; animation: mobile-menu-in 170ms var(--motion-ease) both; }
  @keyframes mobile-menu-in { from { opacity: 0; transform: translateY(6px) scale(.98); } to { opacity: 1; transform: none; } }
  .mobile-menu-item { min-height: 44px; display: flex; align-items: center; gap: 11px; padding: 0 11px; color: var(--muted); background: transparent; border: 0; border-radius: 8px; text-align: left; font-size: 13px; }
  .mobile-menu-item svg { color: var(--subtle); }
  .mobile-menu-item.active { color: var(--text); background: var(--panel); }
  .mobile-menu-item.active svg { color: var(--lime); }
  .overview-hero { grid-template-columns: minmax(0, 1fr) minmax(205px, .78fr); padding: 20px; }
  .overview-tools { grid-template-columns: minmax(0,1fr); }
  .schedule-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .training-day { min-height: 112px; }
  .coach-widget { right: 10px; bottom: calc(77px + env(safe-area-inset-bottom)); }
  .coach-drawer { position: fixed; right: 10px; bottom: calc(77px + env(safe-area-inset-bottom)); width: min(410px, calc(100vw - 20px)); height: min(72dvh, 590px); border-radius: 14px; }
  .coach-active-session .coach-drawer { bottom: calc(140px + env(safe-area-inset-bottom)); }
}
@media (max-width: 620px) {
  .topbar { padding-inline: 14px; }
  .topbar-right { gap: 8px; }
  .coach-topbar-button, .icon-button.coach-topbar-button { min-height: 36px; padding-inline: 9px; font-size: 12px; }
  .topbar-account-button { width: 32px; height: 32px; }
  .page-content { padding: 19px 16px calc(104px + env(safe-area-inset-bottom)); }
  .page-heading { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 16px; }
  .page-heading h1 { font-size: 24px; }
  .page-heading .heading-copy { font-size: 13px; }
  .overview-heading .heading-actions { display: none; }
  .heading-actions { margin-top: 0; }
  .heading-actions .btn { min-height: 40px; padding-inline: 10px; }
  .overview-hero { grid-template-columns: minmax(0,1fr); gap: 17px; padding: 17px; border-radius: 13px; }
  .overview-session-title { font-size: 23px; }
  .overview-lede { font-size: 13px; }
  .overview-actions { gap: 5px; margin-top: 13px; }
  .overview-actions .btn { min-height: 42px; padding-inline: 11px; font-size: 12px; }
  .week-focus { gap: 7px; padding: 13px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .week-focus-count { font-size: 24px; }
  .week-rhythm { max-width: 380px; }
  .week-rhythm-day { font-size: 11px; }
  .overview-metrics, .stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 10px; }
  .metric-cell { padding: 12px 13px; border-bottom: 1px solid var(--line); }
  .metric-cell:nth-child(2n) { border-right: 0; }
  .metric-cell:nth-last-child(-n+2) { border-bottom: 0; }
  .metric-value { font-size: 19px; }
  .metric-label { font-size: 12px; }
  .metric-caption { font-size: 11px; }
  .metric-caption { white-space: normal; line-height: 1.35; }
  .overview-section { margin-top: 22px; }
  .overview-section-heading { align-items: flex-start; gap: 8px; }
  .overview-section-heading h2 { font-size: 16px; }
  .overview-section-heading p { max-width: 220px; font-size: 12px; }
  .overview-section-heading .text-button { min-height: 34px; padding-inline: 3px; font-size: 11px; }
  .schedule-strip { display: flex; overflow-x: auto; gap: 8px; margin-right: -16px; padding: 1px 16px 8px 1px; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .schedule-strip::-webkit-scrollbar { display: none; }
  .training-day, .training-day:nth-child(n+5) { display: flex; flex: 0 0 140px; min-height: 116px; scroll-snap-align: start; }
  .training-day-title { font-size: 12px; }
  .training-day-meta { font-size: 11px; }
  .overview-tools { gap: 8px; margin-top: 14px; }
  .readiness-card, .insight-card { padding: 13px; }
  .readiness-card { gap: 9px; flex-wrap: wrap; }
  .readiness-copy { flex: 1 1 calc(100% - 48px); }
  .readiness-card .btn { min-height: 40px; margin-left: 43px; }
  .insight-text { font-size: 13px; }
  .history-row { grid-template-columns: 42px minmax(0,1fr); gap: 10px; padding: 11px; }
  .history-title { font-size: 13px; }
  .history-meta { font-size: 11px; }
  .history-stats { grid-column: 2; display: flex; gap: 9px; align-items: center; text-align: left; }
  .history-duration { margin: 0; }
  .stat-grid + .grid { grid-template-columns: minmax(0,1fr); }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: minmax(0,1fr); }
  .span-2 { grid-column: auto; }
  .card-pad { padding: 15px; }
  .section-heading { margin-top: 23px; }
  .session-layout { grid-template-columns: minmax(0,1fr); grid-template-areas: "timer" "main" "list"; }
  .session-side { display: contents; }
  .session-side .timer-card { grid-area: timer; }
  .session-side .session-list-card { grid-area: list; }
  .session-exercise-card { padding: 16px 13px; }
  .session-exercise-title { font-size: 22px; }
  .session-submit-row > .btn { display: none; }
  .mobile-session-sticky { display: flex; position: fixed; z-index: 15; left: 12px; right: 12px; bottom: calc(69px + env(safe-area-inset-bottom)); justify-content: center; }
  .mobile-session-sticky .btn { width: 100%; min-height: 46px; }
  .toast-stack { right: 12px; left: 12px; bottom: calc(74px + env(safe-area-inset-bottom)); }
}
@media (max-width: 370px) {
  .page-content { padding-inline: 14px; }
  .topbar { padding-inline: 12px; }
  .overview-actions { align-items: stretch; flex-direction: column; }
  .overview-actions .btn { justify-content: center; }
  .week-focus-foot { font-size: 11px; }
  .coach-topbar-button, .icon-button.coach-topbar-button { gap: 5px; padding-inline: 8px; }
  .bottom-nav-item { font-size: 10px; }
}
@media (hover: none) and (pointer: coarse) {
  .nav-item, .nav-subitem, .btn, .icon-button, .bottom-nav-item, .training-day, .history-row, .plan-day-card { transition-duration: 120ms; }
}
@media (prefers-reduced-motion: reduce) {
  .mobile-more-menu { animation-duration: 120ms !important; }
  .coach-drawer { transition-duration: 120ms !important; }
  .nav-disclosure-icon, .nav-item, .nav-subitem, .bottom-nav-item, .btn, .icon-button, .training-day { transition-duration: 120ms !important; }
  .page-content { animation: none !important; }
}

/* Gym Log v2: mobile-first, warm paper, ink and persimmon. */
:root {
  color-scheme: light;
  --bg: #f3f3ee;
  --bg-soft: #eceee8;
  --panel: #fffefa;
  --panel-raised: #f7f8f4;
  --panel-deep: #eef0eb;
  --line: #e3e6df;
  --line-strong: #cbd3cd;
  --text: #1c292f;
  --muted: #637178;
  --subtle: #8a969a;
  --accent: #ca4b32;
  --accent-strong: #b43d27;
  --accent-soft: rgba(202, 75, 50, .12);
  --lime: var(--accent);
  --lime-strong: var(--accent-strong);
  --lime-soft: var(--accent-soft);
  --orange: #bd6c36;
  --orange-soft: rgba(189, 108, 54, .12);
  --blue: #526fc4;
  --blue-soft: rgba(82, 111, 196, .1);
  --purple: #775fae;
  --success: #26745d;
  --danger: #b63d42;
  --radius-sm: 12px;
  --radius: 20px;
  --radius-lg: 26px;
  --shadow: 0 12px 34px rgba(25, 42, 43, .07);
  --motion-ease: cubic-bezier(.2, .8, .2, 1);
}

html, body { background: var(--bg); }
body { color: var(--text); font-size: 15px; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline-color: var(--accent); }
::selection { color: var(--text); background: rgba(202, 75, 50, .2); }

.app-shell { grid-template-columns: 246px minmax(0, 1fr); background: var(--bg); }
.sidebar { background: #ebece6; border-right-color: var(--line); }
.brand-symbol { color: var(--accent); }
.brand-caption { color: var(--muted); }
.sidebar-account-scope { background: rgba(255, 254, 250, .68); border: 1px solid rgba(28, 41, 47, .045); border-radius: 14px; }
.scope-mark, .avatar { color: var(--accent); background: #f7e4de; border-color: transparent; }
.nav-label { color: var(--subtle); }
.nav-item, .nav-subitem { color: var(--muted); }
.nav-item:hover, .nav-subitem:hover { color: var(--text); background: rgba(255, 255, 255, .64); }
.nav-item.active { color: var(--text); background: var(--panel); box-shadow: inset 3px 0 0 var(--accent); }
.nav-item.active .nav-icon, .nav-subitem.active { color: var(--accent); }
.nav-subitem.active { background: #f7e7e2; }
.nav-disclosure-icon, .nav-icon { color: var(--subtle); }
.sidebar-session { background: var(--panel); border-color: var(--line); border-radius: 16px; }
.sidebar-session small, .nav-live-dot { color: var(--accent); background: var(--accent); }
.profile-row { border-top-color: var(--line); }
.profile-row.active { color: var(--text); }

.main-area { background: var(--bg); }
.topbar { color: var(--text); background: rgba(243, 243, 238, .95); border-bottom-color: var(--line); backdrop-filter: none; }
.topbar-title { color: var(--text); }
.topbar-kicker { color: var(--muted); }
.topbar-mark { color: var(--accent); background: #f7e4de; border-radius: 10px; }
.topbar-account-button { color: var(--accent); background: #f7e4de; border-color: transparent; }
.topbar-account-button:hover { background: #f0d5cc; border-color: transparent; }
.icon-button, .coach-topbar-button { color: var(--accent); background: var(--panel); border-color: var(--line); }
.coach-topbar-button:hover, .icon-button:hover { color: var(--accent-strong); background: #f7e7e2; border-color: #e8c4b8; }
.page-content { animation: none; }
.page-heading h1, h1 { color: var(--text); letter-spacing: -.045em; }
.eyebrow { color: var(--accent); }
.heading-copy, .page-heading .heading-copy { color: var(--muted); font-size: 14px; }

.btn { min-height: 44px; border-radius: 13px; font-size: 13px; font-weight: 650; transition: color 140ms var(--motion-ease), background-color 140ms var(--motion-ease), border-color 140ms var(--motion-ease), transform 140ms var(--motion-ease); }
.btn-primary { color: #fffefa; background: var(--accent); box-shadow: none; }
.btn-primary:hover { color: #fffefa; background: var(--accent-strong); box-shadow: none; }
.btn-secondary, .btn-ghost { color: var(--text); background: var(--panel); border-color: var(--line-strong); }
.btn-secondary:hover, .btn-ghost:hover { color: var(--text); background: var(--panel-raised); border-color: #aebbb4; }
.btn-quiet { color: var(--text); }
.btn-danger { color: var(--danger); background: #fae9e7; border-color: #f0ceca; }
.btn-small { min-height: 40px; border-radius: 11px; font-size: 12px; }
.btn:active, .icon-button:active { transform: scale(.975); }

.card, .plan-day-card, .history-row, .schedule-card, .readiness-card, .insight-card,
.session-exercise-card, .timer-card, .session-list-card, .login-card, .modal,
.week-focus, .metric-cell, .coach-drawer {
  color: var(--text);
  background: var(--panel);
  border-color: var(--line);
  box-shadow: none;
}
.card, .plan-day-card, .history-row, .schedule-card, .readiness-card, .insight-card,
.session-exercise-card, .timer-card, .session-list-card, .login-card, .modal, .coach-drawer { border-radius: 18px; }
.card-pad { padding: 20px; }
.card-title, .card-kicker, .history-title, .plan-day-title, .session-exercise-title { color: var(--text); }
.card-subtitle, .small, .muted, .subtle { color: var(--muted); }
.divider { background: var(--line); }
.input, .select, textarea, .coach-form textarea { color: var(--text); background: #fffefa; border-color: var(--line-strong); border-radius: 12px; }
.input::placeholder, textarea::placeholder { color: var(--subtle); }
label, .field label { color: var(--text); }
.checkbox-row { color: var(--text); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--accent); }

/* The home screen answers one question first: what can I start now? */
.overview-page { display: block; }
.overview-heading { margin-bottom: 18px; }
.overview-heading h1 { font-size: clamp(27px, 3.2vw, 36px); }
.overview-feature-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 330px); align-items: stretch; gap: 14px; }
.overview-hero { position: relative; min-height: 242px; display: flex; align-items: center; overflow: hidden; padding: 26px 28px; color: #fffefa; background: #203a43; border: 0; border-radius: 24px; box-shadow: none; isolation: isolate; }
.overview-hero::after { content: ""; position: absolute; z-index: -1; top: 50%; right: 20px; width: 190px; height: 190px; border: 1px solid rgba(255, 255, 255, .09); border-radius: 50%; box-shadow: 0 0 0 22px rgba(255, 255, 255, .025), 0 0 0 48px rgba(255, 255, 255, .02); transform: translateY(-50%); pointer-events: none; }
.overview-hero-main { position: relative; z-index: 1; max-width: 690px; }
.overview-eyebrow { color: #e0e8e5; font-size: 12px; font-weight: 600; }
.overview-live-dot { background: #ee8b70; }
.overview-live-dot.is-live { background: #ffb06f; box-shadow: 0 0 0 4px rgba(255, 176, 111, .16); }
.overview-session-title { max-width: 520px; color: #fffefa; font-size: clamp(25px, 3vw, 34px); line-height: 1.12; letter-spacing: -.04em; font-weight: 700; }
.overview-lede { color: #d5dfdc; font-size: 14px; }
.overview-session-meta { color: #e1e8e5; font-size: 12px; }
.overview-session-meta .sport-icon { color: #ffb06f; }
.overview-actions { gap: 10px; }
.overview-actions .btn-primary { min-height: 48px; padding-inline: 17px; }
.overview-actions .btn-quiet { color: #f0f4f1; }
.overview-actions .btn-quiet:hover { color: #fffefa; background: rgba(255,255,255,.09); }
.overview-sport-art { position: absolute; z-index: 0; right: 46px; top: 50%; display: grid; width: 118px; height: 118px; place-items: center; color: rgba(255, 255, 255, .24); transform: translateY(-50%); pointer-events: none; }
.overview-sport-art .sport-icon { width: 100%; height: 100%; stroke-width: 1; }
.week-focus { display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: 17px; border-radius: 20px; }
.week-focus-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.week-focus-head { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 12px; font-weight: 600; }
.week-focus-head svg { color: var(--accent); }
.week-focus-count { margin-top: 4px; color: var(--text); font-size: 23px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.week-focus-count span { color: var(--muted); font-size: 13px; font-weight: 500; }
.week-focus-caption { color: var(--muted); font-size: 11px; line-height: 1.3; }
.week-focus-streak { flex: 0 0 auto; padding: 7px 9px; color: #8d3927; background: #f8e8e2; border-radius: 999px; font-size: 10px; font-weight: 650; }
.week-rhythm { gap: 3px; margin-top: 2px; }
.week-rhythm-day { gap: 4px; color: var(--muted); font-size: 10px; }
.week-rhythm-mark { width: 27px; height: 27px; color: var(--subtle); background: #eef0eb; border-radius: 10px; }
.week-rhythm-day.is-complete .week-rhythm-mark { color: #fffefa; background: #26745d; }
.week-rhythm-day.has-plan:not(.is-complete) .week-rhythm-mark { color: var(--accent); background: #f8e8e2; }
.week-rhythm-day.is-today > span:last-child { color: var(--accent); font-weight: 750; }
.overview-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 14px; padding: 9px 0; background: transparent; border: 0; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); border-radius: 0; }
.overview-metrics .metric-cell { padding: 8px 16px; background: transparent; border: 0; border-right: 1px solid var(--line); border-radius: 0; }
.overview-metrics .metric-cell:last-child { border-right: 0; }
.metric-label { color: var(--muted); font-size: 12px; }
.metric-value { color: var(--text); font-size: 21px; font-weight: 700; }
.metric-caption { color: var(--muted); font-size: 11px; }
.overview-section { margin-top: 24px; }
.overview-section-heading { margin-bottom: 11px; }
.overview-section-heading h2 { color: var(--text); font-size: 18px; font-weight: 700; }
.overview-section-heading p { color: var(--muted); font-size: 13px; }
.overview-section-heading .text-button, .text-button, .insight-open { color: var(--accent); }
.schedule-strip { gap: 7px; }
.training-day { min-height: 120px; padding: 10px; color: var(--text); background: var(--panel); border: 1px solid var(--line); border-radius: 16px; }
.training-day-top, .training-day-meta { color: var(--muted); }
.training-day-top strong, .training-day-title { color: var(--text); }
.training-today-dot { background: var(--accent); }
.training-day-mark { color: var(--accent); }
.training-day.is-complete { background: #edf4ef; }
.training-day.is-complete .training-day-mark { color: var(--success); }
.training-day.is-today { border-color: var(--accent); box-shadow: 0 0 0 2px rgba(202, 75, 50, .08); }
.overview-tools { gap: 12px; margin-top: 18px; }
.readiness-card { background: #fffefa; border-radius: 18px; }
.readiness-icon { color: var(--accent); background: #f8e8e2; border-radius: 12px; }
.readiness-title { color: var(--text); }
.readiness-caption { color: var(--muted); }
.insight-card { background: #eaf0ef; border-color: #d8e2df; border-radius: 18px; }
.insight-label { color: #526a6b; }
.insight-text { color: var(--text); }
.history-row { background: var(--panel); border-color: var(--line); border-radius: 16px; }
.history-date { color: var(--text); background: #f0f1eb; border-radius: 12px; }
.history-date span, .history-meta, .history-duration { color: var(--muted); }

/* Progress and training data stay quiet so the numbers remain the focus. */
.stat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--panel); border-color: var(--line); border-radius: 18px; }
.stat-grid .metric-cell { background: transparent; border-color: var(--line); }
.chart-wrap { color: var(--text); }
.chart-gridline { stroke: #e2e6e0; }
.chart-axis { fill: var(--muted); }
.chart-empty { color: var(--muted); background: #f7f8f4; border-radius: 14px; }
.plan-day-card { background: var(--panel); border-color: var(--line); border-radius: 18px; }
.day-token { color: var(--accent); background: #f8e8e2; border-color: #f0d9d1; border-radius: 14px; }
.plan-day-title, .plan-day-focus, .plan-day-meta { color: var(--text); }
.plan-day-focus, .plan-day-meta { color: var(--muted); }
.schedule-card { background: var(--panel); border-radius: 17px; }
.schedule-card.today { border-color: var(--accent); }
.feel-chip { color: var(--muted); background: var(--panel); border-color: var(--line-strong); }
.feel-chip.active { color: var(--accent); background: #f8e8e2; border-color: #e7b9ab; }
.session-page, .session-page h1 { color: var(--text); }
.session-exercise-card, .timer-card, .session-list-card { background: var(--panel); border-color: var(--line); border-radius: 20px; }
.timer-value, .session-exercise-title { color: var(--text); }
.coach-drawer { color: var(--text); background: var(--panel); border-color: var(--line-strong); box-shadow: 0 18px 48px rgba(25,42,43,.16); }
.coach-header, .coach-form { border-color: var(--line); }
.coach-avatar { color: var(--accent); background: #f8e8e2; }
.coach-heading strong, .coach-message { color: var(--text); }
.coach-heading span, .coach-context, .coach-footnote { color: var(--muted); }
.coach-message { background: #f0f2ed; border-color: var(--line); }
.coach-message.from-user { color: #fffefa; background: var(--accent); border-color: var(--accent); }
.coach-form { background: #f7f8f4; }
.modal { color: var(--text); background: var(--panel); border-color: var(--line-strong); box-shadow: 0 20px 60px rgba(25,42,43,.2); }
.modal-backdrop { background: rgba(18, 31, 34, .42); }
.modal-copy { color: var(--muted); }
.toast { color: var(--text); background: var(--panel); border-color: var(--line-strong); box-shadow: var(--shadow); }
.empty-state { color: var(--muted); }
.empty-icon { color: var(--accent); background: #f8e8e2; }
.badge, .badge-muted { color: var(--muted); background: #f0f2ed; border-color: var(--line); }
.badge-lime { color: #8d3927; background: #f8e8e2; border-color: #efd2c7; }
.badge-success { color: #20694f; background: #e6f1e9; border-color: #cddfd2; }
.badge-blue { color: #4c65ad; background: #e9edf8; border-color: #d8dff1; }
.badge-orange { color: #975323; background: #f8eddf; border-color: #efddc3; }

@media (max-width: 1020px) {
  .app-shell { grid-template-columns: 220px minmax(0, 1fr); }
  .overview-feature-row { grid-template-columns: minmax(0, 1fr) minmax(240px, 285px); }
  .overview-sport-art { right: 24px; }
}

@media (max-width: 820px) {
  .app-shell { display: block; }
  .sidebar { display: none; }
  .topbar { height: 58px; padding: 0 16px; background: rgba(243, 243, 238, .98); }
  .topbar-mark { width: 34px; height: 34px; color: var(--accent); background: #f7e4de; border-radius: 12px; }
  .topbar-title { color: var(--text); font-size: 14px; font-weight: 700; }
  .topbar-right { gap: 8px; }
  .coach-topbar-button { width: 38px; min-width: 38px; height: 38px; min-height: 38px; justify-content: center; padding: 0; color: var(--accent); background: #f7e4de; border: 0; border-radius: 12px; }
  .coach-topbar-button > span:nth-child(2) { display: none; }
  .topbar-account-button { width: 38px; height: 38px; color: var(--accent); background: #f7e4de; }
  .page-content { width: 100%; padding: 18px 20px calc(112px + env(safe-area-inset-bottom)); }
  .bottom-nav { position: fixed; z-index: 40; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; padding: 7px 6px calc(7px + env(safe-area-inset-bottom)); background: rgba(255, 254, 250, .98); border: 0; border-top: 1px solid var(--line); border-radius: 18px 18px 0 0; box-shadow: 0 -6px 22px rgba(25,42,43,.07); backdrop-filter: none; }
  .bottom-nav-item { position: relative; min-width: 0; min-height: 52px; gap: 3px; padding: 4px 1px; color: var(--muted); background: transparent; border-radius: 12px; font-size: 10px; font-weight: 600; }
  .bottom-nav-item .nav-icon { width: 23px; height: 23px; color: currentColor; }
  .bottom-nav-item.active { color: var(--accent); background: transparent; font-weight: 750; }
  .bottom-nav-item.active::before { content: ""; position: absolute; top: -7px; left: 50%; width: 22px; height: 3px; background: var(--accent); border-radius: 99px; transform: translateX(-50%); }
  .overview-heading { margin-bottom: 15px; }
  .overview-heading h1 { font-size: 28px; }
  .overview-heading .heading-copy { margin-top: 4px; font-size: 13px; }
  .overview-feature-row { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .overview-hero { min-height: 218px; padding: 21px; border-radius: 22px; }
  .overview-session-title { max-width: min(74%, 350px); font-size: 26px; }
  .overview-lede { max-width: 78%; font-size: 13px; }
  .overview-session-meta { max-width: 80%; gap: 6px; font-size: 11px; }
  .overview-sport-art { right: 20px; width: 82px; height: 82px; }
  .overview-hero::after { right: -20px; width: 145px; height: 145px; box-shadow: 0 0 0 18px rgba(255,255,255,.025), 0 0 0 40px rgba(255,255,255,.02); }
  .overview-actions { gap: 6px; margin-top: 13px; }
  .overview-actions .btn-primary { min-height: 46px; }
  .overview-actions .btn-quiet { min-height: 44px; font-size: 12px; }
  .week-focus { gap: 7px; padding: 13px 14px; border-radius: 18px; }
  .week-focus-count { font-size: 20px; }
  .week-focus-streak { padding: 6px 8px; font-size: 10px; }
  .week-focus-caption { font-size: 11px; }
  .week-rhythm { gap: 2px; margin-top: 1px; }
  .week-rhythm-mark { width: 25px; height: 25px; border-radius: 9px; }
  .overview-metrics { margin-top: 12px; padding: 7px 0; }
  .overview-metrics .metric-cell { padding: 6px 9px; }
  .overview-metrics .metric-label { font-size: 11px; }
  .overview-metrics .metric-value { margin-top: 3px; font-size: 18px; }
  .overview-metrics .metric-caption { display: none; }
  .overview-section { margin-top: 22px; }
  .overview-section-heading h2 { font-size: 16px; }
  .overview-section-heading p { max-width: 230px; font-size: 12px; }
  .overview-tools { grid-template-columns: minmax(0,1fr); gap: 9px; margin-top: 14px; }
  .readiness-card, .insight-card { min-height: 0; padding: 14px; }
  .readiness-card { flex-wrap: nowrap; }
  .readiness-copy { flex: 1 1 auto; }
  .readiness-card .btn { min-height: 42px; margin-left: 0; }
  .schedule-strip { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
  .training-day, .training-day:nth-child(n+5) { min-height: 82px; display: flex; align-items: center; gap: 5px; padding: 7px 2px; background: transparent; border-color: transparent; border-radius: 14px; }
  .training-day-top { width: auto; display: flex; flex-direction: column; align-items: center; gap: 1px; }
  .training-day-name { font-size: 10px; }
  .training-day-top strong { margin: 0; font-size: 13px; }
  .training-today-dot { display: none; }
  .training-day-mark { width: 23px; height: 23px; font-size: 12px; background: #eef0eb; border-radius: 8px; }
  .training-day-title, .training-day-meta { display: none; }
  .training-day.is-today { color: var(--accent); background: #f8e8e2; border-color: transparent; box-shadow: none; }
  .training-day.is-today .training-day-top strong, .training-day.is-today .training-day-name { color: var(--accent); }
  .training-day.is-complete .training-day-mark { color: #fffefa; background: var(--success); }
  .coach-widget { right: 12px; bottom: calc(78px + env(safe-area-inset-bottom)); }
  .coach-drawer { right: 10px; bottom: calc(76px + env(safe-area-inset-bottom)); width: min(410px, calc(100vw - 20px)); height: min(72dvh, 590px); border-radius: 20px; }
  .coach-active-session .coach-drawer { bottom: calc(140px + env(safe-area-inset-bottom)); }
}

@media (max-width: 620px) {
  .page-content { padding: 17px 18px calc(112px + env(safe-area-inset-bottom)); }
  .page-heading { align-items: flex-start; gap: 12px; margin-bottom: 18px; }
  .page-heading h1 { max-width: 100%; font-size: 27px; line-height: 1.1; }
  .page-heading .heading-copy { font-size: 13px; line-height: 1.45; }
  .heading-actions { align-items: flex-start; }
  .heading-actions .btn { min-height: 42px; padding-inline: 11px; font-size: 12px; }
  .overview-heading .heading-actions { display: none; }
  .overview-hero { min-height: 218px; padding: 19px; }
  .overview-eyebrow { font-size: 11px; }
  .overview-session-title { max-width: 72%; font-size: 24px; }
  .overview-lede { max-width: 76%; font-size: 12px; }
  .overview-session-meta { max-width: 77%; margin-top: 9px; font-size: 10px; }
  .overview-actions { align-items: center; flex-direction: row; flex-wrap: wrap; }
  .overview-actions .btn-primary { min-height: 44px; padding-inline: 13px; font-size: 12px; }
  .overview-actions .btn-quiet { min-height: 42px; padding-inline: 8px; font-size: 11px; }
  .overview-sport-art { top: 39px; right: 13px; width: 70px; height: 70px; transform: none; }
  .overview-hero::after { top: 18px; right: -23px; width: 132px; height: 132px; transform: none; }
  .week-focus { padding: 12px 12px; }
  .week-focus-head { font-size: 11px; }
  .week-focus-count { font-size: 19px; }
  .week-focus-caption { font-size: 10px; }
  .week-rhythm-mark { width: 23px; height: 23px; }
  .week-rhythm-day { font-size: 9px; }
  .overview-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .overview-metrics .metric-cell { padding: 6px 8px; }
  .overview-metrics .metric-value { font-size: 17px; }
  .overview-section-heading { align-items: center; gap: 6px; }
  .overview-section-heading p { max-width: 195px; font-size: 11px; }
  .overview-section-heading .text-button { min-height: 36px; padding-inline: 2px; font-size: 11px; }
  .training-day, .training-day:nth-child(n+5) { min-height: 77px; }
  .training-day-name { font-size: 9px; }
  .overview-tools { gap: 8px; }
  .readiness-card, .insight-card { border-radius: 16px; }
  .readiness-card { gap: 8px; }
  .readiness-icon { width: 32px; height: 32px; }
  .readiness-title { font-size: 13px; }
  .readiness-caption { font-size: 11px; }
  .readiness-card .btn { min-height: 40px; font-size: 11px; }
  .insight-text { font-size: 12px; }
  .history-row { grid-template-columns: 42px minmax(0,1fr); gap: 10px; padding: 11px; }
  .history-title { font-size: 13px; }
  .history-meta { font-size: 11px; }
  .history-stats { grid-column: 2; display: flex; gap: 9px; align-items: center; text-align: left; }
  .history-duration { margin: 0; }
  .stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 0; }
  .stat-grid .metric-cell { padding: 12px; border-bottom: 1px solid var(--line); }
  .stat-grid .metric-cell:nth-child(2n) { border-right: 0; }
  .stat-grid .metric-cell:nth-last-child(-n+2) { border-bottom: 0; }
  .stat-grid + .grid { grid-template-columns: minmax(0,1fr); margin-top: 12px; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: minmax(0,1fr); }
  .span-2 { grid-column: auto; }
  .card-pad { padding: 16px; }
  .card-header { align-items: flex-start; gap: 10px; margin-bottom: 14px; }
  .card-title { font-size: 15px; }
  .card-subtitle, .small { font-size: 12px; }
  .chart-wrap { min-height: 160px; }
  .chart-axis { font-size: 10px; }
  .plan-day-card { grid-template-columns: 42px minmax(0,1fr); gap: 10px; padding: 13px; }
  .plan-day-actions { grid-column: 2; justify-content: flex-start; gap: 8px; }
  .plan-day-actions .btn { min-width: 88px; }
  .section-heading { margin-top: 22px; }
  .session-layout { grid-template-columns: minmax(0,1fr); grid-template-areas: "timer" "main" "list"; }
  .session-side { display: contents; }
  .session-side .timer-card { grid-area: timer; }
  .session-side .session-list-card { grid-area: list; }
  .session-exercise-card { padding: 16px 13px; }
  .session-exercise-title { font-size: 22px; }
  .session-submit-row > .btn { display: none; }
  .mobile-session-sticky { display: flex; position: fixed; z-index: 35; right: 12px; bottom: calc(76px + env(safe-area-inset-bottom)); left: 12px; justify-content: center; }
  .mobile-session-sticky .btn { width: 100%; min-height: 50px; box-shadow: 0 7px 16px rgba(25,42,43,.14); }
  .toast-stack { right: 12px; left: 12px; bottom: calc(78px + env(safe-area-inset-bottom)); }
}

@media (max-width: 370px) {
  .page-content { padding-right: 14px; padding-left: 14px; }
  .overview-hero { padding: 17px; }
  .overview-session-title { max-width: 68%; font-size: 22px; }
  .overview-sport-art { right: 8px; width: 60px; height: 60px; }
  .week-focus-streak { max-width: 132px; font-size: 9px; }
  .bottom-nav-item { font-size: 9px; }
}

@media (hover: hover) and (pointer: fine) {
  .training-day:hover, .plan-day-card:hover, .history-row:hover { border-color: var(--line-strong); background-color: var(--panel-raised); }
  .bottom-nav-item:hover { color: var(--accent); background: #f8e8e2; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Gym Log v3: a mobile training journal with a track-like weekly signature. */
:root[data-theme="light"] {
  color-scheme: light;
  --bg: #e9eeea;
  --bg-soft: #dfe7e1;
  --panel: #f9fbf7;
  --panel-raised: #f1f5f0;
  --panel-deep: #e1e9e3;
  --line: #d5dfd8;
  --line-strong: #b7c7bd;
  --text: #1c2c27;
  --muted: #52665e;
  --subtle: #6f8279;
  --accent: #215c4e;
  --accent-strong: #17473b;
  --accent-soft: rgba(33, 92, 78, .12);
  --signal: #c8e957;
  --signal-strong: #b3d63f;
  --signal-soft: rgba(200, 233, 87, .25);
  --lime: var(--signal);
  --lime-strong: var(--signal-strong);
  --lime-soft: var(--signal-soft);
  --orange: #a9682e;
  --orange-soft: rgba(169, 104, 46, .13);
  --blue: #4c8291;
  --blue-soft: rgba(76, 130, 145, .12);
  --purple: #776b8c;
  --success: #2d704f;
  --danger: #b44745;
  --radius-sm: 8px;
  --radius: 12px;
  --radius-lg: 16px;
  --shadow: 0 10px 30px rgba(24, 46, 37, .12);
  --chart-grid: #dce5de;
  --chart-mark: #215c4e;
  --chart-area: #c8e957;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #151d1a;
  --bg-soft: #1a2520;
  --panel: #1c2722;
  --panel-raised: #24312b;
  --panel-deep: #26352d;
  --line: #34443b;
  --line-strong: #506358;
  --text: #edf4ee;
  --muted: #b0c0b5;
  --subtle: #8da196;
  --accent: #a8d7bd;
  --accent-strong: #c9e8d4;
  --accent-soft: rgba(168, 215, 189, .14);
  --signal: #d0ef6b;
  --signal-strong: #dff68d;
  --signal-soft: rgba(208, 239, 107, .17);
  --lime: var(--signal);
  --lime-strong: var(--signal-strong);
  --lime-soft: var(--signal-soft);
  --orange: #eab276;
  --orange-soft: rgba(234, 178, 118, .14);
  --blue: #9bc4d0;
  --blue-soft: rgba(155, 196, 208, .15);
  --purple: #c0b3d7;
  --success: #9bd5ac;
  --danger: #ed9b95;
  --radius-sm: 8px;
  --radius: 12px;
  --radius-lg: 16px;
  --shadow: 0 14px 38px rgba(0, 0, 0, .28);
  --chart-grid: #35453c;
  --chart-mark: #d0ef6b;
  --chart-area: #d0ef6b;
}

html, body { background: var(--bg); color: var(--text); }
html { -webkit-tap-highlight-color: transparent; -webkit-text-size-adjust: 100%; overscroll-behavior-y: contain; }
button, a, [role="button"] { touch-action: manipulation; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
button, input, select, textarea { font-family: inherit; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--signal); outline-offset: 2px; }
::selection { color: var(--text); background: var(--signal-soft); }

.app-shell, .main-area, .page-content { background: var(--bg); }
.sidebar { background: var(--bg); border-color: var(--line); }
.sidebar-account-scope, .sidebar-session, .profile-row { color: var(--text); background: var(--panel); border-color: var(--line); }
.brand-symbol { color: var(--accent); }
.brand-symbol svg { width: 38px; height: 38px; stroke: currentColor; stroke-width: 1.8; }
.brand-caption, .nav-label, .nav-item, .nav-subitem, .profile-caption { color: var(--muted); }
.nav-item, .nav-subitem { border-radius: 8px; transition: color 140ms ease, background-color 140ms ease, transform 140ms ease; }
.nav-item.active { color: var(--text); background: var(--panel-deep); box-shadow: none; }
.nav-item.active .nav-icon, .nav-subitem.active, .nav-disclosure-icon { color: var(--accent); }
.nav-subitem.active { background: var(--panel-raised); }
.nav-live-dot, .sidebar-session-pulse { background: var(--signal); }
.topbar { color: var(--text); background: var(--bg); border-color: var(--line); backdrop-filter: none; }
.topbar-mark { color: var(--accent); background: transparent; border: 1px solid var(--accent); border-radius: 50% 50% 50% 4px; transform: rotate(-8deg); }
.topbar-mark svg { transform: rotate(8deg); }
.topbar-title, .topbar-kicker { color: var(--text); }
.topbar-kicker { color: var(--muted); }
.topbar-account-button, .avatar, .scope-mark { color: var(--accent); background: var(--accent-soft); border-color: transparent; }
.icon-button, .coach-topbar-button { color: var(--accent); background: var(--panel); border-color: var(--line); }
.page-heading h1, h1 { color: var(--text); letter-spacing: -.04em; }
.eyebrow { color: var(--accent); }
.heading-copy, .page-heading .heading-copy { color: var(--muted); }
.overview-heading h1 { font-family: "Iowan Old Style", "Palatino Linotype", Georgia, serif; font-size: clamp(30px, 3.4vw, 40px); font-weight: 400; letter-spacing: -.035em; }
.overview-heading .heading-copy { font-size: 13px; }
.overview-title-main, .overview-title-detail { display: block; }
.overview-title-detail { margin-top: 3px; color: var(--signal); font-size: .78em; font-weight: 500; letter-spacing: -.02em; }

.btn { min-height: 44px; border-radius: 8px; font-weight: 650; transition: color 140ms ease, background-color 140ms ease, border-color 140ms ease, transform 140ms ease; }
.btn-primary { color: var(--bg); background: var(--accent); border-color: var(--accent); box-shadow: none; }
.btn-secondary, .btn-ghost { color: var(--text); background: var(--panel); border-color: var(--line-strong); }
.btn-danger { color: var(--danger); background: color-mix(in srgb, var(--danger) 12%, var(--panel)); border-color: color-mix(in srgb, var(--danger) 28%, var(--line)); }
.btn:active, .icon-button:active, .bottom-nav-item:active { transform: scale(.97); }
.card, .plan-day-card, .history-row, .schedule-card, .readiness-card, .insight-card, .session-exercise-card, .timer-card, .session-list-card, .login-card, .modal, .week-focus, .metric-cell, .coach-drawer { color: var(--text); background: var(--panel); border-color: var(--line); box-shadow: none; }
.card, .plan-day-card, .history-row, .schedule-card, .readiness-card, .insight-card, .session-exercise-card, .timer-card, .session-list-card, .login-card, .modal, .coach-drawer { border-radius: var(--radius); }
.card-title, .card-kicker, .history-title, .plan-day-title, .session-exercise-title, .modal-title { color: var(--text); }
.card-subtitle, .small, .muted, .subtle, .history-meta, .history-duration { color: var(--muted); }
.input, .select, textarea, .coach-form textarea { color: var(--text); background: var(--panel); border-color: var(--line-strong); border-radius: 8px; }
.input::placeholder, textarea::placeholder { color: var(--subtle); }
label, .field label, .checkbox-row { color: var(--text); }
input[type="checkbox"], input[type="radio"] { accent-color: var(--accent); }

.overview-feature-row { gap: 16px; }
.overview-hero { min-height: 250px; padding: 27px 30px; color: #f7fbf6; background: #193e36; border-radius: 14px 14px 14px 4px; }
.overview-hero::after { top: 50%; right: -76px; width: 300px; height: 168px; border-color: rgba(229, 245, 226, .22); border-radius: 50%; box-shadow: 0 0 0 13px rgba(229, 245, 226, .045), 0 0 0 29px rgba(229, 245, 226, .035); transform: translateY(-50%) rotate(-22deg); }
.overview-hero::before { content: ""; position: absolute; z-index: -1; top: 50%; right: -30px; width: 215px; height: 120px; border: 1px dashed rgba(208, 239, 107, .34); border-radius: 50%; transform: translateY(-50%) rotate(-22deg); pointer-events: none; }
.overview-session-title { color: #f7fbf6; }
.overview-eyebrow, .overview-lede, .overview-session-meta { color: #d2e2d8; }
.overview-live-dot { background: var(--signal); box-shadow: none; }
.overview-session-meta .sport-icon { color: var(--signal); }
.overview-sport-art { color: rgba(208, 239, 107, .8); }
.overview-sport-art .sport-icon, .overview-sport-art .ui-icon { width: 48px; height: 48px; stroke-width: 1.2; }
.overview-actions .btn-primary { color: #193329; background: var(--signal); border-color: var(--signal); }
.overview-actions .btn-quiet { color: #eff5ef; }
.week-focus { gap: 10px; padding: 18px; background: var(--panel-deep); border: 0; border-radius: 4px 14px 14px 14px; }
.week-focus-head { color: var(--muted); }
.week-focus-head svg { color: var(--accent); }
.week-focus-count { color: var(--text); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-weight: 500; font-variant-numeric: tabular-nums; }
.week-focus-count span, .week-focus-caption { color: var(--muted); }
.week-focus-caption { font-size: 12px; }
.week-focus-streak { padding: 0 0 0 8px; color: var(--accent); background: transparent; border-left: 2px solid var(--signal); border-radius: 0; font-size: 11px; }
.week-rhythm { position: relative; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; margin-top: 6px; }
.week-rhythm-track { position: absolute; top: 13px; right: 7%; left: 7%; height: 1px; background: var(--line-strong); pointer-events: none; }
.week-rhythm-day { position: relative; z-index: 1; gap: 6px; color: var(--muted); font-size: 10px; }
.week-rhythm-mark { width: 27px; height: 27px; color: var(--muted); background: var(--panel); border: 1px solid var(--line-strong); border-radius: 50%; }
.week-rhythm-day.is-complete .week-rhythm-mark { color: #1c3025; background: var(--signal); border-color: var(--signal); }
.week-rhythm-day.has-plan:not(.is-complete) .week-rhythm-mark { color: var(--accent); background: var(--panel); border-color: var(--accent); }
.week-rhythm-day.is-today > span:last-child { color: var(--text); font-weight: 750; }
.overview-metrics { border-color: var(--line-strong); }
.overview-metrics .metric-cell { background: transparent; border-color: var(--line); }
.metric-label, .metric-caption { color: var(--muted); }
.overview-metrics .metric-label { font-size: 12px; }
.overview-metrics .metric-caption { font-size: 11px; }
.metric-value { color: var(--text); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-variant-numeric: tabular-nums; font-weight: 500; }
.overview-section-heading h2 { color: var(--text); }
.overview-section-heading p { color: var(--muted); }
.overview-section-heading .text-button, .text-button, .insight-open { color: var(--accent); }
.training-day { min-height: 120px; color: var(--text); background: var(--panel); border-color: var(--line); border-radius: 10px; }
.training-day-top, .training-day-meta { color: var(--muted); }
.training-day-top strong, .training-day-title { color: var(--text); }
.training-day-mark { color: var(--accent); }
.training-day.is-complete { background: color-mix(in srgb, var(--success) 9%, var(--panel)); }
.training-day.is-complete .training-day-mark { color: var(--success); }
.training-day.is-today { border-color: var(--accent); box-shadow: inset 0 -2px 0 var(--signal); }
.readiness-card, .insight-card { border-radius: 12px; }
.readiness-icon { color: var(--accent); background: transparent; border: 1px solid var(--line-strong); border-radius: 50%; }
.readiness-title, .insight-text { color: var(--text); }
.readiness-caption, .insight-label { color: var(--muted); }
.insight-card { background: var(--panel-deep); border-color: var(--line); }
.history-row { border-radius: 4px 10px 10px 4px; }
.history-date { color: var(--text); background: var(--panel-deep); border-radius: 8px; }
.history-date span { color: var(--muted); }
.history-title { color: var(--text); }

.stat-grid { background: var(--panel); border-color: var(--line); border-radius: 12px; }
.stat-grid .metric-cell { background: var(--panel); border-color: var(--line); }
.chart-wrap { color: var(--text); }
.chart-gridline { stroke: var(--chart-grid); }
.chart-axis { fill: var(--muted); }
.chart-line { stroke: var(--chart-mark); }
.chart-point { fill: var(--chart-mark); stroke: var(--panel); }
.chart-bar-secondary { fill: var(--chart-mark); }
.chart-empty { color: var(--muted); background: var(--panel-raised); border-radius: 10px; }
.plan-day-card, .schedule-card { background: var(--panel); border-color: var(--line); border-radius: 12px; }
.day-token { color: var(--accent); background: var(--accent-soft); border-color: var(--line); border-radius: 8px; }
.plan-day-meta { font-size: 12px; }
.schedule-card.today { border-color: var(--accent); }
.feel-chip { color: var(--muted); background: var(--panel); border-color: var(--line-strong); }
.feel-chip.active, .feel-chip.selected { color: var(--text); background: var(--signal-soft); border-color: var(--accent); }
.session-page, .session-page h1 { color: var(--text); }
.session-exercise-card, .timer-card, .session-list-card { background: var(--panel); border-color: var(--line); border-radius: 12px; }
.timer-value, .session-exercise-title { color: var(--text); }
.timer-ring { background: conic-gradient(var(--signal) var(--timer-progress), var(--line) 0); }
.timer-ring.resting { background: conic-gradient(var(--orange) var(--timer-progress), var(--line) 0); }
.set-progress-dot.done { background: var(--signal); }
.set-progress-dot.current { background: var(--signal-soft); box-shadow: 0 0 0 3px var(--signal-soft); }
.coach-drawer { color: var(--text); background: var(--panel); border-color: var(--line-strong); box-shadow: var(--shadow); }
.coach-header, .coach-form { border-color: var(--line); }
.coach-avatar { color: var(--accent); background: var(--panel-deep); }
.coach-heading strong, .coach-message { color: var(--text); }
.coach-heading span, .coach-context, .coach-footnote { color: var(--muted); }
.coach-message { background: var(--panel-raised); border-color: var(--line); }
.coach-message.from-user { color: var(--panel); background: var(--accent); border-color: var(--accent); }
.coach-form { background: var(--panel-raised); }
.modal { color: var(--text); background: var(--panel); border-color: var(--line-strong); box-shadow: var(--shadow); }
.modal-backdrop { background: rgba(12, 24, 19, .54); }
.modal-copy, .empty-state { color: var(--muted); }
.toast { color: var(--text); background: var(--panel); border-color: var(--line-strong); box-shadow: var(--shadow); }
.empty-icon { color: var(--accent); background: var(--accent-soft); }
.badge, .badge-muted { color: var(--muted); background: var(--panel-raised); border-color: var(--line); }
.badge-lime { color: var(--text); background: var(--signal-soft); border-color: var(--line); }
.badge-success { color: var(--success); background: color-mix(in srgb, var(--success) 13%, var(--panel)); border-color: var(--line); }
.badge-blue { color: var(--blue); background: var(--blue-soft); border-color: var(--line); }
.badge-orange { color: var(--orange); background: var(--orange-soft); border-color: var(--line); }
.login-shell { background: var(--bg); }
.login-showcase { color: var(--text); background: var(--bg); }
.login-showcase-copy h1 { color: var(--text); }
.login-showcase-copy p, .login-footer, .login-quote { color: var(--muted); }
.login-card { color: var(--text); background: var(--panel); }
.login-card .btn-primary { color: var(--bg); background: var(--accent); }
.page-content { animation: route-arrive 190ms cubic-bezier(.2,.75,.25,1) both; }
@keyframes route-arrive { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

.appearance-settings { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; margin-bottom: 14px; }
.appearance-copy .eyebrow { margin-bottom: 6px; }
.appearance-copy .card-title { margin: 0; }
.appearance-copy .card-subtitle { margin: 5px 0 0; }
.appearance-current { margin: 8px 0 0; color: var(--muted); font-size: 12px; }
.theme-options { display: grid; grid-template-columns: repeat(3, minmax(86px, 1fr)); gap: 6px; }
.theme-option { min-height: 64px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 8px; color: var(--muted); background: var(--panel); border: 1px solid var(--line); border-radius: 9px; font-size: 12px; font-weight: 650; cursor: pointer; transition: color 140ms ease, background-color 140ms ease, border-color 140ms ease, transform 140ms ease; }
.theme-option-symbol { color: var(--accent); font-size: 19px; line-height: 1; }
.theme-option.is-selected { color: var(--text); background: var(--panel-deep); border-color: var(--accent); box-shadow: inset 0 -2px 0 var(--signal); }
.theme-option.is-selected .theme-option-symbol { color: var(--accent); }

.bottom-nav { color: var(--muted); background: var(--panel); border-color: var(--line); box-shadow: 0 -4px 16px rgba(20, 39, 30, .06); }
.bottom-nav-item { color: var(--muted); border-radius: 8px; transition: color 140ms ease, background-color 140ms ease, transform 120ms ease; }
.bottom-nav-item { font-size: 11px; }
.bottom-nav-item.active { color: var(--text); background: transparent; }
.bottom-nav-item.active::before { width: 18px; background: var(--signal); }
.mobile-session-sticky .btn { box-shadow: 0 7px 17px rgba(18, 42, 30, .18); }
.input, .select, textarea, .coach-form textarea { font-size: 16px; }

@media (hover: hover) and (pointer: fine) {
  .nav-item:hover, .nav-subitem:hover, .bottom-nav-item:hover { color: var(--text); background: var(--panel-raised); }
  .btn:hover { transform: translateY(-1px); }
  .btn-primary:hover { color: var(--bg); background: var(--accent-strong); box-shadow: none; }
  .overview-actions .btn-primary:hover { color: #193329; background: var(--signal-strong); }
  .btn-secondary:hover, .btn-ghost:hover, .theme-option:hover { color: var(--text); background: var(--panel-raised); border-color: var(--line-strong); }
  .training-day:hover, .plan-day-card:hover, .history-row:hover { background-color: var(--panel-raised); border-color: var(--line-strong); }
  .topbar-account-button:hover, .coach-topbar-button:hover, .icon-button:hover { color: var(--accent); background: var(--panel-raised); border-color: var(--line-strong); }
}

@media (max-width: 820px) {
  .topbar { height: auto; min-height: calc(58px + env(safe-area-inset-top)); padding-top: env(safe-area-inset-top); }
  .bottom-nav { padding-bottom: calc(7px + env(safe-area-inset-bottom)); }
  .overview-feature-row { gap: 10px; }
  .overview-hero { min-height: 222px; padding: 20px; border-radius: 12px 12px 12px 3px; }
  .overview-hero::after { right: -115px; width: 205px; height: 142px; }
  .overview-hero::before { right: -78px; width: 155px; height: 106px; }
  .overview-sport-art { right: 18px; width: 74px; height: 74px; }
  .week-focus { padding: 14px; border-radius: 3px 12px 12px 12px; }
  .week-rhythm-mark { width: 25px; height: 25px; }
  .week-rhythm-track { top: 12px; }
  .theme-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .plan-page-heading { display: block; }
  .plan-page-heading h1 { max-width: none; }
  .plan-page-heading .heading-actions { display: flex; flex-direction: row; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
  .plan-page-heading .heading-actions .btn { flex: 1 1 auto; justify-content: center; }
  .overview-heading { margin-bottom: 14px; }
  .overview-heading h1 { font-size: 31px; }
  .overview-heading .heading-copy { margin-top: 3px; font-size: 12px; }
  .overview-hero { min-height: 220px; padding: 18px; }
  .overview-session-title { max-width: 71%; font-size: 24px; }
  .overview-lede { max-width: 75%; font-size: 12px; }
  .overview-session-meta { max-width: 78%; font-size: 11px; }
  .overview-sport-art { top: 45px; right: 13px; width: 68px; height: 68px; }
  .overview-sport-art .ui-icon { width: 42px; height: 42px; }
  .week-focus-streak { max-width: 142px; white-space: normal; }
  .week-rhythm-day { gap: 6px; font-size: 11px; }
  .week-rhythm-mark { width: 25px; height: 25px; }
  .overview-metrics .metric-value { font-size: 16px; }
  .overview-metrics .metric-caption { font-size: 11px; }
  .overview-metrics .metric-caption { display: block; font-size: 10px; }
  .training-day, .training-day:nth-child(n+5) { min-height: 76px; }
  .training-day-name { font-size: 10px; }
  .training-day-mark { width: 23px; height: 23px; color: var(--accent); background: var(--panel); border: 1px solid var(--line); border-radius: 50%; }
  .training-day.is-today { color: var(--text); background: var(--panel); border-color: var(--accent); box-shadow: inset 0 -2px 0 var(--signal); }
  .training-day.is-today .training-day-top strong, .training-day.is-today .training-day-name { color: var(--accent); }
  .training-day.is-complete .training-day-mark { color: #1c3025; background: var(--signal); border-color: var(--signal); }
  .appearance-settings { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .theme-options { gap: 5px; }
  .theme-option { min-height: 58px; gap: 3px; border-radius: 8px; font-size: 11px; }
  .theme-option-symbol { font-size: 17px; }
  .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .chart-axis { font-size: 22px !important; }
  .chart-wrap { min-height: 0; }
  .page-content { padding-bottom: calc(112px + env(safe-area-inset-bottom)); }
}

@media (max-width: 370px) {
  .schedule-strip { margin-right: -14px; }
}

@media (pointer: coarse) {
  .input, .select, textarea { font-size: 16px; }
  button, a, [role="button"] { -webkit-tap-highlight-color: transparent; }
}

@media (hover: none) {
  .nav-item:hover, .nav-subitem:hover { color: var(--muted); background: transparent; transform: none; }
  .nav-item.active:hover { color: var(--text); background: var(--panel-deep); }
  .bottom-nav-item:hover { color: var(--muted); background: transparent; transform: none; }
  .bottom-nav-item.active:hover { color: var(--text); background: transparent; }
  .btn:hover, .icon-button:hover, .coach-topbar-button:hover, .coach-launcher:hover { transform: none; }
  .btn-primary:hover { color: var(--bg); background: var(--accent); border-color: var(--accent); box-shadow: none; }
  .overview-actions .btn-primary:hover { color: #193329; background: var(--signal); border-color: var(--signal); }
  .btn-secondary:hover, .btn-ghost:hover { color: var(--text); background: var(--panel); border-color: var(--line-strong); }
  .btn-quiet:hover { color: #eff5ef; background: transparent; }
  .topbar-account-button:hover { color: var(--accent); background: var(--accent-soft); border-color: transparent; }
  .icon-button:hover, .coach-topbar-button:hover { color: var(--accent); background: var(--panel); border-color: var(--line); }
  .schedule-card:hover, .plan-day-card:hover, .history-row:hover { background: var(--panel); border-color: var(--line); transform: none; }
  .schedule-card.today:hover { border-color: var(--accent); }
  .text-button:hover, .auth-switch:hover, .insight-open:hover { color: var(--accent); text-decoration: none; }
  .input:hover, .textarea:hover { border-color: var(--line-strong); }
  .feel-chip:hover { color: var(--muted); background: var(--panel); border-color: var(--line-strong); }
  .feel-chip.selected:hover { color: var(--text); background: var(--signal-soft); border-color: var(--accent); }
  .session-ex-row:hover { color: var(--muted); background: transparent; }
  .modal-close:hover { color: var(--muted); background: transparent; }
  .coach-launcher:hover { background: var(--signal); box-shadow: none; }
  .coach-prompts button:hover { background: var(--panel); }
  .coach-video-action:hover { color: var(--accent); background: var(--panel); border-color: var(--line); }
  .theme-option:hover { color: var(--muted); background: var(--panel); border-color: var(--line); }
  .theme-option.is-selected:hover { color: var(--text); background: var(--panel-deep); border-color: var(--accent); }
  .admin-launcher:hover { color: var(--text); border-color: var(--line-strong); }
}

@media (prefers-reduced-motion: reduce) {
  .page-content { animation: none !important; }
}

/* First-run guide and administrator workspace */
.admin-launcher { display:flex; align-items:center; gap:7px; min-height:38px; padding:0 12px; border:1px solid var(--line-strong); border-radius:999px; color:var(--ink); background:var(--panel); font-size:12px; font-weight:750; cursor:pointer; }
.admin-launcher:hover { border-color:var(--accent); color:var(--accent); }
@media (hover: none) {
  .admin-launcher:hover { color:var(--text); border-color:var(--line-strong); }
}
.onboarding-backdrop { z-index:90; }
.onboarding-modal { width:min(100%, 510px); padding:26px; overflow:hidden; border-color:var(--line-strong); background:var(--panel); animation:modal-arrive .32s cubic-bezier(.2,.8,.2,1) both; }
.onboarding-top { display:flex; align-items:center; justify-content:space-between; }
.onboarding-top .brand-lockup { display:flex; align-items:center; gap:10px; }
.onboarding-top .brand-mark { display:grid; place-items:center; width:35px; height:35px; border-radius:12px; background:var(--accent); color:#1d2018; font-size:13px; font-weight:900; }
.onboarding-top .brand-name { font-size:11px; font-weight:850; letter-spacing:.14em; }
.onboarding-count { margin-top:32px; color:var(--accent); font-size:10px; font-weight:850; letter-spacing:.14em; }
.onboarding-progress { display:flex; gap:6px; margin-top:12px; }
.onboarding-progress span { height:3px; flex:1; border-radius:99px; background:var(--line); transition:background .2s ease; }
.onboarding-progress span.is-active { background:var(--accent); }
.onboarding-art { position:relative; display:grid; place-items:center; width:116px; height:116px; margin:34px auto 24px; border:1px solid var(--line-strong); border-radius:34px; background:radial-gradient(circle at 50% 50%, color-mix(in srgb,var(--accent) 18%,transparent), transparent 70%),var(--panel-raised); }
.onboarding-art span { position:relative; z-index:1; color:var(--accent); font-size:42px; font-weight:800; }
.onboarding-art i,.onboarding-art b { position:absolute; width:138px; height:1px; background:var(--line-strong); transform:rotate(44deg); }
.onboarding-art b { transform:rotate(-44deg); }
.onboarding-modal h2 { max-width:400px; margin:0 auto; text-align:center; font-size:clamp(27px,6vw,38px); letter-spacing:-.045em; line-height:1.05; }
.onboarding-copy { max-width:390px; min-height:72px; margin:14px auto 8px; text-align:center; line-height:1.65; }
.onboarding-footer { margin-top:25px; }
.admin-backdrop { z-index:80; align-items:flex-start; padding:clamp(12px,4vh,40px) 14px; overflow:auto; }
.admin-modal { width:min(100%, 900px); max-height:min(88dvh,900px); display:flex; flex-direction:column; padding:0; overflow:hidden; background:var(--panel); animation:modal-arrive .24s cubic-bezier(.2,.8,.2,1) both; }
.admin-header { flex:none; padding:22px 24px 18px; margin:0; border-bottom:1px solid var(--line); }
.admin-header .modal-title { margin:4px 0; font-size:30px; letter-spacing:-.04em; }
.admin-stats { flex:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:14px 24px; gap:9px; border-bottom:1px solid var(--line); }
.admin-stat { display:flex; flex-direction:column; gap:2px; padding:12px 14px; border:1px solid var(--line); border-radius:13px; background:var(--panel-raised); }
.admin-stat strong { font-size:22px; line-height:1; letter-spacing:-.04em; }
.admin-stat span { color:var(--muted); font-size:11px; font-weight:650; }
.admin-tabs { flex:none; display:flex; align-items:center; gap:7px; padding:12px 24px; border-bottom:1px solid var(--line); }
.admin-tab,.admin-refresh { display:inline-flex; align-items:center; gap:7px; min-height:37px; padding:0 13px; border:1px solid transparent; border-radius:10px; background:transparent; color:var(--muted); font:inherit; font-size:12px; font-weight:750; cursor:pointer; }
.admin-tab.is-active { border-color:var(--line); background:var(--panel-raised); color:var(--ink); }
.admin-tab span { display:grid; place-items:center; min-width:20px; height:20px; padding:0 5px; border-radius:99px; background:var(--accent-soft); color:var(--accent); font-size:10px; }
.admin-refresh { margin-left:auto; border-color:var(--line); font-size:19px; }
.admin-body { flex:1; min-height:0; padding:20px 24px 26px; overflow:auto; overscroll-behavior:contain; }
.admin-section-intro { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
.admin-section-intro h3 { margin:0; font-size:17px; letter-spacing:-.02em; }
.admin-section-intro p { margin:4px 0 0; color:var(--muted); font-size:12px; }
.admin-create-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; align-items:end; gap:11px; padding:15px; margin-bottom:15px; border:1px solid var(--line); border-radius:15px; background:var(--panel-raised); }
.admin-create-form .field { gap:6px; }
.admin-create-form label,.admin-tools-content>form>label { color:var(--muted); font-size:11px; font-weight:700; }
.admin-create-form .input,.admin-tools-content .input { min-height:40px; }
.admin-account-list { display:grid; gap:9px; }
.admin-account-card { padding:14px 15px 10px; border:1px solid var(--line); border-radius:14px; background:var(--panel-raised); }
.admin-account-heading { display:flex; justify-content:space-between; gap:12px; }
.admin-account-name { display:flex; align-items:center; gap:8px; font-size:14px; font-weight:800; }
.admin-account-meta { margin-top:5px; color:var(--muted); font-size:11px; overflow-wrap:anywhere; }
.admin-account-dot { width:9px; height:9px; flex:none; margin:4px; border-radius:50%; background:#a0a2a0; }
.admin-account-dot.is-active { background:#6cbe79; box-shadow:0 0 0 4px color-mix(in srgb,#6cbe79 15%,transparent); }
.admin-account-facts { display:flex; flex-wrap:wrap; gap:14px; margin-top:12px; color:var(--muted); font-size:10px; font-weight:700; }
.admin-account-tools { margin-top:10px; border-top:1px solid var(--line); }
.admin-account-tools summary { padding:10px 0 2px; color:var(--accent); font-size:11px; font-weight:800; cursor:pointer; }
.admin-tools-content { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:12px; padding:14px 0 4px; }
.admin-tools-content>form { display:grid; align-content:start; gap:8px; padding:12px; border:1px solid var(--line); border-radius:12px; }
.admin-inline-field { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--muted); font-size:11px; font-weight:700; }
.admin-inline-field .select { width:145px; }
.admin-tools-content .checkbox-row { margin:0; font-size:11px; }
.admin-delete-form { border-color:color-mix(in srgb,#d35a4c 40%,var(--line)) !important; }
.admin-delete-form p { margin:0; color:var(--muted); font-size:10px; line-height:1.5; }
.admin-settings-form { display:grid; gap:16px; max-width:600px; }
.admin-toggle-row { justify-content:space-between; align-items:center; padding:14px; border:1px solid var(--line); border-radius:13px; background:var(--panel-raised); }
.admin-toggle-row span { display:grid; gap:4px; }
.admin-toggle-row strong { font-size:13px; }
.admin-toggle-row small,.admin-settings-form .field small { color:var(--muted); font-size:11px; line-height:1.5; }
.admin-system-list { display:grid; gap:0; max-width:600px; margin-top:24px; border-top:1px solid var(--line); }
.admin-system-list>div { display:flex; justify-content:space-between; gap:12px; padding:12px 2px; border-bottom:1px solid var(--line); font-size:11px; }
.admin-system-list span { color:var(--muted); }
.admin-system-list strong { text-align:right; }
.admin-message { margin:12px 24px 0; padding:10px 12px; border-radius:10px; font-size:12px; }
.admin-message-error { color:#b64237; background:color-mix(in srgb,#d35a4c 10%,var(--panel)); }
.btn-danger { border:1px solid color-mix(in srgb,#d35a4c 45%,var(--line)); color:#b64237; background:color-mix(in srgb,#d35a4c 8%,var(--panel)); }
.coach-citations { display:grid; gap:5px; margin-top:9px; padding-top:8px; border-top:1px solid var(--line); }
.coach-citations>span { color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.coach-citations a { color:var(--accent); font-size:10px; line-height:1.45; text-decoration:none; }
.coach-citations a:hover,.musclewiki-link:hover { text-decoration:underline; }
.exercise-demo-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:18px; }
.exercise-demo-footer>div { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.musclewiki-link { color:var(--accent); }
@keyframes modal-arrive { from { opacity:0; transform:translateY(8px) scale(.99); } to { opacity:1; transform:translateY(0) scale(1); } }
@media(max-width:640px) {
  .admin-backdrop { align-items:flex-end; padding:0; }
  .admin-modal { width:100%; max-height:94dvh; border-radius:20px 20px 0 0; padding-bottom:env(safe-area-inset-bottom); }
  .admin-header { padding:17px 17px 13px; }
  .admin-header .modal-title { font-size:25px; }
  .admin-stats { padding:10px 14px; gap:6px; }
  .admin-stat { padding:9px; border-radius:10px; }
  .admin-stat strong { font-size:18px; }
  .admin-stat span { font-size:9px; }
  .admin-tabs { padding:9px 14px; }
  .admin-body { padding:15px 14px 20px; }
  .admin-create-form { grid-template-columns:1fr 1fr; padding:12px; gap:9px; }
  .admin-create-form>.btn { grid-column:1/-1; width:100%; }
  .admin-tools-content { grid-template-columns:1fr; }
  .onboarding-modal { padding:20px; border-radius:22px; }
  .onboarding-count { margin-top:25px; }
  .onboarding-art { width:94px; height:94px; margin:27px auto 21px; border-radius:28px; }
  .onboarding-art i,.onboarding-art b { width:112px; }
  .onboarding-footer { gap:8px; }
  .onboarding-footer .btn { padding-inline:12px; }
  .exercise-demo-footer { align-items:stretch; flex-direction:column; }
  .exercise-demo-footer>div { justify-content:stretch; }
  .exercise-demo-footer>div .btn { flex:1; }
}

/* Onboarding and consent controls */
.onboarding-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.onboarding-choice-grid button{display:flex;min-height:150px;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px;text-align:left;white-space:normal}.onboarding-choice-grid button strong{font-size:1.05rem}.onboarding-choice-grid button span{font-size:.88rem;line-height:1.5;opacity:.78}.signup-consents{display:grid;gap:10px;margin:8px 0 14px}.signup-consents .checkbox-row{align-items:flex-start;font-size:.82rem;line-height:1.45}.signup-consents a,.goal-settings-card a{color:var(--accent,#c5f36c);text-decoration:underline;text-underline-offset:3px}.goal-settings-card{margin-bottom:14px}.goal-settings-card .checkbox-row{align-items:flex-start;margin-top:12px;font-size:.84rem;line-height:1.5}.goal-settings-card .modal-footer{justify-content:space-between}.coach-footnote ul{margin:8px 0;padding-left:20px}.coach-footnote p{margin:8px 0}@media(max-width:600px){.onboarding-choice-grid{grid-template-columns:1fr}.onboarding-choice-grid button{min-height:112px}.goal-settings-card .modal-footer{align-items:flex-start;flex-direction:column}}
