:root{--ink:#183c32;--muted:#6b7771;--paper:#f6f5ef;--card:#fffefa;--line:#e2e5db;--sage:#e4ecd9;--orange:#d4773b;--red:#9b332c;--shadow:0 12px 45px #183c3210;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:10px;padding:10px 16px;background:var(--card);color:var(--ink);font-weight:600;transition:background .15s,transform .15s}button:hover{background:var(--sage)}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d4773b;outline-offset:3px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #cbd3c7;border-radius:8px;color:var(--ink);background:#fff;min-height:44px}textarea{resize:vertical;min-height:82px}label{display:block;font-size:13px;font-weight:600;margin:14px 0 0}label input,label select,label textarea{margin-top:5px}input[type=checkbox]{width:18px;min-height:18px;margin:0 8px 0 0;vertical-align:middle;accent-color:var(--ink)}input[type=date]{max-width:180px}a{color:var(--ink)}h1,h2,h3,p{margin-top:0}h1{font-size:36px;line-height:1.18;font-weight:650;letter-spacing:-1.1px;margin-bottom:10px}h2{font-size:23px;line-height:1.3;letter-spacing:-.4px}h3{font-size:16px;margin-bottom:6px}p{margin-bottom:14px}small,.small{font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.7px}.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.primary:hover{background:#2d5748}.secondary{background:var(--sage);border-color:var(--sage)}.danger{color:var(--red)}.text-button{background:none;border:0;padding:4px 0;text-align:left}.icon-button{width:36px;height:36px;padding:0;font-size:24px;border:0;background:transparent}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spread{display:flex;align-items:center;justify-content:space-between;gap:16px}.wordmark{font-weight:800;font-size:39px;letter-spacing:-2px;text-decoration:none;line-height:1.2}.wordmark span{font-size:10px;color:var(--orange);margin-left:4px}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{padding:34px 24px 24px;background:var(--card);border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar nav{margin-top:42px;display:grid;gap:7px}.sidebar nav button{text-align:left;border:0;padding:12px;background:transparent;font-weight:500;font-size:13px}.sidebar nav button.active{background:var(--sage);font-weight:700}.sidebar-bottom{margin-top:auto;padding-top:24px}.account{border-top:1px solid var(--line);padding-top:20px;display:flex;gap:10px;align-items:center;font-size:12px}.account button{display:block}.avatar{display:grid;place-items:center;background:var(--sage);border-radius:50%;width:38px;height:38px;font-weight:750}main{padding:0 42px;max-width:1550px;width:100%;min-width:0}.badge{display:inline-block;font-size:10px;font-weight:650;background:var(--sage);padding:5px 9px;border-radius:20px;white-space:nowrap}.badge.planned{background:#f4e7d4;color:#805227}.badge.eaten{background:#e0eadb}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px}.page-heading p{color:var(--muted);margin:0}.date-controls{display:flex;align-items:center;gap:6px}.date-controls button{padding:8px 12px}.grid{display:grid;gap:20px}.two-col{grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr)}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 2px 6px #183c3203}.card>h2{margin-bottom:18px}.energy-card{display:grid;grid-template-columns:1fr 1.2fr;gap:28px;align-items:center;margin-bottom:20px}.energy-number{font-size:54px;line-height:1.1;letter-spacing:-2px;font-weight:650;margin:12px 0}.energy-number small{font-size:16px;letter-spacing:0;font-weight:400}.energy-meta{display:flex;gap:18px;margin-top:20px}.energy-meta span{display:block;font-size:11px;color:var(--muted)}.energy-meta strong{font-size:15px}.macro-row{margin-bottom:16px}.macro-row:last-child{margin:0}.macro-row .spread{font-size:12px}.macro-row .spread span{color:var(--muted)}meter{width:100%;height:8px;display:block;border:0;border-radius:8px;background:#e9ede3;margin-top:9px}meter::-webkit-meter-bar{height:8px;background:#e9ede3;border:0;border-radius:8px}meter::-webkit-meter-optimum-value{background:#728e59;border-radius:8px}.protein meter::-webkit-meter-optimum-value{background:#c99058}.fat meter::-webkit-meter-optimum-value{background:#8b9eb1}.macro-note{font-size:11px;color:var(--muted);margin:6px 0 0}.section-heading{margin:30px 0 16px}.section-heading h2{margin:0}.meal-card{margin-bottom:14px;padding:18px 22px}.meal-header{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:3px}.meal-header h3{font-size:14px;margin:0}.meal-header span{font-size:11px;color:var(--muted)}.entry{display:grid;grid-template-columns:1fr auto;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.entry:last-child{border-bottom:0;padding-bottom:4px}.entry-name{font-size:14px;font-weight:600;margin-bottom:4px;overflow-wrap:anywhere}.entry-detail{font-size:11px;color:var(--muted)}.entry-right{text-align:right;min-width:95px}.entry-right strong{font-size:14px}.entry-right .actions{justify-content:flex-end;margin-top:6px}.entry-right button{font-size:11px;padding:4px 7px}.empty-meal{padding:10px 0 0;font-size:12px;color:var(--muted);margin:0}.empty{padding:45px 24px;text-align:center;border:1px dashed #c6d0bd;border-radius:14px}.empty h3{font-size:19px}.empty p{font-size:13px;color:var(--muted);max-width:380px;margin:0 auto 18px}.training-card{background:var(--sage);border-color:#d9e2cd}.training-card .eyebrow{color:#577043}.workout{padding:14px 0;border-bottom:1px solid #cbd7c0}.workout:last-child{border:0;padding-bottom:0}.workout h3{font-size:14px}.workout p{font-size:12px;margin-bottom:7px;color:#4d6557}.small-card{margin-top:18px}.note-box{font-size:12px;background:#f2eedf;border-radius:9px;padding:12px 14px;line-height:1.6}.note-box p:last-child{margin-bottom:0}.suggestion{padding-top:12px;border-top:1px solid var(--line);margin-top:12px}.suggestion h3{font-size:14px}.suggestion p{font-size:12px;color:var(--muted)}.suggestion button{font-size:12px;padding:7px 12px}.search-bar{display:flex;align-items:center;gap:12px;margin-bottom:20px}.search-bar input{max-width:480px}.filter-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0}.filter-tabs button{font-size:12px;border-radius:20px;padding:7px 14px}.filter-tabs button.active{background:var(--ink);color:#fff}.food-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:16px}.food-card{padding:20px;display:flex;flex-direction:column}.food-card h3{font-size:17px;margin:14px 0 3px}.food-card .actions{margin-top:auto;padding-top:16px}.food-card .macro-preview{font-size:12px;margin:14px 0;color:var(--muted)}.food-card .actions button{font-size:12px}.favourite{font-size:21px;line-height:1;color:#9d6b23;padding:4px 8px;border:0;background:transparent}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-grid.three{grid-template-columns:repeat(3,1fr)}.form-grid.four{grid-template-columns:repeat(4,1fr)}.form-section{padding-top:14px;margin-top:20px;border-top:1px solid var(--line)}.form-section h3{margin-bottom:4px}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.help{font-size:11px;color:var(--muted);margin:7px 0 0}.settings-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:24px}.stack>*+*{margin-top:20px}.status-line{font-size:12px;border-top:1px solid var(--line);padding:10px 0;margin:0}.status-line strong{display:block}.scroll-table{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);padding:12px 10px;border-bottom:1px solid var(--line)}td{padding:14px 10px;border-bottom:1px solid var(--line)}.progress-chart{display:flex;height:130px;gap:5px;align-items:flex-end;margin:20px 0 12px}.chart-column{flex:1;min-width:4px;height:100%;display:flex;align-items:flex-end}.chart-bar{width:100%;background:#8ea278;border-radius:4px 4px 0 0;min-height:3px}.chart-bar.partial{background:#d8b690}.chart-bar.unknown{background:#d8ddd2}.chart-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.ingredient-row{display:grid;grid-template-columns:1fr 100px 36px;align-items:end;gap:10px}.ingredient-row button{margin-bottom:4px}.preview-list{margin-top:18px;font-size:13px}.preview-list p{padding:8px 0;border-bottom:1px solid var(--line);margin:0}.check-label{font-size:12px;font-weight:400}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.login-story{background:var(--ink);color:#f0f1df;padding:48px 58px;display:flex;flex-direction:column;justify-content:space-between}.login-story .wordmark{color:#f0f1df}.login-story h1{font-size:56px;font-weight:500;letter-spacing:-2px;line-height:1.13}.login-story>div>p:last-child{color:#c3d3bd;font-size:16px;line-height:1.8}.login-story .eyebrow{color:#d3c799;margin-bottom:24px}.login-story>.small{color:#a9bea5}.login-panel{padding:50px;display:grid;place-items:center}.login-panel form{max-width:340px;width:100%}.login-panel h2{font-size:31px;margin:12px 0}.login-panel .primary{width:100%;margin:22px 0 12px;text-align:left;display:flex;justify-content:space-between}.login-panel form>p{font-size:13px}.login-panel .eyebrow{font-size:10px}dialog{width:calc(100% - 32px);max-width:650px;max-height:calc(100% - 50px);overflow:auto;border:1px solid var(--line);border-radius:18px;padding:25px 28px;background:var(--card);color:var(--ink);box-shadow:0 30px 120px #0003}dialog::backdrop{background:#122e2466;backdrop-filter:blur(3px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px}.modal-heading h2{margin:0}.error{font-size:13px;color:var(--red);margin:12px 0 0;white-space:pre-wrap}.notice{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:12px 15px;background:var(--ink);color:#fff;border-radius:12px;box-shadow:var(--shadow);z-index:5;font-size:13px}.notice button{background:transparent;color:#fff;border-color:#527265;padding:3px 8px;font-size:12px}.notice span{min-width:0;overflow-wrap:anywhere}code{font-size:12px;overflow-wrap:anywhere;word-break:break-all}.token-box{padding:14px;border:1px solid var(--line);border-radius:9px;background:#f0f3e9;user-select:all;white-space:pre-wrap;overflow-wrap:anywhere}[hidden]{display:none!important}.loading{padding:40px;color:var(--muted)}@media(min-width:1450px){main{padding:0 65px}.sidebar{padding-left:32px;padding-right:28px}}@media(max-width:1050px){main{padding:0 25px}.shell{grid-template-columns:195px 1fr}.sidebar{padding:30px 16px}.two-col,.settings-grid{grid-template-columns:1fr}.aside-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.aside-grid>.small-card{margin-top:0}.energy-card{gap:18px}.login-story{padding:40px}.login-story h1{font-size:44px}}@media(max-width:700px){.shell{display:block}.sidebar{height:auto;position:static;padding:18px 20px 10px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .wordmark{font-size:29px}.sidebar-bottom{display:none}.sidebar nav{display:flex;overflow:auto;margin-top:13px;gap:4px;padding-bottom:5px}.sidebar nav button{white-space:nowrap;padding:8px 11px;font-size:12px}main{padding:0 18px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:20px}h1{font-size:29px}.date-controls{width:100%}.date-controls input{flex:1;min-width:0;max-width:none}.card{padding:20px}.energy-card{grid-template-columns:1fr;gap:24px}.energy-number{font-size:48px}.energy-meta{margin-top:12px}.energy-card>div:first-child{border-bottom:1px solid var(--line);padding-bottom:18px}.aside-grid{display:block}.aside-grid>.small-card{margin-top:18px}.meal-card{padding:16px}.food-grid{grid-template-columns:1fr}.search-bar{flex-wrap:wrap}.form-grid.four{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:1fr 1fr}.login-layout{display:block}.login-story{padding:28px 25px;min-height:290px;gap:30px}.login-story h1{font-size:36px}.login-story>div>p:last-child,.login-story>.small{display:none}.login-story .eyebrow{margin-bottom:14px}.login-panel{padding:34px 25px}.login-panel form{max-width:420px}.login-panel h2{font-size:27px}dialog{padding:22px 20px;max-height:calc(100% - 24px)}.notice{bottom:14px;width:calc(100% - 28px)}.entry-right .actions{gap:4px}.ingredient-row{grid-template-columns:1fr 78px 30px;gap:6px}.ingredient-row select{font-size:12px}}

/* Reusable meals share the food library's typography and controls. */
.saved-meal{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;border-bottom:1px solid var(--line)}
.saved-meal>div:first-child{min-width:0}.saved-meal h2{font-size:20px;margin-bottom:6px}.saved-meal p{margin-bottom:8px;overflow-wrap:anywhere}.saved-meal .actions{flex-shrink:0}.saved-meal .macro-preview{font-size:13px;font-variant-numeric:tabular-nums}
.meal-ingredient{display:grid;grid-template-columns:minmax(0,1fr) 130px 44px;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.meal-ingredient strong,.meal-ingredient span{display:block;overflow-wrap:anywhere}.meal-ingredient label{margin:0}.meal-ingredient button{min-height:44px;padding:8px}.meal-nutrition-preview{font-size:13px;font-variant-numeric:tabular-nums;margin:16px 0}
@media(max-width:700px){.saved-meal{align-items:flex-start;flex-direction:column;gap:8px}.meal-ingredient{grid-template-columns:minmax(0,1fr) 44px;gap:8px}.meal-ingredient>div{grid-column:1/-1}.meal-ingredient label{min-width:0}#recipe-form input,#recipe-form select,#recipe-form textarea{font-size:16px}}

/* One entry point for target requirements; use the diary's existing palette. */
.target-warning{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;text-align:left;font-weight:400}
.target-warning strong{display:block;font-size:16px;margin-bottom:4px}.target-warning .small{display:block}
.target-warning:hover{background:var(--sage)}
.target-training{margin-top:24px}.target-training>h3{margin-bottom:12px}
.target-session{border:0;border-top:1px solid var(--line);padding:12px 0 18px;margin:0;min-width:0}
.target-session legend{font-weight:650;padding:0 8px 0 0;overflow-wrap:anywhere}.target-session p:last-child{margin-bottom:0}
.target-hint{margin:4px 0 8px}#target-inputs-form .form-actions{flex-wrap:wrap}
@media(max-width:600px){#target-inputs-form input,#target-inputs-form select{font-size:16px}}

.target-calorie-review{margin:16px 0}.target-calorie-review summary{cursor:pointer;font-weight:600;padding:8px 0}
.meal-pattern-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px;flex-wrap:wrap}
.meal-targets{overflow-x:auto;margin:-6px 0 16px}.meal-targets table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}
.meal-targets th,.meal-targets td{text-align:right;padding:5px 6px;border:0;white-space:nowrap}.meal-targets th:first-child{text-align:left;padding-left:0;font-weight:500}
.meal-targets thead{color:var(--muted)}.meal-targets tbody tr:not(.meal-target-row){color:var(--muted)}.meal-target-row{font-weight:650}
.meal-pattern-library{margin-bottom:32px}.pattern-meal{margin-top:24px}.meal-share-totals{font-variant-numeric:tabular-nums;background:var(--sage);padding:12px;margin-top:16px;border-radius:8px}
@media(max-width:600px){#meal-pattern-form input,#choose-meal-pattern-form select{font-size:16px}.meal-targets th,.meal-targets td{padding:4px}.meal-targets table{font-size:11px}}

.fuel-totals{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px 0;border-block:1px solid var(--line);margin-bottom:12px}.fuel-totals strong,.fuel-totals span{display:block}.fuel-totals strong{font-size:20px;font-variant-numeric:tabular-nums}
.fuel-entries{margin-top:20px}.fuel-entry{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.fuel-entry p{margin:4px 0}
input[readonly]{background:var(--paper)}
@media(max-width:600px){#entry-form input,#entry-form select,#food-form input{font-size:16px}.fuel-totals strong{font-size:18px}}

.ai-context{max-height:55vh;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;background:var(--paper);padding:16px;border-radius:8px}
#ai-settings-form input{max-width:100%}



@media(max-width:600px){#ai-settings-form input,#ai-settings-form select{font-size:16px}}

.timing-summary{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 20px;padding:12px 0;border-block:1px solid var(--line)}.timing-summary>span{display:grid;gap:4px}.timing-summary button{flex-shrink:0}.timing-window{padding:18px 0;border-bottom:1px solid var(--line)}.timing-window p:last-child{margin-bottom:0}.timing-issue{margin:16px 0}.timing-issue p{margin-bottom:4px}
@media(max-width:600px){.timing-summary{align-items:flex-start;flex-direction:column;gap:6px}.timing-summary button{min-height:44px}}

/* Keep the diary focused on intake, targets and training. */
main{padding-top:32px;padding-bottom:48px}
.card{box-shadow:none}
.settings-grid{align-items:start}
.card-heading{margin-bottom:18px}.card-heading h2{margin:0}
.demo-banner{font-size:12px;padding:10px 14px;background:var(--sage);border-radius:8px;margin-bottom:24px}
.optional-fields{margin-top:16px;border-top:1px solid var(--line)}
summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:13px;font-weight:600}
summary:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:4px}
.optional-fields[open]>summary{padding-bottom:0}
.optional-fields label:first-of-type{margin-top:10px}
.check-label{display:flex;align-items:center;min-height:44px;margin-top:6px}
.check-label input{flex-shrink:0}
.icon-button{width:44px;height:44px}
.text-button,.entry-right button,.favourite{min-height:44px}
.entry-detail{margin-bottom:0}
.meal-targets{margin:8px 0 12px}
.food-card h3{margin-top:8px}
@media(max-width:700px){
  main{padding-top:24px;padding-bottom:32px}
  input,select,textarea{font-size:16px}
}
@media(prefers-reduced-motion:reduce){button{transition:none}}

.target-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.workout .actions{gap:16px}
.macro-track{height:8px;margin-top:9px;border-radius:8px;background:#e9ede3}
.macro-track.pending{background:repeating-linear-gradient(135deg,#e9ede3 0 5px,#dce2d5 5px 7px)}

.tagline{font-size:12px;color:var(--muted);margin-top:10px}
.sidebar nav button span{display:inline-block;width:26px;font-size:18px}
.sidebar-bottom>p{color:var(--muted);padding:16px 0}
.food-search-results{max-height:300px;overflow:auto;margin-top:12px;border-block:1px solid var(--line);overscroll-behavior:contain}
.food-search-results h3{font-size:12px;margin:12px 0 4px;color:var(--muted)}
.food-search-result{display:block;width:100%;text-align:left;background:transparent;border:0;border-radius:6px;padding:10px 8px;min-height:44px}
.food-search-result strong,.food-search-result span{display:block;overflow-wrap:anywhere}
.food-search-result span{font-size:12px;font-weight:400;color:var(--muted);margin-top:3px}
.food-search-results .help,.food-search-results .error{margin:8px 0}
#ai-inspiration [data-action=generate-ideas]:disabled{cursor:not-allowed}
@media(max-width:700px){.tagline,.sidebar nav button span{display:none}.sidebar nav button{min-height:44px}.food-search-results{max-height:240px}}

.food-log-item{border:0;border-top:1px solid var(--line);padding:1.25rem 0;margin:0}.food-log-item legend{font-weight:700;padding-right:.5rem}.search-row{display:flex;gap:.5rem}.search-row input{min-width:0;flex:1}.timing-slot{padding:.65rem 0;border-top:1px solid var(--line)}

@media(max-width:600px){#ai-log-prompt textarea,#ai-log-review input,#ai-log-review select{font-size:16px}.food-log-item legend{overflow-wrap:anywhere}.food-log-item .optional-fields{margin-top:10px}}

.meal-header h3{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.meal-time{min-height:44px;min-width:44px;text-decoration:underline;text-underline-offset:3px}.meal-header .meal-time{color:var(--muted)}
#meal-time-form input{font-size:16px;min-height:44px}

/* Supplement routines share the diary's quiet list layout. */
.supplements-section{margin-top:32px}.supplements-section .section-heading{margin-top:0}
.supplement-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.supplement-row>div:first-child{min-width:0;overflow-wrap:anywhere}.supplement-row p{margin:4px 0 0}.supplement-row .actions{justify-content:flex-end;flex-wrap:wrap;flex-shrink:0}
.supplement-status{font-size:12px;color:var(--muted);text-transform:capitalize}.supplement-status.taken{color:var(--ink);font-weight:650}
.supplement-diary>.text-button{margin-top:12px}.supplement-stack-item{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:end;gap:12px}.supplement-stack-item button{width:44px;height:44px;margin-bottom:4px;padding:8px}
#supplement-stack-items input{max-width:220px}
@media(max-width:700px){.supplements-section .section-heading{align-items:flex-start;flex-direction:column;gap:12px}.supplement-row{align-items:flex-start;flex-wrap:wrap}.supplement-row .actions{flex-shrink:1}.supplement-stack-item label{overflow-wrap:anywhere}}
.two-col>section,.two-col>aside{min-width:0}
.supplement-log-stack{padding-top:16px;margin-top:12px;border-top:1px solid var(--line)}
.supplement-log-stack h3,.supplement-log-stack h4{font-size:15px;margin:0 0 4px;overflow-wrap:anywhere}
.supplement-log-stack>.supplement-row,.supplement-log-stack>div,.supplement-log-stack>ul{margin-left:12px}
.supplement-time{font-variant-numeric:tabular-nums}

/* Session carbs: consumed fill against the bounds of the coach's plan. */
.fuel-comparison{margin:16px 0;font-variant-numeric:tabular-nums}
.fuel-comparison-values{display:flex;justify-content:space-between;gap:16px}
.fuel-comparison-values>div{min-width:0;display:grid;gap:4px}
.fuel-comparison-values>div:last-child{text-align:right}
.fuel-comparison-values span{font-size:12px;color:var(--muted)}
.fuel-comparison-values strong{font-size:20px;font-weight:650;line-height:1.3;overflow-wrap:anywhere}
.fuel-comparison-track{display:block;width:100%;height:12px;overflow:visible;margin:8px 0}
.fuel-comparison-base{fill:var(--card)}
.fuel-comparison-fill{fill:var(--ink)}
.fuel-comparison-mark{stroke:var(--ink);stroke-width:2;vector-effect:non-scaling-stroke}
.fuel-comparison-track.is-unknown .fuel-comparison-base{fill:none;stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}
.fuel-comparison .fuel-comparison-status{margin:0 0 4px;font-size:12px}
.fuel-comparison .fuel-comparison-source{margin:0;color:var(--muted);font-size:12px}

/* One compact logging menu; meal actions stay on their cards. */
.quick-log-button{display:grid;place-items:center;width:44px;height:44px;padding:0;flex-shrink:0}.quick-log-options{display:grid;gap:12px}.next-feed{display:flex;align-items:center;gap:12px;padding:16px 4px;flex-wrap:wrap}.timeline-session{margin:0 0 18px}.timeline-session .workout{padding-top:0}.timeline-session .fuel-comparison{max-width:440px}.progress-trend{width:100%;height:auto;min-height:180px;overflow:visible}.progress-trend line{stroke:#e2e5db}.progress-trend text{font:12px system-ui;fill:#6b7771}.progress-trend path{stroke-width:2.5}.trend-budget{stroke:#8b7650;stroke-dasharray:5 4}.trend-intake{stroke:#183c32}.progress-trend circle.trend-budget{fill:#8b7650;stroke-dasharray:none}.progress-trend circle.trend-intake{fill:#183c32}.progress-trend circle.unconfirmed{fill:#fff;stroke-width:2}.trend-legend{display:flex;gap:24px;font-size:14px}.trend-legend span+span{color:#8b7650}
@media(max-width:600px){.next-feed{gap:8px}.next-feed>strong{flex:1}.progress-trend{min-height:150px}}

.supplement-sections button{min-height:44px}.supplement-library>.spread{gap:12px;flex-wrap:wrap}.supplement-library h2{margin:0}

.wordmark {display:inline-flex;align-items:center;gap:10px}
.wordmark img {flex:none}
.comment-count {font-size:12px;font-weight:700;border-radius:20px;background:var(--ink);color:var(--card);padding:2px 7px;margin-left:auto}
.comment-inbox-list {display:grid;gap:8px}
.comment-inbox-list button {text-align:left;display:grid;gap:6px;white-space:normal;min-height:44px}
.comment-inbox-list .unread {background:var(--sage)}
.ai-portion {font-variant-numeric:tabular-nums}

.food-search-row{display:flex;align-items:center;gap:8px}.food-search-row input{min-width:0}.food-search-ai{min-width:44px;min-height:44px;padding:8px;margin-top:5px;display:grid;place-items:center}
/* Stack reminder controls use the same spacing and touch targets as other forms. */
#supplement-reminder-form fieldset{border:0;padding:0;margin:16px 0}
#supplement-reminder-form fieldset fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}
#supplement-reminder-form legend{font-size:13px;font-weight:600;padding:0;margin-bottom:6px}
#supplement-reminder-form .check{display:flex;align-items:center;min-height:44px;margin:0}
#supplement-reminder-form .check input{flex-shrink:0}

/* Registration keeps the familiar paper/green palette in one focused column. */
.auth-layout{display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:32px 20px;min-height:100svh}
.auth-panel{display:block;padding:0;width:100%;max-width:400px}
.auth-panel h1{font-size:28px;line-height:1.2;letter-spacing:-.5px;margin:32px 0 12px}
.auth-panel .wordmark{display:inline-flex;align-items:center;gap:8px}
.auth-panel form{max-width:none}.auth-panel .primary,#account-auth .primary{width:100%;justify-content:center;margin:20px 0 12px}
.auth-google{width:100%;margin-top:20px;min-height:48px;background:var(--card)}
.auth-divider{text-align:center;color:var(--muted);font-size:13px;margin:20px 0}
.auth-code{font-variant-numeric:tabular-nums;letter-spacing:.25em;font-size:24px}
.auth-secondary{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.auth-secondary button{min-height:44px}
#key-login{margin:24px 0}#key-login summary{font-size:13px;cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--muted)}
#key-login summary:focus-visible{outline:2px solid var(--orange);outline-offset:4px}
#auth-methods[aria-busy=true],#account-auth[aria-busy=true]{cursor:progress}
