/* Monochrome, mobile-first workspace. */
:root{--green:#171717;--sage:#eeeeee;--ink:#171717;--muted:#626262;--paper:#f5f5f5;--line:#dedede;color-scheme:light}body{background:#f5f5f5;color:#171717;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;padding-bottom:0}h1,h2,h3,.brand{font-family:inherit}h1{font-size:clamp(26px,4vw,38px);text-transform:none;letter-spacing:-1px;font-weight:750}.small{color:#676767;letter-spacing:1.4px}.card{background:#fff;border:1px solid #dedede;border-radius:16px;box-shadow:none}.stat{font-family:inherit;font-size:30px;font-weight:750;color:#171717}.unit{color:#666}.tag{background:#f0f0f0;color:#333;border:1px solid #e1e1e1}.note{background:#ededed;border:1px solid #dedede;color:#383838;border-radius:12px}.meal{border-top:1px solid #dedede}.meal .recipe{background:#f6f6f6;border:0;color:#333}.primary,.days button.active,.filters button.active{background:#191919;color:#fff;border-color:#191919}.primary:hover{background:#353535;color:white}button,.btn{background:#fff;color:#222;border:1px solid #d2d2d2;border-radius:10px;min-height:44px;font-weight:600}button:hover,.btn:hover{background:#ededed;color:#111}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{background:#fff;color:#171717;border:1px solid #c9c9c9;border-radius:8px;font:inherit;min-height:44px;padding:10px;max-width:100%}input[type=checkbox]{accent-color:#222;min-height:20px}progress{accent-color:#222}.hero{background:#1b1b1b;border:0;color:white;border-radius:18px;min-height:230px}.hero:after{display:none}.hero h2{font-size:30px;font-weight:700}.hero p{color:#ccc}.hero .small{color:#c7c7c7}.hero .btn{background:white;color:#111}.ring{border-color:#454545;border-top-color:#fff;border-right-color:#fff;color:white}.ring small{color:#ddd}.danger{color:#963e36}.chart polyline,.chart circle{stroke:#222}.chart circle{fill:#222}.chart text{fill:#555}.check{border-color:#e4e4e4}dialog{background:#fff;color:#171717;border:1px solid #ddd;box-shadow:0 20px 80px #0004}dialog::backdrop{background:#0008}::selection{background:#333;color:white}#toast{background:#222;color:white;font-weight:500;left:auto;right:24px;bottom:24px;max-width:480px}.update-banner{background:#ddd;color:#111;left:20px;right:20px;bottom:20px}.update-banner button{background:#222;color:#fff}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible{outline:3px solid #727272;outline-offset:3px}
main{margin-left:0;max-width:1400px;margin-right:auto;margin-left:auto;padding:0 32px}header{position:sticky;top:0;z-index:6;height:78px;background:#f5f5f5f5;backdrop-filter:blur(12px);display:flex;gap:14px;border-bottom:1px solid #ddd;padding-top:env(safe-area-inset-top)}header #date{margin-right:auto;font-size:13px}.menu-toggle{width:46px;height:44px;display:flex;align-items:center;justify-content:center;padding:10px;flex:none}.menu-toggle svg{width:22px;height:22px}.top-logo{font-weight:750;font-size:16px;white-space:nowrap;letter-spacing:-.6px}.top-logo small{font-size:9px;font-weight:500;display:block;letter-spacing:1.3px;color:#777}.header-actions{display:flex;gap:8px}.header-actions button{font-size:12px}.menu-overlay{position:fixed;inset:0;background:#0007;z-index:39;border:0;border-radius:0;width:100%;height:100%}.menu-overlay:hover{background:#0007}aside#drawer{position:fixed;inset:0 auto 0 0;z-index:40;width:min(320px,86vw);height:100dvh;padding:30px 20px calc(25px + env(safe-area-inset-bottom));background:#1b1b1b;color:#fff;border:0;transform:translateX(-110%);transition:transform .2s ease;display:flex;flex-direction:column;box-shadow:10px 0 50px #0003;visibility:hidden}body.menu-open aside#drawer{transform:translateX(0);visibility:visible}body.menu-open{overflow:hidden}.drawer-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.drawer-top .brand{color:white;font-size:17px;margin:0;display:flex;align-items:center;gap:10px}.brand-mark{background:#fff!important;color:#111!important;transform:none;border-radius:9px;font-size:19px;width:36px;height:36px}.drawer-top button{background:#303030;color:white;border-color:#4b4b4b}.drawer-caption{font-size:10px;color:#aaa;letter-spacing:1.8px;padding:8px 12px}aside#drawer nav{position:static;display:block;overflow:auto;margin-top:10px;flex:1;padding:0;background:none;border:0;box-shadow:none;backdrop-filter:none}aside#drawer nav a{display:block;color:#bdbdbd;padding:14px;margin-bottom:5px;border:0;border-radius:9px;font-size:14px;white-space:normal}aside#drawer nav a.active{background:#fff;color:#111;border:0}aside#drawer .aside-bottom{position:static;font-size:11px;color:#aaa;padding:18px 12px 0;border-top:1px solid #444;line-height:1.8;display:block;letter-spacing:0}.intro{margin-bottom:22px}.intro p{max-width:700px}footer{color:#777;border-color:#ddd}#connection{background:#f1eee6;color:#4c452f;border-color:#dcd5c5}.quick-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.quick-links .btn{background:#fafafa}#app .space{scroll-margin-top:100px}
.body-picker{display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,1fr);gap:24px}.silhouettes{display:flex;gap:12px;justify-content:center;align-items:start}.body-figure{margin:0;text-align:center;flex:1;max-width:220px}.body-figure svg{width:100%;max-height:440px}.body-figure figcaption{font-size:12px;color:#666;margin-bottom:10px}.body-outline{fill:#e3e3e3;stroke:#bdbdbd;stroke-width:1.2}.muscle-zone{fill:#c5c5c5;stroke:#fff;stroke-width:1.3;cursor:pointer;transition:fill .12s}.muscle-zone:hover{fill:#818181}.muscle-zone.selected{fill:#272727;stroke:#fff;stroke-width:2}.muscle-zone:focus{outline:none;stroke:#111;stroke-width:3}.muscle-buttons{display:flex;flex-wrap:wrap;gap:8px}.muscle-buttons button.active{background:#222;color:white}.body-choice{border-bottom:1px solid #ddd;padding:16px 0}.body-choice:last-child{border-bottom:0}.step-number{font-size:64px;line-height:1.1;font-weight:750;letter-spacing:-3px;margin:20px 0 10px}.steps-source{font-size:12px;color:#666}.steps-days{display:flex;gap:10px;overflow:auto;margin-top:20px}.step-day{min-width:85px;flex:1;text-align:center;padding:14px 8px;border:1px solid #e1e1e1;border-radius:10px}.step-day b{display:block;margin-top:10px}.chat-thread{min-height:180px;max-height:520px;overflow:auto;display:flex;flex-direction:column;gap:16px;margin:20px 0}.bubble{max-width:90%;padding:16px 18px;border-radius:14px;background:#eee;white-space:pre-wrap;line-height:1.7;align-self:flex-start;font-size:14px}.bubble.user{background:#252525;color:#fff;align-self:flex-end}.chat-compose{display:flex;gap:10px;align-items:end}.chat-compose textarea{width:100%;resize:vertical;min-height:80px}.chat-compose button{flex:none}.topic-pills{display:flex;flex-wrap:wrap;gap:8px}.topic-pills button{font-weight:500;font-size:12px}.small-status{font-size:12px;color:#666;margin-top:12px}.faq-list button{text-align:left;width:100%;margin-top:10px}.empty-state{padding:35px 0;text-align:center;color:#777}[hidden]{display:none!important}
@media(max-width:720px){body{padding-bottom:env(safe-area-inset-bottom)}main{padding:0 16px}header{height:calc(74px + env(safe-area-inset-top));gap:10px}header #date{display:none}.top-logo{margin-right:auto;font-size:15px}.header-actions button{padding:8px 10px;font-size:11px}.header-actions .install-label{display:none}#app{padding-top:24px}h1{font-size:28px}.hero{min-height:0;padding:23px}.hero h2{font-size:25px}.four .card{padding:15px}.stat{font-size:25px}.body-picker{grid-template-columns:1fr}.silhouettes{max-width:410px;margin:auto;gap:20px}.body-figure svg{max-height:375px}.body-picker .card{padding:20px}.step-number{font-size:56px}.chat-compose{flex-direction:column;align-items:stretch}.chat-compose button{width:100%}.bubble{max-width:96%}#toast{left:16px;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));max-width:none}.update-banner{bottom:calc(18px + env(safe-area-inset-bottom))}.intro{gap:12px}.days button{padding:10px 13px}}
@media(prefers-reduced-motion:reduce){aside#drawer,.muscle-zone{transition:none}}@media print{aside#drawer,.menu-overlay,header,.quick-links{display:none!important}main{margin:0;padding:0}.body-picker{display:block}.card{box-shadow:none}.bubble{max-width:100%}}

/* Recipe sheets: real food imagery, scannable ingredients and numbered method. */
.meal-visual{margin:20px 0;overflow:hidden;border-radius:12px;background:#eee}
.meal-visual img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.meal-visual figcaption{padding:7px 10px;color:#666;background:#f4f4f4;font-size:10px;line-height:1.5}
.recipe-content{display:grid;gap:20px;margin-top:24px}
.recipe-content h3{margin:0 0 10px;font-size:16px}
.recipe-content p{margin:8px 0;line-height:1.6}
.recipe-content .ingredient-list{list-style:none;padding:0;margin:12px 0}
.ingredient-list li{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #e9e9e9;padding:9px 0;line-height:1.5}
.ingredient-list b{white-space:nowrap}
.recipe-steps{margin:0;padding-left:23px;line-height:1.7}
.recipe-steps li{padding:0 0 10px 5px}
.recipe-steps li::marker{font-weight:700;color:#171717}
.recipe-tip{background:#f1f1f1;color:#272727;border:1px solid #e2e2e2;border-left:3px solid #333;border-radius:10px;padding:16px;box-shadow:none}
.meal,.recipe-card{min-width:0;align-self:start}
.recipe-card>label{display:block;margin:16px 0}
@media print{.meal-visual{max-width:300px}.recipe-content{gap:12px}.meal,.recipe-card{break-inside:auto}}

/* Illustrated exercise library and session builder. */
.exercise-visual{margin:12px 0 0;min-width:0}
.exercise-crop{display:block;position:relative;overflow:hidden;aspect-ratio:1;background:#e5e5e5;border-radius:12px}
.exercise-crop img{display:block;position:absolute;width:200%;height:200%;max-width:none;object-fit:fill}
.exercise-visual figcaption{font-size:10px;line-height:1.45;color:#666;margin-top:7px;letter-spacing:0;text-transform:none}
.exercise-visual.large{max-width:560px;margin:18px auto}
.exercise{grid-template-columns:160px minmax(0,1fr) auto;align-items:start}
.exercise-media{min-width:0}
.exercise>.actions{max-width:175px;display:grid}
.exercise-library{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.exercise-option{padding:0;overflow:hidden;min-width:0}
.exercise-option .exercise-visual{margin:0}
.exercise-option .exercise-crop{border-radius:0}
.exercise-option .exercise-visual figcaption{margin:10px 22px 0}
.exercise-option-body{padding:20px 22px 24px}
.exercise-option.is-selected{border-color:#222;box-shadow:0 0 0 1px #222}
.exercise-option h3{margin:0;font-size:20px;line-height:1.3}
.exercise-option p{line-height:1.65}
.exercise-library-title{margin-bottom:18px;flex-wrap:wrap}
.session-builder{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.session-builder>div{flex:1;min-width:200px}
.session-builder h3{margin:0}
.session-builder label{display:grid;gap:5px;min-width:150px}
.muscle-count{display:inline-flex;margin-left:9px;min-width:20px;justify-content:center;font-size:11px;opacity:.7}
@media(max-width:900px){.exercise{grid-template-columns:125px minmax(0,1fr)}.exercise>.actions{grid-column:2;display:flex;max-width:none;flex-wrap:wrap}.exercise-library{gap:14px}}
@media(max-width:600px){.exercise{grid-template-columns:1fr;gap:16px}.exercise-media{display:flex;gap:12px;align-items:start}.exercise-media>.tag{margin-top:10px}.exercise-media .exercise-visual{margin:0;width:min(230px,75%)}.exercise>.actions{grid-column:1;display:flex}.exercise-library{grid-template-columns:1fr}.session-builder{gap:16px}.session-builder>button,.session-builder>label{width:100%}.exercise-option-body{padding:18px}.exercise-library-title h2{margin-bottom:0}}
@media print{.exercise-visual{max-width:160px}.exercise-library{grid-template-columns:repeat(2,1fr)}.exercise-option .exercise-visual{max-width:200px}.session-builder{display:none}}

.program-sessions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:20px 0}.program-session{text-align:left;display:flex;gap:12px;padding:18px 14px;align-items:start}.program-session b{display:block;font-size:17px;letter-spacing:.4px}.program-session small{display:block;white-space:normal;font-size:11px;line-height:1.6;margin-top:6px;letter-spacing:0}.session-number{font-size:11px;color:#777;padding-top:4px}.program-session.active{border-color:#222;background:#eee}.session-focus{max-width:850px}.training-history-scroll{overflow:auto}.training-history-scroll td{min-width:85px}@media(max-width:1100px){.program-sessions{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.program-sessions{grid-template-columns:1fr}.program-session{padding:15px}.program-session small{margin-top:2px}.program-session b{font-size:18px}}

/* Recipe library: bounded gallery and illustrative food atlas. */
.recipe-atlas{width:100%;aspect-ratio:1;background-size:400% 300%;background-repeat:no-repeat;border-radius:12px}
.recipe-filters{display:flex;gap:16px;flex-wrap:wrap;align-items:end}.recipe-filters label{flex:1;min-width:160px}
.recipe-card details{margin:16px 0}.recipe-card summary{cursor:pointer;font-weight:700;padding:12px 0}.recipe-card .primary{width:100%;margin-top:14px}.recipe-card .meal-visual{max-width:360px;margin-left:auto;margin-right:auto}

.weekly-scroll{overflow-x:auto}.weekly-menu table{width:100%;min-width:620px;text-align:left}.weekly-menu th,.weekly-menu td{vertical-align:top;padding:12px 8px}.weekly-dish{background:transparent;border:0;text-align:left;line-height:1.45;padding:4px;color:inherit}.weekly-menu .current-day{background:rgba(128,128,128,.12)}

.recipe-photo{width:100%;aspect-ratio:1;background-size:400% 400%;background-repeat:no-repeat;border-radius:12px}

/* v20: single-column lists, page scrolling, compact day selection. */
.vertical-list,.exercise-library.vertical-list{display:flex;flex-direction:column;gap:20px;min-width:0;overflow:visible;scroll-snap-type:none}
.vertical-list>.card{width:100%;min-width:0;max-width:100%}
.day-picker{display:grid;gap:6px;max-width:360px;margin:20px 0;font-weight:600}
.day-picker select{width:100%}
.body-picker{grid-template-columns:minmax(0,1fr)}
.body-picker .silhouettes{max-width:520px;margin:auto}
.meal-list .meal-visual,.recipe-list .meal-visual{max-width:420px;margin-left:auto;margin-right:auto}
.exercise-option .exercise-visual{max-width:320px;margin:0 auto}
.exercise-option .exercise-crop{border-radius:12px}
.workout-list .exercise{grid-template-columns:minmax(0,1fr)}
.workout-list .exercise>.actions{grid-column:1;display:flex;max-width:none;flex-wrap:wrap}
.workout-list .exercise-media{display:flex;align-items:start;gap:12px}
.workout-list .exercise-media .exercise-visual{width:min(260px,80%);margin:0}
.workout-list .exercise .row{flex-wrap:wrap;justify-content:flex-start;gap:16px}
@media(max-width:600px){.vertical-list,.exercise-library.vertical-list{gap:16px}.day-picker{max-width:none}}
