:root{font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#413c47;background:#fff;--color-text: #413c47;--color-subtle: #8f8792;--color-white: #ffffff;--color-coral: #f57d7b;--color-coral-strong: #ee6f72;--color-coral-soft: #fff0ef;--color-danger: #de6f72;--color-danger-soft: #fff1f1;--color-info: #7ca8ff;--color-info-soft: #eef4ff;--surface-panel: #ffffff;--surface-soft: #ffffff;--surface-muted: #ffffff;--border-soft: rgba(113, 100, 114, .12);--shadow-soft: 0 20px 48px rgba(188, 166, 161, .2);--radius-panel: 0;--radius-card: 0;--radius-pill: 999px;--app-page-top-space: env(safe-area-inset-top) ;--calendar-scroll-offset-top: calc(env(safe-area-inset-top) + 64px) ;--bottom-nav-reserved-space: calc(env(safe-area-inset-bottom) + 126px) }*{box-sizing:border-box;scrollbar-width:none}*::-webkit-scrollbar{display:none}html,body,#root{min-height:100%}body{margin:0;color:var(--color-text);background:#fff}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}.app-shell{min-height:100vh;width:100%;max-width:none;margin:0;padding:0 0 var(--bottom-nav-reserved-space);background:#fff}.app-shell--auth{padding-bottom:0}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:76px 1fr 40px;align-items:start;gap:12px;padding:env(safe-area-inset-top) 18px 42px;border-bottom-left-radius:32px;border-bottom-right-radius:32px;background:linear-gradient(180deg,var(--color-coral) 0%,var(--color-coral-strong) 100%);color:var(--color-white);box-shadow:0 16px 40px #ee6f7247}.topbar__brand{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 10px;border-radius:var(--radius-pill);background:#ffffff29;font-size:.72rem;letter-spacing:.04em}.topbar__title-group{display:grid;gap:4px;text-align:center}.topbar__title-group h1{font-size:1.55rem;letter-spacing:.02em}.topbar__title-group p{font-size:.82rem;color:#ffffffd1}.topbar__avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#ffffff3d;font-weight:700}.main-content{position:relative;z-index:1;display:grid;gap:16px;margin-top:0;padding-top:var(--app-page-top-space);background:#fff}.app-shell--auth .main-content{margin-top:0;padding-top:var(--app-page-top-space)}.panel,.section-card,.empty-state,.modal-sheet{background:var(--surface-panel)}.panel,.section-card,.empty-state{border-radius:var(--radius-panel);padding:18px}.section-card--nested{padding:16px;border-radius:var(--radius-card);background:var(--surface-soft);box-shadow:none}.loading-screen,.empty-state{display:grid;place-items:center;min-height:128px;text-align:center;color:var(--color-subtle)}.page-grid,.stack,.field-group,.ingredient-summary,.schedule-list{display:grid;gap:16px}.schedule-list{gap:8px}.schedule-list__sentinel{width:100%;height:1px}.stack--compact{gap:6px}.page-header{display:grid;gap:12px}.section-heading{display:grid;gap:6px;padding-left:10px;border-left:3px solid var(--color-coral-strong)}.section-heading--nested{gap:4px}.calendar-floating-actions{position:fixed;top:calc(env(safe-area-inset-top) + 16px);right:16px;z-index:40;display:flex;align-items:center;gap:8px}.calendar-view-toggle{position:relative;display:grid;place-items:center;width:40px;height:40px;min-height:40px;padding:0;line-height:0;border-color:#7164721f;box-shadow:0 8px 24px #9a89872e}.calendar-view-toggle__icon{position:absolute;top:50%;left:50%;width:18px;height:18px;transform:translate(-50%,-50%)}.page-header h2,.page-header h3{font-size:1.4rem;line-height:1.25}.page-header p{color:var(--color-subtle);line-height:1.55}.eyebrow{color:var(--color-coral-strong);font-size:.76rem;font-weight:700;letter-spacing:.08em}.button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:16px;padding:12px 16px;min-height:46px;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease,opacity .16s ease}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.button--full{width:100%}.button--primary{color:var(--color-white);background:linear-gradient(180deg,var(--color-coral) 0%,var(--color-coral-strong) 100%);box-shadow:0 12px 28px #ee6f7238}.button--secondary{color:var(--color-text);background:var(--surface-soft);border-color:#71647214}.button--ghost,.button--chip{color:var(--color-coral-strong);background:#f57d7b14;border-color:#f57d7b1f}.button--danger{color:#b94f58;background:var(--color-danger-soft);border-color:#de6f7229}.field-label{font-size:.9rem;font-weight:700}.modal-section-label{padding-left:10px;border-left:3px solid var(--color-coral-strong);color:#111}.recipe-tag-filter{display:flex;flex-wrap:wrap;gap:8px}.recipe-tag-filter__button{display:inline-flex;align-items:center;gap:0;padding:5px 8px;border:0;border-radius:999px;background:var(--recipe-tag-filter-bg, var(--surface-soft));color:var(--recipe-tag-filter-text, #111111);cursor:pointer;opacity:.45;transition:opacity .16s ease,transform .16s ease,box-shadow .16s ease}.recipe-tag-filter__button:hover{transform:translateY(-1px);opacity:.72}.recipe-tag-filter__button.is-active{opacity:1;box-shadow:0 10px 20px #9a898724}.recipe-tag-filter__button:focus-visible{outline:0;box-shadow:0 0 0 3px #f57d7b2e;opacity:1}.recipe-tag-filter__check{display:inline-grid;place-items:center;width:0;height:18px;margin-right:0;overflow:hidden;border-radius:999px;background:#fffffff5;color:var(--recipe-tag-filter-bg, currentColor);opacity:0;transform:scale(.8);transition:width .16s ease,margin-right .16s ease,opacity .16s ease,transform .16s ease}.recipe-tag-filter__check svg{width:10px;height:10px;stroke-width:2.4}.recipe-tag-filter__button.is-active .recipe-tag-filter__check{width:18px;margin-right:8px;opacity:1;transform:scale(1)}.text-input.modal-filter-input{background:transparent;background-color:transparent}.text-input.modal-filter-input:focus{background:transparent;background-color:transparent}.helper-text{color:var(--color-subtle);font-size:.82rem;line-height:1.5}.text-input,.select-input,.text-area{width:100%;min-height:50px;border:1px solid rgba(113,100,114,.12);border-radius:18px;background:var(--surface-soft);color:var(--color-text);padding:12px 14px;outline:none}.text-input:focus,.select-input:focus,.text-area:focus{border-color:#f57d7b80;box-shadow:0 0 0 4px #f57d7b1f}.text-area{min-height:120px;resize:vertical}.meal-segmented{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;padding:2px;border:0;background:transparent}.meal-segmented__indicator{position:absolute;top:2px;bottom:2px;left:2px;width:calc((100% - 4px) / var(--meal-segmented-count));border-radius:999px;background:linear-gradient(180deg,var(--color-coral) 0%,var(--color-coral-strong) 100%);box-shadow:0 10px 22px #ee6f7233;transform:translate(calc(var(--meal-segmented-index) * 100%));transition:transform .24s cubic-bezier(.22,1,.36,1),box-shadow .18s ease}.meal-segmented__button{position:relative;z-index:1;width:100%;min-height:34px;padding:7px 10px;border:0;border-radius:999px;background:transparent;color:var(--color-subtle);font-size:.84rem;font-weight:700;box-shadow:none;transition:color .18s ease,opacity .18s ease,transform .18s ease}.meal-segmented__button:hover{transform:none;color:var(--color-text)}.meal-segmented__button.is-active{color:var(--color-white)}.meal-segmented__button:focus-visible{outline:0;box-shadow:0 0 0 3px #f57d7b2e}.current-menu{gap:0}.current-menu__title{padding-left:10px;margin:0 0 12px;border-left:3px solid var(--color-coral-strong);color:#111;font-size:.9rem;letter-spacing:normal}.current-menu__content{margin-left:12px}.current-menu__entry{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0 6px 10px;border-left:3px solid var(--current-menu-accent, rgba(46, 49, 55, .92));border-bottom:1px solid rgba(113,100,114,.08)}.current-menu__entry.is-active{background:#f57d7b0f}.current-menu__entry:last-child{border-bottom:0}.current-menu__summary{display:grid;gap:2px;flex:1;min-width:0;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}.current-menu__name{min-width:0;color:#111;font-size:.96rem;line-height:1.45;font-weight:400}.current-menu__meta,.current-menu__note{color:var(--color-subtle);font-size:.8rem;line-height:1.4}.current-menu__delete{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--color-subtle);cursor:pointer;transition:color .16s ease,background .16s ease,opacity .16s ease}.current-menu__delete:hover{color:#b94f58;background:#de6f7214}.current-menu__delete-icon{width:18px;height:18px}.current-menu__delete:disabled{opacity:.45;cursor:not-allowed}.recipe-tag-showcase{display:flex;flex-wrap:wrap;gap:8px}.recipe-tag-showcase__item{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;background:var(--recipe-tag-bg, var(--surface-soft));color:var(--recipe-tag-text, #111111);opacity:.8;font-size:.82rem;line-height:1}.recipes-page{gap:0;background:var(--color-white)}.recipes-search-panel{gap:8px;padding-bottom:0;background:var(--color-white);box-shadow:none;border-bottom:0}.recipe-list{display:flex;flex-wrap:wrap;gap:10px;padding-block:12px;padding-inline:12px}.recipe-list--picker{align-items:flex-start}.recipe-list__entry{width:fit-content;max-width:min(100%,320px);background:var(--color-white)}.recipe-list__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:6px;border:1px solid color-mix(in srgb,var(--recipe-picker-accent, #76717a) 55%,white 45%);border-left:4px solid var(--recipe-picker-accent, #76717a);border-radius:16px;background:var(--color-white);color:#111;font-size:.94rem;line-height:1.35;text-align:left;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,opacity .16s ease}.recipe-list__button:hover{transform:translateY(-1px);box-shadow:0 10px 22px #9a898729}.recipe-list__button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.recipe-list__text{display:grid;gap:1px;min-width:0}.recipe-list__nutrients{color:var(--color-subtle);font-size:.8rem;line-height:1.4}.recipe-list__memo{color:#5f5963;font-size:.82rem;line-height:1.45}.recipe-card--calendar{gap:12px;padding:14px 16px 14px 14px;border-left:4px solid var(--recipe-card-accent, var(--color-coral-strong));background:#ffffffdb;box-shadow:0 10px 24px #bca6a11f}.recipe-card__header{gap:10px}.recipe-card__heading{display:grid;gap:4px}.recipe-card__tags{display:flex;flex-wrap:wrap;gap:8px}.recipe-card__ingredient{padding:10px 0 10px 8px;border:0;border-left:2px solid color-mix(in srgb,var(--recipe-card-accent, var(--color-coral-strong)) 40%,white 60%);border-radius:0;background:transparent}.recipe-picker{display:flex;flex-wrap:wrap;gap:10px}.recipe-picker__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:10px 14px 10px 12px;border:1px solid color-mix(in srgb,var(--recipe-picker-accent, #76717a) 55%,white 45%);border-left:4px solid var(--recipe-picker-accent, #76717a);border-radius:16px;background:var(--color-white);color:#111;font-size:.94rem;line-height:1.35;text-align:left;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,opacity .16s ease}.recipe-picker__button.is-active{background:#f57d7b14;box-shadow:0 10px 22px #9a89871f}.recipe-picker__button:hover{transform:translateY(-1px);box-shadow:0 10px 22px #9a898729}.recipe-picker__button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.recipe-picker__selected{display:grid;gap:4px;padding:12px 14px;border-radius:16px;background:#f57d7b14;color:#111}.recipe-picker__selected-note{color:var(--color-subtle);font-size:.82rem;line-height:1.45}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip-row--compact{gap:6px}.chip{display:inline-flex;align-items:center;border-radius:var(--radius-pill);padding:7px 12px;font-size:.8rem;line-height:1}.chip-row--compact .chip{padding:4px 8px;font-size:.72rem}.tag-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:var(--radius-pill);padding:10px 14px;cursor:pointer;opacity:.72}.tag-toggle.is-active{opacity:1;box-shadow:0 0 0 2px #413c471a}.inline-actions{display:flex;flex-wrap:wrap;gap:8px}.recipe-modal__section-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.recipe-modal__icon-button{position:relative;width:36px;min-width:36px;min-height:36px;padding:0;border-radius:999px;line-height:0}.recipe-modal__icon-button .calendar-view-toggle__icon{width:16px;height:16px}.recipe-modal__footer{display:grid;gap:12px}.recipe-modal__actions{justify-content:center}.list-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border-radius:0;background:var(--surface-soft);border:1px solid rgba(113,100,114,.06)}.list-row--button{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:inherit;text-align:left;cursor:pointer}.list-row--tall{align-items:flex-start}.list-row p,.list-row .helper-text{margin-top:2px}.modal-actions{display:flex;justify-content:space-between;gap:10px;padding-top:8px;border-top:1px solid rgba(113,100,114,.08)}.modal-actions .button:last-child{margin-left:auto}.settings-section-header{grid-template-columns:minmax(0,1fr) auto;align-items:center}.settings-add-button{width:36px;min-width:36px;min-height:36px;padding:0;border-radius:999px;line-height:0}.settings-add-button__icon{width:16px;height:16px}.settings-item-list{display:flex;flex-wrap:wrap;gap:8px}.settings-item-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:flex-start;width:auto;max-width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.settings-item-button--text{background:transparent}.settings-item-button--tag{padding:0}.settings-item-button--badge{min-height:36px;padding:7px 12px;border:1px solid var(--settings-item-accent, rgba(245, 125, 123, .12));border-radius:var(--radius-pill);background:var(--surface-soft)}.settings-item-button--badge strong{color:#111;font-size:.84rem;font-weight:500;line-height:1}.calendar-toolbar{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.calendar-toolbar--month{display:inline-grid;grid-template-columns:38px minmax(0,auto) 38px;align-items:center;justify-self:start;width:fit-content;max-width:calc(100% - 112px);gap:8px;padding:4px;border-radius:22px}.calendar-toolbar .button{width:100%}.calendar-toolbar--month .button{width:auto}.calendar-toolbar--month h2{margin:0;min-width:0;padding:0 2px;font-size:.96rem;font-weight:700;text-align:center;letter-spacing:.02em;color:#2f2833;white-space:nowrap}.calendar-nav-button{min-height:36px;padding:0;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease,opacity .18s ease}.calendar-nav-button--month{width:38px;height:38px;min-height:38px;display:grid;place-items:center;aspect-ratio:1 / 1;border:1px solid rgba(245,125,123,.5);border-radius:999px;color:var(--color-coral-strong)}.calendar-nav-button--month:hover:not(:disabled){border-color:#f57d7b80}.calendar-nav-button--stacked{width:34px;height:34px;min-height:34px;display:grid;place-items:center;aspect-ratio:1 / 1;border:0;border-radius:12px;background:transparent;color:var(--color-coral-strong);box-shadow:none}.calendar-nav-button--stacked:hover:not(:disabled){background:#f57d7b1a}.calendar-nav-button--stacked:disabled,.calendar-nav-button--month:disabled{box-shadow:none}.calendar-nav-icon{width:16px;height:16px}.week-section{display:grid;gap:6px}.week-section__header{display:flex;align-items:center;justify-content:flex-start;gap:6px;padding:2px 4px 4px;border-bottom:1px solid rgba(113,100,114,.12)}.week-section__header h3{font-size:1rem;line-height:1.35;font-weight:500}.week-section__actions{display:grid;grid-auto-flow:column;align-items:center;gap:0;margin-left:10px;padding:2px;border:1px solid rgba(245,125,123,.5);border-radius:16px}.week-section__actions>.calendar-nav-button--stacked+.calendar-nav-button--stacked{border-left:1px solid rgba(245,125,123,.5);border-top-left-radius:0;border-bottom-left-radius:0}.week-section__actions>.calendar-nav-button--stacked:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.week-section__days{display:grid;gap:6px}.schedule-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:grid;grid-template-columns:38px 1fr;gap:10px;width:100%;padding:0;border:0;border-radius:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.schedule-card.is-disabled,.month-cell.is-disabled{opacity:.38;cursor:not-allowed}.schedule-card__date{display:grid;align-content:start;justify-items:center;gap:6px;padding-top:10px;color:var(--color-subtle)}.schedule-card__date-chip{display:grid;place-items:center;gap:2px;width:38px;height:38px;padding:4px 0;border-radius:999px;background:#faf7f4;box-shadow:inset 0 0 0 1px #7164720f}.schedule-card__date strong{font-size:.88rem;color:var(--color-text);line-height:1;font-weight:500}.schedule-card__date span{font-size:.56rem;line-height:1;font-weight:500}.schedule-card__date small{color:var(--color-subtle);font-size:.68rem;line-height:1}.schedule-card__date.is-saturday .schedule-card__date-chip,.month-grid__label.is-saturday,.month-cell.is-saturday .month-cell__head strong{background:#f3f8ff}.schedule-card__date.is-sunday .schedule-card__date-chip,.month-grid__label.is-sunday,.month-cell.is-sunday .month-cell__head strong{background:#fff4f4}.schedule-card__date.is-saturday strong,.schedule-card__date.is-saturday span,.month-grid__label.is-saturday,.month-cell.is-saturday .month-cell__head strong{color:#4d86d9}.schedule-card__date.is-sunday strong,.schedule-card__date.is-sunday span,.month-grid__label.is-sunday,.month-cell.is-sunday .month-cell__head strong{color:#d85c67}.schedule-card.is-today .schedule-card__date-chip{background:#2e3137;box-shadow:none}.schedule-card.is-today .schedule-card__date-chip strong,.schedule-card.is-today .schedule-card__date-chip span{color:#fff}.schedule-card.is-today .schedule-card__date small{color:var(--color-text);font-weight:700}.schedule-card__body{display:grid;gap:10px;min-height:96px;padding:12px 14px;border:1px solid rgba(113,100,114,.08);border-radius:18px;background:var(--color-white);box-shadow:0 8px 18px #bca6a124}.schedule-card__empty{display:grid;place-items:center;min-height:96px;color:#8f8792b3;font-size:.84rem;letter-spacing:.01em}.schedule-meal{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:start;gap:10px}.schedule-meal+.schedule-meal{padding-top:8px;border-top:1px solid rgba(113,100,114,.08)}.schedule-meal__title{color:var(--color-subtle);font-size:.78rem;font-weight:700;line-height:1.5;padding-top:1px}.schedule-meal__body{display:grid;gap:6px;min-width:0}.schedule-meal__entries{display:grid;gap:6px}.schedule-entry{padding-left:4px;border-left:2px solid rgba(113,100,114,.08)}.meal-item__content{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px}.meal-item__content strong{grid-column:2;font-size:1rem;line-height:1.4;font-weight:500;min-width:0}.meal-item__meta,.meal-item__note{grid-column:2;color:var(--color-subtle);font-size:.78rem;line-height:1.4}.schedule-entry .chip{padding:3px 8px;font-size:.68rem;white-space:nowrap}.nutrient-summary{display:grid;gap:6px}.nutrient-summary__header{display:flex;align-items:center;justify-content:space-between;gap:8px}.nutrient-summary__header--compact{gap:6px}.nutrient-summary__label{color:var(--color-subtle);font-size:.72rem;line-height:1.3}.nutrient-summary__total{color:#3c3742;font-size:.68rem;font-weight:500;white-space:nowrap}.nutrient-summary__list{display:grid;gap:4px}.nutrient-summary__item{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:.74rem;line-height:1.4;color:var(--color-text)}.nutrient-summary__item strong{font-size:.74rem;font-weight:500;white-space:nowrap}.nutrient-summary--meal{margin-top:2px;padding-top:8px}.nutrient-summary--meal .nutrient-summary__label,.nutrient-summary--meal .nutrient-summary__item,.nutrient-summary--meal .nutrient-summary__item strong{font-size:.68rem}.nutrient-summary--day{padding-top:10px;margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px;border-top:2px solid rgba(113,100,114,.08)}.nutrient-summary--week{margin-left:48px;padding:10px 12px;border:1px solid rgba(245,125,123,.14);border-radius:16px;background:#ffffffd1}.nutrient-summary--week .nutrient-summary__label{font-size:.68rem}.nutrient-summary__item--week{align-items:center;gap:10px;padding:6px 0;border-top:1px solid rgba(113,100,114,.08)}.nutrient-summary__item--week:first-child{border-top:0;padding-top:0}.nutrient-summary__item--week>strong,.nutrient-summary__item--month-week>strong{flex:0 0 7ch;text-align:right;font-variant-numeric:tabular-nums}.nutrient-summary__item-main{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-width:0;flex:1}.nutrient-summary__rank{display:grid;place-items:center;width:18px;height:18px;border-radius:999px;background:#f57d7b1f;color:var(--color-coral-strong);font-size:.62rem;font-weight:700;line-height:1}.nutrient-summary__item-copy{display:grid;gap:4px;min-width:0}.nutrient-summary__meter{position:relative;display:block;width:100%;height:4px;overflow:hidden;border-radius:999px;background:#f57d7b1f}.nutrient-summary__meter-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-coral) 0%,#f3b05d 100%)}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;border-top:1px solid rgba(113,100,114,.08);border-left:1px solid rgba(113,100,114,.08)}.month-grid--labels{gap:0;border:0}.month-grid__label{text-align:center;font-size:.75rem;color:var(--color-subtle)}.month-grid__week-summary{grid-column:1 / -1;padding:8px 10px;border-right:1px solid rgba(113,100,114,.08);border-bottom:1px solid rgba(245,125,123,.14);border-top:1px solid rgba(245,125,123,.14);background:#fffffff5}.nutrient-summary--month-week .nutrient-summary__label,.nutrient-summary--month-week .nutrient-summary__total{font-size:.62rem}.nutrient-summary--month-week .nutrient-summary__list{grid-template-columns:minmax(0,1fr);gap:4px}.nutrient-summary--month-week .nutrient-summary__item,.nutrient-summary--month-week .nutrient-summary__item strong{font-size:.68rem}.nutrient-summary__item--month-week{align-items:center;gap:8px}.nutrient-summary--month-week .nutrient-summary__item-main{grid-template-columns:minmax(0,1fr);gap:0}.nutrient-summary--month-week .nutrient-summary__item-copy{gap:3px}.nutrient-summary--month-week .nutrient-summary__meter{height:3px}.month-cell{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;min-height:94px;padding:6px 5px;border:0;border-right:1px solid rgba(113,100,114,.08);border-bottom:1px solid rgba(113,100,114,.08);border-radius:0;background:var(--color-white);color:inherit;text-align:left;cursor:pointer}.month-cell.is-today .month-cell__head strong{background:#fcf1e8;color:#000}.month-cell.is-muted{opacity:.46}.month-cell__head{display:block;margin-bottom:5px;font-size:.72rem;color:var(--color-subtle)}.month-cell__head strong{color:var(--color-text);display:block;font-size:.8rem;font-weight:500;line-height:1}.month-cell__head span{display:block;margin-top:4px;font-size:.62rem}.month-cell__summary{display:grid;gap:5px}.month-cell__meal{display:grid;gap:2px}.month-cell__meal-label{font-size:.56rem;line-height:1.1;color:var(--color-subtle)}.month-cell__meal-entries{display:grid;gap:2px}.month-cell__summary-item{border-left:2px solid var(--month-cell-tag-color, rgba(113, 100, 114, .2));padding:1px 0 1px 4px;background:linear-gradient(90deg,#ffffffeb,#faf6f3b8);overflow:hidden;font-size:.64rem;line-height:1.2;color:var(--color-text);text-overflow:ellipsis;white-space:normal;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.recipe-card{gap:14px}.ingredient-row{display:grid;gap:10px}.ingredient-row--editor{grid-template-columns:minmax(0,1fr) 92px auto;align-items:start;padding:12px;border-radius:20px;background:#fff;border:1px solid rgba(113,100,114,.1)}.ingredient-row__meta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.ingredient-row--wide{grid-template-columns:minmax(0,1fr) 112px;align-items:center}.ingredient-row__grams{width:92px}.recipe-modal__row-delete{align-self:center}.recipe-ingredient-picker,.recipe-ingredient-picker__field{position:relative}.recipe-ingredient-picker__icon{position:absolute;top:50%;left:12px;width:16px;height:16px;transform:translateY(-50%);color:#7164728f;pointer-events:none}.recipe-ingredient-picker__input{padding-left:38px}.recipe-ingredient-picker__menu{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:20;display:grid;gap:6px;max-height:220px;padding:8px;overflow-y:auto;border:1px solid rgba(113,100,114,.1);border-radius:18px;background:#fff;box-shadow:0 18px 36px #9a898724}.recipe-ingredient-picker__option{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;padding:10px 12px;border:0;border-radius:12px;background:transparent;color:#111;text-align:left;cursor:pointer}.recipe-ingredient-picker__option:hover,.recipe-ingredient-picker__option.is-active{background:#f57d7b14;color:var(--color-coral-strong)}.recipe-nutrient-list{display:grid;gap:8px}.recipe-nutrient-list__row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 0 8px;color:#3c3742;border-bottom:1px solid rgba(113,100,114,.08)}.recipe-nutrient-list__row:last-child{padding-bottom:0;border-bottom:0}@media(max-width:720px){.ingredient-row--editor{grid-template-columns:minmax(0,1fr) 78px auto}.ingredient-row__grams{width:78px}}.status-banner{padding:12px 14px;border-radius:0;font-size:.92rem}.status-banner--error{color:#b4545b;background:var(--color-danger-soft)}.status-banner--info{color:#4d6ebb;background:var(--color-info-soft)}.bottom-nav{--bottom-nav-index: 0;--bottom-nav-count: 3;position:fixed;left:0;right:0;bottom:0;transform:none;z-index:30;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:100%;padding:10px 10px env(safe-area-inset-bottom);border-radius:0;background:#fffffff0;border:1px solid rgba(113,100,114,.08);box-shadow:0 18px 40px #9a89873d;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.bottom-nav__indicator{position:absolute;top:10px;bottom:env(safe-area-inset-bottom);left:10px;width:calc((100% - 20px - (var(--bottom-nav-count) - 1) * 6px) / var(--bottom-nav-count));border-radius:16px;background:var(--color-coral-soft);transform:translate(calc(var(--bottom-nav-index) * (100% + 6px)));transition:transform .32s cubic-bezier(.22,1,.36,1);will-change:transform}.bottom-nav__item{position:relative;z-index:1;display:grid;align-content:center;justify-items:center;gap:4px;min-height:56px;padding:7px 8px;border-radius:0;color:var(--color-subtle);transform:translateY(0) scale(1);transition:color .18s ease,transform .26s cubic-bezier(.22,1,.36,1)}.bottom-nav__item.is-active{border-radius:16px;color:var(--color-coral-strong);transform:translateY(-2px) scale(1.02)}.bottom-nav__item:active{transform:translateY(0) scale(.97)}.bottom-nav__symbol{display:grid;place-items:center;width:24px;height:24px;border-radius:12px;background:var(--surface-soft);font-size:.82rem;font-weight:700;transform:translateY(0) scale(1);box-shadow:0 0 #f07a6a00;transition:transform .26s cubic-bezier(.22,1,.36,1),background .22s ease,color .18s ease,box-shadow .26s ease}.bottom-nav__icon{width:16px;height:16px;transform:scale(1);transition:transform .26s cubic-bezier(.22,1,.36,1)}.bottom-nav__item.is-active .bottom-nav__symbol{background:linear-gradient(180deg,var(--color-coral) 0%,var(--color-coral-strong) 100%);color:var(--color-white);transform:translateY(-1px) scale(1.08);box-shadow:0 10px 20px #f07a6a47}.bottom-nav__item.is-active .bottom-nav__icon{transform:scale(1.06)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:clamp(56px,16vh,112px) 12px 24px;background:#40394259;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity .22s ease,backdrop-filter .22s ease}.modal-backdrop.is-open{opacity:1}.modal-backdrop.is-closing{pointer-events:none}.modal-sheet{width:min(430px,100%);max-height:calc(100vh - clamp(56px,16vh,112px) - 24px);display:flex;flex-direction:column;border-radius:24px;overflow:hidden;opacity:0;transform:translateY(20px) scale(.96);transition:opacity .22s ease,transform .26s cubic-bezier(.22,1,.36,1);will-change:transform,opacity}.modal-sheet.is-open{opacity:1;transform:translateY(0) scale(1)}.modal-header,.modal-content{padding:18px}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid rgba(113,100,114,.08)}.modal-header__title-row{display:flex;align-items:center;gap:10px;min-width:0}.modal-header h2{font-size:1.2rem}.modal-header__actions{display:flex;align-items:center;gap:8px}.modal-header__danger{min-height:34px;padding:8px 12px;border-radius:999px;font-size:.82rem;box-shadow:none}.modal-content{display:grid;min-height:0;flex:1;gap:16px;overflow:auto;-webkit-overflow-scrolling:touch}.modal-close{width:38px;height:38px;border:0;border-radius:50%;background:var(--surface-soft);color:var(--color-subtle);cursor:pointer}@media(prefers-reduced-motion:reduce){.modal-backdrop,.modal-sheet{transition:none}}.login-panel{margin-top:28px;max-width:min(520px,calc(100vw - 24px));margin-inline:auto}@media(min-width:640px){.app-shell{max-width:none;padding-inline:0}.page-header{grid-template-columns:minmax(0,1fr) auto;align-items:center}.modal-sheet{width:min(520px,100%);border-radius:28px}}
