:root {
  --bg:#101412; --panel:#1b211e; --field:#121814; --text:#f2f5ef;
  --muted:#aab6ae; --accent:#d4fb76; --ink:#172009; --line:#333f36;
  --warn:#ffaf96; --nav-height:78px; color-scheme:dark;
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Segoe UI",sans-serif;
  background:var(--bg); color:var(--text); font-synthesis:none;
}
* {box-sizing:border-box}
html {-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-padding-bottom:160px}
body {margin:0;min-width:280px}
button,input,select,textarea {font:inherit;touch-action:manipulation}
button,.button-link {
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:12px 18px;border:1px solid transparent;border-radius:14px;
  background:var(--accent);color:var(--ink);font-size:15px;font-weight:600;
  line-height:1.3;text-align:center;text-decoration:none;cursor:pointer;
  transition:background-color 120ms,opacity 120ms,transform 120ms;
}
button:active,.button-link:active {transform:scale(.98)}
button:disabled {opacity:.5;cursor:wait}
a {color:inherit;text-underline-offset:3px}
svg {width:22px;height:22px;flex-shrink:0}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline:3px solid var(--accent);outline-offset:3px;
}
input,select,textarea {
  width:100%;min-width:0;max-width:100%;min-height:48px;border:1px solid var(--line);
  border-radius:12px;background:var(--field);color:var(--text);padding:12px;
  font-size:16px;line-height:1.35;font-variant-numeric:tabular-nums;
}
input[type=date] {-webkit-appearance:none;appearance:none;min-inline-size:0}
textarea {min-height:104px;resize:vertical}
input[type=checkbox] {width:24px;height:24px;min-height:24px;padding:0;accent-color:var(--accent);flex-shrink:0;cursor:pointer}
input[type=number] {-moz-appearance:textfield}
input::-webkit-inner-spin-button,input::-webkit-outer-spin-button {-webkit-appearance:none;margin:0}
.shell {max-width:800px;margin:auto;padding:24px 24px calc(128px + env(safe-area-inset-bottom));padding-top:max(24px,env(safe-area-inset-top))}
header {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;min-height:44px}
.brand {display:inline-flex;align-items:center;gap:10px;min-height:44px;text-decoration:none;font-size:12px;font-weight:750;letter-spacing:1.2px;line-height:1.35}
.brand-mark {display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--accent);color:var(--ink);font-size:24px;letter-spacing:-1.5px;font-style:italic}
.brand small {display:block;font-size:10px;letter-spacing:3.2px;color:var(--muted);font-weight:500}
#role {font-size:12px;padding:8px 12px;min-height:44px}
h1,h2,h3 {text-wrap:balance;overflow-wrap:anywhere}
h1 {font-size:38px;line-height:1.1;letter-spacing:-1.25px;font-weight:650;margin:0 0 12px}
h2 {font-size:22px;line-height:1.25;letter-spacing:-.45px;font-weight:600;margin:0 0 12px}
h3 {font-size:17px;font-weight:600;line-height:1.4;margin:0 0 10px}
p {margin:0 0 16px;color:var(--muted);line-height:1.55;font-size:15px;max-width:65ch;overflow-wrap:anywhere}
small {font-size:12px;line-height:1.45;color:var(--muted)}
.eyebrow {display:block;font-size:11px;line-height:1.4;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.intro {margin:28px 0 24px}
.intro p {margin-bottom:0}
.card {background:var(--panel);border:1px solid #ffffff05;border-radius:22px;padding:24px;margin:16px 0}
.card>:last-child {margin-bottom:0}
.hero {background:#202b20;border-color:#d4fb7620}
.hero h2 {color:var(--text)}
.hero button {background:var(--accent);color:var(--ink)}
.hero>button,.card>button,.card>.button-link {width:100%}
.row {display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.row.between {justify-content:space-between}
.card>.row.between {flex-wrap:nowrap;align-items:flex-start}
.card>.row.between>h2,.card>.row.between>small {min-width:0;flex:1}
.card>.row:not(.between)>button {flex:1 1 120px}
.grid {align-items:end;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fields {align-items:end;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.stack {display:grid;gap:16px}
label {display:grid;gap:8px;font-size:13px;font-weight:500;line-height:1.4;color:var(--muted);min-width:0}
label.row {min-height:48px;justify-content:flex-start;flex-wrap:nowrap}
.quiet {background:#ffffff04;color:var(--text);border-color:var(--line)}
.danger {color:var(--warn);border-color:transparent;background:transparent}
.muted {color:var(--muted)}
.badge {display:inline-flex;align-items:center;min-height:26px;flex-shrink:0;padding:4px 9px;border-radius:8px;background:#ffffff07;color:var(--muted);font-size:11px;font-weight:500;line-height:1.35}
.section-head {margin-top:24px}
h2.section-head,h3.section-head {margin-bottom:12px}
.roster-toolbar {display:flex;justify-content:space-between;align-items:center;gap:12px;margin:20px 0}
.roster-toolbar>.muted {font-size:13px}
.roster-toolbar button {min-height:44px;padding:10px 16px}
.member-card h2 {font-size:20px;margin-bottom:0}
.member-summary {display:flex;flex-wrap:wrap;gap:8px 16px;margin:18px 0;font-size:13px}
.member-summary span {white-space:nowrap}
.member-summary b {font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;margin-left:4px}
.member-card>button {min-height:44px;font-size:14px}
.empty {padding:28px 8px;text-align:center;margin:auto;max-width:520px}
.empty p {margin:0 auto 20px}
.empty>button {min-width:180px}
main>button {display:flex;width:100%;margin:16px 0}
main>button+section {margin-top:20px}
#nav {
  position:fixed;z-index:5;bottom:calc(10px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);
  width:calc(100% - 24px);max-width:480px;display:flex;align-items:stretch;gap:4px;
  padding:7px;border:1px solid #ffffff12;border-radius:25px;background:#1b211ef5;
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
}
#nav:empty {display:none}
#nav button {flex:1;min-width:0;min-height:55px;padding:6px 2px;flex-direction:column;gap:5px;border:0;border-radius:18px;background:transparent;color:var(--muted);font-size:10px;font-weight:550;line-height:1.1;white-space:nowrap}
#nav button svg {width:21px;height:21px}
#nav button[aria-current=page] {background:#d4fb7610;color:var(--accent)}
.workspace-switch {display:flex;gap:4px;background:var(--panel);border:1px solid #ffffff05;padding:4px;border-radius:16px;margin:0 0 28px}
.workspace-switch[hidden] {display:none}
.workspace-switch button {flex:1;min-width:0;min-height:44px;font-size:13px;padding:9px 6px;background:transparent;color:var(--muted);border-radius:12px;font-weight:550}
.workspace-switch button[aria-pressed=true] {background:#344035;color:var(--text)}
.set {display:grid;grid-template-columns:22px minmax(0,1fr) minmax(0,1fr) 44px;gap:10px;align-items:end;margin:16px 0}
.set label {font-size:12px;font-weight:400}
.set input[type=number] {text-align:center;font-size:18px}
.set .num {align-self:end;display:grid;place-items:center;height:48px;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.set .check {display:flex;align-items:center;justify-content:center;min-height:48px}
.editor-day {padding-top:24px;border-top:1px solid var(--line);margin-top:28px}
.editor-day>.row.between {margin-bottom:16px;flex-wrap:nowrap;align-items:center}
.editor-day>.row.between h2 {font-size:20px;margin:0}
.editor-day>.row.between button {font-size:12px;padding:10px;min-height:44px}
.editor-ex {background:var(--panel);padding:20px;border:1px solid #ffffff05;border-radius:20px;margin:16px 0}
.editor-ex input {background:var(--field)}
.editor-ex>.section-head>.danger {font-size:13px}
.editor-day>button,main>.section-head>button {width:100%}
.finish {position:sticky;z-index:3;bottom:calc(92px + env(safe-area-inset-bottom));display:flex;gap:8px;align-items:center;background:#101412f7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:12px 0;margin-top:24px;border-top:1px solid var(--line)}
.finish button {flex:1;min-width:0;padding:12px 8px;font-size:13px}
.finish button:first-child {flex:1.35}
#editor-status:empty {display:none}
.save-status {font-size:12px;color:var(--muted);margin:16px 0}
.error {color:var(--warn)}
.form-q {border-bottom:1px solid var(--line);padding:20px 0}
dialog {width:calc(100% - 32px);max-width:560px;max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;padding:28px;border:1px solid #ffffff14;border-radius:26px;background:var(--panel);color:var(--text)}
dialog::backdrop {background:#040806b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
dialog h2 {font-size:23px;padding-right:32px;margin-bottom:20px}
dialog form {display:grid;gap:20px}
dialog>.stack {margin-top:20px}
dialog>button:not(.dialog-close),dialog>.section-head>button {width:100%}
.dialog-close {position:absolute;right:14px;top:14px;width:44px;height:44px;min-height:44px;padding:10px;background:transparent;border-color:transparent;color:var(--muted)}
.dialog-close svg {width:20px;height:20px}
.confirm-popup {max-width:440px}
.confirm-popup h2 {padding:0;margin-bottom:10px}
.confirm-popup p {margin:0}
.confirm-actions {display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.confirm-actions button {flex:1 1 130px}
#notice {position:fixed;z-index:10;bottom:calc(96px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:14px 18px;border-radius:14px;background:var(--text);color:var(--bg);font-size:14px;line-height:1.4;text-align:center;display:none}
#notice.visible {display:block}
#invite-status:empty {display:none}
#invite-status {margin-top:16px;color:var(--accent);font-size:13px;text-align:center}
.wide {width:100%}
.metric {font-size:28px;color:var(--accent);font-variant-numeric:tabular-nums}
pre {white-space:pre-wrap;overflow-wrap:anywhere}
time {font-variant-numeric:tabular-nums}
.nutrition-item {padding:14px 0;display:grid;gap:6px}
.nutrition-item small {line-height:1.5}
.table-row {padding:18px 0;border-bottom:1px solid var(--line)}
.report-controls {display:grid;gap:16px;margin-top:20px}
.report-periods {display:flex;gap:4px;background:var(--field);padding:4px;border-radius:14px}
.report-periods button {flex:1;min-width:0;min-height:44px;font-size:13px;border:0;background:transparent;border-radius:10px;color:var(--muted);padding:10px 6px}
.report-periods button[aria-pressed=true] {background:#344035;color:var(--text)}
.report-navigation {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.report-navigation>.row {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.report-navigation button {min-height:44px;font-size:12px;padding:10px 12px;white-space:nowrap}
.report-caption {font-size:12px;line-height:1.55}
.report-metrics {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}
.report-metrics>div {background:var(--field);padding:16px;border-radius:16px;min-width:0}
.report-metrics small {display:block;font-size:12px;line-height:1.4}
.report-metrics strong {display:block;font-size:27px;font-weight:550;letter-spacing:-.6px;font-variant-numeric:tabular-nums;margin-top:8px;line-height:1.2}
.report-day {padding:20px 0;border-top:1px solid var(--line)}
.report-day>.row.between {align-items:center;gap:8px}
.report-day>.row.between small {font-size:11px}
.report-day>.row.between button {font-size:13px;min-height:44px;padding:10px 12px}
.report-day>p {margin:12px 0}
.report-workout {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px;margin-top:16px}
.report-workout button {font-size:13px;min-height:44px}
.report-future {opacity:.7}
.report-meals {margin:20px 0}
summary {cursor:pointer;min-height:44px;line-height:1.5;padding:12px 0;font-size:14px}
.clipboard-fallback {position:fixed;left:-10000px;top:0}
.clipboard-fallback.clipboard-visible {position:static;margin-top:16px;min-height:90px}
.keyboard-open #nav,.keyboard-open .finish {display:none}
@media (max-width:600px) {
 .shell {padding:20px 18px calc(126px + env(safe-area-inset-bottom));padding-top:max(16px,env(safe-area-inset-top))}
 header {margin-bottom:20px}
 h1 {font-size:32px;letter-spacing:-1px}
 h2 {font-size:21px}
 .intro {margin-top:24px;margin-bottom:20px}
 .intro p {font-size:14px}
 .card {padding:20px;border-radius:21px}
 .grid {grid-template-columns:1fr}
 .fields {grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}
 .workspace-switch {margin-bottom:24px}
 .set {gap:8px;grid-template-columns:18px minmax(0,1fr) minmax(0,1fr) 44px}
 .editor-ex {padding:18px}
 dialog {position:fixed;inset:auto 0 calc(8px + env(safe-area-inset-bottom));margin:0 auto;width:calc(100% - 16px);max-height:calc(100dvh - 32px - env(safe-area-inset-top));padding:24px 20px;border-radius:26px}
 dialog h2 {font-size:22px}
 .confirm-popup {inset:auto 0 calc(16px + env(safe-area-inset-bottom))}
 .roster-toolbar {margin:20px 0 16px}
}
@media (max-width:359px) {
 .shell {padding-left:14px;padding-right:14px}
 .card {padding:16px}
 .brand {font-size:11px;gap:8px}
 .brand-mark {width:30px;height:30px;font-size:22px}
 .workspace-switch button {font-size:12px}
 #nav {width:calc(100% - 16px)}
 #nav button {font-size:9px}
 dialog {padding-left:16px;padding-right:16px}
 .report-navigation {gap:6px}
 .report-navigation button {padding:10px 7px;font-size:11px}
 .finish button {font-size:12px;padding:12px 6px}
}
@media (prefers-reduced-motion:reduce) {
 *,*::before,*::after {scroll-behavior:auto!important;transition:none!important;animation:none!important}
 button:active,.button-link:active {transform:none}
}

@media(max-width:600px){body[data-page=editor] .workspace-switch,body[data-page=session] .workspace-switch{display:none}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.set-headers{display:grid;grid-template-columns:22px minmax(0,1fr) minmax(0,1fr) 44px;gap:10px;margin-top:20px;color:var(--muted);font-size:11px;text-align:center}.set{margin:10px 0;align-items:center}.set label{gap:0}.set:has(input[type=checkbox]:checked){background:#d4fb7608;border-radius:12px}@media(max-width:600px){.set-headers{grid-template-columns:18px minmax(0,1fr) minmax(0,1fr) 44px;gap:8px}}

/* Nutrition stays scannable; product lists open only on request. */
.food-overview {margin:20px 0;padding:18px 20px;background:var(--panel);border-radius:20px}
.food-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.food-heading h3 {margin:0}
.food-heading small {text-align:right}
.food-values {display:grid;grid-template-columns:1.2fr repeat(3,minmax(0,1fr));gap:8px;font-variant-numeric:tabular-nums}
.food-values>div {min-width:0}
.food-values strong {display:block;font-size:22px;line-height:1.25;font-weight:550;letter-spacing:-.5px;overflow-wrap:anywhere}
.food-values small {display:block;margin-top:4px;font-size:11px;white-space:nowrap}
.food-source {font-size:12px;color:var(--muted);line-height:1.5;margin-top:14px}
.food-details {margin-top:12px;border-top:1px solid var(--line)}
.food-details summary,.food-meal summary {display:flex;align-items:center;gap:10px;list-style:none;min-height:48px;font-size:14px}
.food-details summary::-webkit-details-marker,.food-meal summary::-webkit-details-marker {display:none}
.disclosure-chevron {margin-left:auto;width:7px;height:7px;flex-shrink:0;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);margin-right:3px;transition:transform 120ms}
.food-details[open]>summary .disclosure-chevron,.food-meal[open]>summary .disclosure-chevron {transform:rotate(225deg)}
.food-details h4 {font-size:13px;font-weight:500;color:var(--muted);margin:8px 0 12px}
.food-details .report-caption {margin:14px 0 0}
.food-details .food-values strong {font-size:18px}
.food-meals {margin-top:16px}
.food-meal {border-top:1px solid var(--line)}
.food-meal summary>span:first-child {flex:1;min-width:0;overflow-wrap:anywhere}
.food-meal-energy {font-size:13px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.food-meal .disclosure-chevron {margin-left:2px}
.food-meal-body {padding:8px 0 12px}
.food-meal-body .food-values {margin-bottom:8px}
.food-meal-body .food-values strong {font-size:18px}
.food-meal-body .nutrition-item {border-top:1px solid var(--line);padding:12px 0;font-size:14px;gap:4px}
.food-meal-body .nutrition-item:first-of-type {margin-top:14px}
.food-meal-body .nutrition-item b {font-weight:500}
.report-day {padding:16px 0}
.report-day-food {display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px;color:var(--muted);line-height:1.5;margin:12px 0 8px;font-variant-numeric:tabular-nums}
.report-day-food b {font-weight:550;color:var(--text)}
.report-day-food span {white-space:nowrap}
.report-day>.report-caption {margin:8px 0}
@media(max-width:359px){.food-overview{padding:16px}.food-values{gap:6px}.food-values strong{font-size:19px}.food-values small{font-size:10px}.food-heading{gap:8px}.food-heading small{font-size:11px}}
.food-details .food-values {grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.card .food-overview {padding:0;background:transparent;border-radius:0}
dialog .food-overview {padding:16px 0;background:transparent;border-radius:0}
