:root {
  --ink: #10251f;
  --ink-2: #203b33;
  --paper: #f2f0e8;
  --paper-2: #e9e6dc;
  --white: #fbfaf6;
  --line: #d2d0c5;
  --muted: #69766f;
  --green: #8ed16f;
  --green-deep: #26704f;
  --lime: #d7f65f;
  --amber: #efa83f;
  --red: #d95c4e;
  --blue: #4a78e0;
  --shadow: 0 16px 40px rgba(16, 37, 31, 0.08);
  --radius: 18px;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { overflow-x: hidden; scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--paper);
  color: var(--ink);
  font-family: "Segoe UI Variable", "Segoe UI", Arial, sans-serif;
  font-size: 15px;
  line-height: 1.5;
}
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
input, select, textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--white);
  color: var(--ink);
  padding: 12px 13px;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--green-deep);
  box-shadow: 0 0 0 3px rgba(38,112,79,.13);
}
input[type="checkbox"], input[type="radio"] { width: auto; accent-color: var(--green-deep); }
label { display: block; color: var(--ink-2); font-size: 13px; font-weight: 650; margin-bottom: 6px; }
textarea { min-height: 94px; resize: vertical; }
table { border-collapse: collapse; width: 100%; }
th { color: var(--muted); font-size: 11px; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
th, td { border-bottom: 1px solid var(--line); padding: 12px 10px; vertical-align: middle; }
tr:last-child td { border-bottom: 0; }

.app-shell { min-height: 100vh; }
.sidebar {
  background: var(--ink);
  bottom: 0;
  color: #e6ede8;
  display: flex;
  flex-direction: column;
  left: 0;
  padding: 28px 20px 20px;
  position: fixed;
  top: 0;
  width: 242px;
  z-index: 20;
}
.brand { align-items: center; display: flex; gap: 12px; margin: 0 7px 38px; }
.brand > div:last-child { display: grid; line-height: 1; }
.brand strong { font-family: "Arial Narrow", Impact, sans-serif; font-size: 21px; letter-spacing: .09em; }
.brand small { color: #91a59c; font-size: 9px; letter-spacing: .2em; margin-top: 5px; }
.brand-mark { align-items: end; display: flex; gap: 3px; height: 26px; width: 24px; }
.brand-mark span { background: var(--lime); border-radius: 2px; display: block; width: 6px; }
.brand-mark span:nth-child(1) { height: 12px; }
.brand-mark span:nth-child(2) { height: 23px; }
.brand-mark span:nth-child(3) { height: 17px; }
#primary-nav { display: grid; gap: 5px; }
#primary-nav a {
  align-items: center;
  border-radius: 9px;
  color: #9fb0a9;
  display: flex;
  font-weight: 650;
  gap: 14px;
  padding: 11px 12px;
  transition: background .2s, color .2s, transform .2s;
}
#primary-nav a span { color: #60746b; font-family: Consolas, monospace; font-size: 10px; }
#primary-nav a:hover { color: white; transform: translateX(2px); }
#primary-nav a.active { background: #223b33; color: white; }
#primary-nav a.active span { color: var(--lime); }
.side-footer { border-top: 1px solid #29443a; margin-top: auto; padding: 18px 10px 0; }
.storage-indicator { align-items: center; color: #a9b9b2; display: flex; font-size: 12px; gap: 8px; }
.storage-indicator i { background: var(--green); border-radius: 50%; box-shadow: 0 0 0 4px rgba(142,209,111,.12); height: 7px; width: 7px; }
.text-button { background: none; border: 0; color: #7f9289; cursor: pointer; font-size: 12px; margin: 14px 0 0; padding: 0; text-decoration: underline; text-underline-offset: 3px; }
.main-shell { margin-left: 242px; min-height: 100vh; }
.topbar {
  align-items: center;
  backdrop-filter: blur(13px);
  background: rgba(242,240,232,.88);
  border-bottom: 1px solid rgba(210,208,197,.8);
  display: flex;
  height: 76px;
  justify-content: space-between;
  padding: 0 34px;
  position: sticky;
  top: 0;
  z-index: 12;
}
.topbar-context { display: grid; }
.topbar-context span { color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.topbar-context strong { font-family: "Arial Narrow", Impact, sans-serif; font-size: 21px; letter-spacing: .02em; }
.topbar-actions { align-items: center; display: flex; gap: 12px; }
.share-button {
  background: transparent;
  border: 1px solid var(--green-deep);
  border-radius: 9px;
  color: var(--green-deep);
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  padding: 9px 14px;
}
.share-button:hover { background: rgba(38,112,79,.08); }
.share-button:disabled { cursor: wait; opacity: .6; }
.quick-add, .button {
  border: 0;
  border-radius: 9px;
  cursor: pointer;
  font-weight: 750;
  padding: 11px 16px;
  transition: transform .15s, filter .15s, background .15s;
}
.quick-add { background: var(--ink); color: white; }
.quick-add:hover, .button:hover { filter: brightness(1.08); transform: translateY(-1px); }
.button.primary { background: var(--ink); color: white; }
.button.signal { background: var(--lime); color: var(--ink); }
.button.secondary { background: var(--paper-2); border: 1px solid var(--line); }
.button.danger { background: #fae2de; color: #8d3027; }
.button.small { font-size: 12px; padding: 8px 11px; }
.button.wide { width: 100%; }
.button:disabled { cursor: not-allowed; filter: grayscale(1); opacity: .5; transform: none; }
.profile-button, .icon-button {
  align-items: center;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  height: 40px;
  justify-content: center;
  width: 40px;
}
.profile-button span { font-size: 11px; font-weight: 800; }
.menu-button { display: none; font-size: 22px; }
.menu-close { background: transparent; border: 0; color: white; cursor: pointer; display: none; font-size: 28px; line-height: 1; position: absolute; right: 17px; top: 18px; }
#page { margin: 0 auto; max-width: 1540px; padding: 32px 34px 70px; }
.page-enter { animation: pageIn .35s ease-out; }
@keyframes pageIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }

.page-heading { align-items: end; display: flex; gap: 24px; justify-content: space-between; margin-bottom: 24px; }
.page-heading h1, .hero h1, .auth-panel h1 {
  font-family: "Arial Narrow", Impact, sans-serif;
  font-weight: 800;
  letter-spacing: -.02em;
  line-height: .96;
  margin: 0;
  text-transform: uppercase;
}
.page-heading h1 { font-size: clamp(32px, 4vw, 52px); }
.page-heading p { color: var(--muted); margin: 8px 0 0; max-width: 620px; }
.eyebrow { color: var(--green-deep); font-size: 10px; font-weight: 800; letter-spacing: .15em; margin: 0 0 9px; text-transform: uppercase; }
.section-title { align-items: center; display: flex; justify-content: space-between; margin: 30px 0 13px; }
.section-title h2 { font-family: "Arial Narrow", Impact, sans-serif; font-size: 22px; letter-spacing: .01em; margin: 0; text-transform: uppercase; }
.section-title p { color: var(--muted); font-size: 12px; margin: 0; }

.hero {
  background: var(--ink);
  border-radius: 24px;
  color: white;
  display: grid;
  gap: 26px;
  grid-template-columns: 1.4fr 1fr;
  min-height: 300px;
  overflow: hidden;
  padding: 34px;
  position: relative;
}
.hero:after { background: radial-gradient(circle, rgba(215,246,95,.2), transparent 65%); content: ""; height: 430px; position: absolute; right: -130px; top: -170px; width: 430px; }
.hero-copy { align-self: center; position: relative; z-index: 2; }
.hero .eyebrow { color: var(--lime); }
.hero h1 { font-size: clamp(44px, 6vw, 78px); max-width: 650px; }
.hero h1 em { color: var(--lime); font-style: normal; }
.hero-copy > p:not(.eyebrow) { color: #a9bcb4; margin: 17px 0 22px; max-width: 510px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.hero-actions .button.secondary { background: transparent; border-color: #41594f; color: white; }
.target-visual { align-items: center; display: flex; justify-content: center; min-height: 230px; position: relative; z-index: 2; }
.target-ring { align-items: center; border: 1px solid #496159; border-radius: 50%; display: flex; flex-direction: column; height: 220px; justify-content: center; position: relative; width: 220px; }
.target-ring:before { border: 8px solid var(--lime); border-bottom-color: transparent; border-left-color: #385048; border-radius: 50%; content: ""; inset: 12px; position: absolute; transform: rotate(34deg); }
.target-ring strong { font-family: "Arial Narrow", Impact, sans-serif; font-size: 52px; line-height: 1; }
.target-ring span { color: #aebeb8; font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.target-ring small { background: var(--lime); border-radius: 20px; bottom: 6px; color: var(--ink); font-weight: 850; padding: 6px 11px; position: absolute; }

.grid { display: grid; gap: 16px; }
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dashboard-grid { grid-template-columns: 1.4fr .8fr; margin-top: 16px; }
.card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 2px 0 rgba(16,37,31,.02);
  padding: 21px;
}
.card.dark { background: var(--ink); border-color: var(--ink); color: white; }
.card-header { align-items: start; display: flex; gap: 16px; justify-content: space-between; margin-bottom: 18px; }
.card-header h2, .card-header h3 { margin: 0; }
.card-header h2 { font-family: "Arial Narrow", Impact, sans-serif; font-size: 22px; text-transform: uppercase; }
.card-header h3 { font-size: 15px; }
.card-header p { color: var(--muted); font-size: 12px; margin: 4px 0 0; }
.dark .card-header p { color: #a7bbb2; }
.metric-card { min-height: 160px; position: relative; }
.metric-card .metric-label { color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.metric-card strong { display: block; font-family: "Arial Narrow", Impact, sans-serif; font-size: 37px; line-height: 1.1; margin: 17px 0 7px; }
.metric-card strong small { color: var(--muted); font-family: inherit; font-size: 16px; }
.delta { align-items: center; border-radius: 20px; display: inline-flex; font-size: 11px; font-weight: 800; gap: 4px; padding: 4px 8px; }
.delta.bad { background: #fae0db; color: #973b31; }
.delta.good { background: #dff1d8; color: #27613e; }
.delta.neutral { background: var(--paper-2); color: var(--muted); }
.metric-change { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 9px; }
.metric-change > span:last-child { color: var(--muted); font-size: 10px; }

.trend-chart { min-height: 420px; }
.chart-wrap { overflow: hidden; }
.bar-chart { align-items: end; display: grid; gap: 14px; grid-template-columns: repeat(4, minmax(72px,1fr)); height: 220px; padding: 20px 8px 0; }
.bar-group { align-items: end; display: flex; gap: 5px; height: 180px; justify-content: center; position: relative; }
.bar { border-radius: 5px 5px 1px 1px; min-height: 6px; position: relative; width: 26px; }
.bar.old { background: #c8c8be; }
.bar.new { background: var(--green-deep); }
.bar.bad-new { background: var(--red); }
.bar span { color: var(--ink); font-size: 9px; font-weight: 800; left: 50%; position: absolute; top: -17px; transform: translateX(-50%); white-space: nowrap; }
.bar-label { bottom: -24px; color: var(--muted); font-size: 10px; font-weight: 750; left: 50%; position: absolute; text-align: center; transform: translateX(-50%); width: 100px; }
.chart-legend { display: flex; gap: 16px; justify-content: flex-end; margin-top: 27px; }
.chart-legend span { align-items: center; color: var(--muted); display: flex; font-size: 10px; gap: 6px; }
.chart-legend i { background: #c8c8be; border-radius: 2px; height: 8px; width: 8px; }
.chart-legend span:last-child i { background: var(--green-deep); }

.dexa-metric-grid { display: grid; gap: 8px; grid-template-columns: repeat(4,minmax(0,1fr)); }
.dexa-metric { background: var(--paper); border: 1px solid transparent; border-radius: 11px; cursor: pointer; min-width: 0; padding: 11px; text-align: left; transition: background .2s,border-color .2s,transform .2s; }
.dexa-metric:hover { transform: translateY(-1px); }
.dexa-metric.active { background: #e5eee1; border-color: #9ab78f; }
.dexa-metric span, .dexa-metric small { color: var(--muted); display: block; font-size: 9px; }
.dexa-metric span { font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.dexa-metric strong { display: block; font-size: 15px; margin: 3px 0 1px; }
.dexa-metric i { background: #d9d9cf; border-radius: 4px; display: block; height: 4px; margin-top: 9px; overflow: hidden; }
.dexa-metric i b { background: var(--green-deep); display: block; height: 100%; }
.dexa-trend-detail { background: #f6f5ef; border: 1px solid var(--line); border-radius: 13px; margin-top: 12px; padding: 13px 14px 5px; }
.trend-detail-header { align-items: end; display: flex; justify-content: space-between; }
.trend-detail-header span { color: var(--green-deep); display: block; font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.trend-detail-header strong { display: block; font-size: 15px; }
.trend-detail-header small { color: var(--muted); font-size: 9px; }
.line-chart { display: block; height: auto; margin-top: 2px; overflow: visible; width: 100%; }
.line-chart polyline { fill: none; stroke: var(--green-deep); stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; }
.line-chart .chart-grid line { stroke: #d9d8cf; stroke-width: 1; }
.line-chart text { fill: var(--muted); font-size: 10px; }
.line-chart .chart-points circle { fill: var(--lime); stroke: var(--green-deep); stroke-width: 3; }
.line-chart .point-value { fill: var(--ink); font-size: 11px; font-weight: 800; }

.lab-score { display: grid; gap: 20px; grid-template-columns: 150px 1fr; }
.score-donut { align-items: center; background: conic-gradient(var(--green-deep) 0 36%, var(--amber) 36% 92%, var(--red) 92% 100%); border-radius: 50%; display: flex; height: 145px; justify-content: center; position: relative; width: 145px; }
.score-donut:after { background: var(--white); border-radius: 50%; content: ""; inset: 17px; position: absolute; }
.score-donut div { display: grid; position: relative; text-align: center; z-index: 1; }
.score-donut strong { font-family: "Arial Narrow", Impact, sans-serif; font-size: 34px; line-height: 1; }
.score-donut small { color: var(--muted); font-size: 9px; letter-spacing: .08em; }
.lab-breakdown { display: grid; gap: 10px; }
.lab-breakdown div { align-items: center; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; padding-bottom: 8px; }
.lab-breakdown div:last-child { border: 0; }
.lab-breakdown span { color: var(--muted); font-size: 12px; }
.lab-breakdown strong { font-size: 19px; }
.profile-snapshot .snapshot-stack { display: grid; gap: 20px; }
.profile-snapshot .snapshot-stack > section + section { border-top: 1px solid var(--line); padding-top: 18px; }
.snapshot-label { align-items: center; display: flex; justify-content: space-between; margin-bottom: 12px; }
.snapshot-label strong { font-size: 13px; }
.snapshot-label span { color: var(--muted); font-size: 10px; }
.body-donut { height: 145px; width: 145px; }
.composition-breakdown span { align-items: center; display: flex; gap: 7px; }
.composition-breakdown i { border-radius: 50%; display: inline-block; height: 7px; width: 7px; }
.legend-fat { background: var(--red); }
.legend-lean { background: var(--green-deep); }
.legend-bone { background: var(--blue); }

.priority-list { display: grid; gap: 11px; }
.priority-item { align-items: center; background: var(--paper); border-radius: 12px; display: grid; gap: 12px; grid-template-columns: auto 1fr auto; padding: 13px; }
.priority-item .rank { align-items: center; background: var(--ink); border-radius: 50%; color: white; display: flex; font-family: Consolas, monospace; font-size: 10px; height: 28px; justify-content: center; width: 28px; }
.priority-item strong { display: block; font-size: 13px; }
.priority-item small { color: var(--muted); }
.status-pill { border-radius: 30px; display: inline-flex; font-size: 9px; font-weight: 850; letter-spacing: .06em; padding: 5px 8px; text-transform: uppercase; }
.status-pill.optimal, .status-pill.approved { background: #dff1d8; color: #27613e; }
.status-pill.average, .status-pill.monitor { background: #f9e8c9; color: #895b17; }
.status-pill.out { background: #f9deda; color: #963c31; }
.status-pill.logged { background: #dee7f8; color: #36598f; }
.status-pill.cycle-continuous, .status-pill.cycle-on { background: #dff1d8; color: #27613e; }
.status-pill.cycle-off { background: #e7e7e2; color: #555f59; }
.status-pill.cycle-upcoming { background: #dee7f8; color: #36598f; }
.status-pill.cycle-setup { background: #f9e8c9; color: #895b17; }

.week-strip { display: grid; gap: 8px; grid-template-columns: repeat(7, 1fr); margin-bottom: 16px; }
.day-chip { background: var(--white); border: 1px solid var(--line); border-radius: 12px; cursor: pointer; padding: 12px 6px; text-align: center; }
.day-chip span { color: var(--muted); display: block; font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.day-chip strong { display: block; font-size: 17px; margin-top: 4px; }
.day-chip.active { background: var(--ink); border-color: var(--ink); color: white; }
.day-chip.active span { color: var(--lime); }
.workout-layout { grid-template-columns: 1.35fr .65fr; }
.session-banner { align-items: center; background: var(--ink); border-radius: 15px; color: white; display: flex; gap: 18px; justify-content: space-between; margin-bottom: 14px; padding: 18px 20px; }
.session-banner span { color: var(--lime); font-size: 10px; font-weight: 850; letter-spacing: .1em; }
.session-banner h2 { font-family: "Arial Narrow", Impact, sans-serif; font-size: 28px; margin: 2px 0 0; text-transform: uppercase; }
.thursday-reset-note { background: #eef4df; border: 1px solid #cfddb1; border-left: 4px solid var(--lime); border-radius: 11px; display: grid; gap: 3px; margin: -2px 0 13px; padding: 11px 13px; }
.thursday-reset-note span { color: #617129; font-size: 8px; font-weight: 900; letter-spacing: .11em; }
.thursday-reset-note strong { color: var(--green-deep); font-size: 12px; }
.thursday-reset-note p { color: var(--muted); font-size: 9px; line-height: 1.5; margin: 1px 0 0; }
.exercise-row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 12px; grid-template-columns: 34px minmax(170px,1fr) 52px 62px minmax(108px,auto) 62px auto; padding: 14px 0; }
.exercise-item:last-child .exercise-row { border: 0; }
.exercise-number { color: #9aa39e; font-family: Consolas, monospace; font-size: 11px; }
.exercise-name strong { display: block; }
.exercise-name small { color: var(--muted); }
.exercise-cell span { color: var(--muted); display: block; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.exercise-cell strong { font-size: 13px; }
.exercise-cell small { color: var(--muted); display: block; font-size: 9px; margin-top: 2px; }
.load-cell strong { color: var(--green-deep); }
.mini-icon { background: transparent; border: 1px solid var(--line); border-radius: 7px; cursor: pointer; height: 30px; transition: background .15s,border-color .15s,transform .15s; width: 30px; }
.mini-icon:hover,.mini-icon.active { background: var(--lime); border-color: var(--lime); transform: rotate(30deg); }
.exercise-actions { display: flex; gap: 5px; }
.mini-icon.omit { color: #7b4a36; font-size: 18px; line-height: 1; }
.mini-icon.omit:hover { background: #f3dfd3; border-color: #d9ae98; transform: none; }
.exercise-preference-adjustment { align-items: center; background: #eef4df; border-bottom: 1px solid #d4dfbd; display: flex; gap: 14px; justify-content: space-between; margin-left: 46px; padding: 10px 12px; }
.exercise-preference-adjustment > div { display: grid; gap: 2px; }
.exercise-preference-adjustment span { color: #617129; font-size: 8px; font-weight: 900; letter-spacing: .1em; }
.exercise-preference-adjustment strong { color: var(--green-deep); font-size: 11px; }
.exercise-preference-adjustment small { color: var(--muted); font-size: 9px; }
.plan-adaptation-summary { align-items: center; background: var(--green-deep); border-radius: 13px; color: white; display: grid; gap: 14px; grid-template-columns: minmax(0,1fr) auto auto; margin: 12px 0 16px; padding: 14px 16px; }
.plan-adaptation-summary > div:first-child { display: grid; gap: 3px; }
.plan-adaptation-summary > div:first-child span { color: var(--lime); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.plan-adaptation-summary > div:first-child strong { font-size: 12px; }
.plan-adaptation-summary > div:first-child small { color: #c1d0c8; font-size: 9px; }
.plan-adaptation-tags { align-items: center; display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.plan-adaptation-tags span,.plan-adaptation-tags b { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.17); border-radius: 999px; color: white; font-size: 8px; padding: 5px 8px; }
.plan-adaptation-tags b { background: var(--lime); border-color: var(--lime); color: var(--green-deep); }
.unfilled-preference-note { background: #fff2dc; border: 1px solid #e6c48c; border-radius: 9px; display: grid; gap: 3px; margin: 12px 0; padding: 10px 12px; }
.unfilled-preference-note strong { color: #704a19; font-size: 10px; }
.unfilled-preference-note span { color: #876735; font-size: 9px; }
.exercise-preference-settings { margin-top: 16px; }
.preference-settings-header { align-items: start; display: flex; gap: 22px; justify-content: space-between; }
.preference-settings-header > div { max-width: 690px; }
.preference-settings-header > div > span { color: var(--green-deep); font-size: 8px; font-weight: 900; letter-spacing: .11em; }
.preference-settings-header h3 { font-family: "Arial Narrow", Impact, sans-serif; font-size: 24px; margin: 4px 0 5px; text-transform: uppercase; }
.preference-settings-header p { color: var(--muted); font-size: 10px; line-height: 1.55; margin: 0; }
.preference-settings-header > strong { background: var(--ink); border-radius: 999px; color: var(--lime); flex: 0 0 auto; font-size: 9px; padding: 7px 10px; }
.exercise-omission-grid { display: grid; gap: 8px; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 15px 0 11px; }
.exercise-omission-option { align-items: center; background: var(--paper); border: 1px solid var(--line); border-radius: 10px; cursor: pointer; display: flex; gap: 10px; min-width: 0; padding: 10px 11px; transition: background .15s,border-color .15s; }
.exercise-omission-option:has(input:checked) { background: #eef4df; border-color: #b7ca8d; }
.exercise-omission-option input { accent-color: var(--green-deep); flex: 0 0 auto; }
.exercise-omission-option span { display: grid; gap: 2px; min-width: 0; }
.exercise-omission-option strong { font-size: 10px; }
.exercise-omission-option small { color: var(--muted); font-size: 8px; line-height: 1.35; }
.kettlebell-section { background: linear-gradient(135deg,#f4f7ed,#eef3e5); border: 1px solid #d8e2c6; border-radius: 13px; padding: 15px; }
.kettlebell-inventory-grid { display: grid; gap: 7px; grid-template-columns: repeat(7,minmax(0,1fr)); }
.kettlebell-inventory-item { background: rgba(255,255,255,.72); border: 1px solid #d6dfc5; border-radius: 9px; display: grid; gap: 5px; padding: 8px; }
.kettlebell-inventory-item span { color: var(--green-deep); font-size: 8px; font-weight: 850; }
.kettlebell-inventory-item input { min-width: 0; padding: 7px; text-align: center; }
.substitution-panel {
  background: #e8eee8;
  border: 1px solid #cbd8d0;
  border-radius: 12px;
  display: grid;
  gap: 12px;
  margin: 0 0 12px 46px;
  padding: 14px;
}
.substitution-panel-header { align-items: start; display: flex; gap: 18px; justify-content: space-between; }
.substitution-panel-header > div { display: grid; gap: 3px; }
.substitution-panel span { color: var(--green-deep); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.substitution-panel strong { font-size: 14px; }
.substitution-panel small { color: var(--muted); font-size: 10px; }
.substitution-option-grid { display: grid; gap: 10px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.substitution-option-card { background: #f8faf8; border: 1px solid #d1dcd4; border-radius: 11px; display: grid; grid-template-rows: 108px 1fr; min-width: 0; overflow: hidden; }
.substitution-option-card img { height: 108px; object-fit: cover; object-position: center; width: 100%; }
.substitution-option-card > div { align-content: start; display: grid; gap: 4px; padding: 10px; }
.substitution-option-card .button { justify-self: start; margin-top: 5px; }
.substitution-visual-missing { align-items: center; background: #dfe7e1; color: var(--muted); display: flex; font-size: 10px; justify-content: center; text-transform: uppercase; }
.substitution-empty { display: grid; gap: 3px; padding: 8px 0; }
.exercise-progression { align-items: center; background: #f2f5f1; border: 1px solid #d9e0da; border-left: 3px solid var(--green-deep); border-radius: 11px; display: grid; gap: 12px; grid-template-columns: minmax(135px,1fr) auto minmax(155px,1fr) auto; margin: 0 0 12px 46px; padding: 10px 12px; }
.exercise-progression.empty { grid-template-columns: 1fr auto; }
.exercise-progression.increase { background: #edf5de; border-left-color: var(--lime); }
.exercise-progression > div { min-width: 0; }
.exercise-progression span { color: var(--green-deep); display: block; font-size: 8px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.exercise-progression strong { display: block; font-size: 13px; margin-top: 2px; }
.exercise-progression small { color: var(--muted); display: block; font-size: 9px; margin-top: 2px; }
.exercise-progression > i { color: var(--green-deep); font-size: 18px; font-style: normal; }
.exercise-guide { border-bottom: 1px solid var(--line); margin: -1px 0 0; }
.exercise-item:last-child .exercise-guide { border-bottom: 0; }
.exercise-guide summary { align-items: center; color: var(--muted); cursor: pointer; display: flex; font-size: 10px; gap: 10px; list-style: none; padding: 0 0 12px 46px; text-transform: uppercase; }
.exercise-guide summary::-webkit-details-marker { display: none; }
.exercise-guide summary strong { color: var(--green-deep); font-size: 10px; letter-spacing: .04em; }
.exercise-guide summary i { align-items: center; border: 1px solid var(--line); border-radius: 50%; display: flex; font-size: 15px; font-style: normal; height: 20px; justify-content: center; margin-left: auto; transition: transform .2s ease, background .2s ease; width: 20px; }
.exercise-guide[open] summary i { background: var(--lime); border-color: var(--lime); color: var(--ink); transform: rotate(45deg); }
.exercise-guide-body { background: #f1f4f1; border: 1px solid #dce3de; border-radius: 14px; display: grid; gap: 18px; grid-template-columns: minmax(300px, 1.1fr) minmax(240px, .9fr); margin: 0 0 14px; padding: 18px; }
.exercise-guide-body.wide-visual-guide,.exercise-guide-body.avatar-guide { grid-template-columns: 1fr; }
.wide-visual-guide .exercise-instructions,.avatar-guide .exercise-instructions { display: grid; gap: 0 18px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.wide-visual-guide .exercise-instructions > p,.wide-visual-guide .exercise-instructions > ul,.avatar-guide .exercise-instructions > p,.avatar-guide .exercise-instructions > ul { grid-column: 1 / -1; }
.exercise-visual-panel { display: grid; gap: 7px; }
.exercise-visual-panel > span { color: var(--green-deep); font-size: 9px; font-weight: 850; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.exercise-photo-panel { background: white; border: 1px solid #d8dfda; border-radius: 12px; overflow: hidden; }
.exercise-photo-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.exercise-photo-pair figure { background: #e8ece8; margin: 0; min-width: 0; position: relative; }
.exercise-photo-pair figure + figure { border-left: 1px solid #d8dfda; }
.exercise-photo-pair img { aspect-ratio: 4 / 3; display: block; height: auto; object-fit: cover; width: 100%; }
.exercise-photo-pair figcaption,.exercise-avatar-pair figcaption { align-items: center; background: rgba(20,39,32,.92); bottom: 0; color: white; display: flex; font-size: 8px; gap: 6px; left: 0; letter-spacing: .06em; padding: 7px 9px; position: absolute; right: 0; text-transform: uppercase; }
.exercise-photo-pair figcaption b,.exercise-avatar-pair figcaption b { color: var(--lime); font-size: 9px; }
.exercise-photo-source { align-items: center; display: flex; gap: 8px; justify-content: space-between; padding: 8px 10px; }
.exercise-photo-source span,.exercise-photo-source a { color: var(--muted); font-size: 8px; }
.exercise-photo-source a { color: var(--green-deep); font-weight: 800; text-decoration: none; }
.exercise-avatar-panel { background: white; border: 1px solid #d8dfda; border-radius: 12px; overflow: hidden; }
.exercise-anatomical-panel { background: #06151a; border: 1px solid #1e4147; border-radius: 12px; box-shadow: 0 16px 40px rgba(6,24,27,.16); overflow: hidden; }
.exercise-anatomical-panel img { aspect-ratio: 16 / 8; display: block; object-fit: contain; width: 100%; }
.exercise-anatomical-meta { align-items: center; background: #0b2227; border-top: 1px solid #24484d; display: flex; gap: 12px; justify-content: space-between; padding: 9px 12px; }
.exercise-anatomical-meta span { color: #a9c5c8; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.exercise-anatomical-meta strong { color: var(--lime); font-size: 9px; letter-spacing: .05em; text-transform: uppercase; }
.exercise-visual-missing { align-content: center; aspect-ratio: 2 / 1; background: #0b2227; border: 1px dashed #456268; border-radius: 12px; color: white; display: grid; gap: 5px; justify-items: center; padding: 24px; text-align: center; }
.exercise-visual-missing strong { color: var(--lime); font-size: 12px; text-transform: uppercase; }
.exercise-visual-missing span { color: #aec2c5; font-size: 10px; max-width: 420px; }
.exercise-avatar-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.exercise-avatar-pair figure { background: radial-gradient(circle at 50% 36%,#f8faf7 0,#e2e9e4 72%); margin: 0; min-width: 0; position: relative; }
.exercise-avatar-pair figure + figure { border-left: 1px solid #d8dfda; }
.exercise-avatar { display: block; filter: drop-shadow(0 8px 8px rgba(16,37,31,.12)); height: auto; width: 100%; }
.avatar-ground-shadow { fill: rgba(16,37,31,.13); }
.avatar-limb { stroke: url(#avatar-skin); stroke-linecap: round; stroke-width: 12; }
.avatar-limb.avatar-leg { stroke-width: 15; }
.avatar-joint { fill: #d79265; stroke: #8d5234; stroke-width: 1.2; }
.avatar-torso { fill: url(#avatar-shirt); stroke: #0b1d18; stroke-linejoin: round; stroke-width: 2; }
.avatar-shorts { fill: #293430; stroke: #101c18; stroke-width: 1.5; }
.avatar-neck { stroke: url(#avatar-skin); stroke-linecap: round; stroke-width: 9; }
.avatar-head { fill: url(#avatar-skin); stroke: #77432e; stroke-width: 1.4; }
.avatar-hair { fill: #202722; }
.avatar-target { fill: rgba(215,246,95,.72); stroke: #48612c; stroke-width: 1.4; }
.avatar-equipment path,.avatar-equipment line { fill: none; stroke: #293d36; stroke-linecap: round; stroke-linejoin: round; stroke-width: 4; }
.avatar-equipment rect,.avatar-equipment circle,.avatar-equipment ellipse { fill: #4c6259; stroke: #182d26; stroke-width: 2; }
.avatar-equipment .avatar-band { fill: none; stroke: var(--lime); stroke-width: 5; }
.avatar-reference-line { fill: none; stroke: #82948c; stroke-width: 2; }
.avatar-motion-arrow { fill: none; stroke: var(--green-deep); stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; }
.exercise-instructions > p { color: var(--ink); font-size: 13px; font-weight: 700; margin: 0 0 13px; }
.exercise-instructions > div { border-top: 1px solid #d6ded9; padding: 9px 0 0; }
.exercise-instructions > div span { color: var(--green-deep); font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.exercise-instructions > div p { color: var(--muted); font-size: 11px; line-height: 1.55; margin: 3px 0 9px; }
.exercise-instructions ul { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 3px 0 0; padding: 0; }
.exercise-instructions li { background: var(--white); border: 1px solid #d6ded9; border-radius: 20px; color: var(--ink); font-size: 9px; font-weight: 750; padding: 5px 8px; }
.plate-builder { align-items: center; background: var(--ink); border-radius: 11px; color: white; display: grid; gap: 15px; grid-column: 1 / -1; grid-template-columns: minmax(170px,.7fr) 1.3fr; min-height: 92px; padding: 14px 16px; }
.plate-builder-copy span { color: var(--lime); display: block; font-size: 9px; font-weight: 850; letter-spacing: .1em; }
.plate-builder-copy strong { display: block; font-family: "Arial Narrow", Impact, sans-serif; font-size: 23px; margin: 2px 0; text-transform: uppercase; }
.plate-builder-copy small { color: #b8c6c0; font-size: 10px; }
.barbell-visual { align-items: center; display: flex; justify-content: flex-end; min-height: 70px; overflow: hidden; }
.bar-sleeve { background: #bdc5c0; border-radius: 3px 0 0 3px; height: 8px; width: min(26%,110px); }
.plate-stack { align-items: center; display: flex; flex-direction: row-reverse; height: 72px; }
.plate-disc { align-items: center; background: var(--plate); border: 2px solid rgba(255,255,255,.25); border-radius: 4px; box-shadow: inset -3px 0 rgba(0,0,0,.18); display: flex; height: var(--plate-height); justify-content: center; margin-left: -1px; min-width: 16px; width: 18px; }
.plate-disc b { color: white; font-family: Consolas, monospace; font-size: 7px; transform: rotate(-90deg); }
.bar-collar { background: #d7ddd9; border-radius: 2px; box-shadow: 2px 0 #849189; height: 23px; width: 8px; }
.training-callout { border-left: 4px solid var(--lime); }
.training-callout strong { display: block; margin-bottom: 5px; }
.training-callout p { color: #b8c6c0; font-size: 12px; margin: 0; }
.compact-list { display: grid; gap: 8px; }
.compact-list > div { align-items: center; background: var(--paper); border-radius: 10px; display: flex; justify-content: space-between; padding: 10px 12px; }
.compact-list span { color: var(--muted); font-size: 12px; }

.macro-hero { align-items: center; background: var(--ink); border-radius: 20px; color: white; display: grid; gap: 30px; grid-template-columns: .8fr 1.2fr; padding: 28px; }
.calorie-target strong { display: block; font-family: "Arial Narrow", Impact, sans-serif; font-size: 58px; line-height: 1; }
.calorie-target span { color: #adbbb6; font-size: 12px; }
.calorie-target small { color: var(--lime); display: block; font-weight: 750; margin-top: 10px; }
.macro-bars { display: grid; gap: 16px; }
.macro-row { display: grid; gap: 10px; grid-template-columns: 70px 1fr 56px; }
.macro-row span { color: #b8c5c0; font-size: 12px; }
.macro-row strong { font-size: 12px; text-align: right; }
.progress-track { background: #334c43; border-radius: 8px; height: 8px; overflow: hidden; }
.progress-track i { background: var(--lime); border-radius: inherit; display: block; height: 100%; }
.meal-row { align-items: center; display: grid; gap: 15px; grid-template-columns: 55px 1fr auto; padding: 14px 0; }
.meal-row + .meal-row { border-top: 1px solid var(--line); }
.meal-time { color: var(--muted); font-family: Consolas, monospace; font-size: 11px; }
.meal-row strong { display: block; }
.meal-row small { color: var(--muted); }
.meal-row em { color: var(--green-deep); display: block; font-size: 9px; font-style: normal; font-weight: 750; margin-top: 4px; }
.food-balance-card { background: var(--ink); border-radius: 15px; color: white; margin-top: 14px; padding: 18px; }
.food-balance-card .card-header p { color: #aebdb7; }
.food-balance-card .eyebrow { color: var(--lime); }
.food-balance-grid { display: grid; gap: 9px; grid-template-columns: repeat(4,minmax(0,1fr)); }
.food-balance-metric { background: #1c352d; border: 1px solid #365148; border-radius: 11px; min-width: 0; padding: 12px; }
.food-balance-metric > span { color: #aebdb7; display: block; font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.food-balance-metric > strong { display: block; font-size: 13px; margin: 5px 0 8px; }
.food-balance-metric > i { background: #344b43; border-radius: 999px; display: block; height: 5px; overflow: hidden; }
.food-balance-metric > i b { background: var(--lime); display: block; height: 100%; }
.food-balance-metric > small { color: #c2d0ca; display: block; font-size: 9px; margin-top: 6px; }
.food-balance-metric.over > i b { background: var(--amber); }
.food-estimate-disclaimer { border-top: 1px solid #334a42; color: #9fb0a9; font-size: 9px; line-height: 1.5; margin: 13px 0 0; padding-top: 11px; }
.food-estimate-preview { background: #eef4e5; border: 1px solid #d2dfc0; border-radius: 11px; display: grid; gap: 3px; padding: 12px; }
.food-estimate-preview span { color: var(--green-deep); font-size: 8px; font-weight: 850; letter-spacing: .09em; }
.food-estimate-preview strong { font-size: 14px; }
.food-estimate-preview small { color: var(--muted); font-size: 9px; }
.food-estimate-preview.local-fallback { background: #fff8e8; border-color: #ead6a7; }
.food-analysis-action { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; }
.food-analysis-action small { color: var(--muted); font-size: 9px; }
.food-analysis-items { border-top: 1px solid #d2dfc0; display: grid; gap: 7px; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 8px; padding-top: 9px; }
.food-analysis-items > div { background: rgba(255,255,255,.62); border-radius: 7px; display: grid; gap: 2px; padding: 8px; }
.food-analysis-items > div span { letter-spacing: 0; text-transform: none; }
.food-analysis-items > div strong { font-size: 11px; }
.food-analysis-items > div small { font-family: Consolas, monospace; }
.food-analysis-assumptions { border-top: 1px solid #d2dfc0; margin-top: 8px; padding-top: 8px; }
.food-analysis-assumptions summary { color: var(--green-deep); cursor: pointer; font-size: 9px; font-weight: 800; }
.food-analysis-assumptions ul { color: var(--muted); font-size: 10px; line-height: 1.45; margin: 7px 0 0; padding-left: 18px; }
.food-day-fit { background: #dfead2; border-radius: 7px; color: #30473e; font-size: 10px; line-height: 1.45; margin: 8px 0 0; padding: 8px; }
.food-analysis-error { color: #8a5b16; font-size: 9px; margin: 6px 0 0; }
.record-analysis-button { margin-top: 9px; }
.record-analysis-progress { display: grid; gap: 12px; padding: 18px 2px 6px; }
.record-analysis-progress .progress-track { height: 8px; }
.record-analysis-progress strong { color: var(--green-deep); font-size: 15px; }
.record-analysis-progress p { color: var(--muted); font-size: 11px; line-height: 1.5; margin: 0; }
.dexa-review-form { display: grid; gap: 16px; }
.dexa-review-summary { display: grid; gap: 8px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.dexa-review-summary > div { background: #edf3e2; border: 1px solid #d4dfc6; border-radius: 9px; display: grid; gap: 3px; padding: 11px; }
.dexa-review-summary span { color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.dexa-review-summary strong { color: var(--green-deep); font-size: 12px; overflow-wrap: anywhere; }
.dexa-review-summary small { color: var(--muted); font-size: 8px; }
.dexa-review-alert { background: #fff4d8; border: 1px solid #e3c879; border-radius: 9px; padding: 11px 13px; }
.dexa-review-alert strong { color: #674710; font-size: 11px; }
.dexa-review-alert p { color: #7d641f; font-size: 9px; margin: 4px 0 0; }
.dexa-review-form label span { color: var(--muted); font-size: 8px; font-weight: 700; }
.dexa-extraction-evidence { border: 1px solid var(--line); border-radius: 9px; padding: 11px 13px; }
.dexa-extraction-evidence summary { color: var(--green-deep); cursor: pointer; font-size: 10px; font-weight: 850; }
.dexa-extraction-evidence > div { display: grid; gap: 6px; margin-top: 10px; }
.dexa-extraction-evidence p { align-items: start; border-top: 1px solid var(--line); display: grid; gap: 3px; grid-template-columns: 160px 1fr; margin: 0; padding-top: 6px; }
.dexa-extraction-evidence p strong { font-size: 9px; }
.dexa-extraction-evidence p span { color: var(--muted); font-size: 9px; }
.lab-review-form { display: grid; gap: 16px; }
.lab-review-date { align-items: end; background: var(--paper); border-radius: 10px; display: grid; gap: 18px; grid-template-columns: minmax(190px,260px) 1fr; padding: 12px; }
.lab-review-date p { color: var(--muted); font-size: 10px; line-height: 1.5; margin: 0 0 5px; }
.lab-review-list { display: grid; gap: 9px; max-height: 52vh; overflow: auto; padding-right: 3px; }
.lab-review-row { align-items: end; border: 1px solid var(--line); border-radius: 11px; display: grid; gap: 9px; grid-template-columns: 64px minmax(160px,1.5fr) minmax(95px,.65fr) minmax(90px,.55fr) minmax(120px,.8fr) minmax(145px,.9fr) minmax(145px,.9fr); margin: 0; padding: 11px; }
.lab-review-row label { font-size: 9px; }
.lab-review-row input,.lab-review-row select { font-size: 11px; padding: 8px; }
.lab-review-primary small { color: var(--muted); display: block; font-size: 8px; margin-top: 4px; overflow-wrap: anywhere; }
.lab-review-include { align-items: center; background: #edf3e2; border-radius: 8px; display: flex; gap: 6px; justify-content: center; min-height: 37px; padding: 7px; }
.lab-review-include input { width: auto; }
.lab-review-include span { color: var(--green-deep); font-size: 9px; font-weight: 850; }
.biomarker-toggle .biomarker-date { color: var(--muted); font-size: 8px; font-weight: 700; }
.fasting-clock { align-items: center; border: 1px solid var(--line); border-radius: 50%; display: flex; flex-direction: column; height: 190px; justify-content: center; margin: 8px auto 20px; position: relative; width: 190px; }
.fasting-clock:before { border: 7px solid var(--green-deep); border-right-color: var(--paper-2); border-radius: 50%; content: ""; inset: 8px; position: absolute; transform: rotate(-25deg); }
.fasting-clock strong { font-family: "Arial Narrow", Impact, sans-serif; font-size: 35px; line-height: 1; position: relative; }
.fasting-clock span { color: var(--muted); font-size: 10px; position: relative; }

.catalog-tools { display: flex; gap: 10px; margin-bottom: 16px; }
.catalog-tools input { flex: 1; }
.catalog-tools select { max-width: 190px; }
.peptide-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.peptide-card { display: flex; flex-direction: column; min-height: 330px; }
.peptide-card h3 { font-family: "Arial Narrow", Impact, sans-serif; font-size: 23px; margin: 15px 0 5px; text-transform: uppercase; }
.peptide-card > p { color: var(--muted); font-size: 12px; margin: 0 0 16px; }
.peptide-card .peptide-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 17px; }
.peptide-meta span { background: var(--paper); border-radius: 5px; color: var(--muted); font-size: 9px; font-weight: 750; padding: 4px 6px; }
.peptide-meta .evidence-stage { background: #dee7f8; color: #36598f; }
.evidence-result { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; margin-bottom: 16px; padding: 12px; }
.evidence-result > span { color: var(--green-deep); display: block; font-size: 8px; font-weight: 850; letter-spacing: .09em; margin-bottom: 4px; }
.evidence-result strong { display: block; font-size: 11px; }
.evidence-result p { color: var(--muted); font-size: 11px; line-height: 1.45; margin: 7px 0 0; }
.peptide-card .card-actions { display: flex; gap: 8px; margin-top: auto; }
.protocol-alert { background: #fff3de; border: 1px solid #efd5a8; border-radius: 12px; color: #6d4b16; font-size: 12px; margin-bottom: 16px; padding: 12px; }
.active-protocol { border-left: 5px solid var(--blue); }
.active-protocol.ready { border-left-color: var(--green-deep); }
.active-protocol h3 { margin: 0; }
.active-protocol .protocol-stats { display: grid; gap: 9px; grid-template-columns: repeat(3, 1fr); margin-top: 17px; }
.protocol-stats div { background: var(--paper); border-radius: 9px; padding: 9px; }
.protocol-stats span { color: var(--muted); display: block; font-size: 9px; text-transform: uppercase; }
.protocol-stats strong { font-size: 13px; }
.protocol-stats small { color: var(--muted); display: block; font-size: 8px; line-height: 1.35; margin-top: 2px; }
.protocol-cycle-summary { background: var(--ink); border-radius: 11px; color: white; margin-top: 10px; padding: 12px; }
.protocol-cycle-summary span { color: #a8bbb2; display: block; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.protocol-cycle-summary strong { color: var(--lime); display: block; font-size: 15px; margin-top: 3px; }
.protocol-cycle-summary small { color: #c2d0c9; display: block; font-size: 10px; margin-top: 3px; }
.protocol-cycle-track { background: #344740; border-radius: 20px; height: 5px; margin-top: 10px; overflow: hidden; }
.protocol-cycle-track i { background: var(--lime); border-radius: inherit; display: block; height: 100%; min-width: 3px; }
.protocol-cycle-track i.off { background: #94a29b; }
.protocol-cycle-track i.setup, .protocol-cycle-track i.upcoming { background: var(--blue); }
.protocol-cycle-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.protocol-cycle-actions .cycle-pause-button { border-color: #aeb7b1; color: #52615a; }
.protocol-cycle-history { background: #f7f8f4; border: 1px solid var(--line); border-radius: 11px; margin-top: 11px; overflow: hidden; }
.protocol-cycle-history > summary { align-items: center; cursor: pointer; display: grid; gap: 9px; grid-template-columns: auto 1fr auto; list-style: none; padding: 11px 12px; }
.protocol-cycle-history > summary::-webkit-details-marker { display: none; }
.protocol-cycle-history > summary span,.protocol-cycle-history.empty > span { color: var(--green-deep); font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.protocol-cycle-history > summary strong { font-size: 10px; font-weight: 750; }
.protocol-cycle-history > summary i { font-style: normal; font-weight: 900; transition: transform .18s ease; }
.protocol-cycle-history[open] > summary i { transform: rotate(45deg); }
.protocol-cycle-history > div { border-top: 1px solid var(--line); padding: 0 12px; }
.protocol-cycle-history p { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 3px 10px; grid-template-columns: 88px minmax(0,1fr); margin: 0; padding: 10px 0; }
.protocol-cycle-history p:last-child { border-bottom: 0; }
.protocol-cycle-history time { color: var(--muted); font-family: Consolas,monospace; font-size: 9px; grid-row: 1 / span 2; }
.protocol-cycle-history p strong { font-size: 11px; }
.protocol-cycle-history p small { color: var(--muted); font-size: 9px; }
.protocol-cycle-history.empty { display: grid; gap: 2px; padding: 11px 12px; }
.protocol-cycle-history.empty > strong { font-size: 10px; }
.protocol-cycle-history.empty > small { color: var(--muted); font-size: 9px; }
.protocol-weekly-schedule { align-items: center; display: grid; gap: 8px; grid-template-columns: auto 1fr auto; margin-top: 11px; }
.protocol-weekly-schedule > span { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.protocol-weekly-schedule > div { display: flex; gap: 4px; }
.protocol-weekly-schedule b { align-items: center; background: var(--paper); border: 1px solid var(--line); border-radius: 50%; color: #999f9b; display: flex; font-size: 9px; height: 25px; justify-content: center; width: 25px; }
.protocol-weekly-schedule b.selected { background: var(--green-deep); border-color: var(--green-deep); color: white; }
.protocol-weekly-schedule b.today { box-shadow: 0 0 0 2px var(--lime); }
.protocol-weekly-schedule small { color: var(--muted); font-size: 9px; text-align: right; }
.protocol-dose-benchmark { align-items: start; background: #f2f5f1; border: 1px solid var(--line); border-left: 4px solid #819188; border-radius: 10px; display: grid; gap: 10px; grid-template-columns: minmax(0,1fr) auto auto; margin-top: 12px; padding: 12px; }
.protocol-dose-benchmark.benchmark-within { border-left-color: var(--green); }
.protocol-dose-benchmark.benchmark-at { border-left-color: #c99b31; }
.protocol-dose-benchmark.benchmark-above { border-left-color: #d05f50; }
.protocol-dose-benchmark > div > span, .personal-dose-limit span { color: var(--muted); display: block; font-size: 8px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.protocol-dose-benchmark > div > strong { color: var(--ink); display: block; font-size: 12px; margin-top: 2px; }
.protocol-dose-benchmark p { color: var(--muted); font-size: 9px; line-height: 1.45; margin: 3px 0 0; }
.personal-dose-limit { border-left: 1px solid var(--line); min-width: 135px; padding-left: 10px; }
.personal-dose-limit strong { color: var(--ink); display: block; font-size: 12px; margin-top: 2px; }
.personal-dose-limit small { color: var(--muted); display: block; font-size: 8px; line-height: 1.35; margin-top: 2px; max-width: 170px; }
.result-box .protocol-dose-benchmark { background: #172d26; border-color: #385047; grid-column: 1 / -1; margin-top: 2px; }
.result-box .protocol-dose-benchmark > div > strong, .result-box .personal-dose-limit strong { color: var(--lime); }
.result-box .protocol-dose-benchmark p, .result-box .personal-dose-limit small { color: #a8bbb2; }
.result-box .personal-dose-limit { border-left-color: #385047; }
.protocol-day-selector { display: grid; gap: 7px; grid-template-columns: repeat(7,minmax(0,1fr)); }
.protocol-day { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; color: var(--muted); cursor: pointer; min-height: 54px; padding: 7px 3px; }
.protocol-day span { display: block; font-size: 15px; font-weight: 850; }
.protocol-day small { display: block; font-size: 8px; margin-top: 2px; }
.protocol-day.selected { background: var(--ink); border-color: var(--ink); color: white; }
.protocol-day.selected small { color: var(--lime); }
.protocol-day:focus-visible { outline: 2px solid var(--green-deep); outline-offset: 2px; }
.protocol-time-inputs { display: grid; gap: 9px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.protocol-time-inputs label { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 9px; }
.protocol-time-inputs label > span { color: var(--muted); display: block; font-size: 9px; font-weight: 800; margin-bottom: 5px; text-transform: uppercase; }
.protocol-time-inputs input { background: white; }
.protocol-dose-benchmark.research-regimen { border-left-color: var(--blue); grid-template-columns: minmax(0,1.2fr) minmax(180px,.8fr) auto; }
.protocol-dose-benchmark.research-regimen .personal-dose-limit strong { line-height: 1.35; }
.protocol-cycle-preview { background: #eef2e9; border: 1px solid #cfdbca; border-radius: 11px; display: grid; gap: 12px; grid-template-columns: 1fr 1.5fr; padding: 12px; }
.protocol-cycle-preview span { color: var(--green-deep); display: block; font-size: 8px; font-weight: 850; letter-spacing: .08em; }
.protocol-cycle-preview strong { display: block; font-size: 12px; margin-top: 3px; }
.protocol-cycle-preview small { color: var(--muted); display: block; font-size: 9px; margin-top: 3px; }
.source-link { color: var(--green-deep); font-size: 11px; font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }

.upload-zone { border: 1.5px dashed #aaa99f; border-radius: 16px; cursor: pointer; display: grid; min-height: 190px; place-items: center; text-align: center; transition: background .2s, border-color .2s; }
.upload-zone:hover, .upload-zone.drag { background: #eef2e7; border-color: var(--green-deep); }
.upload-zone input { display: none; }
.upload-zone strong { display: block; font-size: 16px; }
.upload-zone span { color: var(--muted); font-size: 12px; }
.upload-icon { align-items: center; border: 1px solid var(--line); border-radius: 50%; display: flex; font-size: 24px; height: 54px; justify-content: center; margin: 0 auto 11px; width: 54px; }
.record-timeline { position: relative; }
.record-item { display: grid; gap: 15px; grid-template-columns: 90px 20px 1fr; padding: 10px 0 22px; }
.record-date { color: var(--muted); font-family: Consolas, monospace; font-size: 11px; padding-top: 2px; }
.timeline-dot { background: var(--green-deep); border: 4px solid var(--white); border-radius: 50%; box-shadow: 0 0 0 1px var(--line); height: 14px; margin-top: 2px; position: relative; width: 14px; }
.timeline-dot:after { background: var(--line); content: ""; height: calc(100% + 38px); left: 5px; position: absolute; top: 11px; width: 1px; }
.record-item:last-child .timeline-dot:after { display: none; }
.record-body strong { display: block; }
.record-body p { color: var(--muted); font-size: 12px; margin: 2px 0 0; }
.record-body .record-tags { display: flex; gap: 6px; margin-top: 8px; }
.record-tags span { background: var(--paper); border-radius: 5px; color: var(--muted); font-size: 9px; padding: 4px 6px; }
.biomarker-table .value { font-weight: 800; }
.biomarker-table tr.flagged { background: #fff7f0; }
.biomarker-toggle { align-items: center; background: transparent; border: 0; cursor: pointer; display: flex; gap: 9px; padding: 0; text-align: left; }
.biomarker-toggle span { align-items: center; background: var(--paper-2); border-radius: 50%; display: flex; height: 22px; justify-content: center; transition: transform .2s; width: 22px; }
.biomarker-toggle[aria-expanded="true"] span { transform: rotate(180deg); }
.biomarker-insight-row td { background: #edf1e9; padding: 16px; }
.biomarker-insight { display: grid; gap: 18px; grid-template-columns: repeat(3,minmax(0,1fr)); margin-bottom: 12px; }
.biomarker-insight span { color: var(--green-deep); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.biomarker-insight p { color: var(--ink-2); font-size: 12px; margin: 5px 0 0; }
.biomarker-panel > .card-header { align-items: flex-end; }
.biomarker-panel #lab-filter { max-width: 180px; }
.biomarker-category-stack { display: grid; gap: 18px; margin-top: 18px; }
.biomarker-category { border: 1px solid var(--line); border-radius: 13px; overflow: hidden; }
.biomarker-category-header { align-items: center; background: var(--ink); color: white; display: flex; gap: 18px; justify-content: space-between; padding: 13px 16px; }
.biomarker-category-header > div:first-child { align-items: baseline; display: flex; gap: 11px; }
.biomarker-category-header > div:first-child > span { color: var(--lime); font-family: Consolas, monospace; font-size: 9px; font-weight: 800; }
.biomarker-category-header h4 { font-family: "Arial Narrow", Impact, sans-serif; font-size: 18px; margin: 0; text-transform: uppercase; }
.category-status-summary { display: flex; flex-wrap: wrap; gap: 12px; }
.category-status-summary span { align-items: center; color: #c9d3cf; display: flex; font-size: 8px; gap: 5px; text-transform: uppercase; }
.category-status-summary i { border-radius: 50%; height: 6px; width: 6px; }
.category-status-summary .optimal i { background: var(--green); }
.category-status-summary .average i { background: var(--amber); }
.category-status-summary .out i { background: var(--red); }
.biomarker-table-wrap { overflow-x: auto; }
.biomarker-table.categorized { margin: 0; }
.biomarker-table.categorized th:first-child,.biomarker-table.categorized td:first-child { padding-left: 16px; }
.biomarker-table.categorized th:last-child,.biomarker-table.categorized td:last-child { padding-right: 16px; }
.biomarker-table.categorized tbody tr:last-child:not(.biomarker-insight-row) td { border-bottom: 0; }
.weight-selector { display: flex; flex-wrap: wrap; gap: 7px; }
.weight-chip { cursor: pointer; margin: 0; }
.weight-chip input { position: absolute; opacity: 0; pointer-events: none; }
.weight-chip span { align-items: center; background: var(--paper); border: 1px solid var(--line); border-radius: 8px; display: flex; font-size: 12px; font-weight: 750; height: 38px; justify-content: center; min-width: 46px; padding: 0 8px; }
.weight-chip input:checked + span { background: var(--ink); border-color: var(--ink); color: var(--lime); }
.health-focus-card { display: flex; flex-direction: column; min-height: 260px; }
.health-focus-card .focus-rank { color: var(--green-deep); font-family: Consolas, monospace; font-size: 11px; font-weight: 800; }
.health-focus-card h3 { font-family: "Arial Narrow", Impact, sans-serif; font-size: 22px; margin: 17px 0 7px; text-transform: uppercase; }
.health-focus-card > strong { color: var(--ink); font-size: 14px; }
.health-focus-card p { color: var(--muted); font-size: 12px; }
.health-focus-card .source-link { margin-top: auto; }
.strength-bars { display: grid; gap: 13px; }
.strength-bars > div { align-items: center; display: grid; gap: 10px; grid-template-columns: 110px 1fr 65px; }
.strength-bars span { color: var(--muted); font-size: 11px; }
.strength-bars strong { font-size: 12px; text-align: right; }
.working-weight-dashboard { margin-top: 16px; overflow: hidden; }
.working-weight-grid { display: grid; gap: 9px; grid-template-columns: repeat(5,minmax(0,1fr)); }
.working-weight-tile { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; display: grid; min-height: 175px; padding: 13px; }
.working-weight-tile > span { color: var(--green-deep); font-size: 8px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.working-weight-tile > strong { font-family: "Arial Narrow",Impact,sans-serif; font-size: 25px; margin-top: 7px; text-transform: uppercase; }
.working-weight-tile > small { color: var(--muted); font-size: 9px; line-height: 1.4; min-height: 28px; }
.working-weight-tile svg { align-self: end; height: 42px; margin: 7px 0 4px; overflow: visible; width: 100%; }
.working-weight-tile polyline { fill: none; stroke: var(--green-deep); stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.5; }
.working-weight-tile circle { fill: var(--lime); stroke: var(--green-deep); stroke-width: 1; }
.working-weight-tile > em { color: var(--green-deep); font-size: 8px; font-style: normal; font-weight: 800; }
.working-weight-tile.empty { opacity: .68; }
.working-weight-empty-line { align-self: end; border-bottom: 1px dashed #aeb8b2; height: 42px; margin: 7px 0 4px; }
.last-set-prior { background: #edf3e9; border-radius: 11px; display: grid; gap: 3px; grid-column: 1 / -1; padding: 12px; }
.last-set-prior span { color: var(--green-deep); font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.last-set-prior small { color: var(--muted); font-size: 9px; }
.progression-rule-note { background: #f3f5ef; border-left: 3px solid var(--lime); border-radius: 0 10px 10px 0; margin-top: 15px; padding: 12px 14px; }
.progression-rule-note strong { font-size: 12px; }
.progression-rule-note p { color: var(--muted); font-size: 10px; line-height: 1.5; margin: 4px 0 0; }
.header-tools { align-items: center; display: flex; gap: 8px; }
.info-button, .info-popover > summary { align-items: center; background: var(--paper); border: 1px solid var(--line); border-radius: 50%; cursor: pointer; display: flex; font-family: Georgia,serif; font-size: 13px; font-weight: 800; height: 29px; justify-content: center; padding: 0; width: 29px; }
.info-popover { position: relative; }
.info-popover > summary { list-style: none; }
.info-popover > summary::-webkit-details-marker { display: none; }
.info-popover > div { background: var(--ink); border-radius: 11px; box-shadow: var(--shadow); color: white; padding: 13px; position: absolute; right: 0; top: 36px; width: min(310px,75vw); z-index: 5; }
.info-popover > div strong { display: block; font-size: 12px; }
.info-popover > div p { color: #b9c6c0; font-size: 11px; margin: 5px 0 0; }
.acquisition-list { display: grid; gap: 7px; }
.acquisition-list details { background: var(--paper); border-radius: 10px; padding: 0 11px; }
.acquisition-list summary { align-items: center; cursor: pointer; display: flex; justify-content: space-between; list-style: none; padding: 10px 0; }
.acquisition-list summary::-webkit-details-marker { display: none; }
.acquisition-list summary span { color: var(--ink); font-size: 12px; font-weight: 750; }
.acquisition-list summary small { color: var(--muted); display: block; font-size: 9px; font-weight: 500; }
.acquisition-list summary b { color: var(--green-deep); font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
.acquisition-list details p { border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; margin: 0; padding: 9px 0 11px; }
.missing-data-card .card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.huberman-lens { border-left: 3px solid var(--lime); margin-top: 17px; padding-left: 12px; }
.huberman-lens > span, .huberman-peptide-note span { color: var(--green-deep); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.huberman-lens p { color: var(--muted); font-size: 11px; margin: 4px 0 7px; }
.huberman-lens > div { display: flex; flex-wrap: wrap; gap: 12px; }
.support-block + .support-block { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 14px; }
.support-block strong { display: block; font-size: 13px; }
.support-block p { color: var(--muted); font-size: 11px; margin: 5px 0 8px; }
.huberman-source { background: #eef2e9; border: 0 !important; border-radius: 10px; padding: 12px; }
.huberman-peptide-note { align-items: center; background: #e7eee2; border-color: #a9bea0; display: flex; gap: 22px; justify-content: space-between; margin-bottom: 16px; }
.huberman-peptide-note h2 { font-family: "Arial Narrow",Impact,sans-serif; font-size: 22px; margin: 4px 0; text-transform: uppercase; }
.huberman-peptide-note p { color: var(--muted); font-size: 11px; margin: 0; max-width: 850px; }
.peptide-nutrition-card { grid-column: 1 / -1; }
.food-priority-grid { display: grid; gap: 10px; grid-template-columns: repeat(4,minmax(0,1fr)); }
.food-priority-grid > div { background: var(--paper); border-radius: 10px; padding: 13px; }
.food-priority-grid strong { font-size: 12px; }
.food-priority-grid p { color: var(--muted); font-size: 11px; margin: 5px 0 0; }
.nutrition-reference { border-left: 4px solid var(--lime); margin: 16px 0 12px; padding: 4px 0 4px 12px; }
.nutrition-reference span { color: var(--muted); display: block; font-size: 9px; text-transform: uppercase; }
.nutrition-reference strong { display: block; font-size: 20px; }
.nutrition-reference p { color: var(--muted); font-size: 11px; margin: 4px 0 0; }

.settings-layout { grid-template-columns: 220px 1fr; }
.settings-layout > div { min-width: 0; }
.settings-nav { align-self: start; display: grid; gap: 4px; position: sticky; top: 100px; }
.settings-nav button { background: transparent; border: 0; border-radius: 8px; cursor: pointer; font-weight: 650; padding: 10px 12px; text-align: left; }
.settings-nav button.active { background: var(--ink); color: white; }
.settings-panel { display: none; }
.settings-panel.active { display: block; }
.form-grid { display: grid; gap: 15px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid .full { grid-column: 1 / -1; }
.field-note { color: var(--muted); font-size: 11px; margin: 5px 0 0; }
.choice-grid { display: grid; gap: 9px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.choice-card { align-items: center; background: var(--paper); border: 1px solid transparent; border-radius: 10px; cursor: pointer; display: flex; gap: 9px; padding: 11px; }
.choice-card:has(input:checked) { background: #e3efdd; border-color: #95b586; }
.choice-card label { cursor: pointer; font-size: 12px; margin: 0; }
.equipment-choice-grid { margin-top: 12px; max-height: 420px; overflow-y: auto; padding-right: 4px; }
.plate-section { border-top: 1px solid var(--line); margin-top: 22px; padding-top: 18px; }
.plate-inventory-grid { display: grid; gap: 9px; grid-template-columns: repeat(4,minmax(0,1fr)); }
.plate-inventory-grid label { background: var(--paper); border-radius: 10px; margin: 0; padding: 9px; }
.plate-inventory-grid label span { display: block; font-size: 10px; margin-bottom: 5px; }
.plate-inventory-grid input { padding: 8px 9px; }
.equipment-notes { margin-top: 15px; }
.data-source-guide { display: grid; gap: 10px; }
.data-source-guide section { background: var(--white); border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 12px; grid-template-columns: 30px 1fr; padding: 13px; }
.data-source-guide section > span { align-items: center; background: var(--ink); border-radius: 50%; color: var(--lime); display: flex; font-family: Consolas,monospace; font-size: 9px; height: 28px; justify-content: center; width: 28px; }
.data-source-guide strong { display: block; font-size: 13px; }
.data-source-guide p { color: var(--muted); font-size: 11px; margin: 4px 0 7px; }
.source-row { display: flex; flex-wrap: wrap; gap: 12px; }
.range-header { display: flex; justify-content: space-between; }
.range-header output { color: var(--green-deep); font-weight: 850; }
.sync-option { align-items: start; border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 10px; grid-template-columns: auto 1fr; padding: 14px; }
.sync-option strong { display: block; }
.sync-option small { color: var(--muted); }
.danger-zone { border-color: #e8bdb6; }
.connected-health-grid { display: grid; gap: 12px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.observation-card { min-width: 0; }
.observation-meta { align-items: center; display: flex; justify-content: space-between; }
.observation-meta span { color: var(--green-deep); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.observation-meta time { color: var(--muted); font-size: 9px; }
.observation-card h3 { font-size: 15px; margin: 9px 0 12px; }
.observation-metrics { display: grid; gap: 7px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.observation-metrics > div { background: var(--paper); border-radius: 8px; min-width: 0; padding: 9px; }
.observation-metrics span { color: var(--muted); display: block; font-size: 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.observation-metrics strong { display: block; font-family: Consolas,monospace; font-size: 13px; margin-top: 3px; overflow-wrap: anywhere; }
.observation-note { border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; margin: 12px 0 0; padding-top: 10px; }
.connected-health-empty a { color: var(--green-deep); font-weight: 750; }
.wearable-dashboard-card { margin-top: 16px; }
.wearable-kpi-grid { display: grid; gap: 9px; grid-template-columns: repeat(5,minmax(0,1fr)); }
.wearable-kpi-grid a { background: var(--paper); border: 1px solid transparent; border-radius: 11px; color: inherit; display: grid; gap: 4px; min-width: 0; padding: 13px; text-decoration: none; transition: border-color .18s ease,transform .18s ease; }
.wearable-kpi-grid a:hover,.wearable-kpi-grid a:focus-visible { border-color: var(--green-deep); transform: translateY(-1px); }
.wearable-kpi-grid span { color: var(--green-deep); font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.wearable-kpi-grid strong { font-size: 18px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wearable-kpi-grid small { color: var(--muted); font-size: 9px; line-height: 1.35; }
.wearable-kpi-grid a:last-child strong { font-size: 13px; }
.wearable-context-note { border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; line-height: 1.55; margin: 13px 0 0; padding-top: 11px; }
.workout-recovery-context { align-items: center; border: 1px solid var(--line); border-left: 4px solid var(--green-deep); border-radius: 12px; display: flex; gap: 16px; justify-content: space-between; margin: 12px 0 16px; padding: 13px 15px; }
.workout-recovery-context.watch { background: #fff7e6; border-left-color: var(--amber); }
.workout-recovery-context span { color: var(--green-deep); display: block; font-size: 8px; font-weight: 850; letter-spacing: .09em; }
.workout-recovery-context strong { display: block; font-size: 12px; margin: 4px 0; }
.workout-recovery-context p { color: var(--muted); font-size: 9px; line-height: 1.45; margin: 0; }
.workout-recovery-context a { color: var(--green-deep); flex: 0 0 auto; font-size: 9px; font-weight: 800; text-decoration: none; }
.connected-health-groups { display: grid; gap: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.health-data-group { padding: 0; }
.health-data-group summary { align-items: center; cursor: pointer; display: grid; gap: 12px; grid-template-columns: 38px minmax(0,1fr) auto; list-style: none; padding: 16px; }
.health-data-group summary::-webkit-details-marker { display: none; }
.health-group-mark { align-items: center; background: var(--green-deep); border-radius: 10px; color: white; display: flex; font-family: Consolas,monospace; font-size: 10px; font-weight: 800; height: 38px; justify-content: center; letter-spacing: .05em; width: 38px; }
.health-data-group summary > div { min-width: 0; }
.health-data-group summary > div > span { color: var(--green-deep); display: block; font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.health-data-group summary strong { display: block; font-size: 15px; margin: 4px 0 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.health-data-group summary small { color: var(--muted); display: block; font-size: 9px; }
.health-data-group summary > i { font-size: 20px; font-style: normal; transition: transform .2s ease; }
.health-data-group[open] summary > i { transform: rotate(45deg); }
.health-data-group-detail { border-top: 1px solid var(--line); display: grid; gap: 14px; grid-template-columns: minmax(0,1.15fr) minmax(160px,.85fr); padding: 14px 16px 16px; }
.health-group-recent { display: grid; gap: 6px; }
.health-group-recent > span { color: var(--green-deep); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.health-group-recent > div { align-items: center; border-bottom: 1px solid var(--line); display: flex; gap: 8px; justify-content: space-between; padding: 5px 0; }
.health-group-recent time { color: var(--muted); font-size: 9px; }
.health-group-recent strong { font-size: 10px; text-align: right; }
.acquisition-list details.collected { background: #e3efdd; }
.acquisition-list details.collected summary b { color: var(--green-deep); }
.acquisition-list details.partial { background: #f7efd9; }
.acquisition-list details.partial summary b { color: #99691c; }

.agent-api-panel { overflow: hidden; }
.agent-api-intro { align-items: center; background: var(--ink); border-radius: 13px; color: white; display: flex; gap: 14px; justify-content: space-between; padding: 14px; }
.agent-api-intro > div { min-width: 0; }
.agent-api-intro span { color: #9db1a8; display: block; font-size: 9px; letter-spacing: .08em; margin-bottom: 5px; text-transform: uppercase; }
.agent-api-intro code { color: var(--lime); display: block; font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.api-scope-grid { display: grid; gap: 10px; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 14px; }
.api-scope-grid > div { background: var(--paper); border-radius: 11px; padding: 13px; }
.api-scope-grid > div.protected { background: #f5e9e5; }
.api-scope-grid strong { font-size: 12px; }
.api-scope-grid p { color: var(--muted); font-size: 10px; margin: 5px 0 0; }
.agent-section-header { border-top: 1px solid var(--line); margin-top: 22px; padding-top: 19px; }
.agent-section-header.compact { margin-top: 16px; }
.agent-section-header h3 { font-size: 15px; margin: 0; }
.agent-section-header p { color: var(--muted); font-size: 10px; margin: 4px 0 0; }
.agent-token-list { display: grid; gap: 8px; margin-top: 11px; }
.agent-token-row { align-items: center; background: var(--paper); border: 1px solid var(--line); border-radius: 11px; display: flex; gap: 12px; justify-content: space-between; padding: 12px; }
.agent-token-row.inactive { opacity: .62; }
.agent-token-row > div:first-child { display: grid; min-width: 0; }
.agent-token-row > div:last-child { align-items: center; display: flex; gap: 8px; }
.agent-token-row strong { font-size: 12px; margin-top: 3px; }
.agent-token-row small { color: var(--muted); font-size: 9px; margin-top: 3px; }
.token-prefix { color: var(--green-deep); font-family: Consolas,monospace; font-size: 9px; }
.agent-empty { background: var(--paper); border: 1px dashed var(--line); border-radius: 11px; padding: 18px; text-align: center; }
.agent-empty strong { font-size: 13px; }
.agent-empty p { color: var(--muted); font-size: 10px; margin: 5px 0 0; }
.agent-empty.error { border-color: #e8bdb6; }
.agent-prompt-builder { margin-top: 12px; }
.agent-prompt-builder label { max-width: 270px; }
.agent-prompt-builder textarea { font-family: Consolas,monospace; font-size: 10px; line-height: 1.55; margin-top: 10px; min-height: 310px; resize: vertical; }
.agent-prompt-builder .card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.api-route-details { background: var(--paper); border-radius: 11px; margin-top: 14px; padding: 0 13px; }
.api-route-details summary { cursor: pointer; font-size: 11px; font-weight: 800; padding: 12px 0; }
.api-route-details > div { border-top: 1px solid var(--line); padding: 10px 0 13px; }
.api-route-details code { color: var(--green-deep); font-size: 10px; font-weight: 800; }
.api-route-details p { color: var(--muted); font-size: 9px; margin: 3px 0 10px; }
.agent-activity-list { display: grid; gap: 5px; margin-top: 10px; }
.agent-activity-list > div { align-items: center; border-bottom: 1px solid var(--line); display: grid; font-size: 9px; gap: 8px; grid-template-columns: 1fr 40px 100px; padding: 7px 0; }
.agent-activity-list time { color: var(--muted); text-align: right; }
.one-time-key-note { background: #fff1df; border: 1px solid #efd0a3; border-radius: 11px; margin-top: 15px; padding: 12px; }
.one-time-key-note strong { font-size: 12px; }
.one-time-key-note p { color: #664716; font-size: 10px; margin: 4px 0 0; }
.one-time-key > div { display: flex; gap: 8px; }
.one-time-key input { font-family: Consolas,monospace; font-size: 11px; }
.one-time-key p { color: var(--muted); font-size: 10px; }

.auth-shell { background: var(--ink); display: grid; grid-template-columns: minmax(380px, .8fr) 1.2fr; min-height: 100vh; }
.auth-panel { align-self: center; background: var(--paper); border-radius: 0 28px 28px 0; max-width: 590px; padding: clamp(40px, 7vw, 90px); }
.auth-panel .brand-mark { margin-bottom: 30px; }
.auth-panel h1 { font-size: clamp(40px, 6vw, 67px); }
.auth-copy { color: var(--muted); margin: 18px 0 28px; }
.auth-panel form { display: grid; gap: 10px; }
.auth-panel input { font-family: Consolas, monospace; font-size: 24px; letter-spacing: .3em; text-align: center; }
.privacy-note { border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; margin-top: 25px; padding-top: 17px; }
.auth-art { align-items: center; background: linear-gradient(145deg, #10251f, #17392e); color: white; display: flex; justify-content: center; overflow: hidden; position: relative; }
.auth-art > p { bottom: 9%; color: #9db1a8; font-family: "Arial Narrow", Impact, sans-serif; font-size: clamp(28px, 4vw, 57px); left: 9%; line-height: 1.02; margin: 0; position: absolute; text-transform: uppercase; }
.auth-ring { align-items: center; border: 1px solid #466259; border-radius: 50%; display: flex; flex-direction: column; height: min(34vw, 430px); justify-content: center; position: relative; transform: translate(13%, -12%); width: min(34vw, 430px); }
.auth-ring:before { border: 13px solid var(--lime); border-bottom-color: transparent; border-left-color: transparent; border-radius: 50%; content: ""; inset: 16px; position: absolute; transform: rotate(-35deg); }
.auth-ring span { font-family: "Arial Narrow", Impact, sans-serif; font-size: clamp(40px, 6vw, 84px); }
.auth-ring small { color: #9fb3aa; font-size: 10px; letter-spacing: .2em; }
.auth-stat { background: var(--lime); border-radius: 12px; color: var(--ink); display: grid; left: 11%; padding: 14px; position: absolute; top: 13%; transform: rotate(-5deg); width: 112px; z-index: 2; }
.auth-stat span { font-size: 9px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.auth-stat strong { font-family: "Arial Narrow", Impact, sans-serif; font-size: 50px; line-height: .9; }
.auth-stat small { font-size: 11px; font-weight: 900; }
.form-error { color: var(--red); font-size: 12px; min-height: 18px; margin: 0; }

.modal-backdrop { align-items: center; background: rgba(6,17,13,.72); display: flex; inset: 0; justify-content: center; padding: 18px; position: fixed; z-index: 50; }
.modal { animation: modalIn .2s ease-out; background: var(--paper); border-radius: 20px; box-shadow: 0 30px 90px rgba(0,0,0,.28); max-height: calc(100vh - 36px); max-width: 650px; overflow-y: auto; padding: 25px; width: 100%; }
.modal.wide { max-width: 840px; }
@keyframes modalIn { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
.modal-header { align-items: start; display: flex; justify-content: space-between; margin-bottom: 19px; }
.modal-header h2 { font-family: "Arial Narrow", Impact, sans-serif; font-size: 28px; margin: 0; text-transform: uppercase; }
.modal-header p { color: var(--muted); font-size: 12px; margin: 4px 0 0; }
.modal-close { background: var(--paper-2); border: 0; border-radius: 50%; cursor: pointer; font-size: 19px; height: 34px; width: 34px; }
.modal-actions { display: flex; gap: 9px; justify-content: flex-end; margin-top: 20px; }
.safety-box { background: #fff1df; border: 1px solid #efd0a3; border-radius: 11px; color: #664716; font-size: 12px; margin: 13px 0; padding: 11px; }
.result-box { background: var(--ink); border-radius: 12px; color: white; display: grid; gap: 10px; grid-template-columns: repeat(auto-fit,minmax(135px,1fr)); margin-top: 15px; padding: 15px; }
.result-box span { color: #a8bbb2; display: block; font-size: 9px; text-transform: uppercase; }
.result-box strong { color: var(--lime); font-size: 17px; }
.toast-region { bottom: 20px; display: grid; gap: 8px; position: fixed; right: 20px; z-index: 80; }
.toast { animation: toastIn .3s ease-out; background: var(--ink); border-left: 4px solid var(--lime); border-radius: 9px; box-shadow: var(--shadow); color: white; font-size: 12px; max-width: 330px; padding: 13px 17px; }
@keyframes toastIn { from { opacity: 0; transform: translateX(12px); } to { opacity: 1; transform: none; } }
.empty-state { color: var(--muted); padding: 34px 10px; text-align: center; }
.empty-state strong { color: var(--ink); display: block; font-size: 16px; margin-bottom: 4px; }
.mobile-only { display: none; }

/* Goal-aware interactive dashboard */
.interactive-donut { background: none !important; isolation: isolate; }
.interactive-donut:after { display: none; }
.interactive-donut svg { height: 100%; inset: 0; overflow: visible; position: absolute; transform: rotate(-90deg); width: 100%; }
.interactive-donut .donut-track { stroke: #deddd4; }
.donut-segment { cursor: pointer; transform-origin: center; transition: opacity .2s,stroke-width .2s,filter .2s; }
.donut-segment:hover, .donut-segment:focus { filter: brightness(1.05); outline: none; stroke-width: 6; }
.donut-segment.selected { stroke-width: 7; }
.donut-segment.dimmed { opacity: .13; }
.segment-good { stroke: var(--green-deep); }
.segment-warning { stroke: var(--amber); }
.segment-bad { stroke: var(--red); }
.segment-neutral { stroke: var(--blue); }
.donut-center { align-items: center; display: flex !important; flex-direction: column; max-width: 88px; pointer-events: none; }
.donut-center em { color: var(--muted); font-size: 8px; font-style: normal; margin-top: 2px; text-align: center; }
.interactive-breakdown { gap: 7px; }
.interactive-breakdown button { align-items: center; background: transparent; border: 0; border-bottom: 1px solid var(--line); cursor: pointer; display: flex; justify-content: space-between; padding: 0 0 8px; text-align: left; transition: opacity .2s,background .2s; width: 100%; }
.interactive-breakdown button:last-child { border-bottom: 0; }
.interactive-breakdown button > span { align-items: center; color: var(--muted); display: grid; font-size: 11px; gap: 0 7px; grid-template-columns: 7px 1fr; }
.interactive-breakdown button > span i { border-radius: 50%; grid-row: 1 / 3; height: 7px; width: 7px; }
.interactive-breakdown .segment-good { background: var(--green-deep); }
.interactive-breakdown .segment-warning { background: var(--amber); }
.interactive-breakdown .segment-bad { background: var(--red); }
.interactive-breakdown .segment-neutral { background: var(--blue); }
.interactive-breakdown button small { color: var(--muted); font-size: 8px; }
.interactive-breakdown button strong { color: var(--ink); font-size: 17px; }
.interactive-breakdown button.selected { background: var(--paper); border-radius: 8px; padding: 7px 8px; }
.interactive-breakdown button.dimmed { opacity: .28; }
.dexa-metric em { color: var(--muted); display: block; font-size: 8px; font-style: normal; font-weight: 750; margin-top: 5px; }
.kpi-key { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; margin: -6px 0 10px; }
.kpi-key span { align-items: center; color: var(--muted); display: flex; font-size: 8px; gap: 5px; }
.kpi-key i { border-radius: 50%; height: 6px; width: 6px; }
.kpi-key .good { background: var(--green-deep); }.kpi-key .warning { background: var(--amber); }.kpi-key .bad { background: var(--red); }.kpi-key .neutral { background: var(--blue); }
.dexa-metric.status-good i b { background: var(--green-deep); }.dexa-metric.status-warning i b { background: var(--amber); }.dexa-metric.status-bad i b { background: var(--red); }.dexa-metric.status-neutral i b { background: var(--blue); }
.dexa-metric.status-good.active { border-color: var(--green-deep); }.dexa-metric.status-warning.active { border-color: var(--amber); }.dexa-metric.status-bad.active { border-color: var(--red); }.dexa-metric.status-neutral.active { border-color: var(--blue); }
.line-chart.status-bad polyline { stroke: var(--red); }.line-chart.status-warning polyline { stroke: var(--amber); }.line-chart.status-neutral polyline { stroke: var(--blue); }
.strength-goal-track { background: #d8dbd3; overflow: visible; position: relative; }
.strength-goal-track > i { background: linear-gradient(90deg,var(--green-deep),var(--lime)); }
.strength-tooltip { background: var(--ink); border-radius: 8px; bottom: 18px; color: white; left: 50%; opacity: 0; padding: 8px 10px; pointer-events: none; position: absolute; transform: translate(-50%,5px); transition: opacity .18s,transform .18s; white-space: nowrap; z-index: 6; }
.strength-tooltip:after { border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid var(--ink); bottom: -5px; content: ""; left: 50%; position: absolute; transform: translateX(-50%); }
.strength-tooltip strong { color: white; display: block; font-size: 11px; text-align: left; }
.strength-tooltip small { color: #b7c6bf; display: block; font-size: 9px; }
.strength-goal-track:hover .strength-tooltip, .strength-goal-track:focus .strength-tooltip { opacity: 1; transform: translate(-50%,0); }
.strength-goal-track:focus { box-shadow: 0 0 0 3px rgba(38,112,79,.17); outline: none; }
.bodyweight-goal-row > span:after { background: var(--lime); border-radius: 3px; content: "BW"; color: var(--ink); font-size: 7px; font-weight: 900; margin-left: 5px; padding: 2px 4px; vertical-align: 1px; }
.strength-missing-note { background: var(--paper); border-left: 3px solid var(--amber); border-radius: 8px; color: var(--muted); font-size: 10px; margin-bottom: 12px; padding: 9px 11px; }

/* Relative-strength pathways */
.bodyweight-pathways { margin: 16px 0; }
.bodyweight-context { display: grid; gap: 8px; grid-template-columns: repeat(4,minmax(0,1fr)); margin: 16px 0; }
.bodyweight-context > div { background: var(--paper); border-radius: 10px; padding: 11px 12px; }
.bodyweight-context span { color: var(--muted); display: block; font-size: 9px; margin-bottom: 3px; }
.bodyweight-context strong { font-size: 14px; }
.pathway-grid { display: grid; gap: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.pathway-card { border: 1px solid var(--line); border-radius: 13px; padding: 15px; }
.pathway-heading { align-items: flex-start; display: flex; gap: 12px; justify-content: space-between; }
.pathway-heading span:not(.status-pill) { color: var(--green-deep); font-size: 8px; font-weight: 850; letter-spacing: .1em; }
.pathway-heading h3 { font-size: 17px; margin: 3px 0 0; }
.pathway-track { background: #d8dbd3; border-radius: 99px; height: 8px; margin: 16px 0 7px; overflow: visible; position: relative; }
.pathway-track i { background: linear-gradient(90deg,var(--green-deep),var(--lime)); border-radius: inherit; display: block; height: 100%; }
.pathway-track b { background: var(--ink); border: 2px solid white; border-radius: 50%; height: 12px; position: absolute; top: 50%; transform: translate(-50%,-50%); width: 12px; }
.pathway-numbers { color: var(--muted); display: flex; font-size: 9px; justify-content: space-between; }
.pathway-numbers strong { color: var(--ink); font-size: 9px; }
.pathway-milestones { display: grid; gap: 7px; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 14px 0; }
.pathway-milestones > div { background: var(--paper); border-radius: 9px; padding: 9px; }
.pathway-milestones span,.pathway-milestones small { color: var(--muted); display: block; font-size: 8px; }
.pathway-milestones strong { display: block; font-size: 10px; margin: 3px 0; }
.pathway-card > p,.pathway-note p { color: var(--muted); font-size: 10px; line-height: 1.55; margin: 0; }
.pathway-note { background: #e8f0e4; border-left: 4px solid var(--green-deep); border-radius: 10px; margin-top: 12px; padding: 11px 13px; }
.pathway-note strong { display: block; font-size: 11px; margin-bottom: 3px; }
.calisthenics-settings { border-top: 1px solid var(--line); margin-top: 17px; padding-top: 17px; }
.calisthenics-setting-grid { display: grid; gap: 10px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.calisthenics-setting { background: var(--paper); border-radius: 11px; display: grid; gap: 8px; grid-template-columns: repeat(2,minmax(0,1fr)); padding: 12px; }
.calisthenics-setting > strong { grid-column: 1 / -1; }
.calisthenics-setting label { font-size: 9px; }
.calisthenics-setting input { margin-top: 4px; padding: 9px; }
.form-section-label { background: var(--paper); border-left: 3px solid var(--lime); border-radius: 8px; padding: 10px 12px; }
.form-section-label strong,.form-section-label small { display: block; }
.form-section-label small { color: var(--muted); font-size: 9px; margin-top: 2px; }

/* Low-friction nutrition */
.page-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.nutrition-week-strip { display: grid; gap: 8px; grid-template-columns: repeat(7,minmax(0,1fr)); margin-bottom: 14px; }
.nutrition-day { background: var(--paper-2); border: 1px solid var(--line); border-radius: 11px; color: var(--ink); cursor: pointer; padding: 10px 8px; text-align: left; }
.nutrition-day span,.nutrition-day strong { display: block; }
.nutrition-day span { color: var(--muted); font-size: 9px; font-weight: 700; }
.nutrition-day strong { font-family: "Arial Narrow", Impact, sans-serif; font-size: 15px; margin-top: 4px; }
.nutrition-day.active { background: var(--ink); border-color: var(--ink); color: white; }
.nutrition-day.active span { color: var(--lime); }
.nutrition-day.calendar-today { box-shadow: inset 0 0 0 2px var(--green-deep); }
.nutrition-day.active.calendar-today { box-shadow: inset 0 0 0 2px var(--lime); }
.reta-week-map { margin-bottom: 14px; overflow: hidden; }
.reta-week-map .card-header { align-items: flex-start; }
.reta-week-grid { display: grid; gap: 7px; grid-template-columns: repeat(7,minmax(0,1fr)); }
.reta-week-cell { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; min-width: 0; padding: 10px; }
.reta-week-cell span,.reta-week-cell strong,.reta-week-cell small { display: block; }
.reta-week-cell span { color: var(--muted); font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.reta-week-cell strong { font-size: 10px; margin: 5px 0 3px; }
.reta-week-cell small { color: var(--muted); font-size: 8px; line-height: 1.35; }
.reta-week-cell.dose { background: #ece5f4; border-color: #b6a3ca; }
.reta-week-cell.sensitive { background: #fff4df; border-color: #dfbf78; }
.reta-week-cell.normalize { background: #eaf0e7; }
.reta-week-cell.prepare { background: #eef0ed; }
.reta-week-cell.selected { box-shadow: inset 0 0 0 2px var(--green-deep); }
.reta-logic { border-top: 1px solid var(--line); display: grid; gap: 10px; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 13px; padding-top: 13px; }
.reta-logic > div { background: var(--paper-2); border-radius: 10px; padding: 11px; }
.reta-logic strong { font-size: 10px; }
.reta-logic p { color: var(--muted); font-size: 9px; line-height: 1.5; margin: 4px 0 0; }
.coach-hero { background: var(--ink); border-radius: 20px; color: white; display: grid; gap: 22px; grid-template-columns: minmax(210px,.72fr) 1.28fr; padding: 26px 28px; }
.coach-hero > div:first-child > span { color: var(--lime); font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.coach-hero h2 { font-family: "Arial Narrow", Impact, sans-serif; font-size: 31px; margin: 5px 0; text-transform: uppercase; }
.coach-hero p { color: #b8c6c0; font-size: 11px; margin: 0; }
.coach-kpis { display: grid; gap: 8px; grid-template-columns: repeat(4,minmax(0,1fr)); }
.coach-kpis > div { background: #21382f; border: 1px solid #345246; border-radius: 12px; padding: 13px; }
.coach-kpis span,.coach-kpis small { color: #9fb0a9; display: block; font-size: 8px; text-transform: uppercase; }
.coach-kpis strong { display: block; font-family: "Arial Narrow", Impact, sans-serif; font-size: 28px; line-height: 1.1; margin: 4px 0; }
.coach-target-note { border-top: 1px solid #355046; grid-column: 1 / -1; padding-top: 13px; }
.coach-layout { display: grid; gap: 16px; grid-template-columns: minmax(0,1.45fr) minmax(300px,.75fr); margin-top: 16px; }
.coach-sidebar { display: grid; gap: 16px; align-content: start; }
.coach-timeline { --timeline-gap: 12px; --timeline-pin: 12px; --timeline-pin-half: 6px; --timeline-time: 68px; margin-top: 14px; position: relative; }
.coach-timeline:before { background: var(--line); bottom: 17px; content: ""; left: calc(var(--timeline-time) + var(--timeline-gap) + var(--timeline-pin-half)); position: absolute; top: 17px; transform: translateX(-.5px); width: 1px; }
.coach-event { align-items: start; display: grid; gap: var(--timeline-gap); grid-template-columns: var(--timeline-time) var(--timeline-pin) minmax(0,1fr); padding: 5px 0; position: relative; }
.coach-event time { color: var(--muted); font-family: Consolas, monospace; font-size: 10px; line-height: 1; padding-top: 13px; text-align: right; white-space: nowrap; }
.timeline-pin { align-self: start; background: var(--green-deep); border: 3px solid white; border-radius: 50%; box-shadow: 0 0 0 1px var(--line); height: var(--timeline-pin); margin-top: 10px; position: relative; width: var(--timeline-pin); z-index: 1; }
.timeline-block { background: var(--paper); border-left: 3px solid var(--green-deep); border-radius: 10px; padding: 11px 13px; }
.timeline-block > div { align-items: center; display: flex; gap: 8px; justify-content: space-between; }
.timeline-block strong { font-size: 12px; }
.timeline-block em { background: white; border-radius: 20px; color: var(--green-deep); font-size: 8px; font-style: normal; font-weight: 800; padding: 4px 7px; text-transform: uppercase; }
.timeline-block small { color: var(--green-deep); display: block; font-size: 8px; margin-top: 3px; }
.timeline-block p { color: var(--muted); font-size: 9px; line-height: 1.5; margin: 5px 0 0; }
.type-protein .timeline-pin,.type-protein .timeline-block { border-color: var(--lime); }
.type-protein .timeline-pin { background: var(--lime); }
.type-training .timeline-block { background: var(--ink); border-color: var(--lime); color: white; }
.type-training .timeline-block p { color: #b7c6bf; }
.type-training .timeline-pin { background: var(--ink); }
.type-sleep .timeline-block { background: #e8e7f2; border-color: #696989; }
.type-sleep .timeline-pin { background: #696989; }
.type-work .timeline-block { border-color: #7c8e87; }
.type-hydration .timeline-block { border-color: #4b91a8; }
.type-hydration .timeline-pin { background: #4b91a8; }
.type-supplement .timeline-block { background: #f5f0de; border-color: var(--amber); }
.type-supplement .timeline-pin { background: var(--amber); }
.type-peptide .timeline-block { background: #efe9f7; border-color: #76539a; }
.type-peptide .timeline-pin { background: #76539a; }
.type-gi .timeline-block { background: #fff7e6; border-color: #b5782d; }
.type-gi .timeline-pin { background: #b5782d; }
.type-gi .timeline-block em { color: #855317; }
.type-warning .timeline-block { background: #fff1e8; border-color: #c46a3b; }
.priority-card ol { list-style: none; margin: 0; padding: 0; }
.priority-card li { display: grid; gap: 10px; grid-template-columns: 28px 1fr; padding: 11px 0; }
.priority-card li + li { border-top: 1px solid var(--line); }
.priority-card li > span { color: var(--green-deep); font-family: Consolas, monospace; font-size: 9px; padding-top: 2px; }
.priority-card li strong { display: block; font-size: 12px; }
.priority-card li p { color: var(--muted); font-size: 9px; margin: 3px 0 0; }
.supplement-list { display: grid; gap: 8px; }
.supplement-list > div { background: var(--paper); border-radius: 9px; padding: 11px; }
.supplement-list span { color: var(--green-deep); display: block; font-size: 8px; font-weight: 850; text-transform: uppercase; }
.supplement-list strong { display: block; font-size: 11px; margin: 3px 0; }
.supplement-list p { color: var(--muted); font-size: 9px; line-height: 1.45; margin: 0; }
.supplement-list .not-added { background: #f2eee5; }
.coach-adjustment-grid { display: grid; gap: 10px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.coach-adjustment { background: white; border: 1px solid var(--line); border-left: 4px solid var(--green-deep); border-radius: 12px; padding: 15px; }
.coach-adjustment > div span,.coaching-sources > div > span { color: var(--green-deep); display: block; font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.coach-adjustment > div strong { display: block; font-size: 14px; margin-top: 3px; }
.coach-adjustment p { color: var(--muted); font-size: 10px; line-height: 1.55; }
.coach-adjustment.review { border-left-color: var(--amber); }
.coach-adjustment.protocol { border-left-color: #7a66a7; }
.coach-adjustment.neutral { border-left-color: #87928e; }
.coaching-sources { align-items: center; display: grid; gap: 20px; grid-template-columns: 1fr 1fr; margin-top: 16px; }
.coaching-sources h2 { margin: 4px 0; }
.coaching-sources p { color: var(--muted); font-size: 10px; line-height: 1.55; margin: 0; }
.coaching-sources .source-row { justify-content: flex-end; }
.optional-nutrition-tools { margin-top: 16px; }
.optional-nutrition-tools > summary { cursor: pointer; display: flex; justify-content: space-between; list-style: none; }
.optional-nutrition-tools > summary span { color: var(--green-deep); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.optional-nutrition-tools > div { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 14px; }
.optional-nutrition-tools .nutrition-signal-board { box-shadow: none; margin: 0; }
.optional-meals { margin-top: 14px; }
.coach-settings-panel { margin-top: 16px; }
.nutrition-signal-board { margin-top: 16px; }
.nutrition-signal-board .eyebrow { margin-bottom: 4px; }
.nutrition-signal-grid { display: grid; gap: 9px; grid-template-columns: repeat(4,minmax(0,1fr)); }
.nutrition-signal-grid > div { background: var(--paper); border-radius: 11px; min-width: 0; padding: 13px; }
.nutrition-signal-grid span { color: var(--muted); display: block; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.nutrition-signal-grid strong { display: block; font-size: 17px; margin: 4px 0; }
.nutrition-signal-grid small { color: var(--muted); display: block; font-size: 9px; }
.tracking-footer { align-items: center; display: flex; flex-wrap: wrap; gap: 11px; margin-top: 13px; }
.tracking-footer > span { color: var(--muted); font-size: 10px; margin-right: auto; }

/* Strength goals, equipment and protocol route */
.strength-settings-grid { display: grid; gap: 9px; grid-template-columns: repeat(5,minmax(0,1fr)); }
.legacy-one-rm-grid { display: none; }
.one-rm-testing { margin-bottom: 20px; }
.one-rm-testing-intro { align-items: end; background: var(--ink); border-radius: 13px; color: white; display: grid; gap: 18px; grid-template-columns: 1fr minmax(220px, .38fr); margin-bottom: 13px; padding: 18px; }
.one-rm-testing-intro h3 { font-family: "Arial Narrow",Impact,sans-serif; font-size: 24px; margin: 4px 0 6px; text-transform: uppercase; }
.one-rm-testing-intro p { color: #bcc9c3; font-size: 11px; line-height: 1.55; margin: 0; max-width: 720px; }
.one-rm-method { border-left: 3px solid var(--lime); padding-left: 12px; }
.one-rm-method span,.one-rm-method small { color: #b9c6c0; display: block; font-size: 8px; }
.one-rm-method strong { color: var(--lime); display: block; font-size: 14px; margin: 4px 0; }
.one-rm-test-grid { display: grid; gap: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.one-rm-test-card { border: 1px solid var(--line); border-radius: 13px; min-width: 0; overflow: hidden; }
.one-rm-test-card:last-child { grid-column: 1 / -1; }
.one-rm-visual { background: #061721; aspect-ratio: 16 / 7; overflow: hidden; position: relative; }
.one-rm-visual img { height: 100%; object-fit: cover; width: 100%; }
.one-rm-visual > span { background: rgba(6,23,33,.88); bottom: 9px; color: #d7f65f; font-size: 8px; font-weight: 800; left: 9px; letter-spacing: .05em; padding: 5px 7px; position: absolute; text-transform: uppercase; }
.one-rm-card-body { padding: 13px; }
.one-rm-card-header { align-items: start; display: flex; gap: 10px; justify-content: space-between; }
.one-rm-card-header span { color: var(--green-deep); font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.one-rm-card-header h3 { font-size: 15px; margin: 3px 0 0; }
.one-rm-card-header em { background: var(--paper); border-radius: 20px; color: var(--muted); font-size: 8px; font-style: normal; font-weight: 800; padding: 5px 8px; white-space: nowrap; }
.one-rm-values { display: grid; gap: 9px; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 12px; }
.one-rm-values label { background: var(--paper); border-radius: 9px; font-size: 9px; padding: 9px; position: relative; }
.one-rm-values label > span { color: var(--muted); position: absolute; right: 9px; top: 9px; }
.one-rm-values input { margin-top: 5px; padding: 9px; }
.one-rm-guide { border-top: 1px solid var(--line); margin-top: 12px; }
.one-rm-guide summary { align-items: center; cursor: pointer; display: flex; font-size: 10px; font-weight: 800; justify-content: space-between; list-style: none; padding: 11px 0 0; }
.one-rm-guide summary::-webkit-details-marker { display: none; }
.one-rm-guide summary i { font-size: 16px; font-style: normal; }
.one-rm-guide[open] summary i { transform: rotate(45deg); }
.one-rm-guide > div > p { color: var(--muted); font-size: 10px; line-height: 1.55; }
.one-rm-guide ul { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 8px 0 12px; padding: 0; }
.one-rm-guide li { background: #e7eee2; border-radius: 20px; color: var(--green-deep); font-size: 8px; font-weight: 750; padding: 5px 7px; }
.one-rm-estimator { align-items: end; background: var(--paper); border-radius: 10px; display: grid; gap: 8px; grid-template-columns: 1fr 75px 65px auto; padding: 10px; }
.one-rm-estimator > div span,.one-rm-estimator > div small { display: block; }
.one-rm-estimator > div span { font-size: 10px; font-weight: 800; }
.one-rm-estimator > div small { color: var(--muted); font-size: 8px; }
.one-rm-estimator label { font-size: 8px; }
.one-rm-estimator input { padding: 8px; }
.one-rm-estimator output { color: var(--green-deep); font-size: 9px; font-weight: 800; grid-column: 1 / -1; }
.one-rm-protocol { display: grid; gap: 9px; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 13px; }
.one-rm-protocol > div { background: var(--paper); border-radius: 10px; padding: 11px; }
.one-rm-protocol span { color: var(--green-deep); font-family: Consolas,monospace; font-size: 9px; }
.one-rm-protocol strong { display: block; font-size: 11px; margin: 4px 0; }
.one-rm-protocol p { color: var(--muted); font-size: 9px; line-height: 1.5; margin: 0; }
.one-rm-source-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.lift-setting { background: var(--paper); border-radius: 11px; padding: 12px; }
.lift-setting > strong { display: block; font-size: 12px; margin-bottom: 9px; }
.lift-setting label { font-size: 9px; }
.lift-setting label + label { margin-top: 8px; }
.lift-setting input { padding: 9px; }
.strength-load-settings { border-top: 1px solid var(--line); margin-top: 17px; padding-top: 17px; }
.nasal-route-note { background: #e8f0e4; border-left: 4px solid var(--green-deep); border-radius: 9px; padding: 11px 13px; }
.nasal-route-note strong { font-size: 12px; }
.nasal-route-note p { color: var(--muted); font-size: 10px; margin: 4px 0 6px; }
.result-box small { color: #a8bbb2; display: block; font-size: 8px; margin-top: 2px; }
.day-chip.calendar-today { box-shadow: inset 0 0 0 2px var(--green-deep); }
.day-chip.active.calendar-today { box-shadow: inset 0 0 0 2px var(--lime); }
.rest-badge { background: var(--lime); border-radius: 20px; color: var(--ink) !important; padding: 7px 11px; }
.rest-day-panel { padding: 20px 0; }
.rest-day-panel > strong { display: block; font-size: 18px; margin-bottom: 14px; }
.share-modal { display: grid; gap: 14px; }
.share-scope { background: #eef2ec; border: 1px solid #d5ddd7; border-radius: 12px; display: grid; gap: 3px; padding: 13px 14px; }
.share-scope.protected { background: #f4f1e8; }
.share-scope span { color: var(--green-deep); font-size: 9px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.share-scope strong { font-size: 13px; }
.share-peptide-toggle { align-items: flex-start; background: var(--paper); border: 1px solid var(--line); border-radius: 12px; cursor: pointer; display: grid; gap: 12px; grid-template-columns: auto minmax(0,1fr); padding: 15px; }
.share-peptide-toggle:has(input:checked) { background: rgba(215,246,95,.16); border-color: var(--green); box-shadow: inset 3px 0 0 var(--green); }
.share-peptide-toggle input { accent-color: var(--green-deep); height: 18px; margin: 2px 0 0; width: 18px; }
.share-peptide-toggle span { display: grid; gap: 4px; }
.share-peptide-toggle strong { color: var(--ink); font-size: 14px; }
.share-peptide-toggle small { color: var(--muted); font-size: 11px; line-height: 1.5; }
.share-link-row { display: grid; gap: 8px; grid-template-columns: minmax(0,1fr) auto; }
.share-link-row input { font-family: Consolas, monospace; font-size: 11px; }
.shared-view .storage-indicator i { background: var(--lime); }
.shared-view .topbar { background: rgba(242,240,232,.96); }
.shared-view .topbar-context::after { color: var(--green-deep); content: "PUBLIC READ-ONLY"; font-size: 8px; font-weight: 850; letter-spacing: .11em; }
.shared-view [href="#settings"],.shared-view:not(.share-peptides-enabled) [href="#peptides"] { display: none !important; }
.shared-view:not(.share-peptides-enabled) .type-peptide { display: none !important; }

.day-time-grid,.peptide-time-grid { display: grid; gap: 9px; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 9px; }
.day-time-grid label,.peptide-time-grid label { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; display: grid; gap: 3px; padding: 10px; }
.day-time-grid label > span,.peptide-time-grid label > span { color: var(--green-deep); font-size: 10px; font-weight: 850; text-transform: uppercase; }
.day-time-grid label > small,.peptide-time-grid label > small { color: var(--muted); font-size: 8px; min-height: 20px; }
.day-time-grid input,.peptide-time-grid input { margin-top: 3px; }
.private-timeline-settings { border-top: 1px solid var(--line); margin-top: 4px; padding-top: 10px; }
.training-sequence-settings { border-top: 1px solid var(--line); margin-top: 6px; padding-top: 12px; }
.training-sequence-grid { display: grid; gap: 10px; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 9px; }
.training-sequence-grid > div { background: var(--paper); border: 1px solid var(--line); border-radius: 11px; display: grid; gap: 9px; padding: 10px; }
.training-sequence-grid .choice-card { background: transparent; border: 0; padding: 0; }
.training-sequence-grid label { font-size: 9px; }
.training-sequence-grid input { margin-top: 4px; padding: 9px; }
.custom-exercise-item { box-shadow: inset 3px 0 0 var(--lime); }
.custom-exercise-meta { align-items: center; background: #f0f5dd; border-bottom: 1px solid #d9e3bd; display: flex; gap: 9px; margin-left: 46px; padding: 8px 12px; }
.custom-exercise-meta span { color: #5d6e20; font-size: 8px; font-weight: 900; letter-spacing: .1em; }
.custom-exercise-meta strong { color: var(--green-deep); font-size: 10px; }
.custom-exercise-meta small { color: var(--muted); font-size: 9px; margin-left: auto; }
.custom-workout-rule { background: #edf2e9; border-left: 4px solid var(--green-deep); border-radius: 10px; margin-top: 14px; padding: 12px 14px; }
.custom-workout-rule strong { font-size: 12px; }
.custom-workout-rule p { color: var(--muted); font-size: 10px; line-height: 1.5; margin: 4px 0 0; }
.bench-progression-settings { overflow: hidden; }
.bench-progression-heading { align-items: start; display: flex; gap: 18px; justify-content: space-between; }
.bench-progression-heading span { color: var(--green-deep); font-size: 9px; font-weight: 900; letter-spacing: .1em; }
.bench-progression-heading h3 { font-size: 20px; margin: 4px 0; }
.bench-progression-heading p { color: var(--muted); font-size: 10px; line-height: 1.55; margin: 0; max-width: 680px; }
.bench-progression-heading > strong { background: var(--ink); border-radius: 20px; color: var(--lime); font-family: Consolas,monospace; font-size: 11px; padding: 8px 11px; white-space: nowrap; }
.bench-progression-ladder { align-items: stretch; display: grid; gap: 9px; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); margin: 17px 0; }
.bench-progression-ladder > div { background: var(--paper); border: 1px solid var(--line); border-radius: 11px; display: grid; gap: 3px; padding: 12px; }
.bench-progression-ladder > div.graduate { background: var(--ink); border-color: var(--ink); color: white; }
.bench-progression-ladder > i { align-self: center; color: var(--green-deep); font-style: normal; font-weight: 900; }
.bench-progression-ladder span { color: var(--green-deep); font-size: 8px; font-weight: 900; letter-spacing: .08em; }
.bench-progression-ladder .graduate span { color: var(--lime); }
.bench-progression-ladder strong { font-size: 16px; }
.bench-progression-ladder small { color: var(--muted); font-size: 9px; }
.bench-progression-ladder .graduate small { color: #b7c6bf; }

@media (max-width: 1120px) {
  .grid.four { grid-template-columns: repeat(2, 1fr); }
  .peptide-grid { grid-template-columns: repeat(2, 1fr); }
  .dashboard-grid, .workout-layout { grid-template-columns: 1fr; }
  .bodyweight-context { grid-template-columns: repeat(2,1fr); }
  .choice-grid { grid-template-columns: repeat(2, 1fr); }
  .food-priority-grid { grid-template-columns: repeat(2,1fr); }
  .food-balance-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .working-weight-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dexa-metric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .strength-settings-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nutrition-signal-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .connected-health-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .wearable-kpi-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .coach-layout { grid-template-columns: 1fr; }
  .one-rm-protocol { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 820px) {
  .sidebar { box-shadow: 16px 0 60px rgba(0,0,0,.25); transform: translateX(-102%); transition: transform .25s ease; }
  .sidebar.open { transform: translateX(0); }
  .main-shell { margin-left: 0; }
  .menu-button { display: flex; }
  .menu-close { display: block; }
  .topbar { height: 66px; padding: 0 17px; }
  #page { padding: 22px 16px 50px; }
  .hero { grid-template-columns: 1fr; padding: 25px; }
  .target-visual { min-height: 205px; }
  .target-ring { height: 190px; width: 190px; }
  .grid.three { grid-template-columns: 1fr; }
  .macro-hero { grid-template-columns: 1fr; }
  .nutrition-week-strip { grid-template-columns: repeat(4,minmax(95px,1fr)); overflow-x: auto; }
  .reta-week-grid { grid-template-columns: repeat(4,minmax(110px,1fr)); overflow-x: auto; padding-bottom: 4px; }
  .reta-logic { grid-template-columns: 1fr; }
  .coach-hero,.coaching-sources { grid-template-columns: 1fr; }
  .coach-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .coach-adjustment-grid { grid-template-columns: 1fr; }
  .coaching-sources .source-row { justify-content: flex-start; }
  .settings-layout { grid-template-columns: 1fr; }
  .settings-nav { display: flex; overflow-x: auto; position: static; }
  .settings-nav button { flex: 0 0 auto; }
  .auth-shell { grid-template-columns: 1fr; }
  .auth-panel { border-radius: 0; max-width: none; min-height: 100vh; padding: 50px 28px; }
  .auth-art { display: none; }
  .mobile-only { display: initial; }
  .huberman-peptide-note { align-items: start; flex-direction: column; }
  .one-rm-testing-intro { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .custom-exercise-meta { align-items: flex-start; flex-direction: column; margin-left: 35px; }
  .custom-exercise-meta small { margin-left: 0; }
  .bench-progression-heading { flex-direction: column; }
  .bench-progression-ladder { grid-template-columns: 1fr; }
  .bench-progression-ladder > i { justify-self: center; transform: rotate(90deg); }
  .plan-adaptation-summary { align-items: start; grid-template-columns: 1fr; }
  .plan-adaptation-tags { justify-content: flex-start; }
  .exercise-preference-adjustment { align-items: flex-start; flex-direction: column; margin-left: 35px; }
  .preference-settings-header { align-items: stretch; flex-direction: column; gap: 10px; }
  .preference-settings-header > strong { align-self: flex-start; }
  .exercise-omission-grid { grid-template-columns: 1fr; }
  .kettlebell-inventory-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .dexa-review-summary { grid-template-columns: 1fr; }
  .dexa-extraction-evidence p { grid-template-columns: 1fr; }
  .lab-review-date { grid-template-columns: 1fr; }
  .lab-review-row { align-items: stretch; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .lab-review-row .lab-review-primary { grid-column: 1 / -1; }
  .lab-review-include { justify-content: flex-start; min-height: 0; }
  .topbar-context span { display: none; }
  .quick-add { font-size: 12px; padding: 9px 11px; }
  .profile-button { display: none; }
  .page-heading { align-items: start; flex-direction: column; }
  .nutrition-week-strip { display: flex; padding-bottom: 4px; }
  .nutrition-day { flex: 0 0 92px; }
  .reta-week-grid { display: flex; }
  .reta-week-cell { flex: 0 0 118px; }
  .coach-hero { padding: 21px; }
  .coach-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .coach-timeline { --timeline-gap: 8px; --timeline-pin: 10px; --timeline-pin-half: 5px; --timeline-time: 50px; }
  .timeline-block > div { align-items: flex-start; flex-direction: column; gap: 4px; }
  .day-time-grid,.peptide-time-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .grid.two, .grid.four, .peptide-grid { grid-template-columns: 1fr; }
  .hero h1 { font-size: 43px; }
  .hero { border-radius: 18px; }
  .lab-score { grid-template-columns: 1fr; justify-items: center; }
  .lab-breakdown { width: 100%; }
  .week-strip { gap: 4px; }
  .day-chip { border-radius: 8px; padding: 9px 2px; }
  .day-chip strong { font-size: 14px; }
  .exercise-row { grid-template-columns: 25px minmax(120px,1fr) 92px auto; }
  .exercise-row .exercise-cell { display: none; }
  .exercise-row .load-cell { display: block; }
  .exercise-guide summary { padding-left: 35px; }
  .substitution-panel { margin-left: 35px; }
  .substitution-panel-header { align-items: stretch; flex-direction: column; }
  .substitution-option-grid { grid-template-columns: 1fr; }
  .substitution-option-card { grid-template-columns: 120px 1fr; grid-template-rows: 1fr; }
  .substitution-option-card img { height: 100%; min-height: 112px; }
  .exercise-progression,.exercise-progression.empty { align-items: start; grid-template-columns: 1fr auto; margin-left: 35px; }
  .exercise-progression > i { display: none; }
  .exercise-progression > div:nth-of-type(2) { grid-column: 1 / -1; }
  .exercise-guide-body { grid-template-columns: 1fr; }
  .exercise-visual-panel { margin: 0; max-width: none; width: 100%; }
  .exercise-photo-pair { grid-template-columns: 1fr; }
  .exercise-photo-pair figure + figure { border-left: 0; border-top: 1px solid #d8dfda; }
  .exercise-avatar-pair { grid-template-columns: 1fr; }
  .exercise-avatar-pair figure + figure { border-left: 0; border-top: 1px solid #d8dfda; }
  .avatar-guide .exercise-instructions { grid-template-columns: 1fr; }
  .avatar-guide .exercise-instructions > p,.avatar-guide .exercise-instructions > ul { grid-column: auto; }
  .plate-builder { grid-template-columns: 1fr; }
  .barbell-visual { justify-content: center; }
  .session-banner { align-items: start; flex-direction: column; }
  .share-link-row { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .full { grid-column: auto; }
  .choice-grid { grid-template-columns: 1fr; }
  .catalog-tools { flex-direction: column; }
  .catalog-tools select { max-width: none; }
  .record-item { grid-template-columns: 70px 14px 1fr; }
  .biomarker-table:not(.categorized) th:nth-child(2), .biomarker-table:not(.categorized) td:nth-child(2) { display: none; }
  .biomarker-insight { grid-template-columns: 1fr; }
  .biomarker-panel > .card-header,.biomarker-category-header { align-items: stretch; flex-direction: column; }
  .biomarker-panel #lab-filter { max-width: none; width: 100%; }
  .category-status-summary { justify-content: flex-start; }
  .biomarker-table.categorized th,.biomarker-table.categorized td { padding-left: 8px; padding-right: 8px; }
  .biomarker-table.categorized th:first-child,.biomarker-table.categorized td:first-child { padding-left: 12px; }
  .biomarker-table.categorized th:last-child,.biomarker-table.categorized td:last-child { padding-right: 12px; }
  .food-priority-grid { grid-template-columns: 1fr; }
  .food-balance-grid,.working-weight-grid { grid-template-columns: 1fr; }
  .food-balance-card .card-header { align-items: stretch; flex-direction: column; }
  .working-weight-tile { min-height: 150px; }
  .strength-bars > div { grid-template-columns: 90px 1fr 58px; }
  .result-box { grid-template-columns: 1fr; }
  .active-protocol .protocol-stats { grid-template-columns: repeat(2,1fr); }
  .protocol-weekly-schedule { align-items: start; grid-template-columns: 1fr; }
  .protocol-weekly-schedule small { text-align: left; }
  .protocol-dose-benchmark { grid-template-columns: 1fr; }
  .protocol-dose-benchmark.research-regimen, .protocol-time-inputs { grid-template-columns: 1fr; }
  .personal-dose-limit { border-left: 0; border-top: 1px solid var(--line); padding: 8px 0 0; }
  .protocol-day-selector { gap: 4px; }
  .protocol-day { min-height: 46px; }
  .protocol-day small { display: none; }
  .protocol-cycle-preview { grid-template-columns: 1fr; }
  .plate-inventory-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .trend-detail-header { align-items: start; flex-direction: column; gap: 4px; }
  .line-chart { margin-left: -8px; width: calc(100% + 16px); }
  .strength-settings-grid, .nutrition-signal-grid { grid-template-columns: 1fr; }
  .one-rm-test-grid,.one-rm-protocol { grid-template-columns: 1fr; }
  .one-rm-test-card:last-child { grid-column: auto; }
  .one-rm-estimator { align-items: stretch; grid-template-columns: 1fr 1fr; }
  .one-rm-estimator > div,.one-rm-estimator button { grid-column: 1 / -1; }
  .interactive-breakdown { width: 100%; }
  .kpi-key { justify-content: flex-start; }
  .strength-tooltip { left: auto; right: 0; transform: translateY(5px); }
  .strength-goal-track:hover .strength-tooltip, .strength-goal-track:focus .strength-tooltip { transform: none; }
  .strength-tooltip:after { left: auto; right: 22px; }
  .pathway-grid,.calisthenics-setting-grid { grid-template-columns: 1fr; }
  .pathway-milestones { grid-template-columns: 1fr; }
  .pathway-numbers { align-items: flex-start; flex-direction: column; gap: 3px; }
  .connected-health-grid,.api-scope-grid { grid-template-columns: 1fr; }
  .connected-health-groups,.health-data-group-detail,.training-sequence-grid { grid-template-columns: 1fr; }
  .wearable-kpi-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .wearable-kpi-grid a:last-child { grid-column: 1 / -1; }
  .workout-recovery-context { align-items: flex-start; flex-direction: column; }
  .agent-api-panel > .card-header { align-items: stretch; flex-direction: column; }
  .agent-api-intro,.agent-token-row { align-items: stretch; flex-direction: column; }
  .agent-token-row > div:last-child { justify-content: space-between; }
  .one-time-key > div { flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *:before, *:after { animation-duration: .01ms !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

.apple-import-progress { padding: 18px 2px 8px; }
.apple-import-progress .progress-track { background: #e3e9e5; height: 10px; }
.apple-import-progress .progress-track i { background: linear-gradient(90deg,var(--forest),var(--lime)); transition: width .2s ease; }
.apple-import-progress p { color: var(--muted); margin: 12px 0 0; }
.apple-import-review { display: grid; gap: 18px; }
.apple-import-stat-grid { display: grid; gap: 10px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.apple-import-stat-grid > div { background: #f5f7f5; border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 5px; padding: 14px; }
.apple-import-stat-grid span { color: var(--muted); font-size: 12px; }
.apple-import-stat-grid strong { color: var(--ink); font-size: 22px; }
.apple-import-review section > strong { display: block; margin-bottom: 9px; }
.apple-import-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.apple-import-tags span { background: #edf6d7; border: 1px solid #d6e8aa; border-radius: 999px; color: #39561b; font-size: 12px; padding: 6px 9px; }
.apple-import-notes { background: #f7faf8; border-left: 3px solid var(--forest); border-radius: 0 10px 10px 0; display: grid; gap: 8px; padding: 13px 15px; }
.apple-import-notes p,.apple-import-error p { color: var(--muted); font-size: 13px; line-height: 1.55; margin: 0; }
.apple-import-error { background: #f7faf8; border: 1px solid var(--line); border-radius: 12px; display: grid; gap: 8px; padding: 16px; }

.measurement-dashboard-card { margin-top: 16px; }
.measurement-kpi-grid { display: grid; gap: 9px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.measurement-kpi-grid a { background: linear-gradient(135deg,#f3f7ef,#eef4f0); border: 1px solid transparent; border-radius: 11px; color: inherit; display: grid; gap: 5px; min-width: 0; padding: 14px; text-decoration: none; transition: border-color .18s ease,transform .18s ease; }
.measurement-kpi-grid a:hover,.measurement-kpi-grid a:focus-visible { border-color: var(--green-deep); transform: translateY(-1px); }
.measurement-kpi-grid span { color: var(--green-deep); font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.measurement-kpi-grid strong { font-family: Consolas,monospace; font-size: 20px; }
.measurement-kpi-grid small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.manual-pressure-grid { display: grid; gap: 12px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.manual-pressure-grid label { position: relative; }
.manual-pressure-grid label span { color: var(--muted); font-size: 9px; position: absolute; right: 10px; top: 0; }
.smart-entry-note { background: #edf5e7; border-left: 3px solid var(--green-deep); border-radius: 0 10px 10px 0; margin-top: 14px; padding: 12px 14px; }
.smart-entry-note strong { font-size: 11px; }
.smart-entry-note p { color: var(--muted); font-size: 9px; line-height: 1.5; margin: 4px 0 0; }
.exercise-load-coverage { border-top: 1px solid var(--line); margin: 20px 0; padding-top: 20px; }
.load-coverage-header { align-items: start; display: flex; gap: 16px; justify-content: space-between; }
.load-coverage-header h3 { font-family: "Arial Narrow",Impact,sans-serif; font-size: 23px; margin: 3px 0 6px; text-transform: uppercase; }
.load-coverage-header p { color: var(--muted); font-size: 10px; line-height: 1.55; margin: 0; max-width: 720px; }
.core-coverage-grid { display: grid; gap: 7px; grid-template-columns: repeat(5,minmax(0,1fr)); margin: 13px 0; }
.core-coverage-grid > div { background: var(--ink); border-radius: 9px; color: white; padding: 10px; }
.core-coverage-grid span { color: var(--lime); display: block; font-size: 8px; font-weight: 850; text-transform: uppercase; }
.core-coverage-grid strong { display: block; font-size: 9px; line-height: 1.35; margin-top: 4px; }
.accessory-baseline-grid { display: grid; gap: 10px; grid-template-columns: 1fr; }
.accessory-baseline-card { border: 1px solid var(--line); border-radius: 12px; display: grid; grid-template-columns: 220px minmax(0,1fr); min-width: 0; overflow: hidden; }
.accessory-baseline-card > img,.baseline-visual-fallback { background: #071923; height: 100%; min-height: 165px; object-fit: cover; width: 100%; }
.baseline-visual-fallback { align-items: center; color: var(--lime); display: flex; font-size: 10px; justify-content: center; padding: 12px; text-align: center; }
.accessory-baseline-card > div:last-child { min-width: 0; padding: 12px; }
.accessory-baseline-card span { color: var(--green-deep); display: block; font-size: 8px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.accessory-baseline-card h4 { font-size: 14px; margin: 4px 0 7px; }
.accessory-baseline-card > div > strong { display: block; font-size: 11px; }
.baseline-estimator { align-items: end; display: grid; gap: 7px; grid-template-columns: minmax(0,1fr) 80px auto; margin-top: 10px; }
.baseline-estimator label { font-size: 8px; }
.baseline-estimator input { padding: 8px; }
.accessory-baseline-card output { color: var(--muted); display: block; font-size: 8px; margin-top: 7px; }

.supplement-stack-card { margin-top: 18px; overflow: hidden; }
.supplement-stack-list { display: grid; gap: 10px; }
.supplement-stack-item { align-items: center; background: #f6f8f6; border: 1px solid var(--line); border-left: 4px solid var(--lime); border-radius: 12px; display: grid; gap: 16px; grid-template-columns: minmax(150px,.7fr) minmax(280px,1.7fr) auto; padding: 15px; }
.supplement-stack-item.review,.supplement-stack-item.needs-details { border-left-color: #d28a3b; }
.supplement-stack-brand,.supplement-stack-direction { display: grid; gap: 4px; min-width: 0; }
.supplement-stack-brand span,.supplement-stack-direction span,.supplement-dose-preview > span { color: var(--green-deep); font-size: 8px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.supplement-stack-brand strong { font-size: 14px; }
.supplement-stack-brand small,.supplement-stack-direction p { color: var(--muted); font-size: 9px; line-height: 1.45; margin: 0; }
.supplement-stack-direction strong { font-family: Consolas,monospace; font-size: 13px; line-height: 1.45; }
.supplement-stack-actions { align-items: flex-end; display: flex; flex-direction: column; gap: 7px; }
.supplement-stack-actions .text-button { font-size: 9px; }
.text-button.danger { color: #9f3b2f; }
.supplement-stack-empty { align-items: flex-start; background: #f5f8f3; border: 1px dashed #bdcabb; border-radius: 12px; display: flex; flex-direction: column; gap: 7px; padding: 18px; }
.supplement-stack-empty p,.supplement-method-note { color: var(--muted); font-size: 9px; line-height: 1.55; margin: 0; }
.supplement-method-note { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 12px; }
.compound-input,.range-input { align-items: center; display: grid; gap: 7px; grid-template-columns: minmax(0,1fr) 82px; }
.range-input { grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); }
.range-input span { color: var(--muted); font-size: 9px; }
.supplement-time-fields > div { display: grid; gap: 6px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.supplement-dose-preview { background: #edf5df; border-left: 4px solid var(--green-deep); border-radius: 0 12px 12px 0; display: grid; gap: 5px; margin-top: 16px; padding: 14px 16px; }
.supplement-dose-preview.review,.supplement-dose-preview.needs-details { background: #fff5e6; border-left-color: #c77c25; }
.supplement-dose-preview strong { font-family: Consolas,monospace; font-size: 14px; }
.supplement-dose-preview p { color: var(--muted); font-size: 9px; line-height: 1.5; margin: 0; }
.supplement-ai-intake { background: linear-gradient(145deg,#10251f,#183b30); border-radius: 15px; color: white; display: grid; gap: 14px; padding: 18px; }
.supplement-ai-intake h3 { font-family: "Arial Narrow",Impact,sans-serif; font-size: 26px; margin: 3px 0 5px; text-transform: uppercase; }
.supplement-ai-intake p { color: #c5d3cd; font-size: 10px; line-height: 1.55; margin: 0; }
.supplement-ai-intake .eyebrow { color: var(--lime); }
.supplement-ai-intake label { color: #dfe9e4; font-size: 9px; }
.supplement-ai-intake input { background: rgba(255,255,255,.96); color: var(--ink); margin-top: 6px; }
.supplement-photo-grid { display: grid; gap: 9px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.supplement-photo-grid label { background: rgba(255,255,255,.08); border: 1px dashed rgba(255,255,255,.3); border-radius: 10px; cursor: pointer; display: grid; gap: 5px; padding: 12px; }
.supplement-photo-grid label:hover { border-color: var(--lime); }
.supplement-photo-grid span { color: white; font-size: 10px; font-weight: 800; }
.supplement-photo-grid small { color: #aebfb8; font-size: 8px; }
.supplement-photo-grid input { background: transparent; color: #dfe9e4; font-size: 8px; margin: 0; padding: 5px 0; }
.supplement-ai-result { background: rgba(255,255,255,.08); border-left: 3px solid var(--lime); border-radius: 0 10px 10px 0; display: grid; gap: 5px; padding: 12px 14px; }
.supplement-ai-result > span { color: var(--lime); font-size: 8px; font-weight: 850; letter-spacing: .08em; }
.supplement-ai-result > strong { font-size: 13px; }
.supplement-ai-result > small,.supplement-ai-result li { color: #c5d3cd; font-size: 9px; line-height: 1.5; }
.supplement-ai-result ul { margin: 4px 0 0; padding-left: 17px; }
.supplement-ai-sources { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.supplement-ai-sources a { background: rgba(215,246,95,.12); border: 1px solid rgba(215,246,95,.25); border-radius: 999px; color: var(--lime); font-size: 8px; padding: 5px 8px; text-decoration: none; }
.supplement-review-details { border: 1px solid var(--line); border-radius: 12px; margin-top: 15px; overflow: hidden; }
.supplement-review-details > summary { align-items: center; cursor: pointer; display: flex; justify-content: space-between; list-style: none; padding: 14px 16px; }
.supplement-review-details > summary::-webkit-details-marker { display: none; }
.supplement-review-details > summary span { font-size: 11px; font-weight: 850; }
.supplement-review-details > summary strong { color: var(--green-deep); font-size: 8px; letter-spacing: .07em; text-transform: uppercase; }
.supplement-review-details > .form-grid { border-top: 1px solid var(--line); padding: 16px; }

@media (max-width: 700px) {
  .food-analysis-items { grid-template-columns: 1fr; }
  .apple-import-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .measurement-kpi-grid,.manual-pressure-grid,.core-coverage-grid,.accessory-baseline-grid { grid-template-columns: 1fr; }
  .load-coverage-header { align-items: stretch; flex-direction: column; }
  .accessory-baseline-card { grid-template-columns: 110px minmax(0,1fr); }
  .baseline-estimator { grid-template-columns: 1fr 70px; }
  .baseline-estimator button { grid-column: 1 / -1; }
  .supplement-stack-item { align-items: stretch; grid-template-columns: 1fr; }
  .supplement-stack-actions { align-items: center; flex-direction: row; flex-wrap: wrap; }
  .compound-input { grid-template-columns: minmax(0,1fr) 72px; }
  .supplement-photo-grid { grid-template-columns: 1fr; }
}
