:root {
  --ink: #101410;
  --muted: #68726b;
  --paper: #f3f1e9;
  --card: #fffdf7;
  --forest: #050806;
  --forest-2: #0d120e;
  --lime: #b7ff31;
  --lime-dark: #587d08;
  --coral: #ff765c;
  --amber: #f2b84b;
  --blue: #78a6ff;
  --border: rgba(21, 27, 23, .12);
  --shadow: 0 18px 50px rgba(24, 34, 26, .09);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 92% 4%, rgba(183, 255, 49, .18), transparent 21rem),
    var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

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

.app-shell { min-height: 100vh; }

.topbar {
  position: sticky;
  z-index: 20;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 72px;
  padding: 12px max(20px, calc((100vw - 1180px) / 2));
  color: white;
  border-bottom: 1px solid rgba(255,255,255,.08);
  background: rgba(5, 8, 6, .96);
  backdrop-filter: blur(16px);
}

.brand { display: flex; gap: 12px; align-items: center; }
.brand-mark {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  color: var(--forest);
  border-radius: 12px;
  background: var(--lime);
  box-shadow: 0 0 24px rgba(183,255,49,.2);
  font-size: 21px;
  font-weight: 950;
  line-height: 1;
}
.brand-copy { display: grid; line-height: 1.05; }
.brand-copy strong { font-size: 15px; letter-spacing: .07em; text-transform: uppercase; }
.brand-copy span { margin-top: 4px; color: #aeb9b0; font-size: 12px; }

.privacy-pill {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 11px;
  color: #d7dfd8;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.04);
  font-size: 12px;
  font-weight: 750;
}
.privacy-pill::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 3px rgba(183,255,49,.12); }

main { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 30px 0 110px; }

.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
.eyebrow { margin: 0 0 7px; color: var(--lime-dark); font-size: 12px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 650px; margin-bottom: 6px; font-size: clamp(33px, 5vw, 56px); line-height: .98; letter-spacing: -.055em; }
.page-head p:last-child { margin-bottom: 0; color: var(--muted); font-size: 14px; }
.date-control { flex: 0 0 auto; }
.date-control label { display: block; margin: 0 0 6px 2px; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }

.field-input, .field-select, .field-textarea, input[type="date"] {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 13px;
  outline: 0;
  background: rgba(255,255,255,.72);
  color: var(--ink);
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.field-input, .field-select, input[type="date"] { min-height: 47px; padding: 0 13px; }
.field-textarea { min-height: 92px; padding: 12px 13px; resize: vertical; }
.field-input:focus, .field-select:focus, .field-textarea:focus, input[type="date"]:focus { border-color: #82bd0a; box-shadow: 0 0 0 4px rgba(183,255,49,.24); background: white; }

.hero-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(290px, .75fr); gap: 18px; }
.readiness-card, .metric-card, .panel, .suggestion-card {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 24px;
  background: var(--card);
  box-shadow: var(--shadow);
}
.readiness-card { position: relative; min-height: 265px; padding: 27px; color: white; background: var(--forest); }
.readiness-card::after {
  position: absolute;
  width: 260px;
  height: 260px;
  right: -70px;
  bottom: -130px;
  border: 45px solid rgba(183,255,49,.1);
  border-radius: 50%;
  content: "";
}
.readiness-top { position: relative; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.status-kicker { margin-bottom: 8px; color: #aeb9b0; font-size: 12px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.status-title { margin: 0 0 9px; font-size: clamp(30px, 4vw, 48px); line-height: 1; letter-spacing: -.045em; }
.status-copy { max-width: 610px; margin: 0; color: #ccd3cd; font-size: 15px; line-height: 1.55; }
.score-ring {
  --score: 82;
  display: grid;
  flex: 0 0 90px;
  width: 90px;
  height: 90px;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(var(--lime) calc(var(--score) * 1%), rgba(255,255,255,.12) 0);
}
.score-ring::before { position: absolute; width: 70px; height: 70px; border-radius: 50%; background: var(--forest); content: ""; }
.score-ring span { position: relative; z-index: 1; display: grid; text-align: center; font-size: 24px; font-weight: 900; line-height: .75; }
.score-ring small { margin-top: 7px; color: #aeb9b0; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.status-flags { position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.flag { padding: 8px 11px; border-radius: 10px; background: rgba(255,255,255,.07); color: #d9e0da; font-size: 12px; font-weight: 750; }
.flag.good { color: var(--lime); background: rgba(183,255,49,.1); }
.flag.warn { color: #ffd67f; background: rgba(242,184,75,.12); }
.flag.risk { color: #ff9b88; background: rgba(255,118,92,.13); }

.metric-stack { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.metric-card { min-height: 126px; padding: 18px; box-shadow: none; }
.metric-card.wide { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; min-height: 127px; background: #e9f3ca; }
.metric-label { color: var(--muted); font-size: 11px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.metric-value { margin-top: 10px; font-size: 29px; font-weight: 900; letter-spacing: -.045em; }
.metric-sub { margin-top: 4px; color: var(--muted); font-size: 12px; }
.streak { width: 66px; height: 66px; display: grid; place-items: center; border-radius: 20px; background: var(--lime); color: var(--forest); font-size: 23px; font-weight: 950; transform: rotate(2deg); }

.section-nav { position: sticky; z-index: 15; top: 73px; display: flex; gap: 5px; margin: 22px 0 18px; padding: 5px; border: 1px solid var(--border); border-radius: 16px; background: rgba(243,241,233,.91); backdrop-filter: blur(12px); }
.nav-btn { flex: 1; min-height: 44px; padding: 8px 12px; color: var(--muted); border: 0; border-radius: 12px; background: transparent; font-size: 13px; font-weight: 850; }
.nav-btn.active { color: white; background: var(--forest); box-shadow: 0 5px 16px rgba(16,23,17,.15); }

.view { display: none; }
.view.active { display: block; animation: appear .22s ease; }
@keyframes appear { from { opacity: .55; transform: translateY(4px); } to { opacity: 1; transform: none; } }

.panel { padding: 24px; }
.panel + .panel { margin-top: 16px; }
.panel-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 20px; }
.panel-head h2 { margin-bottom: 4px; font-size: 23px; letter-spacing: -.03em; }
.panel-head p { margin-bottom: 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.step-count { flex: 0 0 auto; padding: 7px 10px; border-radius: 999px; color: var(--lime-dark); background: rgba(183,255,49,.25); font-size: 11px; font-weight: 900; }

.form-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 15px; }
.field { grid-column: span 4; }
.field.half { grid-column: span 6; }
.field.full { grid-column: 1 / -1; }
.field label, .group-label { display: flex; justify-content: space-between; gap: 8px; margin: 0 0 7px 2px; color: #414943; font-size: 12px; font-weight: 820; }
.field label small { color: var(--muted); font-size: 11px; font-weight: 650; }
.range-wrap { display: flex; align-items: center; gap: 12px; min-height: 47px; padding: 0 12px; border: 1px solid var(--border); border-radius: 13px; background: rgba(255,255,255,.72); }
input[type="range"] { flex: 1; accent-color: var(--forest); }
.range-value { display: grid; width: 33px; height: 30px; place-items: center; border-radius: 9px; background: var(--forest); color: white; font-size: 12px; font-weight: 900; }

.segmented { display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; }
.seg-btn { min-height: 45px; padding: 8px 6px; border: 1px solid var(--border); border-radius: 12px; color: var(--muted); background: rgba(255,255,255,.58); font-size: 12px; font-weight: 800; }
.seg-btn.active { color: var(--forest); border-color: #a5c84b; background: var(--lime); box-shadow: 0 5px 13px rgba(147,183,55,.15); }

.pain-alert { display: none; grid-column: 1 / -1; align-items: flex-start; gap: 10px; margin-top: -3px; padding: 12px 14px; color: #813a2c; border: 1px solid rgba(255,118,92,.28); border-radius: 13px; background: rgba(255,118,92,.1); font-size: 12px; line-height: 1.45; }
.pain-alert.visible { display: flex; }
.pain-alert strong { display: block; margin-bottom: 2px; }

.meal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.meal-field { position: relative; }
.meal-field span { position: absolute; top: 11px; left: 13px; color: var(--lime-dark); font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.meal-field textarea { min-height: 88px; padding-top: 30px; }
.avoid-row { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 13px; }
.avoid-row span { padding: 7px 9px; color: #65534e; border: 1px solid #ded2ce; border-radius: 999px; background: #f7eeeb; font-size: 11px; font-weight: 720; }

.supp-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.supp-card { position: relative; min-height: 105px; padding: 14px; border: 1px solid var(--border); border-radius: 15px; background: rgba(255,255,255,.56); transition: .18s ease; cursor: pointer; }
.supp-card:hover { border-color: #9bb742; transform: translateY(-1px); }
.supp-card.checked { border-color: #a5c84b; background: #edf6d3; }
.supp-card input { position: absolute; opacity: 0; pointer-events: none; }
.supp-check { display: grid; width: 24px; height: 24px; margin-bottom: 12px; place-items: center; border: 1px solid #9ca59e; border-radius: 8px; color: transparent; background: white; font-size: 14px; font-weight: 950; }
.supp-card.checked .supp-check { color: var(--forest); border-color: var(--lime); background: var(--lime); }
.supp-name { display: block; margin-bottom: 3px; font-size: 13px; font-weight: 900; }
.supp-note { color: var(--muted); font-size: 10px; line-height: 1.3; }

.save-bar { position: sticky; bottom: 14px; z-index: 13; display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 18px; padding: 12px 13px 12px 18px; color: white; border-radius: 18px; background: rgba(16,23,17,.96); box-shadow: 0 18px 45px rgba(16,23,17,.25); backdrop-filter: blur(14px); }
.save-copy strong { display: block; font-size: 13px; }
.save-copy span { color: #aeb9b0; font-size: 11px; }
.primary-btn { min-height: 45px; padding: 0 20px; border: 0; border-radius: 12px; background: var(--lime); color: var(--forest); font-weight: 900; box-shadow: 0 6px 20px rgba(183,255,49,.16); }
.primary-btn:active { transform: translateY(1px); }

.today-layout { display: grid; grid-template-columns: 1.1fr .9fr; gap: 16px; }
.action-list { display: grid; gap: 9px; }
.action-item { display: flex; gap: 12px; padding: 13px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.58); }
.action-num { display: grid; flex: 0 0 28px; width: 28px; height: 28px; place-items: center; border-radius: 9px; background: var(--forest); color: var(--lime); font-size: 11px; font-weight: 900; }
.action-copy strong { display: block; margin: 1px 0 3px; font-size: 13px; }
.action-copy span { color: var(--muted); font-size: 12px; line-height: 1.4; }
.suggestion-card { padding: 21px; color: white; background: #233024; box-shadow: none; }
.suggestion-card .eyebrow { color: var(--lime); }
.suggestion-card h3 { margin-bottom: 8px; font-size: 21px; letter-spacing: -.03em; }
.suggestion-card p { color: #d0d7d1; font-size: 13px; line-height: 1.55; }
.suggestion-meta { display: flex; flex-wrap: wrap; gap: 7px; margin: 17px 0 0; }
.suggestion-meta span { padding: 7px 9px; border-radius: 8px; color: #dce4dd; background: rgba(255,255,255,.08); font-size: 10px; font-weight: 800; }
.recipe-btn { width: 100%; min-height: 44px; margin-top: 14px; color: var(--forest); border: 0; border-radius: 12px; background: var(--lime); font-size: 12px; font-weight: 950; }
.recipe-more { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 14px; }
.recipe-more > span { grid-column: 1 / -1; color: #93a095; font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.recipe-more button { min-height: 35px; padding: 7px 9px; overflow: hidden; color: #e2e8e3; border: 1px solid rgba(255,255,255,.11); border-radius: 9px; background: rgba(255,255,255,.04); text-align: left; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; font-weight: 800; }
.recipe-more button:last-child { grid-column: 1 / -1; }
.recipe-more button:hover { border-color: rgba(183,255,49,.55); background: rgba(183,255,49,.08); }
.recipe-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin-bottom: 20px; }
.recipe-meta > div { padding: 13px; border: 1px solid var(--border); border-radius: 14px; background: #f0f3e9; }
.recipe-meta span { display: block; color: var(--muted); font-size: 9px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.recipe-meta strong { display: inline-block; margin-top: 5px; font-size: 24px; letter-spacing: -.04em; }
.recipe-meta small { margin-left: 4px; color: var(--muted); font-size: 9px; }
.recipe-columns { display: grid; grid-template-columns: .9fr 1.1fr; gap: 21px; }
.recipe-columns h3 { margin-bottom: 10px; font-size: 15px; }
.recipe-columns ul, .recipe-columns ol { display: grid; gap: 8px; margin: 0; padding-left: 21px; color: #414943; font-size: 12px; line-height: 1.45; }
.recipe-columns li::marker { color: var(--lime-dark); font-weight: 900; }
.empty-state { padding: 26px; color: var(--muted); border: 1px dashed #b9c0ba; border-radius: 17px; text-align: center; font-size: 13px; line-height: 1.5; }

.progress-grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: 16px; }
.chart-wrap { min-height: 225px; padding: 8px 0 0; }
.chart-wrap svg { width: 100%; height: 190px; overflow: visible; }
.chart-label { fill: var(--muted); font-size: 10px; font-weight: 700; }
.chart-line { fill: none; stroke: var(--forest); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.chart-area { fill: url(#chartGradient); }
.chart-dot { fill: var(--lime); stroke: var(--forest); stroke-width: 3; }
.stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.stat { min-height: 103px; padding: 15px; border: 1px solid var(--border); border-radius: 15px; background: rgba(255,255,255,.6); }
.stat strong { display: block; margin-top: 10px; font-size: 25px; letter-spacing: -.04em; }
.stat span { color: var(--muted); font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.history-list { display: grid; gap: 8px; }
.history-item { display: grid; grid-template-columns: 95px 1fr auto; align-items: center; gap: 12px; padding: 12px 13px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.56); }
.history-date strong { display: block; font-size: 12px; }
.history-date span { color: var(--muted); font-size: 10px; }
.history-data { display: flex; gap: 13px; color: var(--muted); font-size: 11px; }
.history-badge { padding: 6px 8px; border-radius: 8px; background: #e8efdf; color: #486124; font-size: 10px; font-weight: 900; }
.history-badge.warn { color: #805d1d; background: #fff1cf; }
.history-badge.risk { color: #8a3d30; background: #ffe0d9; }

.toast { position: fixed; z-index: 50; right: 20px; bottom: 22px; display: flex; align-items: center; gap: 10px; max-width: calc(100% - 40px); padding: 13px 16px; color: white; border-radius: 13px; background: var(--forest); box-shadow: 0 16px 40px rgba(16,23,17,.3); font-size: 12px; font-weight: 800; transform: translateY(90px); opacity: 0; transition: .28s ease; }
.toast.show { transform: none; opacity: 1; }
.toast::before { content: "✓"; display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: var(--lime); color: var(--forest); }

.footer-note { margin-top: 22px; color: var(--muted); text-align: center; font-size: 10px; line-height: 1.5; }

@media (max-width: 820px) {
  main { width: min(100% - 28px, 680px); padding-top: 22px; }
  .hero-grid, .today-layout, .progress-grid { grid-template-columns: 1fr; }
  .field { grid-column: span 6; }
  .supp-grid { grid-template-columns: repeat(2, 1fr); }
  .supp-card:last-child { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .topbar { min-height: 64px; padding: 10px 14px; }
  .brand-mark { width: 36px; height: 36px; }
  .brand-copy span { display: none; }
  .privacy-pill { padding: 7px 9px; font-size: 10px; }
  main { width: calc(100% - 22px); padding-top: 18px; }
  .page-head { align-items: flex-start; margin-bottom: 17px; }
  .page-head h1 { max-width: 230px; font-size: 36px; }
  .page-head p:last-child { display: none; }
  .date-control { width: 135px; }
  .date-control label { display: none; }
  input[type="date"] { min-height: 42px; padding: 0 8px; font-size: 12px; }
  .readiness-card { min-height: 290px; padding: 22px; }
  .readiness-top { display: block; }
  .score-ring { position: absolute; right: 0; top: 0; width: 76px; height: 76px; }
  .score-ring::before { width: 58px; height: 58px; }
  .score-ring span { font-size: 20px; }
  .status-title { max-width: calc(100% - 85px); font-size: 35px; }
  .metric-card { min-height: 112px; padding: 15px; }
  .metric-value { font-size: 24px; }
  .section-nav { top: 65px; margin-top: 15px; }
  .nav-btn { padding: 6px 4px; font-size: 11px; }
  .panel { padding: 18px 14px; border-radius: 19px; }
  .panel-head { margin-bottom: 17px; }
  .panel-head h2 { font-size: 20px; }
  .field, .field.half { grid-column: 1 / -1; }
  .meal-grid { grid-template-columns: 1fr; }
  .segmented { grid-template-columns: repeat(3, 1fr); }
  .supp-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .supp-card { min-height: 97px; }
  .save-bar { bottom: 8px; padding: 10px 10px 10px 14px; }
  .save-copy span { display: none; }
  .history-item { grid-template-columns: 80px 1fr auto; gap: 8px; }
  .history-data { display: grid; gap: 2px; }
  .toast { right: 11px; bottom: 11px; }
}

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

/* Recompass beta */
.compact-readiness { margin-bottom: 18px; min-height: 235px; }
.nutrition-command { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(240px, .65fr); column-gap: 24px; row-gap: 18px; margin-bottom: 16px; padding: 25px 27px; color: white; border-radius: 24px; background: linear-gradient(132deg, #162018, #050806 66%); box-shadow: 0 18px 50px rgba(5,8,6,.18); }
.nutrition-kicker { margin: 0 0 5px; color: #aeb9b0; font-size: 11px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.nutrition-number { color: var(--lime); font-size: clamp(48px, 7vw, 78px); font-weight: 950; letter-spacing: -.065em; line-height: .95; }
.nutrition-number.over { color: #ff9b88; }
.nutrition-number small { display: inline-block; margin-left: 10px; color: #d4dbd5; font-size: 13px; font-weight: 750; letter-spacing: 0; }
.macro-track { height: 7px; margin: 18px 0 9px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.1); }
.macro-track span { display: block; height: 100%; border-radius: inherit; background: var(--lime); }
.nutrition-formula { margin: 0; color: #aeb9b0; font-size: 11px; }
.nutrition-formula b { color: white; }
.protein-command { display: grid; grid-template-columns: 39px 1fr 50px; gap: 11px; align-items: center; padding: 15px; border: 1px solid rgba(255,255,255,.09); border-radius: 17px; background: rgba(255,255,255,.05); }
.protein-icon { display: grid; width: 39px; height: 39px; place-items: center; color: var(--forest); border-radius: 12px; background: var(--lime); font-weight: 950; }
.protein-command p { margin: 0 0 2px; color: #aeb9b0; font-size: 10px; font-weight: 850; text-transform: uppercase; }
.protein-command strong { display: block; font-size: 28px; letter-spacing: -.04em; }
.protein-command div > span { color: #aeb9b0; font-size: 10px; }
.protein-ring { --protein: 0; width: 48px; height: 48px; border-radius: 50%; background: radial-gradient(circle, #1b261d 57%, transparent 59%), conic-gradient(var(--lime) calc(var(--protein) * 1%), rgba(255,255,255,.1) 0); }
.nutrition-actions { grid-column: 1 / -1; display: flex; gap: 9px; }
.nutrition-link { min-height: 45px; padding: 0 18px; color: white; border: 1px solid rgba(255,255,255,.16); border-radius: 12px; background: transparent; font-size: 12px; font-weight: 900; }
.quick-panel { padding-bottom: 28px; }
.quick-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; }
.quick-card { display: grid; min-height: 154px; padding: 16px; text-align: left; color: var(--ink); border: 1px solid var(--border); border-radius: 17px; background: rgba(255,255,255,.62); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.quick-card:hover { transform: translateY(-2px); border-color: #a5c84b; box-shadow: 0 12px 24px rgba(24,34,26,.08); }
.quick-icon { display: grid; width: 34px; height: 34px; margin-bottom: 15px; place-items: center; color: var(--forest); border-radius: 11px; background: var(--lime); font-size: 16px; font-weight: 950; }
.quick-label { color: var(--muted); font-size: 10px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.quick-card strong { align-self: end; margin-top: 7px; font-size: 15px; line-height: 1.25; }
.quick-action { align-self: end; margin-top: 8px; color: var(--lime-dark); font-size: 11px; font-weight: 900; }
.action-button { width: 100%; text-align: left; color: inherit; cursor: pointer; }
.beta-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
.connection-card { display: grid; grid-template-columns: 58px 1fr; gap: 17px; align-items: start; box-shadow: none; }
.connection-card h2 { margin-bottom: 7px; font-size: 20px; letter-spacing: -.03em; }
.connection-card p:not(.eyebrow) { margin-bottom: 16px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.connection-icon { display: grid; width: 58px; height: 58px; place-items: center; color: var(--forest); border-radius: 18px; background: var(--lime); font-size: 22px; font-weight: 950; }
.oura-orbit { color: white; background: var(--forest); box-shadow: inset 0 0 0 8px rgba(183,255,49,.18); }
.secondary-btn { min-height: 40px; padding: 0 14px; color: var(--forest); border: 1px solid var(--border); border-radius: 11px; background: white; font-size: 11px; font-weight: 900; }
.secondary-btn:hover { border-color: #9db447; background: #f5f9e9; }
.beta-note { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 16px; box-shadow: none; }
.beta-note h2 { margin-bottom: 5px; font-size: 20px; }
.beta-note p:not(.eyebrow) { margin-bottom: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.sheet-backdrop { position: fixed; z-index: 100; inset: 0; display: grid; place-items: end center; padding: 20px; background: rgba(10,16,11,.55); backdrop-filter: blur(5px); animation: fadeIn .18s ease; }
.log-sheet { position: relative; width: min(620px, 100%); max-height: min(780px, calc(100vh - 35px)); overflow-y: auto; padding: 28px 26px 22px; border-radius: 25px 25px 18px 18px; background: var(--card); box-shadow: 0 30px 90px rgba(0,0,0,.28); animation: sheetUp .24s ease; }
.sheet-handle { display: none; position: absolute; top: 9px; left: 50%; width: 40px; height: 4px; border-radius: 999px; background: #ccd1cc; transform: translateX(-50%); }
.sheet-close { position: absolute; top: 17px; right: 17px; display: grid; width: 34px; height: 34px; place-items: center; color: var(--muted); border: 0; border-radius: 11px; background: #eef0ea; font-size: 24px; line-height: 1; }
.log-sheet h2 { margin: 0 42px 7px 0; font-size: 28px; letter-spacing: -.04em; }
.sheet-copy { max-width: 490px; margin-bottom: 20px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.sheet-date { display: grid; grid-template-columns: 80px 150px 1fr; gap: 10px; align-items: center; margin: -6px 0 18px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 13px; background: #f0f2eb; }
.sheet-date label { color: var(--muted); font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.sheet-date input { min-height: 38px; padding: 0 8px; background: white; }
.sheet-date span { color: var(--muted); font-size: 10px; line-height: 1.35; }
.sheet-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 20px; }
.sheet-actions .primary-btn { min-width: 170px; }
.sheet-body input[type="range"] { width: 100%; accent-color: var(--forest); }
.toggle-row { min-height: 47px; justify-content: flex-start !important; align-items: center; padding: 0 13px; border: 1px solid var(--border); border-radius: 13px; background: white; }
.toggle-row input { width: 18px; height: 18px; accent-color: var(--forest); }
.upload-zone { padding: 12px; border: 1px dashed #aab4ac; border-radius: 17px; background: #f5f5ef; }
.upload-zone input { width: 100%; margin-bottom: 10px; }
#screenshot-preview { display: grid; min-height: 115px; place-items: center; color: var(--muted); text-align: center; }
#screenshot-preview strong { color: var(--ink); font-size: 13px; }
#screenshot-preview span { font-size: 11px; }
#screenshot-preview img { width: 100%; max-height: 260px; object-fit: contain; border-radius: 12px; }
.oura-plan { display: grid; gap: 9px; }
.oura-plan > div { display: grid; grid-template-columns: 35px 1fr; column-gap: 10px; padding: 13px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.62); }
.oura-plan span { grid-row: 1 / 3; display: grid; width: 30px; height: 30px; place-items: center; color: var(--forest); border-radius: 9px; background: var(--lime); font-size: 10px; font-weight: 950; }
.oura-plan strong { font-size: 13px; }
.oura-plan p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.privacy-copy { margin: 13px 0 0; padding: 12px 13px; color: var(--muted); border-radius: 12px; background: #eef0ea; font-size: 11px; line-height: 1.5; }
@keyframes fadeIn { from { opacity: 0; } }
@keyframes sheetUp { from { opacity: .5; transform: translateY(35px); } }

@media (max-width: 720px) {
  .nutrition-command { grid-template-columns: 1fr; }
  .nutrition-actions { grid-column: 1; }
  .quick-grid { grid-template-columns: 1fr 1fr; }
  .beta-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .compact-readiness { min-height: 276px; }
  .nutrition-command { padding: 20px 17px; border-radius: 20px; }
  .nutrition-number { font-size: 54px; }
  .nutrition-number small { display: block; margin: 8px 0 0; }
  .recipe-columns { grid-template-columns: 1fr; gap: 20px; }
  .recipe-meta > div { padding: 11px 9px; }
  .recipe-meta strong { font-size: 20px; }
  .sheet-date { grid-template-columns: 64px 1fr; }
  .sheet-date span { grid-column: 1 / -1; }
  .quick-panel { padding: 18px 12px 20px; }
  .quick-grid { gap: 8px; }
  .quick-card { min-height: 142px; padding: 13px; }
  .quick-card:last-child { grid-column: 1 / -1; min-height: 110px; }
  .connection-card { grid-template-columns: 48px 1fr; padding: 17px 14px; }
  .connection-icon { width: 48px; height: 48px; border-radius: 15px; }
  .beta-note { align-items: flex-start; flex-direction: column; }
  .sheet-backdrop { padding: 0; }
  .log-sheet { width: 100%; max-height: calc(100vh - 20px); padding: 32px 16px calc(18px + env(safe-area-inset-bottom)); border-radius: 24px 24px 0 0; }
  .sheet-handle { display: block; }
  .sheet-actions { position: sticky; bottom: 0; margin: 18px -6px -6px; padding: 10px 6px 6px; background: linear-gradient(transparent, var(--card) 24%); }
  .sheet-actions .primary-btn { flex: 1; width: auto; }
  .sheet-close { top: 15px; right: 13px; }
}

/* Initium personal plan */
.baseline-card { margin-bottom: 16px; padding: 22px 24px; overflow: hidden; border: 1px solid var(--border); border-radius: 22px; background: var(--card); box-shadow: var(--shadow); }
.baseline-empty { display: flex; align-items: center; justify-content: space-between; gap: 24px; background: linear-gradient(120deg, #eef5d5, #fffdf7 64%); }
.baseline-empty h2, .baseline-head h2 { margin-bottom: 5px; font-size: 22px; letter-spacing: -.03em; }
.baseline-empty p:not(.eyebrow) { max-width: 690px; margin: 0; color: var(--muted); font-size: 15px; line-height: 1.55; }
.baseline-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 17px; }
.baseline-link { min-height: 38px; padding: 0 12px; color: var(--forest); border: 1px solid var(--border); border-radius: 10px; background: transparent; font-size: 13px; font-weight: 850; }
.baseline-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; gap: 10px; align-items: center; }
.baseline-flow > div { min-width: 0; padding: 13px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.58); }
.baseline-flow > i { color: #a1aaa3; font-size: 19px; font-style: normal; font-weight: 900; text-align: center; }
.baseline-flow span { display: block; overflow: hidden; color: var(--muted); font-size: 12px; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.baseline-flow strong { display: block; margin-top: 6px; font-size: 25px; letter-spacing: -.04em; }
.baseline-flow small { display: block; margin-top: 2px; overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.baseline-flow .baseline-target { color: white; border-color: var(--forest); background: var(--forest); }
.baseline-flow .baseline-target span, .baseline-flow .baseline-target small { color: #bac5bc; }
.baseline-flow .baseline-target strong { color: var(--lime); }
.baseline-note { margin: 13px 1px 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.baseline-note strong { color: var(--ink); }
.profile-plan { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.profile-plan > div { padding: 12px; border: 1px solid var(--border); border-radius: 13px; background: #f1f3ec; }
.profile-plan span, .profile-plan small { display: block; color: var(--muted); font-size: 12px; }
.profile-plan strong { display: block; margin: 5px 0 2px; font-size: 20px; }
.recalculate-btn { width: 100%; min-height: 46px; font-size: 14px; }
.calculation-stack { display: grid; gap: 10px; }
.calculation-stack > div { display: grid; grid-template-columns: 36px 1fr; gap: 12px; padding: 13px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.62); }
.calculation-stack > div > span { display: grid; width: 32px; height: 32px; place-items: center; color: var(--forest); border-radius: 10px; background: var(--lime); font-size: 13px; font-weight: 950; }
.calculation-stack strong { font-size: 14px; }
.calculation-stack p { margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }

.onboard-backdrop { position: fixed; z-index: 300; inset: 0; display: grid; place-items: center; padding: 22px; background: radial-gradient(circle at 75% 10%, rgba(183,255,49,.18), transparent 28rem), rgba(5,8,6,.96); backdrop-filter: blur(12px); }
.onboard-card { display: flex; flex-direction: column; width: min(760px, 100%); max-height: min(850px, calc(100vh - 30px)); overflow-y: auto; border: 1px solid rgba(255,255,255,.12); border-radius: 28px; background: var(--card); box-shadow: 0 35px 100px rgba(0,0,0,.4); }
.onboard-top { display: flex; min-height: 68px; align-items: center; justify-content: space-between; padding: 14px 22px; color: white; background: var(--forest); }
.mini-brand { display: flex; align-items: center; gap: 11px; }
.mini-brand > span { display: grid; width: 38px; height: 38px; place-items: center; color: var(--forest); border-radius: 12px; background: var(--lime); font-size: 20px; font-weight: 950; line-height: 1; }
.mini-brand strong { font-size: 14px; letter-spacing: .11em; }
.mini-brand small { display: block; margin-top: 2px; color: #aeb9b0; font-size: 11px; font-weight: 750; letter-spacing: .05em; }
.onboard-close { display: grid; width: 36px; height: 36px; place-items: center; color: #dbe2dc; border: 1px solid rgba(255,255,255,.12); border-radius: 11px; background: rgba(255,255,255,.05); font-size: 24px; }
.onboard-progress { height: 5px; background: #e1e5de; }
.onboard-progress span { display: block; height: 100%; border-radius: 0 999px 999px 0; background: var(--lime-dark); transition: width .25s ease; }
.onboard-content { flex: 1; min-height: 390px; padding: 34px clamp(22px, 6vw, 54px) 20px; }
.onboard-content h1 { max-width: 620px; margin-bottom: 15px; font-size: clamp(39px, 7vw, 64px); line-height: .98; }
.onboard-content h2 { max-width: 610px; margin-bottom: 10px; font-size: clamp(29px, 5vw, 43px); line-height: 1.02; letter-spacing: -.045em; }
.onboard-copy, .onboard-welcome > p:not(.eyebrow) { max-width: 610px; margin-bottom: 25px; color: var(--muted); font-size: 16px; line-height: 1.55; }
.atlas-orbit { display: grid; width: 72px; height: 72px; margin-bottom: 27px; place-items: center; color: white; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; background: var(--forest); box-shadow: inset 0 0 0 11px rgba(183,255,49,.18), 0 10px 30px rgba(5,8,6,.2); font-size: 24px; font-weight: 950; }
.onboard-promises { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.onboard-promises span { padding: 9px 11px; color: #4f6220; border-radius: 999px; background: #edf5d4; font-size: 13px; font-weight: 800; }
.onboard-label { display: flex; justify-content: space-between; max-width: 520px; margin: 0 0 8px 2px; color: #414943; font-size: 14px; font-weight: 850; }
.onboard-label small { color: var(--muted); font-size: 12px; }
.onboard-input { width: min(520px, 100%); min-height: 58px; padding: 0 16px; color: var(--ink); border: 1px solid var(--border); border-radius: 15px; outline: 0; background: white; font-size: 20px; font-weight: 750; }
.onboard-input:focus { border-color: #82bd0a; box-shadow: 0 0 0 5px rgba(183,255,49,.24); }
.onboard-unit { position: relative; max-width: 520px; }
.onboard-unit .onboard-input { padding-right: 62px; }
.onboard-unit > span { position: absolute; right: 16px; top: 19px; color: var(--muted); font-size: 14px; font-weight: 850; }
.onboard-split { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; max-width: 610px; }
.onboard-choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.onboard-choice-grid.compact { max-width: 610px; margin-top: 18px; }
.onboard-choice { position: relative; min-height: 112px; padding: 17px 17px 15px 52px; color: var(--ink); border: 1px solid var(--border); border-radius: 16px; background: rgba(255,255,255,.65); text-align: left; transition: .18s ease; }
.onboard-choice:hover { border-color: #9bb742; transform: translateY(-1px); }
.onboard-choice.selected { border-color: #93b238; background: #edf6d3; box-shadow: 0 0 0 2px rgba(155,183,66,.12); }
.choice-check { position: absolute; left: 16px; top: 17px; display: grid; width: 25px; height: 25px; place-items: center; color: white; border: 1px solid #aeb6b0; border-radius: 50%; background: white; font-size: 13px; font-weight: 950; }
.onboard-choice.selected .choice-check { color: var(--forest); border-color: var(--lime); background: var(--lime); }
.onboard-choice strong { display: block; margin-bottom: 5px; font-size: 16px; }
.onboard-choice small { display: block; color: var(--muted); font-size: 13px; line-height: 1.4; }
.onboard-result { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }
.onboard-result > div { padding: 15px; border: 1px solid var(--border); border-radius: 15px; background: #f1f3ec; }
.onboard-result > div.featured { color: white; border-color: var(--forest); background: var(--forest); }
.onboard-result span, .onboard-result small { display: block; color: var(--muted); font-size: 12px; }
.onboard-result strong { display: block; margin: 8px 0 3px; font-size: 27px; letter-spacing: -.04em; }
.onboard-result .featured span, .onboard-result .featured small { color: #b8c2b9; }
.onboard-result .featured strong { color: var(--lime); }
.onboard-disclaimer { margin: 16px 0 0; padding: 12px 14px; color: var(--muted); border-radius: 12px; background: #eef0ea; font-size: 13px; line-height: 1.5; }
.onboard-floor { margin: 14px 0 0; padding: 11px 13px; color: #76541a; border: 1px solid rgba(242,184,75,.35); border-radius: 12px; background: rgba(242,184,75,.13); font-size: 13px; line-height: 1.45; }
.onboard-error { max-width: 520px; margin: 14px 0 0; padding: 10px 12px; color: #873e30; border: 1px solid rgba(255,118,92,.3); border-radius: 11px; background: rgba(255,118,92,.1); font-size: 14px; font-weight: 750; }
.onboard-actions { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 22px calc(16px + env(safe-area-inset-bottom)); border-top: 1px solid var(--border); background: rgba(255,253,247,.96); }
.onboard-primary { min-width: 210px; min-height: 50px; font-size: 15px; }
.onboard-back { min-width: 92px; min-height: 50px; color: var(--muted); border: 1px solid var(--border); border-radius: 12px; background: white; font-size: 14px; font-weight: 850; }

@media (max-width: 760px) {
  .baseline-flow { grid-template-columns: 1fr 1fr; }
  .baseline-flow > i { display: none; }
  .onboard-result { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  .baseline-card { padding: 18px 15px; border-radius: 19px; }
  .baseline-empty { align-items: flex-start; flex-direction: column; }
  .baseline-empty .primary-btn { width: 100%; }
  .baseline-head { align-items: flex-start; }
  .baseline-head h2 { font-size: 20px; }
  .baseline-flow { gap: 8px; }
  .baseline-flow > div { padding: 11px; }
  .baseline-flow strong { font-size: 21px; }
  .profile-plan { grid-template-columns: 1fr; }
  .onboard-backdrop { padding: 0; }
  .onboard-card { width: 100%; min-height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; }
  .onboard-top { min-height: 62px; padding: 10px 15px; }
  .onboard-content { min-height: 0; padding: 27px 17px 18px; }
  .onboard-content h1 { font-size: 42px; }
  .onboard-content h2 { font-size: 31px; }
  .atlas-orbit { width: 62px; height: 62px; margin-bottom: 22px; }
  .onboard-split, .onboard-choice-grid { grid-template-columns: 1fr; }
  .onboard-choice { min-height: 94px; }
  .onboard-result { grid-template-columns: 1fr 1fr; }
  .onboard-result > div { padding: 12px; }
  .onboard-result strong { font-size: 23px; }
  .onboard-actions { position: sticky; bottom: 0; padding: 11px 13px calc(11px + env(safe-area-inset-bottom)); }
  .onboard-primary { flex: 1; min-width: 0; }
}

/* Account, programme and Oura experience */
.button-link { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.text-button, .danger-link { padding: 8px 2px; border: 0; background: transparent; color: var(--lime-dark); font-size: 12px; font-weight: 900; }
.danger-link { color: #9a4638; }
.connection-actions, .oura-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.oura-connected { border-color: rgba(109,141,32,.3); background: linear-gradient(135deg, #f5f9e9, var(--card)); }
.oura-summary-card { grid-column: 1 / -1; }
.oura-connect-panel { text-align: center; padding: 10px 4px 0; }
.oura-connect-panel h3 { margin: 10px 0 7px; }
.oura-connect-panel > p:not(.privacy-copy) { max-width: 460px; margin: 0 auto 18px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.oura-status-dot { width: 13px; height: 13px; margin: 0 auto; border: 3px solid #d2d7d3; border-radius: 50%; background: white; }
.oura-status-dot.connected { margin: 0; border-color: rgba(183,255,49,.28); background: var(--lime); box-shadow: 0 0 0 5px rgba(183,255,49,.15); }
.oura-live { display: grid; gap: 17px; }
.oura-live-head { display: flex; align-items: center; gap: 13px; padding: 13px; border: 1px solid rgba(109,141,32,.22); border-radius: 14px; background: #f1f6df; }
.oura-live-head strong, .oura-live-head span { display: block; }
.oura-live-head span { margin-top: 2px; color: var(--muted); font-size: 11px; }
.oura-sync-time { display: block; margin: -2px 0 14px; color: var(--muted); font-size: 12px; }
.oura-alert { display: grid; gap: 3px; margin: 0 0 14px; padding: 11px 13px; border: 1px solid #e0c68a; border-radius: 12px; background: #fff8e8; }
.oura-alert.error { border-color: #e0aaa1; background: #fff0ed; }
.oura-alert strong { font-size: 12px; }
.oura-alert span { color: var(--muted); font-size: 11px; line-height: 1.45; }
.oura-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.oura-metrics > div { padding: 13px; border: 1px solid var(--border); border-radius: 13px; background: white; }
.oura-metrics span { display: block; color: var(--muted); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.oura-metrics strong { display: block; margin-top: 6px; font-size: 22px; }
.oura-metrics strong small { margin-left: 3px; color: var(--muted); font-size: 10px; font-weight: 800; }
.oura-metrics .metric-duration { font-size: 18px; }
.oura-activity { margin: 10px 0 0 !important; padding: 10px 12px; border-radius: 11px; background: rgba(255,255,255,.7); }

.programme-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 16px; padding: 24px; color: white; border-radius: 24px; background: var(--forest); box-shadow: var(--shadow); }
.programme-hero .eyebrow { color: var(--lime); }
.programme-hero h2 { margin-bottom: 6px; font-size: clamp(28px, 4vw, 44px); letter-spacing: -.045em; }
.programme-hero p:not(.eyebrow) { margin: 0; color: #b9c2ba; font-size: 13px; line-height: 1.5; }
.programme-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.programme-session { display: flex; flex-direction: column; padding: 21px; border: 1px solid var(--border); border-radius: 21px; background: var(--card); box-shadow: var(--shadow); }
.session-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--border); }
.session-head span { color: var(--lime-dark); font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.session-head h3 { margin: 4px 0 0; font-size: 22px; letter-spacing: -.03em; }
.session-head > strong { padding: 7px 9px; border-radius: 9px; background: #eef4da; color: #536a20; font-size: 11px; white-space: nowrap; }
.programme-session ol { display: grid; gap: 0; margin: 8px 0 18px; padding: 0; list-style: none; }
.programme-session li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 2px; border-bottom: 1px solid rgba(21,27,23,.08); font-size: 13px; }
.programme-session li > span { font-weight: 800; }
.programme-session li small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; font-weight: 650; }
.programme-session li > strong { color: var(--muted); font-size: 11px; white-space: nowrap; }
.programme-session li.focus-exercise > span { color: #536a20; }
.programme-session li.focus-exercise small { color: #768d3a; }
.session-log { width: 100%; margin-top: auto; }
.programme-safety { margin: 16px 0 0; padding: 14px 16px; color: var(--muted); border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.55); font-size: 12px; line-height: 1.5; }
.programme-preview { margin-top: 14px; padding: 14px; border: 1px solid var(--border); border-radius: 14px; background: #f5f6f0; }
.programme-preview > strong { display: block; margin-bottom: 8px; }
.programme-preview > div { display: flex; flex-wrap: wrap; gap: 7px; }
.programme-preview span { padding: 7px 9px; border-radius: 9px; background: white; color: var(--muted); font-size: 11px; font-weight: 750; }
.choice-numbers { grid-template-columns: repeat(3, 1fr); }
.muscle-grid .onboard-choice { min-height: 96px; }
.consent-box { display: flex; align-items: flex-start; gap: 14px; max-width: 620px; padding: 18px; border: 1px solid var(--border); border-radius: 17px; background: white; cursor: pointer; }
.consent-box input { flex: 0 0 auto; width: 22px; height: 22px; margin-top: 2px; accent-color: var(--forest); }
.consent-box strong, .consent-box small { display: block; }
.consent-box strong { font-size: 14px; line-height: 1.45; }
.consent-box small { margin-top: 7px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.consent-box a { color: var(--lime-dark); font-weight: 850; }
.app-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; width: min(1180px, calc(100% - 40px)); margin: -70px auto 0; padding: 22px 0 34px; color: var(--muted); border-top: 1px solid var(--border); font-size: 11px; }
.app-footer nav { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.app-footer a, .app-footer button { padding: 0; border: 0; background: transparent; color: var(--ink); font-size: inherit; font-weight: 800; text-decoration: none; }
.app-footer button.danger-link { color: #9a4638; }

/* Public sign-in and legal pages */
.signin-page { display: grid; min-height: 100dvh; width: auto; margin: 0; padding: 24px; place-items: center; background: radial-gradient(circle at 75% 15%, rgba(183,255,49,.22), transparent 28rem), var(--forest); }
.signin-card { width: min(540px, 100%); padding: clamp(28px, 7vw, 58px); border: 1px solid rgba(255,255,255,.12); border-radius: 28px; background: var(--card); box-shadow: 0 35px 90px rgba(0,0,0,.3); }
.signin-mark { display: grid; width: 58px; height: 58px; margin-bottom: 25px; place-items: center; border-radius: 17px; background: var(--lime); color: var(--forest); box-shadow: 0 0 32px rgba(183,255,49,.25); font-size: 29px; font-weight: 950; line-height: 1; }
.signin-card h1 { margin-bottom: 13px; font-size: clamp(42px, 8vw, 68px); }
.signin-card > p:not(.eyebrow) { margin-bottom: 25px; color: var(--muted); line-height: 1.6; }
.signin-loading { min-height: 300px; }
.signin-form { display: grid; gap: 10px; }
.signin-form label { color: var(--muted); font-size: 11px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.signin-button { width: 100%; min-height: 52px; }
.signin-button:disabled { cursor: wait; opacity: .68; }
.signin-confirmation { margin: 22px 0; padding: 18px; border: 1px solid rgba(88,125,8,.22); border-radius: 16px; background: #f1f6df; }
.signin-confirmation strong { display: block; margin-bottom: 7px; font-size: 18px; }
.signin-confirmation p { margin: 0 0 8px; color: var(--muted); font-size: 13px; line-height: 1.55; overflow-wrap: anywhere; }
.signin-error { margin: 14px 0 0 !important; padding: 11px 13px; border: 1px solid #e0aaa1; border-radius: 12px; background: #fff0ed; color: #813b30 !important; font-size: 12px; }
.signin-privacy { margin: 18px 0 0 !important; color: var(--muted); font-size: 11px; line-height: 1.5 !important; }
.signin-links { display: flex; justify-content: center; gap: 18px; margin-top: 20px; }
.signin-links a { color: var(--muted); font-size: 12px; font-weight: 800; }
.legal-page { width: auto; min-height: 100vh; margin: 0; padding: clamp(18px, 5vw, 60px); background: radial-gradient(circle at 85% 5%, rgba(183,255,49,.18), transparent 25rem), var(--paper); }
.legal-card { width: min(850px, 100%); margin: 0 auto; padding: clamp(25px, 6vw, 66px); border: 1px solid var(--border); border-radius: 26px; background: var(--card); box-shadow: var(--shadow); }
.legal-brand { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 48px; color: var(--ink); text-decoration: none; font-size: 13px; font-weight: 950; letter-spacing: .08em; }
.legal-brand span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 10px; background: var(--lime); font-size: 18px; line-height: 1; }
.legal-brand small { color: var(--muted); letter-spacing: 0; }
.legal-card > h1 { margin-bottom: 8px; }
.legal-updated { margin-bottom: 38px; color: var(--muted); font-size: 12px; }
.legal-card section { padding: 22px 0; border-top: 1px solid var(--border); }
.legal-card section h2 { margin-bottom: 9px; font-size: 19px; }
.legal-card section p { margin-bottom: 10px; color: #4f5952; font-size: 14px; line-height: 1.68; }
.legal-card section p:last-child { margin-bottom: 0; }
.legal-card a { color: #557019; font-weight: 750; }
.legal-card footer { display: flex; gap: 18px; padding-top: 25px; border-top: 1px solid var(--border); font-size: 12px; }

@media (max-width: 720px) {
  .programme-grid { grid-template-columns: 1fr; }
  .choice-numbers { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  .section-nav { overflow-x: auto; }
  .nav-btn { min-width: 82px; }
  .programme-hero { flex-direction: column; padding: 19px 16px; }
  .programme-hero .secondary-btn { width: 100%; }
  .programme-session { padding: 17px 14px; }
  .oura-metrics { grid-template-columns: 1fr 1fr 1fr; }
  .oura-metrics > div { padding: 10px 8px; }
  .oura-metrics strong { font-size: 18px; }
  .app-footer { align-items: flex-start; flex-direction: column; }
  .legal-page { padding: 0; }
  .legal-card { border: 0; border-radius: 0; }
  .legal-brand { margin-bottom: 35px; }
}

/* Release 2 · A.T.L.A.S. Today intelligence */
.atlas-briefing { min-height: 0; margin-bottom: 16px; padding: 27px; }
.atlas-briefing::after { right: -90px; bottom: -155px; border-width: 38px; }
.atlas-briefing.recovery-amber { box-shadow: inset 5px 0 0 var(--amber), 0 18px 50px rgba(5,8,6,.18); }
.atlas-briefing.recovery-red { box-shadow: inset 5px 0 0 var(--coral), 0 18px 50px rgba(5,8,6,.18); }
.atlas-briefing.recovery-green { box-shadow: inset 5px 0 0 var(--lime), 0 18px 50px rgba(5,8,6,.18); }
.briefing-brand { position: relative; z-index: 2; display: flex; align-items: center; gap: 11px; padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.1); }
.briefing-brand strong { display: block; color: #aeb9b0; font-size: 10px; letter-spacing: .04em; }
.briefing-brand .status-kicker { margin-bottom: 3px; color: var(--lime); }
.briefing-bolt { display: grid; width: 38px; height: 38px; place-items: center; color: var(--forest); border-radius: 11px; background: var(--lime); font-size: 19px; }
.briefing-grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) 270px; gap: 28px; align-items: end; padding-top: 23px; }
.briefing-greeting { margin-bottom: 10px; font-size: clamp(31px, 5vw, 52px); line-height: 1; letter-spacing: -.05em; }
.briefing-metrics { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 24px; }
.briefing-metrics span { padding: 7px 9px; color: #dbe2dc; border-radius: 9px; background: rgba(255,255,255,.07); font-size: 11px; font-weight: 800; }
.briefing-label { margin: 0 0 6px; color: var(--lime); font-size: 11px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.briefing-copy { max-width: 700px; }
.recovery-command { display: grid; align-content: start; min-height: 175px; padding: 18px; border: 1px solid rgba(255,255,255,.11); border-radius: 18px; background: rgba(255,255,255,.055); }
.recovery-command > span { color: #9ca79e; font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.recovery-command > strong { margin: 9px 0 8px; color: var(--lime); font-size: 23px; line-height: 1.06; letter-spacing: -.035em; }
.recovery-red .recovery-command > strong { color: #ff9b88; }
.recovery-amber .recovery-command > strong { color: #ffd67f; }
.recovery-command > small { color: #aeb9b0; font-size: 10px; line-height: 1.4; }
.why-button { align-self: end; min-height: 38px; margin-top: 15px; color: var(--forest); border: 0; border-radius: 10px; background: var(--lime); font-size: 12px; font-weight: 950; }

.nutrition-command.atlas-macros { grid-template-columns: 1fr 1fr; gap: 14px; padding: 19px; }
.macro-command { min-width: 0; padding: 19px; border: 1px solid rgba(255,255,255,.1); border-radius: 18px; background: rgba(255,255,255,.055); }
.macro-total { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.macro-total strong { color: var(--lime); font-size: clamp(36px, 6vw, 62px); line-height: 1; letter-spacing: -.06em; }
.macro-total span { color: #d4dbd5; font-size: 13px; font-weight: 800; }
.macro-remaining { margin: 8px 0 0; color: white; font-size: 20px; font-weight: 900; letter-spacing: -.025em; }
.macro-remaining.over { color: #ff9b88; }
.macro-command > small { display: block; color: #96a098; font-size: 10px; line-height: 1.4; }
.protein-command-v2 .macro-total strong { color: white; }
.protein-track span { background: white; }

.today-core-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 16px; margin-bottom: 16px; }
.today-core-grid > .panel { margin: 0; }
.training-today { border-top: 5px solid var(--lime); box-shadow: none; }
.training-today.recovery-amber { border-top-color: var(--amber); }
.training-today.recovery-red { border-top-color: var(--coral); }
.training-state { flex: 0 0 auto; padding: 8px 11px; color: var(--forest); border-radius: 999px; background: var(--lime); font-size: 11px; font-weight: 950; text-transform: uppercase; }
.recovery-amber .training-state { background: #ffdfa0; }
.recovery-red .training-state { background: #ffd0c7; }
.progression-list { display: grid; gap: 8px; margin: 0 0 17px; }
.progression-list > div { display: grid; grid-template-columns: minmax(140px, 1fr) auto auto; gap: 10px; align-items: center; padding: 11px 12px; border: 1px solid var(--border); border-radius: 12px; background: #f5f6f0; }
.progression-list strong { font-size: 12px; }
.progression-list span { color: var(--muted); font-size: 10px; }
.progression-list .atlas-target { color: #4e6818; font-weight: 900; }
.progression-empty { margin: 0 0 17px; padding: 12px 13px; color: var(--muted); border-radius: 12px; background: #f0f2eb; font-size: 11px; line-height: 1.5; }
.today-quick { box-shadow: none; }
.today-quick-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.today-quick-grid button { display: grid; min-height: 70px; padding: 11px; color: var(--ink); border: 1px solid var(--border); border-radius: 13px; background: rgba(255,255,255,.65); text-align: left; }
.today-quick-grid button:hover { border-color: #9bb742; }
.today-quick-grid span { color: var(--muted); font-size: 9px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.today-quick-grid strong { align-self: end; margin-top: 7px; font-size: 14px; }

.ask-atlas-card { display: grid; grid-template-columns: 54px 1fr auto; gap: 17px; align-items: center; margin-bottom: 16px; color: white; border-color: rgba(255,255,255,.08); background: #101711; box-shadow: none; }
.ask-atlas-card h2 { margin-bottom: 5px; }
.ask-atlas-card p:not(.eyebrow) { margin: 0; color: #aeb9b0; font-size: 12px; line-height: 1.5; }
.ask-atlas-mark { display: grid; width: 54px; height: 54px; place-items: center; color: var(--forest); border-radius: 17px; background: var(--lime); font-size: 24px; }
.atlas-food { margin-bottom: 22px; padding: 25px; background: linear-gradient(135deg, #233024, #101711); }
.atlas-food > small { display: block; margin-top: 11px; color: #8e9a90; font-size: 10px; }
.secondary-detail { margin: 28px 0 13px; }
.secondary-detail h2 { margin-bottom: 4px; font-size: 24px; letter-spacing: -.035em; }
.secondary-detail p:last-child { margin: 0; color: var(--muted); font-size: 12px; }
.ask-atlas-fab { position: fixed; z-index: 40; right: max(18px, calc((100vw - 1180px) / 2)); bottom: 20px; display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 17px; color: var(--forest); border: 1px solid rgba(5,8,6,.22); border-radius: 999px; background: var(--lime); box-shadow: 0 14px 34px rgba(5,8,6,.25); font-size: 12px; font-weight: 950; }

.atlas-panel { display: grid; gap: 14px; }
.atlas-question-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.atlas-question-grid button { min-height: 43px; padding: 8px 10px; color: var(--ink); border: 1px solid var(--border); border-radius: 11px; background: white; font-size: 11px; font-weight: 850; }
.atlas-question-grid button.active { color: var(--forest); border-color: #9fbd45; background: var(--lime); }
.atlas-answer { padding: 19px; color: white; border-radius: 17px; background: var(--forest); }
.atlas-answer > span { color: var(--lime); font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.atlas-answer h3 { margin: 8px 0; font-size: 21px; }
.atlas-answer p { margin-bottom: 14px; color: #d2d9d3; font-size: 13px; line-height: 1.55; }
.atlas-answer ul { display: grid; gap: 7px; margin: 0; padding-left: 19px; color: #aeb9b0; font-size: 11px; line-height: 1.4; }
.atlas-answer li::marker { color: var(--lime); }
.atlas-honesty { padding: 13px 14px; border: 1px solid var(--border); border-radius: 13px; background: #eef0ea; }
.atlas-honesty strong { font-size: 11px; }
.atlas-honesty p { margin: 4px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }

.exercise-log { display: grid; gap: 9px; margin-top: 19px; padding-top: 18px; border-top: 1px solid var(--border); }
.exercise-result { display: grid; grid-template-columns: minmax(150px, 1fr) 105px 150px; gap: 10px; align-items: end; padding: 11px; border: 1px solid var(--border); border-radius: 13px; background: #f5f6f0; }
.exercise-result > strong { align-self: center; font-size: 12px; }
.exercise-result label { display: grid; gap: 5px; color: var(--muted); font-size: 9px; font-weight: 850; }
.exercise-result .field-input { min-height: 39px; background: white; font-size: 12px; }

@media (max-width: 820px) {
  .briefing-grid, .today-core-grid { grid-template-columns: 1fr; }
  .recovery-command { min-height: 0; }
  .progression-list > div { grid-template-columns: 1fr 1fr; }
  .progression-list > div strong { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .atlas-briefing { padding: 20px 17px; }
  .briefing-brand strong { display: none; }
  .briefing-grid { gap: 18px; padding-top: 19px; }
  .briefing-greeting { font-size: 34px; }
  .briefing-metrics { margin-bottom: 19px; }
  .nutrition-command.atlas-macros { grid-template-columns: 1fr; padding: 13px; }
  .nutrition-command.atlas-macros .nutrition-actions { grid-column: 1; }
  .macro-command { padding: 16px; }
  .macro-total strong { font-size: 45px; }
  .ask-atlas-card { grid-template-columns: 46px 1fr; padding: 17px 14px; }
  .ask-atlas-card .primary-btn { grid-column: 1 / -1; width: 100%; }
  .ask-atlas-mark { width: 46px; height: 46px; border-radius: 14px; }
  .atlas-food { padding: 20px 17px; }
  .exercise-result { grid-template-columns: 1fr 1fr; }
  .exercise-result > strong { grid-column: 1 / -1; }
  .ask-atlas-fab { right: 12px; bottom: 12px; min-height: 44px; padding: 0 14px; }
}

/* Release 3 · powerful underneath, effortless on the surface */
.topbar-actions { display: flex; align-items: center; gap: 9px; }
.account-button { display: grid; width: 38px; height: 38px; place-items: center; color: var(--forest); border: 0; border-radius: 12px; background: var(--lime); font-size: 13px; font-weight: 950; }
.section-nav { width: min(1180px, calc(100% - 40px)); margin: 18px auto 0; }
.app-main { padding-top: 16px; }
.day-control { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 13px; }
.day-control > div { display: grid; gap: 2px; }
.day-control > div span { font-size: 13px; font-weight: 900; }
.day-control > div small { color: var(--muted); font-size: 11px; }
.day-control > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.day-control input { width: 150px; min-height: 40px; background: rgba(255,255,255,.55); font-size: 12px; }
.view-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 14px 0 20px; }
.view-header h1 { margin-bottom: 7px; font-size: clamp(36px, 6vw, 62px); }
.view-header p:last-child { max-width: 650px; margin-bottom: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.section-title h2 { margin-bottom: 5px; font-size: clamp(23px, 3.5vw, 32px); letter-spacing: -.04em; }
.section-title > p:last-child { margin-bottom: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }

.calorie-hero { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; overflow: hidden; min-height: 255px; padding: clamp(25px, 5vw, 52px); color: white; border-radius: 30px; background: var(--forest); box-shadow: 0 28px 70px rgba(5,8,6,.2); }
.calorie-hero::after { position: absolute; right: -110px; top: -145px; width: 360px; height: 360px; border: 58px solid rgba(183,255,49,.11); border-radius: 50%; content: ""; pointer-events: none; }
.calorie-hero > * { position: relative; z-index: 1; }
.calorie-hero .eyebrow { color: var(--lime); }
.calorie-left { display: flex; align-items: baseline; gap: 13px; }
.calorie-left strong { color: var(--lime); font-size: clamp(74px, 13vw, 145px); line-height: .78; letter-spacing: -.085em; }
.calorie-left span { color: #f1f5f1; font-size: clamp(21px, 3vw, 37px); font-weight: 900; letter-spacing: -.04em; }
.calorie-hero.over .calorie-left strong { color: #ff9b88; }
.calorie-hero > div:first-child > p:last-child { margin: 24px 0 0; color: #aeb9b0; font-size: 15px; font-weight: 760; }
.calorie-hero-actions { display: grid; gap: 10px; min-width: 150px; }
.why-link { padding: 3px 0; color: #546c1f; border: 0; background: transparent; font-size: 12px; font-weight: 900; text-decoration: underline; text-underline-offset: 4px; }
.why-link.light { color: var(--lime); text-align: left; }
.calorie-hero-actions .why-link { color: #c9d2cb; }
.calorie-progress { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; height: 7px; background: rgba(255,255,255,.1); }
.calorie-progress span { display: block; height: 100%; max-width: 100%; background: var(--lime); }
.calorie-hero.over .calorie-progress span { background: var(--coral); }

.daily-essentials { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 12px 0; overflow: hidden; border: 1px solid var(--border); border-radius: 20px; background: var(--border); box-shadow: var(--shadow); }
.daily-essentials article { display: grid; align-content: center; min-height: 118px; padding: 19px; background: var(--card); }
.daily-essentials article > span:first-child { color: var(--muted); font-size: 11px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.daily-essentials strong { margin-top: 9px; font-size: clamp(21px, 3vw, 31px); letter-spacing: -.045em; }
.daily-essentials small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.essential-unavailable { margin-top: 10px; color: #7a837c; font-size: 15px; font-weight: 800; }
.why-mini { justify-self: start; margin-top: 5px; padding: 0; color: var(--lime-dark); border: 0; background: transparent; font-size: 11px; font-weight: 900; }

.atlas-compact { display: grid; grid-template-columns: 48px 1fr; gap: 17px; align-items: start; margin: 12px 0; padding: 23px 25px; color: white; border-left: 5px solid var(--lime); border-radius: 21px; background: #111712; }
.atlas-compact.recovery-amber { border-left-color: var(--amber); }
.atlas-compact.recovery-red { border-left-color: var(--coral); }
.atlas-compact-mark { display: grid; width: 48px; height: 48px; place-items: center; color: var(--forest); border-radius: 14px; background: var(--lime); font-size: 23px; }
.atlas-compact h2 { margin-bottom: 6px; font-size: 27px; letter-spacing: -.04em; }
.atlas-compact p:not(.eyebrow) { max-width: 720px; margin: 0; color: #cbd3cc; font-size: 14px; line-height: 1.55; }
.atlas-compact .eyebrow { color: var(--lime); }

.action-launcher { margin: 31px 0 12px; }
.action-launcher-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 9px; margin-top: 14px; }
.action-launcher-grid button { display: grid; min-height: 105px; padding: 15px; color: var(--ink); border: 1px solid var(--border); border-radius: 17px; background: var(--card); text-align: left; box-shadow: 0 9px 24px rgba(24,34,26,.05); }
.action-launcher-grid button:hover { border-color: #9dbb49; transform: translateY(-1px); }
.action-launcher-grid span { display: grid; width: 31px; height: 31px; place-items: center; color: var(--forest); border-radius: 10px; background: var(--lime); font-size: 14px; }
.action-launcher-grid strong { align-self: end; margin-top: 15px; font-size: 13px; }
.today-context { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-top: 12px; padding: 20px 22px; border: 1px solid var(--border); border-radius: 19px; background: rgba(255,255,255,.58); }
.today-context h3 { margin-bottom: 5px; font-size: 19px; }
.today-context p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.context-actions { display: flex; align-items: center; gap: 13px; flex: 0 0 auto; }

.food-summary { display: grid; grid-template-columns: 1fr 1fr minmax(170px,.7fr) auto; gap: 1px; align-items: stretch; overflow: hidden; margin-bottom: 14px; color: white; border-radius: 20px; background: rgba(255,255,255,.09); box-shadow: 0 16px 45px rgba(5,8,6,.13); }
.food-summary > div { display: grid; align-content: center; min-height: 120px; padding: 20px; background: var(--forest); }
.food-summary span { color: #9faa9f; font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.food-summary strong { margin-top: 6px; color: var(--lime); font-size: 34px; letter-spacing: -.05em; }
.food-summary small { margin-top: 3px; color: #b7c0b8; font-size: 11px; }
.food-summary .secondary-macros { gap: 8px; }
.food-summary > .why-mini { min-width: 120px; margin: 0; padding: 18px; color: var(--forest); background: var(--lime); }
.food-tools { margin-bottom: 14px; padding: 18px; border: 1px solid var(--border); border-radius: 18px; background: var(--card); }
.food-tools > label { display: block; margin-bottom: 7px; color: var(--muted); font-size: 11px; font-weight: 850; }
.food-tools > div { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.food-tools button { min-height: 39px; padding: 0 13px; color: var(--ink); border: 1px solid var(--border); border-radius: 11px; background: #f2f4ed; font-size: 11px; font-weight: 850; }
.food-tools button:disabled { color: #919992; cursor: not-allowed; }
.meal-day-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.meal-day-card { min-height: 150px; padding: 19px; border: 1px solid var(--border); border-radius: 19px; background: var(--card); }
.meal-day-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.meal-day-head h2 { margin: 0; font-size: 19px; }
.meal-day-head button { padding: 5px; color: var(--lime-dark); border: 0; background: transparent; font-size: 11px; font-weight: 900; }
.meal-day-card > p, .small-empty { margin: 18px 0 0; color: var(--muted); font-size: 11px; }
.meal-item-list { display: grid; gap: 0; }
.meal-item-list > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 0; border-bottom: 1px solid rgba(21,27,23,.08); }
.meal-item-list span { display: grid; gap: 3px; }
.meal-item-list strong { font-size: 12px; }
.meal-item-list small { color: var(--muted); font-size: 10px; }
.meal-item-list button { width: 28px; height: 28px; color: #9a4638; border: 0; border-radius: 8px; background: #fff0ed; }
.food-library, .recipe-browser, .programme-section, .inspiration-section { margin-top: 31px; }
.food-library-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 14px; }
.food-library-grid > div { padding: 17px; border: 1px solid var(--border); border-radius: 17px; background: rgba(255,255,255,.54); }
.food-library-grid h3 { margin-bottom: 10px; font-size: 15px; }
.food-preset { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 0; border-top: 1px solid rgba(21,27,23,.08); }
.food-preset > div { display: grid; gap: 3px; }
.food-preset strong { font-size: 11px; }
.food-preset span { color: var(--muted); font-size: 9px; }
.food-preset button, .recipe-browser-grid button { padding: 6px 9px; color: var(--forest); border: 0; border-radius: 8px; background: var(--lime); font-size: 10px; font-weight: 900; }
.recipe-browser-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 14px; }
.recipe-browser-grid article { display: flex; flex-direction: column; min-height: 190px; padding: 18px; color: white; border-radius: 18px; background: #172019; }
.recipe-browser-grid h3 { margin-bottom: 7px; font-size: 17px; }
.recipe-browser-grid p { color: #b8c1ba; font-size: 11px; line-height: 1.5; }
.recipe-browser-grid span { margin-top: auto; color: var(--lime); font-size: 10px; font-weight: 850; }
.recipe-browser-grid button { margin-top: 12px; min-height: 36px; }

.training-focus { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 14px; padding: 18px 20px; border-left: 5px solid var(--lime); border-radius: 16px; background: var(--card); }
.training-focus.recovery-amber { border-left-color: var(--amber); }
.training-focus.recovery-red { border-left-color: var(--coral); }
.training-focus span, .training-focus strong { display: block; }
.training-focus span { color: var(--lime-dark); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.training-focus strong { margin-top: 4px; font-size: 16px; }
.training-focus p { margin: 5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.today-exercises { padding: 22px; border-radius: 22px; background: var(--forest); }
.today-exercises .eyebrow { color: var(--lime); }
.today-exercises h2 { color: white; }
.today-exercises > article { display: grid; grid-template-columns: minmax(190px,1fr) 170px 170px auto; gap: 13px; align-items: center; padding: 14px 0; color: white; border-top: 1px solid rgba(255,255,255,.1); }
.today-exercises > article > div:first-child { display: grid; gap: 4px; }
.today-exercises > article > div:first-child strong { font-size: 13px; }
.today-exercises > article > div:first-child span { color: #9faa9f; font-size: 10px; }
.exercise-context { display: grid; gap: 3px; }
.exercise-context small { color: #89958b; font-size: 9px; text-transform: uppercase; }
.exercise-context b { color: #e4e9e5; font-size: 11px; }
.today-exercises .why-mini { color: var(--lime); }
.split-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.split-title > div:last-child { display: flex; align-items: center; gap: 12px; }

.inspiration-food-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 14px; }
.inspiration-food-grid article { display: flex; flex-direction: column; min-height: 250px; padding: 20px; border: 1px solid var(--border); border-radius: 20px; background: var(--card); }
.inspiration-food-grid > article > span { color: var(--lime-dark); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.inspiration-food-grid h3 { margin: 14px 0 7px; font-size: 22px; }
.inspiration-food-grid p { color: var(--muted); font-size: 12px; line-height: 1.55; }
.inspiration-food-grid > article > strong { margin-top: auto; font-size: 12px; }
.inspiration-food-grid article > div { display: flex; align-items: center; gap: 13px; margin-top: 14px; }
.inspiration-food-grid article > div > button:first-child { min-height: 37px; padding: 0 12px; color: var(--forest); border: 0; border-radius: 10px; background: var(--lime); font-size: 10px; font-weight: 900; }
.inspiration-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 14px; }
.inspiration-actions button { display: grid; min-height: 108px; padding: 16px; color: white; border: 1px solid rgba(255,255,255,.08); border-radius: 17px; background: var(--forest); text-align: left; }
.inspiration-actions strong { align-self: end; color: var(--lime); font-size: 14px; }
.inspiration-actions span { margin-top: 5px; color: #aeb8b0; font-size: 10px; }
.inspiration-split { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 31px; }
.inspiration-split article { padding: 22px; border: 1px solid var(--border); border-radius: 20px; background: var(--card); }
.inspiration-split h2 { font-size: 23px; }
.inspiration-split p:not(.eyebrow) { color: var(--muted); font-size: 12px; line-height: 1.5; }
.goal-help-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.goal-help-grid button { min-height: 43px; color: var(--ink); border: 1px solid var(--border); border-radius: 11px; background: #f5f6f0; font-size: 11px; font-weight: 850; }

.weekly-review { margin-bottom: 14px; padding: 25px; color: white; border-radius: 23px; background: var(--forest); }
.weekly-review .eyebrow { color: var(--lime); }
.weekly-review-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; margin: 18px 0 22px; }
.weekly-review-grid > div { padding: 13px; border: 1px solid rgba(255,255,255,.1); border-radius: 13px; background: rgba(255,255,255,.055); }
.weekly-review-grid span, .weekly-review-grid strong { display: block; }
.weekly-review-grid span { color: #9da79f; font-size: 9px; text-transform: uppercase; }
.weekly-review-grid strong { margin-top: 7px; font-size: 14px; }
.weekly-review h2 { margin-bottom: 7px; color: var(--lime); font-size: 18px; }
.weekly-review > p:last-child { margin: 0; color: #cbd2cc; font-size: 12px; line-height: 1.5; }
.weekly-review.building { color: var(--ink); background: var(--card); border: 1px solid var(--border); }
.weekly-review.building h2 { color: var(--ink); }
.weekly-review.building > p:last-child { color: var(--muted); }
.progress-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
.progress-detail-grid .panel { margin: 0; }
.progress-detail-grid h2 { font-size: 21px; }
.progress-detail-grid p:not(.eyebrow) { color: var(--muted); font-size: 12px; line-height: 1.5; }
.baseline-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.baseline-tags span { padding: 6px 8px; color: var(--muted); border-radius: 8px; background: #eef0ea; font-size: 9px; text-transform: capitalize; }
.baseline-tags span.ready { color: #47630c; background: #e8f4c8; }

.why-panel { display: grid; gap: 13px; }
.why-answer { padding: 21px; color: white; border-radius: 18px; background: var(--forest); }
.why-answer > span { color: var(--lime); font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.why-answer h3 { margin: 9px 0 8px; font-size: 27px; letter-spacing: -.04em; }
.why-answer p { margin: 0; color: #cbd3cc; font-size: 13px; line-height: 1.6; }
.why-data-toggle { min-height: 45px; color: var(--ink); border: 1px solid var(--border); border-radius: 12px; background: white; font-size: 12px; font-weight: 900; }
.why-data { padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: #f2f4ed; }
.why-data strong { font-size: 12px; }
.why-data ul { display: grid; gap: 7px; margin: 10px 0 0; padding-left: 19px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.why-data li::marker { color: var(--lime-dark); }
.water-log { display: grid; gap: 14px; }
.water-now { display: grid; padding: 20px; color: white; border-radius: 18px; background: var(--forest); }
.water-now span { color: var(--lime); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.water-now strong { margin-top: 6px; font-size: 43px; letter-spacing: -.06em; }
.water-now small { color: #aeb9b0; }
.water-quick { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.water-quick button { min-height: 55px; color: var(--forest); border: 0; border-radius: 13px; background: var(--lime); font-weight: 900; }
.label-upload { position: relative; min-height: 220px; display: grid; place-items: center; padding: 25px; border: 2px dashed #9da69f; border-radius: 18px; background: #f5f6f0; text-align: center; }
.label-upload input { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; }
.label-upload strong, .label-upload span { display: block; }
.label-upload strong { font-size: 17px; }
.label-upload span { max-width: 390px; margin-top: 8px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.honesty-callout { margin-top: 12px; padding: 13px 14px; border: 1px solid #e0c68a; border-radius: 13px; background: #fff8e8; }
.honesty-callout strong { font-size: 12px; }
.honesty-callout p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.label-confirm { display: grid; grid-template-columns: minmax(170px,.65fr) 1.35fr; gap: 16px; align-items: start; }
.label-confirm > img { width: 100%; max-height: 520px; object-fit: contain; border: 1px solid var(--border); border-radius: 16px; background: #f0f1ed; }
.label-confirm-form .honesty-callout { margin: 0 0 14px; }
.label-result { display: grid; margin-top: 14px; padding: 17px; color: white; border-radius: 14px; background: var(--forest); }
.label-result span { color: var(--lime); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.label-result strong { margin-top: 5px; font-size: 19px; }
.label-result small { margin-top: 3px; color: #aeb9b0; }
.account-summary { display: flex; align-items: center; gap: 13px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
.account-avatar { display: grid; width: 46px; height: 46px; place-items: center; color: var(--forest); border-radius: 14px; background: var(--lime); font-weight: 950; }
.account-summary strong, .account-summary span { display: block; }
.account-summary span { margin-top: 3px; color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.account-actions { display: grid; gap: 8px; margin-top: 14px; }
.account-actions button { display: grid; gap: 4px; min-height: 67px; padding: 13px; color: var(--ink); border: 1px solid var(--border); border-radius: 13px; background: #f5f6f0; text-align: left; }
.account-actions strong { font-size: 12px; }
.account-actions span { color: var(--muted); font-size: 10px; }
.account-danger { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 17px; padding-top: 15px; border-top: 1px solid var(--border); }
.account-danger button { padding: 5px 0; color: var(--ink); border: 0; background: transparent; font-size: 11px; font-weight: 850; }
.account-danger .danger-link { color: #9a4638; }
.meal-plan { display: grid; gap: 8px; }
.meal-plan .honesty-callout { margin: 0 0 4px; }
.meal-plan article { display: grid; grid-template-columns: 85px 1fr auto; gap: 10px; align-items: center; padding: 12px; border: 1px solid var(--border); border-radius: 13px; background: white; }
.meal-plan article > span { color: var(--lime-dark); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.meal-plan article div { display: grid; gap: 3px; }
.meal-plan article strong { font-size: 12px; }
.meal-plan article small { color: var(--muted); font-size: 9px; }
.meal-plan article button { padding: 7px 10px; color: var(--forest); border: 0; border-radius: 8px; background: var(--lime); font-size: 10px; font-weight: 900; }
.meal-plan-total { display: grid; margin-top: 5px; padding: 15px; color: white; border-radius: 14px; background: var(--forest); }
.meal-plan-total span { color: var(--lime); font-size: 9px; text-transform: uppercase; }
.meal-plan-total strong { margin-top: 5px; }
.meal-plan-total small { margin-top: 3px; color: #aeb9b0; }

@media (max-width: 900px) {
  .action-launcher-grid { grid-template-columns: repeat(3,1fr); }
  .food-library-grid, .recipe-browser-grid, .inspiration-food-grid { grid-template-columns: 1fr 1fr; }
  .today-exercises > article { grid-template-columns: minmax(170px,1fr) 1fr 1fr; }
  .today-exercises > article > .why-mini { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  main.app-main { width: calc(100% - 22px); padding: 13px 0 145px; }
  .section-nav { position: fixed; z-index: 35; top: auto; right: 0; bottom: 0; left: 0; width: 100%; margin: 0; padding: 6px 7px max(6px, env(safe-area-inset-bottom)); border-width: 1px 0 0; border-radius: 0; background: rgba(243,241,233,.97); }
  .nav-btn { min-width: 0; min-height: 47px; padding: 5px 2px; font-size: 10px; }
  .ask-atlas-fab { bottom: calc(68px + env(safe-area-inset-bottom)); }
  .app-footer { margin-top: -95px; padding-bottom: 95px; }
  .calorie-hero { display: grid; min-height: 0; padding: 30px 23px 25px; }
  .calorie-left { display: grid; gap: 9px; }
  .calorie-left strong { font-size: clamp(72px, 24vw, 112px); }
  .calorie-left span { font-size: 24px; }
  .calorie-hero > div:first-child > p:last-child { margin-top: 19px; font-size: 13px; }
  .calorie-hero-actions { grid-template-columns: auto 1fr; align-items: center; }
  .daily-essentials { grid-template-columns: 1fr 1fr; }
  .daily-essentials article { min-height: 103px; padding: 15px; }
  .atlas-compact { grid-template-columns: 39px 1fr; padding: 19px 17px; }
  .atlas-compact-mark { width: 39px; height: 39px; border-radius: 12px; font-size: 19px; }
  .atlas-compact h2 { font-size: 22px; }
  .atlas-compact p:not(.eyebrow) { font-size: 12px; }
  .action-launcher-grid { grid-template-columns: 1fr 1fr; }
  .action-launcher-grid button { min-height: 86px; }
  .today-context, .view-header { align-items: flex-start; flex-direction: column; }
  .view-header .primary-btn { width: 100%; }
  .food-summary { grid-template-columns: 1fr 1fr; }
  .food-summary > .why-mini { grid-column: 1 / -1; min-height: 45px; }
  .food-summary .secondary-macros { min-height: 60px; }
  .meal-day-grid, .food-library-grid, .recipe-browser-grid, .inspiration-food-grid, .inspiration-split, .progress-detail-grid { grid-template-columns: 1fr; }
  .inspiration-actions { grid-template-columns: 1fr 1fr; }
  .today-exercises { padding: 18px 15px; }
  .today-exercises > article { grid-template-columns: 1fr 1fr; }
  .today-exercises > article > div:first-child { grid-column: 1 / -1; }
  .weekly-review-grid { grid-template-columns: 1fr 1fr; }
  .label-confirm { grid-template-columns: 1fr; }
  .label-confirm > img { max-height: 300px; }
}

@media (max-width: 460px) {
  .privacy-pill { max-width: 128px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .day-control > div small { max-width: 185px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .day-control input { width: 128px; }
  .inspiration-actions { grid-template-columns: 1fr; }
  .water-quick { grid-template-columns: 1fr; }
  .meal-plan article { grid-template-columns: 68px 1fr auto; }
}

/* Master UX v1: charcoal, controlled energy, progressive disclosure. */
:root { color-scheme:dark; --background:#0B0D0C; --surface:#141816; --surface-secondary:#1A1F1C; --line:#272D29; --text:#F4F3ED; --text-secondary:#A6ADA8; --text-muted:#717873; --accent:#B7FF3C; --ready:#B7FF3C; --maintain:#F4B84A; --recover:#FF6961; --hydration:#55B8FF; --ink:var(--text); --muted:var(--text-secondary); --paper:var(--background); --card:var(--surface); --forest:var(--background); --forest-2:var(--surface); --lime:var(--accent); --lime-dark:var(--accent); --coral:var(--recover); --amber:var(--maintain); --blue:var(--hydration); --border:var(--line); --shadow:none; }
body { background:var(--background); color:var(--text); font-size:16px; line-height:1.5; }
button,a,input,textarea,select,summary { -webkit-tap-highlight-color:transparent; }
button { min-height:44px; border:1px solid var(--line); border-radius:12px; padding:8px 14px; background:var(--surface-secondary); color:var(--text); font-size:14px; }
button:hover { border-color:var(--text-muted); }
a { color:var(--text); }
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
h1,h2,h3,p { overflow-wrap:break-word; }
h1 {font-size:28px;line-height:1.2;letter-spacing:-.7px} h2{font-size:22px;line-height:1.3} h3{font-size:18px;line-height:1.35} p{font-size:16px;color:var(--text-secondary)}
small {font-size:13px;color:var(--text-secondary)}
.app-shell {max-width:880px;margin:auto;padding-bottom:32px}
.topbar {position:relative;min-height:80px;padding:16px 24px;background:var(--background);border:0;box-shadow:none;max-width:none}
.brand-copy strong {font-size:21px;letter-spacing:4px;color:var(--text)}
.account-button,.account-avatar {height:44px;width:44px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:50%;font-size:15px;box-shadow:none}
.section-nav {position:sticky;top:0;bottom:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 20px;padding:0;max-width:none;width:auto;background:var(--background);border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;z-index:20;backdrop-filter:none}
.section-nav .nav-btn {display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:56px;padding:12px 4px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;box-shadow:none;font-size:14px;font-weight:500;color:var(--text-secondary)}
.nav-btn .line-icon {color:var(--text-muted)} .section-nav .nav-btn.active {color:var(--text);background:transparent;border-bottom-color:var(--accent)} .nav-btn.active .line-icon {color:var(--accent)}
.line-icon {width:20px;height:20px;flex-shrink:0;display:inline-block;vertical-align:middle}
.app-main {max-width:none;padding:24px 24px 0;margin:0}
.view {display:none} .view.active {display:block;animation:section-in 180ms ease-out}
@keyframes section-in {from{opacity:.6;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}
.day-control {margin:0 0 24px;padding:0;border:0;display:flex;justify-content:space-between;background:transparent;min-height:44px}.day-control input {background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:8px;min-height:44px}
.eyebrow {font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-secondary);font-weight:500;margin:0 0 12px}
.calorie-hero {display:block;position:relative;min-height:0;padding:24px 0 28px;margin:0;background:transparent;border:0;border-radius:0;box-shadow:none;color:var(--text)}
.calorie-hero:before,.calorie-hero:after {display:none}
.calorie-left {display:flex;align-items:baseline;gap:12px;margin:0}.calorie-left strong {font-size:64px;line-height:1.05;letter-spacing:-3px;color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.calorie-left span {font-size:16px;color:var(--text-secondary);font-weight:400}
.calorie-hero>p:not(.eyebrow) {font-size:14px;margin:16px 0 0;color:var(--text-secondary)} .calorie-hero>.why-link {position:absolute;right:0;bottom:32px}
.calorie-progress {position:relative;inset:auto;height:3px;border-radius:2px;background:var(--line);margin-top:32px}.calorie-progress span{background:var(--accent);height:100%;display:block;border-radius:2px;transition:width 180ms}
.daily-essentials {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:0;margin:0 0 24px;background:none;border:0;border-radius:0}.daily-essentials article {display:flex;flex-direction:column;align-items:flex-start;padding:8px 16px;border:0;border-right:1px solid var(--line);background:none;min-height:112px}.daily-essentials article:first-child{padding-left:0}.daily-essentials article:last-child{border:0;padding-right:0}.daily-essentials article>span {font-size:13px;color:var(--text-secondary)}.daily-essentials strong {font-size:25px;letter-spacing:-.6px;font-weight:500;margin:8px 0 0;white-space:normal}.daily-essentials small {font-size:12px;line-height:1.4}.daily-essentials .why-mini{font-size:13px;padding:4px 0;min-height:44px;text-align:left;line-height:1.3}
.hydration strong {color:var(--hydration)} .status-green {color:var(--ready)!important}.status-amber{color:var(--maintain)!important}.status-red{color:var(--recover)!important}
.atlas-compact {display:block;padding:24px;margin:0 0 24px;border-radius:20px;background:var(--surface);border:1px solid var(--line);box-shadow:none}.atlas-compact h2 {font-size:21px;margin:0 0 8px}.atlas-compact p:not(.eyebrow) {font-size:16px;line-height:1.55;max-width:560px;margin:0}.atlas-compact .why-link {margin-top:8px}.atlas-compact .eyebrow{color:var(--text-secondary)}
.why-mini,.why-link,.why-link.light,.text-button {background:transparent;color:var(--text-secondary);border:0;text-decoration:none;min-height:44px;padding:8px 0;font-weight:500}.why-link:hover,.why-mini:hover,.text-button:hover{color:var(--text)}
.action-launcher {margin:0;padding:0;border:0;background:none}.action-launcher-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.action-launcher-grid button {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);padding:12px 4px;background:transparent;border-radius:14px;min-height:76px;font-size:13px}.action-launcher-grid button:first-child {background:var(--accent);border-color:var(--accent);color:var(--background)}.action-launcher-grid button span {font-size:13px;color:inherit;font-weight:500}.action-launcher-grid button .line-icon{color:inherit}
.view-header {display:flex;gap:16px;align-items:center;justify-content:space-between;margin:0 0 24px}.view-header h1{margin:0}.view-header p{margin:0 0 8px}
.primary-btn {background:var(--accent);color:var(--background);border:1px solid var(--accent);box-shadow:none;border-radius:12px;font-weight:600;min-height:48px}.secondary-btn{background:var(--surface-secondary);color:var(--text);border:1px solid var(--line);box-shadow:none}
.first-use {display:flex;gap:16px;align-items:center;padding:16px;margin-bottom:24px;border-left:2px solid var(--line);background:transparent}.first-use strong{font-size:13px;font-weight:500}.first-use p{font-size:14px;margin:4px 0}.first-use button{flex-shrink:0}
.health-summary,.food-summary {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:transparent;border:0;padding:0;margin:0 0 24px;gap:16px}.health-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.health-summary article,.food-summary>div {display:flex;flex-direction:column;background:transparent;padding:0;min-width:0}.health-summary span,.food-summary span{font-size:13px;color:var(--text-secondary)}.health-summary strong{font-size:32px;font-weight:500;margin:8px 0}.food-summary strong{font-size:25px;font-weight:500}.health-summary .why-mini,.food-summary .why-mini{align-self:flex-start}
.health-trend {padding:8px 0 24px}.health-trend h2{font-size:18px}.health-trend p{margin-bottom:0}
.inline-actions,.water-inline {display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:24px}.water-inline>span{color:var(--hydration);font-size:14px;margin-right:auto}.water-inline button{font-size:13px;padding:8px 10px}
.disclosure {border:0;border-top:1px solid var(--line);padding:0;margin:0;background:transparent;border-radius:0}.disclosure>summary {padding:20px 0;font-size:16px;font-weight:500;color:var(--text)}details>summary{cursor:pointer;min-height:48px;padding:12px 0}details[open]>summary{margin-bottom:8px}.disclosure>p{margin:0 0 20px}.disclosure[open]{padding-bottom:24px}details li{margin:8px 0;color:var(--text-secondary)}
.food-tools {background:transparent;padding:0;margin:0 0 24px;border:0}.food-tools label{font-size:14px}.food-tools>div {display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.food-tools button{background:var(--surface);color:var(--text)}
.meal-day-grid{display:grid;grid-template-columns:1fr;gap:0;margin-bottom:24px}.meal-day-card {background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:16px 0}.meal-day-head h2{font-size:18px;margin:0}.meal-day-head button{background:transparent;color:var(--text);border:0}.meal-day-card details summary{font-size:14px;color:var(--text-secondary);padding:8px 0}.meal-item-list>div{border-color:var(--line)}
.food-library-grid,.inspiration-food-grid,.programme-grid {display:grid;grid-template-columns:1fr;gap:16px}.food-preset,.inspiration-food-grid article,.programme-session {background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:18px;padding:20px}.food-preset span{color:var(--text-secondary)}.inspiration-food-grid article button,.food-preset button {background:var(--surface-secondary);color:var(--text);border:1px solid var(--line)}
.training-focus {display:block;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:24px;margin:0 0 24px;box-shadow:none}.training-focus>p:first-child{font-size:13px;margin:0 0 12px}.training-focus h2{margin:0 0 8px}.training-focus .inline-actions{margin:16px 0 0}.today-exercises{margin-bottom:24px}.today-exercises article {display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;background:none;border:0;border-bottom:1px solid var(--line)}.today-exercises h3{margin:0 0 8px;font-size:17px}.today-exercises strong{font-size:17px;font-weight:500}.today-exercises small{display:block;margin-top:4px}.today-exercises .why-mini{flex-shrink:0}.programme-session li{border-color:var(--line)}.programme-session li strong{color:var(--text)}.history-row{padding:12px 0;border-bottom:1px solid var(--line)}.history-row h3{margin-bottom:4px}
.inspiration-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inspiration-actions button{background:var(--surface);color:var(--text);border:1px solid var(--line)}
.sheet-backdrop,.onboard-backdrop {background:rgba(0,0,0,.65);backdrop-filter:blur(4px);z-index:100}.log-sheet,.onboard-card{background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:none;border-radius:22px;max-height:92dvh;overflow:auto}.log-sheet{padding:32px 24px 24px}.sheet-copy,.privacy-copy,.onboard-copy{color:var(--text-secondary)}.sheet-close{color:var(--text);background:var(--surface-secondary);border:1px solid var(--line);width:44px;height:44px;padding:0}.sheet-date{background:var(--surface-secondary);border:1px solid var(--line);border-radius:12px}.sheet-date input{background:var(--surface);color:var(--text)}.sheet-actions{background:var(--surface);border-color:var(--line)}
.field-input,.field-select,.field-textarea,.onboard-input,.sheet-date input {background:var(--background);color:var(--text);border:1px solid var(--line);min-height:48px;border-radius:12px;padding:12px;font-size:16px;width:100%}.field label,.onboard-label{color:var(--text-secondary);font-size:14px}.form-grid{gap:16px}.field{margin-bottom:16px}.field.full{grid-column:1/-1}.field-input::placeholder,.field-textarea::placeholder{color:var(--text-muted)}
.why-answer,.why-data,.atlas-answer,.honesty-callout,.label-result,.meal-plan-total,.water-now,.account-summary {background:var(--surface-secondary);color:var(--text);border:1px solid var(--line);border-radius:16px}.why-answer h3{color:var(--text)}.why-answer p,.why-data li,.atlas-answer p,.atlas-honesty p{color:var(--text-secondary)}.why-data-toggle {background:transparent;color:var(--text);border:1px solid var(--line);margin:16px 0}.atlas-honesty{background:transparent;border-color:var(--line)}.atlas-question-grid button{background:var(--surface-secondary);color:var(--text);border-color:var(--line)}.atlas-question-grid button.active{border-color:var(--accent);color:var(--accent)}
.account-actions {display:grid;grid-template-columns:1fr;gap:0}.account-actions button,.account-actions a{min-height:52px;padding:14px 0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;color:var(--text);text-align:left;font-size:16px}.account-actions span{color:var(--text-secondary)}.danger-link{color:var(--recover)!important}.water-quick button{background:var(--surface-secondary);color:var(--hydration);border-color:var(--line)}.water-now strong{color:var(--hydration)}
.onboard-card{width:min(620px,100%);padding:32px 24px;margin:auto}.onboard-content{padding:24px 0;min-height:0}.onboard-content h1,.onboard-content h2{margin:0 0 16px}.onboard-content p{color:var(--text-secondary)}.onboard-progress{height:3px;background:var(--line);border:0}.onboard-progress span{display:block;height:100%;background:var(--accent)}.onboard-actions{display:flex;justify-content:space-between;gap:16px;padding:16px 0 0;background:var(--surface);border-top:1px solid var(--line)}.onboard-choice-grid{display:grid;grid-template-columns:1fr;gap:8px}.onboard-choice{display:block;position:relative;background:var(--background);border:1px solid var(--line);color:var(--text);border-radius:14px;padding:14px 16px;text-align:left;min-height:64px}.onboard-choice strong{display:block;color:var(--text);font-size:16px;padding-right:20px}.onboard-choice small{font-size:14px;color:var(--text-secondary);display:block;padding-top:4px}.onboard-choice.selected{background:var(--surface-secondary);border-color:var(--accent);box-shadow:none}.choice-check{position:absolute;right:16px;top:16px;color:var(--accent);border:0;background:none}.consent-box{background:var(--background);color:var(--text-secondary);border-color:var(--line);font-size:14px}.welcome-promise{font-size:22px!important;color:var(--text)!important;margin-top:32px}.area-guide article{display:flex;gap:16px;margin:24px 0}.area-guide h3{margin:0 0 4px}.area-guide p{font-size:15px;margin:0}.area-guide .line-icon{color:var(--accent);margin-top:4px}.onboard-why{padding:20px;background:var(--background);border-radius:16px}
.exercise-result{background:transparent;border:0;border-bottom:1px solid var(--line);padding:20px 0;color:var(--text)}.exercise-log .group-label,.exercise-result label{color:var(--text-secondary)}.panel,.weekly-review,.stat,.baseline-tags span,.recipe-meta>div,.recipe-browser-grid article{background:var(--surface);border-color:var(--line);color:var(--text);box-shadow:none}.stat strong,.weekly-review strong{color:var(--text)}.progress-grid,.progress-detail-grid{grid-template-columns:1fr}.signin-page{background:var(--background)}.signin-card{background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:none}.signin-card p{color:var(--text-secondary)}.signin-mark{background:none;color:var(--accent)}
@media(max-width:600px){.topbar{padding:16px 20px;min-height:76px}.app-main{padding:24px 20px 0}.section-nav{margin:0 20px}.section-nav .nav-btn{flex-direction:column;gap:5px;padding:10px 2px;font-size:13px;min-height:68px}.calorie-left strong{font-size:60px}.calorie-hero{padding-top:12px}.daily-essentials article{padding-left:10px;padding-right:10px}.daily-essentials strong{font-size:23px}.calorie-hero>.why-link{bottom:33px}.atlas-compact{padding:20px}.action-launcher-grid{gap:6px}.action-launcher-grid button{min-height:76px;padding:10px 2px;font-size:12px}.action-launcher-grid button span{font-size:12px}.food-summary{gap:12px}.food-summary strong{font-size:24px}.log-sheet{border-radius:22px 22px 0 0;max-height:94dvh;width:100%;padding:32px 20px 20px}.onboard-backdrop{padding:12px}.onboard-card{max-height:95dvh;padding:24px 20px}.view-header h1{font-size:26px}.view-header{align-items:flex-start}.view-header>.primary-btn{padding:10px 12px;white-space:nowrap}.food-library-grid,.inspiration-food-grid,.programme-grid{grid-template-columns:1fr}.exercise-result{display:block}.exercise-result label{display:block;margin:12px 0}.first-use{padding:12px;gap:12px}.form-grid{grid-template-columns:1fr}.field.half{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.set-row {display:grid;grid-template-columns:58px 1fr 104px;gap:12px;align-items:center;margin:12px 0}.set-row span{font-size:14px}.set-row input{min-width:0}.set-row button[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--surface)}.save-error{color:var(--recover);font-size:14px}.exercise-result>summary{font-size:18px;font-weight:500}
main.app-main {width:100%;padding:24px 24px 0;margin:0 auto}.calorie-hero .eyebrow{color:var(--text-secondary)}.action-launcher-grid button span{display:block;width:auto;height:auto;background:transparent;border-radius:0;line-height:1.4}.daily-essentials article{min-height:112px}.daily-essentials article>strong{font-size:25px;line-height:1.3}.daily-essentials article>span{text-transform:none;letter-spacing:0}.brand-copy strong{font-family:inherit}.calorie-hero .why-link{bottom:32px}.atlas-compact{margin-bottom:20px}.action-launcher-grid{margin-top:0}
@media(max-width:600px){main.app-main{padding:20px 20px 0}.daily-essentials article>strong{font-size:23px}.calorie-hero{padding-bottom:24px}.daily-essentials{margin-bottom:20px}.atlas-compact{padding:20px}.calorie-hero>.why-link{position:static;margin:4px 0 0;padding:0;min-height:44px}.calorie-progress{margin-top:4px}}
.view .view-header{display:flex;flex-direction:row}.view .view-header>.primary-btn{width:auto;align-self:center}.food-summary>div>strong{color:var(--text)}.food-summary>div.hydration>strong{color:var(--hydration)}.food-summary>div>span,.daily-essentials article>span:first-child{font-size:13px;font-weight:400;text-transform:none;letter-spacing:0}.food-summary>div:first-child{grid-column:auto}.training-focus>p{font-size:16px;line-height:1.5}.today-exercises article>div{padding:0}.today-exercises article>div>strong{font-size:17px}.today-exercises article>div>small{font-size:14px}.today-exercises .why-mini{color:var(--text-secondary)}
.why-panel>.privacy-copy,.log-sheet .privacy-copy,.onboard-disclaimer,.programme-safety{background:transparent;color:var(--text-secondary);border:0;padding:0;font-size:13px;line-height:1.5}.why-answer p{font-size:16px;line-height:1.6}.why-answer>span{color:var(--text-secondary);font-size:12px}.food-summary>div{min-height:0}.water-inline{gap:6px}.water-inline>span{width:100%;margin-bottom:4px}.daily-essentials article{gap:0}.daily-essentials .why-mini{margin-top:0}.calorie-hero>p:not(.eyebrow){margin-top:12px}.atlas-compact .why-link{padding:0;min-height:44px;margin-top:0}
@media(max-width:600px){.calorie-hero{padding-top:4px}.calorie-left strong{font-size:56px}.daily-essentials article{padding-top:0;padding-bottom:0}.daily-essentials article>strong{margin-top:6px}.atlas-compact{padding:16px 20px}.section-nav .nav-btn{min-height:64px}.topbar{min-height:68px}.action-launcher-grid button{min-height:70px}}
.onboard-card{min-height:0;position:relative}.onboard-content{flex:none}.onboard-content h1{font-size:30px;line-height:1.2;letter-spacing:-.7px}.onboard-content h2{font-size:26px;line-height:1.25;letter-spacing:-.5px}.onboard-actions{position:sticky;bottom:0;padding-bottom:8px}.log-sheet .sheet-body{color:var(--text)}

/* Intro guidance uses the live interface underneath; no layout changes. */
.intro-tour{position:fixed;inset:0;margin:0;padding:0;width:100%;height:100%;max-width:none;max-height:none;border:0;background:transparent;color:#F4F3ED;overflow:hidden;}
.intro-tour::backdrop{background:transparent;}
.intro-shade{position:fixed;background:rgba(11,13,12,.82);pointer-events:auto;}
.intro-highlight{position:fixed;padding:0!important;margin:0;border:2px solid #B7FF3C!important;border-radius:12px;background:transparent!important;opacity:1!important;box-shadow:none!important;min-height:0!important;cursor:pointer;}
.intro-highlight[hidden]{display:none;}
.intro-highlight:disabled{cursor:default;}
.intro-card{position:fixed;box-sizing:border-box;overflow:auto;overscroll-behavior:contain;padding:24px;border:1px solid #272D29;border-radius:20px;background:#141816;box-shadow:0 16px 48px rgba(0,0,0,.28);font-family:inherit;}
.intro-card h2{font-size:1.5rem;line-height:1.2;margin:0 0 16px;color:#F4F3ED;letter-spacing:-.02em;}
.intro-card p{font-size:1rem;line-height:1.5;color:#A6ADA8;margin:0 0 12px;}
.intro-card .intro-count{font-size:.8125rem;color:#A6ADA8;margin-bottom:16px;}
.intro-card .intro-promise{color:#F4F3ED;font-weight:600;}
.intro-card .intro-replay-note{font-size:.875rem;}
.intro-actions{display:flex;align-items:center;gap:8px;margin-top:24px;flex-wrap:wrap;}
.intro-actions button{min-height:48px;min-width:48px;padding:10px 12px;font:inherit;font-size:.875rem;border-radius:12px;}
.intro-skip,.intro-back{background:transparent;border:1px solid transparent;color:#F4F3ED;}
.intro-actions .intro-skip{margin-right:auto;color:#A6ADA8;}
.intro-actions .intro-next{background:#B7FF3C;color:#0B0D0C;border:0;font-weight:600;}
.intro-tour button:focus-visible{outline:2px solid #F4F3ED;outline-offset:3px;}
@media(max-width:360px){.intro-card{padding:20px}.intro-actions{gap:4px}.intro-actions button{padding:10px 8px}}
.intro-card{display:flex;flex-direction:column;overflow:hidden;}
.intro-card h2,.intro-card .intro-count,.intro-actions{flex-shrink:0;}
#intro-copy{min-height:0;overflow:auto;overscroll-behavior:contain;}
.user-guide #start-intro-tour{display:block;margin-bottom:12px;}
