:root{--color-background:#f8f7f3;--color-surface:#fffefa;--color-surface-muted:#f2f1ed;--color-text:#17253b;--color-text-secondary:#667085;--color-text-soft:#89909a;--color-border:#e6e4df;--color-primary:#2f6655;--color-primary-strong:#245344;--color-primary-soft:#e4f0e9;--color-blush:#f7e8e2;--color-blush-ink:#9a5b45;--color-lavender:#eeebf7;--color-lavender-ink:#55557a;--color-sky:#e4f2f8;--color-sky-ink:#44728b;--color-overlay:#131d246b;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.375rem;--font-size-brand:1.625rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--line-height-tight:1.2;--line-height-base:1.45;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--radius-sm:.625rem;--radius-md:.875rem;--radius-lg:1rem;--radius-xl:1.375rem;--radius-pill:999px;--shadow-card:0 .125rem .75rem #1d2a340d;--shadow-nav:0 -.25rem 1.5rem #1d2a3412;--shadow-action:0 .35rem 1rem #24534447;--icon-sm:1rem;--icon-md:1.35rem;--icon-lg:1.65rem;--touch-target:2.75rem;--header-height:8.65rem;--bottom-nav-height:4.4rem;--content-max-width:31rem;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}.app-viewport{background:var(--color-background);min-height:100vh}.app-shell{background:var(--color-background);min-height:100vh;margin:0 auto;position:relative}.screen-header{min-height:calc(var(--header-height) + var(--safe-top));justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:calc(var(--safe-top) + var(--space-6)) var(--space-4) var(--space-4);background:linear-gradient(180deg, #fbfaf7 0%, var(--color-background) 100%);display:flex}.screen-header__copy{min-width:0}.brand{color:var(--color-primary-strong);font-size:var(--font-size-brand);font-weight:var(--font-weight-medium);letter-spacing:.28em;line-height:1;display:block}.screen-header h1{margin-top:var(--space-2);font-size:var(--font-size-xl);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight)}.screen-header p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.screen-header__actions{gap:var(--space-2);padding-top:var(--space-1);display:flex}.icon-button{width:var(--touch-target);height:var(--touch-target);color:var(--color-primary-strong);cursor:pointer;background:#f0efebdb;border:1px solid #e6e4df9e;border-radius:50%;place-items:center;padding:0;display:grid}.icon-button svg{width:var(--icon-lg);height:var(--icon-lg)}.screen-content{width:min(100%, var(--content-max-width));min-height:calc(100vh - var(--header-height));padding:0 var(--space-4) calc(var(--bottom-nav-height) + var(--safe-bottom) + var(--space-6));margin:0 auto}.bottom-nav{z-index:20;min-height:calc(var(--bottom-nav-height) + var(--safe-bottom));box-shadow:var(--shadow-nav);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffefaeb;border-top:1px solid #e6e4dfcc;position:fixed;bottom:0;left:0;right:0}.bottom-nav__inner{width:min(100%, var(--content-max-width));min-height:var(--bottom-nav-height);padding:0 var(--space-2) var(--safe-bottom);grid-template-columns:repeat(2,1fr) 1.12fr repeat(3,1fr);margin:0 auto;display:grid}.bottom-nav__item{min-width:0;min-height:var(--touch-target);padding-top:var(--space-2);color:var(--color-text-soft);flex-direction:column;justify-content:center;align-items:center;gap:.125rem;font-size:.68rem;text-decoration:none;display:flex}.bottom-nav__item svg{width:var(--icon-md);height:var(--icon-md)}.bottom-nav__item--active{color:var(--color-primary-strong);font-weight:var(--font-weight-semibold)}.bottom-nav__add{border:.3rem solid var(--color-background);color:#fff;background:var(--color-primary);width:3.55rem;height:3.55rem;box-shadow:var(--shadow-action);cursor:pointer;border-radius:50%;place-self:start center;place-items:center;margin-top:-1.15rem;padding:0;display:grid}.bottom-nav__add svg{width:1.85rem;height:1.85rem}.section-block{gap:var(--space-2);display:grid}.section-block__header{justify-content:space-between;align-items:center;display:flex}.section-block__header h2,.eyebrow{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.18em;text-transform:uppercase}.card-list,.screen-stack{gap:var(--space-3);display:grid}.card{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);display:flex}.card__body{flex:1;min-width:0}.card h3{margin-top:var(--space-1);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium)}.card p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.icon-orb{width:2.85rem;height:2.85rem;color:var(--color-text-secondary);background:var(--color-surface-muted);border-radius:50%;flex:none;place-items:center;display:grid}.icon-orb svg{width:var(--icon-lg);height:var(--icon-lg)}.icon-orb--mint{color:var(--color-primary-strong);background:var(--color-primary-soft)}.icon-orb--blush{color:var(--color-blush-ink);background:var(--color-blush)}.icon-orb--lavender{color:var(--color-lavender-ink);background:var(--color-lavender)}.icon-orb--sky{color:var(--color-sky-ink);background:var(--color-sky)}.badge,.placeholder-badge{border-radius:var(--radius-pill);min-height:1.6rem;color:var(--color-text-secondary);background:var(--color-surface-muted);font-size:var(--font-size-xs);white-space:nowrap;align-items:center;padding:.2rem .65rem;display:inline-flex}.badge--mint{color:var(--color-primary-strong);background:var(--color-primary-soft)}.badge--blush{color:var(--color-blush-ink);background:var(--color-blush)}.badge--lavender{color:var(--color-lavender-ink);background:var(--color-lavender)}.empty-state{padding:var(--space-6) var(--space-4);border-radius:var(--radius-lg);text-align:center;background:#fffefa94;border:1px dashed #d8d7d1;justify-items:center;display:grid}.empty-state strong{margin-top:var(--space-3);font-weight:var(--font-weight-medium)}.empty-state p{max-width:19rem;margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.sheet-layer{z-index:100;padding:var(--space-4);background:var(--color-overlay);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet{width:min(100%,30rem);padding:var(--space-8) var(--space-4) calc(var(--space-6) + var(--safe-bottom));border-radius:var(--radius-xl) var(--radius-xl) var(--radius-md) var(--radius-md);background:var(--color-surface);max-height:min(90vh,52rem);position:relative;overflow-y:auto;box-shadow:0 1rem 3rem #141e2438}.bottom-sheet__handle{top:var(--space-2);border-radius:var(--radius-pill);background:#d1d0cb;width:2.5rem;height:.25rem;position:absolute;left:50%;transform:translate(-50%)}.bottom-sheet__close{top:var(--space-4);right:var(--space-4);width:var(--touch-target);height:var(--touch-target);color:var(--color-text-secondary);background:var(--color-surface-muted);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute}.bottom-sheet h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.bottom-sheet>p{max-width:23rem;margin-top:var(--space-1);padding-right:var(--space-8);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.action-grid{margin-top:var(--space-5);gap:var(--space-2);grid-template-columns:repeat(2,1fr);display:grid}.action-placeholder{border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:5.5rem;font-size:var(--font-size-sm);background:var(--color-background);align-content:center;justify-items:center;display:grid}.action-placeholder small{color:var(--color-text-soft);font-size:var(--font-size-xs)}.action-placeholder__dot{width:1.6rem;height:1.6rem;margin-bottom:var(--space-2);background:var(--color-primary-soft);border-radius:50%}.quick-action{align-content:center;justify-items:center;gap:var(--space-2);min-height:5.35rem;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);background:var(--color-background);cursor:pointer;display:grid}.quick-action svg{width:var(--icon-lg);color:var(--color-primary)}.quick-action span{font-size:var(--font-size-sm)}.record-form{margin-top:var(--space-5);gap:var(--space-3);text-align:left;display:grid}.record-form h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium)}.form-field{gap:var(--space-1);text-align:left;min-width:0;display:grid}.form-field>span,.form-field legend{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.form-field input,.form-field select,.form-field textarea,.date-filter input{width:100%;min-height:2.85rem;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background)}.form-field textarea{min-height:5rem;padding-top:var(--space-2);resize:vertical}.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.date-filter input:focus{border-color:var(--color-primary);outline:3px solid #2f665529}.form-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.scale-field{border:0;padding:0}.scale-options{gap:.3rem;display:flex;overflow-x:auto}.scale-options label{flex:1 0 2.35rem}.scale-options input{opacity:0;pointer-events:none;position:absolute}.scale-options span{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-background);cursor:pointer;place-items:center;min-height:2.5rem;display:grid}.scale-options input:checked+span{border-color:var(--color-primary);color:#fff;background:var(--color-primary)}.scale-options input:focus-visible+span{outline-offset:2px;outline:3px solid #2f665561}.form-hint{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.form-actions{margin-top:var(--space-2);gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.button{min-height:2.9rem;padding:0 var(--space-4);border-radius:var(--radius-pill);font-weight:var(--font-weight-semibold);cursor:pointer}.button--primary{color:#fff;background:var(--color-primary)}.button--secondary{border:1px solid var(--color-border);background:var(--color-surface-muted)}.button:disabled{cursor:wait;opacity:.6}.voice-note{margin-top:var(--space-5)}.bottom-sheet--voice{text-align:center}.bottom-sheet--voice>p{margin-left:auto;margin-right:auto;padding:0}.voice-placeholder{width:6rem;height:6rem;margin:0 auto var(--space-5);color:#fff;background:var(--color-primary);border:.75rem solid #edf4ef;border-radius:50%;place-items:center;display:grid}.voice-placeholder svg{width:2.5rem;height:2.5rem}.bottom-sheet--voice .placeholder-badge{margin-top:var(--space-5)}.auth-layout{min-height:100vh;padding:calc(var(--safe-top) + var(--space-6)) var(--space-4) calc(var(--safe-bottom) + var(--space-6));background:var(--color-background);place-items:center;display:grid}.auth-card{width:min(100%,25rem);padding:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-card)}.auth-card h1{margin-top:var(--space-8);font-size:var(--font-size-xl);font-weight:var(--font-weight-medium)}.auth-card>p{margin-top:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.auth-card--status{text-align:center}.auth-form{margin-top:var(--space-6);gap:var(--space-3);display:grid}.auth-form label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.auth-form input{min-height:3rem;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background)}.auth-form input:focus{border-color:var(--color-primary);outline:3px solid #2f665529}.primary-button{min-height:3rem;margin-top:var(--space-2);padding:0 var(--space-4);border-radius:var(--radius-pill);color:#fff;background:var(--color-primary);font-weight:var(--font-weight-semibold);cursor:pointer}.primary-button:disabled{cursor:wait;opacity:.65}.form-error{color:#9b3d36;font-size:var(--font-size-sm)}.loading-dot{width:.75rem;height:.75rem;margin-top:var(--space-5);background:var(--color-primary);border-radius:50%;animation:1s ease-in-out infinite alternate loading-pulse;display:inline-block}@keyframes loading-pulse{to{opacity:.3;transform:scale(.72)}}@media (width>=42rem){.app-viewport{padding:var(--space-5) 0}.app-shell{width:min(100%, var(--content-max-width));min-height:calc(100vh - 2 * var(--space-5));border:1px solid #dedcd6;border-radius:1.8rem;overflow:hidden;box-shadow:0 1rem 3rem #2c2f2d1a}.bottom-nav{width:var(--content-max-width);border-left:1px solid #dedcd6;border-right:1px solid #dedcd6;left:50%;right:auto;transform:translate(-50%)}}.metric-grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.metric-card{min-width:0;padding:var(--space-3) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:center;background:var(--color-surface);box-shadow:var(--shadow-card);justify-items:center;display:grid}.metric-card svg{width:var(--icon-md);height:var(--icon-md);margin-bottom:var(--space-1);color:var(--color-primary)}.metric-card span{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.metric-card strong{max-width:100%;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.soft-action{margin-top:var(--space-3);border-radius:var(--radius-pill);color:var(--color-blush-ink);background:var(--color-blush);font-size:var(--font-size-sm);padding:.38rem .85rem;display:inline-flex}.placeholder-lines{margin-top:var(--space-3);gap:var(--space-2);grid-template-columns:1fr .78fr .9fr;display:grid}.placeholder-lines span,.timeline-placeholder__line{border-radius:var(--radius-pill);background:#ebeae5;height:.55rem}.filter-row{margin:0 calc(var(--space-4) * -1);padding:0 var(--space-4) var(--space-1);scrollbar-width:none;gap:.35rem;display:flex;overflow-x:auto}.date-filter{align-items:center;gap:var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);grid-template-columns:auto minmax(0,1fr);display:grid}.timeline-status{justify-content:center;align-items:center;gap:var(--space-2);border:1px dashed var(--color-border);border-radius:var(--radius-lg);min-height:7rem;color:var(--color-text-secondary);display:flex}.timeline-status svg{width:var(--icon-md)}.timeline-status--error{padding:var(--space-4);color:#9b3d36;text-align:center;flex-direction:column}.timeline-status button{min-height:var(--touch-target);padding:0 var(--space-4);border-radius:var(--radius-pill);color:#fff;background:var(--color-primary)}.timeline{margin:0;padding:0;list-style:none;display:grid}.timeline-item{gap:var(--space-2);grid-template-columns:2.8rem 1.25rem minmax(0,1fr);min-width:0;display:grid}.timeline-item>time{padding-top:var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.timeline-item__marker{justify-content:center;padding-top:1.05rem;display:flex;position:relative}.timeline-item__marker:after{background:var(--color-border);content:"";width:1px;position:absolute;top:2rem;bottom:0}.timeline-item:last-child .timeline-item__marker:after{display:none}.timeline-item__marker svg{z-index:1;width:.85rem;color:var(--color-primary);fill:var(--color-primary-soft);background:var(--color-background)}.timeline-item article{min-width:0;margin-bottom:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.timeline-item__heading{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.timeline-item h3{margin-top:var(--space-1);font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.timeline-item p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm);overflow-wrap:anywhere}.timeline-item__actions{gap:var(--space-1);display:flex}.timeline-item__actions button{width:2.35rem;height:2.35rem;color:var(--color-text-secondary);background:var(--color-surface-muted);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid}.timeline-item__actions svg{width:var(--icon-sm)}.record-badges{margin-top:var(--space-2);gap:var(--space-1);flex-wrap:wrap;display:flex}.record-badges span{border-radius:var(--radius-pill);color:var(--color-text-secondary);background:var(--color-surface-muted);padding:.18rem .5rem;font-size:.68rem}.record-badges span+span{color:var(--color-primary-strong);background:var(--color-primary-soft)}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.filter-row .filter-pill{min-height:2.3rem;padding:0 .68rem;font-size:.78rem}.filter-row::-webkit-scrollbar{display:none}.filter-pill,.segmented-control button{min-height:2.4rem;padding:0 var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-pill);color:var(--color-text);background:var(--color-surface);white-space:nowrap;cursor:pointer}.filter-pill--active,.segmented-control button.is-selected{border-color:var(--color-primary);color:#fff;background:var(--color-primary)}.timeline-placeholder{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:var(--space-2);background:var(--color-surface);display:grid}.timeline-placeholder__row{align-items:center;gap:var(--space-3);grid-template-columns:2.8rem 1.25rem 1fr;min-height:3.75rem;display:grid}.timeline-placeholder__row+.timeline-placeholder__row{border-top:1px solid var(--color-border)}.timeline-placeholder__row svg{width:1rem;color:var(--color-text-soft)}.timeline-placeholder__time,.screen-footnote{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.screen-footnote{justify-content:center;align-items:center;gap:var(--space-2);display:flex}.screen-footnote svg{width:var(--icon-sm)}.status-line{align-items:center;gap:var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-xs);display:flex}.card--flush{position:relative}.card--flush>.icon-orb{top:var(--space-3);left:var(--space-3);width:2.35rem;height:2.35rem;position:absolute}.card--flush>.card__body>.eyebrow{min-height:2.55rem;padding-left:3rem;line-height:2.35rem;display:block}.week-list{margin:var(--space-2) calc(var(--space-4) * -1) calc(var(--space-4) * -1)}.week-row{min-height:3.35rem;padding:var(--space-1) var(--space-3);border-top:1px solid var(--color-border);align-items:center;gap:var(--space-2);grid-template-columns:3.25rem minmax(0,1fr) auto;display:grid}.week-row--today{background:var(--color-primary-soft)}.week-row__day{line-height:1.05;display:grid}.week-row__day strong{font-size:var(--font-size-xs);letter-spacing:.1em}.week-row__day small{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:.65rem}.week-row__content{align-items:center;gap:var(--space-2);min-width:0;display:flex}.week-row__content svg{width:var(--icon-md);color:var(--color-primary)}.week-row__content span{font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.segmented-control{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.segmented-control button{min-width:0;padding:0 var(--space-2);font-size:var(--font-size-xs)}.progress-grid{gap:var(--space-3);display:grid}.card-heading-row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.mini-chart{height:3.8rem;margin-top:var(--space-3);padding:var(--space-2) var(--space-2) 0;border-bottom:1px solid var(--color-border);align-items:flex-end;gap:var(--space-2);background:linear-gradient(#0000,#e4f0e952);display:flex}.mini-chart span{background:#9fbcaf;border-radius:.25rem .25rem 0 0;flex:1;min-height:.4rem}.settings-list{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);overflow:hidden}.settings-row{width:100%;min-height:4.3rem;padding:var(--space-2) var(--space-3);align-items:center;gap:var(--space-3);text-align:left;cursor:pointer;background:0 0;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.settings-row+.settings-row{border-top:1px solid var(--color-border)}.settings-row>svg{width:var(--icon-sm);color:var(--color-text-soft)}.settings-row__copy{min-width:0;display:grid}.settings-row__copy strong{font-weight:var(--font-weight-medium)}.settings-row__copy small{color:var(--color-text-secondary);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width>=30rem){.progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-grid .card{min-width:0}}@media (width<=22rem){.brand{font-size:1.4rem}.screen-header__actions{gap:var(--space-1)}.icon-button{width:2.55rem;height:2.55rem}.bottom-nav__item{font-size:.62rem}}.nutrition-summary{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:var(--space-3);background:var(--color-surface);box-shadow:var(--shadow-card);display:grid}.nutrition-row__top{justify-content:space-between;gap:var(--space-2);font-size:var(--font-size-sm);display:flex}.nutrition-row__top strong{font-weight:var(--font-weight-medium)}.nutrition-row__top span{color:var(--color-text-secondary);text-align:right}.nutrition-row small{color:var(--color-text-soft);font-size:var(--font-size-xs)}.nutrition-track{border-radius:var(--radius-pill);background:var(--color-surface-muted);height:.35rem;margin:.35rem 0 .2rem;overflow:hidden}.nutrition-track span{border-radius:inherit;background:var(--color-primary);height:100%;display:block}.nutrition-source{padding-top:var(--space-2);border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.partial-totals{justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-blush-ink);background:var(--color-blush);font-size:var(--font-size-xs);display:flex}.partial-totals strong{letter-spacing:.08em;text-transform:uppercase}.meal-macros{font-weight:var(--font-weight-medium);color:var(--color-primary-strong)!important}.meal-mode{gap:var(--space-1);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.meal-mode button{border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:2.7rem;font-size:var(--font-size-xs);background:var(--color-background);padding:.2rem}.meal-mode button.is-selected{border-color:var(--color-primary);color:#fff;background:var(--color-primary)}.form-subsection,.macro-fieldset{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:var(--space-3);display:grid}.macro-fieldset legend{padding:0 var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.macro-input-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.meal-item-row{align-items:end;gap:var(--space-2);grid-template-columns:minmax(0,1.5fr) minmax(5rem,.7fr) auto;display:grid}.inline-icon-button{margin-bottom:.05rem}.estimate-notice{padding:var(--space-3);border-radius:var(--radius-md);color:var(--color-blush-ink);background:var(--color-blush);font-size:var(--font-size-sm)}.estimate-notice strong{letter-spacing:.1em;display:block}.estimate-choice{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.estimate-choice button{min-height:2.7rem;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background)}.estimate-choice button.is-selected{border-color:var(--color-primary);color:#fff;background:var(--color-primary)}.confirm-row{align-items:flex-start;gap:var(--space-2);font-size:var(--font-size-sm);display:flex}.confirm-row input{flex:none;width:1.2rem;height:1.2rem}.subscreen-actions{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.subscreen-actions .button{align-items:center;gap:var(--space-1);display:inline-flex}.subscreen-actions svg,.button svg,.file-button svg{width:var(--icon-sm)}.back-link{color:var(--color-primary-strong);font-size:var(--font-size-sm);cursor:pointer;background:0 0;text-decoration:none}.screen-intro{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.settings-form,.editor-card,.import-panel,.import-preview,.recipe-detail{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.catalog-list{gap:var(--space-2);display:grid}.catalog-card{justify-content:space-between;align-items:flex-start;gap:var(--space-3);width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:left;background:var(--color-surface);display:flex}.catalog-card h3,.recipe-detail h2{margin-top:var(--space-1);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium)}.catalog-card p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.catalog-card small{color:var(--color-text-soft);font-size:var(--font-size-xs)}.catalog-card--button{cursor:pointer}.import-panel{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.import-panel h2,.import-preview h2,.editor-card h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium)}.import-panel p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.file-button{justify-content:center;align-items:center;gap:var(--space-1);cursor:pointer;min-width:8.5rem;display:inline-flex;position:relative}.file-button input{opacity:0;width:1px;height:1px;position:absolute}.import-preview{gap:var(--space-3);display:grid}.import-counts{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.import-counts span{padding:var(--space-2);border-radius:var(--radius-md);text-align:center;color:var(--color-text-secondary);background:var(--color-surface-muted);font-size:.65rem;display:grid}.import-counts strong{color:var(--color-text);font-size:var(--font-size-lg)}.preview-list{max-height:14rem;margin:0;padding:0;list-style:none;overflow:auto}.preview-list li{justify-content:space-between;gap:var(--space-2);padding:var(--space-2) 0;border-top:1px solid var(--color-border);font-size:var(--font-size-xs);display:flex}.preview-list strong{color:var(--color-primary-strong)}.recipe-detail{gap:var(--space-4);display:grid}.recipe-detail h3{font-weight:var(--font-weight-semibold)}.recipe-macros{gap:var(--space-2);grid-template-columns:repeat(5,1fr);display:grid}.recipe-macros span{padding:var(--space-2);border-radius:var(--radius-md);text-align:center;color:var(--color-text-secondary);background:var(--color-primary-soft);font-size:.65rem;display:grid}.recipe-macros strong{color:var(--color-primary-strong);font-size:var(--font-size-base)}.detail-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.detail-grid div{padding:var(--space-2);border-bottom:1px solid var(--color-border)}.detail-grid dt{color:var(--color-text-soft);font-size:var(--font-size-xs)}.detail-grid dd{margin:var(--space-1) 0 0;font-size:var(--font-size-sm)}.ingredient-list{margin:0;padding:0;list-style:none}.ingredient-list li{justify-content:space-between;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);display:flex}.ingredient-list span{color:var(--color-text-secondary);text-align:right}.ingredient-editor{gap:var(--space-1);grid-template-columns:minmax(0,1.4fr) 5rem 5rem auto;display:grid}.ingredient-editor input{min-width:0;min-height:2.6rem;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.ingredient-editor button{background:var(--color-surface-muted);border-radius:50%;width:2.6rem}.ingredient-editor svg{width:var(--icon-sm)}.recipe-meal-preview{padding:var(--space-3);border:1px solid var(--color-primary);border-radius:var(--radius-md);gap:var(--space-3);background:var(--color-primary-soft);display:grid}.recipe-meal-preview h4{margin-top:var(--space-1);font-size:var(--font-size-lg)}.recipe-meal-preview>div p{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.recipe-meal-preview ul{margin:0;padding:0;list-style:none}.recipe-meal-preview li{justify-content:space-between;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--font-size-sm);border-top:1px solid #2f665529;display:flex}.recipe-meal-preview li span{color:var(--color-text-secondary);text-align:right}.today-meals{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden}.today-meal{width:100%;min-height:4.5rem;padding:var(--space-2) var(--space-3);align-items:center;gap:var(--space-2);text-align:left;background:0 0;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.today-meal+.today-meal{border-top:1px solid var(--color-border)}.today-meal__copy{min-width:0;display:grid}.today-meal__copy strong{font-weight:var(--font-weight-medium)}.today-meal__copy small{color:var(--color-text-secondary);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.meal-status{border-radius:var(--radius-pill);color:var(--color-primary-strong);background:var(--color-primary-soft);white-space:nowrap;padding:.2rem .5rem;font-size:.65rem}.meal-status--pending{color:var(--color-blush-ink);background:var(--color-blush)}.week-switcher{align-items:center;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.week-switcher button{width:2.5rem;height:2.5rem;color:var(--color-primary-strong);background:var(--color-primary-soft);border-radius:50%;place-items:center;display:grid}.week-switcher svg,.back-link svg,.mini-action svg,.plan-shortcuts svg,.row-actions svg,.shopping-item svg{width:var(--icon-sm)}.week-switcher div{text-align:center;display:grid}.week-switcher strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.week-switcher small,.plan-status small{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.plan-status{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.plan-status>div{display:grid}.plan-status>span{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.plan-alternate{color:var(--color-primary-strong);font-size:var(--font-size-sm);text-underline-offset:.2rem;background:0 0;align-self:flex-start;text-decoration:underline}.plan-days{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);overflow:hidden}.plan-day{grid-template-columns:4.25rem minmax(0,1fr);min-height:4rem;display:grid}.plan-day+.plan-day{border-top:1px solid var(--color-border)}.plan-day__date{padding:var(--space-2);border-right:1px solid var(--color-border);align-content:center;display:grid}.plan-day__date strong{font-size:var(--font-size-xs);letter-spacing:.12em}.plan-day__date span{color:var(--color-text-secondary);text-transform:capitalize;font-size:.68rem}.plan-day__content{padding:var(--space-2) var(--space-3);align-content:center;gap:var(--space-1);display:grid}.plan-day__content span{align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);display:flex}.plan-day__content svg{width:.9rem;color:var(--color-primary)}.plan-day__content small,.plan-detail-row small{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.plan-shortcuts{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.plan-shortcuts a{min-height:3.3rem;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);justify-content:center;align-items:center;gap:var(--space-1);color:var(--color-text);text-align:center;font-size:var(--font-size-xs);background:var(--color-primary-soft);text-decoration:none;display:flex}.plan-shortcuts a:nth-child(2){background:var(--color-lavender)}.plan-shortcuts a:nth-child(3){background:var(--color-sand)}.plan-list-card{gap:var(--space-2);display:grid}.plan-section-heading{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.plan-section-heading h3{margin-top:var(--space-1);font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.mini-action{min-height:2.25rem;padding:0 var(--space-2);border-radius:var(--radius-pill);align-items:center;gap:var(--space-1);color:var(--color-primary-strong);font-size:var(--font-size-xs);background:var(--color-primary-soft);display:inline-flex}.plan-detail-row{justify-content:space-between;align-items:center;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border);display:flex}.plan-detail-row>div{min-width:0;display:grid}.plan-detail-row strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.row-actions{gap:var(--space-1);flex:none;display:flex}.row-actions button,.shopping-item button{width:2rem;height:2rem;color:var(--color-text-secondary);background:var(--color-surface-muted);border-radius:50%;place-items:center;display:grid}.plan-actions{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));display:grid}.back-link{align-self:flex-start;align-items:center;gap:var(--space-1);display:inline-flex}.menu-day{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);overflow:hidden}.menu-day>header{padding:var(--space-3);justify-content:space-between;align-items:center;gap:var(--space-2);background:var(--color-surface-muted);display:flex}.menu-day>header div{display:grid}.menu-day>header strong{font-size:var(--font-size-xs);letter-spacing:.12em}.menu-day>header span{color:var(--color-text-secondary);font-size:var(--font-size-xs);text-transform:capitalize}.menu-day__empty{padding:var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.planned-meal{padding:var(--space-2) var(--space-3);align-items:center;gap:var(--space-2);border-top:1px solid var(--color-border);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.planned-meal>div{display:grid}.planned-meal small,.planned-meal span{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.planned-meal strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.planned-summary{padding:var(--space-3);border-top:1px solid var(--color-border);gap:var(--space-3);background:var(--color-primary-soft);grid-template-columns:1fr 1fr;display:grid}.planned-summary>div{display:grid}.planned-summary>div+div{padding-left:var(--space-3);border-left:1px solid #2f665529}.planned-summary strong{font-size:var(--font-size-base)}.planned-summary small{color:var(--color-text-secondary);font-size:.68rem}.shopping-list{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);overflow:hidden}.shopping-item{min-height:3.8rem;padding:var(--space-2) var(--space-3);align-items:center;gap:var(--space-2);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.shopping-item+.shopping-item{border-top:1px solid var(--color-border)}.shopping-item input{width:1.2rem;height:1.2rem;accent-color:var(--color-primary)}.shopping-item>span{display:grid}.shopping-item strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.shopping-item small{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.shopping-item--checked strong{color:var(--color-text-soft);text-decoration:line-through}.shopping-add{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:var(--space-3);background:var(--color-surface);display:grid}.shopping-add h3{font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}@media (width<=25rem){.meal-mode{grid-template-columns:repeat(2,1fr)}.import-panel{flex-direction:column;align-items:stretch}.import-counts{grid-template-columns:repeat(2,1fr)}.recipe-macros{grid-template-columns:repeat(3,1fr)}.ingredient-editor{grid-template-columns:minmax(0,1fr) 4.5rem}.ingredient-editor input:nth-of-type(3){grid-column:1/2}}*{box-sizing:border-box}html{background:#eeece7;min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;color:var(--color-text);background:var(--color-background);font-family:var(--font-sans);font-size:var(--font-size-base);font-synthesis:none;line-height:var(--line-height-base);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0}button,input,textarea,select{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{border:0}button:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #2f665561}h1,h2,h3,p{margin:0}svg{stroke-width:1.8px;flex:none}#root{min-height:100vh}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
