:root{--bg-app: #eef2ff;--bg-surface: #ffffff;--bg-elevated: #f8faff;--bg-surface-subtle: #f8faff;--bg-hover: #eef2ff;--bg-accent: #4f46e5;--bg-accent-hover: #4338ca;--text-primary: #0f172a;--text-secondary: #334155;--text-muted: #64748b;--text-on-accent: #ffffff;--border-color: #dbe4ff;--border-strong: #c7d2fe;--shadow-soft: 0 4px 6px -1px rgba(15, 23, 42, .1), 0 2px 4px -2px rgba(15, 23, 42, .1);--shadow-strong: 0 12px 28px -10px rgba(15, 23, 42, .3);--overlay: rgba(15, 23, 42, .36);--danger-bg: #fef2f2;--danger-text: #b91c1c;--danger-border: #fecaca;--focus-ring: rgba(79, 70, 229, .35);--safe-top: env(safe-area-inset-top, 0);--safe-right: env(safe-area-inset-right, 0);--safe-bottom: env(safe-area-inset-bottom, 0);--safe-left: env(safe-area-inset-left, 0);--fab-bottom: calc(5rem + var(--safe-bottom));--fab-right: calc(1rem + var(--safe-right));--touch-min: 44px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color:var(--text-primary);background-color:var(--bg-app);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)}body.body-scroll-lock{overflow:hidden}#root{width:100%;min-height:100vh;padding:1rem}.app-shell{min-height:calc(100vh - 2rem);display:flex;flex-direction:column}@media(min-width:769px){.app-shell{max-height:calc(100vh - 2rem);overflow:hidden}}.app-main{flex:1;min-height:0;display:flex;flex-direction:column}@media(min-width:769px){.app-main{overflow-y:auto}}.app-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.9rem 1rem;border-radius:14px;background:var(--bg-surface);border:1px solid var(--border-color);box-shadow:var(--shadow-soft)}.app-header-brand{display:flex;flex-direction:row;align-items:center;gap:.5rem;justify-self:start}.app-header-env-badge{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);background:var(--bg-surface-subtle);border:1px solid var(--border-color);padding:.2rem .5rem;border-radius:6px}.app-header-title{margin:0;font-size:clamp(1.25rem,2vw,1.8rem);line-height:1.2}.app-header-title-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-primary);text-decoration:none}.app-header-back-button{width:2.4rem;height:2.4rem;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-surface-subtle);color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:background-color .18s ease,color .18s ease,transform .16s ease}.app-header-back-button:hover{background:var(--bg-hover);color:var(--text-primary)}.app-header-icon{width:3rem;height:3rem;object-fit:contain}.app-header-title-link:hover{color:var(--bg-accent)}.app-header-center{justify-self:center}.app-header-nav{display:flex;align-items:center;gap:.65rem}.app-header-nav--right{justify-self:end}.app-header--no-center{grid-template-columns:1fr auto}.app-header--no-center .app-header-nav--right{margin-left:auto}.app-header-link,.week-nav-button,.print-button,.auth-logout-button,.auth-submit{transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .16s ease,box-shadow .2s ease}.app-header-link{font-size:.92rem;font-weight:600;color:var(--text-secondary);text-decoration:none;padding:.46rem .72rem;border-radius:10px}.app-header-link:hover{color:var(--text-primary);background:var(--bg-hover)}.main-nav--desktop{display:flex;align-items:center;gap:.5rem}.main-nav-desktop-item{display:inline-flex;align-items:center;gap:.4rem;padding:.46rem .72rem;border-radius:10px;color:var(--text-secondary);font-size:.92rem;font-weight:600;text-decoration:none;transition:color .18s ease,background-color .18s ease}.main-nav-desktop-item:hover{color:var(--text-primary);background:var(--bg-hover)}.main-nav-desktop-item--active{color:var(--bg-accent)}.app-header-link:focus-visible,.week-nav-button:focus-visible,.week-controls-action-btn:focus-visible,.print-button:focus-visible,.auth-submit:focus-visible,.auth-input:focus-visible,.profile-menu-trigger:focus-visible,.profile-menu-item:focus-visible{outline:2px solid transparent;box-shadow:0 0 0 3px var(--focus-ring)}.plan-page{display:flex;flex-direction:column;gap:.75rem}.plan-actions-bar{padding:.6rem .85rem;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:14px;box-shadow:var(--shadow-soft)}.plan-actions-inner{display:flex;align-items:center;justify-content:center;gap:.75rem}.profile-page{flex:1;min-height:0}.profile-page-card{padding:1.25rem 1.35rem;margin:0 auto;max-width:54rem;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:14px;box-shadow:var(--shadow-soft)}.profile-page-email{padding:.35rem .55rem .45rem;font-size:1.06rem;font-weight:700;color:var(--text-primary);text-align:center;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-elevated)}.profile-page-divider{height:1px;margin:.5rem 0;background:var(--border-color)}.profile-page-logout{width:100%;margin-top:.25rem}.recipes-plan-nav-link{display:inline-flex;align-items:center;gap:.4rem}.recipes-title{margin:0;font-size:1.2rem;font-weight:700}.recipes-page{min-height:0;flex:1}.recipes-layout{display:flex;gap:.55rem;min-height:0;height:100%}.recipes-list{width:33%;min-width:16rem;max-height:calc(100vh - 12rem);overflow-y:auto;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:14px;box-shadow:var(--shadow-soft);padding:.8rem}.recipes-list-section{margin-bottom:1rem}.recipes-list-section:last-child{margin-bottom:0}.recipes-list-section-title{margin:0 0 .45rem;text-transform:capitalize;color:var(--text-secondary);font-size:.95rem}.recipes-list-items{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.4rem}.recipes-list-items--loading{min-height:7.8rem}.recipes-list-row{display:block;will-change:transform}.recipes-list-row--dragging{opacity:.95}.recipes-list-row--dragging .recipes-list-item{border-color:var(--bg-accent);box-shadow:0 10px 24px #0000002e,inset 0 0 0 1px var(--bg-accent);background:color-mix(in srgb,var(--bg-accent) 12%,var(--bg-surface-subtle));transform:scale(1.03);z-index:2;position:relative}.recipes-list-row--drop-target .recipes-list-item{border-color:var(--bg-accent);box-shadow:inset 0 0 0 1px var(--bg-accent)}.recipes-list-item{width:100%;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;text-align:left;border:1px solid var(--border-color);border-radius:10px;padding:.55rem .65rem;background:var(--bg-surface-subtle);color:var(--text-primary);font:inherit;cursor:grab;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease}.recipes-list-item--skeleton{height:2.25rem;border-radius:10px;border:1px solid var(--border-color);background:linear-gradient(90deg,color-mix(in srgb,var(--bg-surface-subtle) 90%,transparent) 25%,color-mix(in srgb,var(--bg-surface-subtle) 55%,var(--text-primary) 4%),color-mix(in srgb,var(--bg-surface-subtle) 90%,transparent) 75%);background-size:200% 100%;animation:shimmer 1.2s ease-in-out infinite;pointer-events:none}.recipes-list-item:hover{background:var(--bg-hover)}.recipes-list-item--active{border-color:var(--bg-accent);box-shadow:inset 0 0 0 1px var(--bg-accent)}.recipes-list-item:active{cursor:grabbing}.recipes-list-item__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipes-list-item__drag-handle{border:0;background:transparent;color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;cursor:grab;touch-action:none}.recipes-list-item__drag-handle:active{cursor:grabbing}.recipes-list-empty{margin:0;color:var(--text-muted);font-size:.84rem}.recipes-detail{flex:1;min-width:0;max-height:calc(100vh - 12rem);overflow-y:auto;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:14px;box-shadow:var(--shadow-soft);padding:1rem;display:flex;flex-direction:column;gap:.55rem}.recipes-detail-loading{display:inline-flex;align-items:center;gap:.45rem;color:var(--text-secondary)}.recipes-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.recipes-detail-title{margin:0;font-size:1.3rem;flex:1;min-width:0}.recipes-archive-button{flex-shrink:0;display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .65rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer}.recipes-archive-button:hover:not(:disabled){background:var(--danger-bg);color:var(--danger-text);border-color:var(--danger-border)}.recipes-archive-button:disabled{opacity:.6;cursor:not-allowed}.recipes-header-actions{display:flex;align-items:center;gap:.5rem}.recipes-add-button{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .65rem;border-radius:8px;border:none;background:var(--bg-accent);color:var(--text-on-accent);font-size:.85rem;font-weight:500;cursor:pointer}.recipes-add-button:hover{background:var(--bg-accent-hover)}.recipes-add-button-label{display:none}@media(min-width:480px){.recipes-add-button-label{display:inline}}.recipes-detail-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.recipes-edit-button{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .65rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer}.recipes-edit-button:hover{background:var(--bg-hover);color:var(--text-primary)}.recipes-placeholder{margin:0;color:var(--text-muted)}.recipes-macros{display:flex;flex-wrap:wrap;gap:.5rem}.recipes-macros span{border:1px solid var(--border-color);border-radius:999px;background:var(--bg-surface-subtle);padding:.2rem .6rem;font-size:.88rem;color:var(--text-secondary)}.recipes-section{display:flex;flex-direction:column;gap:.5rem}.recipes-section-title{margin:0;font-size:1rem}.recipes-ingredients{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.25rem}.recipes-instructions{margin:0;white-space:pre-line}.app-week-sticky--desktop{margin:0 0 .75rem;padding:.6rem .85rem;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:14px;box-shadow:var(--shadow-soft)}.app-week-sticky--desktop .week-controls-wrapper{width:100%}.app-week-sticky--desktop .week-label{width:14rem;min-width:14rem;box-sizing:border-box}.week-controls{display:flex;align-items:center;gap:.45rem}.week-controls-wrapper{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap}.week-controls-actions{display:flex;align-items:center;gap:.4rem}.week-controls-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.4rem .6rem;border-radius:10px;border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-primary);font:inherit;font-weight:600;font-size:.85rem;cursor:pointer;transition:background-color .18s ease,color .18s ease,transform .16s ease}.week-controls-action-btn:hover:not(:disabled){background:var(--bg-hover);transform:translateY(-1px)}.week-controls-action-btn:active:not(:disabled){transform:scale(.98)}.week-controls-action-btn:disabled{opacity:.45;cursor:not-allowed}.plan-actions-copy-wrap{position:relative}.plan-actions-copy-dropdown{position:absolute;top:100%;right:0;margin-top:.35rem;display:flex;flex-direction:column;gap:.25rem;min-width:100%;padding:.35rem;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:10px;box-shadow:var(--shadow-soft);z-index:20}.plan-actions-copy-option{white-space:nowrap;justify-content:flex-start}.week-nav-button{font-family:inherit;font-size:.84rem;padding:.5rem .75rem;border-radius:10px;border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-primary);cursor:pointer}.week-nav-button:hover:not(:disabled),.print-button:hover:not(:disabled),.auth-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-soft)}.week-nav-button:active:not(:disabled),.print-button:active:not(:disabled),.auth-submit:active:not(:disabled){transform:scale(.98)}.week-nav-button:disabled{opacity:.45;cursor:not-allowed}.week-nav-button--icon{width:2.4rem;height:2.4rem;padding:0;display:inline-flex;align-items:center;justify-content:center}.week-label{display:inline-flex;align-items:center;gap:.4rem;min-width:12rem;justify-content:center;font-size:1.18rem;font-weight:500;color:var(--text-primary)}.week-label-icon{color:var(--bg-accent)}.week-label--current{font-weight:800}.week-label--other{font-weight:500}.week-label--past{color:var(--text-muted)}.print-button{font-family:inherit;font-size:.92rem;font-weight:600;padding:.58rem .95rem;border-radius:10px;border:none;display:inline-flex;align-items:center;gap:.45rem;color:var(--text-on-accent);background:var(--bg-accent);cursor:pointer}.meal-plan-wrapper{position:relative;display:flex}.meal-plan-container{width:100%;overflow:auto;border-radius:14px;border:1px solid #cbd5e1;background:var(--bg-surface);box-shadow:var(--shadow-soft)}.meal-table{width:100%;min-width:920px;border-collapse:collapse;table-layout:fixed;font-size:.84rem}.meal-table th,.meal-table td{padding:.9rem .5rem;border:1px solid #c5cfde;text-align:center;vertical-align:middle}.meal-table thead th{position:sticky;top:0;z-index:3;background:#312e81;color:var(--text-on-accent);font-weight:700;font-size:1rem;letter-spacing:.01em;border-color:#4f46e5}.meal-table tbody td{background:var(--bg-surface-subtle)}.meal-table tbody tr:nth-child(2n) td{background:#f1f5ff}.meal-table .meal-label{font-weight:700;font-size:1rem;color:var(--text-primary);background:#e5e7ff!important;border-right:1px solid #a5b4fc;text-align:center}.meal-cell{vertical-align:middle}.meal-cell-card{position:relative;display:flex;align-items:center;justify-content:center;gap:.45rem;min-height:4rem;padding:.5rem .7rem;border-radius:10px;border:1px solid var(--border-color);color:var(--text-primary);background:linear-gradient(160deg,var(--bg-surface) 0%,#f7f9ff 100%);box-shadow:0 1px 3px #0f172a12,0 2px 8px #0f172a0d;cursor:pointer;text-align:center;transition:transform .18s ease,box-shadow .2s ease,border-color .2s ease,background-color .18s ease}.meal-cell-card:hover{transform:translateY(-1px);box-shadow:0 6px 14px #0f172a1a;border-color:#a5b4fc;background:#f1f3f5}.meal-cell-card:hover .meal-cell-card__label{font-weight:700}.meal-cell-card__label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meal-cell-card-actions{position:absolute;right:.45rem;top:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;transform:translateY(-50%);opacity:0;pointer-events:none;transition:opacity .16s ease}.meal-cell-card:hover .meal-cell-card-actions,.meal-cell-card:focus-within .meal-cell-card-actions{opacity:1;pointer-events:auto}.meal-cell-card-action{width:2rem;height:2rem;border-radius:999px;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto}.meal-cell-card-action:hover{background:#eef2ff;border-color:#a5b4fc}.meal-cell-card-action--danger{color:#b91c1c}.meal-cell-card-action--danger:hover{background:#fee2e2;border-color:#fca5a5}.meal-cell-card--readonly{cursor:default}.meal-cell-card--readonly:hover{transform:none;box-shadow:none}.meal-cell-card--readonly .meal-cell-card-actions{display:none}.meal-cell-card--drag-source{opacity:.58}.meal-cell-card--drag-source .meal-cell-card-actions{opacity:0!important;pointer-events:none!important}.meal-cell-card--drag-over{border-color:#6366f1;background:#eef2ff;box-shadow:0 0 0 2px #6366f140,0 6px 14px #0f172a1a}.meal-cell-card--saving{pointer-events:none}.meal-cell-card-saving{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:inherit;background:#ffffffd9;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--text-secondary);z-index:1}.meal-cell-card-saving__spinner{flex-shrink:0;animation:spin .8s linear infinite}.meal-plan-view--cards{display:none}@media(max-width:1199px){.meal-plan-view--table{display:none!important}.meal-plan-view--cards{display:block!important}}.meal-day-cards{display:flex;flex-direction:column;gap:.55rem;padding:.25rem 0;width:100%}.meal-plan-wrapper--cards{width:100%;margin:0 auto}@media(min-width:768px)and (max-width:1199px){.meal-plan-wrapper--cards{max-width:52rem}.meal-day-cards{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}}.meal-day-card{background:var(--bg-surface);border-radius:14px;border:1px solid var(--border-color);box-shadow:var(--shadow-soft);overflow:hidden}.meal-day-card__header{padding:.75rem 1rem;background:var(--bg-surface-subtle);border-bottom:1px solid var(--border-color)}.meal-day-cards--carousel{display:block}.meal-day-card__header--nav{display:grid;grid-template-columns:2.25rem 1fr 2.25rem;align-items:center;gap:.5rem}.meal-day-card__nav-btn{width:2.25rem;height:2.25rem;border-radius:.75rem;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .16s ease,background-color .16s ease,transform .14s ease}.meal-day-card__nav-btn:hover:not(:disabled){border-color:var(--border-strong)}.meal-day-card__nav-btn:active:not(:disabled){transform:scale(.98)}.meal-day-card__nav-btn:disabled{opacity:.45;cursor:not-allowed}.meal-day-card__title{font-weight:700;font-size:1rem;color:var(--text-primary);text-transform:capitalize}.meal-day-card__body{padding:.5rem 1rem 1rem;display:flex;flex-direction:column;gap:.5rem}.meal-day-card__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:center;gap:.6rem}.meal-day-card__meal-label{font-size:.84rem;font-weight:600;color:var(--text-secondary)}.meal-day-card__cell{min-width:0}.meal-cell--card{display:block;padding:0}.meal-cell--card .meal-cell-card{width:100%;min-height:var(--touch-min);justify-content:flex-start;padding:.5rem .75rem}.meal-cell-card--skeleton{background:linear-gradient(90deg,#f8faff 20%,#ebf0ff,#f8faff 80%);background-size:250% 100%;animation:shimmer 1.2s ease-in-out infinite;border-color:transparent}.meal-cell-popup-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.meal-cell-popup-overlay--desktop{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none}.meal-cell-popup{width:min(28rem,92vw);max-height:80vh;display:flex;flex-direction:column;border-radius:14px;border:1px solid var(--border-strong);background:var(--bg-surface);box-shadow:var(--shadow-strong);animation:popup-enter .2s ease-out;overflow:hidden}.meal-cell-popup-overlay--desktop .meal-cell-popup{position:fixed;width:20rem;max-height:min(75vh,32rem);border-radius:12px;pointer-events:auto}.meal-cell-popup-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem .55rem;border-bottom:1px solid var(--border-color)}.meal-cell-popup-title{display:inline-flex;align-items:center;gap:.45rem;font-weight:700}.meal-cell-popup-subtitle{margin:0;padding:.5rem 1rem;color:var(--text-muted);font-size:.88rem}.meal-cell-popup-close{width:2rem;height:2rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer}.meal-cell-popup-close:hover{background:var(--bg-hover)}.meal-cell-popup-list{margin:0;padding:.4rem .55rem .6rem;list-style:none;overflow:auto;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:.35rem;background:linear-gradient(180deg,var(--bg-surface-subtle) 0%,transparent 100%)}.meal-cell-popup-actions{padding:.5rem .75rem .65rem;border-top:1px solid var(--border-color);background:var(--bg-surface)}.meal-cell-popup-add{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-surface-subtle);color:var(--text-primary);cursor:pointer;font-weight:600;padding:.52rem .65rem}.meal-cell-popup-add:hover{background:var(--bg-hover)}.meal-cell-popup-option{width:100%;padding:.78rem .82rem;border:1px solid transparent;border-radius:10px;background:var(--bg-surface);color:var(--text-primary);cursor:pointer;text-align:left;display:inline-flex;align-items:center;justify-content:space-between;gap:.45rem;font-size:1rem;font-weight:500;transition:background-color .15s ease,border-color .15s ease,transform .12s ease,box-shadow .15s ease}.meal-cell-popup-option:hover{background:#f8faff;border-color:#c7d2fe;box-shadow:0 2px 8px #0f172a14;transform:translateY(-1px)}.meal-cell-popup-option--selected{background:linear-gradient(135deg,#e0e7ff,#eef2ff);border-color:#a5b4fc;font-weight:700}.meal-cell-context-overlay{position:fixed;inset:0;z-index:1001}.meal-cell-context-menu{position:fixed;width:13rem;border-radius:12px;border:1px solid var(--border-strong);background:var(--bg-surface);box-shadow:var(--shadow-strong);overflow:hidden;animation:dropdown-enter .16s ease-out}.meal-cell-context-menu__item{width:100%;border:none;border-bottom:1px solid var(--border-color);padding:.72rem .9rem;text-align:left;background:transparent;color:var(--text-primary);cursor:pointer;font-size:.92rem;display:inline-flex;align-items:center;gap:.5rem}.meal-cell-context-menu__item:last-child{border-bottom:none}.meal-cell-context-menu__item:hover{background:var(--bg-hover)}.meal-cell-context-menu__item--danger{color:#b91c1c}.recipe-preview-overlay{position:fixed;inset:0;z-index:990;display:flex;align-items:center;justify-content:center;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.recipe-preview-modal{width:min(38rem,95vw);max-height:85vh;border-radius:14px;border:1px solid var(--border-strong);background:var(--bg-surface);box-shadow:var(--shadow-strong);animation:popup-enter .2s ease-out;overflow:hidden;display:flex;flex-direction:column}.recipe-preview-header{padding:.85rem 1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color)}.recipe-preview-title{margin:0;font-size:1.02rem;font-weight:700}.recipe-preview-close{width:2rem;height:2rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer}.recipe-preview-close:hover{background:var(--bg-hover)}.recipe-preview-body{padding:1rem;overflow-y:auto;min-height:20rem}.recipe-preview-meta-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.8rem}.recipe-preview-actions--bottom{display:none}.recipe-preview-body--loading{min-height:18rem}.confirm-dialog-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.confirm-dialog-wrapper{display:flex;align-items:center;justify-content:center;width:100%;padding:1rem}.confirm-dialog{width:min(28rem,92vw);padding:1.25rem;border-radius:14px;border:1px solid var(--border-strong);background:var(--bg-surface);box-shadow:var(--shadow-strong);animation:popup-enter .2s ease-out}.confirm-dialog-title{margin:0 0 .5rem;font-size:1.05rem;font-weight:700}.confirm-dialog-message{margin:0 0 1.25rem;color:var(--text-secondary);font-size:.92rem;line-height:1.5}.confirm-dialog-actions{display:flex;gap:.75rem;justify-content:flex-end}.confirm-dialog-button{padding:.5rem 1rem;border-radius:8px;font-weight:600;cursor:pointer}.confirm-dialog-button--cancel{border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary)}.confirm-dialog-button--cancel:hover{background:var(--bg-hover)}.confirm-dialog-button--confirm{border:none;background:var(--bg-accent);color:var(--text-on-accent)}.confirm-dialog-button--confirm:hover{background:var(--bg-accent-hover)}.confirm-dialog-button--danger{background:var(--danger-text)}.confirm-dialog-button--danger:hover{background:#991b1b}.recipe-form-modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:var(--overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.recipe-form-modal-wrapper{display:flex;align-items:center;justify-content:center;width:100%;max-height:100vh;padding:1rem}.recipe-form-modal{width:min(32rem,96vw);max-height:90vh;display:flex;flex-direction:column;border-radius:16px;border:1px solid var(--border-strong);background:var(--bg-surface);box-shadow:var(--shadow-strong);animation:popup-enter .22s ease-out;overflow:hidden}.recipe-form-modal-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--bg-surface);flex-shrink:0}.recipe-form-modal-back{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:10px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer}.recipe-form-modal-back:hover:not([aria-hidden]){background:var(--bg-hover);color:var(--text-primary)}.recipe-form-modal-back[aria-hidden]{visibility:hidden;pointer-events:none}.recipe-form-modal-title{flex:1;margin:0;font-size:1.15rem;font-weight:700;text-align:center}.recipe-form-modal-close{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:10px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer}.recipe-form-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.recipe-form-modal-body{flex:1;min-height:0;display:flex;flex-direction:column;padding:1.25rem 1.25rem 0;overflow:hidden}.recipes-fab{position:fixed;bottom:var(--fab-bottom);right:var(--fab-right);width:3.5rem;height:3.05rem;border-radius:50%;border:none;background:var(--bg-accent);color:var(--text-on-accent);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px #4f46e566;z-index:100;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}.recipes-fab:hover{background:var(--bg-accent-hover);transform:scale(1.05);box-shadow:0 6px 20px #4f46e580}.recipes-fab:active{transform:scale(.98)}@media(min-width:769px){.recipes-fab{bottom:2rem}}.plan-actions-fab{position:fixed;bottom:var(--fab-bottom);right:var(--fab-right);z-index:19;display:flex;flex-direction:column;align-items:flex-end;gap:.55rem;padding-right:4px}.plan-actions-fab__menu{display:flex;flex-direction:column;align-items:stretch;gap:.5rem;width:max-content;max-height:0;overflow:hidden;opacity:0;transform:translateY(.5rem);transition:max-height .72s ease,opacity .62s ease,transform .62s ease;margin-bottom:.2rem}.plan-actions-fab__menu--open{max-height:22rem;opacity:1;transform:translateY(0);overflow:visible;padding-bottom:0}.plan-actions-fab__item{display:flex;align-items:center;justify-content:flex-end;flex-direction:row;gap:.5rem;width:100%;height:3.05rem;flex-shrink:0;padding:0 .8rem 0 .95rem;text-align:right;border-radius:999px;box-sizing:border-box;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-primary);font:inherit;font-weight:600;font-size:.84rem;cursor:pointer;box-shadow:var(--shadow-soft);transition:background-color .18s ease,transform .16s ease;white-space:nowrap}.plan-actions-fab__menu .plan-actions-fab__item{opacity:0;transform:translateY(10px) scale(.98);transition:opacity .62s ease,transform .62s ease,background-color .18s ease}.plan-actions-fab__menu--open .plan-actions-fab__item{opacity:1;transform:translateY(0) scale(1)}.plan-actions-fab__menu--open .plan-actions-fab__item:nth-child(1){transition-delay:0ms}.plan-actions-fab__menu--open .plan-actions-fab__item:nth-child(2){transition-delay:.12s}.plan-actions-fab__menu--open .plan-actions-fab__item:nth-child(3){transition-delay:.24s}.plan-actions-fab__menu--open .plan-actions-fab__item:nth-child(4){transition-delay:.36s}.plan-actions-fab__item:hover:not(:disabled){background:var(--bg-hover);transform:scale(1.02)}.plan-actions-fab__item:disabled{opacity:.5;cursor:not-allowed}.plan-actions-fab__copy-submenu{display:flex;flex-direction:column;gap:.25rem;padding-left:.5rem}.plan-actions-fab__copy-submenu .plan-actions-fab__item{height:2.75rem;font-size:.85rem}.plan-actions-fab__trigger{width:3.5rem;height:3.5rem;aspect-ratio:1 / 1;border-radius:50%;border:none;background:var(--bg-accent);color:var(--text-on-accent);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px #4f46e566;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease}.plan-actions-fab__trigger:hover{background:var(--bg-accent-hover);transform:scale(1.05);box-shadow:0 6px 20px #4f46e580}.plan-actions-fab__trigger:active{transform:scale(.98)}.plan-actions-fab__trigger[aria-expanded=true]{transform:rotate(90deg)}.plan-actions-fab__trigger[aria-expanded=true]:hover{transform:rotate(90deg) scale(1.05)}@media(min-width:769px){.plan-actions-fab{display:none}}.shopping-list-page{display:flex;flex-direction:column;gap:.25rem;padding:0 0 6rem}.shopping-list-loading,.shopping-list-error{display:flex;align-items:center;gap:.5rem;padding:1rem}.shopping-list-error{color:var(--danger-text)}.shopping-list-readonly-hint{margin:0;padding:.5rem 0;font-size:.84rem;color:var(--text-muted)}.shopping-list-content-wrap{position:relative}.shopping-list-saving-spinner{position:absolute;top:0;right:0;z-index:5;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;color:var(--text-muted);opacity:.85;pointer-events:none}.shopping-list-fab{position:fixed;bottom:var(--fab-bottom);right:var(--fab-right);z-index:19}@media(min-width:769px){.shopping-list-fab{bottom:2rem}}.shopping-list-fab__trigger{width:3.5rem;height:3.05rem;border-radius:50%;border:none;background:var(--bg-accent);color:var(--text-on-accent);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px #4f46e566;transition:transform .2s ease,box-shadow .2s ease,background-color .18s ease}.shopping-list-fab__trigger:hover{background:var(--bg-accent-hover);transform:scale(1.08);box-shadow:0 6px 20px #4f46e573}.shopping-list-fab__trigger:active{transform:scale(.98)}.shopping-list-empty{margin:0;padding:1.5rem;text-align:center;color:var(--text-muted);font-size:.95rem}.shopping-list-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:.5rem}@media(min-width:640px){.shopping-list-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:960px){.shopping-list-grid{grid-template-columns:repeat(3,1fr)}}.shopping-list-grid--editable .shopping-list-item{cursor:pointer}.shopping-list-item{display:flex;align-items:center;gap:.65rem;padding:.75rem .9rem;border-radius:14px;border:1px solid var(--border-color);background:linear-gradient(160deg,var(--bg-surface) 0%,var(--bg-surface-subtle) 100%);box-shadow:0 1px 3px #0f172a0f,0 2px 8px #0f172a0a;min-height:var(--touch-min);transition:background .25s ease,box-shadow .25s ease,opacity .25s ease,transform .2s ease}.shopping-list-item:hover{box-shadow:0 4px 12px #0f172a14,0 2px 8px #0f172a0d}.shopping-list-item--checked{opacity:.72;background:linear-gradient(160deg,var(--bg-surface-subtle) 0%,var(--bg-elevated) 100%)}.shopping-list-item--checked .shopping-list-item-name{text-decoration:line-through;color:var(--text-muted)}.shopping-list-item--fade-out{opacity:0;transition:opacity .4s ease;pointer-events:none}.shopping-list-item--fade-in{opacity:0;animation:shopping-item-fade-in .35s ease forwards}@keyframes shopping-item-fade-in{0%{opacity:0}to{opacity:.72}}.shopping-list-item-checkbox-wrap{flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer}.shopping-list-item-checkbox{flex-shrink:0;width:1.5rem;height:1.5rem;margin:0;border-radius:50%;border:2px solid var(--border-strong);background:var(--bg-surface);cursor:pointer;appearance:none;-webkit-appearance:none;transition:background .2s ease,border-color .2s ease,transform .15s ease}.shopping-list-item-checkbox:hover{border-color:var(--bg-accent)}.shopping-list-item-checkbox:checked{background:var(--bg-accent);border-color:var(--bg-accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");background-size:14px 14px;background-position:center;background-repeat:no-repeat;transform:scale(1.05)}.shopping-list-item-checked-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted)}.shopping-list-item-name{flex:1;min-width:0;font-size:.98rem;transition:color .25s ease,text-decoration .2s ease}.shopping-list-item-name--checked{text-decoration:line-through;color:var(--text-muted)}.shopping-list-item-input{flex:1;min-width:0;padding:.25rem .4rem;border:1px solid var(--border-strong);border-radius:6px;font-family:inherit;font-size:.95rem}.shopping-list-item-input:focus{outline:none;box-shadow:0 0 0 2px var(--focus-ring)}.shopping-list-item-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}@media(min-width:769px){.shopping-list-item-actions{opacity:0;transition:opacity .18s ease}.shopping-list-item:hover .shopping-list-item-actions,.shopping-list-item:focus-within .shopping-list-item-actions{opacity:1}}.shopping-list-item-btn{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:10px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background-color .18s ease,color .18s ease}.shopping-list-item-btn:hover,.shopping-list-item-btn--delete:hover{background:var(--danger-bg);color:var(--danger-text)}.profile-menu{position:relative}.profile-menu-trigger{width:3.2rem;height:3.2rem;border-radius:999px;border:none;background:transparent;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .16s ease,background-color .18s ease,color .18s ease}.profile-menu-trigger:hover{background:#6366f11f;color:var(--text-primary);transform:translateY(-1px)}.profile-menu-panel{position:absolute;top:calc(100% + .45rem);right:0;width:min(27rem,90vw);padding:.9rem;border-radius:12px;border:2px solid var(--border-strong);background:var(--bg-surface);box-shadow:var(--shadow-strong);animation:dropdown-enter .15s ease-out;z-index:100}.profile-menu-email{padding:.15rem .3rem .2rem;font-size:1.03rem;font-weight:700;color:var(--text-primary);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-menu-settings-header{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1rem;color:var(--text-primary);padding:.6rem .45rem .75rem}.profile-menu-item{width:100%;padding:.8rem .85rem;border-radius:10px;border:none;background:transparent;color:var(--text-primary);text-decoration:none;text-align:left;display:inline-flex;align-items:center;gap:.55rem;cursor:pointer;font:inherit;font-size:1rem;font-weight:600}.profile-menu-item:hover{background:var(--bg-hover)}.profile-menu-divider{height:1px;margin:.5rem 0;background:var(--border-color)}.meal-plan-overlay{position:absolute;inset:0;z-index:12;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;font-weight:600;color:var(--text-primary);background:#f8faff8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in .15s ease-out}.spinner-icon{animation:spin .8s linear infinite}.empty-state-card{display:inline-flex;align-items:center;gap:.55rem;padding:.65rem .8rem;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary)}.empty-state-card--with-action{flex-direction:column;gap:.75rem}.recipes-empty-add{display:inline-flex;align-items:center;gap:.4rem}.auth-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.55rem;color:var(--text-secondary)}.auth-page,.diet-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.auth-card,.diet-card,.settings-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:14px;box-shadow:var(--shadow-soft)}.auth-card{width:100%;max-width:24rem;padding:1.5rem}.auth-title{margin:0 0 1.2rem;display:inline-flex;align-items:center;gap:.5rem;color:var(--text-primary)}.auth-tabs{display:flex;gap:.3rem;margin-bottom:1.15rem;border-bottom:1px solid var(--border-color)}.auth-tab{flex:1;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;padding:.6rem .7rem;background:transparent;color:var(--text-muted);font-weight:600;cursor:pointer}.auth-tab:hover,.auth-tab--active{color:var(--text-primary)}.auth-tab--active{border-bottom-color:var(--bg-accent)}.auth-form{display:flex;flex-direction:column;gap:.72rem}.auth-label{font-size:.84rem;font-weight:600;color:var(--text-secondary)}.auth-input-row{display:flex;align-items:center;gap:.5rem;border:1px solid var(--border-color);border-radius:10px;padding:0 .7rem;background:var(--bg-surface)}.auth-input-row svg{color:var(--text-muted)}.auth-input{border:none;background:transparent;color:var(--text-primary);width:100%;font:inherit;padding:.7rem 0}.auth-input:focus{outline:none}.auth-input-row:focus-within{border-color:#a5b4fc;box-shadow:0 0 0 3px var(--focus-ring)}.auth-error{padding:.66rem .8rem;border-radius:10px;border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger-text);font-size:.84rem;display:flex;align-items:center;gap:.45rem}.auth-submit{border:none;border-radius:10px;padding:.72rem .95rem;font-weight:700;color:var(--text-on-accent);background:var(--bg-accent);cursor:pointer}.auth-submit:hover:not(:disabled){background:var(--bg-accent-hover)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-logout-button{border-radius:10px;border:1px solid var(--border-strong);padding:.58rem .9rem;background:var(--bg-surface);color:var(--text-secondary);font:inherit;cursor:pointer}.auth-logout-button:hover{background:var(--bg-hover)}.auth-message{margin:0}.auth-message--success{padding:.75rem;border-radius:10px;color:#166534;background:#ecfdf5}.settings-page{width:100%;max-width:31rem;padding:.25rem 0}.settings-card{padding:1.4rem}.settings-title{margin:0 0 1.1rem;color:var(--text-primary);display:inline-flex;align-items:center;gap:.45rem}.settings-section{margin-bottom:1.25rem}.settings-sections-grid{display:grid;gap:.95rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}.settings-section--panel{margin-bottom:0;border:1px solid var(--border-color);border-radius:12px;background:var(--bg-elevated);padding:.9rem .95rem}.settings-section--meals{grid-column:1 / -1}.settings-section-title{margin:0 0 .55rem;font-size:1rem;color:var(--text-secondary);display:inline-flex;align-items:center;gap:.45rem}.settings-options{display:flex;flex-wrap:wrap;gap:.72rem}.settings-option{display:inline-flex;align-items:center;gap:.45rem;color:var(--text-primary);cursor:pointer}.settings-radio{width:1.1rem;height:1.1rem;accent-color:var(--bg-accent)}.settings-language-menu{position:relative;width:100%}.settings-language-trigger{width:100%;min-height:2.55rem;border-radius:12px;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-primary);font:inherit;font-weight:600;padding:.56rem .8rem;display:inline-flex;align-items:center;justify-content:space-between;gap:.6rem;cursor:pointer;box-shadow:inset 0 1px #0f172a0a;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.settings-language-trigger:hover{border-color:var(--border-strong);background:var(--bg-elevated)}.settings-language-trigger:focus-visible{outline:none;border-color:var(--bg-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--bg-accent) 25%,transparent),inset 0 1px #0f172a0a}.settings-language-trigger--open{border-color:var(--bg-accent)}.settings-language-trigger svg{color:var(--text-muted);transition:transform .2s ease}.settings-language-trigger--open svg{transform:rotate(180deg)}.settings-language-popover{position:absolute;top:calc(100% + .4rem);left:0;width:100%;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-soft);padding:.35rem;z-index:30}.settings-language-option{width:100%;border:none;border-radius:8px;background:transparent;color:var(--text-primary);font:inherit;padding:.52rem .6rem;display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;cursor:pointer}.settings-language-option:hover{background:var(--bg-hover)}.settings-language-option--active{background:color-mix(in srgb,var(--bg-accent) 14%,var(--bg-surface));color:var(--text-primary)}.settings-section--language .settings-language-menu,.settings-select--spaced{margin-top:.62rem}.settings-meal-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.6rem}.settings-meal-tile{border:1px solid var(--border-color);border-radius:10px;background:var(--bg-surface);color:var(--text-primary);font:inherit;font-weight:600;padding:.62rem .68rem;display:inline-flex;align-items:center;justify-content:space-between;gap:.5rem;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .15s ease}.settings-meal-tile:hover{border-color:var(--bg-accent);transform:translateY(-1px)}.settings-meal-tile:focus-visible{outline:2px solid var(--bg-accent);outline-offset:1px}.settings-meal-tile--active{border-color:var(--bg-accent);background:color-mix(in srgb,var(--bg-accent) 10%,var(--bg-surface))}.settings-section--danger{margin-bottom:0;border-top:1px solid var(--border-color);margin-top:1rem;padding-top:1rem}.settings-field-row--danger{display:flex}.settings-danger-button{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;border-color:var(--danger-border);color:var(--danger-text);background:color-mix(in srgb,var(--danger-bg) 62%,var(--bg-surface))}.settings-danger-button svg{flex-shrink:0;display:block}.settings-danger-button:hover:not(:disabled){background:color-mix(in srgb,var(--danger-bg) 82%,var(--bg-surface))}.settings-back-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-secondary);text-decoration:none}.settings-back-link:hover{color:var(--bg-accent)}.diet-card{width:100%;max-width:40rem;padding:1.35rem}.diet-description{margin:0 0 1rem;color:var(--text-secondary)}.diet-options{display:grid;gap:.7rem;margin-bottom:1rem}.diet-option{display:flex;align-items:flex-start;gap:.55rem;border-radius:12px;border:1px solid var(--border-color);background:var(--bg-surface-subtle);padding:.7rem}.diet-option-content{display:flex;flex-direction:column;color:var(--text-primary)}.diet-option-content small{color:var(--text-muted)}.diet-option-check{margin-left:auto;color:var(--bg-accent)}.diet-change-panel{margin-top:.8rem;border:1px solid var(--border-color);border-radius:12px;padding:.72rem;background:var(--bg-surface-subtle)}.recipe-form-page{max-width:40rem;margin:0 auto}.recipe-form-input{width:100%;padding:.75rem 1rem;font-size:1rem;font-family:inherit;color:var(--text-primary);background:var(--bg-surface);border:2px solid var(--border-color);border-radius:12px;transition:border-color .2s ease,box-shadow .2s ease}.recipe-form-input::placeholder{color:var(--text-muted)}.recipe-form-input:hover{border-color:var(--border-strong)}.recipe-form-input:focus{outline:none;border-color:var(--bg-accent);box-shadow:0 0 0 4px var(--focus-ring)}.recipe-form-input.recipe-form-textarea{resize:vertical;min-height:6rem;line-height:1.5}.recipe-form-modal-body .recipe-form{background:transparent;border:none;box-shadow:none;padding:0;flex:1;min-height:0;display:flex;flex-direction:column}.recipe-form-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:1rem;display:flex;flex-direction:column;gap:.55rem}.recipe-form{display:flex;flex-direction:column;gap:.55rem}.recipe-form-title{margin:0 0 .25rem;font-size:1.2rem}.recipe-form-field{display:flex;flex-direction:column;gap:.4rem}.recipe-form-field label,.recipe-form-label{font-size:.95rem;font-weight:500;color:var(--text-secondary)}.recipe-form-required{color:var(--danger-text)}.recipe-form-meal-types{display:flex;flex-wrap:wrap;gap:.6rem}.recipe-form-meal-type{display:flex;align-items:center;gap:.4rem;cursor:pointer;color:var(--text-primary)}.recipe-form-macros{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}.recipe-form-field--short input{min-width:0}.recipe-form-ingredients-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.recipe-form-add-ingredient{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .5rem;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary);font-size:.85rem;cursor:pointer}.recipe-form-add-ingredient:hover{background:var(--bg-hover);color:var(--text-primary)}.recipe-form-ingredients{display:flex;flex-direction:column;gap:.5rem}.recipe-form-ingredient-row{display:grid;grid-template-columns:1fr 5rem 4rem auto;gap:.5rem;align-items:center}.recipe-form-ingredient-name,.recipe-form-ingredient-qty,.recipe-form-ingredient-unit{min-width:0}.recipe-form-remove-ingredient{padding:.35rem;border-radius:8px;border:none;background:transparent;color:var(--text-muted);cursor:pointer}.recipe-form-remove-ingredient:hover:not(:disabled){background:var(--danger-bg);color:var(--danger-text)}.recipe-form-remove-ingredient:disabled{opacity:.4;cursor:not-allowed}.recipe-form-textarea{resize:vertical;min-height:5rem}.recipe-form-actions{display:flex;gap:.75rem;flex-shrink:0;padding:1rem 0;padding-bottom:max(1rem,env(safe-area-inset-bottom,1rem))}.recipe-form-button--cancel{padding:.6rem 1rem;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-primary);font:inherit;cursor:pointer}.recipe-form-button--cancel:hover{background:var(--bg-hover)}.recipe-form-button--submit{flex:1}.settings-actions{display:flex;gap:.55rem;margin-top:.75rem}.theme-dark{--bg-app: #020617;--bg-surface: #111827;--bg-elevated: #0f172a;--bg-surface-subtle: #0f172a;--bg-hover: #1e293b;--bg-accent: #6366f1;--bg-accent-hover: #4f46e5;--text-primary: #e2e8f0;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--text-on-accent: #f8fafc;--border-color: #334155;--border-strong: #475569;--overlay: rgba(2, 6, 23, .55);--danger-bg: rgba(127, 29, 29, .35);--danger-border: #7f1d1d;--danger-text: #fecaca}.theme-dark .meal-table thead th{background:#1e1b4b;border-color:#4338ca}.theme-dark .meal-table tbody td{background:#0f172a}.theme-dark .meal-table tbody tr:nth-child(2n) td{background:#111827}.theme-dark .meal-table .meal-label{background:#1f2937!important;border-right-color:#6366f1}@media(max-width:768px){.theme-dark .meal-table thead th:first-child,.theme-dark .meal-table .meal-label{background:#1f2937!important;box-shadow:2px 0 8px -2px #0000004d}.theme-dark .meal-table thead th:first-child{background:#1e1b4b!important;border-right-color:#4338ca}}.theme-dark .meal-table th,.theme-dark .meal-table td{border-color:#475569}.theme-dark .week-label--past{color:#94a3b8}.settings-page--inline{max-width:none;padding:0}.settings-page--compact{max-width:none}.settings-card--compact{border:none;box-shadow:none;border-radius:0;padding:.8rem .7rem .55rem}.settings-card--compact .settings-section{margin-bottom:0}.settings-card--compact .settings-sections-grid{gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.settings-card--compact .settings-section--panel{padding:.82rem .85rem}.settings-card--compact .settings-section-title{font-size:.99rem;margin:0 0 .52rem}.settings-card--compact .settings-option{font-size:.95rem}.settings-card--compact .settings-meal-tiles{grid-template-columns:repeat(auto-fit,minmax(8.8rem,1fr));gap:.5rem}.settings-card--compact .settings-meal-tile{font-size:.92rem;padding:.55rem .6rem}.settings-card--compact .settings-section--danger{margin-top:.85rem;padding-top:.85rem}.settings-card--compact .auth-logout-button{font-size:.95rem}.settings-card--compact .settings-language-trigger{min-height:2.35rem;border-radius:10px;font-size:.95rem;padding:.5rem .7rem}.settings-card--compact .settings-language-popover{top:calc(100% + .35rem);border-radius:10px;padding:.3rem}.settings-card--compact .settings-language-option{font-size:.93rem;padding:.45rem .55rem}.settings-card--compact .settings-select--spaced{margin-top:.5rem}.theme-dark .meal-cell-card--skeleton{background:linear-gradient(90deg,#0f172a 20%,#1e293b,#0f172a 80%)}.theme-dark .meal-cell-card-saving{background:#0f172ae0}.theme-dark .meal-cell-card{background:linear-gradient(160deg,#0f172a,#111e33)}.theme-dark .meal-cell-card:hover{background:#1f2937}.theme-dark .meal-cell-card--drag-over{border-color:#818cf8;background:#1e293b;box-shadow:0 0 0 2px #818cf847,0 6px 14px #02061773}.theme-dark .meal-cell-card-actions{background:transparent}.theme-dark .meal-cell-card-action:hover{background:#1e293b}.theme-dark .meal-cell-card-action--danger:hover{background:#b91c1c40}.theme-dark .meal-cell-popup-option:hover{background:#1e293b;border-color:#334155;box-shadow:none}.theme-dark .meal-cell-popup-option--selected{background:linear-gradient(135deg,#1e3a8a,#1d4ed8);border-color:#60a5fa;color:#eff6ff}.theme-dark .meal-plan-overlay{background:#0f172a8c}.theme-dark .auth-message--success{color:#bbf7d0;background:#064e3b66}@media(max-width:768px){.app-shell--mobile{min-height:100vh;padding-bottom:0}.app-header--mobile{display:flex;justify-content:center;align-items:center;grid-template-columns:none;margin:0 .5rem;border-radius:0;padding:.6rem .75rem}.app-header-brand--mobile{justify-content:center;width:100%;position:relative}.app-header-brand--mobile .app-header-title-link{flex-direction:row;align-items:center;gap:.5rem}.app-header-brand--mobile .app-header-back-button{position:absolute;left:0}.app-header-brand--mobile .app-header-icon{width:2.25rem;height:2.25rem}.app-week-sticky{position:sticky;top:0;z-index:10;margin:0 .5rem .25rem;padding:.5rem .75rem;background:var(--bg-surface);border:1px solid var(--border-color);border-top:none;border-radius:0 0 14px 14px;box-shadow:var(--shadow-soft)}.app-week-sticky .week-controls-wrapper{width:100%}.app-main--mobile{flex:1;min-height:0;overflow-y:auto;padding:.75rem .5rem;padding-bottom:calc(4rem + var(--safe-bottom))}.meal-plan-wrapper--cards{max-width:28rem}.main-nav--mobile{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;align-items:stretch;justify-content:space-around;gap:.25rem;padding:.5rem .75rem;padding-bottom:calc(.5rem + var(--safe-bottom));background:var(--bg-surface);border-top:1px solid var(--border-color);border-radius:16px 16px 0 0;box-shadow:0 -4px 12px #0f172a14}.main-nav--mobile .main-nav-item{flex:1;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-height:var(--touch-min);padding:.4rem .5rem;color:var(--text-muted);font:inherit;font-weight:600;font-size:.75rem;cursor:pointer;text-decoration:none;transition:color .18s ease}.main-nav--mobile .main-nav-item:hover{color:var(--text-primary)}.main-nav--mobile .main-nav-item--active{color:var(--bg-accent)}}@media(max-width:768px){#root{padding:.5rem}.app-shell:not(.app-shell--mobile){min-height:calc(100vh - 2rem - var(--safe-top) - var(--safe-bottom))}.app-header:not(.app-header--mobile){grid-template-columns:1fr;gap:.6rem;padding:.65rem .85rem;margin-bottom:.75rem}.app-header-brand{flex-wrap:wrap;gap:.4rem}.app-header-title,.app-header-center,.app-header-nav--right{justify-self:stretch}.app-header-nav--right{justify-content:flex-end;gap:.5rem}.app-header-link{padding:.6rem .85rem;min-height:var(--touch-min);display:inline-flex;align-items:center}.week-controls-wrapper{width:100%}.recipes-layout{flex-direction:column}.recipes-list,.recipes-detail{width:100%;max-height:none}.recipes-list{min-width:0}.recipes-list-item--active{border-color:var(--border-color);box-shadow:none}.recipes-sheet-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:0}.recipes-sheet{position:relative;width:100%;max-height:85vh;border-radius:16px 16px 0 0;background:var(--bg-surface);box-shadow:0 -8px 32px #0f172a33;animation:sheet-enter .25s ease-out;display:flex;flex-direction:column;overflow:hidden}.recipes-sheet--closing{animation:sheet-exit .22s ease-in forwards}.recipes-sheet--dragging{transition:none}.recipes-sheet:before{content:"";position:absolute;top:.5rem;left:50%;transform:translate(-50%);width:2.5rem;height:.25rem;border-radius:999px;background:var(--border-strong)}.recipes-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem .6rem;border-bottom:1px solid var(--border-color);touch-action:none}.recipes-sheet-title{margin:0;font-size:1.05rem;font-weight:700}.recipes-sheet-close{width:var(--touch-min);height:var(--touch-min);min-width:var(--touch-min);min-height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer}.recipes-sheet-close:hover{background:var(--bg-hover)}.recipes-sheet-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.9rem 1rem calc(.9rem + env(safe-area-inset-bottom,0px))}.week-controls{flex-wrap:wrap;justify-content:center;gap:.5rem}.week-nav-button{min-width:var(--touch-min);min-height:var(--touch-min);padding:.5rem}.week-nav-button--icon{width:var(--touch-min);height:var(--touch-min)}.week-label{min-width:10rem;font-size:1.05rem}.print-button{min-height:var(--touch-min);padding:.6rem .85rem}.meal-plan-wrapper{position:relative;border-radius:12px;overflow:hidden}.meal-plan-container{border-radius:12px;-webkit-overflow-scrolling:touch;overflow-x:auto;overflow-y:visible;mask-image:linear-gradient(to right,black 0%,black 85%,transparent 100%);-webkit-mask-image:linear-gradient(to right,black 0%,black 85%,transparent 100%)}.meal-table{min-width:640px;font-size:.85rem}.meal-table th,.meal-table td{padding:.65rem .4rem}.meal-table thead th:first-child,.meal-table .meal-label{position:sticky;left:0;z-index:4;background:#e5e7ff;box-shadow:2px 0 6px -2px #0f172a26}.meal-table thead th:first-child{z-index:5;background:#312e81;border-right:1px solid #4f46e5}.meal-cell-card{min-height:3.3rem;padding:.5rem;border-radius:8px}.profile-menu-trigger{width:var(--touch-min);height:var(--touch-min)}.profile-menu-panel{width:min(100%,27rem);max-height:85vh;overflow-y:auto;right:0;left:auto}.meal-cell-popup{width:min(92vw,28rem)}}@media(max-width:480px){.print-button-label{display:none}.print-button{padding:.5rem;min-width:var(--touch-min)}}@media(max-width:480px){#root{padding:.4rem}.app-header{padding:.5rem .65rem}.app-header-icon{width:2.25rem;height:2.25rem}.app-header-title{font-size:1.15rem}.app-header-env-badge{font-size:.6rem;padding:.15rem .4rem}.week-label{min-width:8rem;font-size:.95rem}.meal-table{min-width:560px}.meal-table th,.meal-table td{padding:.5rem .35rem}.meal-table .meal-label{font-size:.84rem}.meal-cell-card{min-height:3.1rem;font-size:.8rem}}@media(max-width:768px){.meal-cell-card-actions{display:none}.meal-cell-popup-overlay{align-items:flex-end;padding:0}.meal-cell-popup-overlay--desktop{align-items:center;padding:0}.meal-cell-popup{position:relative;width:100%;max-width:none;max-height:85vh;border-radius:16px 16px 0 0;margin:0;animation:sheet-enter .25s ease-out;box-shadow:0 -8px 32px #0f172a33}.meal-cell-popup--closing{animation:sheet-exit .22s ease-in forwards}.meal-cell-popup--dragging{transition:none}.meal-cell-popup:before{content:"";position:absolute;top:.5rem;left:50%;transform:translate(-50%);width:2.5rem;height:.25rem;border-radius:999px;background:var(--border-strong)}.meal-cell-popup-header{padding:.75rem 1rem .5rem;flex-shrink:0;touch-action:none}.meal-cell-popup-close{width:var(--touch-min);height:var(--touch-min);min-width:var(--touch-min);min-height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center}.meal-cell-popup-list{max-height:60vh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:env(safe-area-inset-bottom,.5rem)}.meal-cell-popup-actions{padding:.45rem .75rem .5rem}.meal-cell-popup-option{padding:.75rem .85rem;min-height:var(--touch-min);display:inline-flex;align-items:center}.meal-cell-context-menu__item{min-height:var(--touch-min);font-size:.95rem}.recipe-preview-overlay{align-items:flex-end;padding:0}.recipe-preview-modal{width:100%;max-width:none;max-height:86vh;border-radius:16px 16px 0 0;margin:0;animation:sheet-enter .25s ease-out}.recipe-preview-meta-row{flex-direction:column;align-items:stretch}.recipe-preview-actions--top{display:none}.recipe-preview-actions--bottom{display:block;margin-top:.85rem;padding-top:.85rem;border-top:1px solid var(--border-color)}.recipe-preview-actions--bottom .recipes-detail-actions{justify-content:flex-end}.confirm-dialog-overlay{align-items:center;justify-content:center;padding:1rem}.confirm-dialog-wrapper{width:100%;max-width:28rem;padding:0}.confirm-dialog{width:min(28rem,92vw);max-width:100%;border-radius:14px;margin:0;animation:popup-enter .2s ease-out}.confirm-dialog:before{content:none}.confirm-dialog-actions{padding-bottom:0}.confirm-dialog-button{flex:0 0 auto;min-height:var(--touch-min)}.recipe-form-modal-overlay{align-items:flex-end;padding:0}.recipe-form-modal-wrapper{width:100%;max-width:none;padding:0}.recipe-form-modal{position:relative;width:100%;max-width:none;max-height:92vh;border-radius:16px 16px 0 0;animation:sheet-enter .25s ease-out;touch-action:none}.recipe-form-modal--closing{animation:sheet-exit .22s ease-in forwards}.recipe-form-modal--dragging{transition:none}.recipe-form-modal:before{content:"";position:absolute;top:.5rem;left:50%;transform:translate(-50%);width:2.5rem;height:.25rem;border-radius:999px;background:var(--border-strong)}.profile-sheet-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:0}.profile-menu-panel--sheet{position:relative;top:auto;right:auto;left:auto;width:100%;max-width:none;max-height:85vh;border-radius:16px 16px 0 0;margin:0;padding:0;border:none;border-bottom:none;box-shadow:0 -8px 32px #0f172a33;animation:sheet-enter .25s ease-out;display:flex;flex-direction:column;overflow:hidden}.profile-menu-panel--sheet-closing{animation:sheet-exit .22s ease-in forwards}.profile-menu-panel--sheet-dragging{transition:none}.profile-menu-panel__sheet-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border-color);background:var(--bg-surface-subtle);flex-shrink:0;touch-action:none}.profile-menu-panel__sheet-title{font-weight:700;font-size:1.1rem;color:var(--text-primary)}.profile-menu-panel__sheet-close{width:var(--touch-min);height:var(--touch-min);min-width:var(--touch-min);min-height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer}.profile-menu-panel__sheet-close:hover{background:var(--bg-hover)}.profile-menu-panel__sheet-body{padding:.9rem;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(.9rem + env(safe-area-inset-bottom,0px))}}@keyframes sheet-enter{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}@media(max-width:768px){.auth-page,.diet-page{padding:.75rem;align-items:flex-start;padding-top:max(1rem,var(--safe-top));padding-bottom:max(1rem,var(--safe-bottom))}.auth-card,.diet-card{padding:1.25rem;border-radius:16px}.auth-tab{padding:.7rem .5rem;min-height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center}.auth-input-row{min-height:48px}.auth-submit,.auth-logout-button{min-height:var(--touch-min);padding:.75rem 1rem}.diet-option{padding:.85rem;min-height:auto}.diet-option .settings-radio{min-width:1.25rem;min-height:1.25rem}}@media(max-width:480px){.auth-card,.diet-card{padding:1rem}.auth-title{font-size:1.15rem}.settings-title{font-size:1.1rem}.recipe-form-ingredient-row{grid-template-columns:1fr 4rem 3.5rem auto}.recipe-form-macros{grid-template-columns:repeat(2,1fr)}}@media print{@page{size:A4 landscape;margin:12mm}body{background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}#root{padding:0}.app-header,.app-week-sticky,.main-nav,.plan-actions-bar,.plan-actions-fab,.profile-menu,.print-button,.week-controls,.meal-plan-overlay,.recipes-fab,.shopping-list-fab,.meal-plan-view--cards{display:none!important}.meal-plan-view--table{display:block!important}.meal-plan-view--table .meal-plan-wrapper{max-width:none}.meal-plan-view--table .meal-plan-container,.meal-plan-container{mask-image:none;-webkit-mask-image:none}.meal-plan-view--table .meal-plan-container,.meal-plan-container{box-shadow:none;border:1px solid #333;overflow:visible}.meal-table{min-width:100%;width:100%;page-break-inside:avoid;font-size:.75rem}.meal-table th,.meal-table td{padding:.35rem .4rem;min-height:0;height:2.2cm}.meal-cell-card{min-height:1.8cm;box-shadow:none;transform:none!important;font-size:inherit}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes popup-enter{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes dropdown-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}
