:root { --bg:#101615; --panel:#19211f; --panel2:#202a27; --line:#303b36; --text:#eff3eb; --muted:#9cab9f; --accent:#d5ee91; --accent2:#90ad6e; --amber:#ffd69a; --red:#ffad9d; --shadow:0 22px 60px #0004; --radius:20px; color-scheme:dark; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--text); background:var(--bg); -webkit-font-smoothing:antialiased; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; touch-action:manipulation; }
input,textarea,select { min-width:0; border:1px solid var(--line); border-radius:11px; padding:11px 12px; outline:none; background:#141b19; color:var(--text); }
input:focus,textarea:focus,select:focus { border-color:var(--accent2); box-shadow:0 0 0 3px #d5ee9118; }
input[type=date] { color-scheme:dark; }
input[type=number] { appearance:textfield; -moz-appearance:textfield; }
input::-webkit-outer-spin-button,input::-webkit-inner-spin-button {-webkit-appearance:none;margin:0;}
textarea { resize:vertical; width:100%; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { letter-spacing:-.035em; }
h1 { font-size:clamp(27px,4.4vw,43px); line-height:1.14; font-weight:730; margin-bottom:7px; }
h2 { font-size:22px; line-height:1.2; margin:0; }
h3 { font-size:16px; margin:0; }
small,.subtle {color:var(--muted);}
#app { min-height:100vh; }
.shell { width:min(1140px,100%); margin:auto; padding:0 28px 90px; }
.top { min-height:89px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid #29342e; margin-bottom:32px; }
.logo { display:flex; align-items:center; gap:10px; font-weight:800; letter-spacing:-.05em; font-size:22px; }
.logo-mark {display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:11px;background:var(--accent);color:var(--bg);font-size:24px;font-weight:900;}
.top-right { display:flex; align-items:center; gap:13px; }
.top-date { text-transform:uppercase; font-size:10px; font-weight:700; letter-spacing:.12em; color:var(--muted); }
.goal-tag {padding:7px 12px;border-radius:100px;color:var(--accent);border:1px solid #546340;font-size:12px;font-weight:650; }
.desktop-nav {display:flex;gap:5px;margin-left:35px;}
.nav-btn {display:flex;align-items:center;gap:9px;background:transparent;color:var(--muted);border:0;border-radius:12px;padding:11px 15px;font-weight:650;font-size:13px;transition:background .18s;}
.nav-btn.active {background:#263127;color:var(--accent);}
.nav-btn svg,.bottom-item svg {width:18px;height:18px;}
.bottom-nav {display:none;}
.page-head {display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px;}
.eyebrow {font-size:11px;letter-spacing:.17em;text-transform:uppercase;font-weight:800;color:var(--accent2);margin-bottom:8px;}
.desc {color:var(--muted);margin:0;max-width:650px;}
.card {background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:21px;}
.card.slim {padding:17px 19px;}
.card + .card {margin-top:12px;}
.grid2 {display:grid;grid-template-columns:minmax(0,1.6fr) minmax(285px,.86fr);gap:20px;align-items:start;}
.stats {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:0 0 20px;}
.stat {border:1px solid var(--line);border-radius:16px;padding:15px 16px;background:#151d1a;min-width:0;}
.stat-label {font-size:11px;font-weight:650;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;}
.stat-value {font-size:28px;font-weight:800;letter-spacing:-.05em;line-height:1.25;margin-top:8px;}
.stat-suffix {font-size:12px;color:var(--muted);font-weight:600;letter-spacing:0;}
.section-label {font-weight:750;letter-spacing:-.015em;font-size:17px;margin:0 0 13px;}
.weekdays {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-bottom:20px;}
.day-chip {padding:11px 5px 10px;border:1px solid var(--line);border-radius:13px;text-align:center;background:#18201d;color:var(--muted); min-width:0;}
.day-chip .day-name {font-size:10px;letter-spacing:.04em;font-weight:750;display:block;}
.day-chip .day-num {font-size:17px;color:var(--text);font-weight:800;display:block;margin:3px 0 0;}
.day-chip .day-dot {height:4px;width:4px;display:block;background:transparent;border-radius:50%;margin:6px auto 0;}
.day-chip.planned .day-dot {background:var(--accent2);}
.day-chip.today {border-color:#61744b;}
.day-chip.selected {background:var(--accent);border-color:var(--accent);color:#162018;}
.day-chip.selected .day-num {color:#162018;}
.day-chip.selected .day-dot {background:#162018;}
.day-chip.complete .day-dot {background:var(--accent);}
.session-head {display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px;}
.session-eyebrow {color:var(--accent);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.11em;}
.session-title {font-size:25px;letter-spacing:-.045em;font-weight:780;margin:1px 0 4px;}
.session-meta {color:var(--muted);font-size:12px;}
.progress-track {height:6px;border-radius:20px;background:#34413a;overflow:hidden;margin-top:16px;}
.progress-fill {height:100%;border-radius:20px;background:var(--accent);transition:width .2s;}
.pill {font-size:11px;padding:5px 9px;border-radius:100px;font-weight:750;background:#30402e;color:var(--accent);display:inline-flex;align-items:center;white-space:nowrap;}
.pill.gray {background:#2b332f;color:var(--muted);}
.pill.gold {background:#413a27;color:#ffdf9e;}
.ex-card {background:var(--panel);border:1px solid var(--line);border-radius:17px;overflow:hidden;margin:11px 0;}
.ex-head {padding:17px 17px 13px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.ex-name {font-size:16px;font-weight:780;letter-spacing:-.025em;margin:0 0 3px;}
.ex-details {font-size:12px;color:var(--muted);}
.ghost-icon {background:transparent;border:0;color:var(--muted);border-radius:9px;padding:5px 7px;font-size:20px;line-height:1;}
.ghost-icon:hover {background:#2b3830;color:white;}
.set-table {padding:0 15px 13px;}
.set-head,.set-row {display:grid;grid-template-columns:40px minmax(0,1.15fr) minmax(0,1fr) 56px 46px;gap:8px;align-items:center;}
.set-head {font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:750;color:var(--muted);padding:0 0 7px;text-align:center;}
.set-row {margin-bottom:8px;}
.set-index {border-radius:10px;background:#2b3630;text-align:center;padding:11px 0;font-size:12px;font-weight:800;color:var(--muted);}
.set-row input {padding:11px 6px;text-align:center;width:100%;font-weight:750;font-size:15px;background:#111715;}
.check-set {height:43px;border:1px solid var(--line);border-radius:11px;background:#111715;color:var(--muted);font-size:21px;}
.check-set.done {background:var(--accent);border-color:var(--accent);color:#152015;font-weight:900;}
.ex-bottom {display:flex;gap:9px;flex-wrap:wrap;align-items:center;border-top:1px solid #29332f;padding:10px 16px;background:#1c2521;}
.ex-bottom input {flex:1;min-width:130px;font-size:12px;padding:8px 10px;}
.ex-reco {font-size:11px;color:var(--accent);font-weight:650;}
.mini-btn {background:#2d3930;border:1px solid #425044;border-radius:9px;color:var(--text);padding:7px 10px;font-size:12px;font-weight:650;}
.mini-btn:hover {border-color:#75836e;}
.primary {border:1px solid var(--accent);background:var(--accent);color:#152014;border-radius:12px;padding:12px 17px;font-weight:800;letter-spacing:-.01em;}
.primary:hover {background:#e7ffad;}
.secondary {border:1px solid var(--line);background:#25312b;color:var(--text);border-radius:12px;padding:12px 16px;font-weight:700;}
.secondary:hover {background:#334137;}
.danger {color:var(--red);border-color:#69504e;}
.buttonrow {display:flex;gap:9px;flex-wrap:wrap;align-items:center;}
.wide {width:100%;}
.panel-title {font-size:16px;font-weight:800;margin:0 0 13px;}
.side-stack > * {margin-bottom:13px;}
.side-stack > *:last-child {margin-bottom:0;}
.simple-list {display:flex;flex-direction:column;gap:0;}
.list-row {display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #303934;}
.list-row:last-child {border:0;padding-bottom:0;}
.list-main {font-weight:700;font-size:13px;}
.list-meta {font-size:11px;color:var(--muted);margin-top:3px;}
.list-number {font-weight:800;font-size:14px;text-align:right;white-space:nowrap;}
.form-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;}
.form-field {display:flex;flex-direction:column;gap:6px;min-width:0;}
.form-field label {font-size:11px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-weight:800;}
.form-field input,.form-field select,.form-field textarea {width:100%;}
.full {grid-column:1/-1;}
.inline-note {color:var(--muted);font-size:12px;margin:8px 0 0;}
.info-card {background:#26322a;border:1px solid #485941;border-radius:15px;padding:14px 15px;color:#dce8d5;font-size:12px;}
.note-warning {color:var(--amber);}
.tip {font-size:13px;color:var(--muted);line-height:1.65;}
.tag {background:#29372f;border-radius:7px;padding:3px 7px;color:var(--accent);font-size:11px;font-weight:800;}
.empty {padding:25px 15px;text-align:center;color:var(--muted);font-size:13px;border:1px dashed #536252;border-radius:14px;}
.chart-wrap {padding:7px 0 0;}
.chart-bars {height:155px;display:flex;align-items:end;justify-content:space-around;gap:8px;padding:8px 7px 0;border-bottom:1px solid var(--line);}
.chart-col {height:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:end;position:relative;gap:3px;}
.chart-bar {width:min(34px,100%);background:#526948;border-radius:7px 7px 0 0;min-height:2px;}
.chart-bar.current {background:var(--accent);}
.chart-val {font-size:10px;color:var(--text);font-weight:750;white-space:nowrap;}
.chart-labels {display:flex;justify-content:space-around;gap:8px;padding:8px 7px;color:var(--muted);font-size:10px;font-weight:650;}
.chart-labels > span {flex:1;text-align:center;}
.large-number {font-size:38px;letter-spacing:-.05em;font-weight:820;line-height:1.2;}
.rule {border:0;border-top:1px solid var(--line);margin:16px 0;}
.target-meter {background:#2c382f;height:9px;border-radius:20px;overflow:hidden;margin:11px 0 5px;}
.target-meter > div {height:100%;background:var(--accent);border-radius:20px;}
.meal-row {display:grid;grid-template-columns:1fr auto;gap:15px;border-bottom:1px solid var(--line);padding:12px 0;align-items:center;}
.meal-row:last-child {border-bottom:0;}
.chat {display:flex;flex-direction:column;gap:13px;max-height:430px;overflow-y:auto;padding:12px 2px 18px;}
.bubble {max-width:92%;padding:13px 15px;border-radius:14px;background:#25302a;white-space:pre-wrap;font-size:13px;line-height:1.65;}
.bubble.user {align-self:flex-end;background:#d5ee91;color:#182116;}
.bubble.bot {align-self:flex-start;border:1px solid #3f5241;}
.chat-input {display:flex;gap:9px;align-items:end;}
.chat-input textarea {flex:1;min-width:0;resize:none;}
.chat-input button {align-self:stretch;}
.proposals {border:1px solid #61744a;border-radius:15px;padding:14px;margin-top:12px;background:#223126;}
.proposals li {margin:6px 0;color:#dbe8d3;font-size:12px;}
.modal {position:fixed;inset:0;z-index:15;background:#000b;display:flex;align-items:center;justify-content:center;padding:15px;}
.modal-dialog {width:min(490px,100%);max-height:calc(100dvh - 30px);overflow:auto;border:1px solid #5a6b5b;border-radius:21px;background:#1e2823;box-shadow:var(--shadow);padding:22px;}
.modal-head {display:flex;align-items:center;justify-content:space-between;margin-bottom:19px;}
.modal-head h2 {font-size:22px;}
.footer {padding:22px 0;text-align:center;font-size:11px;color:#7c8d80;}
.copyright {margin-top:6px;}
@media (max-width:900px) { .desktop-nav {gap:0;margin-left:8px;} .nav-btn {padding:9px;}.nav-btn span {display:none;} .grid2 {grid-template-columns:1fr;} .side-stack {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}.side-stack > * {margin:0;} }
@media (max-width:620px) { body {font-size:14px;} .shell {padding:0 14px 104px;} .top {min-height:68px;margin-bottom:24px;} .logo {font-size:20px;} .logo-mark {width:33px;height:33px;} .desktop-nav,.top-date {display:none;} .goal-tag {font-size:10px;padding:6px 9px;} .page-head {margin-bottom:17px;align-items:flex-start;} h1 {font-size:30px;} .stats {gap:7px;} .stat {padding:12px 11px;border-radius:13px;} .stat-value {font-size:24px;} .stat-label {font-size:9px;} .card {padding:17px;border-radius:17px;} .weekdays {gap:5px;margin-bottom:15px;} .day-chip {border-radius:11px;padding:9px 0 8px;} .day-chip .day-num {font-size:16px;} .day-chip .day-name {font-size:9px;} .ex-head {padding:15px 13px 11px;} .set-table {padding:0 11px 10px;} .set-head,.set-row {grid-template-columns:32px minmax(0,1.1fr) minmax(0,1fr) 42px 38px;gap:5px;} .set-index {padding:11px 0;} .session-title {font-size:23px;} .bottom-nav {display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;background:#151c19f5;backdrop-filter:blur(20px);padding:8px 8px calc(7px + env(safe-area-inset-bottom));border-top:1px solid #405042;z-index:10;} .bottom-item {display:flex;flex-direction:column;align-items:center;gap:2px;color:#9eafa0;padding:6px 1px;background:none;border:0;font-size:10px;font-weight:700;border-radius:10px;} .bottom-item.active {color:var(--accent);background:#273529;} .bottom-item svg {height:20px;width:20px;} .side-stack {grid-template-columns:1fr;} .form-grid {gap:10px;} .footer {padding-bottom:8px;} .modal {align-items:flex-end;padding:0;} .modal-dialog {border-radius:20px 20px 0 0;padding-bottom:calc(25px + env(safe-area-inset-bottom));max-height:93dvh;width:100%;} }
@media (prefers-reduced-motion:reduce) {*,*::before,*::after {scroll-behavior:auto!important;transition:none!important;} }
/* Version 2: running prescriptions, optional activity, recipe-first nutrition */
.hintline {margin-top:13px;padding:11px 12px;border-radius:11px;background:#263529;border:1px solid #3f523d;color:var(--accent);font-size:12px;line-height:1.5;}
.recipe-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:15px;}
.recipe-card {min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:18px;display:flex;flex-direction:column;gap:12px;}
.recipe-card h3 {font-size:19px;line-height:1.22;margin:0;}
.recipe-card .tip {margin:0;}
.recipe-top {display:flex;justify-content:space-between;align-items:start;gap:10px;}
.recipe-meta {display:flex;flex-wrap:wrap;gap:6px;}
.recipe-meta span {border:1px solid #455344;background:#25352a;border-radius:7px;padding:4px 7px;color:#e3ebdc;font-size:11px;white-space:nowrap;}
.recipe-card details {background:#111b16;border:1px solid #364439;border-radius:11px;padding:10px 12px;font-size:13px;}
.recipe-card details[open] {padding-bottom:15px;}
.recipe-card details h4 {font-size:12px;color:var(--accent);margin:16px 0 4px;}
.recipe-card details ul,.recipe-card details ol,.card details ul {padding-left:20px;}
.recipe-card details li,.card details li {margin:5px 0;line-height:1.55;}
.recipe-card > button:last-child {margin-top:auto;}
summary {cursor:pointer;font-weight:700;color:var(--accent);touch-action:manipulation;}
.choice-strip {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;}
.day-option {background:#25312b;border:1px solid #3a493d;border-radius:8px;padding:8px 3px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11px;color:var(--text);cursor:pointer;}
.day-option input {width:16px;height:16px;min-width:16px;padding:0;accent-color:#d5ee91;}
.checklabel {display:flex;flex-direction:row;align-items:flex-start;gap:10px;font-size:12px!important;text-transform:none!important;letter-spacing:normal!important;line-height:1.6;}
.checklabel input {width:18px;min-width:18px;height:18px;accent-color:#d5ee91;margin-top:1px;}
@media(max-width:730px){.recipe-grid{grid-template-columns:1fr;}}
@media(max-width:380px){.choice-strip{gap:2px}.day-option{padding:6px 2px}.recipe-card{padding:15px}.stat-value{font-size:20px}}

/* Version 3 — adaptive benchmark and milestone surfaces */
.insights-section{background:#1a2420;border:1px solid #3b4a3c;border-radius:18px;margin:0 0 16px;padding:19px;}
.insights-section.goals-section{background:#1b281e;border-color:#506548;}
.insights-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px;}
.insights-head h2{font-size:20px;line-height:1.24;}
.insights-head h2 small{font-size:14px;color:var(--muted);font-weight:600;}
.source-tag{font-size:11px;line-height:1.2;border:1px solid #4b6045;border-radius:30px;color:#d6e9cf;padding:7px 9px;white-space:nowrap;}
.bench-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.bench-item,.goal-item{background:#121b17;border:1px solid #39483b;border-radius:12px;padding:13px;min-width:0;}
.bench-label,.goal-title{font-weight:750;color:#adc5a9;text-transform:uppercase;letter-spacing:.045em;font-size:10px;}
.bench-value{font-size:25px;font-weight:820;letter-spacing:-.045em;margin-top:8px;line-height:1.15;}
.bench-value small{color:var(--muted);font-size:12px;font-weight:650;letter-spacing:0;}
.bench-detail{font-size:11px;color:var(--muted);line-height:1.55;margin-top:7px;}
.insight-footer{margin-top:13px;font-size:11px;line-height:1.65;color:var(--muted);}
.goal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.goal-target{font-size:17px;font-weight:780;margin-top:6px;overflow-wrap:anywhere;}
.jump-today{background:var(--accent)!important;color:#162018!important;border-color:var(--accent)!important;font-weight:780!important;}
.jump-today:disabled{opacity:.38;cursor:default;}
.external-link{display:inline-flex;color:var(--accent);font-size:13px;margin-top:5px;font-weight:700;}
@media(max-width:700px){.bench-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.insights-section{padding:14px;}.bench-value{font-size:21px;}.source-tag{font-size:10px;padding:6px 8px;}.insights-head h2{font-size:17px;}}
@media(max-width:420px){.goal-grid{grid-template-columns:1fr;}.date-nav .mini-btn{font-size:11px;}.date-nav input[type=date]{max-width:130px!important;}.bench-item,.goal-item{padding:11px;}}

.insight-fold{margin:0 0 17px;border:1px solid #405040;background:#19241e;border-radius:15px;overflow:hidden;}
.insight-fold summary{padding:13px 16px;font-size:12px;font-weight:780;color:var(--accent);display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer;}
.insight-fold summary span{font-size:10px;color:var(--muted);font-weight:620;white-space:nowrap;}
.insight-fold[open] summary{border-bottom:1px solid #334535;}
.insight-fold[open] summary span{display:none;}
.insight-fold-body{padding:13px;}
.insight-fold-body .insights-section:last-child{margin-bottom:0;}
@media(max-width:620px){.insight-fold summary{padding:12px 13px;}.insight-fold-body{padding:8px;}}

/* v4 cloud sync controls */
#cloud-panel .form-field { max-width:500px; }
#cloud-panel .buttonrow button { min-height:42px; }
