.app-loading{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:9999;background:#fffdf9bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.app-loading__spinner{border:4px solid #b4643c33;border-top-color:#b4643c;border-radius:50%;width:44px;height:44px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app{flex-direction:column;min-height:100vh;display:flex}.dev-env-bar{color:#fff;text-align:center;letter-spacing:.12em;background:#e07b39;width:100%;padding:3px 0;font-size:.7rem;font-weight:700}.app-header{background:var(--warm-white);border-bottom:1px solid var(--border);z-index:100;box-shadow:var(--shadow);padding:0 24px;position:sticky;top:0}.app-header__inner{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:16px 0;display:flex}.app-header__inner .header-actions{margin-left:auto}.app-logo{align-items:center;gap:12px;display:flex}.logo-avatar{cursor:pointer;border:2px solid var(--border);background:var(--cream);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:visible}.logo-avatar:hover{border-color:var(--terracotta);box-shadow:var(--shadow-md)}.logo-avatar__img{object-fit:cover;border-radius:50%;width:52px;height:52px}.logo-avatar--sm,.logo-avatar--sm .logo-avatar__img{width:40px;height:40px}.logo-avatar__placeholder{font-size:1.2rem;line-height:1}.logo-avatar__badge{background:var(--terracotta);color:#fff;border:2px solid var(--warm-white);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:.75rem;font-weight:700;line-height:1;display:flex;position:absolute;bottom:-2px;right:-2px}.app-brand{flex-shrink:0;align-items:center;gap:12px;display:flex}.app-title{letter-spacing:.04em;color:var(--brown);font-family:Cormorant Garamond,serif;font-size:1.8rem;font-weight:300;line-height:1.1}.app-week-label{letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted);margin-top:3px;font-family:Jost,sans-serif;font-size:.58rem;font-weight:400}.app-header__panel{border-top:1px solid var(--border);background:var(--warm-white)}.app-header__panel-inner{max-width:1200px;margin:0 auto;padding:20px 24px 28px}.app-nav{align-items:center;gap:32px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.app-nav__tab{letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:1px solid #0000;padding:4px 0;font-family:Jost,sans-serif;font-size:.65rem;font-weight:400;transition:color .15s,border-color .15s}.app-nav__tab:hover{color:var(--brown)}.app-nav__tab--active{color:var(--terracotta);border-bottom-color:var(--terracotta)}.week-header{align-items:center;gap:10px;display:flex}.week-header__label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.78rem;font-weight:600}.panel-page{width:100%;max-width:860px;margin:0 auto}.header-actions{align-items:center;gap:8px;min-width:0;display:flex;position:relative}.settings-wrap{position:relative}.btn-settings{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:8px 10px;font-size:.9rem;line-height:1;transition:border-color .15s}.btn-settings:hover{border-color:var(--terracotta)}.settings-dropdown{border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:20;background:#fff;min-width:200px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.settings-row{color:var(--text-dark);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;font-size:.85rem;display:flex}.settings-row input[type=checkbox]{accent-color:var(--terracotta);cursor:pointer;flex-shrink:0;width:16px;height:16px}.settings-hint{color:var(--text-light);margin:0;font-size:.75rem;line-height:1.4}.settings-option{text-align:left;width:100%;color:var(--brown);cursor:pointer;border-radius:var(--radius-sm);white-space:nowrap;background:0 0;border:none;padding:9px 12px;font-family:Inter,sans-serif;font-size:.82rem;transition:background .12s;display:block}.settings-option:hover{background:var(--terracotta-pale);color:var(--terracotta)}.settings-option--dashboard{border-top:1px solid var(--border);color:#a05040;margin-top:4px}.settings-option--dashboard:hover{color:#c0392b;background:#fdf0ed}.settings-option--signout{color:#a05040}.settings-option--signout:hover{color:#c0392b;background:#fdf0ed}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;background:#50463273;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.feedback-modal{background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:14px;width:420px;max-width:90vw;max-height:85vh;padding:32px 28px;display:flex;overflow-y:auto;box-shadow:0 8px 40px #50463238}.feedback-modal__header{justify-content:center;align-items:center;width:100%;display:flex;position:relative}.feedback-modal__title{color:#3a2e28;letter-spacing:.01em;text-align:center;font-family:Cormorant Garamond,serif;font-size:1.4rem;font-weight:400}.feedback-modal__close{cursor:pointer;color:#9a8468;background:0 0;border:none;padding:2px 6px;font-size:1rem;position:absolute;right:0}.feedback-modal__hint{color:#7a6040;text-align:center;margin:0;font-size:.8rem;line-height:1.5}.feedback-modal__textarea{color:#3a2e28;resize:vertical;box-sizing:border-box;background:#f5f1ecb3;border:1px solid #ddd0c0;border-radius:10px;outline:none;width:100%;padding:10px 14px;font-family:inherit;font-size:.85rem;line-height:1.5}.feedback-modal__submit{letter-spacing:.08em;text-transform:uppercase;color:#fff;cursor:pointer;background:linear-gradient(175deg,#ec8e7a 0%,#d06858 55%,#da7565 100%);border:none;border-radius:999px;padding:9px 32px;font-family:inherit;font-size:.78rem;box-shadow:0 2px 8px #b0503238}.feedback-modal__submit:disabled{opacity:.5;cursor:default}.feedback-modal__thanks{text-align:center;color:#6b7845;padding:16px 0;font-size:.88rem}.account-settings__section{background:#fdfaf5;border:1px solid #ddd0c0;border-radius:14px;flex-direction:column;gap:10px;width:100%;padding:18px;display:flex}.account-settings__label{color:#7a6040;letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:600}.account-settings__current{color:#9a8468;margin:-4px 0 4px;font-size:.82rem}.account-settings__input{color:#3a2e28;box-sizing:border-box;background:#f5f1ecb3;border:1px solid #ddd0c0;border-radius:999px;outline:none;width:100%;padding:9px 14px;font-family:inherit;font-size:.82rem}.account-settings__error{color:#c0392b;text-align:center;margin:0;font-size:.74rem}.account-settings__success{color:#6b7845;text-align:center;margin:0;font-size:.82rem}.account-settings__btn{letter-spacing:.06em;text-transform:uppercase;color:#fff;cursor:pointer;background:linear-gradient(175deg,#ec8e7a 0%,#d06858 55%,#da7565 100%);border:none;border-radius:999px;width:100%;padding:9px;font-family:inherit;font-size:.74rem;box-shadow:0 2px 8px #b0503238}.account-settings__btn:disabled{opacity:.5;cursor:default}.account-settings__password-wrap{width:100%;position:relative}.account-settings__password-wrap .account-settings__input{padding-right:36px}.account-settings__eye-btn{cursor:pointer;color:#9a8468;background:0 0;border:none;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.account-settings__photo-row{align-items:center;gap:14px;display:flex}.account-settings__btn--inline{width:auto;padding:8px 20px}.meal-plan-settings-modal{width:100%;max-width:820px;max-height:90vh}.meal-plan-settings__top-row{grid-template-columns:1fr 1fr;gap:14px;width:100%;display:grid}.meal-plan-settings__pdf-row{justify-content:center;width:100%;display:flex}.meal-plan-settings__pdf-section{width:100%;max-width:380px}.account-settings-modal{width:100%;max-width:820px}.meal-plan-rules-body{color:#3a2e28;font-size:.82rem;line-height:1.55}.meal-plan-rules-body h2{color:#7a6040;letter-spacing:.06em;text-transform:uppercase;margin:18px 0 6px;font-family:inherit;font-size:.72rem;font-weight:600}.meal-plan-rules-body h2:first-child{margin-top:4px}.meal-plan-rules-body .rule{align-items:baseline;gap:12px;margin-bottom:7px;display:flex}.meal-plan-rules-body .rule-num{letter-spacing:.06em;color:#c17a56;flex-shrink:0;width:18px;padding-top:2px;font-size:.58rem;font-weight:700}.meal-plan-rules-body .rule-text{color:#2a1e10;font-size:.82rem;line-height:1.55}.meal-plan-rules-body .guide-text{color:#9a8468;margin:0;font-size:.82rem;line-height:1.55}.meal-plan-rules-body .guide-text strong{color:#9a8468;font-weight:600}.meal-plan-rules-body .rule-text strong{font-weight:600}.meal-plan-rules-body .rule-text em{color:#7a6040;font-style:normal}.meal-plan-rules-body .sub-rule{color:#9a8468;margin:4px 0 4px 30px;font-size:.78rem;line-height:1.5}.meal-plan-rules-body .sub-rule-label{color:#9a8468;font-weight:600}.meal-plan-rules-body .note{color:#5a4030;background:#faf7f3;border-left:3px solid #ede5d8;border-radius:0 4px 4px 0;margin:8px 0 4px;padding:8px 12px;font-size:.78rem;line-height:1.55}.meal-plan-rules-body .divider{border:none;border-top:1px solid #ede5d8;margin:16px 0}.meal-plan-rules-body table{border-collapse:collapse;width:calc(100% - 30px);margin-top:6px;margin-left:30px;font-size:.78rem}.meal-plan-rules-body th{letter-spacing:.08em;text-transform:uppercase;color:#9a8468;text-align:left;border-bottom:1px solid #ede5d8;padding:0 10px 6px 0;font-size:.56rem;font-weight:700}.meal-plan-rules-body td{color:#9a8468;vertical-align:top;border-bottom:1px solid #f5ede4;padding:6px 10px 6px 0;line-height:1.45}.meal-plan-rules-body td:last-child{color:#9a8468}.meal-plan-rules-body tr:last-child td{border-bottom:none}.recipe-overview-modal{border-radius:var(--radius);background:#fff;width:100%;max-width:480px;box-shadow:0 8px 48px #2a1e1033}.recipe-overview-modal__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;padding:24px 28px 16px;display:flex}.recipe-overview-modal__title{color:var(--brown);margin-bottom:2px;font-family:Cormorant Garamond,serif;font-size:1.5rem;font-weight:400}.recipe-overview-modal__sub{letter-spacing:.09em;text-transform:uppercase;color:var(--text-light);font-size:.65rem;font-weight:600}.recipe-overview-modal__body{padding:24px 28px 28px}.recipe-overview__bars{flex-direction:column;gap:13px;margin-bottom:24px;display:flex}.recipe-overview__row{grid-template-columns:82px 1fr 28px;align-items:center;gap:12px;display:grid}.recipe-overview__label{letter-spacing:.09em;text-transform:uppercase;color:var(--text-light);text-align:right;font-size:.65rem;font-weight:600}.recipe-overview__track{background:#f5f0ea;border-radius:5px;height:24px;overflow:hidden}.recipe-overview__fill{border-radius:5px;min-width:4px;height:100%;transition:width .5s}.recipe-overview__count{color:var(--text-light);font-size:.7rem;font-weight:600}.recipe-overview__footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding-top:18px;display:flex}.recipe-overview__note{color:var(--text-light);max-width:240px;font-size:.62rem;line-height:1.6}.recipe-overview__total{text-align:right;flex-shrink:0}.recipe-overview__total-num{color:var(--brown);font-family:Cormorant Garamond,serif;font-size:2.2rem;font-weight:400;line-height:1;display:block}.recipe-overview__total-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-light);margin-top:2px;font-size:.58rem;display:block}.adjust-plan-modal{background:var(--cream);border-radius:var(--radius);width:100%;max-width:400px;box-shadow:0 8px 48px #2a1e1033}.adjust-plan-modal__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.adjust-plan-modal__title{color:var(--brown);font-family:Cormorant Garamond,serif;font-size:1.4rem;font-weight:400}.adjust-plan-modal__body{flex-direction:column;gap:16px;padding:20px 24px 24px;display:flex}.adjust-plan-row{cursor:pointer;grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;display:grid}.adjust-plan-row__label{color:var(--brown);grid-area:1/1;font-size:.88rem;font-weight:500}.adjust-plan-row__desc{color:var(--text-light);grid-area:2/1;font-size:.75rem;line-height:1.4}.adjust-plan-toggle{accent-color:var(--terracotta);cursor:pointer;grid-area:1/2/3;width:18px;height:18px}.adjust-plan-hint{color:var(--text-light);margin-bottom:12px;font-size:.72rem}.adjust-plan-divider{border:none;border-top:1px solid var(--border);margin:16px 0}.adjust-slots-list{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.adjust-slot{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background:#fff;align-items:center;gap:10px;padding:10px 12px;transition:box-shadow .12s,opacity .12s,border-color .12s;display:flex}.adjust-slot:active{cursor:grabbing}.adjust-slot--dragging{opacity:.4}.adjust-slot--over{border-color:var(--terracotta);box-shadow:0 0 0 2px var(--terracotta-pale)}.adjust-slot__handle{color:var(--text-light);cursor:grab;flex-shrink:0;font-size:1rem;line-height:1}.adjust-slot__name{color:var(--brown);flex:1;font-family:Cormorant Garamond,serif;font-size:1.05rem}.adjust-slot__remove{cursor:pointer;color:var(--text-light);opacity:0;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:1.1rem;line-height:1;transition:opacity .12s,color .12s}.adjust-slot:hover .adjust-slot__remove{opacity:1}.adjust-slot__remove:hover{color:var(--terracotta)}.adjust-add-btn{border:1px dashed var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;margin-bottom:4px;padding:10px;font-family:Inter,sans-serif;font-size:.82rem;transition:border-color .12s,color .12s}.adjust-add-btn:hover{border-color:var(--terracotta);color:var(--terracotta)}.adjust-add-options{background:var(--terracotta-pale);border-radius:var(--radius-sm);margin-bottom:4px;padding:12px}.adjust-add-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:.72rem;font-weight:500}.adjust-add-chips{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.adjust-add-chip{border:1px solid var(--border);color:var(--brown);cursor:pointer;background:#fff;border-radius:20px;padding:5px 12px;font-family:Inter,sans-serif;font-size:.78rem;transition:border-color .12s,background .12s}.adjust-add-chip:hover{border-color:var(--terracotta);background:var(--terracotta-pale);color:var(--terracotta)}.adjust-add-cancel{color:var(--text-light);cursor:pointer;background:0 0;border:none;padding:0;font-size:.75rem;text-decoration:underline}.adjust-add-cancel:hover{color:var(--brown)}.btn-ai-plan{color:#fff8eef2;border-radius:var(--radius-sm);letter-spacing:.03em;text-shadow:0 1px 3px #50140559;background-image:linear-gradient(112deg,#fff0e138 0%,#0000 35%,#00000012 70%,#c8644b1f 100%),linear-gradient(210deg,#fffaeb2e 0%,#0000 45%),linear-gradient(175deg,#ec8e7a 0%,#d06858 55%,#da7565 100%);border:none;align-items:center;gap:5px;padding:9px 16px;font-size:.85rem;font-weight:600;transition:filter .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffdcb433,0 2px 8px #8c321440}.btn-ai-plan:after{content:"";pointer-events:none;background:linear-gradient(112deg,#ffffff12 0%,#0000 50%);position:absolute;inset:0}.btn-ai-plan:hover:not(:disabled){filter:brightness(1.08);box-shadow:inset 0 1px #ffdcb433,0 4px 12px #8c321452}.btn-ai-plan:disabled{opacity:.6;cursor:not-allowed}.app-main{flex-direction:column;gap:20px;width:100%;max-width:1200px;margin:0 auto;padding:10px 24px 60px;display:flex}.ai-error-banner{color:#a05040;cursor:pointer;background:#fdf0ed;border:1px solid #e8b4a8;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:.82rem;display:flex}.ai-error-banner__dismiss{opacity:.6;flex-shrink:0;font-size:.7rem}.app-footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);background:var(--warm-white);padding:20px;font-size:.78rem}.plan-grid-scroller{overflow-x:auto}.plan-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;display:grid}.plan-grid--7{grid-template-columns:repeat(7,minmax(0,1fr));min-width:140%}@media (width<=1100px){.plan-grid{grid-template-columns:repeat(3,1fr)}.plan-grid--7{min-width:unset;grid-template-columns:repeat(7,minmax(160px,1fr))}}@media (width<=700px){.bottom-bar{flex-direction:column;align-items:center;gap:16px;padding:24px 0 32px;display:flex}.bottom-bar__left{justify-content:center}.bottom-bar__right{display:none}.plan-grid{grid-template-columns:repeat(2,1fr);gap:10px}.plan-grid--7{min-width:unset;grid-template-columns:repeat(2,1fr)}.app-header{padding:0 16px}.app-header__inner{padding:10px 0}.app-title{font-size:1.3rem}.logo-avatar--sm,.logo-avatar--sm .logo-avatar__img{width:34px;height:34px}.app-nav{z-index:200;border-top:1px solid var(--border);padding:12px 0 max(12px, env(safe-area-inset-bottom));background:#fff;justify-content:space-around;align-items:stretch;gap:0;display:flex;position:fixed;inset:auto 0 0;transform:none;box-shadow:0 -4px 16px #0000001f}.app-nav__tab{letter-spacing:.12em;border-top:2px solid #0000;border-bottom:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:10px 4px;font-size:.58rem;font-weight:600;display:flex}.app-nav__tab--active{color:var(--terracotta);border-bottom:none;border-top-color:var(--terracotta)}.app-nav__tab--plan-mobile{display:flex}.app-main{padding-bottom:90px;padding-left:16px;padding-right:16px}.week-section__header{flex-wrap:wrap;gap:8px}.week-section__header .week-header{flex-wrap:wrap}.meal-card,.meal-card__recipe-name{font-size:.85rem}.meal-type-label{letter-spacing:.1em;font-size:.5rem}.app-footer{display:none}.recipe-modal-overlay{align-items:flex-end;padding:0}.recipe-modal{border-radius:16px 16px 0 0;max-height:92vh}}.app-nav__tab--plan-mobile{display:none}.day-column{flex-direction:column;gap:12px;display:flex}.day-column--weekend .day-index{color:var(--terracotta)}.day-column--weekend .day-column__header{border-bottom-color:color-mix(in srgb, var(--terracotta) 30%, var(--terracotta-pale))}.day-column--weekend .meal-card{border-color:color-mix(in srgb, var(--terracotta) 14%, var(--border));background:#fffcf8}.day-column--weekend .meal-card__header{background:color-mix(in srgb, var(--terracotta-pale) 55%, var(--cream))}.week-note{padding:8px 0 16px}.week-note__divider{align-items:center;gap:16px;margin-bottom:18px;display:flex}.week-note__divider:before,.week-note__divider:after{content:"";background:var(--border);flex:1;height:1px}.week-note__label{letter-spacing:.22em;text-transform:uppercase;color:var(--text-light);white-space:nowrap;font-family:Jost,sans-serif;font-size:.6rem;font-weight:500}.week-note__textarea{resize:none;width:100%;min-height:2.5em;color:var(--brown);letter-spacing:.01em;background:0 0;border:none;outline:none;padding:0;font-family:Cormorant Garamond,serif;font-size:1.15rem;font-weight:300;line-height:1.75;overflow:hidden}.week-note__textarea::placeholder{color:var(--text-muted);opacity:.45;font-style:italic}.day-column__header{border-bottom:2px solid var(--terracotta-pale);flex-direction:row;justify-content:space-between;align-items:flex-end;padding:0 0 8px;display:flex}.day-column__header-left{flex-direction:column;gap:2px;display:flex}.day-column__header-right{padding-bottom:2px}.weekend-action-row{justify-content:flex-end;margin:4px 0 0;display:flex}.btn-weekend-ai{color:#fff8eef2;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;white-space:nowrap;border:none;border-radius:20px;align-items:center;gap:5px;width:auto;padding:5px 16px;font-size:.62rem;font-weight:500;transition:filter .15s,box-shadow .15s;display:flex}.btn-weekend-ai:hover:not(:disabled){filter:brightness(1.08)}.btn-weekend-ai:disabled{opacity:.5;cursor:not-allowed}.day-index{letter-spacing:.02em;color:var(--terracotta);font-family:Cormorant Garamond,serif;font-size:1.2rem;font-weight:400}.day-date{color:var(--text-muted);font-size:.75rem}.day-column__meals{flex-direction:column;gap:10px;display:flex}.meal-card{background:var(--warm-white);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);transition:box-shadow .2s;position:relative}.meal-card:hover{box-shadow:var(--shadow-md)}.meal-card__header{background:var(--cream);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 12px 8px;display:flex}.meal-type-label{color:var(--text-muted);letter-spacing:.2em;text-transform:uppercase;font-family:Jost,sans-serif;font-size:.58rem;font-weight:500}.btn-icon{width:28px;height:28px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.btn-icon:hover{background:var(--terracotta-pale);color:var(--terracotta)}.btn-icon--danger:hover{color:#c0392b;background:#fde8e8}.meal-card__menu-anchor{padding:8px 12px 10px;position:relative}.suggest-dropdown{border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:10;background:#fff;min-width:200px;position:absolute;top:100%;left:0;overflow:hidden}.meal-card__footer-actions{align-items:center;gap:10px;display:flex}.meal-card__item-menu-wrap{flex-shrink:0;position:relative}.meal-card__item-menu-btn{cursor:pointer;color:var(--text-light);opacity:0;background:0 0;border:none;align-items:center;padding:0 2px;transition:color .15s,opacity .15s;display:inline-flex}.meal-card__name-row:hover .meal-card__item-menu-btn,.meal-card__side:hover .meal-card__item-menu-btn,.meal-card__item-menu-btn:focus{opacity:1}.meal-card__item-menu-btn:hover{color:var(--terracotta)}.meal-card__item-dropdown{border:1px solid var(--border);z-index:100;background:#fff;border-radius:8px;flex-direction:column;min-width:190px;padding:4px 0;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 16px #0000001f}.meal-card__item-option{cursor:pointer;text-align:left;color:var(--text);white-space:nowrap;background:0 0;border:none;padding:8px 14px;font-size:.82rem;transition:background .12s}.meal-card__item-option:hover{background:var(--cream-dark)}.meal-card__item-option--danger{color:#b94040}.meal-card__item-option--danger:hover{background:#fdf0f0}.meal-card__item-option--accent{color:var(--terracotta)}.meal-card__item-option--accent:hover{background:var(--terracotta-pale)}.meal-card__add-another{cursor:pointer;color:var(--text-light);background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:.78rem;transition:color .15s;display:inline-flex}.meal-card__add-another:hover{color:var(--terracotta)}.suggest-option{text-align:left;width:100%;color:var(--text);align-items:center;gap:8px;padding:10px 14px;font-size:.82rem;transition:background .15s;display:flex}.suggest-option:hover{background:var(--cream)}.suggest-option--nyt,.suggest-option--diningout,.suggest-option--side{border-top:1px solid var(--border)}.suggest-picker{border-top:1px solid var(--border);padding:6px}.suggest-picker__search{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--warm-white);width:100%;color:var(--text);box-sizing:border-box;outline:none;margin-bottom:4px;padding:5px 8px;font-size:.8rem}.suggest-picker__search:focus{border-color:var(--terracotta)}.suggest-picker__list{flex-direction:column;max-height:180px;display:flex;overflow-y:auto}.suggest-picker__item{text-align:left;color:var(--text);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:5px 8px;font-size:.82rem}.suggest-picker__item:hover{background:var(--cream)}.suggest-picker__item--current{color:var(--terracotta);font-weight:600}.suggest-picker__item--focused{background:var(--cream);outline:none}.suggest-option--focused{background:var(--cream)}.suggest-picker__empty{color:var(--text-light);padding:8px 10px;font-size:.8rem;font-style:italic}.meal-card__body{flex-direction:column;gap:10px;padding:12px;display:flex}.meal-card__image{object-fit:cover;border-radius:var(--radius-sm);width:100%;height:110px}.meal-name{letter-spacing:.01em;color:var(--brown);flex-wrap:wrap;align-items:center;gap:6px;font-family:Cormorant Garamond,serif;font-size:1.05rem;font-weight:400;line-height:1.3;display:flex}.meal-name--link{cursor:pointer}.meal-name--link:hover{color:var(--terracotta);text-underline-offset:3px;text-decoration:underline}.recipe-modal-overlay{z-index:1000;background:#0000008c;justify-content:center;align-items:center;padding:24px;animation:.15s fadeIn;display:flex;position:fixed;inset:0;overflow:hidden}.recipe-modal{background:var(--warm-white);border-radius:var(--radius);flex-direction:column;width:100%;max-width:820px;max-height:88vh;display:flex;overflow:hidden;box-shadow:0 8px 40px #00000040}.recipe-modal--profile .recipe-modal__topbar{border-bottom:1px solid var(--border);background:var(--cream);flex-shrink:0;justify-content:center;align-items:center;padding:14px 48px;display:flex;position:relative}.recipe-modal--profile .recipe-modal__topbar .recipe-modal__topbar-title{text-align:center;flex:1}.recipe-modal--profile .recipe-modal__topbar .btn-icon{position:absolute;top:50%;right:14px;transform:translateY(-50%)}.recipe-modal__topbar-actions{align-items:center;gap:8px;display:flex}.recipe-modal__content{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:14px;min-height:0;padding:20px;display:flex;overflow-y:auto}.recipe-modal__content>*{flex-shrink:0}.recipe-modal__title{color:var(--brown);margin:0;font-size:1.2rem;font-weight:700}.recipe-modal__meta{color:var(--text-muted);margin:0;font-family:Inter,sans-serif;font-size:.78rem}.recipe-modal__image{border-radius:var(--radius-sm);object-fit:contain;width:100%;max-height:340px}.recipe-modal__image--clickable{cursor:zoom-in;transition:opacity .15s}.recipe-modal__image--clickable:hover{opacity:.88}.recipe-modal__image-wrap{margin-bottom:10px;position:relative}.recipe-modal__image-actions{gap:6px;display:flex;position:absolute;top:8px;right:8px}.recipe-modal__image-action{color:#fff!important;background:#0000008c!important}.recipe-modal__image-action:hover{background:#000000bf!important}.recipe-modal__pdf{border-radius:var(--radius-sm);border:none;width:100%;min-height:420px}.recipe-modal__source-link{color:var(--terracotta);align-items:center;gap:5px;font-family:Inter,sans-serif;font-size:.8rem;text-decoration:none;display:inline-flex}.recipe-modal__source-link:hover{text-decoration:underline}.recipe-modal__notes{flex-direction:column;gap:6px;margin-top:10px;display:flex}.recipe-modal__notes-input{resize:vertical;min-height:70px}.rich-notes{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;overflow:hidden}.rich-notes__toolbar{border-bottom:1px solid var(--border);background:var(--warm-white);align-items:center;gap:2px;padding:4px 6px;display:flex}.rich-notes__btn{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:3px 7px;font-size:.8rem;line-height:1}.rich-notes__btn:hover{background:var(--cream)}.rich-notes__btn--format{color:var(--terracotta);font-style:italic}.rich-notes__btn--format:disabled{opacity:.5;cursor:default}.rich-notes__divider{background:var(--border);width:1px;height:14px;margin:0 4px}.rich-notes__editor{min-height:80px;color:var(--text);outline:none;padding:8px 10px;font-size:.85rem;line-height:1.5}.rich-notes__editor:empty:before{content:attr(data-placeholder);color:var(--text-muted);pointer-events:none}.rich-notes__editor ul,.rich-notes__editor ol{margin:4px 0;padding-left:18px}.recipe-modal__name-input{width:100%;color:var(--brown);border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;outline:none;padding:8px 12px;font-family:Cormorant Garamond,serif;font-size:1.25rem;font-weight:400;transition:border-color .15s}.recipe-modal__name-input:focus{border-bottom-color:var(--terracotta)}.recipe-modal__ing-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.recipe-modal--readonly .recipe-modal__content>:not(.active-toggle-row):not(.recipe-modal__source-link){pointer-events:none}.recipe-modal--readonly .recipe-modal__source-link{pointer-events:auto}.recipe-modal--readonly input,.recipe-modal--readonly textarea{color:var(--text);cursor:default;background:0 0;border-color:#0000}.recipe-modal--readonly .servings-input{padding:0}.recipe-modal--readonly .recipe-modal__name-input{display:none}.recipe-modal--readonly .meal-type-pill:not(.meal-type-pill--active){opacity:1}.recipe-modal--readonly .form-attach__btn,.recipe-modal--readonly .form-attach__remove{display:none}.recipe-modal--viewer .recipe-modal__topbar{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.recipe-modal__topbar-title{color:var(--brown);text-align:center;flex:1;margin:0;font-family:Cormorant Garamond,serif;font-size:1.4rem;font-weight:400;line-height:1.3}.recipe-modal__ing-title{color:var(--brown);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.85rem;font-weight:600}.recipe-modal__ing-list{flex-direction:column;gap:5px;margin:0;padding:0 0 0 18px;display:flex}.recipe-modal__ing-list li{color:var(--text);font-family:Inter,sans-serif;font-size:.88rem}.ingredient-table{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-family:Inter,sans-serif;font-size:.85rem;overflow:visible}.ingredient-table__header{border-bottom:1px solid var(--border);background:#fdfaf5;grid-template-columns:minmax(60px,18%) 1fr;align-items:center;gap:8px;padding:6px 10px 6px 36px;display:grid}.ingredient-table__col-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:600}.ingredient-table__edit-btn{white-space:nowrap;margin-left:auto}.ingredient-table__row{border-bottom:1px solid var(--border);cursor:default;grid-template-columns:18px minmax(60px,18%) 1fr auto;align-items:center;gap:8px;padding:5px 10px;display:grid}.ingredient-table__drag-handle{cursor:grab;color:var(--text-muted);opacity:.35;-webkit-user-select:none;user-select:none;font-size:1rem;line-height:1;transition:opacity .15s}.ingredient-table__row:hover .ingredient-table__drag-handle{opacity:.7}.ingredient-table__row--drag-over{outline:2px solid var(--sage);outline-offset:-2px;background:#8faa8f1f!important}.ingredient-table__row:last-child{border-bottom:none}.ingredient-table__row--alt{background:#00000006}.ingredient-table__amount{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.ingredient-table__name{color:var(--text)}.ingredient-table__cell-input{width:100%;color:var(--text);cursor:text;background:0 0;border:none;border-radius:3px;outline:none;padding:1px 2px;font-family:Inter,sans-serif;font-size:.85rem}.ingredient-table__cell-input--amount{color:var(--text-muted);font-variant-numeric:tabular-nums}.ingredient-table__cell-input:focus{outline:1px solid var(--sage);background:#ffffffd9}.ingredient-table__delete-row{cursor:pointer;color:var(--text-muted);opacity:0;background:0 0;border:none;padding:0 2px;font-size:1rem;line-height:1;transition:opacity .15s,color .15s}.ingredient-table__row:hover .ingredient-table__delete-row{opacity:1}.ingredient-table__delete-row:hover{color:#c0392b}.ingredient-table__add-row{border:none;border-top:1px dashed var(--border);width:100%;color:var(--text-muted);cursor:pointer;background:0 0;grid-template-columns:18px minmax(60px,18%) 1fr auto;align-items:center;gap:8px;padding:5px 10px;font-family:Inter,sans-serif;font-size:.78rem;transition:color .15s,background .15s;display:grid}.ingredient-table__add-row:hover{color:var(--text);background:#00000006}.ingredient-table__add-cell{padding:0}.btn-danger{color:#dc2626;border-radius:var(--radius-sm);cursor:pointer;background:#fef2f2;border:1px solid #fecaca;align-items:center;gap:5px;padding:6px 12px;font-size:.8rem;font-weight:500;transition:background .15s;display:inline-flex}.btn-danger:hover{background:#fee2e2}.btn-sm{padding:5px 10px;font-size:.78rem}.btn-ghost--active{background:var(--cream);color:var(--brown)}.recipe-chip--clickable{cursor:pointer;transition:background .15s,box-shadow .15s}.recipe-chip--clickable:hover{background:var(--cream);box-shadow:var(--shadow)}.recipe-chip--inactive{opacity:1}.active-toggle-row{justify-content:space-between;align-items:center;gap:12px;margin:12px 0 4px;display:flex}.active-toggle-row--with-actions .form-row{margin:0}.active-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:flex}.active-toggle__track{background:var(--border);cursor:pointer;border-radius:10px;flex-shrink:0;width:36px;height:20px;transition:background .2s;position:relative}.active-toggle__track--on{background:var(--sage)}.active-toggle__thumb{background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.active-toggle__track--on .active-toggle__thumb{transform:translate(16px)}.active-toggle__label{color:var(--text-light);font-size:.82rem}.ingredients-list{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.ingredient-tag{background:var(--cream);color:var(--text-muted);border:1px solid var(--border);border-radius:20px;align-items:center;gap:3px;padding:3px 8px;font-size:.7rem;display:inline-flex}.ingredient-tag--shared{background:var(--sage-pale);color:var(--sage);border-color:var(--sage-light);font-weight:500}.meal-card__extras{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.meal-card__extra-tag{background:var(--cream);border:1px solid var(--border);color:var(--text);border-radius:20px;align-items:center;gap:3px;padding:2px 8px;font-size:.75rem;display:inline-flex}.meal-card__extra-remove{cursor:pointer;color:var(--text-light);background:0 0;border:none;padding:0;font-size:.85rem;line-height:1}.meal-card__extra-remove:hover{color:var(--terracotta)}.meal-card__note{color:var(--text-light);cursor:pointer;margin-top:6px;font-size:.78rem;font-style:italic}.meal-card__note:hover{color:var(--text)}.meal-card__add-row{align-items:center;gap:6px;margin-top:8px;display:flex}.meal-card__add-row--note{flex-direction:column;align-items:flex-start}.meal-card__add-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--cream);flex:1;width:100%;padding:5px 8px;font-size:.8rem}.meal-card__add-input:focus{border-color:var(--terracotta);outline:none}.meal-card__add-input--textarea{resize:vertical;min-height:60px;font-family:inherit}.meal-card__add-actions{align-items:center;gap:4px;display:flex}.meal-card__add-btn{border-radius:var(--radius-sm);cursor:pointer;padding:4px 10px;font-size:.78rem;font-weight:500;transition:filter .15s}.meal-card__add-btn:hover{filter:brightness(1.08);opacity:.88}.suggest-picker__empty{color:var(--text-light);padding:6px 4px;font-size:.8rem}.suggest-option--suggest{border-top:1px solid var(--border)}.meal-card__side{border-top:1px dashed var(--border);align-items:center;gap:6px;margin-top:10px;padding-top:8px;display:flex}.meal-card__side-label{color:var(--sage);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;font-size:.7rem;font-weight:600}.meal-card__side-name{letter-spacing:.01em;color:var(--brown);flex:1;font-family:Cormorant Garamond,serif;font-size:1.05rem;font-weight:400;line-height:1.3}.meal-card__side-name--link{cursor:pointer;text-underline-offset:2px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .15s,color .15s}.meal-card__side-name--link:hover{color:var(--rust);-webkit-text-decoration-color:var(--rust);text-decoration-color:var(--rust)}.meal-card__side-remove{cursor:pointer;color:var(--text-light);opacity:0;background:0 0;border:none;padding:0 2px;font-size:1rem;line-height:1;transition:opacity .15s}.meal-card__side:hover .meal-card__side-remove{opacity:1}.meal-card__ingredients-row{border-top:1px dashed var(--border);flex-wrap:wrap;align-items:baseline;gap:0;margin-top:10px;padding-top:8px;display:flex}.meal-card__ingredients-prefix{color:var(--text-muted);flex-shrink:0;margin-right:4px;font-family:Cormorant Garamond,serif;font-size:1.05rem;font-weight:400;line-height:1.4}.meal-card__ingredients-list{color:var(--brown);flex:1;font-family:Cormorant Garamond,serif;font-size:1.05rem;font-weight:400;line-height:1.4}.meal-card__ingredients-remove{cursor:pointer;color:var(--text-light);opacity:0;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:1rem;line-height:1;transition:opacity .15s}.meal-card__ingredients-row:hover .meal-card__ingredients-remove{opacity:1}.shared-banner{background:var(--sage-pale);border-radius:var(--radius-sm);border:1px solid var(--sage-light);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:4px;padding:12px 16px;display:flex}.shared-banner__icon{color:var(--sage);flex-shrink:0}.shared-banner__label{color:var(--sage);white-space:nowrap;font-size:.78rem;font-weight:600}.shared-banner__empty{color:var(--sage);opacity:.6;font-size:.75rem;font-style:italic;font-weight:400}.shared-banner__tags{flex-wrap:wrap;gap:5px;display:flex}.shared-tag{color:var(--sage);border:1px solid var(--sage-light);background:#fff;border-radius:20px;padding:3px 10px;font-size:.72rem;font-weight:500}.leftover-badge{color:#388e3c;background:#e8f5e9;border-radius:20px;align-items:center;gap:3px;margin-right:4px;padding:2px 7px;font-family:Inter,sans-serif;font-size:.65rem;font-weight:600;display:inline-flex}.suggest-option--leftover{border-top:1px solid var(--border)}.meal-card__name-row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.meal-card__name-row--extra{border-top:1px dashed var(--border);margin-top:5px;padding-top:5px}.meal-card__remove{cursor:pointer;color:var(--text-light);opacity:0;background:0 0;border:none;flex-shrink:0;padding:2px;transition:opacity .15s,color .15s}.meal-card__body:hover .meal-card__remove{opacity:1}.meal-card__remove:hover{color:var(--terracotta)}.add-dessert-btn{border:1px dashed var(--border);width:100%;color:var(--text-light);letter-spacing:.2em;text-transform:uppercase;text-align:left;cursor:pointer;background:0 0;border-radius:4px;padding:10px 14px;font-family:Jost,sans-serif;font-size:.58rem;font-weight:400;transition:color .15s,border-color .15s;display:block}.add-dessert-btn:hover{color:var(--terracotta);border-color:var(--terracotta)}.meal-card__empty{flex-direction:column;gap:0;padding:10px 12px 12px;display:flex}.meal-card__empty-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--warm-white);width:100%;color:var(--text);box-sizing:border-box;outline:none;margin-bottom:4px;padding:5px 8px;font-size:.8rem}.meal-card__empty-input:focus{border-color:var(--terracotta)}.meal-card__empty-input::placeholder{color:var(--text-light)}.meal-card__empty-results{flex-direction:column;max-height:180px;display:flex;overflow-y:auto}.meal-card__empty-result{text-align:left;color:var(--text);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:5px 8px;font-size:.82rem;transition:background .1s}.meal-card__empty-result:hover,.meal-card__empty-result--focused{background:var(--cream)}.meal-card__empty-divider{border:none;border-top:1px solid var(--border);margin:4px 0}.meal-card__empty-suggest{text-align:left;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:5px 8px;font-size:.82rem;transition:background .1s}.meal-card__empty-suggest:hover{background:var(--cream);color:var(--text)}.meal-card__add-meal{width:100%;color:var(--text-light);text-align:left;cursor:pointer;background:0 0;border:none;padding:10px;font-size:.82rem;transition:color .15s;display:block}.meal-card__add-meal:hover{color:var(--terracotta)}.meal-card__empty-placeholder-row{justify-content:space-between;align-items:center;gap:8px;padding:0;display:flex}.meal-card__placeholder{color:var(--brown);opacity:.28;flex:1;font-family:Cormorant Garamond,serif;font-size:1rem;font-style:italic;font-weight:300;line-height:1.4}.meal-card__placeholder--clickable{cursor:pointer;transition:opacity .15s}.meal-card__placeholder--clickable:hover{opacity:.55}.meal-card__no-recipes{justify-content:center;align-items:center;padding:6px 0;display:flex}.meal-card__no-recipes-text{color:var(--text-muted);text-align:center;font-size:.72rem;font-style:italic;line-height:1.4}.meal-card__item-menu-btn--empty{opacity:.35;transition:opacity .15s}.meal-card__item-menu-btn--empty:hover{opacity:.75}@media (width<=700px){.meal-card__item-menu-btn{opacity:.28}}.uploader-panel{background:var(--warm-white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.uploader-toggle{width:100%;color:var(--brown);text-align:left;background:0 0;justify-content:space-between;align-items:center;padding:14px 18px;font-size:.9rem;font-weight:600;transition:background .15s;display:flex}.uploader-toggle:hover{background:var(--cream)}.uploader-body{border-top:1px solid var(--border);flex-direction:column;gap:16px;padding:16px 18px;display:flex}.add-recipe-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1200;background:#2a1e104d;justify-content:center;align-items:flex-start;padding-top:90px;display:flex;position:fixed;inset:0;overflow-y:auto}.add-recipe-modal{background:var(--warm-white);border-radius:var(--radius);scrollbar-width:thin;scrollbar-color:#b4643c40 transparent;flex-direction:column;gap:16px;width:95%;max-width:1100px;max-height:calc(100vh - 130px);padding:16px 48px 36px;display:flex;overflow-y:auto;box-shadow:0 12px 48px #2a1e1038}.add-recipe-modal__header{justify-content:flex-end;margin-bottom:-6px;display:flex}.add-recipe-modal__close{color:var(--text-light);opacity:.7;transition:opacity .15s}.add-recipe-modal__close:hover{opacity:1}.add-recipe-modal__title{color:var(--brown);font-size:1rem;font-weight:700;display:none}@media (width<=700px){.add-recipe-overlay{justify-content:stretch;align-items:flex-end;padding-top:0;overflow-y:hidden}.add-recipe-modal{border-radius:20px 20px 0 0;gap:0;width:100%;max-width:100%;max-height:90vh;padding:0 0 24px;overflow-y:auto}.add-recipe-modal:before{content:"";background:var(--border);border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:12px auto 14px;display:block}.add-recipe-modal__header{border-bottom:1px solid var(--border);flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:0;padding:0 18px 12px}.add-recipe-modal__title{display:block}.uploader-tabs{background:var(--cream);border-bottom:1px solid var(--border);border-radius:0;grid-template-columns:1fr 1fr;gap:8px;padding:14px 16px;display:grid}.uploader-tab{border:1.5px solid var(--border);background:var(--warm-white);border-radius:12px;flex-direction:column;justify-content:center;gap:6px;padding:14px 8px;font-size:.78rem}.uploader-tab svg{width:18px;height:18px}.add-recipe-modal>:not(.add-recipe-modal__header):not(.uploader-tabs):not(input[type=file]){padding-left:16px;padding-right:16px}}.recipe-form{flex-direction:column;gap:10px;display:flex}.form-row{align-items:center;gap:10px;display:flex}.form-input,.form-select{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:#fff;flex:1;padding:9px 12px;font-size:.85rem;transition:border-color .15s}.form-input:focus,.form-select:focus{border-color:var(--terracotta);outline:none}.form-select{flex:none;min-width:130px}.btn-primary{color:#fff8eef2;text-transform:uppercase;letter-spacing:.12em;white-space:nowrap;border-radius:20px;flex-shrink:0;align-items:center;gap:6px;padding:5px 16px;font-size:.62rem;font-weight:500;transition:filter .2s,box-shadow .2s;display:flex}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-primary{background-image:linear-gradient(112deg,#fff0e138 0%,#0000 35%,#00000012 70%,#c8644b1f 100%),linear-gradient(210deg,#fffaeb2e 0%,#0000 45%),linear-gradient(175deg,#d46a58 0%,#c05848 55%,#cb6050 100%)}.btn-ai-plan,.btn-next-week,.meal-card__add-btn,.upload-source-btn--ai,.ai-large-preview__remove,.btn-add-recipe,.btn-weekend-ai,.rotation-warning-modal__btn--dismiss,.rotation-warning-modal__btn--delete{color:#fff8eef2;text-shadow:0 1px 3px #5014054d;background-image:linear-gradient(112deg,#fff0e138 0%,#0000 35%,#00000012 70%,#c8644b1f 100%),linear-gradient(210deg,#fffaeb2e 0%,#0000 45%),linear-gradient(175deg,#ec8e7a 0%,#d06858 55%,#da7565 100%);border:none;box-shadow:inset 0 1px #ffdcb433,0 2px 8px #8c321433}.btn-weekend-ai,.btn-add-recipe{background-image:linear-gradient(112deg,#fff0e138 0%,#0000 35%,#00000012 70%,#c8644b1f 100%),linear-gradient(210deg,#fffaeb2e 0%,#0000 45%),linear-gradient(175deg,#d46a58 0%,#c05848 55%,#cb6050 100%)}.recipe-library{scrollbar-width:thin;scrollbar-color:transparent transparent;flex-direction:column;gap:8px;max-height:520px;display:flex;overflow-y:auto}.recipe-library:hover{scrollbar-color:#b4643c59 transparent}.recipe-library::-webkit-scrollbar{width:4px}.recipe-library::-webkit-scrollbar-track{background:0 0}.recipe-library::-webkit-scrollbar-thumb{background:0 0;border-radius:2px;transition:background .2s}.recipe-library:hover::-webkit-scrollbar-thumb{background:#b4643c59}.recipe-library--separated{background:var(--cream);border:1px solid var(--border);border-radius:var(--radius);max-height:220px;padding:10px 12px}.library-divider{align-items:center;margin:-4px 0;padding:0 4px;display:flex}.library-divider:before,.library-divider:after{content:"";background:var(--border);flex:1;height:1px}.library-divider__label{text-transform:uppercase;letter-spacing:.22em;color:var(--text-light);white-space:nowrap;padding:0 10px;font-family:Jost,sans-serif;font-size:.6rem;font-weight:500}.recipe-chip{background:var(--cream);border-radius:var(--radius-sm);border:1px solid var(--border);align-items:center;gap:10px;padding:8px 12px;display:flex}.recipe-chip__img{object-fit:cover;border-radius:6px;flex-shrink:0;width:36px;height:36px}.recipe-chip__info{flex-direction:column;flex:1;min-width:0;display:flex}.recipe-chip__info strong{color:var(--brown);white-space:nowrap;text-overflow:ellipsis;font-size:.83rem;overflow:hidden}.recipe-chip__info small{color:var(--text-muted);font-size:.7rem}.recipe-chip__info small a{color:var(--terracotta);text-decoration:none}.recipe-chip__info small a:hover{text-decoration:underline}.uploader-tabs{background:var(--cream);border-radius:var(--radius-sm);border:1px solid var(--border);gap:6px;padding:6px;display:flex}.uploader-tab{color:var(--text-muted);border-radius:6px;flex:1;justify-content:center;align-items:center;gap:5px;padding:7px 10px;font-size:.8rem;font-weight:500;transition:background .15s,color .15s;display:flex}.uploader-tab:hover:not(.uploader-tab--active){color:var(--brown);background:#fff}.uploader-tab--active{color:var(--terracotta);box-shadow:var(--shadow);background:#fff;font-weight:600}.ai-camera-flow{flex-direction:column;gap:10px;padding:10px 0 4px;display:flex}.ai-large-preview{border-radius:var(--radius);background:var(--border);justify-content:center;align-items:center;width:100%;max-height:380px;display:flex;position:relative;overflow:hidden}.ai-large-preview img{object-fit:contain;border-radius:var(--radius);width:100%;max-height:380px;display:block}.ai-large-preview__rotate{background:var(--sage-pale);width:26px;height:26px;color:var(--sage);border:1.5px solid var(--sage);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:10px;left:10px;box-shadow:0 1px 4px #0000001f}.ai-large-preview__rotate:hover{background:var(--sage);color:#fff}.ai-large-preview__remove{cursor:pointer;text-align:center;border-radius:50%;width:26px;height:26px;padding:0;font-size:.85rem;line-height:26px;position:absolute;top:10px;right:10px;box-shadow:inset 0 1px #ffdcb433,0 2px 6px #8c32144d}.ai-large-preview__remove:hover{filter:brightness(1.08)}.ai-large-preview__page-badge{color:#fff;letter-spacing:.04em;pointer-events:none;background:#2a1e108c;border-radius:20px;padding:3px 10px;font-size:.68rem;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.ai-page-strip{gap:6px;padding:2px 0;display:flex;overflow-x:auto}.ai-page-thumb{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:2px solid #0000;flex-shrink:0;width:60px;height:60px;padding:0;overflow:hidden}.ai-page-thumb img{object-fit:cover;width:100%;height:100%;display:block}.ai-page-thumb--active{border-color:var(--terracotta)}.ai-camera-actions{align-items:center;gap:8px;display:flex}.upload-source-picker{gap:8px;padding:8px 4px 2px;animation:.12s fadeIn;display:flex}.upload-source-btn{color:var(--terracotta);background:var(--terracotta-pale);border:1px solid color-mix(in srgb, var(--terracotta) 25%, transparent);border-radius:var(--radius-sm);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:.82rem;font-weight:500;transition:background .15s,box-shadow .15s;display:flex}.upload-source-btn--ai{border-color:#0000;transition:filter .15s,box-shadow .15s}.upload-source-btn--ai:hover{filter:brightness(1.08);box-shadow:var(--shadow)}.upload-source-btn:hover{background:color-mix(in srgb, var(--terracotta) 15%, white);box-shadow:var(--shadow)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.url-fetch-row{align-items:center;gap:8px;display:flex}.url-fetch-row .form-input{background:var(--terracotta-pale)}.url-fetch-row+.fetch-status{margin-top:20px}.discover-panel{flex-direction:column;gap:12px;display:flex}.discover-hint{color:var(--text-light);padding-left:2px;font-size:.75rem;font-style:italic}.discover-results{flex-direction:column;gap:10px;margin-top:4px;display:flex}.discover-card{background:var(--cream);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:16px;padding:13px 16px;display:flex}.discover-card__body{flex:1;min-width:0}.discover-card__title-row{align-items:baseline;gap:10px;margin-bottom:4px;display:flex}.discover-card__name{color:var(--brown);font-family:Cormorant Garamond,serif;font-size:1.1rem;font-weight:500;line-height:1.2}.discover-card__meta-line{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:7px;font-size:.73rem;display:flex}.discover-card__rating{color:var(--terracotta);font-weight:600}.discover-card__dot{color:var(--border)}.discover-card__source{color:var(--terracotta);white-space:nowrap;font-family:Jost,sans-serif;font-size:.73rem;font-weight:400;text-decoration:none}.discover-card__source:hover{text-decoration:underline}.discover-card__tags{flex-wrap:wrap;gap:5px;display:flex}.discover-tag{letter-spacing:.04em;background:var(--sage-pale);color:var(--sage);border-radius:20px;padding:2px 8px;font-size:.67rem;font-weight:500}.discover-tag--meal{background:var(--sage-pale);color:var(--sage);border:1.5px solid var(--sage-light)}.discover-card__action{flex-shrink:0}.btn-primary--added{border:1px solid var(--sage);background-image:none!important;background:var(--sage-pale)!important;color:var(--sage)!important;text-shadow:none!important;box-shadow:none!important;opacity:1!important}.form-textarea{resize:vertical;min-height:52px}.form-row--end{justify-content:flex-end}.form-attach{flex-direction:column;gap:6px;display:flex}.form-attach__btn{background:var(--terracotta-pale);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;text-align:left;padding:9px 12px;font-family:Inter,sans-serif;font-size:.83rem;transition:border-color .15s,color .15s}.form-attach__btn:hover{border-color:var(--sage);color:var(--text)}.form-attach__preview{border:1px solid var(--border);background:var(--surface);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.form-attach__thumb{object-fit:cover;border-radius:4px;width:48px;height:48px}.form-attach__pdf-icon{color:var(--text-muted);flex:1;font-size:.85rem}.form-attach__remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:2px 4px;font-size:.78rem}.form-attach__remove:hover{color:#c0392b}.form-attach__view{color:var(--terracotta);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:.78rem;font-weight:500;text-decoration:underline}.image-viewer-overlay{z-index:1300;background:#000000eb;justify-content:center;align-items:flex-start;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.image-viewer{width:75%;max-width:min(825px,72vw);position:relative}.image-viewer__close{float:right;z-index:1;margin-bottom:12px;position:sticky;top:0;color:#fff!important;background:#ffffff26!important}.image-viewer__pages{clear:both;flex-direction:column;gap:16px;display:flex}.image-viewer__page{flex-direction:column;gap:6px;display:flex}.image-viewer__page-label{color:#ffffff80;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.image-viewer__img{border-radius:var(--radius-sm);width:100%;display:block}.form-source-url{color:var(--text-muted);word-break:break-all;font-size:.75rem}.form-source-url a{color:var(--terracotta)}.form-img-preview{object-fit:cover;border-radius:var(--radius-sm);width:100%;max-height:140px}.fetch-status{border-radius:var(--radius-sm);padding:8px 12px;font-size:.78rem}.fetch-status--ok{background:var(--sage-pale);color:var(--sage);text-align:center;font-weight:700}.fetch-status--err{color:#c0392b;background:#fde8e8}.library-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.72rem;font-weight:600}.library-label__count{opacity:.7;letter-spacing:0;text-transform:none;font-weight:400}.btn-ghost{color:var(--text-muted);border-radius:var(--radius-sm);padding:9px 14px;font-size:.83rem;transition:background .15s}.btn-ghost:hover{color:var(--text);background:0 0}.spin{animation:.8s linear infinite spin}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.meal-type-picker{flex-direction:column;gap:6px;display:flex}.recipe-save-warning{color:#a05c20;background:#fff8f0;border:1px solid #f5c89a;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:.78rem;display:flex}.meal-type-picker__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.meal-type-picker__pills{flex-wrap:wrap;gap:6px;display:flex}.servings-row{align-items:center;gap:6px;display:flex}.servings-input{border:1px solid var(--border);background:var(--cream);color:var(--text-dark);text-align:center;border-radius:6px;outline:none;flex:1;padding:5px 10px;font-size:.85rem}.servings-input:focus{border-color:var(--terracotta)}.meal-type-pill{border:1.5px solid var(--border);background:var(--cream);color:var(--text-muted);border-radius:20px;padding:5px 13px;font-size:.8rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.meal-type-pill:hover{background:var(--sage-pale);border-color:var(--sage-light);color:var(--sage)}.meal-type-pill--active{background:var(--sage-pale);border-color:var(--sage-light);color:var(--sage);font-weight:600}.meal-type-pill--disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.effort-pill--low-lift.meal-type-pill--active,.effort-pill--low-lift:hover,.effort-pill--medium.meal-type-pill--active,.effort-pill--medium:hover,.effort-pill--an-hour-plus.meal-type-pill--active,.effort-pill--an-hour-plus:hover{background:var(--sage-pale);border-color:var(--sage-light);color:var(--sage)}.meal-type-hint{color:#c0392b;text-align:center;margin-top:10px;font-size:.78rem;font-style:italic;font-weight:600}.recipe-meta-row,.meal-effort-row{grid-template-columns:repeat(4,1fr);align-items:start;gap:16px;width:100%;margin-bottom:10px;display:grid}.recipe-meta-row .meal-type-picker,.meal-effort-row .meal-type-picker{text-align:center;align-items:center}.recipe-meta-row .meal-type-picker__pills,.meal-effort-row .meal-type-picker__pills{justify-content:center}.recipe-meta-row__serving .servings-input{text-align:center;width:120px}.role-pill{text-align:center}.meal-type-picker__pills--nowrap{flex-wrap:nowrap}.meal-type-picker__pills--role-grid{display:contents}@media (width<=700px){.recipe-meta-row,.meal-effort-row{grid-template-columns:repeat(2,1fr)}.recipe-modal__save-delete{justify-content:center}.recipe-modal__save-delete .btn-sm,.recipe-modal__save-delete .btn-danger{border-radius:999px}.active-toggle-row{flex-direction:column;align-items:flex-start;gap:10px}}.upload-preview{border-radius:var(--radius-sm);border:1px solid var(--border);overflow:hidden}.upload-preview__img{object-fit:cover;width:100%;max-height:160px;display:block}.upload-preview__pdf{background:var(--cream);color:var(--text-muted);align-items:center;gap:8px;padding:12px 14px;font-size:.82rem;display:flex}.upload-preview__pdf span{color:var(--brown);word-break:break-all;font-weight:500}.rotation-warning-overlay{z-index:2000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rotation-warning-modal{background:var(--warm-white);border-radius:var(--radius);text-align:center;width:calc(100% - 48px);max-width:289px;padding:22px 22px 18px;box-shadow:0 8px 32px #0000002e}.rotation-warning-modal__title{color:var(--brown);margin-bottom:7px;font-size:.92rem;font-weight:600}.rotation-warning-modal__text{color:var(--text-muted);margin-bottom:18px;font-size:.82rem;line-height:1.5}.rotation-warning-modal__actions{justify-content:center;display:flex}.rotation-warning-modal__btn--dismiss{border-radius:var(--radius-sm);color:#fff8eef2;cursor:pointer;background-color:#0000;border:none;padding:8px 22px;font-size:.82rem;font-weight:500;transition:filter .15s}.rotation-warning-modal__btn--dismiss:hover{filter:brightness(1.08)}.rotation-warning-modal__btn--cancel{border-radius:var(--radius-sm);border:1.5px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;padding:8px 22px;font-size:.82rem;font-weight:500;transition:border-color .15s,color .15s}.rotation-warning-modal__btn--cancel:hover{border-color:var(--terracotta);color:var(--terracotta)}.rotation-warning-modal__btn--delete{border-radius:var(--radius-sm);color:#fff8eef2;cursor:pointer;background-color:#0000;border:none;padding:8px 22px;font-size:.82rem;font-weight:500;transition:filter .15s}.rotation-warning-modal__btn--delete:hover{filter:brightness(1.08)}.rotation-warning-modal__btn--proceed{border-radius:var(--radius-sm);background:var(--terracotta);color:#fff;cursor:pointer;border:none;padding:8px 18px;font-size:.85rem;font-weight:500;transition:background .15s;display:none}.rotation-warning-modal__btn--proceed:hover{background:var(--brown)}.library-header{justify-content:space-between;align-items:center;display:flex}.library-toolbar{flex-direction:row;align-items:center;gap:10px;margin-bottom:10px;display:flex}.library-search{flex:1;position:relative}.library-search__input{width:100%;padding-right:28px}.filter-select{appearance:none;color:#5c4a32;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%239a8468'/%3E%3C/svg%3E") right 10px center no-repeat;border:1px solid #d4c5b0;border-radius:8px;flex-shrink:0;min-width:140px;height:36px;padding:0 28px 0 10px;font-size:.82rem}.library-search__clear{cursor:pointer;color:var(--text-light);background:0 0;border:none;padding:0;font-size:1rem;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.filter-bar{flex-wrap:wrap;justify-content:center;gap:5px;display:flex}.btn-add-recipe{color:#fff8eef2;letter-spacing:.12em;text-transform:uppercase;text-shadow:0 1px 3px #50140559;cursor:pointer;white-space:nowrap;border:none;border-radius:20px;flex-shrink:0;padding:5px 16px;font-size:.62rem;font-weight:500;transition:filter .2s,box-shadow .2s;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffdcb433,0 2px 8px #8c321440}.btn-add-recipe:after{content:"";pointer-events:none;background:linear-gradient(112deg,#ffffff12 0%,#0000 50%);position:absolute;inset:0}.btn-add-recipe:hover{filter:brightness(1.08);box-shadow:inset 0 1px #ffdcb433,0 4px 12px #8c321452}.btn-add-recipe--loading{opacity:.65;cursor:default}.filter-chip{border:1.5px solid var(--border);background:var(--cream);color:var(--text-muted);white-space:nowrap;border-radius:20px;padding:4px 12px;font-size:.75rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.filter-chip:hover{border-color:var(--sage-light);color:var(--sage)}.filter-chip--active{background:var(--sage-pale);border-color:var(--sage);color:var(--sage);font-weight:600}.library-empty{color:var(--text-muted);padding:6px 2px;font-size:.8rem;font-style:italic}.thoughts-panel{background:var(--warm-white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.thoughts-body{border-top:1px solid var(--border);padding:16px 18px}.grocery-body{border-top:1px solid var(--border);background:var(--cream);padding:14px 18px 18px}.grocery-week-tabs{gap:6px;margin-bottom:14px;display:flex}.grocery-week-tab{border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;padding:5px 14px;font-size:.78rem;transition:all .15s}.grocery-week-tab:hover:not(.grocery-week-tab--active){border-color:var(--sage);color:var(--sage)}.grocery-week-tab--active{background:var(--sage);border-color:var(--sage);color:#fff;font-weight:500}.grocery-pdf-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;margin-top:24px;padding-top:16px;display:flex}.grocery-pdf-btn{border:1.5px solid var(--border);background:var(--cream);color:var(--text-muted);cursor:pointer;border-radius:20px;padding:5px 13px;font-size:.8rem;font-weight:500;transition:background .15s,border-color .15s,color .15s}.grocery-pdf-btn:hover{border-color:var(--terracotta-light);color:var(--terracotta)}.grocery-pdf-btn--amended{background:var(--cream);border-color:var(--border);color:var(--text-muted)}.grocery-pdf-btn--amended:hover{border-color:var(--terracotta-light);color:var(--terracotta)}.grocery-notes__title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-light);margin-bottom:10px;font-size:.65rem;font-weight:700}.grocery-notes__row{align-items:baseline;gap:12px;margin-bottom:7px;display:flex}.grocery-notes__day{letter-spacing:.06em;text-transform:uppercase;color:var(--terracotta);flex-shrink:0;width:72px;font-size:.62rem;font-weight:600}.grocery-notes__slot{letter-spacing:.05em;text-transform:uppercase;color:var(--text-light);flex-shrink:0;width:60px;font-size:.62rem}.grocery-notes__text{color:var(--brown);font-family:Cormorant Garamond,serif;font-size:.95rem;font-style:italic;line-height:1.3}.grocery-empty{color:var(--text-light);margin:0;font-size:.85rem}.grocery-date-range{align-items:center;margin:0 0 16px;padding:0 4px;display:flex}.grocery-date-range:before,.grocery-date-range:after{content:"";background:var(--border);flex:1;height:1px}.grocery-date-range__label{letter-spacing:.22em;color:var(--text-light);text-transform:uppercase;white-space:nowrap;padding:0 10px;font-family:Jost,sans-serif;font-size:.6rem;font-weight:500}.grocery-grid{grid-template-columns:repeat(4,1fr);align-items:start;gap:20px 28px;display:grid}.grocery-section{min-width:0}.grocery-section__header{letter-spacing:.06em;text-transform:uppercase;color:var(--text-light);border-bottom:1px solid var(--border);margin-bottom:6px;padding-bottom:4px;font-size:.72rem;font-weight:700}.grocery-table{grid-template-columns:auto 1fr;align-items:baseline;gap:5px 20px;display:grid}.grocery-row{cursor:pointer;display:contents}.grocery-row input[type=checkbox]{display:none}.grocery-amount{color:var(--text-light);white-space:nowrap;cursor:pointer;padding:3px 0;font-size:.83rem}.frac-unit sup,.frac-unit sub{font-size:.68em;line-height:0}.frac-unit sup{vertical-align:super}.frac-unit sub{vertical-align:sub}.frac-mixed .frac-unit{margin-left:.1em}.grocery-name{color:var(--text-dark);cursor:pointer;padding:3px 0;font-size:.83rem}.grocery-row--done .grocery-amount,.grocery-row--done .grocery-name{color:var(--text-light);opacity:.55;text-decoration:line-through}.thoughts-input-row{align-items:center;gap:8px;display:flex}.thoughts-input{flex:1}.thoughts-list{flex-direction:column;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.thoughts-item{background:var(--terracotta-pale);border-radius:var(--radius-sm);color:var(--text);justify-content:space-between;align-items:center;padding:7px 10px;font-size:.84rem;display:flex}.thoughts-item__remove{cursor:pointer;color:var(--text-muted);background:0 0;border:none;flex-shrink:0;padding:0 0 0 8px;font-size:1rem;line-height:1}.thoughts-item__remove:hover{color:var(--terracotta)}.fetch-status--loading{background:var(--cream);color:var(--text-muted);align-items:center;gap:6px;display:flex}.recipe-chip__placeholder{background:var(--cream);border:1px solid var(--border);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;display:flex}.bottom-bar{grid-template-columns:1fr auto 1fr;align-items:center;padding:32px 0 48px;display:grid}.bottom-bar__left{justify-content:flex-start;display:flex}.bottom-bar__center{justify-content:center;display:flex}.bottom-bar__right{justify-content:flex-end;display:flex}.btn-next-week{letter-spacing:.16em;text-transform:uppercase;border-radius:999px;padding:11px 28px;font-family:Jost,sans-serif;font-size:.72rem;font-weight:500}.btn-next-week:hover{filter:brightness(1.08)}.btn-next-week:disabled{opacity:.5;cursor:default}.week-section{flex-direction:column;gap:20px;margin-top:8px;display:flex}.week-section__header{align-items:center;gap:16px;width:100%;max-width:1200px;margin:0 auto;padding:16px 0 10px;display:flex;position:relative}.week-section__header.week-section__header--current{max-width:none;margin:0;padding-top:22px!important;padding-bottom:10px!important}.week-section__divider-row{flex:1;justify-content:center;align-items:center;display:flex;position:relative}.week-section__divider-row:before{content:"";background:var(--border);z-index:0;height:1px;position:absolute;top:50%;left:0;right:120px}.week-section__header .btn-ai-plan--week,.week-section__header .btn-add-recipe{position:absolute;top:50%;right:0;transform:translateY(-50%)}.week-section__label{letter-spacing:.22em;text-transform:uppercase;color:var(--text-light);white-space:nowrap;z-index:1;background:var(--warm-white);padding:0 14px;font-family:Jost,sans-serif;font-size:.6rem;font-weight:500;position:relative}.btn-ai-plan--week{letter-spacing:.12em!important;text-transform:uppercase!important;border-radius:20px!important;padding:5px 16px!important;font-size:.62rem!important;font-weight:500!important}.btn-ai-plan--week:disabled{opacity:.4}.day-column__weekend-toggle{justify-content:flex-end;align-items:center;gap:10px;width:100%;padding:10px 12px 4px;display:flex}.btn-weekend-toggle{letter-spacing:.18em;text-transform:uppercase;color:var(--text-light);border:none;border-bottom:1px solid var(--border);cursor:pointer;white-space:nowrap;background:0 0;padding-bottom:2px;font-family:Jost,sans-serif;font-size:.6rem;font-weight:400;transition:color .15s,border-color .15s}.btn-weekend-toggle:hover{color:var(--terracotta);border-bottom-color:var(--terracotta-light)}.prev-week-bar{justify-content:flex-start;display:flex}.btn-prev-week{letter-spacing:.18em;text-transform:uppercase;color:var(--text-light);border:none;border-bottom:1px solid var(--border);background:0 0;padding-bottom:2px;font-family:Jost,sans-serif;font-size:.6rem;font-weight:400;transition:color .15s,border-color .15s}.btn-prev-week:hover{color:var(--terracotta);border-bottom-color:var(--terracotta-light)}.prev-week-overlay{z-index:300;background:#2a1e1073;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.prev-week-modal{background:var(--cream);border-radius:var(--radius);width:100%;max-width:820px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 48px #2a1e1033}.prev-week-modal__header{border-bottom:1px solid var(--border);background:var(--cream);justify-content:center;align-items:center;padding:20px 24px 16px;display:flex;position:sticky;top:0}.prev-week-modal__nav{align-items:center;gap:12px;display:flex}.prev-week-modal__close{color:var(--text-light);padding:4px;font-size:.9rem;transition:color .15s;position:absolute;top:20px;right:20px}.prev-week-modal__nav-info{text-align:center;min-width:180px}.prev-week-modal__nav-btn{color:var(--text-light);border-radius:4px;padding:2px 6px;font-size:1.6rem;line-height:1;transition:color .15s,background .15s}.prev-week-modal__nav-btn:hover:not(:disabled){color:var(--text);background:var(--border)}.prev-week-modal__nav-btn:disabled{opacity:.25;cursor:default}.prev-week-modal__title{font-family:Cormorant Garamond,serif;font-size:1.5rem;font-weight:300}.prev-week-modal__date{letter-spacing:.18em;text-transform:uppercase;color:var(--text-light);margin-top:3px;font-family:Jost,sans-serif;font-size:.58rem}.prev-week-modal__count{letter-spacing:.12em;color:var(--text-light);opacity:.6;margin-top:2px;font-family:Jost,sans-serif;font-size:.55rem}.prev-week-modal__close:hover{color:var(--text)}.prev-week-modal__body{padding:6px 24px 28px}@media (width<=700px){.prev-week-modal__body{padding:6px 0 28px;overflow-x:auto}.prev-week-grid{min-width:480px}}.prev-week-grid{border-top:1px solid var(--border);grid-template-columns:repeat(5,1fr);gap:0;display:grid}.prev-week-grid--7{grid-template-columns:repeat(7,1fr)}.prev-week-col{border-right:1px solid var(--border);flex-direction:column;gap:14px;padding:20px 14px;display:flex}.prev-week-col:last-child{border-right:none}.prev-week-col--weekend{background:var(--sage-pale)}.prev-week-col__day{color:var(--terracotta);margin-bottom:2px;font-family:Cormorant Garamond,serif;font-size:1.05rem;font-style:italic;font-weight:300}.prev-week-col__meal{flex-direction:column;gap:2px;display:flex}.prev-week-col__label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-light);font-family:Jost,sans-serif;font-size:.48rem;font-weight:500}.prev-week-col__name{color:var(--brown);flex-direction:column;gap:1px;font-family:Cormorant Garamond,serif;font-size:.95rem;font-weight:400;line-height:1.3;display:flex}.prev-week-col__name--note-only{color:var(--text-muted);font-style:italic}.prev-week-col__subnote{color:var(--text-light);margin-top:1px;font-family:Jost,sans-serif;font-size:.6rem;font-style:normal;font-weight:400;line-height:1.4}.prev-week-notes{margin-top:24px}.prev-week-notes__divider{align-items:center;gap:16px;margin-bottom:12px;display:flex}.prev-week-notes__divider:before,.prev-week-notes__divider:after{content:"";background:var(--border);flex:1;height:1px}.prev-week-notes__label{letter-spacing:.22em;text-transform:uppercase;color:var(--text-light);white-space:nowrap;font-family:Jost,sans-serif;font-size:.6rem;font-weight:500}.prev-week-notes__text{color:var(--brown);font-family:Cormorant Garamond,serif;font-size:1.1rem;font-weight:300;line-height:1.75}@media (width<=700px){.week-section__divider-row{flex-direction:column;gap:8px}.week-section__divider-row:before{display:none}.week-section__header .btn-add-recipe,.week-section__header .btn-ai-plan--week{position:static;transform:none}.btn-next-week{flex-direction:column;align-items:center;line-height:1.4;display:flex}.btn-next-week__line1,.btn-next-week__line2{display:block}.role-pills-row2{row-gap:12px}.library-toolbar{flex-wrap:wrap}.library-search{flex:100%}.filter-select{flex:1}.ingredient-table__header,.ingredient-table__row,.ingredient-table__add-row{grid-template-columns:18px minmax(80px,28%) 1fr auto!important}.ingredient-table__header{padding-left:10px}.ingredient-table__header:before{content:"";display:block}.ingredient-table__col-label{text-align:left}.ingredient-table__add-cell{white-space:normal;width:min-content;line-height:1.3}.grocery-grid{gap:12px 16px;grid-template-columns:repeat(2,1fr)!important}}.grocery-bottom-row{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;align-items:start;gap:0;margin-top:24px;display:grid}.grocery-notes{padding-top:20px;padding-right:48px}.grocery-extras-col{border-left:1px solid var(--border);padding-top:20px;padding-left:48px}.grocery-extras-col--full{border-left:none;grid-column:1/-1;padding-left:0}.grocery-extras-col__title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-light);margin-bottom:10px;font-size:.72rem;font-weight:700}.grocery-extras-col__add{border-bottom:1px dashed var(--border);align-items:flex-end;gap:6px;margin-bottom:12px;padding-bottom:10px;display:flex}.grocery-extras-col__input{border:none;border-bottom:1px solid var(--border);color:var(--text);background:0 0;outline:none;padding:2px 4px;font-family:inherit;font-size:.82rem}.grocery-extras-col__input::placeholder{color:var(--text-light)}.grocery-extras-col__input:focus{border-bottom-color:var(--terracotta)}.grocery-extras-col__input--qty{width:34px;color:var(--text-muted);flex-shrink:0}.grocery-extras-col__input--name{flex:1;min-width:0}.grocery-extras-col__add-btn{border:1px solid var(--border);width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:border-color .15s,color .15s;display:flex}.grocery-extras-col__add-btn:hover{border-color:var(--terracotta);color:var(--terracotta)}.grocery-extras-col__item{color:var(--text);grid-template-columns:36px 1fr auto;align-items:baseline;gap:0 6px;padding:4px 0;font-size:.85rem;display:grid}.grocery-extras-col__item-amount{color:var(--text-muted);font-size:.75rem}.grocery-extras-col__item-remove{color:var(--text-light);cursor:pointer;opacity:.45;background:0 0;border:none;padding:0;font-size:1rem;line-height:1;transition:opacity .15s,color .15s}.grocery-extras-col__item-remove:hover{opacity:1;color:var(--terracotta)}@media (width<=700px){.grocery-extras-col__add-btn{border:none;border-radius:0;width:auto;height:auto}.grocery-bottom-row{grid-template-columns:1fr;overflow:hidden}.grocery-notes{padding-right:0}.grocery-extras-col{border-left:none;border-top:1px solid var(--border);margin-top:4px;padding-top:20px;padding-left:0}.grocery-extras-col--full{border-top:1px solid var(--border)}}.grocery-row--extra{align-items:center;gap:6px;padding:3px 0;display:flex}.grocery-extra__remove{color:var(--text-light);cursor:pointer;opacity:.5;background:0 0;border:none;margin-left:auto;padding:0 2px;font-size:1rem;line-height:1;transition:opacity .15s}.grocery-extra__remove:hover{opacity:1;color:var(--terracotta)}.grocery-extra__add-row{border-top:1px dashed var(--border);align-items:center;gap:4px;margin-top:6px;padding-top:6px;display:flex}.grocery-extra__input{border:none;border-bottom:1px solid var(--border);color:var(--text);background:0 0;outline:none;padding:2px 4px;font-size:.78rem}.grocery-extra__input--amount{width:36px;color:var(--text-muted);flex-shrink:0}.grocery-extra__input--name{flex:1}.grocery-extra__input::placeholder{color:var(--text-light)}.grocery-extra__input:focus{border-bottom-color:var(--terracotta)}.grocery-extra__add-btn{border:1px solid var(--border);width:20px;height:20px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:border-color .15s,color .15s;display:flex}.grocery-extra__add-btn:hover{border-color:var(--terracotta);color:var(--terracotta)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--cream:#fdfaf5;--warm-white:#f5efe3;--terracotta:#bf5228;--terracotta-light:#d06840;--terracotta-pale:#f2e6dc;--sage:#6b7845;--sage-light:#8a9a62;--sage-pale:#e4e8d4;--brown:#2a1e10;--brown-light:#7a6040;--text:#2a1e10;--text-dark:#2a1e10;--text-muted:#7a6040;--text-light:#9a8468;--border:#ddd0c0;--shadow:0 2px 12px #2a1e1014;--shadow-md:0 4px 24px #2a1e101f;--radius:14px;--radius-sm:8px}body{background-color:var(--warm-white);color:var(--text);min-height:100vh;font-family:Jost,sans-serif;line-height:1.5}h1,h2,h3{font-family:Cormorant Garamond,serif}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
