@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600;9..144,700&family=IBM+Plex+Sans:wght@300;400;500;600&family=Space+Mono:wght@400;700&display=swap";.recipes-page{padding:20px 18px 32px;display:flex;flex-direction:column;gap:16px;position:relative}.recipes-page .page-header{margin-bottom:4px}.recipes-header-actions{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}.action-btn--header{padding:8px 12px;border-radius:12px;font-size:.85rem;gap:6px;box-shadow:none}.action-btn--header .action-btn-icon{width:22px;height:22px;border-radius:8px}.action-btn--header .action-btn-icon svg{width:14px;height:14px}.recipes-search-card{background:none}.search-input-wrap{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1.5px solid #cfd6c7;background:#e4e9d8;box-shadow:inset 2px 2px 3px #1f2a3614}.search-input-icon{display:inline-flex;align-items:center;justify-content:center;color:#6a7765}.search-input-divider{width:1px;height:18px;background:#d7ddcf}.search-clear-btn{border:none;background:transparent;padding:0;display:inline-flex;align-items:center;justify-content:center;color:#3f4d43;cursor:pointer}.recipes-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.recipes-view-toggle{width:fit-content;max-width:100%;display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;padding:4px;border-radius:999px;border:1px solid var(--glass-chrome-border);background:var(--glass-chrome-bg);box-shadow:var(--glass-chrome-shadow-soft),var(--glass-chrome-highlight);flex-shrink:0;position:relative;isolation:isolate;backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur)}.recipes-view-toggle-thumb{position:absolute;top:4px;left:4px;width:calc(50% - 5px);height:calc(100% - 8px);border-radius:999px;background:#a4c1a2b8;border:1px solid rgba(164,193,162,.42);box-shadow:0 12px 22px #6f9f7b29,inset 0 1px #fff3;transform:translate(calc(var(--recipes-toggle-index, 0) * 100%));transition:transform .22s cubic-bezier(.22,.84,.25,1),box-shadow .22s ease;z-index:0;pointer-events:none;backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur)}.recipes-view-toggle-btn{width:44px;height:36px;border:none;border-radius:999px;background:transparent;color:#5a685b;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:color .18s ease,transform .16s ease;position:relative;z-index:1}.recipes-view-toggle-btn svg{width:19px;height:19px;display:block}.recipes-view-toggle-btn.is-active{color:#102235}.recipes-view-toggle-btn:active{transform:scale(.98)}@media (max-width: 520px){.recipes-page .page-header{align-items:flex-start;gap:12px}.recipes-header-actions{gap:8px}.action-btn--header{padding:8px 10px}.action-btn--header .action-btn-icon{width:20px;height:20px}.action-btn--header .action-btn-icon svg{width:13px;height:13px}.recipes-view-toggle{padding:4px}.recipes-view-toggle-btn{width:40px;height:34px}}.manage-folders-btn{border:1px solid var(--glass-chrome-border);background:var(--glass-chrome-bg);color:#1f2a36;border-radius:16px;padding:12px 14px;font-weight:700;cursor:pointer;box-shadow:var(--glass-chrome-highlight);backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur)}.manage-folders-btn:hover,.action-btn:hover{transform:translateY(-1px);box-shadow:var(--glass-chrome-highlight)}.manage-folders-btn:active,.action-btn:active{transform:translateY(1px)}.action-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--glass-chrome-border);background:var(--glass-chrome-bg);color:#1f2a36;border-radius:16px;padding:12px 14px;font-weight:700;line-height:1;cursor:pointer;box-shadow:var(--glass-chrome-highlight);transition:transform .15s ease,box-shadow .15s ease;backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur)}.recipes-page .folder-card{border:1px solid var(--glass-chrome-border);background:var(--glass-chrome-bg);box-shadow:var(--glass-chrome-highlight);backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur)}.action-btn .lucide{width:18px;height:18px;display:block;flex-shrink:0}.action-btn--primary{background:#a4c1a2b8;border-color:#a4c1a26b;color:#0f172a;box-shadow:0 14px 28px #6f9f7b2e,inset 0 1px #ffffff38}.recipes-page .action-btn:hover{box-shadow:none}.action-btn--add{display:inline-flex;align-items:center;gap:8px;padding:12px 16px;justify-content:center}.action-btn-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:10px;background:#0f172a1f;box-shadow:none!important;font-size:20px;font-weight:900;line-height:1}.action-btn-icon svg{width:18px;height:18px}.action-btn-icon--clear{background:transparent}.action-btn-icon--clear svg{width:20px;height:20px}html.dark .action-btn-icon{background:#0f172a59}html.dark .recipes-view-toggle{background:var(--glass-chrome-bg);border-color:var(--glass-chrome-border);box-shadow:var(--glass-chrome-shadow-soft),var(--glass-chrome-highlight)}html.dark .recipes-view-toggle-thumb{background:#9fc4a080;border-color:#a4c1a242;box-shadow:0 12px 22px #0000003d,inset 0 1px #ffffff14}html.dark .recipes-view-toggle-btn{color:#97aac2}html.dark .recipes-view-toggle-btn.is-active{color:#0b1522}.action-btn--danger{background:#fee2e2;border-color:#fca5a5;color:#991b1b}@media (max-width: 520px){.recipes-actions{gap:8px}.action-btn{font-size:.78rem;padding:10px 12px;border-radius:12px}}.quick-add-btn{border:none;background:transparent;color:#0f172a;width:auto;padding:0 12px;height:38px;border-radius:12px;font-weight:800;font-size:18px;cursor:pointer;box-shadow:none;display:inline-flex;align-items:center;justify-content:center}.category-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.recipes-page .folder-card{background:linear-gradient(135deg,#fffffff5,#ffffffd6);border-radius:20px;padding:16px;border:none;box-shadow:none;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.recipes-page .folder-card:hover{transform:translateY(-2px);box-shadow:none}.recipes-page .folder-card--active{background:linear-gradient(135deg,#a4c1a2f2,#a4c1a2b3)!important;border-color:transparent!important;box-shadow:none;transform:translateY(-2px)}.folder-card--active .folder-name{color:#f3f7e7}.folder-card--active .folder-meta{color:#fff;font-weight:600}.folder-card--hidden{display:none}.folder-name{font-weight:700;color:var(--color-text-main);display:flex;align-items:center;gap:8px}.folder-icon,.folder-emoji{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:0;background:transparent;border:none}.folder-meta{color:var(--color-text-muted);font-size:12px;font-weight:600}.subfolder-row{display:flex;flex-wrap:wrap;gap:8px}.subfolder-chip{border:1px solid #e2e8f0;background:transparent;border-radius:20px;padding:6px 12px;font-weight:600;color:#1e293b;cursor:pointer;transition:background-color .2s ease,color .2s ease,border .2s ease}.subfolder-chip--active{background:#6e8976;color:#f3f7e7;border:1px solid #334155}.subfolder-chip--hidden{display:none}.search-input{width:100%;border:none;background:transparent;border-radius:999px;padding:6px 8px;font-size:14px;font-weight:600;outline:none;box-shadow:none;color:var(--color-text-main)}.search-input:focus{border-color:transparent}.search-input-wrap:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #a4c1a240}.tag-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.tag-row-wrapper{overflow:hidden;transition:height .35s ease}.tag-subtitle{font-size:12px;font-weight:700;color:var(--color-text-muted);margin-top:8px}.tag-chip{border:1px solid rgba(155,181,149,.58);background:linear-gradient(180deg,#f1f8e8f5,#c9d6b7f5),radial-gradient(circle at 50% 0%,rgba(255,255,255,.42),transparent 62%);color:#314b3f;border-radius:999px;padding:8px 12px;font-weight:600;font-size:12px;cursor:pointer;box-shadow:0 8px 16px #6f9f7b1f,inset 0 1px #ffffff61,inset 0 -1px #637d6214;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease,filter .15s ease}.tag-chip:hover{transform:translateY(-1px);border-color:#86a681b8;box-shadow:0 10px 18px #6f9f7b29,inset 0 1px #ffffff6b,inset 0 -1px #637d621a;filter:saturate(1.03)}.tag-chip--active{border-color:#e5ccb5b8;background:linear-gradient(180deg,#fbf1e5fa,#ebdccafa),radial-gradient(circle at 50% 0%,rgba(255,255,255,.48),transparent 60%);color:#3f5047;box-shadow:0 8px 16px #af91701f,inset 0 1px #ffffff70,inset 0 -1px #876e5414}.tag-filters-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:8px}.tag-label{font-weight:700;color:#1f2a36}html.dark .tag-label{color:var(--text-dark-primary)}.tag-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tag-search-input{min-width:200px;width:200px;border:1px solid var(--color-border-light);border-radius:14px;padding:8px 12px;font-size:14px;background:#fff}.tag-collapse-btn{border:1px solid rgba(220,208,189,.72);background:linear-gradient(180deg,#fdfaf4f5,#f0eadff5),radial-gradient(circle at 50% 0%,rgba(255,255,255,.42),transparent 62%);border-radius:12px;padding:8px 12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:0 10px 20px #1f2a3614,inset 0 1px #ffffff5c,inset 0 -1px #7d70600f}html.dark .tag-collapse-btn{border-color:var(--border-dark-subtle);background:var(--bg-dark-surface);color:var(--text-dark-primary)}.list-stack{display:flex;flex-direction:column;gap:16px}.recipe-cover-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.recipe-cover-card{position:relative;border-radius:22px;overflow:hidden;cursor:pointer;outline:none;box-shadow:0 16px 34px #1f2a3629;background:#d9e2d4;transition:transform .16s ease,box-shadow .16s ease;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.recipe-cover-card:hover{transform:translateY(-2px);box-shadow:0 22px 42px #1f2a3633}.recipe-cover-card:active{transform:scale(.985)}.recipe-cover-card.recipe-card--context-open{transform:translateY(-2px) scale(1.01);box-shadow:0 26px 46px #1f2a363d,0 0 0 1px #a4c1a285}.recipe-cover-card-media{position:relative;aspect-ratio:4 / 5;min-height:0}.recipe-cover-card-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;pointer-events:none}.recipe-cover-card-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 90% at 100% 0%,rgba(164,193,162,.48),transparent 46%),linear-gradient(180deg,#e0e7defa,#cdd6cbfa);pointer-events:none}.recipe-cover-card-icon,.recipe-cover-card-icon.recipe-icon-wrap,.recipe-cover-card-icon.recipe-emoji{width:100%;height:100%;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:58px;background:transparent}.recipe-cover-card-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#09121e14,#09121e05 28%,#09121e85);pointer-events:none}.recipe-cover-card-body{position:absolute;left:0;right:0;bottom:0;z-index:1;display:flex;flex-direction:column;gap:6px;padding:14px 14px 13px;pointer-events:none}.recipe-cover-card-title{color:#fff;font-size:17px;font-weight:800;line-height:1.1;letter-spacing:-.02em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-shadow:0 2px 10px rgba(0,0,0,.24)}.recipe-cover-card-meta{display:inline-flex;align-items:center;gap:6px;color:#ffffffe6;font-size:12px;font-weight:700;text-shadow:0 2px 8px rgba(0,0,0,.22)}.recipe-cover-card-time-icon{width:12px;height:12px;display:inline-flex;align-items:center;justify-content:center}.recipe-cover-card-time-icon svg{width:12px;height:12px;display:block}.recipe-cover-card-favorite{position:absolute;top:10px;right:10px;z-index:2;width:34px;height:34px;border-radius:999px;border:1px solid rgba(255,255,255,.34);background:#0a121e3d;color:#fffffff5;display:inline-flex;align-items:center;justify-content:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:pointer;transition:transform .16s ease,background-color .16s ease,border-color .16s ease}.recipe-cover-card-favorite svg{width:16px;height:16px;display:block}.recipe-cover-card-favorite.is-active{background:#a4c1a2fa;border-color:#a4c1a2eb;color:#102235}.recipe-cover-card-favorite:active{transform:scale(.96)}.recipe-cover-grid-empty{grid-column:1 / -1}.recipe-card{position:relative;--recipe-card-height: 100px;--recipe-card-pad: 0px;--recipe-card-thumb: calc(var(--recipe-card-height) - (var(--recipe-card-pad) * 2));--recipe-thumb-radius: 20px;width:100%;height:var(--recipe-card-height);min-height:var(--recipe-card-height);padding:var(--recipe-card-pad);padding-right:calc(var(--recipe-card-pad) + 28px);background:#fff;border-radius:18px;border:none;box-shadow:0 12px 28px #1f2a3624;display:grid;grid-template-columns:var(--recipe-card-thumb) 1fr;column-gap:12px;align-items:center;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}@media (max-width: 520px){.recipe-card{--recipe-card-height: 96px;--recipe-card-pad: 8px;--recipe-card-thumb: calc(var(--recipe-card-height) - (var(--recipe-card-pad) * 2));--recipe-thumb-radius: 10px;column-gap:10px}.recipe-cover-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.recipe-cover-card{border-radius:18px}.recipe-cover-card-body{gap:4px;padding:12px 10px 10px}.recipe-cover-card-title{font-size:14px;line-height:1.15}.recipe-cover-card-meta{font-size:11px;gap:5px}.recipe-cover-card-time-icon,.recipe-cover-card-time-icon svg{width:11px;height:11px}.recipe-cover-card-favorite{top:8px;right:8px;width:30px;height:30px}.recipe-cover-card-favorite svg{width:14px;height:14px}}.recipe-card:hover{transform:translateY(-2px);box-shadow:0 22px 44px #1f2a362e}.recipe-card-image,.recipe-card img{width:var(--recipe-card-thumb);height:var(--recipe-card-thumb);min-width:var(--recipe-card-thumb);aspect-ratio:1 / 1;display:block;object-fit:cover;border-radius:var(--recipe-thumb-radius);flex:0 0 var(--recipe-card-thumb)}.recipe-card .recipe-emoji,.recipe-card .recipe-icon-wrap{width:var(--recipe-card-thumb);height:var(--recipe-card-thumb);min-width:var(--recipe-card-thumb);aspect-ratio:1 / 1;border-radius:var(--recipe-thumb-radius);padding:0;display:flex;align-items:center;justify-content:center;font-size:44px;background:linear-gradient(135deg,#ffffffe6,#f2b48740);flex:0 0 var(--recipe-card-thumb)}.recipe-card .recipe-icon-image{width:100%;height:100%;object-fit:cover;border-radius:inherit}.recipe-emoji{font-size:44px}.recipe-main{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;width:100%;margin:0;padding:0;background:transparent;border-radius:0;border:none;box-shadow:none;position:relative;z-index:1;justify-content:center;overflow:hidden;min-width:0}.recipe-delete{position:absolute;top:var(--recipe-card-pad);right:var(--recipe-card-pad);border:none;background:transparent;color:var(--color-text-muted);font-weight:700;cursor:pointer;padding:0;width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;box-shadow:none;line-height:0;opacity:.55;transition:background .15s ease,color .15s ease,opacity .15s ease}.recipe-delete:hover{background:#a4c1a22e;color:#1f2a36;opacity:1}.recipe-title{font-weight:700;font-size:17px;letter-spacing:-.01em;color:var(--color-text-main);display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2}.recipe-sub{color:var(--color-text-muted);font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px}.recipe-tags{display:flex;gap:6px;flex-wrap:wrap;row-gap:6px;overflow:hidden}.recipe-tag-pill{background:#a5c1a338;color:#2a3a2f;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700;border:none;white-space:nowrap}.confirm-actions{display:flex;gap:10px;margin-top:14px;justify-content:flex-end}.confirm-btn{border:1px solid #e2e8f0;background:#fff;border-radius:12px;padding:10px 14px;font-weight:700;cursor:pointer;color:#1e293b;transition:transform .1s ease,box-shadow .1s ease}.confirm-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px #00000014}.confirm-btn.danger{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.today-meal-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px;margin-bottom:8px;cursor:pointer;touch-action:pan-y}.today-meal-header{display:flex;align-items:center;gap:10px;margin-bottom:0;justify-content:space-between}.today-meal-main{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.meal-emoji{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;line-height:1;font-size:0}.meal-title{font-weight:700;color:#1e293b;letter-spacing:.01em;line-height:1.2}.meal-label{display:block;font-size:12px;color:#2f855a;font-weight:700;margin-bottom:2px}.today-meal-text{display:flex;flex-direction:column;min-width:0;gap:2px}.cooked-pill{background:#ecfeff;color:#0f766e;border:1px solid #0f766e;border-radius:12px;padding:4px 8px;font-size:12px;font-weight:700;margin-right:8px}.today-meal-menu-btn{border:1px solid #e2e8f0;background:#f8fafc;border-radius:10px;padding:6px 10px;cursor:pointer}.today-action-sheet-shell{border-radius:34px 34px 0 0;height:auto!important;padding-bottom:10px;background:#f8f8f3!important}.today-action-sheet{padding:12px 12px calc(12px + env(safe-area-inset-bottom));gap:8px}.today-action-sheet-header{display:flex;flex-direction:column;gap:4px;padding:4px 8px 8px}.today-action-sheet-meal{font-size:12px;line-height:1.2;font-weight:700;letter-spacing:.01em;color:var(--color-primary-dark, #2f855a)}.today-action-sheet-title{font-size:15px;line-height:1.3;font-weight:700;color:var(--color-text-main, #1e293b);word-break:break-word}.today-action-sheet-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.today-action-sheet-btn,.today-action-sheet-cancel{width:100%;border:1px solid var(--color-border-light, #e2e8f0);background:var(--color-bg-soft, #f8fafc);color:var(--color-text-main, #1e293b);border-radius:18px;padding:10px 12px;text-align:left;font-weight:700;font-size:14px;line-height:1.2;cursor:pointer}.today-action-sheet-btn-inner{display:inline-flex;align-items:center;gap:8px}.today-action-sheet-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:12px;line-height:1}.today-action-sheet-btn.is-destructive{color:#b42318;border-color:#fecaca;background:#fff1f2}.today-action-sheet-btn.is-disabled{opacity:.55;cursor:not-allowed}.today-action-sheet-cancel{grid-column:1 / -1;margin-top:4px;background:var(--color-bg-elevated, #ffffff);text-align:center;border-radius:20px;padding:11px 14px}html.dark .today-action-sheet-shell{background:linear-gradient(180deg,#121b2afa,#0c1321fa)!important}html.dark .today-action-sheet-meal{color:#9fc4a0}html.dark .today-action-sheet-title{color:var(--text-dark-primary)}html.dark .today-action-sheet-btn,html.dark .today-action-sheet-cancel{border-color:#3f5474c7;background:#121d2ee0;color:var(--text-dark-primary);box-shadow:inset 0 1px #ffffff08}html.dark .today-action-sheet-icon{color:#e2e8f0eb}html.dark .today-action-sheet-btn.is-destructive{color:#ff8f86;border-color:#f8717166;background:#4e1a1f75}html.dark .today-action-sheet-btn.is-destructive .today-action-sheet-icon{color:#ff8f86}html.dark .today-action-sheet-btn.is-disabled{opacity:.45}html.dark .today-action-sheet-cancel{background:#142a48f2;border-color:#234470cc}.today-servings-adjust{margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:12px}.today-servings-label{font-size:14px;font-weight:600;color:#1e293b}.today-servings-control{display:inline-flex;align-items:center;gap:8px;border:1px solid #e2e8f0;border-radius:999px;padding:4px 8px}.today-servings-control button{border:none;background:transparent;font-weight:700;font-size:18px;cursor:pointer;padding:0 6px}.today-servings-save{margin-left:12px;border:none;background:var(--color-primary);color:#0f172a;border-radius:999px;padding:6px 14px;font-weight:700;cursor:pointer}.today-meal-empty{background:#fff;border:1px dashed #e2e8f0;border-radius:12px;padding:14px;text-align:center;color:#475569;cursor:pointer;margin-bottom:8px;touch-action:pan-y}.today-meal-empty-label{font-weight:700;margin-bottom:4px}.today-meal-empty-sub{font-size:13px;color:#94a3b8}.today-nutrition-card{background:var(--color-bg-elevated);border:1px solid var(--color-border-light);border-radius:12px;padding:14px 16px;touch-action:pan-y}.today-nutrition-title{font-weight:800;color:var(--color-text-main);margin-bottom:10px}.today-nutrition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.today-nutrition-item{border:1px solid var(--color-border-light);border-radius:12px;padding:10px 12px;background:transparent}.today-nutrition-label{font-size:12px;color:var(--color-text-muted);font-weight:700}.today-nutrition-value{margin-top:4px;font-size:18px;font-weight:800;color:var(--color-text-main)}.progress-ring{position:relative;width:72px;height:72px;flex:0 0 auto}.progress-ring-svg{transform:rotate(-90deg);display:block}.progress-ring-track{stroke:var(--color-border-light)}.progress-ring-bar{transition:stroke-dashoffset .22s ease}.progress-ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--color-text-main)}.progress-ring-current{font-size:14px;font-weight:900;line-height:1}.progress-ring-goal{font-size:10px;color:var(--color-text-muted);margin-top:2px;font-weight:700}.progress-ring-label{font-size:10px;font-weight:800;color:var(--color-text-main);opacity:.9;margin-top:4px}.today-progress-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;justify-items:center;margin-bottom:12px}.progress-ring-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.today-progress-empty{margin-bottom:12px;border:1px dashed var(--color-border-light);border-radius:12px;padding:12px;font-size:13px;font-weight:700;color:var(--color-text-muted);text-align:center}.mark-cooked-btn{padding:10px 14px;background-color:var(--color-primary);border:none;border-radius:8px;color:#1e293b;font-weight:600;box-shadow:0 4px 12px #0000000f;cursor:pointer}.mark-cooked-btn.cooked{background-color:var(--color-secondary)}.last-cooked,.recipe-last-cooked{font-size:.8rem;color:#64748b;margin-top:4px}.time-row{display:flex;gap:12px}.time-field label{font-size:.75rem;color:#64748b}.total-time{margin-top:6px;font-size:.85rem;font-weight:500;color:#334155}.recipe-times div{font-size:.9rem;color:#475569}.btn-add{margin-top:8px;width:100%;border:none;border-radius:999px;background:#6e8976;color:#0f172a;padding:14px;font-weight:700;box-shadow:0 14px 38px #6f9f7b59;cursor:pointer}.recipes-fab{position:fixed;right:calc((100vw - var(--app-root-width)) / 2 + 16px);bottom:calc(var(--bottom-nav-clearance) + 25px);width:44px;height:44px;border-radius:999px;border:1px solid rgba(164,193,162,.42);background:#a4c1a2b8;color:#0f172a;font-size:18px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;z-index:40;box-shadow:0 14px 28px #6f9f7b33,inset 0 1px #ffffff3d;backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur)}.recipes-fab svg{width:20px;height:20px}.recipes-fab:hover{transform:translateY(-1px);box-shadow:0 22px 44px #1f2a3647}.recipes-scroll-top{position:fixed;right:calc((100vw - var(--app-root-width)) / 2 + 16px);bottom:calc(var(--bottom-nav-clearance) + 75px);width:44px;height:44px;border-radius:999px;border:1px solid var(--glass-chrome-border);background:var(--glass-chrome-bg);color:#2a3a2f;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--glass-chrome-shadow-soft),var(--glass-chrome-highlight);backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur);cursor:pointer;opacity:0;transform:translateY(6px);pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:39;margin-top:5px}.recipes-scroll-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}html.dark .recipes-scroll-top{background:var(--glass-chrome-bg);border-color:var(--glass-chrome-border);color:var(--text-dark-primary);box-shadow:var(--glass-chrome-shadow),var(--glass-chrome-highlight)}html.dark .recipes-fab{border-color:#a4c1a242;background:#9fc4a080;color:#0b1221;box-shadow:0 18px 34px #00000057,inset 0 1px #ffffff14}html.dark .recipe-cover-card{background:#111e31fa;box-shadow:0 18px 36px #00000057}html.dark .recipe-cover-card.recipe-card--context-open{box-shadow:0 28px 54px #00000085,0 0 0 1px #81b58e80}html.dark .recipe-cover-card-fallback{background:radial-gradient(120% 90% at 100% 0%,rgba(121,165,117,.26),transparent 48%),linear-gradient(180deg,#1a293dfa,#121e2efa)}html.dark .recipe-cover-card-scrim{background:linear-gradient(180deg,#020a121a,#020a1205 28%,#020a12b3)}html.dark .recipe-cover-card-favorite{background:#080f196b;border-color:#94a3b82e;color:#fffffff5}html.dark .recipe-cover-card-favorite.is-active{background:#79a575fa;border-color:#79a575e6;color:#07121d}.empty-state{text-align:center;color:var(--color-text-muted);font-size:14px;padding:10px 0}html.dark .recipes-page{background:var(--bg-dark-page)}html.dark .recipes-search-card{background:none!important}html.dark .search-input-wrap{background:#11192d;border-color:#94a3b859}html.dark .search-input-icon,html.dark .search-clear-btn{color:#e2e8f0bf}html.dark .search-input-divider{background:#94a3b840}html.dark .search-input{color:#f1f5f9f5;background-color:none;border:none;box-shadow:none!important}html.dark .search-input::placeholder{color:#cbd5e1b3}html.dark .manage-folders-btn,html.dark .action-btn{background:var(--glass-chrome-bg);border-color:var(--glass-chrome-border);color:var(--text-dark-primary);box-shadow:var(--glass-chrome-shadow),var(--glass-chrome-highlight);transition:transform .12s ease,border-color .12s ease,background-color .12s ease}html.dark .action-btn--danger{background:#f8717126;border-color:#f8717173;color:#fecaca}html.dark .action-btn--primary{background:#9fc4a080;border-color:#a4c1a242;box-shadow:0 18px 34px #0000004d,inset 0 1px #ffffff14}html.dark .manage-folders-btn:hover,html.dark .action-btn:hover{border-color:var(--border-dark-strong);transform:translateY(-1px)}html.dark .manage-folders-btn:active,html.dark .action-btn:active{transform:translateY(1px)}html.dark .recipes-page .folder-card{background:linear-gradient(135deg,#10192df2,#10192dcc);border:none;color:var(--text-dark-secondary);box-shadow:none;transition:transform .12s ease,border-color .12s ease,background-color .12s ease}html.dark .recipes-page .folder-card:hover{transform:translateY(-1px)}html.dark .tag-row,html.dark .tag-controls{background:transparent;border-radius:14px;padding:0;border:none;box-shadow:none}html.dark .tag-chip,html.dark .subfolder-chip{background:linear-gradient(180deg,#2b3f36f5,#1c2c26f5),radial-gradient(circle at 50% 0%,rgba(255,255,255,.1),transparent 60%);color:#d3e5d1;border:1px solid rgba(126,164,132,.34);box-shadow:0 10px 18px #00000038,inset 0 1px #ffffff14,inset 0 -1px #00000029;transition:transform .12s ease,border-color .12s ease,color .12s ease}html.dark .tag-chip--active{background:linear-gradient(180deg,#5a6c61f5,#3f4d45f5),radial-gradient(circle at 50% 0%,rgba(255,255,255,.1),transparent 60%);border-color:#b0c4b64d;color:#f8fafc}html.dark .tag-chip:hover,html.dark .subfolder-chip:hover{color:#f8fafc;border-color:#95bf9c6b;transform:translateY(-1px)}html.dark .tag-chip:active,html.dark .subfolder-chip:active{transform:translateY(1px)}html.dark .chip-active{background:var(--bg-dark-surface);color:var(--text-dark-primary);border-color:var(--border-dark-strong)}html.dark .tag-search-input{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary);box-shadow:inset 0 0 0 1px #ffffff05}html.dark .tag-collapse-btn{border-color:#ffffff1f;background:linear-gradient(180deg,#283544f5,#192533f5),radial-gradient(circle at 50% 0%,rgba(255,255,255,.08),transparent 60%);color:var(--text-dark-primary);box-shadow:0 12px 22px #0000003d,inset 0 1px #ffffff14,inset 0 -1px #00000029}html.dark .recipe-card{background:var(--bg-dark-surface);border:none;box-shadow:0 18px 36px #00000073;transition:transform .12s ease,border-color .12s ease,background-color .12s ease}html.dark .recipe-card:hover{transform:translateY(-1px)}html.dark .recipe-card:active{transform:scale(.99)}html.dark .recipe-emoji{opacity:.9}html.dark .recipe-main{background:transparent;border:none;box-shadow:none}html.dark .recipe-card .recipe-emoji,html.dark .recipe-card .recipe-icon-wrap{background:linear-gradient(135deg,#10192de6,#2ec77d29)}html.dark .recipe-sub,html.dark .recipe-meta,html.dark .recipe-time-icon{color:var(--text-dark-secondary)}html.dark .recipe-tag-pill{background:#2ec77d2e;color:var(--text-dark-primary);border:none}html.dark .recipe-delete{background:#ffffff0f;color:var(--text-dark-secondary);border:none;box-shadow:none;opacity:.7}html.dark .recipe-delete:hover{background:#2ec77d33;color:var(--text-dark-primary);opacity:1}.recipes-page .recipe-card{width:100%;height:104px;min-height:104px;padding:0 12px 0 0;background:#fff;border-radius:18px;border:none;box-shadow:0 8px 18px #1f2a361f;display:flex;flex-direction:row;align-items:center;column-gap:12px;overflow:hidden}.recipes-page .recipe-card:active{transform:scale(.99)}.recipes-page .recipe-card.recipe-card--context-open{transform:translateY(-2px);box-shadow:0 24px 44px #1f2a362e,0 0 0 1px #a4c1a285}html.dark .recipes-page .recipe-card.recipe-card--context-open{box-shadow:0 28px 54px #00000080,0 0 0 1px #81b58e7a}.recipes-page .recipe-card-image,.recipes-page .recipe-card img{width:104px;height:104px;min-width:104px;aspect-ratio:1 / 1;display:block;object-fit:cover;border-radius:0;flex:0 0 130px;flex-shrink:0;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}.recipes-page .recipe-card .recipe-emoji,.recipes-page .recipe-card .recipe-icon-wrap{width:80px;height:80px;min-width:80px;aspect-ratio:1 / 1;border-radius:14px;margin-left:12px;padding:0;display:flex;align-items:center;justify-content:center;font-size:34px;background:linear-gradient(135deg,#ffffffe6,#f2b48740);flex:0 0 80px;flex-shrink:0}.recipes-page .recipe-card .recipe-icon-image{width:100%;height:100%;object-fit:contain;border-radius:14px}.recipes-page .recipe-main{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;flex:1;min-width:0;margin:0;padding:0 28px 0 0;background:transparent;border:none;box-shadow:none;position:relative;justify-content:center;overflow:hidden}.recipes-page .recipe-title{font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--color-text-main);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2}.recipes-page .recipe-sub{color:var(--color-text-muted);font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px;white-space:nowrap}.recipes-page .recipe-time-icon{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;color:var(--color-text-muted)}.recipes-page .recipe-time-icon svg{width:12px;height:12px}.recipes-page .recipe-tags{display:flex;gap:6px;flex-wrap:wrap;row-gap:6px;max-height:32px;overflow:hidden}.recipes-page .recipe-tag-pill{background:#a5c1a32e;color:#2a3a2f;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;border:none;white-space:nowrap}.recipes-page .recipe-delete{position:absolute;top:50%;right:12px;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;padding:0;width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;box-shadow:none;line-height:0;opacity:.55;transform:translateY(-50%);z-index:2;pointer-events:auto;transition:background .15s ease,color .15s ease,opacity .15s ease}.recipes-page .recipe-delete:hover{background:#a4c1a22e;color:#1f2a36;opacity:1}.recipes-page .recipe-card-favorite{position:absolute;top:10px;right:10px;z-index:2;width:30px;height:30px;border-radius:999px;border:1px solid rgba(164,193,162,.4);background:#ffffffeb;color:#2c3b4fe6;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;line-height:0;transition:transform .14s ease,background-color .16s ease,border-color .16s ease,color .16s ease}.recipes-page .recipe-card-favorite svg{width:15px;height:15px;display:block}.recipes-page .recipe-card-favorite:hover{background:#a4c1a23d;border-color:#a4c1a2a8}.recipes-page .recipe-card-favorite:active{transform:scale(.95)}.recipes-page .recipe-card-favorite.is-active{background:#a4c1a2fa;border-color:#a4c1a2e6;color:#102235}html.dark .recipes-page .recipe-card-favorite{background:#07111e99;border-color:#94a3b83d;color:#f1f5fcf2}html.dark .recipes-page .recipe-card-favorite:hover{background:#79a57542;border-color:#79a57585}html.dark .recipes-page .recipe-card-favorite.is-active{background:#79a575fa;border-color:#79a575e6;color:#07121d}.bottom-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:flex-end;padding-bottom:var(--keyboard-inset, 0px);z-index:2200;pointer-events:none}.native-ios-shell .bottom-sheet-overlay{padding-bottom:0}.bottom-sheet-overlay.is-open{pointer-events:auto}.bottom-sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;opacity:0;transition:opacity .25s ease}.bottom-sheet-overlay.has-backdrop .bottom-sheet-backdrop{background:#00000052}.bottom-sheet-overlay.is-open .bottom-sheet-backdrop{opacity:1}.bottom-sheet{width:100%;max-width:min(100vw,480px);max-height:calc(var(--vv-height, 100vh) * var(--bottom-sheet-max-height-mult, .9));height:calc(var(--vv-height, 100vh) * var(--bottom-sheet-max-height-mult, .9));background:var(--color-bg, #fff);border-radius:26px 26px 0 0;box-shadow:0 -24px 50px #0f172a33;overflow:hidden;display:flex;flex-direction:column;min-height:0;will-change:transform;transform:translate3d(0,calc(100% + var(--bottom-sheet-drag-offset, 0px)),0);transition:transform var(--bottom-sheet-transition-ms, .5s) cubic-bezier(.3,.75,.4,1)}.bottom-sheet.is-open{transform:translate3d(0,var(--bottom-sheet-drag-offset, 0px),0)}.bottom-sheet.is-dragging{transition:none}.bottom-sheet-content{display:flex;flex-direction:column;min-height:0;height:100%;padding-bottom:env(safe-area-inset-bottom)}body.body--scroll-locked{overscroll-behavior:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;--fullscreen-surface-bg: rgba(15, 23, 42, .45);background:var(--fullscreen-surface-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:flex-end;justify-content:center;z-index:2000;padding:12px;padding-bottom:calc(12px + var(--bottom-nav-clearance, 0px) + env(safe-area-inset-bottom,0px))}.modal-backdrop--planner{align-items:flex-end;padding-top:max(16px,env(safe-area-inset-top,0px));padding-bottom:max(16px,env(safe-area-inset-bottom,0px))}.modal-backdrop--planner .modal-container{max-height:calc(100vh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));max-height:calc(100svh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.modal-backdrop--center{align-items:center;padding-top:calc(12px + env(safe-area-inset-top,0px));padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.modal-backdrop--overlay-sheet{align-items:flex-end;padding-top:calc(12px + env(safe-area-inset-top,0px));padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.modal-backdrop--clear{--fullscreen-surface-bg: transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.modal-container{background:var(--color-bg-elevated);border-radius:24px 24px 20px 20px;box-shadow:0 18px 40px #0f172a33;border:1px solid var(--color-border-light);width:100%;max-width:480px;padding:16px;animation:modalEnter .2s ease;max-height:90vh;display:flex;flex-direction:column}.modal-sm{max-height:60vh}.recipe-detail-delete-modal{margin-bottom:800px}.modal-lg{max-height:95vh}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.modal-title{margin:0;font-size:18px;font-weight:800;color:var(--color-text-main)}.modal-close{border:none;background:transparent;font-size:20px;cursor:pointer;color:var(--color-text-main)}.modal-body{margin-top:10px;overflow-y:auto;flex:1;color:var(--color-text-main)}.modal-enter{animation:modalEnter .2s ease}@keyframes modalEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.recipe-icon-wrap{display:inline-flex;align-items:center;justify-content:center;background-color:#86efac40;border-radius:12px;padding:6px;line-height:1}.recipe-icon-image{width:1em;height:1em;object-fit:contain;display:block}.recipe-icon-placeholder{width:1em;height:1em;display:block;border-radius:.2em;background:currentColor;opacity:.2}.add-planner-sheet{background:#f8f8f3;height:auto}.bottom-sheet.add-planner-sheet{transform:translate3d(0,calc(var(--vv-height, 100vh) + var(--bottom-sheet-drag-offset, 0px)),0)}.bottom-sheet.add-planner-sheet.is-open{transform:translate3d(0,var(--bottom-sheet-drag-offset, 0px),0)}.add-planner-sheet-content{padding:14px}.ap-sheet-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 6px 4px}.ap-sheet-title{font-size:18px;font-weight:900;letter-spacing:-.02em;color:#0b1221;text-align:left;padding:0 6px}.ap-sheet-icon{width:auto;height:auto;border-radius:0;border:none;background:transparent;color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.ap-sheet-icon svg{display:block}.add-planner-shell{display:flex;flex-direction:column;height:100%;min-height:0}.add-planner-content{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;overflow:auto;padding-bottom:12px}.ap-group{background:#fff;border:1px solid rgba(225,217,204,.8);border-radius:18px;padding:12px}.ap-group-title{font-size:13px;font-weight:800;color:#0b1221;letter-spacing:.02em;text-transform:uppercase;margin-bottom:10px}.ap-recipe{padding:10px 12px}.ap-recipe-row{display:flex;align-items:center;gap:10px}.ap-recipe-icon{width:44px;height:44px;border-radius:14px;overflow:hidden;flex-shrink:0}.ap-recipe-meta{min-width:0;display:flex;flex-direction:column;gap:2px}.ap-recipe-label{font-size:12px;font-weight:700;color:#0b1221}.ap-recipe-title{font-size:15px;font-weight:800;letter-spacing:-.01em;color:var(--color-text-main);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.ap-segmented{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:2px;border-radius:14px;background:#f5f0e8;border:1px solid rgba(148,163,184,.22)}.ap-seg-thumb{position:absolute;top:2px;bottom:2px;left:2px;width:calc((100% - 6px)/4);border-radius:12px;background:var(--color-primary);box-shadow:0 8px 18px #0f172a1f;transition:transform .22s cubic-bezier(.22,1,.36,1),opacity .18s ease;pointer-events:none}.ap-segmented--mult{grid-template-columns:repeat(3,1fr)}.ap-seg-thumb--mult{width:calc((100% - 6px) / 3)}.ap-seg{position:relative;z-index:1;border:none;background:transparent;padding:10px 8px;border-radius:12px;font-weight:800;font-size:13px;color:#575d67f2;cursor:pointer;transition:color .16s ease}.ap-seg.is-active{color:#0f172a}.ap-seg:active{transform:translateY(1px)}.ap-cell{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-radius:14px;background:#ffffffbf;border:1px solid rgba(225,217,204,.85)}.ap-cell-left{font-weight:800;color:var(--color-text-main);font-size:14px}.ap-cell-right{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:var(--color-text-main);font-size:14px}.ap-cell-right.is-placeholder{color:#6c7481d9}.ap-cell-icon{color:#6c7481e6;display:inline-flex}.ap-date-overlay{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.001;cursor:pointer;border:none;background:transparent;z-index:2;width:100%;height:100%}.ap-footnote{margin-top:10px;font-size:12px;color:var(--color-text-muted)}.ap-stepper{display:inline-flex;align-items:center;border-radius:14px;overflow:hidden;border:1px solid rgba(148,163,184,.25);background:#ffffffd9}.ap-stepper-btn{width:40px;height:34px;border:none;background:transparent;font-size:20px;font-weight:800;color:var(--color-text-main);cursor:pointer}.ap-stepper-btn:disabled{opacity:.35;cursor:not-allowed}.ap-stepper-btn:active:not(:disabled){background:#94a3b81f}.ap-stepper-value{min-width:52px;text-align:center;font-weight:900;font-size:14px;color:var(--color-text-main)}.add-planner-footer{margin-top:auto;padding-top:12px;border-top:1px solid rgba(225,217,204,.85);display:flex;flex-direction:row;gap:10px;align-items:center}.ap-cta{flex:1;border:none;border-radius:16px;padding:14px 16px;font-weight:900;font-size:15px;letter-spacing:-.01em;background:#a4c1a2;color:#0f172a;box-shadow:0 14px 30px #1f2a3629;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.ap-cta:active:not(:disabled){transform:translateY(1px);box-shadow:0 10px 22px #1f2a3624}.ap-cta:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.ap-cancel{flex:1;border-radius:16px;padding:14px 16px;font-weight:900;font-size:15px;letter-spacing:-.01em;border:1px solid rgba(148,163,184,.35);background:#ffffffa6;color:var(--color-text-main);cursor:pointer}.ap-cancel:active{transform:translateY(1px);background:#94a3b824}html.dark .add-planner-sheet{background:linear-gradient(180deg,#121b2afa,#0c1321fa);color:var(--text-dark-primary)}html.dark .ap-group{background:#10192dbf;border-color:#30405c99;box-shadow:0 16px 40px #00000059}html.dark .ap-sheet-title,html.dark .ap-group-title,html.dark .ap-recipe-label,html.dark .ap-recipe-title,html.dark .ap-cell-left,html.dark .ap-cell-right,html.dark .ap-stepper-btn,html.dark .ap-stepper-value,html.dark .ap-footnote,html.dark .ap-cancel{color:var(--text-dark-primary)}html.dark .ap-sheet-icon{color:#9fc4a0}html.dark .ap-segmented{background:#30405c59;border-color:#30405c8c}html.dark .ap-seg-thumb{background:#9fc4a0;box-shadow:0 14px 26px #00000059}html.dark .ap-seg{color:#9fb1c9e6}html.dark .ap-seg.is-active{color:#0b1221}html.dark .ap-cell{background:#10192db8;border-color:#30405c8c}html.dark .ap-cell-right{color:#e2e8f0eb}html.dark .ap-cell-right.is-placeholder,html.dark .ap-cell-icon{color:#9fb1c9d9}html.dark .ap-stepper{background:#10192dcc;border-color:#30405c8c}html.dark .ap-stepper-btn:active:not(:disabled){background:#9fc4a01f}html.dark .add-planner-footer{border-top-color:#30405c99}html.dark .ap-cta{background:#9fc4a0;color:#0b1221;box-shadow:0 18px 46px #0006}html.dark .ap-cancel{background:#121d2edb;border-color:#3f5474cc;box-shadow:inset 0 1px #ffffff08}html.dark .ap-cancel:active{background:#213048e6}@media (prefers-reduced-motion: reduce){.ap-seg-thumb,.ap-cta{transition:none}}.recipe-card-context-menu{position:fixed;z-index:1900;width:220px;padding:8px;border-radius:18px;border:1px solid var(--glass-chrome-border);background:var(--glass-chrome-bg-strong);box-shadow:var(--glass-chrome-shadow),var(--glass-chrome-highlight);backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur);transform:translateY(0);transform-origin:top right;animation:recipe-card-context-menu-in .18s cubic-bezier(.2,.82,.32,1)}@keyframes recipe-card-context-menu-in{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.recipe-card-context-menu{animation:none}}.recipe-card-context-menu-item{width:100%;border:1px solid transparent;background:#ffffff29;border-radius:14px;color:#243147;min-height:48px;padding:0 14px;display:flex;align-items:center;gap:12px;font-size:15px;font-weight:700;text-align:left;cursor:pointer;transition:background-color .14s ease,color .14s ease,transform .14s ease}.recipe-card-context-menu-item:hover,.recipe-card-context-menu-item:focus-visible{background:#ffffff52;outline:none}.recipe-card-context-menu-item:active{transform:scale(.985)}.recipe-card-context-menu-item--danger{color:#a83a46}.recipe-card-context-menu-item--danger:hover,.recipe-card-context-menu-item--danger:focus-visible{background:#d14e621f}.recipe-card-context-menu-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px}.recipe-card-context-menu-icon svg{width:18px;height:18px;display:block}html.dark .recipe-card-context-menu{border-color:var(--glass-chrome-border);background:var(--glass-chrome-bg-strong);box-shadow:var(--glass-chrome-shadow),var(--glass-chrome-highlight)}html.dark .recipe-card-context-menu-item{color:#f0f5fbf5}html.dark .recipe-card-context-menu-item:hover,html.dark .recipe-card-context-menu-item:focus-visible{background:#ffffff14}html.dark .recipe-card-context-menu-item--danger{color:#ff9aa7}html.dark .recipe-card-context-menu-item--danger:hover,html.dark .recipe-card-context-menu-item--danger:focus-visible{background:#ff7a9024}.recipe-detail-page{--recipe-detail-header-top: max(0px, calc(var(--app-safe-top, 0px) - 44px));padding:0 8px 28px!important;margin:0;width:100%;min-height:100%;display:flex;flex-direction:column;gap:0;background:var(--app-bg);position:relative;box-sizing:border-box}.recipe-detail-content{display:flex;flex-direction:column;gap:10px}.recipe-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:none;background:rgba(var(--recipe-detail-overlay-rgb, 15, 23, 42),calc(var(--recipe-detail-overlay-alpha, .18) * var(--recipe-detail-overlay-alpha-mult, 1)));transition:background-color .4s ease}html.recipe-editor-open .recipe-detail-overlay,body.recipe-editor-open .recipe-detail-overlay,.app-root.recipe-editor-open .recipe-detail-overlay{pointer-events:none}.recipe-detail-page--overlay{--recipe-detail-header-top: max(0px, calc(var(--app-safe-top, 0px) - 8px));transform:translate3d(0,calc(var(--recipe-detail-sheet-offset, 100%) + var(--recipe-detail-drag-offset, 0px)),0);transition:transform .525s cubic-bezier(.22,1,.36,1),opacity .4s ease;will-change:transform,opacity;box-shadow:0 -24px 48px #0f172a29}.recipe-detail-page--overlay.slide-in{--recipe-detail-sheet-offset: 0%}.recipe-detail-page--overlay.slide-out{--recipe-detail-sheet-offset: 100%;transition-duration:.4s;transition-timing-function:cubic-bezier(.4,0,.7,1)}.recipe-detail-page--overlay.is-dragging-sheet,.recipe-detail-overlay.is-dragging-sheet{transition:none}.recipe-detail-chat-fab{position:fixed!important;top:90%;right:10px;bottom:calc(var(--bottom-nav-clearance) + env(safe-area-inset-bottom) + 12px);width:56px;height:56px;border-radius:999px;border:1px solid var(--color-border-light);background:var(--color-primary);color:#1f2a20;display:inline-flex;align-items:center;justify-content:center;z-index:2000;cursor:pointer}.recipe-detail-chat-fab svg{display:block}html.chat-open .recipe-detail-chat-fab,body.chat-open .recipe-detail-chat-fab,html.recipe-editor-open .recipe-detail-chat-fab,body.recipe-editor-open .recipe-detail-chat-fab,.app-root.recipe-editor-open .recipe-detail-chat-fab{opacity:0;pointer-events:none}.app-root.recipe-detail-open .app-content{pointer-events:none}.recipe-detail-drag-zone{position:relative;display:flex;flex-direction:column;gap:0;order:0}.recipe-detail-drag-zone--header-only{min-height:72px}.detail-header{display:flex;align-items:center;justify-content:space-between;position:absolute;top:var(--recipe-detail-header-top, 0px);left:0;right:0;z-index:8;padding:0 8px;background:transparent;border:none;box-shadow:none}.detail-action-menu{position:relative;display:flex;align-items:center}.detail-action-toggle{display:inline-flex;align-items:center;justify-content:center}.detail-action-icon{width:18px;height:18px}.detail-action-dropdown{position:absolute;top:58px;right:0;min-width:190px;padding:10px;border-radius:20px;border:1px solid var(--glass-chrome-border);background:var(--glass-chrome-bg-strong);box-shadow:var(--glass-chrome-shadow),var(--glass-chrome-highlight);backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur);display:flex;flex-direction:column;gap:6px;z-index:12;transform-origin:top right;animation:detailMenuIn .3s ease-out}.detail-action-item{border:1px solid rgba(255,255,255,.12);background:#ffffff57;color:#1f2937;font-weight:600;border-radius:50px;padding:10px 12px;text-align:left;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.detail-action-item svg{flex-shrink:0}.detail-action-item:hover{background:#ffffff7a;transform:translateY(-1px);box-shadow:0 8px 16px #1f2a361f}.detail-action-item--danger{background:#fff1f2;color:#b91c1c}.detail-action-item--danger:hover{background:#ffe4e6}.detail-action-item--success{background:#a4c1a259;color:#1f4630}.detail-action-item--success:hover{background:#a4c1a273}.detail-action-popover{background:#ffffff5c;border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:12px 14px 14px;backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur)}.detail-action-popover-title{font-size:12px;font-weight:800;color:#040404;text-transform:uppercase;letter-spacing:.12em;margin-bottom:10px}.detail-action-popover-options{display:flex;gap:8px;margin-bottom:12px}.detail-action-chip{border:1px solid rgba(255,255,255,.3);background:#ffffff8a;color:#121212;font-weight:700;padding:6px 12px;border-radius:999px;min-width:44px;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;cursor:pointer}.detail-action-chip:hover{transform:translateY(-1px);box-shadow:0 6px 12px #965d1a26}.detail-action-chip.is-active{background:#f8e6d5c7;border:1px solid rgba(225,186,149,.48);color:#2b1b0f}.detail-action-popover-ok{border:none;background:#696969;color:#fff;font-weight:700;border-radius:999px;padding:8px 16px;cursor:pointer;align-self:flex-start}@keyframes detailMenuIn{0%{opacity:0;transform:translateY(-6px) scale(.96)}70%{opacity:1;transform:translateY(1px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}.detail-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.duplicate-btn{border:1px solid #e2e8f0;border-radius:12px;font-weight:700}.recipe-detail-page .icon-btn{border:none;background:#ffffffe6;color:#1e293b;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;border-radius:12px;padding:8px;border:1px solid rgba(255,255,255,.7);box-shadow:0 10px 18px #1f2a361f}.recipe-detail-page .icon-btn--back{width:auto;height:auto;padding:4px;justify-content:center;box-shadow:none;border:none;background:transparent}.detail-header .back-icon{width:44px;height:44px;background:#ffffff94;border:1px solid rgba(255,255,255,.42);box-shadow:0 10px 20px #1f2a361f,inset 0 1px #ffffff3d;color:#1f2937;backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%)}.recipe-detail-page .icon-btn .icon-label{line-height:1}.fav-btn{background:none;border:none;font-size:1.4rem;cursor:pointer;color:#94a3b8;transition:.2s}.detail-actions .fav-btn .fav-icon svg{width:36px;height:36px;display:block}.fav-btn--active{color:#ffd54b;transform:scale(1.05)}.detail-actions .fav-btn{position:static!important;top:auto!important;right:auto!important;padding:5px;order:-1;border-radius:12px;background:#ffffffe6;border:1px solid rgba(255,255,255,.7);box-shadow:0 10px 18px #1f2a361f}.recipe-detail-content>.recipe-detail-drag-zone>.detail-header{order:0}.recipe-detail-content>.recipe-detail-drag-zone>.recipe-cover-stage{order:1}.recipe-detail-content>.title-block{order:2;margin-top:0;z-index:4}.recipe-detail-content>.recipe-action-row{order:3}.recipe-detail-content>.tag-row{order:4;margin-top:0;z-index:3}.recipe-detail-content>.recipe-cover-actions{order:5}.recipe-detail-content>.recipe-content{order:6}.title-block{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:0;border-radius:0;background:transparent;border:none;box-shadow:none;margin:6px 10px -12px;margin-top:-6px!important}.emoji{display:none}.title-block--no-cover{flex-direction:row;align-items:center;gap:12px;padding-top:10px}.title-block--no-cover .emoji{display:inline-flex;width:64px;height:64px;border-radius:18px;align-items:center;justify-content:center;font-size:34px;background:linear-gradient(135deg,#ffffffe6,#f2b48740);flex-shrink:0}.title-text{display:flex;flex-direction:column;gap:10px;width:100%}.recipe-action-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:35px;margin:5px 40px 0;padding:0;border-radius:0;background:transparent;border:none;box-shadow:none}.recipe-action-row--five{grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}.recipe-action{border:none;background:transparent;display:grid;justify-items:center;padding:8px 4px;border-radius:0;cursor:pointer;color:var(--color-text-main);font-weight:600;font-size:12px;letter-spacing:0;text-transform:none}.recipe-action-icon{width:46px;height:46px;border-radius:999px;border:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;box-shadow:none;color:#6b7280}.recipe-action-row .ask-ai-icon--header{width:32px;height:32px}.recipe-action-icon img{width:32px;height:32px;display:block}.recipe-action-label{font-size:12px;color:var(--color-text-muted);text-transform:none;letter-spacing:0}.recipe-action--active .recipe-action-icon{color:#6f9f7b}.recipe-action-icon--favorite,.recipe-action-icon--edit,.recipe-action-icon--planner,.recipe-action-icon--generate{color:#a5c1a3}.planner-flyer{position:fixed;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;color:#6f9f7b;background:#f3f7f0;border-radius:999px;border:1px solid rgba(111,159,123,.35);pointer-events:none;z-index:4000;box-shadow:0 10px 18px #0f172a2e;will-change:transform,opacity;left:0;top:0;opacity:0;transform:translate(-50%,-50%);animation:plannerFlyIn .65s cubic-bezier(.22,.84,.25,1) forwards}.planner-flyer svg{width:70%;height:70%;display:block}.planner-flyer:after{content:"";position:absolute;top:-9px;right:-9px;bottom:-9px;left:-9px;border-radius:999px;background:radial-gradient(circle,#6f9f7b3d,#6f9f7b1a 48%,#6f9f7b00 76%);animation:plannerFlyGlow .65s ease-out forwards}.planner-flyer-icon{display:inline-flex;align-items:center;justify-content:center}.recipe-action--planner-btn,.recipe-action-icon--planner{position:relative}.recipe-action-icon--planner:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:999px;background:radial-gradient(circle,#6f9f7b47,#6f9f7b24 45%,#6f9f7b00 74%);opacity:0;transform:scale(.78);pointer-events:none}.recipe-action--planner-btn.is-planner-pulse .recipe-action-icon--planner{animation:plannerIconPop .42s cubic-bezier(.2,.9,.25,1.1)}.recipe-action--planner-btn.is-planner-pulse .recipe-action-icon--planner:after{animation:plannerImpactGlow .42s ease-out}.recipe-action--active .recipe-action-icon--favorite{color:#6f9f7b}.recipe-action--active .recipe-action-icon--favorite svg path{fill:currentColor}.recipe-action-icon--favorite{position:relative}.recipe-action--favorite-btn.is-fav-anim .recipe-action-icon--favorite{animation:favoritePop .52s cubic-bezier(.2,.9,.25,1.15)}.recipe-action--favorite-btn.is-fav-pulse .recipe-action-icon--favorite svg{animation:favoriteWiggle .52s cubic-bezier(.2,.9,.25,1.15);transform-origin:50% 65%}.recipe-action-icon--favorite:before{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;border-radius:999px;pointer-events:none;opacity:0;background:radial-gradient(circle,rgba(255,238,218,.95) 0 3px,transparent 4px) 18% 30% / 10px 10px no-repeat,radial-gradient(circle,rgba(255,238,218,.95) 0 3px,transparent 4px) 76% 22% / 10px 10px no-repeat,radial-gradient(circle,rgba(255,238,218,.95) 0 3px,transparent 4px) 82% 66% / 10px 10px no-repeat,radial-gradient(circle,rgba(255,238,218,.95) 0 3px,transparent 4px) 26% 78% / 10px 10px no-repeat,radial-gradient(circle,rgba(255,238,218,.95) 0 2px,transparent 3px) 45% 10% / 8px 8px no-repeat,radial-gradient(circle,rgba(255,238,218,.95) 0 2px,transparent 3px) 10% 56% / 8px 8px no-repeat,radial-gradient(circle,rgba(255,238,218,.95) 0 2px,transparent 3px) 54% 92% / 8px 8px no-repeat,radial-gradient(circle,rgba(255,238,218,.95) 0 2px,transparent 3px) 92% 46% / 8px 8px no-repeat;filter:drop-shadow(0 10px 14px rgba(31,42,54,.14));transform:scale(.7)}.recipe-action-icon--favorite:after{content:"";position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;border-radius:999px;background:radial-gradient(circle at 50% 50%,#6f9f7b42,#6f9f7b24 40%,#6f9f7b00 72%);opacity:0;transform:scale(.85);pointer-events:none}.recipe-action--favorite-btn.is-fav-pulse .recipe-action-icon--favorite:after{animation:favoritePulse .52s ease-out}@keyframes favoritePop{0%{transform:scale(1)}35%{transform:scale(1.22)}65%{transform:scale(.96)}to{transform:scale(1)}}@keyframes plannerFlyIn{0%{opacity:0;transform:translate(-50%,calc(-50% + 18px)) scale(1.18) rotate(-10deg)}14%{opacity:1}72%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--planner-flyer-dx, 0px)),calc(-50% + var(--planner-flyer-dy, 0px))) scale(.76) rotate(0)}}@keyframes plannerFlyGlow{0%{opacity:0;transform:scale(.65)}26%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.32)}}@keyframes plannerIconPop{0%{transform:scale(1)}32%{transform:scale(1.18)}60%{transform:scale(.94)}to{transform:scale(1)}}@keyframes plannerImpactGlow{0%{opacity:0;transform:scale(.72)}28%{opacity:1;transform:scale(1.04)}to{opacity:0;transform:scale(1.28)}}@keyframes plannerIconPopReduced{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes plannerImpactGlowReduced{0%{opacity:0;transform:scale(.88)}45%{opacity:.85;transform:scale(1)}to{opacity:0;transform:scale(1.12)}}@keyframes favoritePulse{0%{opacity:0;transform:scale(.82)}35%{opacity:1;transform:scale(1.04)}to{opacity:0;transform:scale(1.24)}}@keyframes favoriteWiggle{0%{transform:rotate(0) scale(1)}25%{transform:rotate(-10deg) scale(1.06)}55%{transform:rotate(8deg) scale(1.06)}to{transform:rotate(0) scale(1)}}@keyframes favoriteSparkles{0%{opacity:0;transform:scale(.6)}30%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.35)}}.recipe-action--favorite-btn.is-fav-pulse .recipe-action-icon--favorite:before{animation:favoriteSparkles .62s ease-out}@media (prefers-reduced-motion: reduce){.planner-flyer,.planner-flyer:after,.recipe-action--favorite-btn.is-fav-anim .recipe-action-icon--favorite,.recipe-action--favorite-btn.is-fav-pulse .recipe-action-icon--favorite svg,.recipe-action--favorite-btn.is-fav-pulse .recipe-action-icon--favorite:before,.recipe-action--favorite-btn.is-fav-pulse .recipe-action-icon--favorite:after{animation:none!important}.recipe-action--planner-btn.is-planner-pulse .recipe-action-icon--planner{animation:plannerIconPopReduced .2s ease-out}.recipe-action--planner-btn.is-planner-pulse .recipe-action-icon--planner:after{animation:plannerImpactGlowReduced .2s ease-out}}.recipe-title{margin:0;font-size:26px;color:#1e293b;font-family:var(--font-display);letter-spacing:-.02em}.recipe-detail-page .recipe-title{font-size:30px;font-weight:600}.title-top-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:30px!important}.title-top-row .recipe-title{flex:1 1 auto}.recipe-type-pill{align-self:center;background:#f2b48766;color:#1f2937;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;border:1px solid rgba(242,180,135,.6)}.meta-row{display:flex;align-items:center;gap:6px;width:100%;justify-content:flex-end}.servings-meta{display:none}.multiplier-inline{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:16px;background:#ffffffe6;border:1px solid var(--color-border-light);box-shadow:0 10px 22px #1f2a361f;font-size:.85rem;font-weight:600;color:var(--color-text-muted)}.multiplier-control{display:inline-flex;gap:6px;padding:4px;border:1px solid var(--color-border-light);border-radius:999px;background:#ffffffe6;align-self:flex-end}.multiplier-btn{border:1px solid transparent;background:transparent;padding:6px 10px;border-radius:999px;font-weight:700;cursor:pointer;color:#1e293b}.multiplier-btn.is-active{background:#a4c1a266;border-color:#a4c1a2b3}.add-to-planner-btn{background:var(--color-primary);color:#0f172a;border:none;border-radius:999px;padding:8px 18px;box-shadow:0 12px 20px #6f9f7b4d;font-weight:700}.multiplier-add-btn{padding:8px 12px;height:36px}.save-notice{margin-top:8px;display:inline-block;background:#d9f2e0;color:#1e293b;padding:6px 10px;border-radius:10px;font-weight:600;box-shadow:0 6px 14px #00000014}.save-notice.is-error{background:#f871712e;color:#7f1d1d}.dot{opacity:.6}.timing-block{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:0;border-radius:0;background:transparent;border:none}.timing-info{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.recipe-times{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.recipe-times div{background:transparent;border:none;border-radius:0;padding:0;font-size:12px;font-weight:600;color:var(--color-text-muted)}.recipe-detail-page .last-cooked{font-size:.75rem;color:var(--color-text-muted)}.tag-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.recipe-detail-content>.tag-row{margin:10px 10px 0;padding:12px 16px 14px;background:#fff;border:1px solid rgba(225,217,204,.8);border-radius:18px;box-shadow:0 12px 24px #1f2a361a}.recipe-detail-content>.tag-row .tag-chip{background:#fff;border:1px solid rgba(225,217,204,.8);color:#1f2937;border-radius:999px;padding:6px 12px;font-weight:700;box-shadow:none}.recipe-detail-content>.tag-row .btn.outline{border-radius:999px;padding:6px 14px;border-color:var(--color-border-light)}.recipe-cover-image{border-radius:0 0 24px 24px;overflow:hidden;border:none;width:100%;background:var(--color-bg-elevated);position:relative;height:100%;aspect-ratio:4 / 3}.recipe-cover-image img{position:relative;z-index:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .4s ease}.recipe-cover-image:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0f172a00 40%,#0f172a40);pointer-events:none;z-index:1}.recipe-cover-img.is-loaded{opacity:1}.recipe-cover-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 90% at 20% 10%,rgba(193,221,197,.52),transparent 62%),radial-gradient(100% 80% at 78% 82%,rgba(212,203,182,.45),transparent 58%),linear-gradient(145deg,#e3ecddf0,#ccd6ced6);z-index:0}.recipe-cover-status{position:absolute;bottom:10px;left:50%;transform:translate(-50%);font-size:.75rem;color:var(--color-text-muted);background:#fffc;padding:2px 10px;border-radius:999px;z-index:2}.recipe-cover-generating{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:20px}.recipe-cover-generating-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 95% at 18% 8%,rgba(223,244,227,.55),transparent 62%),radial-gradient(95% 85% at 82% 86%,rgba(240,225,202,.48),transparent 58%),linear-gradient(145deg,#c9d8cad1,#b9c9beb8);overflow:hidden}.recipe-cover-generating-bg:before,.recipe-cover-generating-bg:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.recipe-cover-generating-bg:before{width:190px;height:190px;left:-38px;top:-52px;background:radial-gradient(circle,rgba(255,255,255,.54),transparent 68%);animation:coverParticleDriftOne 8s ease-in-out infinite}.recipe-cover-generating-bg:after{width:170px;height:170px;right:-26px;bottom:-42px;background:radial-gradient(circle,rgba(243,254,245,.5),transparent 70%);animation:coverParticleDriftTwo 7s ease-in-out infinite}.recipe-cover-generating:after{content:"";position:absolute;top:-25%;right:-45%;bottom:-25%;left:-45%;background:linear-gradient(115deg,#fff0 18%,#ffffff42 45%,#fff0 74%);transform:translate(-60%);animation:coverShimmerSweep 2.8s ease-in-out infinite;pointer-events:none}.recipe-cover-generating-panel{position:relative;z-index:1;width:min(92%,360px);padding:18px 18px 16px;border-radius:20px;border:1px solid rgba(255,255,255,.5);background:#f9fcf68f;backdrop-filter:blur(12px) saturate(130%);-webkit-backdrop-filter:blur(12px) saturate(130%);box-shadow:0 20px 40px #1f2a3633,inset 0 1px #ffffff94;text-align:center;animation:coverPanelPulse 2.6s ease-in-out infinite}.recipe-cover-generating-spinner{width:48px;height:48px;border-radius:50%;margin:0 auto 12px;border:3px solid rgba(46,70,55,.2);border-top-color:#2e4637f2;border-right-color:#2e46379e;animation:coverSpin .95s linear infinite}.recipe-cover-generating-title{font-family:var(--font-display);font-size:1.06rem;line-height:1.2;letter-spacing:-.01em;color:#1f2f24}.recipe-cover-generating-subtitle{margin-top:6px;font-size:.83rem;line-height:1.4;color:#1f2f24c7}.recipe-cover-generating-steps{margin-top:12px;display:inline-flex;align-items:center;gap:7px;font-size:.7rem;text-transform:uppercase;letter-spacing:.11em;color:#1f2f249e;font-weight:700}.recipe-cover-generating-steps .dot{font-size:.65rem;color:#1f2f2473}@keyframes coverSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes coverPanelPulse{0%,to{box-shadow:0 20px 40px #1f2a3633,inset 0 1px #ffffff94}50%{box-shadow:0 24px 46px #1f2a363d,inset 0 1px #ffffffa3}}@keyframes coverShimmerSweep{0%{transform:translate(-64%)}to{transform:translate(54%)}}@keyframes coverParticleDriftOne{0%,to{transform:translate(0)}50%{transform:translate(14px,12px)}}@keyframes coverParticleDriftTwo{0%,to{transform:translate(0)}50%{transform:translate(-10px,-14px)}}.recipe-cover-container{position:absolute;top:0;left:0;right:0;height:var(--cover-height);z-index:1;pointer-events:none}.recipe-cover-stage{position:relative;width:calc(100% + 16px);max-width:none;margin:0 -8px 8px;--cover-height: 336px}@media (max-width: 480px){.timing-block{grid-template-columns:1fr}.servings-meta{align-items:flex-start;text-align:left}}.recipe-cover-spacer{height:var(--cover-height);min-height:var(--cover-height)}.recipe-content{position:relative;z-index:2;display:flex;flex-direction:column;gap:8px;margin:8px 10px}.recipe-detail-page .tag-row{position:relative;z-index:2}.recipe-detail-page .title-block{position:relative;z-index:1}.recipe-cover-actions{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:16px;background:#ffffffe6;border:1px solid var(--color-border-light);box-shadow:0 12px 24px #1f2a361f;margin:4px 10px 2px}.recipe-image-failed{font-size:.75rem;color:var(--color-text-muted)}@media (min-width: 768px){.recipe-cover-spacer{height:var(--cover-height)}.recipe-cover-stage{--cover-height: 360px}}.tag-chip{background:#a45c09b3;color:#1f2937;border-radius:999px;padding:6px 12px;font-weight:700;box-shadow:none;border:0px solid var(--color-border-light)}.card{background:#fff;border-radius:22px;border:1px solid rgba(225,217,204,.8);box-shadow:0 12px 26px #1f2a361a;padding:16px}.detail-card{display:flex;flex-direction:column;gap:10px}.section-title{font-weight:700;color:#1e293b;font-family:var(--font-display);letter-spacing:-.01em}.recipe-notes{white-space:pre-wrap;color:#1e293b;line-height:1.6}.list{margin:0;padding-left:18px;color:#1e293b;display:grid;gap:8px}.steps-list li{line-height:1.5}.ingredients-list li{line-height:1.4}.nutrition-row{display:flex;gap:8px;flex-wrap:wrap}.nutrition-pill{background:#ffeedabf;color:#1f2937;border-radius:999px;padding:6px 12px;font-weight:700;border:1px solid var(--color-border-light)}.nutrition-card{background:linear-gradient(180deg,#fffffff5,#ffffffe0);border-color:var(--color-border-light);color:#1e293b}.nutrition-header{display:flex;flex-direction:column;gap:6px}.nutrition-header-row{display:flex;flex-direction:column;gap:10px}.nutrition-body{display:grid;grid-template-rows:0fr;opacity:0;transform:translateY(-8px);transition:grid-template-rows .34s cubic-bezier(.22,1,.36,1),opacity .22s ease,transform .34s cubic-bezier(.22,1,.36,1)}.nutrition-body.is-expanded{grid-template-rows:1fr;opacity:1;transform:translateY(0)}.nutrition-body-inner{overflow:hidden;display:flex;flex-direction:column;gap:10px}.nutrition-title{font-weight:700;font-size:18px;color:#1e293b}.nutrition-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:none;background:transparent;padding:0;text-align:left;cursor:pointer}.nutrition-toggle-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border-light);background:#ffffffe6;color:#1e293b;border-radius:999px;width:36px;height:36px;flex:0 0 36px}.nutrition-title-row:focus-visible{outline:2px solid rgba(111,159,123,.45);outline-offset:4px;border-radius:14px}.nutrition-action-btn{border:1px solid var(--color-primary);background:var(--color-primary);color:#0f172a;border-radius:14px;padding:9px 12px;font-weight:700;cursor:pointer;width:100%;min-width:200px;flex:0 0 auto;text-align:center;box-shadow:0 12px 20px #6f9f7b4d}.nutrition-action-btn:disabled{opacity:.65;cursor:not-allowed}.nutrition-serving-stepper{display:inline-flex;align-items:center;gap:6px;background:#ffffffe6;border:1px solid var(--color-border-light);border-radius:999px;padding:2px 4px;margin-left:auto}.nutrition-step-btn{border:none;background:transparent;color:#0f172a;border-radius:8px;width:28px;height:28px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.nutrition-step-btn:disabled{opacity:.5;cursor:not-allowed}.nutrition-serving-label{font-weight:700;color:#1e293b}.nutrition-serving-control{display:flex;align-items:center;gap:8px;border:1px solid var(--color-border-light);background:#ffffffe6;border-radius:14px;padding:5px 9px;width:100%;min-width:200px}html.dark .nutrition-serving-control{background:#10192de6;border-color:var(--border-dark-strong)}.nutrition-serving-input{width:52px;border:1px solid var(--color-border-light);border-radius:10px;padding:5px 8px;font-weight:700;color:#1e293b;background:#fff;text-align:center}.nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.nutrition-cell{border:1px solid var(--color-border-light);border-radius:14px;padding:8px 10px;background:#ffffffe6}.nutrition-label{font-size:12px;color:#1e293b;opacity:.75}.nutrition-value{font-weight:800;color:#1e293b;margin-top:3px}.nutrition-disclaimer{font-size:12px;color:#1e293b;opacity:.75;margin-top:2px}.nutrition-serving-note{font-size:12px;color:#1e293b;opacity:.75;margin-top:0}.nutrition-error{margin-top:6px;color:#b91c1c;font-size:13px;font-weight:600}.button-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.delete-recipe-section{margin-top:5px;display:flex;justify-content:center}.delete-recipe-btn{width:100%;max-width:420px;padding:14px 18px;font-size:15px;border-radius:999px;border:1px solid #fca5a5;background:#fee2e2;color:#991b1b;font-weight:700;box-shadow:0 16px 30px #b91c1c2e}.delete-recipe-btn:hover{filter:brightness(.98)}.btn{border:none;border-radius:999px;padding:12px 18px;font-weight:700;cursor:pointer;box-shadow:0 12px 24px #1f2a3624}.btn.outline{background:#ffffffe6;border:1px solid var(--color-border-light);color:#1e293b}.ask-ai-btn{display:inline-flex;align-items:center;gap:8px}.ask-ai-icon{display:block}.ask-ai-icon--header{width:40px;height:40px}.ask-ai-icon--button{width:22px;height:22px}.ask-ai-btn .ask-ai-icon{display:block}.empty-state{margin-top:20px;color:#475569}.fade-in{animation:fadeIn .25s ease}.tag-editor{display:flex;flex-direction:column;gap:10px}.tag-editor-card{overflow:hidden;transition:height .5s ease;will-change:height;border-radius:15px}.tag-editor-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.tag-editor-block{display:flex;flex-direction:column;gap:6px}.tag-editor-label-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between}.tag-editor-label{font-weight:700;color:#1e293b}.tag-editor-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tag-search-input{min-width:160px;padding:8px 12px;border:1px solid #e2e8f0;border-radius:12px;font-size:14px}.tag-collapse-btn{border:1px solid #e2e8f0;background:#f5f1e8;border-radius:12px;padding:8px 12px;cursor:pointer;font-weight:600;display:inline-flex;align-items:center;gap:6px}.tag-collapse-btn svg{width:16px;height:16px}.tag-editor-chips{display:flex;flex-wrap:wrap;gap:8px}.tag-editor-chips-wrapper{overflow:hidden;transition:height .3s ease}.tag-chip-count{background:#fff;color:#475569;border-radius:999px;padding:2px 8px;font-size:12px;border:1px solid #e2e8f0}.tag-editor-hint{color:#64748b;font-size:12px;margin-top:2px}.tag-editor-add{display:flex;gap:8px}.tag-suggest{position:relative;flex:1}.tag-suggest-list{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 12px 24px #0000001f;display:flex;flex-direction:column;gap:4px;padding:6px;z-index:10}.tag-suggest-item{border:none;background:transparent;padding:8px 10px;border-radius:10px;text-align:left;cursor:pointer;color:#1e293b;font-weight:600;transition:background-color .1s ease,color .1s ease}.tag-suggest-item:hover,.tag-suggest-item.is-active{background:var(--color-primary);color:#0f172a}.tag-suggest-item.is-create{font-weight:700}.tag-editor-actions{display:flex;gap:8px;flex-wrap:wrap}html.dark .recipe-detail-page{background:var(--bg-dark-page);color:var(--text-dark-primary)}html.dark .recipe-detail-overlay{--recipe-detail-overlay-rgb: 2, 6, 23;--recipe-detail-overlay-alpha: .38}html.dark .detail-header{background:transparent;border:none;box-shadow:none}html.dark .recipe-detail-page .icon-btn{background:#10192de6;border-color:var(--border-dark-strong);color:var(--text-dark-primary);box-shadow:0 12px 22px #00000080}html.dark .detail-header .back-icon{background:#0f172a7a;border-color:#ffffff1f;color:#f8fafc;box-shadow:0 12px 22px #0206174d,inset 0 1px #ffffff14}html.dark .detail-action-dropdown{background:var(--glass-chrome-bg-strong);border-color:var(--glass-chrome-border);box-shadow:var(--glass-chrome-shadow),var(--glass-chrome-highlight)}html.dark .detail-action-item{background:#ffffff0d;color:#e2e8f0}html.dark .detail-action-item:hover{background:#ffffff17}html.dark .detail-action-item--danger{background:#ef44442e;color:#fca5a5}html.dark .detail-action-item--danger:hover{background:#ef444447}html.dark .detail-action-popover{background:#ffffff0d;border-color:#ffffff17;box-shadow:none}html.dark .detail-action-popover-title{color:#fff}html.dark .detail-action-chip{background:#ffffff0f;border-color:#ffffff24;color:#fff;box-shadow:none}html.dark .detail-action-chip.is-active{color:#fff;box-shadow:none}html.dark .detail-action-popover-ok{box-shadow:none}html.dark .recipe-detail-page .icon-btn--back{background:transparent;border:none;box-shadow:none}html.dark .detail-actions .fav-btn{background:#10192de6;border-color:var(--border-dark-strong);color:#fca5a5}html.dark .title-block{box-shadow:none}html.dark .recipe-action-row{background:transparent;border:none;box-shadow:none}html.dark .recipe-action-icon{background:transparent;border:none;color:#9fc4a0}html.dark .recipe-action-label{color:var(--text-dark-secondary)}html.dark .recipe-action--active .recipe-action-icon{color:#9fc4a0}html.dark .planner-flyer{color:#9fc4a0;background:#131e2eeb;border-color:#9fc4a047;box-shadow:0 14px 24px #0000006b}html.dark .recipe-action-icon--planner:after{background:radial-gradient(circle,#9fc4a04d,#9fc4a029 46%,#9fc4a000 76%)}html.dark .emoji{background:transparent;border:none;color:var(--text-dark-primary)}html.dark .recipe-type-pill{background:#2ec77d33;border-color:#2ec77d59;color:var(--text-dark-primary)}html.dark .timing-block{background:transparent;border:none}html.dark .recipe-times div{background:transparent;border:none;color:var(--text-dark-secondary)}html.dark .recipe-detail-content>.tag-row{background:#10192df2;border-color:var(--border-dark-strong);box-shadow:0 18px 36px #0000008c;border-radius:18px;padding:12px 16px 14px;margin:12px 18px 0}html.dark .recipe-detail-content>.tag-row .tag-chip{background:#10192de6;border-color:var(--border-dark-strong);color:var(--text-dark-primary)}html.dark .recipe-detail-content>.tag-row .btn.outline{background:#10192de6;border-color:var(--border-dark-strong);color:var(--text-dark-primary)}html.dark .recipe-cover-image{box-shadow:0 26px 50px #0009}html.dark .recipe-cover-actions{background:#10192de6;border-color:var(--border-dark-strong);box-shadow:0 18px 36px #0000008c}html.dark .recipe-cover-status{background:#10192de6;color:var(--text-dark-secondary)}html.dark .recipe-cover-placeholder{background:radial-gradient(120% 90% at 20% 10%,rgba(42,59,47,.68),transparent 62%),radial-gradient(100% 80% at 78% 82%,rgba(56,58,68,.58),transparent 58%),linear-gradient(145deg,#19212ff2,#141b27e6)}html.dark .recipe-cover-generating-bg{background:radial-gradient(120% 95% at 18% 8%,rgba(40,56,46,.5),transparent 62%),radial-gradient(95% 85% at 82% 86%,rgba(52,56,71,.52),transparent 58%),linear-gradient(145deg,#121c28db,#161e2cbf)}html.dark .recipe-cover-generating:after{background:linear-gradient(115deg,#fff0 18%,#a0bbae29 45%,#fff0 74%)}html.dark .recipe-cover-generating-panel{background:#0d172394;border-color:#abbbd13d;box-shadow:0 24px 46px #00000080,inset 0 1px #cadaff1a}html.dark .recipe-cover-generating-spinner{border-color:#c2d4c538;border-top-color:#d5ebdbf2;border-right-color:#d5ebdb99}html.dark .recipe-cover-generating-title{color:#ebf4f1f2}html.dark .recipe-cover-generating-subtitle{color:#cbdae0e0}html.dark .recipe-cover-generating-steps{color:#b4c9ceb8}html.dark .recipe-cover-generating-steps .dot{color:#b4c9ce80}@media (prefers-reduced-motion: reduce){.recipe-detail-overlay{transition-duration:.2s}.recipe-detail-page--overlay{transition-duration:.2s;transition-timing-function:ease-out}.recipe-detail-page--overlay.slide-out{transition-duration:.2s}.recipe-cover-generating-panel,.recipe-cover-generating-spinner,.recipe-cover-generating:after,.recipe-cover-generating-bg:before,.recipe-cover-generating-bg:after{animation:none}}html.dark .tag-suggest-list{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);box-shadow:var(--shadow-dark-elevated)}html.dark .tag-suggest-item{color:var(--text-dark-primary)}html.dark .tag-suggest-item:hover,html.dark .tag-suggest-item.is-active{background:var(--border-dark-strong);color:var(--text-dark-primary)}html.dark .recipe-detail-page .icon-btn,html.dark .recipe-detail-page .fav-btn{color:var(--text-dark-secondary)}html.dark .duplicate-btn{border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .recipe-title,html.dark .section-title,html.dark .title-text{color:var(--text-dark-primary)}html.dark .meta-row,html.dark .dot,html.dark .list,html.dark .ingredients-list li,html.dark .steps-list li,html.dark .empty-state{color:var(--text-dark-secondary)}html.dark .multiplier-control{background:#10192de6;border-color:var(--border-dark-strong)}html.dark .multiplier-inline{background:#10192de6;border-color:var(--border-dark-strong);color:var(--text-dark-secondary);box-shadow:0 12px 24px #00000073}html.dark .multiplier-btn{color:var(--text-dark-primary)}html.dark .multiplier-btn.is-active{background:#2ec77d33;border-color:#2ec77d59}html.dark .multiplier-add-btn{color:var(--text-dark-primary);border-color:var(--border-dark-subtle)}html.dark .add-to-planner-btn{background:#6f9f7b;color:#0b1221}html.dark .save-notice{background:var(--bg-dark-surface);color:var(--text-dark-primary);border:1px solid var(--border-dark-subtle)}html.dark .save-notice.is-error{background:#f8717129;color:#fecaca;border-color:#f8717159}html.dark .delete-recipe-btn{background:#f871712e;color:#fecaca;border-color:#f8717159;box-shadow:0 12px 24px #07030a59}html.dark .card{background:linear-gradient(180deg,#10192df2,#10192dd9);border-color:var(--border-dark-strong);box-shadow:0 18px 36px #00000080}html.dark .tag-chip{background:#10192de6;color:var(--text-dark-primary);box-shadow:none;border:1px solid var(--border-dark-strong)}html.dark .nutrition-pill{background:#10192de6;color:var(--text-dark-primary);border-color:var(--border-dark-strong)}html.dark .nutrition-card{background:linear-gradient(180deg,#0f172af2,#0b1221e6);border-color:var(--border-dark-strong);color:#e2e8f0}html.dark .nutrition-title,html.dark .nutrition-header{color:#e2e8f0}html.dark .nutrition-toggle-btn{background:#10192de6;color:#e2e8f0;border-color:var(--border-dark-strong)}html.dark .nutrition-action-btn{background:#a4c1a2;color:#0f172a;border-color:#a4c1a2}html.dark .nutrition-serving-label{color:#e2e8f0}html.dark .nutrition-serving-stepper{background:#10192de6;border-color:var(--border-dark-strong)}html.dark .nutrition-step-btn{background:transparent;color:#e2e8f0;border-color:transparent}html.dark .nutrition-serving-input{background:#10192de6;color:#e2e8f0;border-color:var(--border-dark-strong)}html.dark .nutrition-cell{background:#10192de6;border-color:var(--border-dark-strong)}html.dark .nutrition-label,html.dark .nutrition-value,html.dark .nutrition-disclaimer,html.dark .nutrition-serving-note{color:#e2e8f0}html.dark .nutrition-label,html.dark .nutrition-disclaimer,html.dark .nutrition-serving-note{opacity:.8}html.dark .nutrition-error{color:#fca5a5}html.dark .btn.outline{border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}.editor-page{--keyboard-scroll-base-padding: 16px;--keyboard-scroll-extra-offset: 28px;background:var(--color-bg);padding:calc(env(safe-area-inset-top,0px) + 16px) 16px 16px;display:flex;flex-direction:column;gap:14px;position:fixed;top:0;right:0;bottom:0;left:0;min-height:0;height:100dvh;max-height:100dvh;overflow-y:auto;box-sizing:border-box}.native-ios-shell.keyboard-open .editor-page.keyboard-scroll-container{overscroll-behavior-y:contain}html.duration-picker-open .editor-page{overflow:hidden}.editor-header{align-items:flex-end}@supports (padding-top: max(0px)){.editor-page{padding-top:max(16px,calc(env(safe-area-inset-top,0px) + 10px))}}.editor-title{color:#1e293b}.editor-card{background:#fff;border-radius:22px;border:1px solid #e2e8f0;box-shadow:none;padding:18px;display:flex;flex-direction:column;gap:18px;position:relative}.section-title{font-weight:700;color:#1e293b;margin:4px 0 6px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.section-header .section-title{margin-bottom:0}.section-action-btn{border:1px solid #d8dfeb;background:#fff;color:#3e4c4d;border-radius:999px;padding:8px 14px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;line-height:1;cursor:pointer}.inline-add-action{align-self:flex-end;border:none;background:transparent;color:#3e4c4d;padding:2px 0 0;min-height:0;font-size:15px;font-weight:700;line-height:1.2;cursor:pointer}.section-action-btn:hover,.inline-add-action:hover{color:#243246}.section-action-btn:disabled,.inline-add-action:disabled{opacity:.6;cursor:not-allowed}.quick-recipe-toggle{position:absolute;top:14px;right:14px;display:flex;flex-direction:column;align-items:center;gap:4px}.quick-recipe-toggle-btn{width:32px;height:32px;border-radius:999px;border:1px solid #e2e8f0;background:#f8fafc;color:#334155;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .2s ease}.quick-recipe-toggle-btn.is-active{background:linear-gradient(180deg,#ffebaf,#f5d667fa);border-color:#eab30894;color:#1f2937}.quick-recipe-toggle-btn:disabled{cursor:not-allowed;opacity:.6}.quick-recipe-toggle-icon{width:18px;height:18px}.quick-recipe-toggle-label{font-size:10px;font-weight:600;color:#3e4c4d;text-transform:uppercase;letter-spacing:.04em}.recipe-type-row{display:flex;flex-wrap:wrap;gap:10px}.recipe-type-pill{border:1px solid #e2e8f0;background:#fff;color:#1e293b;border-radius:999px;padding:8px 14px;font-weight:700;cursor:pointer}.recipe-type-pill--active{background:#fde68a;border-color:#f59e0b;color:#1f2937}.recipe-type-pill:disabled{opacity:.65;cursor:not-allowed}.recipe-type-note{font-size:12px;color:#64748b}.cover-image-section{display:flex;flex-direction:column;gap:12px}.cover-image-row{display:grid;grid-template-columns:minmax(140px,46%) minmax(160px,1fr);gap:16px;align-items:center}.cover-image-box{display:flex;align-items:center;justify-content:center}.cover-image-preview{width:100%;max-width:220px;height:150px;object-fit:cover;border-radius:16px;border:1px solid #e2e8f0;display:block}.cover-image-placeholder{width:100%;max-width:220px;height:150px;border-radius:16px;border:1px dashed #cbd5f5;background:#e2e8f0;color:#64748b;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:700;text-align:center;padding:12px;cursor:pointer}.cover-image-placeholder svg{width:24px;height:24px}.cover-image-placeholder:disabled{opacity:.6;cursor:not-allowed}.cover-image-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.cover-action-btn{min-width:175px;justify-content:flex-start;padding:12px 16px;font-family:var(--font-display);font-weight:500;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:8px;border:1px solid #e2e8f0!important;background:#c3ceb4!important;color:#3e4c4d!important}.cover-action-icon{width:18px;height:18px}@media (max-width: 520px){.cover-image-row{grid-template-columns:minmax(140px,46%) minmax(160px,1fr)}}.cover-image-seed{display:flex;flex-direction:column;gap:8px;border:1px dashed #e2e8f0;border-radius:14px;padding:10px 12px;background:#f8fafc}.cover-image-seed-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#1e293b}.cover-image-seed-input{width:100%}.seed-error{background:#f8717126;border:1px solid rgba(248,113,113,.35);color:#7f1d1d;padding:8px 10px;border-radius:12px;font-size:12px;font-weight:700}.emoji-display{font-size:36px;background:#f5f1e8;border-radius:16px;padding:12px 14px;width:fit-content}.emoji-toggle{display:inline-flex;align-items:center;gap:10px;border:1px solid #e2e8f0;background:#fff;border-radius:16px;padding:10px 12px;cursor:pointer}.emoji-toggle-text{font-weight:700;color:#1e293b}.emoji-panel{margin-top:8px;background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:10px;max-height:260px;overflow:hidden}.emoji-search-row{margin:8px 0}.emoji-search-input{width:100%;border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;font-size:14px}.suggest-emoji-btn{padding:6px 10px;background:var(--color-primary);border:none;border-radius:8px;color:#1e293b;font-weight:500;margin-left:8px;cursor:pointer}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:8px;max-height:190px;overflow-y:auto}.emoji-option{border:1px solid #e2e8f0;border-radius:14px;background:#fff;padding:10px;font-size:20px;cursor:pointer;transition:border-color .1s ease,transform .1s ease}.emoji-option--active{border-color:var(--color-primary)}.editor-page .input{width:100%;border-radius:16px;border:1px solid #ddd7ca;padding:12px 14px;font-size:14px;outline:none;background:#f9f6ef}.editor-page .input:focus{border-color:#cabfae;background:#fff}.editor-page .select{background:#f9f6ef}.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.time-row{gap:16px;margin-top:2px}.time-field label{display:block;margin-bottom:6px}.duration-input{cursor:pointer}.duration-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;display:flex;align-items:flex-end;justify-content:center;z-index:400;padding:12px;overscroll-behavior:contain;animation:durationPickerFadeIn .18s ease}.duration-picker-modal{width:min(520px,100%);background:var(--color-bg-elevated);border:1px solid var(--color-border-light);border-radius:18px;box-shadow:0 -18px 40px #0f172a2e;padding:14px;animation:durationPickerSlideUp .22s cubic-bezier(.3,.75,.4,1)}.duration-picker-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.duration-picker-title{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em}.duration-picker-actions{display:inline-flex;gap:10px}.duration-picker-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.duration-picker-field{display:flex;flex-direction:column;gap:6px}.duration-picker-label{font-size:.75rem;color:var(--color-text-muted);font-weight:600}.duration-picker-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:none}@keyframes durationPickerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes durationPickerSlideUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.duration-picker-overlay,.duration-picker-modal{animation:none}}.time-inputs{display:flex;align-items:center;gap:8px}.time-inputs .input{flex:1;min-width:0}.time-sep{font-size:.9rem;color:var(--color-text-muted);-webkit-user-select:none;user-select:none}.total-time{margin-top:8px}.servings-field{display:flex;flex-direction:column;gap:6px;max-width:240px;margin-top:4px}.field-label{font-weight:600;color:#1e293b;font-family:var(--font-display)}.tags-row{display:flex;flex-wrap:wrap;gap:8px}.tags-row+.btn.ghost{margin-top:6px}.chips{margin-bottom:6px}.tag-chip{display:inline-flex;align-items:center;gap:6px;background:#c3ceb4;border-color:none;color:#2f4a3f;border-radius:999px;padding:6px 10px;font-weight:700}.tag-chip--active{background:#ffeddc}.tag-remove{border:none;background:transparent;cursor:pointer;font-weight:700;color:#1f2937}.tag-input-form{flex:1;min-width:140px;display:flex;gap:8px}.tag-input{padding:10px 12px;flex:1}.suggested-tags{display:flex;flex-direction:column;gap:6px}.tag-suggestions-row{display:flex;flex-wrap:wrap;gap:8px}.tag-chip--suggested{background:#f5f1e8;border:1px dashed #c084fc;box-shadow:none}.clean-button{margin-bottom:8px;background:#fff;border:1px solid #e2e8f0;color:#243246;padding:0 16px;border-radius:999px;height:40px;font-size:14px;font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.clean-button.is-done{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.action-row .clean-button{margin-bottom:0}.dynamic-list{display:flex;flex-direction:column;gap:8px;position:relative}.dynamic-list>.btn.ghost{margin-top:4px}.dynamic-list.is-dragging .dynamic-row,.dynamic-row-placeholder{transition:transform .18s ease,opacity .18s ease,height .18s ease,margin .18s ease,border-color .18s ease,background-color .18s ease}.dynamic-row{display:flex;gap:8px;align-items:center;padding:2px;border-radius:12px;transition:background-color .1s ease,border-color .1s ease}.dynamic-row-placeholder{height:var(--drag-row-height, 56px);min-height:var(--drag-row-height, 56px);border-radius:16px;border:1.5px dashed rgba(121,165,117,.72);background:#a4c1a224;box-shadow:inset 0 0 0 1px #79a5751f}.dynamic-row-placeholder--step{min-height:max(var(--drag-row-height, 78px),78px)}.nutrition-btn{border:1px solid #e2e8f0;background:#f5f1e8;border-radius:10px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;cursor:pointer;transition:transform .1s ease,border-color .1s ease,background-color .1s ease}.nutrition-btn--active{background:var(--color-primary);border-color:var(--color-primary);color:#0f172a}.nutrition-apply-row{display:flex;flex-direction:column;gap:6px;margin-top:6px}.nutrition-apply-note{color:var(--color-text-muted);font-size:13px}.drag-handle{border:1px solid #e2e8f0;background:#fff;border-radius:10px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:grab;font-size:16px;touch-action:none}.drag-handle svg{width:18px;height:18px}.drag-handle:active{cursor:grabbing}.textarea{min-height:70px;resize:vertical}.btn{border:none;border-radius:999px;padding:12px 16px;font-weight:700;cursor:pointer}.btn.primary{background:var(--color-primary);color:#0f172a}.tag-add-btn{background:#f5f1e8;color:#1e293b;border:1px solid #e2e8f0;box-shadow:none;border-radius:14px}.btn.ghost{background:transparent;border:1px solid #e2e8f0;color:#3e4c4d}.text-btn{border:none;background:transparent;color:#1e293b;font-weight:700;cursor:pointer}.text-btn.save-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid var(--color-border-light)}.icon-btn{border:none;background:transparent;color:#1e293b;cursor:pointer;font-weight:700}.action-row{display:grid;grid-template-columns:repeat(3,max-content);justify-content:space-between;gap:clamp(6px,2vw,10px);align-items:center}.action-row>.btn.ghost{justify-self:start;height:40px;padding:0 16px;border-color:#e2e8f0;background:#fff;color:#243246;font-size:14px;font-weight:700;line-height:1}.action-row .clean-button{justify-self:center}.save-icon-btn{justify-self:end;border:1px solid #e2e8f0;background:#fff;color:#243246;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0 16px;height:40px;min-width:0;font-weight:700;font-size:14px;line-height:1;letter-spacing:normal}.save-icon-btn>span{display:inline-flex;align-items:center;gap:8px}.save-icon-btn svg{width:18px;height:18px}.save-icon-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 420px){.action-row{gap:6px}.clean-button,.save-icon-btn,.action-row>.btn.ghost{padding-left:12px;padding-right:12px}}.editor-page,.editor-page *{box-shadow:none!important}.error-text{color:#dc2626;font-weight:700}.meal-type-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.meal-type-dropdown{position:relative;width:100%;max-width:156px}.meal-type-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:0px;padding:13px 16px;border-radius:16px;border:1px solid #e2e8f0;background:#c3ceb4;color:#1e293b;font-weight:700;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,transform .2s ease}.meal-type-trigger:focus-visible{outline:none;border-color:#79a575e6}.meal-type-caret{width:18px;height:18px;transition:transform .2s ease}.meal-type-trigger.is-open .meal-type-caret{transform:rotate(180deg)}.meal-type-menu{position:absolute;top:calc(100% + 8px);left:0;right:0;padding:8px;border-radius:16px;border:1px solid var(--glass-chrome-border);background:var(--glass-chrome-bg-strong);display:flex;flex-direction:column;gap:6px;z-index:20;animation:mealTypeMenuIn .2s ease;box-shadow:var(--glass-chrome-shadow),var(--glass-chrome-highlight);backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur)}.meal-type-option{border:1px solid rgba(255,255,255,.12);background:#ffffff29;color:#1e293b;border-radius:12px;padding:10px 12px;text-align:left;font-weight:600;cursor:pointer;transition:background-color .15s ease,transform .15s ease}.meal-type-option:hover{background:#ffffff4d;transform:translateY(-1px)}.meal-type-option.is-selected{background:var(--color-primary);border-color:var(--color-primary);color:#0f172a}.meal-pill{border:1px solid #e2e8f0;background:#faf8f3;color:#1e293b;border-radius:999px;padding:8px 12px;font-weight:700;cursor:pointer;transition:transform .1s ease,background-color .1s ease}.meal-pill--active{background:var(--color-primary);border-color:var(--color-primary);color:#0f172a}.nutrition-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;display:flex;justify-content:center;align-items:flex-end;z-index:1200}.nutrition-drawer{background:#fff;width:100%;max-width:520px;border-top-left-radius:18px;border-top-right-radius:18px;padding:18px;animation:nutritionSlideUp .18s ease;position:relative}.nutrition-drawer-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.nutrition-drawer-title{font-weight:700;font-size:16px}.nutrition-drawer-subtitle{margin-top:4px;color:var(--color-text-muted);font-size:13px}.nutrition-drawer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:14px 0}.nutrition-field{display:flex;flex-direction:column;gap:6px}.nutrition-field--wide{grid-column:1 / -1}.nutrition-label{font-weight:700;color:#1e293b;font-size:14px}.nutrition-drawer-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.nutrition-camera-btn{position:absolute;left:16px;bottom:16px;width:40px;height:40px;border-radius:12px;border:1px dashed #d1d5db;background:#fff;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;font-size:18px;opacity:.8}.editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:none;background:#0f172a3d;transition:background-color .4s ease}html.dark .editor-overlay{background:#02061761}.editor-page--overlay{transform:translate3d(0,var(--editor-sheet-offset, 100%),0);transition:transform .63s cubic-bezier(.22,1,.36,1),opacity .4s ease;will-change:transform,opacity;box-shadow:0 -24px 48px #0f172a29}.editor-page--overlay.slide-in{--editor-sheet-offset: 0%}.editor-page--overlay.slide-out{--editor-sheet-offset: 100%;transition-duration:.4s;transition-timing-function:cubic-bezier(.4,0,.7,1)}.editor-page.slide-up{animation:slideUp .7s cubic-bezier(.22,.7,.2,1) both;padding:max(15px,calc(env(safe-area-inset-top,0px) + 10px)) 15px 20px;will-change:transform}.editor-page.fade-in{padding:max(10px,calc(env(safe-area-inset-top,0px) + 6px)) 5px 25px}.editor-page.slide-down{animation:slideDown .7s cubic-bezier(.22,.7,.2,1) both;padding:max(15px,calc(env(safe-area-inset-top,0px) + 10px)) 15px 20px}html.editor-open,body.editor-open,.app-root.editor-open{overflow:hidden}@keyframes slideUp{0%{transform:translateY(100%);opacity:.96}to{transform:translateY(0);opacity:1}}@keyframes slideDown{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:.96}}@keyframes mealTypeMenuIn{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}html.dark .editor-page{background:var(--bg-dark-page);color:var(--text-dark-primary)}html.dark .editor-page.slide-up{background:#0b1221eb}html.dark .editor-title,html.dark .section-title,html.dark .emoji-toggle-text{color:var(--text-dark-primary)}html.dark .cover-image-preview{border-color:var(--border-dark-subtle);box-shadow:none}html.dark .cover-image-seed{border-color:var(--border-dark-subtle);background:var(--bg-dark-surface)}html.dark .cover-image-seed-toggle{color:var(--text-dark-primary)}html.dark .seed-error{color:#fecaca;border-color:#f8717180}html.dark .editor-card{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-subtle);box-shadow:none}html.dark .emoji-display{background:var(--bg-dark-surface);color:var(--text-dark-primary)}html.dark .emoji-toggle,html.dark .emoji-panel,html.dark .emoji-option{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary);box-shadow:none}html.dark .emoji-option:hover{border-color:var(--border-dark-strong)}html.dark .emoji-option--active{border-color:var(--color-primary)}html.dark .emoji-search-input{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .input,html.dark .select,html.dark .textarea{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary);box-shadow:none}html.dark .editor-page .input:focus,html.dark .editor-page .select:focus,html.dark .editor-page .textarea:focus{background:var(--bg-dark-surface);border-color:var(--border-dark-strong);color:var(--text-dark-primary)}html.dark .dynamic-row.drag-over{background:var(--bg-dark-surface);border-color:var(--border-dark-strong)}html.dark .drag-handle{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary);box-shadow:none}.recipe-editor-drag-overlay{position:fixed;z-index:1700;pointer-events:none;background:#fff;color:#1e293b;border:1px solid #e2e8f0;border-radius:16px;padding:2px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;box-shadow:0 18px 36px #0f172a2e;transform:scale(1.01)}.recipe-editor-drag-overlay--step{align-items:stretch}.recipe-editor-drag-overlay-handle{align-self:flex-start}.recipe-editor-drag-overlay-field{min-width:0;min-height:44px;display:flex;align-items:center;padding:12px 14px;border-radius:16px;background:#f9f6ef;border:1px solid #ddd7ca;color:#1e293b;font-size:14px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recipe-editor-drag-overlay-field--textarea{min-height:70px;align-items:flex-start;white-space:pre-wrap}.recipe-editor-drag-overlay-icon{width:34px;height:34px;border:1px solid #e2e8f0;background:#f5f1e8;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:#1e293b}.recipe-editor-drag-overlay-icon--active{background:var(--color-primary);border-color:var(--color-primary);color:#0f172a}html.dark .dynamic-row-placeholder{border-color:#79a575d1;background:#3a5d4647;box-shadow:inset 0 0 0 1px #79a5752e}html.dark .recipe-editor-drag-overlay{background:var(--bg-dark-surface);color:var(--text-dark-primary);border-color:var(--border-dark-subtle);box-shadow:0 18px 40px #0000006b}html.dark .recipe-editor-drag-overlay-field,html.dark .recipe-editor-drag-overlay-icon{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .recipe-editor-drag-overlay-icon--active{background:#23402f;border-color:#3d6d54;color:var(--text-dark-primary)}html.dark .input::placeholder,html.dark .textarea::placeholder{color:var(--text-dark-secondary)}html.dark .tag-chip,html.dark .tag-chip--suggested{background:var(--bg-dark-surface);color:var(--text-dark-primary);border:1px solid var(--border-dark-subtle);box-shadow:none}html.dark .tag-chip--active{background:var(--bg-dark-surface-elevated)}html.dark .field-label{color:var(--text-dark-primary)}html.dark .total-time{color:color-mix(in srgb,var(--text-dark-primary) 82%,var(--text-dark-secondary) 18%)}html.dark .meal-type-trigger,html.dark .meal-type-menu,html.dark .meal-type-option{background:var(--glass-chrome-bg);border-color:var(--glass-chrome-border);color:var(--text-dark-primary)}html.dark .quick-recipe-toggle-btn,html.dark .cover-action-btn,html.dark .save-icon-btn{background:linear-gradient(180deg,#212e44eb,#121d2edb),var(--glass-chrome-bg);border-color:#ffffff24!important;color:var(--text-dark-primary)!important;box-shadow:inset 0 1px #ffffff14,inset 0 -1px #0003!important}html.dark .cover-action-btn,html.dark .save-icon-btn,html.dark .quick-recipe-toggle-btn,html.dark .meal-type-trigger{backdrop-filter:blur(10px) saturate(135%);-webkit-backdrop-filter:blur(10px) saturate(135%)}html.dark .meal-type-trigger{background:linear-gradient(180deg,#1f2c3ff0,#121d2ee6),var(--glass-chrome-bg);border-color:#ffffff24;box-shadow:inset 0 1px #ffffff14,inset 0 -1px #00000038!important}html.dark .meal-type-trigger:focus-visible{border-color:var(--border-dark-strong)}html.dark .meal-type-option:hover{background:#ffffff14}html.dark .meal-type-option.is-selected{background:#23402f;border-color:#3d6d54;color:var(--text-dark-primary)}html.dark .clean-button{border-color:var(--border-dark-subtle);color:var(--text-dark-primary);box-shadow:none}html.dark .text-btn.save-btn,html.dark .save-icon-btn{background:transparent;border-color:var(--text-dark-primary);color:var(--text-dark-primary);box-shadow:none}html.dark .text-btn.save-btn:disabled,html.dark .save-icon-btn:disabled{color:var(--text-dark-secondary);border-color:var(--border-dark-strong)}html.dark .tag-remove{color:var(--text-dark-secondary)}html.dark .nutrition-btn{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary);box-shadow:none}html.dark .nutrition-btn--active{background:var(--color-primary);border-color:var(--color-primary);color:#0f172a}html.dark .nutrition-apply-note{color:var(--text-dark-secondary)}html.dark .nutrition-drawer{background:var(--bg-dark-surface);color:var(--text-dark-primary);border:1px solid var(--border-dark-subtle);box-shadow:none}html.dark .nutrition-camera-btn{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-secondary)}html.dark .nutrition-drawer-subtitle{color:var(--text-dark-secondary)}html.dark .nutrition-drawer-backdrop{background:#0000008c}html.dark .nutrition-label{color:var(--text-dark-primary)}@keyframes nutritionSlideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.planner-page{--planner-stack-gap: 16px;padding:16px;display:flex;flex-direction:column;gap:var(--planner-stack-gap);font-family:var(--font-body)}.planner-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;justify-content:flex-start;padding:6px 8px;border:1px solid rgba(148,163,184,.22);border-bottom-color:transparent;background:linear-gradient(180deg,#ffffffbf,#faf8f3eb);box-shadow:0 14px 30px #1f2a360f;width:100%;max-width:100%;overflow-x:hidden;border-radius:24px 24px 0 0}.planner-header-actions+.planner-card{margin-top:calc(var(--planner-stack-gap) * -1);border-top-left-radius:0;border-top-right-radius:0;border-top-color:transparent}.planner-header-actions .btn{padding:8px 10px;font-size:12px;border-radius:999px}.planner-header-actions .btn.btn-ghost{background:#ffffffc7;border:1px solid rgba(148,163,184,.2);box-shadow:none}.planner-action-btn{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--color-text-main);white-space:nowrap;flex:1;min-width:0;justify-content:center}.planner-action-icon{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#8fbe9a38;color:#2f4f3ae6;flex-shrink:0}.planner-action-icon svg{width:16px;height:16px;display:block}.planner-action-label{line-height:1;font-size:.72rem}@media (max-width: 520px){.planner-header-actions .btn{padding:8px}.planner-action-icon{width:22px;height:22px}.planner-action-label{font-size:.68rem}.planner-action-caret svg{width:12px;height:12px}}.planner-action-caret{margin-left:0;color:#475569a6;display:inline-flex;align-items:center;justify-content:center}.planner-action-caret svg{width:14px;height:14px;display:block}@media (max-width: 520px){.planner-header-actions{width:100%;justify-content:flex-start}}.planner-header-icon{font-size:18px;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;min-height:36px;flex-shrink:0;border-radius:12px;margin-top:0;margin-bottom:15px;color:#a5c1a3}.planner-header-icon svg{width:100%;height:100%;display:block}html.dark .planner-header-icon{background:var(--bg-dark-surface);border-color:var(--border-dark-strong)}html.dark .planner-header-actions .btn.btn-ghost{background:#10192dd9;border-color:#94a3b838}html.dark .planner-header-actions{background:linear-gradient(180deg,#10192deb,#0b1221e0);border-color:#94a3b838;box-shadow:0 10px 24px #00000073}html.dark .planner-action-btn{color:var(--text-dark-primary)}html.dark .planner-action-icon{background:#2ec77d29;color:#e2e8f0e6}html.dark .planner-action-caret{color:#e2e8f0a6}.planner-card{background:var(--color-bg-elevated);border-radius:20px;border:1px solid var(--color-border-light);box-shadow:0 14px 38px #1f2a3614;padding:14px}.planner-card.soft{background:var(--color-bg-elevated);border-color:var(--color-border-light)}.planner-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;display:flex;justify-content:center;align-items:flex-end;z-index:1000}.planner-drawer{background:var(--color-bg-elevated);width:100%;max-width:480px;border-top-left-radius:16px;border-top-right-radius:16px;padding:16px 16px 25px;box-shadow:0 -8px 24px #00000026}.planner-drawer.slide-up{animation:planner-drawer-slide-up .7s cubic-bezier(.22,.7,.2,1);will-change:transform,opacity}.planner-drawer.slide-down{animation:planner-drawer-slide-down .7s cubic-bezier(.22,.7,.2,1);will-change:transform,opacity}.planner-drawer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.planner-drawer-title{font-weight:700;font-size:16px}.planner-drawer-header-text{display:flex;flex-direction:column;gap:2px;min-width:0}.planner-drawer-subtitle{font-size:13px;color:var(--color-text-muted);line-height:1.25}.planner-drawer-body{display:flex;flex-direction:column;gap:12px}.planner-drawer-label{font-size:14px;color:var(--color-text-muted)}.planner-drawer-input{width:100%;padding:10px;border:1px solid var(--color-border-light);border-radius:10px;font-size:14px;background:var(--input-bg)}.planner-drawer--templates .planner-drawer-header{align-items:flex-start;gap:12px}.planner-drawer--templates .planner-drawer-title{font-size:18px;font-weight:900;letter-spacing:-.02em;line-height:1.1}.planner-drawer--templates .planner-drawer-body{gap:14px}.planner-template-card{background:#fff;border:1px solid rgba(225,217,204,.85);border-radius:18px;padding:12px;display:flex;flex-direction:column;gap:10px;box-shadow:0 14px 30px #1f2a360f}.planner-template-card-title{font-size:13px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-main)}.planner-template-helper{margin-top:-6px;font-size:12px;color:var(--color-text-muted)}.planner-drawer--templates .planner-drawer-input.planner-template-input{border-radius:14px;padding:12px;border:1px solid rgba(225,217,204,.85);background:#ffffffbf;box-shadow:0 1px #ffffff8c inset}.planner-drawer--templates .planner-drawer-input.planner-template-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #92be9738}.planner-template-cta.btn{width:100%;border-radius:16px;padding:14px 16px;font-weight:900;font-size:15px;letter-spacing:-.01em}.planner-template-save-row{display:grid;grid-template-columns:7fr 3fr;gap:10px;align-items:stretch}.planner-template-save-btn.btn{width:100%;border-radius:14px;padding:12px;font-weight:900;letter-spacing:-.01em;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.planner-template-save-btn svg{display:block}.planner-template-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:14px;background:#f5f0e8;border:1px solid rgba(148,163,184,.22)}.planner-template-meta-label{font-size:12px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap}.planner-template-meta-value{font-size:13px;font-weight:800;color:var(--color-text-main);text-align:right}.planner-template-empty{font-size:13px;color:var(--color-text-muted);padding:10px 2px 2px}.planner-template-notice--inline{border-radius:16px;padding:10px 12px;background:#f5f0e8cc;border:1px solid rgba(225,217,204,.85)}.planner-template-section{display:flex;flex-direction:column;gap:10px}.planner-template-divider{height:1px;background:var(--color-border-light);opacity:.6}.planner-template-list{display:flex;flex-direction:column;gap:8px}.planner-template-list--scroll{max-height:min(340px,45vh);overflow-y:auto;padding-right:4px;-webkit-overflow-scrolling:touch}.planner-template-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;border:1px solid rgba(225,217,204,.85);background:#ffffffbf}.planner-template-row.is-editing{align-items:stretch}.planner-template-name{font-weight:600;color:var(--color-text-main);flex:1;min-width:0;display:flex;align-items:center}.planner-template-name-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planner-template-actions{display:inline-flex;align-items:center;gap:8px}.planner-template-apply-btn.btn{padding:10px 14px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;border-radius:15px}.planner-template-icon-btn{width:36px;height:36px;border-radius:14px;border:1px solid rgba(225,217,204,.9);background:#ffffffa6;display:inline-flex;align-items:center;justify-content:center;color:#575d67f2;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease}.planner-template-icon-btn:active:not(:disabled){transform:translateY(1px)}.planner-template-icon-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.planner-template-icon-btn:disabled{opacity:.55;cursor:not-allowed}.planner-template-icon-btn--danger{color:#575d67f2}.planner-template-icon-btn--danger:hover:not(:disabled){background:#ffffffa6;border-color:#e1d9cce6}.planner-drawer--templates .planner-template-save-row{margin-top:2px}.planner-template-input{width:100%;border-radius:10px;border:1px solid var(--color-border-light);padding:8px 10px;font-size:14px;background:var(--input-bg);color:var(--color-text-main)}.planner-template-notice,.planner-template-note{font-size:13px;color:var(--color-text-muted)}.planner-template-conflicts p{margin:0 0 10px;color:var(--color-text-main)}.planner-template-conflict-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.planner-template-conflict-row{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--color-text-muted)}.planner-template-conflict-recipe{font-weight:600;color:var(--color-text-main)}.planner-template-conflict-actions{display:flex;flex-wrap:wrap;gap:8px}.planner-template-confirm{display:flex;flex-direction:column;gap:10px}.planner-template-confirm p{margin:0}.planner-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;margin-top:-8px;padding:6px 12px;border-radius:999px;border:1px solid rgba(148,163,184,.22);background:#f8f8f8}.planner-nav .icon-btn{width:42px;height:42px;border-radius:999px;border:1px solid rgba(148,163,184,.22);background:#8fbe9a24;color:var(--color-text-main);display:inline-flex;align-items:center;justify-content:center;box-shadow:none}.planner-nav .icon-btn:hover{background:#8fbe9a38}.planner-nav .icon-btn svg{width:20px;height:20px;display:block}.planner-week-label{font-family:inherit;font-weight:700;color:var(--color-text-main);letter-spacing:-.02em;flex:1;text-align:center;padding:10px 14px;border-radius:999px;border:0px solid rgba(148,163,184,.18)}.planner-week-label--animate{will-change:transform,opacity}.planner-week-label--animate.is-next{animation:planner-week-label-next .45s ease both}.planner-week-label--animate.is-prev{animation:planner-week-label-prev .45s ease both}@keyframes planner-week-label-next{0%{opacity:.2;transform:translate(14px) scale(.98)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes planner-week-label-prev{0%{opacity:.2;transform:translate(-14px) scale(.98)}to{opacity:1;transform:translate(0) scale(1)}}@media (prefers-reduced-motion: reduce){.planner-week-label--animate.is-next,.planner-week-label--animate.is-prev{animation:none}}.planner-days{display:flex;flex-direction:column;gap:14px}.planner-day{position:relative;border:1px solid rgba(148,163,184,.25);border-radius:22px;padding:14px;background:var(--color-bg);box-shadow:0 10px 26px #1f2a360a;overflow:hidden}.planner-day:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;border:1px solid rgba(255,255,255,.65);pointer-events:none}.planner-day-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;padding-bottom:10px;border-bottom:1px solid rgba(148,163,184,.18)}.planner-day-icon{font-size:18px}.planner-day-title{font-family:inherit;font-weight:700;color:var(--color-text-main);display:inline-flex;align-items:center;gap:6px}.planner-day-date{font-family:inherit;font-weight:600;color:var(--color-text-muted);font-size:12px}.planner-day-toggle{width:30px;height:30px;border-radius:999px;border:1px solid rgba(148,163,184,.28);background:#a5c1a3;color:#ffffffbf;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:16px}.planner-day-toggle svg{width:20px;height:20px;display:block}.planner-day-viewport{overflow:hidden;transition:height .5s ease;will-change:height}.planner-meals{display:grid;gap:10px;padding-top:10px}@media (prefers-reduced-motion: reduce){.planner-day-viewport{transition:none}}.planner-slot{position:relative;background:#ffffffb3;border:none!important;border-radius:16px;padding:14px 14px 14px 18px;cursor:pointer;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease,background-color .18s ease,opacity .18s ease;-webkit-user-select:none;user-select:none;touch-action:pan-y;box-shadow:none;overflow:hidden}.planner-slot:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;border-radius:16px 0 0 16px;background:#6f9f7b73}.planner-slot:hover{transform:translateY(-1px);box-shadow:inset 0 0 0 1px #6f9f7b40}.planner-slot-title{font-weight:700;margin-bottom:2px;color:var(--color-text-main)}.planner-slot-row{display:flex;align-items:center;gap:12px;width:100%}.planner-slot-row span{flex:1;min-width:0;display:block}.planner-slot-actions{display:inline-flex;align-items:center;gap:10px}.planner-slot-drag{width:38px;height:38px;border:1px solid rgba(148,163,184,.28);background:#ffffffbf;color:var(--color-text-main);border-radius:14px;padding:0;font-size:13px;cursor:grab;box-shadow:none;letter-spacing:1px;font-family:inherit;-webkit-user-select:none;user-select:none;touch-action:none}.planner-slot-drag svg{width:18px;height:18px;margin-top:3px}.planner-slot-drag:active{cursor:grabbing}.planner-slot-sub{color:var(--color-text-muted);font-size:13px}.planner-slot-delete{width:38px;height:38px;border:1px solid rgba(148,163,184,.28);background:#ffffffbf;color:var(--color-text-main);border-radius:14px;padding:0;font-size:13px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:6px}.planner-slot-delete:hover{background:#a4c1a259;border-color:#6f9f7b59;color:var(--color-text-main)}.planner-slot--drag-over{background:#a4c1a224;box-shadow:inset 0 0 0 2px #6f9f7b8c;transform:translateY(-2px) scale(1.02);animation:planner-slot-target-pulse 1s ease-in-out infinite}.planner-slot--drag-source{opacity:.42;transform:scale(.985);box-shadow:inset 0 0 0 1px #6f9f7b2e,0 10px 24px #1f2a361a}.planner-drag-ghost{position:fixed;pointer-events:none;transform:translate(-50%,-50%);background:var(--color-bg-elevated);border:1px solid var(--color-border-light);border-radius:18px;padding:10px 12px;box-shadow:0 20px 42px #1f2a3638;display:inline-flex;gap:8px;align-items:center;z-index:1500;min-width:150px;animation:planner-drag-float-in .18s ease-out}.planner-drag-ghost-emoji{font-size:18px;flex:0 0 auto}.planner-drag-ghost-text{font-weight:600;color:var(--color-text-main)}.planner-drag-image{border-radius:18px;background:var(--color-bg-elevated);border:1px solid var(--color-border-light);overflow:hidden}.planner-swap-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a59;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:flex-end;justify-content:center;z-index:1200}.planner-swap-sheet{width:min(520px,calc(100% - 24px));background:var(--color-bg-elevated);border-radius:22px 22px 12px 12px;border:1px solid var(--color-border-light);box-shadow:0 -18px 40px #0f172a2e;padding:18px 18px 20px;margin:0 12px 16px;animation:planner-slide-up .31s ease-out}.planner-swap-title{font-size:16px;font-weight:800;color:var(--color-text-main)}.planner-swap-subtitle{font-size:13px;color:var(--color-text-muted);margin-top:4px}.planner-swap-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}@keyframes planner-slide-up{0%{transform:translateY(16px);opacity:.2}to{transform:translateY(0);opacity:1}}@keyframes planner-drag-float-in{0%{opacity:0;transform:translate(-50%,-46%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes planner-slot-target-pulse{0%,to{box-shadow:inset 0 0 0 2px #6f9f7b8c,0 10px 24px #6f9f7b14}50%{box-shadow:inset 0 0 0 2px #6f9f7bb8,0 14px 28px #6f9f7b29}}@keyframes planner-drawer-slide-up{0%{transform:translateY(100%);opacity:.96}to{transform:translateY(0);opacity:1}}@keyframes planner-drawer-slide-down{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:.96}}@media (prefers-reduced-motion: reduce){.planner-drawer,.planner-drawer.slide-up,.planner-drawer.slide-down,.planner-drag-ghost,.planner-slot--drag-over{animation:none}}html.dark .planner-swap-backdrop{background:#0206178c}html.dark .planner-swap-sheet{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-strong);box-shadow:0 -18px 40px #00000073}html.dark .planner-swap-title{color:var(--text-dark-primary)}html.dark .planner-swap-subtitle{color:var(--text-dark-secondary)}html.dark .planner-card{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-strong);box-shadow:0 18px 40px #0006}html.dark .planner-nav{border-color:#94a3b838;background:linear-gradient(180deg,#10192deb,#0b1221e0);box-shadow:0 18px 40px #0006}html.dark .planner-nav .icon-btn{border-color:#94a3b838;background:#2ec77d24;color:var(--text-dark-primary)}html.dark .planner-nav .icon-btn:hover{background:#2ec77d38}html.dark .planner-week-label{border-color:#94a3b82e;background:none;color:var(--text-dark-primary)}html.dark .planner-card.soft{background:var(--bg-dark-surface)}html.dark .planner-day{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-subtle)}html.dark .planner-day:before{border-color:#ffffff0a}html.dark .planner-day-header{border-bottom-color:#94a3b833}html.dark .planner-day-title{color:var(--text-dark-primary)}html.dark .planner-day-date{color:var(--text-dark-secondary)}html.dark .planner-day-toggle{background:var(--bg-dark-surface);border-color:#94a3b840;color:#e2e8f0bf}html.dark .planner-slot{background:var(--bg-dark-surface-elevated);border:none;box-shadow:none}html.dark .planner-slot:hover{box-shadow:inset 0 0 0 1px #9fc4a038}html.dark .planner-slot-drag,html.dark .planner-slot-delete{background:var(--bg-dark-surface);border-color:var(--border-dark-strong);color:var(--text-dark-primary)}html.dark .planner-slot-delete:hover{background:#9fc4a040;border-color:#9fc4a066}html.dark .planner-slot--drag-over{background:#2ec77d1f;box-shadow:inset 0 0 0 2px #2ec77d66;animation-name:planner-slot-target-pulse-dark}html.dark .planner-slot--drag-source{box-shadow:inset 0 0 0 1px #9fc4a01f,0 12px 28px #0003}html.dark .planner-drag-ghost{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-strong);box-shadow:0 22px 44px #0000006b}html.dark .planner-drag-image{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-strong)}@keyframes planner-slot-target-pulse-dark{0%,to{box-shadow:inset 0 0 0 2px #2ec77d66,0 10px 24px #2ec77d14}50%{box-shadow:inset 0 0 0 2px #2ec77d8f,0 14px 30px #2ec77d29}}html.dark .planner-drawer{background:var(--bg-dark-surface);border-color:var(--border-dark-strong);box-shadow:var(--shadow-dark-elevated)}html.dark .planner-drawer-title{color:var(--text-dark-primary)}html.dark .planner-drawer-label{color:var(--text-dark-secondary)}html.dark .planner-drawer-input{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-subtle);color:var(--text-dark-primary);color-scheme:dark}html.dark .planner-template-row{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-subtle)}html.dark .planner-template-name{color:var(--text-dark-primary)}html.dark .planner-template-input{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .planner-template-divider{background:var(--border-dark-subtle)}html.dark .planner-template-notice,html.dark .planner-template-note{color:var(--text-dark-secondary)}html.dark .planner-template-card{background:#10192db8;border-color:#30405c8c;box-shadow:0 18px 46px #00000059}html.dark .planner-template-helper,html.dark .planner-drawer-subtitle,html.dark .planner-template-empty{color:var(--text-dark-secondary)}html.dark .planner-template-card-title,html.dark .planner-template-meta-value{color:var(--text-dark-primary)}html.dark .planner-template-meta{background:#30405c59;border-color:#30405c8c}html.dark .planner-template-meta-label{color:#9fb1c9f2}html.dark .planner-template-notice--inline{background:#30405c52;border-color:#30405c8c}html.dark .planner-template-icon-btn{background:#10192db8;border-color:#30405c8c;color:#9fb1c9f2}html.dark .planner-template-icon-btn:hover:not(:disabled){background:#30405c73;border-color:#30405cbf}html.dark .planner-template-icon-btn--danger{color:#9fb1c9f2}html.dark .planner-template-icon-btn--danger:hover:not(:disabled){background:#30405c73;border-color:#30405cbf}@media (max-width: 380px){.planner-template-save-row{grid-template-columns:1fr}}html.dark .planner-template-conflict-row{color:var(--text-dark-secondary)}html.dark .planner-template-conflict-recipe{color:var(--text-dark-primary)}.cta-row{display:flex;gap:10px;margin-top:12px}.planner-bottom-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.planner-bottom-actions .btn{width:100%;padding:12px 14px;border-radius:999px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px}.planner-bottom-actions .btn.btn-ghost{background:#e6f1e9;border:1px solid rgba(148,163,184,.3)}html.dark .planner-bottom-actions .btn.btn-ghost{background:#0f172a66;border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}.planner-action-ai-icon{width:30px;height:30px;display:block;filter:brightness(0) invert(1)}.planner-action-grocery-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:transparent;color:#0f172a}.planner-action-grocery-icon svg{width:25px;height:25px;display:block}html.dark .planner-action-grocery-icon{background:transparent;color:#fff}.recipe-picker-page{--recipe-picker-header-offset: max(0px, calc(var(--app-safe-top, 0px) - 24px));padding:20px 18px 32px;display:flex;flex-direction:column;gap:16px;height:100%;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.recipe-picker-page .page-header{display:flex;align-items:center;gap:0;margin-bottom:4px;justify-content:center;position:relative;min-height:calc(56px + var(--recipe-picker-header-offset));padding-top:var(--recipe-picker-header-offset)}.recipe-picker-page .page-header .icon-btn{position:absolute;left:0;top:var(--recipe-picker-header-offset);flex-shrink:0}.recipe-picker-page .page-header .back-icon{background:#fcfdf98a;border-color:#e1e7d6eb;box-shadow:0 12px 24px #1f2a3614,inset 0 1px #ffffff47}.recipe-picker-page .page-header .page-title,.recipe-picker-page .page-header .page-subtitle{text-align:center}.recipe-picker-page .page-header>div:nth-child(2){min-width:0;width:100%;padding:0 64px}.recipe-picker-page .folder-card{background:linear-gradient(135deg,#fffffff5,#ffffffd6);border-radius:20px;padding:16px;border:none;box-shadow:none;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.recipe-picker-page .folder-card:hover{transform:translateY(-2px);box-shadow:none}.recipe-picker-page .folder-card--active{background:linear-gradient(135deg,#a4c1a2f2,#a4c1a2b3)!important;border-color:transparent!important;box-shadow:none;transform:translateY(-2px)}html.dark .recipe-picker-page .folder-card{background:linear-gradient(135deg,#10192df2,#10192dcc);border:none;color:var(--text-dark-secondary);box-shadow:none;transition:transform .12s ease,border-color .12s ease,background-color .12s ease}html.dark .recipe-picker-page .folder-card:hover{transform:translateY(-1px)}html.dark .recipe-picker-page .page-header .back-icon{background:#0f172a7a;border-color:#ffffff1f;box-shadow:0 12px 22px #0206174d,inset 0 1px #ffffff14}.recipe-picker-header{display:flex;align-items:center;gap:12px}.recipe-picker-header .page-title{font-size:20px;font-weight:600}.recipe-picker-header .page-subtitle{font-size:14px;opacity:.7}.recipes-toolbar{display:flex;flex-direction:column;gap:10px}.recipes-toolbar .toolbar-buttons{display:flex;flex-wrap:wrap;gap:8px}.recipe-picker-page .recipes-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.recipe-picker-cover-grid{margin-top:2px}.recipe-picker-cover-card{border:none;padding:0;width:100%;text-align:left}.recipe-picker-cover-card .recipe-cover-card-media{min-height:250px}.recipe-picker-page .recipes-actions .action-btn{padding:10px 8px;border-radius:12px;font-size:.76rem;min-width:0}.recipe-picker-page .recipes-actions .action-btn--add{gap:6px;padding:10px 8px}.recipe-picker-page .recipes-actions .action-btn-icon{width:20px;height:20px;border-radius:8px}.recipe-picker-page .recipes-actions .action-btn-icon svg{width:13px;height:13px}.recipe-recents-section{display:flex;flex-direction:column;gap:10px}.recents-toggle-btn{justify-content:center}.recents-toggle-btn.is-active{background:#a4c1a247;border-color:#6f9f7b73}.recents-toggle-btn:focus-visible,.recipe-recents-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.recipe-recents-panel{border:1px solid var(--glass-chrome-border);border-radius:16px;padding:10px;background:var(--glass-chrome-bg);box-shadow:var(--glass-chrome-shadow-soft),var(--glass-chrome-highlight);animation:recipe-recents-panel-in .22s ease-out;backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur)}.recipe-recents-panel-header{font-size:12px;font-weight:700;color:var(--color-text-muted);margin:0 2px 8px;text-transform:uppercase;letter-spacing:.03em}.recipe-recents-list{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto;padding-right:2px;-webkit-overflow-scrolling:touch}.recipe-recents-item{width:100%;display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:10px;border:1px solid rgba(255,255,255,.16);background:#ffffff2e;border-radius:14px;padding:6px;cursor:pointer;text-align:left;transition:transform .15s ease,border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.recipe-recents-item:hover{transform:translateY(-1px);border-color:#ffffff3d;background:#ffffff52;box-shadow:0 8px 16px #1f2a361a}.recipe-recents-item-image{width:52px;height:52px;border-radius:10px;object-fit:cover;display:block}.recipe-recents-item-icon{width:52px;height:52px;min-width:52px;min-height:52px;border-radius:10px}.recipe-recents-item-body{min-width:0;display:flex;flex-direction:column;gap:2px}.recipe-recents-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;color:var(--color-text-main)}.recipe-recents-empty{font-size:.82rem;color:var(--color-text-muted);padding:4px 2px 2px}@keyframes recipe-recents-panel-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.recipe-recents-panel{animation:none}}@media (max-width: 520px){.recipe-picker-page .page-header{align-items:center}.recipe-picker-cover-card .recipe-cover-card-media{min-height:220px}}html.dark .recents-toggle-btn{color:var(--text-dark-primary)}html.dark .recents-toggle-btn.is-active{background:#2ec77d29;border-color:#2ec77d59}html.dark .recipe-recents-panel{background:var(--glass-chrome-bg);border-color:var(--glass-chrome-border);box-shadow:var(--glass-chrome-shadow),var(--glass-chrome-highlight)}html.dark .recipe-recents-item{background:#ffffff0f;border-color:#ffffff14}html.dark .recipe-recents-item:hover{background:#ffffff1a;border-color:#ffffff1f}html.dark .recipe-recents-panel-header,html.dark .recipe-recents-empty{color:var(--text-dark-secondary)}html.dark .recipe-recents-item-title{color:var(--text-dark-primary)}.recipe-picker-sheet{border-radius:0}.modal-search-input,.recipe-picker-search{width:100%;padding:12px;border-radius:10px;border:1px solid #E2E8F0;font-size:16px;outline:none;background:#fafafa}.modal-search-input:focus,.recipe-picker-search:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #a4c1a24d}.recipe-picker-list{display:flex;flex-direction:column;gap:12px}.recipe-picker-page .recipe-card{width:100%;height:104px;min-height:104px;padding:0 12px 0 0;background:#fff;border-radius:18px;border:none;box-shadow:0 8px 18px #1f2a361f;display:flex;flex-direction:row;align-items:center;column-gap:12px;overflow:hidden}.recipe-picker-page .recipe-card:active{transform:scale(.99)}.recipe-picker-page .recipe-card-image,.recipe-picker-page .recipe-card img{width:104px;height:104px;min-width:104px;aspect-ratio:1 / 1;display:block;object-fit:cover;border-radius:0;flex:0 0 130px;flex-shrink:0}.recipe-picker-page .recipe-card .recipe-emoji,.recipe-picker-page .recipe-card .recipe-icon-wrap{width:80px;height:80px;min-width:80px;aspect-ratio:1 / 1;border-radius:14px;margin-left:12px;padding:0;display:flex;align-items:center;justify-content:center;font-size:34px;background:linear-gradient(135deg,#ffffffe6,#f2b48740);flex:0 0 80px;flex-shrink:0}.recipe-picker-page .recipe-card .recipe-icon-image{width:100%;height:100%;object-fit:contain;border-radius:14px}.recipe-picker-page .recipe-main{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;flex:1;min-width:0;margin:0;padding:0 28px 0 0;background:transparent;border:none;box-shadow:none;position:relative;justify-content:center;overflow:hidden}.recipe-picker-page .recipe-title{font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--color-text-main);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2}.recipe-picker-page .recipe-sub{color:var(--color-text-muted);font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px;white-space:nowrap}.recipe-picker-page .recipe-time-icon{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;color:var(--color-text-muted)}.recipe-picker-page .recipe-time-icon svg{width:12px;height:12px}.recipe-picker-page .recipe-tags{display:flex;gap:6px;flex-wrap:wrap;row-gap:6px;max-height:32px;overflow:hidden}.recipe-picker-page .recipe-tag-pill{background:#a5c1a32e;color:#2a3a2f;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;border:none;white-space:nowrap}.recipe-picker-item{display:flex;align-items:center;background:#fff;border-radius:12px;padding:14px;border:1px solid #E2E8F0;font-size:17px;cursor:pointer;transition:background .15s ease}.recipe-picker-item:active{background:#f1f5f9}.recipe-picker-item .emoji{font-size:22px;margin-right:12px}.recipe-picker-item .title{flex:1}html.dark .recipe-picker-item{background:#0f172a;border-color:#334155;color:#e2e8f0}html.dark .recipe-picker-item:active{background:#1e293b}.custom-note-body{display:flex;flex-direction:column;gap:10px}.custom-note-label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:var(--color-text-main)}.custom-note-input,.custom-note-textarea{width:100%;padding:10px;border:1px solid var(--color-border-light);border-radius:12px;font-size:16px;background:var(--input-bg);color:var(--color-text-main)}.custom-note-textarea{min-height:90px;resize:vertical}.custom-note-actions{display:flex;gap:8px;justify-content:flex-end}.custom-emoji-row{display:flex;flex-direction:column;gap:8px;align-items:stretch}.emoji-picker-shell{border:1px solid var(--color-border-light);border-radius:12px;padding:8px;background:var(--color-bg-elevated);box-shadow:var(--shadow-dark-elevated, 0 10px 28px rgba(31, 42, 54, .1))}.custom-note-suggestions{display:flex;flex-direction:column;gap:6px}.custom-note-hint{font-size:13px;color:var(--color-text-muted)}.custom-note-chip-row{display:flex;flex-wrap:wrap;gap:6px}.custom-note-chip{border:1px solid var(--color-border-light);background:var(--color-bg-elevated);border-radius:12px;padding:6px 10px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.custom-note-chip:hover{background:#a4c1a21f;border-color:var(--color-primary)}.custom-note-chip-emoji{font-size:16px}.custom-note-chip-text{font-size:14px;color:var(--color-text-main)}.recipe-picker-page .recipes-scroll-top{right:20px;left:auto;bottom:calc(var(--bottom-nav-clearance) + 40px)}.cook-mode-sheet{border-radius:0}.cook-mode-sheet-content{height:100%;overflow-x:hidden}.cook-mode-page{background:var(--color-bg);color:var(--color-text-main);display:flex;flex-direction:column;gap:14px;min-height:100%;height:100%;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 16px calc(20px + env(safe-area-inset-bottom))}.cook-mode-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;position:sticky;top:0;z-index:10;margin:0 -16px;padding:18px 16px 8px;background:linear-gradient(180deg,#f7f7f2f5,#f7f7f2e0 72%,#f7f7f200);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);isolation:isolate}.cook-header-spacer{width:40px;height:40px}.cook-title{margin:0;font-family:var(--font-display);font-size:22px;letter-spacing:-.02em;text-align:center;min-width:0;position:relative;z-index:1;text-shadow:0 1px 0 rgba(255,255,255,.22)}.cook-progress{height:6px;background:var(--color-border-light);border-radius:999px;overflow:hidden}.cook-progress-bar{height:100%;background:var(--color-primary);border-radius:999px;transition:width .35s ease}.cook-body{display:flex;flex-direction:column;gap:16px;flex:1}.cook-hero{display:flex;align-items:center;gap:12px;background:linear-gradient(180deg,var(--color-bg-elevated),rgba(255,255,255,.6));border-radius:18px;padding:12px;border:1px solid var(--color-border-light);box-shadow:0 10px 28px #0f172a0f}.cook-hero-text{display:flex;flex-direction:column;gap:4px}.cook-hero-reset{margin-left:auto;width:40px;height:40px;border-radius:50%;border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease}.cook-hero-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted)}.cook-emoji{font-size:34px}.cook-meta-text{display:flex;gap:8px;color:var(--color-text-muted);font-weight:600}.cook-section{background:linear-gradient(180deg,var(--color-bg-elevated),rgba(255,255,255,.7));border:1px solid var(--color-border-light);border-radius:18px;box-shadow:0 14px 40px #0f172a0f,0 1px #ffffffb3 inset;padding:14px}.cook-accordion{width:100%;border:none;background:transparent;display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:16px;cursor:pointer;padding:0}.cook-ingredients-head{display:flex;align-items:center;gap:10px}.cook-ingredients-head .cook-accordion{flex:1}.cook-ingredients-toggle-all{border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease}.cook-ingredients-body{overflow:hidden;max-height:680px;padding-top:12px;transition:max-height .7s ease,padding-top .7s ease}.cook-ingredients-body.is-collapsed{max-height:0;padding-top:0}.cook-ingredients{display:flex;flex-direction:column;gap:6px;padding:2px 0}.cook-ingredient{display:flex;align-items:center;gap:10px;font-size:16px;padding:4px 8px;margin:0 2px;border-radius:12px;transition:background-color .2s ease,box-shadow .2s ease,transform .2s ease}.cook-ingredient--highlight{background:var(--chip-bg);box-shadow:0 0 0 1px #a4c1a299}.cook-ingredient--pulse{animation:cookPulse .35s ease}.cook-ingredient--done span{text-decoration:line-through;opacity:.6}.cook-step-meta{font-weight:700;color:var(--color-text-main);margin-bottom:10px}.cook-step-wrap{position:relative}.cook-step-list-toggle{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:10px;border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease}.cook-step-list-toggle.is-open{border-color:var(--color-primary);box-shadow:0 0 0 2px #a4c1a23d}.cook-timer-nudge{position:absolute;right:8px;bottom:12px;width:36px;height:36px;border-radius:999px;border:1px solid rgba(164,193,162,.65);background:#a4c1a23d;color:var(--color-text-main);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;box-shadow:0 8px 18px #0f172a24;transition:transform .15s ease,box-shadow .2s ease}.cook-timer-nudge.is-wiggling{animation:cookTimerNudgeWiggle .8s ease-in-out 3}.cook-step-card{background:var(--color-secondary);border-radius:16px;padding:18px 54px 18px 18px;border:1px solid var(--color-border-light);display:flex;flex-direction:column;gap:10px;animation-duration:.32s;animation-fill-mode:both}.cook-step-card--next{animation-name:cookStepInRight}.cook-step-card--prev{animation-name:cookStepInLeft}.cook-step-text{font-size:20px;line-height:1.6;color:var(--cook-step-text-color)}.cook-all-steps{margin-top:10px;display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .35s ease,opacity .25s ease}.cook-all-steps.is-open{grid-template-rows:1fr;opacity:1}.cook-all-steps-inner{min-height:0;overflow:hidden}.cook-all-steps-list{display:flex;flex-direction:column;gap:6px;max-height:min(46vh,420px);overflow-y:auto;padding-right:2px;transform:translateY(-5px);opacity:0;transition:transform .3s ease,opacity .24s ease}.cook-all-steps.is-open .cook-all-steps-list{transform:translateY(0);opacity:1}.cook-all-step-item{width:100%;border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);border-radius:12px;padding:10px 12px;display:grid;grid-template-columns:auto 1fr;align-items:start;gap:10px;text-align:left;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease}.cook-all-step-item.is-active{border-color:var(--color-primary);box-shadow:0 0 0 2px #a4c1a233;background:#a4c1a229}.cook-all-step-index{font-weight:800;font-size:12px;line-height:1.4;min-width:18px}.cook-all-step-text{font-size:14px;line-height:1.4}.cook-timer{background:linear-gradient(180deg,#ffffffe6,#fafbfce6);border:1px solid var(--color-border-light);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:10px}.cook-timer-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;font-weight:700;font-size:13px;letter-spacing:.01em}.cook-timer-step{color:var(--color-text-muted);font-weight:600}.cook-timer-queue-pill{border-radius:999px;border:1px solid rgba(164,193,162,.5);background:#a4c1a22e;color:var(--color-text-main);font-size:11px;font-weight:700;padding:3px 9px;font-variant-numeric:tabular-nums}.cook-tone-select-wrap{display:inline-flex;align-items:center;gap:6px;margin-right:auto}.cook-tone-select-wrap span{color:var(--color-text-muted);font-size:12px;font-weight:700}.cook-tone-select{border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);border-radius:999px;font-size:12px;font-weight:700;padding:4px 24px 4px 10px}.cook-add-time-chip{border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);border-radius:999px;font-size:12px;font-weight:700;padding:6px 8px;cursor:pointer}.cook-add-time-chip:disabled{opacity:.45;cursor:default}.cook-active-timers{display:flex;flex-direction:column;gap:8px}.cook-active-timer-card{border:1px solid var(--color-border-light);border-radius:12px;background:#ffffff94;padding:9px 10px;display:flex;flex-direction:column;gap:8px}.cook-active-timer-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.cook-active-timer-label{font-size:12px;font-weight:700;color:var(--color-text-muted)}.cook-active-timer-time{font-size:17px;font-weight:800;letter-spacing:.04em;font-variant-numeric:tabular-nums}.cook-active-timer-actions{display:flex;gap:6px}.cook-mini-timer-btn{border:1px solid var(--color-border-light);border-radius:999px;background:var(--color-bg-elevated);color:var(--color-text-main);font-size:12px;font-weight:700;padding:5px 10px;cursor:pointer}.cook-mini-timer-btn.ghost{background:transparent}.cook-active-timer-empty{border:1px dashed var(--color-border-light);border-radius:12px;color:var(--color-text-muted);font-size:12px;font-weight:700;text-align:center;padding:10px}.cook-timer-display-wrap{display:flex;align-items:center;justify-content:space-between;gap:8px}.cook-timer-display{font-size:30px;font-weight:800;letter-spacing:.08em;font-variant-numeric:tabular-nums}.cook-timer-done{display:inline-flex;align-items:center;border-radius:999px;border:1px solid rgba(46,199,125,.35);background:#2ec77d29;color:#2f5d3f;font-size:12px;font-weight:700;padding:4px 10px}.cook-timer-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.cook-timer-chip{border:1px solid var(--color-border-light);background:var(--color-bg-elevated);border-radius:999px;padding:8px 10px;font-weight:700;font-size:13px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.cook-timer-chip.is-active{border-color:var(--color-primary);box-shadow:0 0 0 2px #a4c1a23d}.cook-timer-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cook-timer-inputs label{display:flex;flex-direction:column;gap:6px}.cook-timer-inputs label span{color:var(--color-text-muted);font-size:12px;font-weight:700}.cook-timer-inputs input{width:100%;border-radius:12px;border:1px solid var(--color-border-light);padding:9px 10px;font-weight:700;background:var(--color-bg-elevated);color:var(--color-text-main)}.cook-timer-controls{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.cook-timer-btn{border-radius:999px;padding:9px 14px;border:1px solid var(--color-border-light);background:var(--color-bg-elevated);font-weight:700;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.cook-timer-btn:active,.cook-timer-chip:active,.cook-add-time-chip:active,.cook-mini-timer-btn:active,.cook-footer-timer-chip:active,.cook-ingredients-toggle-all:active,.cook-hero-reset:active,.cook-nav-btn:active:not(:disabled),.cook-timer-toggle:active,.cook-timer-footer-badge:active,.cook-timer-queue-badge:active,.cook-step-list-toggle:active,.cook-timer-nudge:active,.cook-all-step-item:active{transform:scale(.98)}.cook-timer-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#0f172a}.cook-timer-btn.ghost{background:transparent}.cook-footer{position:sticky;bottom:0;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:end;gap:10px;background:transparent;padding:12px 0 2px}.cook-nav-btn{border:1px solid var(--glass-chrome-border);border-radius:14px;padding:10px 12px;font-weight:700;font-size:14px;background:var(--glass-chrome-bg);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;min-height:44px;box-shadow:var(--glass-chrome-shadow-soft),var(--glass-chrome-highlight);backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur)}.cook-nav-btn.primary{background:color-mix(in srgb,var(--color-primary) 72%,rgba(255,255,255,.42));border-color:color-mix(in srgb,var(--color-primary) 62%,rgba(255,255,255,.3));color:var(--color-text-main)}.cook-nav-btn--icon{width:44px;height:44px;min-height:44px;border-radius:50%;padding:0;justify-self:center}.cook-footer-timer{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0;gap:5px}.cook-footer-timer-row{display:flex;align-items:center;gap:6px;min-width:0}.cook-footer-timer-chip{border-radius:999px;border:1px solid rgba(164,193,162,.45);background:#a4c1a224;color:var(--color-text-main);min-width:52px;text-align:center;font-size:11px;font-weight:700;padding:3px 8px;font-variant-numeric:tabular-nums;cursor:pointer}.cook-footer-timer-chip.is-running{border-color:#a4c1a2b3;background:#a4c1a238}.cook-timer-toggle{width:46px;height:46px;border-radius:999px;border:1px solid var(--glass-chrome-border);background:var(--glass-chrome-bg);color:var(--color-text-main);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--glass-chrome-shadow-soft),var(--glass-chrome-highlight);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur)}.cook-timer-toggle.is-open{border-color:var(--color-primary);box-shadow:0 0 0 2px #a4c1a247}.cook-timer-footer-badge{border-radius:999px;border:1px solid rgba(164,193,162,.5);background:#a4c1a233;color:var(--color-text-main);font-size:12px;font-weight:700;padding:3px 10px;font-variant-numeric:tabular-nums;cursor:pointer}.cook-timer-queue-badge{border-radius:999px;border:1px solid rgba(164,193,162,.45);background:#a4c1a224;color:var(--color-text-main);font-size:11px;font-weight:700;padding:3px 9px;font-variant-numeric:tabular-nums;cursor:pointer}.cook-complete-bar{position:sticky;bottom:0;padding:10px 0 4px;background:linear-gradient(180deg,rgba(255,255,255,0),var(--color-bg) 38%)}.native-ios-shell .cook-mode-sheet-content{padding-bottom:0}.native-ios-shell .cook-mode-page{padding-top:max(var(--app-safe-top, env(safe-area-inset-top, 0px)),env(safe-area-inset-top,0px));padding-bottom:0;overscroll-behavior-x:none}.native-ios-shell .cook-mode-header{top:0;margin:0;grid-template-columns:44px minmax(0,1fr) 44px;padding:10px 0 8px}.native-ios-shell .cook-title{font-size:20px;line-height:1.12;text-wrap:balance}.cook-mode-header .back-button{position:relative;z-index:1}.cook-mode-header .back-icon{background:#ffffffe6;box-shadow:0 10px 22px #1f2a361a,inset 0 1px #ffffff47}.native-ios-shell .cook-footer{padding:12px 0 env(safe-area-inset-bottom,0px)}.native-ios-shell .cook-complete-bar{padding:10px 0 env(safe-area-inset-bottom,0px);background:transparent}.cook-mark-cooked-btn{width:100%;border:1px solid var(--color-primary);background:var(--color-primary);color:#0f172a;border-radius:14px;min-height:44px;font-weight:800;font-size:15px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.cook-mark-cooked-btn:active:not(:disabled){transform:scale(.99)}.cook-mark-cooked-btn:disabled{opacity:.7;cursor:default}.cook-timer-sheet{border-radius:22px 22px 0 0;height:auto}.cook-timer-sheet-content{height:auto;min-height:0}.bottom-sheet.cook-timer-sheet{transform:translate3d(0,calc(var(--vv-height, 100vh) + var(--bottom-sheet-drag-offset, 0px)),0)}.bottom-sheet.cook-timer-sheet.is-open{transform:translate3d(0,var(--bottom-sheet-drag-offset, 0px),0)}.cook-timer-panel{height:100%;min-height:0;display:flex;flex-direction:column;gap:12px;padding:14px 16px calc(12px + env(safe-area-inset-bottom));background:var(--color-bg);overflow-y:auto;-webkit-overflow-scrolling:touch}.cook-timer-panel-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.cook-timer-panel-title{text-align:center;font-weight:800;font-size:18px;letter-spacing:-.01em}.cook-timer-alert-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2400;display:flex;align-items:center;justify-content:center;padding:18px;background:#02061773;opacity:0;transition:opacity .26s ease}.cook-timer-alert-backdrop.is-open{opacity:1}.cook-timer-alert-card{width:min(100%,320px);border-radius:18px;border:1px solid var(--color-border-light);background:var(--color-bg-elevated);box-shadow:0 24px 56px #0f172a4d;padding:16px;display:flex;flex-direction:column;gap:10px;opacity:0;transform:translateY(8px) scale(.96);transition:opacity .26s ease,transform .26s cubic-bezier(.2,.8,.2,1)}.cook-timer-alert-card.is-open{opacity:1;transform:translateY(0) scale(1)}.cook-timer-alert-title{font-size:20px;font-weight:800;letter-spacing:-.01em}.cook-timer-alert-text{color:var(--color-text-muted);font-size:14px}.cook-timer-alert-actions{margin-top:4px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.cook-timer-alert-btn{border-radius:999px;border:1px solid var(--color-primary);background:var(--color-primary);color:#0f172a;font-weight:800;padding:10px 14px;cursor:pointer}.cook-timer-alert-btn.secondary{border-color:var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main)}.cook-timer-alert-quick-add{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.cook-empty{text-align:center;padding:20px;color:var(--color-text-muted)}@keyframes cookStepInRight{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:translate(0)}}@keyframes cookStepInLeft{0%{opacity:0;transform:translate(-14px)}to{opacity:1;transform:translate(0)}}@keyframes cookPulse{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes cookTimerNudgeWiggle{0%{transform:rotate(0)}22%{transform:rotate(-12deg)}44%{transform:rotate(10deg)}66%{transform:rotate(-7deg)}88%{transform:rotate(4deg)}to{transform:rotate(0)}}@media (prefers-reduced-motion: reduce){.cook-step-card,.cook-ingredient--pulse{animation:none}.cook-progress-bar,.cook-ingredients-body,.cook-all-steps,.cook-all-steps-list,.cook-ingredients-toggle-all,.cook-nav-btn,.cook-step-list-toggle,.cook-timer-nudge,.cook-timer-toggle,.cook-timer-footer-badge,.cook-timer-queue-badge,.cook-footer-timer-chip,.cook-all-step-item,.cook-timer-alert-backdrop,.cook-timer-alert-card,.cook-ingredient,.cook-timer-chip,.cook-timer-btn,.cook-mini-timer-btn{transition:none}}html.dark .cook-mode-page{background:var(--bg-dark-page);color:var(--text-dark-primary)}html.dark .cook-mode-header{background:linear-gradient(180deg,#10192df0,#10192dd6 72%,#10192d00)}html.dark .cook-hero,html.dark .cook-section{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-subtle);box-shadow:var(--shadow-dark-elevated)}html.dark .cook-step-card{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle)}html.dark .cook-hero-reset,html.dark .cook-step-list-toggle,html.dark .cook-timer-nudge,html.dark .cook-all-step-item{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .cook-step-list-toggle.is-open,html.dark .cook-all-step-item.is-active{border-color:#a4c1a2e6;box-shadow:0 0 0 2px #a4c1a238}html.dark .cook-all-step-item.is-active{background:#a4c1a233}html.dark .cook-timer-nudge{border-color:#a4c1a2bf;background:#a4c1a23d}html.dark .cook-step-text{color:var(--text-dark-primary)}html.dark .cook-progress{background:var(--border-dark-subtle)}html.dark .cook-ingredient--highlight{background:#2ec77d1f;box-shadow:0 0 0 1px #2ec77d59}html.dark .cook-timer{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle)}html.dark .cook-timer-chip,html.dark .cook-timer-btn,html.dark .cook-add-time-chip,html.dark .cook-mini-timer-btn,html.dark .cook-ingredients-toggle-all,html.dark .cook-timer-toggle,html.dark .cook-tone-select,html.dark .cook-timer-inputs input{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .cook-nav-btn,html.dark .cook-timer-toggle{background:var(--glass-chrome-bg);border-color:var(--glass-chrome-border);box-shadow:var(--glass-chrome-shadow-soft),var(--glass-chrome-highlight)}html.dark .cook-mode-header .back-icon{background:#0f172ac2;border-color:var(--glass-chrome-border);box-shadow:var(--glass-chrome-shadow-soft),var(--glass-chrome-highlight)}html.dark .cook-timer-chip.is-active{border-color:#a4c1a2e6;box-shadow:0 0 0 2px #a4c1a238}html.dark .cook-timer-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#0f172a}html.dark .cook-timer-done{border-color:#2ec77d7a;background:#2ec77d33;color:#baf4cc}html.dark .cook-timer-footer-badge{border-color:#a4c1a28c;background:#a4c1a22e;color:var(--text-dark-primary)}html.dark .cook-timer-queue-badge,html.dark .cook-timer-queue-pill,html.dark .cook-footer-timer-chip{border-color:#a4c1a28c;background:#a4c1a224;color:var(--text-dark-primary)}html.dark .cook-footer-timer-chip.is-running{border-color:#a4c1a2cc;background:#a4c1a238}html.dark .cook-active-timer-card{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-subtle)}html.dark .cook-active-timer-label,html.dark .cook-active-timer-empty{color:var(--text-dark-secondary)}html.dark .cook-active-timer-empty{border-color:var(--border-dark-subtle)}html.dark .cook-timer-panel{background:var(--bg-dark-page)}html.dark .cook-timer-alert-card{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-subtle)}html.dark .cook-timer-alert-title{color:var(--text-dark-primary)}html.dark .cook-timer-alert-text{color:var(--text-dark-secondary)}html.dark .cook-timer-alert-btn.secondary{border-color:var(--border-dark-subtle);background:var(--bg-dark-surface);color:var(--text-dark-primary)}html.dark .cook-complete-bar{background:linear-gradient(180deg,rgba(10,18,34,0),var(--bg-dark-page) 40%)}html.dark .cook-footer{background:transparent}.support-ticket-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2300;display:flex;align-items:center;justify-content:center;padding:20px;background:#0f172a61;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);overscroll-behavior:contain;touch-action:none}.support-ticket-sheet{width:min(100%,560px);max-height:min(calc(var(--vv-height, 100dvh) - 40px),calc(100dvh - 40px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)));border-radius:28px;border:1px solid rgba(207,199,184,.76);background:radial-gradient(120% 120% at 100% 0%,rgba(164,193,162,.22),transparent 42%),linear-gradient(180deg,#fcfaf5fa,#f5f1e8fa);box-shadow:0 28px 60px #0f172a2e,inset 0 1px #ffffffd1;padding:22px;display:flex;flex-direction:column;gap:18px;overflow:hidden;animation:support-ticket-sheet-in .24s cubic-bezier(.22,1,.36,1)}.support-ticket-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.support-ticket-eyebrow{color:#607287;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.support-ticket-title{margin:4px 0 8px;color:#172033;font-family:var(--font-display);font-size:34px;line-height:.98;letter-spacing:-.03em}.support-ticket-subtitle{margin:0;color:#556273;font-size:15px;line-height:1.45}.support-ticket-close{width:40px;height:40px;border:1px solid rgba(207,199,184,.76);border-radius:14px;background:#ffffffb8;color:#1f2a36;cursor:pointer}.support-ticket-form{--keyboard-scroll-base-padding: 0px;--keyboard-scroll-extra-offset: 24px;--keyboard-scroll-top-margin: 12px;display:flex;flex-direction:column;gap:14px;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-right:2px}.support-ticket-field{display:flex;flex-direction:column;gap:8px;color:#1f2a36;font-weight:700}.support-ticket-field input,.support-ticket-field textarea{width:100%;border-radius:18px;border:1px solid rgba(207,199,184,.88);background:#ffffffd1;color:#1f2a36;padding:14px 16px;font:inherit;box-sizing:border-box;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}.support-ticket-field textarea{resize:vertical;min-height:144px}.support-ticket-field input:focus,.support-ticket-field textarea:focus{outline:none;border-color:#79a575eb;box-shadow:0 0 0 4px #79a57529}.support-ticket-error,.support-ticket-success{border-radius:16px;padding:12px 14px;font-size:14px;line-height:1.4}.support-ticket-error{background:#e53e3e1a;color:#9f1d1d;border:1px solid rgba(229,62,62,.2)}.support-ticket-success{background:#79a57524;color:#2f5f3c;border:1px solid rgba(121,165,117,.24)}.support-ticket-actions{display:flex;gap:10px}.support-ticket-actions .btn{flex:1;min-height:50px}.support-ticket-launch{display:flex;flex-direction:column;gap:12px}.support-ticket-launch .settings-subtext{margin:0}.support-ticket-open-btn{align-self:flex-start}@keyframes support-ticket-sheet-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}html.dark .support-ticket-sheet{border-color:#647e9b5c;background:radial-gradient(120% 120% at 100% 0%,rgba(68,121,86,.24),transparent 42%),linear-gradient(180deg,#0e1d30fa,#091527fa);box-shadow:0 30px 62px #00000085,inset 0 1px #ffffff08}html.dark .support-ticket-eyebrow,html.dark .support-ticket-subtitle{color:#d1dce9d1}html.dark .support-ticket-title,html.dark .support-ticket-field{color:#f4f7fb}html.dark .support-ticket-close,html.dark .support-ticket-field input,html.dark .support-ticket-field textarea{border-color:#647e9b4d;background:#0f172a9e;color:#f4f7fb}html.dark .support-ticket-field input::placeholder,html.dark .support-ticket-field textarea::placeholder{color:#d1dce98a}html.dark .support-ticket-error{background:#e53e3e24;color:#fecaca;border-color:#f8717138}html.dark .support-ticket-success{background:#79a5752e;color:#d1f3d5;border-color:#79a57547}@media (max-width: 640px){.support-ticket-backdrop{align-items:flex-end;padding:12px 12px calc(var(--keyboard-height, 0px) + env(safe-area-inset-bottom,0px) + 12px)}.support-ticket-sheet{width:100%;border-radius:28px 28px 22px 22px;padding:18px;max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - var(--keyboard-height, 0px))}.support-ticket-title{font-size:30px}.support-ticket-actions{flex-direction:column-reverse}.support-ticket-open-btn{width:100%}}.native-ios-shell.keyboard-open .support-ticket-backdrop{padding-bottom:calc(var(--keyboard-height, 0px) + 12px)}.native-ios-shell.keyboard-open .support-ticket-sheet{max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - var(--keyboard-height, 0px))}@media (prefers-reduced-motion: reduce){.support-ticket-sheet{animation:none}}.settings-container{background:transparent;padding:16px;display:flex;flex-direction:column;gap:16px}.settings-header h1{margin:0;color:#1e293b;font-size:24px;font-weight:800}.settings-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-header-row h1{text-align:center;flex:1}.settings-subpage.slide-in{animation:settingsSlideOverIn .34s cubic-bezier(.22,.84,.32,1) both;will-change:transform,opacity}.settings-subpage.slide-out{animation:settingsSlideOverOut .3s cubic-bezier(.4,0,.7,1) both;will-change:transform,opacity;pointer-events:none}@keyframes settingsSlideOverIn{0%{opacity:.65;transform:translate(34px)}to{opacity:1;transform:translate(0)}}@keyframes settingsSlideOverOut{0%{opacity:1;transform:translate(0)}to{opacity:.72;transform:translate(34px)}}.settings-subtitle{margin:4px 0 0;color:#475569;font-size:13px}.settings-toast{background:#d9f2e0;border:1px solid var(--color-primary);color:#2f5b3c;border-radius:15px;padding:10px 12px;font-weight:700;box-shadow:0 8px 18px #0000000f}.top-block{background:linear-gradient(180deg,var(--color-bg-elevated),rgba(255,255,255,.92));border-radius:15px;border:1px solid var(--color-border-light);box-shadow:0 14px 32px #0f172a14,0 1px #ffffffa6 inset;padding:16px;display:flex;flex-direction:column;gap:14px}.top-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap}.row-left{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1 1 auto}.label{font-weight:700;color:var(--color-text-main);font-size:14px}.id-inline{display:inline-flex;align-items:center;gap:6px;width:100%;max-width:100%;padding:10px 12px;border-radius:15px;background:#f5f1e8;border:1px solid var(--color-border-light);color:var(--color-text-main);font-family:monospace;box-shadow:inset 0 2px 4px #0000000a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html.dark .id-inline{background:#1b2a44;border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .top-block{background:linear-gradient(180deg,#15243c,#111e33);border-color:var(--border-dark-subtle);box-shadow:0 16px 32px #00000059,0 1px #94a3b81a inset}.settings-card{background:var(--color-bg-elevated);border-radius:15px;border:1px solid var(--color-border-light);box-shadow:0 12px 32px #00000014;padding:16px;display:flex;flex-direction:column;gap:10px}.settings-image-tools-card{gap:14px}.settings-tools-group{display:flex;flex-direction:column;gap:10px}.settings-tools-divider{height:1px;background:var(--color-border-light);opacity:.9}.dev-seeder-card,.dev-seeder-shell{border:1px solid #d6e0d4;background:radial-gradient(120% 150% at 100% 0%,rgba(164,193,162,.2),transparent 56%),linear-gradient(180deg,#fbfdf9,#f4f8f1);box-shadow:0 14px 28px #0f172a14,0 1px #ffffffbf inset;padding:20px;gap:14px;width:100%;position:relative;overflow:hidden}.dev-seeder-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.dev-seeder-card .settings-section-title,.dev-seeder-shell .settings-section-title{font-size:18px;font-weight:800;color:#1e293b}.dev-seeder-card .settings-section-sub,.dev-seeder-shell .settings-section-sub{color:#334155}.dev-seeder-subtext,.dev-seeder-label,.dev-seeder-help,.dev-seeder-upload-filename{color:#1e293b}.dev-seeder-input::placeholder{color:#475569}.dev-seeder-badge{background:linear-gradient(145deg,#edf6ff,#dfedff);color:#4f87bf;font-weight:700;font-size:10px;letter-spacing:.12em;padding:6px 12px;border-radius:999px;border:1px solid #bfd5f2;box-shadow:inset 0 1px #fffc}.dev-seeder-subtext{margin-top:-2px;color:#4b5a70}.dev-seeder-stack{display:flex;flex-direction:column;gap:16px;width:100%}.dev-seeder-field{display:flex;flex-direction:column;gap:8px;width:100%}.dev-seeder-label{font-size:13px;color:#334155;font-weight:700;letter-spacing:.01em}.dev-seeder-help{font-size:12px;color:#64748b}.dev-seeder-upload-field{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;border:1.5px dashed #b7c8b3;background:linear-gradient(180deg,#fff,#f4f8f1);box-shadow:0 8px 18px #0f172a12;position:relative;overflow:hidden;min-height:62px;width:100%}.dev-seeder-upload-field.is-disabled{opacity:.6;cursor:not-allowed}.dev-seeder-file-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.dev-seeder-upload-icon{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;color:#5b6f89;background:#f5faff;border:1px solid #c3d6ec;flex:0 0 auto}.dev-seeder-upload-icon svg{width:18px;height:18px}.dev-seeder-upload-button{padding:8px 14px;border-radius:999px;background:linear-gradient(120deg,#f5faff,#e9f4ff);color:#2f5786;font-weight:700;font-size:13px;border:1px solid #bfd4ea;box-shadow:0 6px 12px #2f578624;flex:0 0 auto}.dev-seeder-upload-filename{color:#64748b;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dev-seeder-input{width:100%;border-radius:16px;border:1px solid #cad7c6;padding:12px 14px;font-size:14px;background:linear-gradient(180deg,#fff,#f5f9f2);color:#1e293b;outline:none;box-shadow:0 6px 14px #0f172a0f}.dev-seeder-input::placeholder{color:#7b8ca2}.dev-seeder-input:focus{border-color:#79a575;box-shadow:0 0 0 3px #79a57538}.dev-seeder-input:disabled{opacity:.6;cursor:not-allowed}.dev-seeder-textarea{resize:vertical;min-height:110px}.dev-seeder-actions{display:flex;justify-content:center}.dev-seeder-submit{width:100%;border-radius:999px;padding:14px 18px;font-size:15px;font-weight:700;background:linear-gradient(110deg,#6ea2f6,#4f83e8);color:#f8fafc;box-shadow:0 14px 24px #4f83e84d;transition:transform .15s ease,box-shadow .2s ease}.dev-seeder-submit:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}.dev-seeder-preview{display:flex;flex-direction:column;gap:12px;margin-top:8px;padding:16px;border-radius:18px;border:1px solid #d2ddd0;background:linear-gradient(180deg,#fff,#f6f9f3);box-shadow:0 8px 18px #0f172a0f}.dev-seeder-preview-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;align-items:start}.dev-seeder-preview-image{width:100%;height:190px;object-fit:cover;border-radius:16px;border:1px solid #d2ddd0;box-shadow:0 10px 18px #0f172a1f}.dev-seeder-meta{display:flex;flex-direction:column;gap:12px}.dev-seeder-chip-row{display:flex;flex-direction:column;gap:6px}.dev-seeder-chip-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#7b8ca2;font-weight:600}.dev-seeder-chip-list{display:flex;flex-wrap:wrap;gap:6px}.dev-seeder-chip{padding:6px 10px;border-radius:999px;border:1px solid #d5ded2;background:#fff;color:#334155;font-size:12px;font-weight:600}.dev-seeder-chip.is-muted{color:#64748b}.dev-seeder-chip.is-code{font-family:SFMono-Regular,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.dev-seeder-error{padding:10px 12px;border-radius:12px;background:#fde8e8;color:#9a2f2f;border:1px solid #f2b7b7;font-size:13px;font-weight:600}@media (max-width: 720px){.dev-seeder-preview-grid{grid-template-columns:1fr}.dev-seeder-card,.dev-seeder-shell{padding:16px}.dev-seeder-upload-field{flex-wrap:wrap;align-items:flex-start}.dev-seeder-upload-filename{width:100%}}html.dark .dev-seeder-card,html.dark .dev-seeder-shell{border-color:var(--border-dark-subtle);background:radial-gradient(120% 150% at 100% 0%,rgba(67,113,86,.2),transparent 55%),linear-gradient(160deg,#121f35,#101a2f);box-shadow:0 24px 60px #00000073,inset 0 1px #94a3b814}html.dark .dev-seeder-card .settings-section-title,html.dark .dev-seeder-shell .settings-section-title,html.dark .dev-seeder-card .settings-section-sub,html.dark .dev-seeder-shell .settings-section-sub,html.dark .dev-seeder-subtext,html.dark .dev-seeder-label,html.dark .dev-seeder-help,html.dark .dev-seeder-upload-filename{color:var(--text-dark-primary)}html.dark .dev-seeder-upload-field,html.dark .dev-seeder-input,html.dark .dev-seeder-preview{background:linear-gradient(180deg,#182742,#132136);border-color:#2d4568}html.dark .dev-seeder-input{color:var(--text-dark-primary);caret-color:var(--text-dark-primary)}html.dark .dev-seeder-upload-icon{background:#1f3353;border-color:#365780;color:#c0d4f2}html.dark .dev-seeder-upload-button{background:linear-gradient(120deg,#224062,#1f3554);border-color:#355a83;color:#d6e8ff}html.dark .dev-seeder-input::placeholder{color:#93a8c7}html.dark .dev-seeder-input:focus{border-color:#79a575;box-shadow:0 0 0 3px #79a57542}html.dark .dev-seeder-chip{border-color:#35506f;background:#162740;color:#d8e7fb}html.dark .dev-seeder-chip-label{color:#8ea4c5}.settings-section-title{font-size:16px;font-weight:800;color:var(--color-text-main)}.settings-section-sub{font-weight:700;color:var(--color-text-main)}.settings-subtext{margin:0;color:var(--color-text-muted);font-size:13px}.input{width:100%;border-radius:14px;border:1px solid var(--color-border-light);padding:12px;font-size:14px;background:var(--color-bg-elevated);outline:none;box-shadow:0 6px 16px #0000000f}.btn{border:none;border-radius:999px;padding:12px;font-weight:700;cursor:pointer;box-shadow:0 6px 16px #00000014}.copy-button,.sync-button{background:var(--color-primary);color:#0f172a}.ghost-button{background:#f87171;border:1px solid #F87171;color:#0f172a;box-shadow:none;width:100%;text-align:center}.ghost-button:hover{filter:brightness(.97)}.divider{height:1px;background:#e2e8f0;margin:6px 0}.theme-inline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.theme-pill{border:1px solid var(--color-border-light);border-radius:12px;padding:10px;background:var(--color-bg-elevated);color:var(--color-text-main);font-weight:700;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,border-color .15s ease}.theme-pill.active{background:var(--color-primary);color:#0f172a;border-color:var(--color-primary);box-shadow:0 6px 14px #0000001a}.sync-inline{display:flex;flex-direction:column;gap:10px;border:1px solid var(--color-border-light);border-radius:16px;background:#ffffffa6;padding:12px;box-shadow:0 6px 14px #0f172a0a}.sync-input-row{display:flex;align-items:stretch;gap:10px}.sync-input-row .input{flex:1 1 auto;min-width:0}.paste-button{border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);padding:10px 14px;min-width:86px;box-shadow:0 6px 14px #0f172a0d}.top-block .sync-button{width:100%;padding:13px 14px}.top-block .copy-button{min-width:132px;flex:0 0 auto}@media (max-width: 560px){.sync-input-row{flex-wrap:wrap}.paste-button{width:100%}}@media (prefers-reduced-motion: reduce){.settings-subpage.slide-in,.settings-subpage.slide-out,.subscription-plan-card{animation-duration:1ms;transition-duration:1ms}.subscription-plan-card.is-active{animation-duration:1ms}}html.dark .sync-inline{border-color:var(--border-dark-subtle);background:#0e192ab8;box-shadow:0 8px 18px #00000038}html.dark .paste-button{border-color:var(--border-dark-subtle);background:#182742;color:var(--text-dark-primary)}html.dark .top-block .copy-button,html.dark .top-block .sync-button{background:#1a3254;color:var(--text-dark-primary);border:1px solid #2a466d;box-shadow:0 8px 16px #0000003d}html.dark .top-block .copy-button:hover,html.dark .top-block .sync-button:hover{background:#1f3b61}.settings-actions{display:flex;flex-direction:row;justify-content:space-between;gap:8px}.settings-actions .action-row-btn{flex:1 1 0}.action-row-btn{border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);padding:12px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer;box-shadow:0 6px 14px #0000000f;transition:transform .1s ease;white-space:nowrap;min-width:140px}.action-row-btn:hover{transform:translateY(-1px)}.memory-helper{margin-top:10px}.memory-clear-button{background:#fee2e2;border-color:#fca5a5;color:#7f1d1d;box-shadow:none}.memory-clear-button:hover{filter:brightness(.98)}.memory-modal-list{margin:12px 0 0;padding-left:18px;color:var(--color-text-muted);font-size:13px}.memory-modal-list li{margin:6px 0}.memory-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.memory-modal-btn{border-radius:999px;padding:10px 14px;font-weight:700;border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);cursor:pointer}.memory-modal-btn.primary{background:#fca5a5;border-color:#f87171;color:#7f1d1d;box-shadow:none}.preference-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.preference-option{border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);padding:12px;border-radius:14px;text-align:left;display:flex;align-items:center;justify-content:flex-start;gap:8px;font-weight:700;cursor:pointer;box-shadow:0 6px 14px #0000000f;transition:transform .1s ease,background .1s ease,border-color .1s ease}.preference-option .preference-icon{margin-right:8px}.preference-option:hover{transform:translateY(-1px)}.preference-option.active{background:var(--color-primary);border-color:var(--color-primary);color:#0f172a;box-shadow:0 8px 18px #a4c1a259}.preference-option:disabled{cursor:not-allowed;opacity:.65;transform:none}.preference-actions{display:flex;justify-content:space-between;gap:12px;margin-top:10px}.preference-actions .btn.btn-primary{background:var(--color-primary);color:#0f172a;border:none}html.dark .preference-actions .btn.btn-primary{background:#b2d1b1;color:#0c1827;border:1px solid #8ab090;box-shadow:0 12px 28px #0000005c}.preference-actions .btn.btn-primary:hover{opacity:.95}html.dark .preference-actions .btn.btn-primary:hover{background:#c1daba;border-color:#9bc29c}.settings-error{margin-top:8px;color:#dc2626;font-weight:700}.goal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.goal-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:16px;border:1px solid var(--color-border-light);background:var(--color-bg-elevated);box-shadow:0 6px 14px #0000000f}.goal-toggle-label{font-weight:700;color:var(--color-text-main);font-size:14px}.settings-switch{position:relative;display:inline-flex;align-items:center;width:44px;height:26px;flex:0 0 auto}.settings-switch input{opacity:0;width:0;height:0}.settings-switch-slider{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;background-color:#cbd5e1;border-radius:999px;transition:background-color .2s ease}.settings-switch-slider:before{content:"";position:absolute;height:20px;width:20px;left:3px;top:3px;background-color:#fff;border-radius:50%;transition:transform .2s ease;box-shadow:0 2px 6px #0003}.settings-switch input:checked+.settings-switch-slider{background-color:#86efac}.settings-switch input:checked+.settings-switch-slider:before{transform:translate(18px)}html.dark .settings-switch-slider{background-color:#475569}html.dark .settings-switch input:checked+.settings-switch-slider{background-color:#86efac}.goal-field{display:flex;flex-direction:column;gap:6px}.goal-field .input{height:40px}.goal-label{font-size:13px;color:var(--color-text-muted);font-weight:600}.goal-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px;align-items:center}.goal-actions>.btn,.goal-actions-right .btn{width:100%}.goal-actions-right{display:contents}.preferences-standalone-page{background:radial-gradient(120% 90% at 100% 0%,rgba(164,193,162,.16),transparent 52%),radial-gradient(80% 60% at 0% 12%,rgba(237,221,196,.34),transparent 58%);min-height:100%}.preferences-standalone-page .page-header{margin-bottom:2px}.preferences-card{position:relative;overflow:hidden;border-radius:26px;padding:18px;background:radial-gradient(130% 100% at 100% 0%,rgba(164,193,162,.14),transparent 52%),linear-gradient(180deg,#fffffffa,#faf9f5f5);border:1px solid rgba(208,198,183,.82);box-shadow:0 16px 38px #0f172a14,inset 0 1px #ffffffdb;display:flex;flex-direction:column;gap:14px}.preferences-card-header,.goals-panel-header{display:flex;flex-direction:column;gap:8px}.preferences-card-label{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#60735f}.preferences-card-title{margin:0;font-family:var(--font-display);font-size:clamp(24px,6vw,31px);line-height:1.04;letter-spacing:-.025em;color:#1d2836}.preferences-card-copy{margin:0;color:#5c6775;font-size:14px;line-height:1.55;max-width:42ch}.preferences-selection-cap{align-self:flex-start;padding:8px 12px;border-radius:999px;background:#a4c1a233;color:#3f5945;font-size:12px;font-weight:700;letter-spacing:.02em}.preferences-standalone-page .preference-list{display:grid;grid-template-columns:1fr;gap:10px;margin-top:2px}.preferences-standalone-page .preference-option{padding:13px;border-radius:18px;border:1px solid rgba(209,198,179,.88);background:#ffffffd1;box-shadow:0 10px 24px #0f172a0d,inset 0 1px #ffffffbf;align-items:center;gap:11px;transition:transform .18s ease,border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.preferences-standalone-page .preference-option:hover{transform:translateY(-2px);border-color:#a4c1a2a8;box-shadow:0 14px 30px #0f172a14,inset 0 1px #ffffffc7}.preferences-standalone-page .preference-option.active{border-color:#7da982d9;background:radial-gradient(130% 100% at 100% 0%,rgba(164,193,162,.28),transparent 52%),linear-gradient(180deg,#e9f4e9fa,#e1eee0f0);color:#183123;box-shadow:0 16px 34px #769a772e,inset 0 1px #fffc}.preferences-standalone-page .preference-option:disabled{opacity:.62;transform:none;box-shadow:none}.preference-option-icon{width:38px;height:38px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 38px;background:linear-gradient(180deg,#f8f6f1f5,#efeae2fa);border:1px solid rgba(206,198,184,.9);color:#506459}.preferences-standalone-page .preference-option.active .preference-option-icon{background:#ffffffb8;border-color:#7da9828c;color:#365340}.preference-option-icon svg,.preferences-btn-icon svg,.preference-option-check svg{width:16px;height:16px;display:block}.preference-option-copy{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;gap:2px}.preference-option-title{font-size:15px;font-weight:800;letter-spacing:-.02em;color:inherit}.preference-option-meta{font-size:11px;font-weight:500;color:#687583}.preferences-standalone-page .preference-option.active .preference-option-meta{color:#49624e}.preference-option-check{width:24px;height:24px;border-radius:999px;flex:0 0 24px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(198,191,177,.9);background:#ffffffc7;color:transparent}.preferences-standalone-page .preference-option.active .preference-option-check{color:#2f5440;border-color:#7da982a8;background:#ffffffe0}.preferences-standalone-page .preference-actions{display:flex;align-items:center;gap:12px;margin-top:2px}.preferences-standalone-page .preference-actions .btn{min-height:50px;padding:12px 18px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:800}.preference-primary-btn{background:linear-gradient(135deg,#a4c1a2,#91b28f);color:#102235;box-shadow:0 12px 24px #6e977438}.preference-secondary-btn{background:#ffffffd6;border:1px solid rgba(207,199,184,.88);color:#465463}.preferences-btn-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;line-height:0}.preferences-btn-icon svg{transform:translateY(-1px)}.preferences-standalone-page .settings-error{margin-top:0;padding:10px 12px;border-radius:14px;background:#f8717124;border:1px solid rgba(248,113,113,.28);color:#991b1b}.goals-panel-toggle{padding:0 0 14px;border-radius:0;border:0;border-bottom:1px solid rgba(209,198,179,.72);background:transparent;box-shadow:none;align-items:flex-start}.goal-toggle-copy{display:flex;flex-direction:column;gap:3px;min-width:0;max-width:360px}.goals-panel .goal-toggle-label{font-size:14px;font-weight:800;color:#243041;letter-spacing:-.01em}.goal-toggle-helper{color:#687583;font-size:12px;line-height:1.4}.goals-panel-toggle .settings-switch{width:50px;height:29px;margin-top:2px}.goals-panel-toggle .settings-switch-slider{background-color:#c7d2de;box-shadow:inset 0 1px #ffffff47}.goals-panel-toggle .settings-switch-slider:before{width:21px;height:21px;left:4px;top:4px}.goals-panel-toggle .settings-switch input:checked+.settings-switch-slider{background-color:#a4c1a2}.goals-panel-toggle .settings-switch input:checked+.settings-switch-slider:before{transform:translate(21px)}.goal-toggle-saving{margin-top:4px;color:#5d6b79;font-size:12px;font-weight:700}.goals-input-grid{gap:12px;padding-top:4px}.goals-field-card{padding:0;gap:6px}.goals-field-card .goal-label{font-size:12px;font-weight:800;color:#677483;letter-spacing:.03em;text-transform:uppercase}.preferences-goal-input{width:100%;height:38px;min-height:38px;border-radius:15px!important;border:1px solid rgba(220,212,198,.9);color:#162737;font-size:18px;font-weight:700;letter-spacing:-.02em;padding:8px 18px}.preferences-goal-input:focus{outline:none;border-color:#6f9f7bcc;box-shadow:0 0 0 3px #a4c1a229,inset 0 1px #fffffff0,inset 0 -1px #dbd0be6b}.goals-actions{display:flex;flex-direction:column;gap:10px;margin-top:6px}.goals-actions>.btn{width:100%;min-height:46px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:800}.goal-actions-right{display:grid;grid-template-columns:1fr 1fr;gap:12px}.preference-tonal-btn{background:#e0ebdfdb;border:1px solid rgba(164,187,161,.6);color:#183123}.preference-save-btn{background:linear-gradient(135deg,#a4c1a2,#91b28f);color:#102235;box-shadow:0 12px 24px #6e977438}.preference-danger-btn{background:linear-gradient(180deg,#f2e1dcf5,#edd8d2f5);color:#6a342b;border:1px solid rgba(211,174,165,.72)}.preferences-standalone-page .btn[aria-busy=true]{cursor:wait}html.dark .preferences-standalone-page{background:radial-gradient(120% 90% at 100% 0%,rgba(121,165,117,.14),transparent 52%),radial-gradient(80% 60% at 0% 12%,rgba(45,63,92,.34),transparent 58%)}html.dark .preferences-card{background:radial-gradient(130% 100% at 100% 0%,rgba(121,165,117,.12),transparent 52%),linear-gradient(180deg,#111e31fa,#0e1828f5);border-color:#475e80b8;box-shadow:0 18px 38px #00000057,inset 0 1px #94a3b814}html.dark .preferences-card-label,html.dark .preferences-selection-cap{color:#a7c8a5}html.dark .preferences-card-title{color:var(--text-dark-primary)}html.dark .preferences-card-copy{color:var(--text-dark-secondary)}html.dark .preferences-selection-cap{background:#79a5752e}html.dark .preferences-standalone-page .preference-option{background:#101d2feb;border-color:#445a7ac7;box-shadow:0 12px 26px #0000003d,inset 0 1px #94a3b80f}html.dark .preferences-standalone-page .preference-option:hover{border-color:#79a57594}html.dark .preferences-standalone-page .preference-option.active{background:radial-gradient(130% 100% at 100% 0%,rgba(121,165,117,.2),transparent 52%),linear-gradient(180deg,#203629fa,#182a21f5);border-color:#79a5759e;color:#eef8ef}html.dark .preference-option-icon{background:#1d2c42f5;border-color:#4f6686c7;color:#b3c5de}html.dark .preferences-standalone-page .preference-option.active .preference-option-icon{background:#ffffff14;border-color:#79a57566;color:#d9eed9}html.dark .preference-option-meta{color:#97aac2}html.dark .preferences-standalone-page .preference-option.active .preference-option-meta{color:#c6ddc8}html.dark .preference-option-check{background:#152338eb;border-color:#4e6688c7}html.dark .preferences-standalone-page .settings-error{background:#7f1d1d57;border-color:#dc262659;color:#fecaca}html.dark .goal-toggle-row{background:transparent;border-color:#445a7aad}html.dark .goals-panel .goal-toggle-label{color:var(--text-dark-primary)}html.dark .goal-toggle-helper{color:var(--text-dark-secondary)}html.dark .goals-panel-toggle .settings-switch-slider{background-color:#46556a}html.dark .goals-panel-toggle .settings-switch input:checked+.settings-switch-slider{background-color:#79a575}html.dark .goal-toggle-saving{color:#9fb0c7}html.dark .goals-field-card .goal-label{color:#98aac2}html.dark .preferences-goal-input{background:linear-gradient(180deg,#1a293dfa,#142132fa);border-color:#465d7edb;color:var(--text-dark-primary);box-shadow:inset 0 1px #94a3b81f,inset 0 -1px #0a132059,0 3px 10px #00000029}html.dark .preferences-goal-input:focus{border-color:#79a575;box-shadow:0 0 0 3px #79a5752e,inset 0 1px #94a3b824,inset 0 -1px #0a132052}html.dark .preference-secondary-btn{background:#121f30f0;border-color:#445a7ac7;color:var(--text-dark-secondary)}html.dark .preference-tonal-btn{background:#21392aeb;border-color:#79a57561;color:#e8f5e8}html.dark .preference-save-btn{background:linear-gradient(135deg,#79a575,#6d9469);color:#0a1521}html.dark .preference-danger-btn{background:linear-gradient(180deg,#522f2bf5,#462623fa);border-color:#9a686085;color:#f3d7d2}@media (max-width: 720px){.preferences-standalone-page .page-title{font-size:22px}.preferences-card{padding:16px}}@media (prefers-reduced-motion: reduce){.preferences-standalone-page .preference-option,.goals-panel-toggle .settings-switch-slider,.preferences-goal-input{transition:none}}.admin-card{border:1px dashed rgba(15,23,42,.2)}.dish-type-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.dish-type-list{display:flex;flex-direction:column;gap:8px}.dish-type-row{border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);padding:12px;border-radius:16px;text-align:left;display:flex;flex-direction:column;gap:6px;cursor:pointer;transition:border-color .15s ease,transform .1s ease}.dish-type-row:hover{transform:translateY(-1px)}.dish-type-row.active{border-color:var(--color-primary);box-shadow:0 8px 18px #00000014}.dish-type-name{font-weight:800;font-family:monospace;font-size:13px}.dish-type-meta{color:var(--color-text-muted);font-size:12px}.dish-type-detail-card{border:1px solid var(--color-border-light);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:12px;background:#f8fafcb3}html.dark .dish-type-detail-card{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle)}.dish-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.dish-type-field{display:flex;flex-direction:column;gap:6px}.dish-type-textarea{resize:vertical}.dish-type-actions{display:flex;justify-content:flex-end}.admin-seed-card,.manual-seed-card{border:1px solid var(--color-border-light);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:10px;background:#f8fafc8c;margin-bottom:14px}html.dark .admin-seed-card,html.dark .manual-seed-card{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle)}.manual-seed-notes{resize:vertical}.canonical-hint{font-size:12px;color:var(--color-text-muted)}.canonical-warning{background:#fbbf2433;border:1px solid rgba(251,191,36,.4);color:#92400e;padding:8px 10px;border-radius:12px;font-size:12px;font-weight:700}.canonical-error{background:#f8717126;border:1px solid rgba(248,113,113,.35);color:#7f1d1d;padding:8px 10px;border-radius:12px;font-size:12px;font-weight:700}.canonical-suggestions{display:flex;flex-direction:column;gap:6px}.canonical-suggestion{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:12px;border:1px solid var(--color-border-light);background:var(--color-bg-elevated);cursor:pointer;text-align:left;font-size:13px}.canonical-suggestion-value{font-family:monospace;font-weight:700}.canonical-suggestion-kind{font-size:11px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px;font-weight:700}.canonical-confirm{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--color-text-main)}.admin-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.admin-cache-list{display:flex;flex-direction:column;gap:8px}.admin-cache-row{border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);padding:12px;border-radius:16px;text-align:left;display:flex;flex-direction:column;gap:6px;cursor:pointer;transition:border-color .15s ease,transform .1s ease}.admin-cache-row:hover{transform:translateY(-1px)}.admin-cache-row.active{border-color:var(--color-primary);box-shadow:0 8px 18px #00000014}.admin-cache-key{font-weight:800;font-family:monospace;font-size:13px}.admin-cache-meta{color:var(--color-text-muted);font-size:12px}.admin-empty{color:var(--color-text-muted);font-size:13px;text-align:center;padding:12px}.admin-error{background:#f8717126;border:1px solid rgba(248,113,113,.35);color:#7f1d1d;padding:10px 12px;border-radius:12px;font-size:13px;font-weight:700}.admin-detail-card{border:1px solid var(--color-border-light);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:12px;background:#f8fafcb3}.admin-detail-header{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.admin-detail-title{font-weight:800;font-size:14px;word-break:break-word}.admin-image-preview{width:100%;border-radius:16px;object-fit:cover;max-height:240px}.admin-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;font-size:12px;color:var(--color-text-muted)}.admin-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.admin-note-label{font-weight:700;color:var(--color-text-main)}.admin-note{min-height:90px;resize:vertical}.settings-shell-card{background:radial-gradient(140% 120% at 100% 0%,rgba(164,193,162,.18),transparent 52%),linear-gradient(180deg,#fffffffa,#fffffff0);border-radius:15px;border:1px solid rgba(206,199,184,.78);box-shadow:0 14px 34px #0f172a14,inset 0 1px #ffffffd1;padding:18px}.settings-account-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 16px}.settings-account-avatar{width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,#88ad92,#b7cfb2);color:#12311b;display:grid;place-items:center;font-weight:800;font-size:16px;overflow:hidden;box-shadow:0 10px 22px #5070592e}.settings-account-avatar img{width:100%;height:100%;object-fit:cover;display:block}.settings-account-avatar--large{width:84px;height:84px;border-radius:15px;font-size:24px}.settings-account-avatar-button{position:relative;border:none;cursor:pointer;padding:0}.settings-account-avatar-button:focus-visible{outline:2px solid rgba(121,165,117,.58);outline-offset:3px}.settings-account-avatar-upload{position:absolute;right:-4px;bottom:-4px;width:28px;height:28px;border-radius:999px;background:#fffffff2;border:1px solid rgba(206,199,184,.92);display:grid;place-items:center;color:#1e293b;box-shadow:0 8px 18px #0f172a1f}.settings-account-avatar-upload svg{width:14px;height:14px}.settings-account-copy,.settings-link-copy,.settings-editor-identity{min-width:0}.settings-account-name,.settings-link-title{color:#172033;font-size:17px;font-weight:800;letter-spacing:-.02em}.settings-account-email,.settings-link-subtitle{display:block;margin-top:2px;color:#556273;font-size:12px;line-height:1.35;overflow-wrap:anywhere}.settings-account-edit{width:42px;height:42px;border-radius:15px;border:0px solid rgba(206,199,184,.82);background:#ffffffeb;color:#1e293b;display:grid;place-items:center;box-shadow:0 8px 18px #0f172a14;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.settings-account-edit svg{width:22px;height:22px}.settings-account-edit:hover{transform:translateY(-1px)}.settings-theme-card{display:flex;flex-direction:column;gap:12px}.settings-main-panel{padding:0;overflow:hidden}.settings-main-panel-section{padding:18px}.settings-main-panel-links{border-top:1px solid rgba(206,199,184,.52)}.settings-segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;background:#f4efe5eb;border:1px solid rgba(206,199,184,.82);border-radius:15px;padding:6px;box-shadow:inset 0 1px #ffffffd9;position:relative;overflow:hidden;--toggle-count: 3;--toggle-index: 0}.settings-segmented:before{content:"";position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px) / var(--toggle-count, 3));border-radius:15px;background:linear-gradient(135deg,#a4c1a2fa,#a4c1a2c7);box-shadow:0 8px 18px #1f2a361f;transform:translate(calc(var(--toggle-index, 0) * 100%));transition:transform .25s ease;z-index:0}.settings-segmented-btn{border:none;background:transparent;padding:12px 10px;border-radius:15px;font-weight:800;color:#52606f;font-size:14px;letter-spacing:-.01em;position:relative;z-index:1;cursor:pointer;transition:color .2s ease}.settings-segmented-btn.active{color:#172033}.settings-segmented-btn:focus-visible,.settings-account-edit:focus-visible,.settings-link-row:focus-visible,.settings-photo-actions .action-row-btn:focus-visible{outline:2px solid rgba(121,165,117,.58);outline-offset:2px}.settings-link-list,.settings-advanced{display:flex;flex-direction:column;gap:12px}.settings-link-list--grouped{gap:0;padding:0;overflow:hidden}.settings-link-row{width:100%;border:0px solid rgba(206,199,184,.72)!important;background:radial-gradient(120% 180% at 100% 0%,rgba(164,193,162,.12),transparent 48%),linear-gradient(180deg,#fffffffa,#ffffffed);color:inherit;border-radius:15px;padding:10px!important;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;text-align:left;cursor:pointer}.settings-link-list--grouped .settings-link-row{border:none;border-radius:0;background:transparent;box-shadow:none;padding:18px 16px;gap:12px}.settings-link-list--grouped .settings-link-row:first-child{border-top-left-radius:0;border-top-right-radius:0}.settings-link-list--grouped .settings-link-row:last-child{border-bottom-left-radius:15px;border-bottom-right-radius:15px}.settings-link-list--grouped .settings-link-row+.settings-link-row{border-top:1px solid rgba(206,199,184,.52)}.settings-link-row:hover{transform:translateY(-1px);box-shadow:0 16px 34px #0f172a17,inset 0 1px #ffffffd9}.settings-link-list--grouped .settings-link-row:hover{transform:none;box-shadow:none;background:#ffffff6b}.settings-link-row--compact{border:none;padding:0;background:transparent;box-shadow:none}.settings-link-row--compact:hover{transform:none;box-shadow:none}.settings-link-icon{width:44px;height:44px;border-radius:15px;background:transparent;border:none;display:grid;place-items:center;color:#213245;flex:0 0 auto}.settings-link-list--grouped .settings-link-icon{width:38px;height:38px;border-radius:15px}.settings-link-list--grouped .settings-link-title{font-size:16px}.settings-link-list--grouped .settings-link-subtitle{margin-top:2px;font-size:12px;line-height:1.35}.settings-link-icon svg,.settings-link-chevron svg{width:20px;height:20px}.settings-link-list--grouped .settings-link-icon svg,.settings-link-list--grouped .settings-link-chevron svg{width:18px;height:18px}.settings-link-chevron{color:#6b7280}.settings-advanced-label{color:#617185;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:2px 2px 0}.settings-meta-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.settings-account-editor-card{display:flex;flex-direction:column;gap:18px}.settings-editor-hero{display:flex;align-items:center;gap:14px}.settings-editor-group{display:flex;flex-direction:column;gap:8px;padding-top:2px}.settings-editor-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.settings-field{display:flex;flex-direction:column;gap:8px}.settings-photo-actions{display:flex;flex-direction:column;gap:6px}.settings-photo-input{display:none}.settings-editor-actions{display:flex;flex-direction:column;gap:10px}.settings-editor-actions--split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.settings-primary-cta,.settings-danger-cta{width:100%}.settings-editor-actions--split .settings-primary-cta,.settings-editor-actions--split .settings-danger-cta{width:100%;min-width:0;padding:11px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.settings-button-icon{display:inline-flex;align-items:center;justify-content:center}.settings-button-icon svg{width:16px;height:16px}.settings-danger-cta{background:#fde7e7;border:1px solid #f3b4b4;color:#9f1f1f;box-shadow:0 8px 18px #b91c1c14;border-radius:18px;padding:13px 16px;font-weight:800;line-height:1.1}.settings-danger-cta:hover{filter:brightness(.98)}.settings-placeholder-card{display:flex;flex-direction:column;gap:10px;min-height:220px;justify-content:center}.settings-placeholder-badge{align-self:flex-start;border-radius:999px;padding:7px 12px;background:#a4c1a238;border:1px solid rgba(164,193,162,.42);color:#284234;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}html.dark .settings-shell-card,html.dark .settings-link-row{background:radial-gradient(140% 120% at 100% 0%,rgba(72,111,82,.22),transparent 52%),linear-gradient(180deg,#16243a,#111d31);border-color:var(--border-dark-subtle);box-shadow:0 18px 36px #00000057,inset 0 1px #94a3b814}html.dark .settings-link-list--grouped .settings-link-row{background:transparent;box-shadow:none}html.dark .settings-main-panel-links{border-top-color:transparent}html.dark .settings-link-list--grouped .settings-link-row+.settings-link-row{border-top-color:#314b70b8}html.dark .settings-link-list--grouped .settings-link-row:hover{background:#17274194}html.dark .settings-account-name,html.dark .settings-link-title,html.dark .settings-section-title,html.dark .settings-section-sub{color:var(--text-dark-primary)}html.dark .settings-account-email,html.dark .settings-link-subtitle,html.dark .settings-advanced-label{color:#9eb1cb}html.dark .settings-link-icon,html.dark .settings-account-edit,html.dark .settings-segmented,html.dark .sync-inline,html.dark .input,html.dark .action-row-btn{background:#172741;border-color:#314b70;color:var(--text-dark-primary)}html.dark .settings-segmented{box-shadow:inset 0 1px #94a3b814}html.dark .settings-link-icon{background:transparent;border-color:transparent}html.dark .settings-account-avatar{background:linear-gradient(135deg,#5f8a67,#8cb497);color:#eff7f0}html.dark .settings-account-avatar-upload{background:#172741;border-color:#314b70;color:var(--text-dark-primary)}html.dark .settings-segmented:before{background:linear-gradient(135deg,#80b07ef2,#609768c7)}html.dark .settings-danger-cta{background:#7f1d1d3d;border-color:#fca5a557;color:#fecaca;box-shadow:0 10px 22px #0003}html.dark .settings-segmented-btn{color:#8ea4c5}html.dark .settings-segmented-btn.active,html.dark .settings-link-chevron,html.dark .settings-account-edit{color:var(--text-dark-primary)}html.dark .settings-placeholder-badge{background:#80b07e29;border-color:#80b07e57;color:#d0e5d1}@media (max-width: 640px){.settings-account-card{padding:13px 14px}.settings-main-panel-section{padding:16px 14px}.settings-link-row{padding:14px;border-radius:15px}.settings-link-list--grouped{padding:0}.settings-link-list--grouped .settings-link-row{padding:16px 14px}.settings-editor-fields{grid-template-columns:1fr}.settings-editor-actions--split{flex-direction:column;align-items:stretch}.settings-editor-actions--split .settings-primary-cta,.settings-editor-actions--split .settings-danger-cta{width:100%}.settings-meta-row{flex-direction:column;align-items:stretch}.settings-photo-actions .action-row-btn,.settings-meta-row .paste-button{width:100%}}.subscription-current-card,.subscription-selection-card{display:flex;flex-direction:column;gap:10px}.subscription-status-grid{display:grid;gap:10px}.subscription-status-item{display:grid;gap:6px}.subscription-status-label{color:#6a7787;font-size:.76rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.subscription-current-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.subscription-current-title{display:inline-flex;align-items:center;gap:8px;min-width:0;color:#172033;font-size:1.03rem;font-weight:800}.subscription-current-price{color:#274f36;font-size:.95rem;font-weight:800;white-space:nowrap}.subscription-premium-pill{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 8px;background:linear-gradient(135deg,#f6df9f,#e7c171);color:#5e430c;border:1px solid rgba(195,155,77,.58);font-size:.7rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;line-height:1}.subscription-usage-block{display:grid;gap:8px;padding:12px 14px;border-radius:14px;border:1px solid rgba(206,199,184,.82);background:radial-gradient(120% 180% at 100% 0%,rgba(164,193,162,.12),transparent 48%),#ffffffdb}.subscription-usage-heading{color:#6a7787;font-size:.76rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.subscription-usage-list{display:grid;gap:0}.subscription-usage-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid rgba(206,199,184,.62)}.subscription-usage-row:first-child{padding-top:0;border-top:0}.subscription-usage-row:last-child{padding-bottom:0}.subscription-usage-label{color:#27364d;font-size:.88rem;font-weight:700;line-height:1.3}.subscription-usage-value{color:#274f36;font-size:.88rem;font-weight:800;text-align:right;white-space:nowrap}.subscription-usage-value--unlimited{color:#5e430c}.subscription-plan-grid{display:grid;gap:10px}.subscription-plan-card{border:1px solid rgba(206,199,184,.78);background:radial-gradient(120% 180% at 100% 0%,rgba(164,193,162,.14),transparent 48%),linear-gradient(180deg,#fffffff5,#ffffffe6);color:inherit;border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:8px;text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;position:relative;overflow:hidden}.subscription-plan-card:hover{border-color:#7a9c77b3}.subscription-plan-card:active{transform:scale(.992)}.subscription-plan-card:after{content:"";position:absolute;top:12px;right:12px;width:12px;height:12px;border-radius:999px;background:transparent;box-shadow:0 0 0 2px #7a9c7770;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease;z-index:2}.subscription-plan-card.is-active{border-color:#538a64f5;background:radial-gradient(130% 170% at 100% 0%,rgba(156,196,151,.3),transparent 48%),linear-gradient(180deg,#fffffffa,#ffffffed);box-shadow:0 14px 28px #0f172a24,0 0 0 2px #79a5753d,0 1px #ffffffe0 inset;transform:translateY(-2px) scale(1.01);animation:plan-card-select-pop .22s cubic-bezier(.22,.8,.2,1)}.subscription-plan-card.is-active:after{transform:scale(1.12);background:#79a575;box-shadow:0 0 0 2px #fffffff2,0 0 0 6px #79a57547}.subscription-plan-card.is-premium{background:radial-gradient(130% 170% at 100% 0%,rgba(244,205,120,.22),transparent 48%),linear-gradient(180deg,#fffffff5,#ffffffe6)}.subscription-plan-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.subscription-plan-title-row{display:inline-flex;align-items:center;gap:8px}.subscription-plan-title{color:#172033;font-size:1rem;font-weight:800}.subscription-plan-price{color:#274f36;font-size:.92rem;font-weight:800;padding-right:34px}.subscription-plan-summary{margin:0;color:#556273;font-size:.86rem;line-height:1.35}.subscription-plan-features{margin:0;padding:0;list-style:none;display:grid;gap:4px}.subscription-plan-features li{position:relative;padding-left:15px;color:#27364d;font-size:.83rem;line-height:1.34}.subscription-plan-features li:before{content:"";position:absolute;left:0;top:.5em;width:6px;height:6px;border-radius:999px;background:#7a9c77e6;transform:translateY(-50%)}.subscription-save-btn{width:100%;margin-top:4px}.subscription-trial-banner{display:grid;gap:6px;padding:12px 14px;border-radius:14px;border:1px solid rgba(206,199,184,.82);background:radial-gradient(120% 180% at 100% 0%,rgba(164,193,162,.18),transparent 48%),#ffffffe6}.subscription-trial-banner-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.subscription-trial-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;background:#79a57529;color:#2e5a3e;font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.subscription-trial-countdown{color:#274f36;font-size:.84rem;font-weight:800}.subscription-trial-date{color:#556273;font-size:.83rem;font-weight:700}.subscription-trial-copy{margin:0;color:#334155;font-size:.86rem;line-height:1.4}.subscription-plan-callout{padding:10px 12px;border-radius:12px;background:linear-gradient(135deg,#f6df9f47,#e7c17124);border:1px solid rgba(195,155,77,.4);color:#5e430c;font-size:.82rem;font-weight:700;line-height:1.35}html.dark .subscription-current-title,html.dark .subscription-plan-title,html.dark .subscription-status-label,html.dark .subscription-usage-heading{color:var(--text-dark-primary)}html.dark .subscription-current-price,html.dark .subscription-plan-price,html.dark .subscription-trial-countdown,html.dark .subscription-usage-value{color:#a9d9a8}html.dark .subscription-usage-block{background:radial-gradient(120% 180% at 100% 0%,rgba(72,111,82,.2),transparent 48%),#11213a;border-color:#304865}html.dark .subscription-usage-row{border-top-color:#385071b8}html.dark .subscription-usage-label{color:color-mix(in srgb,var(--text-dark-primary) 84%,var(--text-dark-secondary) 16%)}html.dark .subscription-usage-value--unlimited{color:#ffe8bf}html.dark .subscription-plan-card{background:radial-gradient(130% 160% at 100% 0%,rgba(58,93,70,.26),transparent 52%),#11213a;border-color:#304865}html.dark .subscription-plan-card.is-active{border-color:#79a575;background:radial-gradient(130% 170% at 100% 0%,rgba(102,156,110,.34),transparent 52%),#13243d;box-shadow:0 14px 24px #0000006b,0 0 0 2px #79a57547,0 1px #ffffff0f inset}html.dark .subscription-plan-card.is-premium{background:radial-gradient(130% 160% at 100% 0%,rgba(177,129,42,.26),transparent 52%),#11213a}html.dark .subscription-premium-pill{background:linear-gradient(135deg,#845b1d,#6e4b14);border-color:#eecf8c66;color:#ffe8bf}html.dark .subscription-plan-card:after{box-shadow:0 0 0 2px #79a57594}html.dark .subscription-plan-card.is-active:after{background:#8ac285;box-shadow:0 0 0 2px #13243d,0 0 0 6px #8ac28552}html.dark .subscription-plan-summary,html.dark .subscription-plan-features li,html.dark .subscription-trial-date,html.dark .subscription-trial-copy{color:color-mix(in srgb,var(--text-dark-primary) 78%,var(--text-dark-secondary) 22%)}html.dark .subscription-trial-banner{background:radial-gradient(120% 180% at 100% 0%,rgba(72,111,82,.24),transparent 48%),#11213a;border-color:#304865}html.dark .subscription-trial-badge{background:#79a5752e;color:#d7edd4}html.dark .subscription-plan-callout{background:linear-gradient(135deg,#845b1d57,#6e4b142e);border-color:#eecf8c47;color:#ffe8bf}.app-content.app-content--auth{--app-content-pad-top: 0px;--app-content-pad-x: 0px;--app-content-pad-bottom: 0px;padding:0;display:flex;flex-direction:column;min-height:100%}.auth-page{--keyboard-scroll-base-padding: 0px;--keyboard-scroll-extra-offset: 28px;--keyboard-scroll-top-margin: 18px;position:relative;width:100%;flex:1;min-height:0;overflow:hidden;padding:0;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;background:radial-gradient(820px 440px at -12% -18%,rgba(164,193,162,.28),transparent 66%),radial-gradient(720px 420px at 110% 112%,rgba(242,180,135,.14),transparent 67%),linear-gradient(180deg,#ffffff8c,#fff0 34%),var(--color-bg, #f0efe5)}.native-ios-shell.keyboard-open .auth-page.keyboard-scroll-container{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.native-ios-shell.keyboard-open .auth-page.keyboard-scroll-container .auth-shell{min-height:calc(100% + var(--keyboard-height, 0px))}.auth-shell{position:relative;z-index:2;width:100%;min-height:100%;display:flex;flex-direction:column;justify-content:flex-end}.auth-shell--background{filter:saturate(.96)}.auth-cover{position:absolute;top:0;left:0;right:0;width:100%;height:clamp(272px,46vh,410px);overflow:hidden;border-radius:24px 24px 0 0;z-index:1}.auth-cover-image{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block;transform:scale(1.08) translateY(-10px);transform-origin:center top}.auth-cover-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,.03) 40%,transparent 70%);pointer-events:none}.auth-cover-title{position:absolute;top:max(18px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:2;margin:0;width:calc(100% - 28px);text-align:center;color:#2f6548;font-family:var(--font-display);font-size:clamp(1.95rem,9vw,2.85rem);font-weight:700;line-height:1.02;letter-spacing:-.02em;text-shadow:0 2px 8px rgba(255,255,255,.55);pointer-events:none}@supports (-webkit-touch-callout: none){@media (max-width: 720px){.auth-cover-title{top:max(0px,calc(env(safe-area-inset-top) - 2px))}}}.auth-panel{width:100%;position:relative;z-index:2;margin-top:auto;background:linear-gradient(180deg,#fffffffa,#fff 38%);border-top:1px solid rgba(225,217,204,.95);border-right:0;border-bottom:0;border-left:0;border-radius:24px 24px 0 0;box-shadow:0 14px 34px #0f172a14,0 1px #ffffffd1 inset;padding:20px;transition:transform .22s ease,opacity .22s ease,box-shadow .22s ease}.auth-panel-header{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.auth-panel-header h1{margin:0;max-width:20ch;color:var(--color-text-main);font-family:var(--font-display);font-size:clamp(2rem,8vw,2.25rem);font-weight:700;line-height:1.02;letter-spacing:-.02em}.auth-panel-header p{margin:0;max-width:42ch;color:color-mix(in srgb,var(--color-text-main) 68%,var(--color-text-muted) 32%);font-size:.98rem;line-height:1.45;letter-spacing:-.005em}.auth-panel-body{display:flex;flex-direction:column;gap:5px}.auth-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;border:1px solid rgba(225,217,204,.95);border-radius:14px;padding:5px;background:#ffffffe0}.auth-mode-btn{border:1px solid transparent;border-radius:10px;min-height:48px;padding:10px 12px;background:transparent;color:color-mix(in srgb,var(--color-text-main) 82%,var(--color-text-muted) 18%);font-family:var(--font-body);font-size:1rem;font-weight:700;letter-spacing:-.01em;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease}.auth-mode-btn.is-active{background:linear-gradient(135deg,#e7f3e4,#dbeed7);border-color:#5d8e6ad1;color:#183326;box-shadow:0 6px 14px #0f172a1f,0 1px #ffffffe6 inset}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-signup-extra{display:grid;gap:12px;max-height:0;opacity:0;transform:translateY(-8px);overflow:hidden;transition:max-height .32s cubic-bezier(.22,1,.36,1),opacity .22s ease,transform .32s ease}.auth-signup-extra.is-open{max-height:176px;opacity:1;transform:translateY(0)}.auth-signup-extra--confirm.is-open{max-height:86px}.auth-field{display:flex;flex-direction:column;gap:7px}.auth-field span{color:var(--color-text-main);font-size:.9rem;font-weight:700;line-height:1.2;letter-spacing:.01em}.auth-field input{width:100%;min-height:48px;border-radius:13px;border:1px solid color-mix(in srgb,var(--color-border-light) 82%,var(--color-text-main) 18%);background:#fff;color:var(--color-text-main);padding:12px 13px;font-size:16px;line-height:1.25;box-shadow:0 1px #ffffffb8 inset;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease}.auth-field input::placeholder{color:color-mix(in srgb,var(--color-text-muted) 82%,white 18%)}.auth-field input:hover{border-color:color-mix(in srgb,var(--color-border-light) 56%,var(--color-text-main) 44%)}.auth-field input:focus{outline:none;border-color:#6f9f7bdb;box-shadow:0 0 0 3px #a4c1a23d,0 1px #fffc inset}.auth-field input:disabled{background:color-mix(in srgb,#ffffff 78%,var(--color-bg) 22%);opacity:.82}.auth-field input:-webkit-autofill,.auth-field input:-webkit-autofill:hover,.auth-field input:-webkit-autofill:focus{-webkit-text-fill-color:var(--color-text-main);-webkit-box-shadow:0 0 0px 1000px #ffffff inset;transition:background-color 600000s 0s}.auth-error,.auth-notice{border-radius:12px;border:1px solid;padding:11px 12px;font-size:.9rem;font-weight:600;line-height:1.35}.auth-error{color:#7f1d1d;background:#fef2f2;border-color:#fecaca}.auth-notice{color:#14532d;background:#ecfdf3;border-color:#bbf7d0}.auth-actions{margin-top:6px}.auth-submit{width:100%;border:1px solid rgba(122,156,119,.54);border-radius:999px;min-height:52px;padding:13px 16px;background:linear-gradient(135deg,#9fbc9c,#8db58a);color:#10213a;font-family:var(--font-body);font-size:1.03rem;font-weight:800;letter-spacing:.002em;cursor:pointer;box-shadow:0 8px 18px #3f5c4338,0 1px #ffffff4d inset;transition:transform .12s ease,filter .12s ease,box-shadow .12s ease}.auth-submit:hover{filter:brightness(.99);box-shadow:0 10px 20px #3f5c433d,0 1px #ffffff5c inset}.auth-submit:active{transform:translateY(1px)}.auth-submit:disabled{opacity:.74;cursor:not-allowed;box-shadow:none}.auth-plan-continue{display:inline-flex;align-items:center;justify-content:center;gap:8px}.auth-plan-continue-icon{display:inline-flex;align-items:center;justify-content:center;color:#5e430c;transition:color .15s ease;margin-left:2px}.auth-plan-continue--premium{border-color:#c39b4db8;background:linear-gradient(135deg,#f6df9f,#e7c171);color:#5e430c;box-shadow:0 10px 20px #8f69263d,0 1px #ffffff70 inset}.auth-plan-continue--premium:hover{box-shadow:0 12px 22px #8f692647,0 1px #ffffff7a inset}.auth-divider{display:flex;align-items:center;justify-content:center;margin-top:4px;color:color-mix(in srgb,var(--color-text-main) 52%,var(--color-text-muted) 48%);font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:color-mix(in srgb,var(--color-border-light) 78%,var(--color-text-main) 22%)}.auth-divider span{padding:0 10px}.auth-social-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.auth-social-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:12px;border:1px solid color-mix(in srgb,var(--color-border-light) 80%,var(--color-text-main) 20%);background:#fff;color:var(--color-text-main);font-family:var(--font-body);font-size:.92rem;font-weight:700;letter-spacing:-.01em;padding:10px 12px;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,transform .12s ease}.auth-social-icon{width:18px;height:18px;flex:0 0 18px;display:block}.auth-social-icon--apple{object-fit:contain}.auth-social-btn:hover{border-color:color-mix(in srgb,var(--color-border-light) 48%,var(--color-text-main) 52%);background:color-mix(in srgb,#ffffff 88%,var(--color-bg) 12%)}.auth-social-btn:active{transform:translateY(1px)}.auth-social-btn:disabled{opacity:.72;cursor:not-allowed}.auth-footer{display:flex;justify-content:center}.auth-reset{border:none;background:transparent;color:color-mix(in srgb,var(--color-text-main) 56%,var(--color-text-muted) 44%);font-family:var(--font-body);font-size:.98rem;font-weight:600;cursor:pointer;padding:4px 6px;text-decoration:none}.auth-reset:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.4px}.auth-mode-btn:focus-visible,.auth-submit:focus-visible,.auth-social-btn:focus-visible,.auth-reset:focus-visible,.auth-field input:focus-visible{outline:2px solid rgba(111,159,123,.95);outline-offset:2px}.auth-plan-panel{display:flex;flex-direction:column;gap:14px}.auth-page--sheet-open{overflow:hidden}.auth-page--sheet-open .auth-shell--background .auth-panel{transform:scale(.985);opacity:.9}.auth-page--sheet-open .auth-shell--background .auth-panel-body,.auth-page--sheet-open .auth-shell--background .auth-panel-header{pointer-events:none}.auth-plan-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;display:flex;align-items:flex-end;justify-content:stretch;pointer-events:none;opacity:0;transition:opacity .5s ease}.auth-plan-overlay-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0f172a14,#0f172a33);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto;opacity:0;transition:opacity .5s ease}.auth-plan-sheet{position:relative;width:100%;min-height:min(72dvh,760px);max-height:min(88dvh,820px);pointer-events:auto;transform:translateY(100%);transition:transform .5s cubic-bezier(.22,1,.36,1)}.auth-plan-overlay.is-active,.auth-plan-overlay.is-active .auth-plan-overlay-backdrop{opacity:1}.auth-plan-overlay.is-active .auth-plan-sheet{transform:translateY(0)}.auth-plan-overlay.is-closing .auth-plan-sheet{transition-duration:.5s}.auth-plan-panel--sheet{min-height:min(72dvh,760px);max-height:min(88dvh,820px);overflow-y:auto;overscroll-behavior:contain;border-top:1px solid rgba(225,217,204,.95);border-right:0;border-bottom:0;border-left:0;border-radius:26px 26px 0 0;box-shadow:0 -8px 24px #0f172a14,0 -1px #ffffffb3 inset}.auth-plan-topbar{display:flex;align-items:center;justify-content:flex-start}.auth-panel-header--sheet{gap:12px}.auth-plan-back{padding:0;color:var(--color-text-main)}.auth-plan-back:disabled{opacity:.64;cursor:not-allowed}.auth-plan-back-label{font-size:.88rem;font-weight:700;color:color-mix(in srgb,var(--color-text-main) 76%,var(--color-text-muted) 24%)}.auth-plan-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.auth-plan-header-row--sheet{align-items:center}.auth-plan-sheet-close{width:32px;height:32px;border:1px solid rgba(225,217,204,.95);border-radius:999px;background:#ffffffe6;color:var(--color-text-main);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;box-shadow:0 4px 10px #0f172a14;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.auth-plan-sheet-close:hover{border-color:#7a9c778f;box-shadow:0 10px 18px #0f172a1a}.auth-plan-sheet-close:active{transform:translateY(1px)}.auth-plan-sheet-close:disabled{opacity:.64;cursor:not-allowed;box-shadow:none}.auth-plan-grid{display:grid;gap:10px}.auth-plan-card{border:1px solid rgba(225,217,204,.95);background:#ffffffe6;border-radius:14px;padding:14px;text-align:left;color:var(--color-text-main);display:flex;flex-direction:column;gap:8px;cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease;position:relative;overflow:hidden}.auth-plan-card:hover{border-color:#7a9c779e;box-shadow:0 8px 18px #0f172a14}.auth-plan-card:active{transform:scale(.992)}.auth-plan-card:after{content:"";position:absolute;top:12px;right:12px;width:12px;height:12px;border-radius:999px;background:transparent;box-shadow:0 0 0 2px #7a9c7770;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease;z-index:2}.auth-plan-card.is-active{border-color:#538a64f5;background:radial-gradient(130% 160% at 100% 0%,rgba(156,196,151,.3),transparent 48%),#fffffff5;box-shadow:0 14px 28px #0f172a24,0 0 0 2px #79a5753d,0 1px #ffffffeb inset;transform:translateY(-2px) scale(1.01);animation:plan-card-select-pop .22s cubic-bezier(.22,.8,.2,1)}.auth-plan-card.is-active:after{transform:scale(1.12);background:#79a575;box-shadow:0 0 0 2px #fffffff2,0 0 0 6px #79a57547}.auth-plan-card.is-premium{background:radial-gradient(130% 170% at 100% 0%,rgba(244,205,120,.2),transparent 48%),#ffffffeb}.auth-plan-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.auth-plan-card-title-row{display:inline-flex;align-items:center;gap:8px;min-width:0}.auth-plan-card-title{font-size:1rem;font-weight:800;letter-spacing:-.01em}.auth-plan-card-price{font-size:.94rem;font-weight:800;color:#274f36;padding-right:20px}.auth-plan-card-summary{margin:0;font-size:.88rem;color:color-mix(in srgb,var(--color-text-main) 72%,var(--color-text-muted) 28%);line-height:1.35}.auth-plan-feature-list{margin:0;padding:0;list-style:none;display:grid;gap:4px}.auth-plan-feature-list li{position:relative;padding-left:15px;font-size:.84rem;line-height:1.35;color:color-mix(in srgb,var(--color-text-main) 84%,var(--color-text-muted) 16%)}.auth-plan-feature-list li:before{content:"";position:absolute;left:0;top:.5em;width:6px;height:6px;border-radius:999px;background:#7a9c77e6;transform:translateY(-50%)}.auth-plan-badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 8px;background:linear-gradient(135deg,#f6df9f,#e7c171);color:#5e430c;border:1px solid rgba(195,155,77,.58);font-size:.7rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;line-height:1}.auth-plan-note{margin:-4px 0 0;text-align:center;font-size:.82rem;color:color-mix(in srgb,var(--color-text-main) 58%,var(--color-text-muted) 42%)}@keyframes plan-card-select-pop{0%{transform:translateY(0) scale(.985)}60%{transform:translateY(-2px) scale(1.014)}to{transform:translateY(-2px) scale(1.01)}}@media (min-width: 420px){.auth-page{padding-top:0}.auth-cover{height:clamp(300px,46vh,450px)}.auth-cover-title{width:calc(100% - 36px)}.auth-panel{padding:22px}}@media (min-width: 900px){.auth-page{padding:20px 24px 36px;align-items:center;justify-content:center}.auth-shell{width:min(100%,580px)}.auth-cover{border-radius:28px 28px 0 0;height:368px}.auth-cover-title{top:16px;width:calc(100% - 44px)}.auth-panel{border:1px solid rgba(225,217,204,.95);border-radius:0 0 28px 28px;padding:28px}}@media (prefers-reduced-motion: reduce){.auth-mode-btn,.auth-field input,.auth-submit,.auth-plan-card,.auth-signup-extra{transition-duration:1ms}.auth-plan-card.is-active{animation-duration:1ms}.auth-plan-sheet,.auth-plan-overlay-backdrop{transition-duration:1ms}}html.dark .auth-page{background:radial-gradient(900px 460px at -12% -18%,rgba(121,165,117,.2),transparent 68%),radial-gradient(760px 450px at 112% 112%,rgba(84,106,138,.2),transparent 70%),linear-gradient(180deg,#1521379e,#15213700 36%),var(--bg-dark-page)}html.dark .auth-cover-scrim{background:linear-gradient(180deg,rgba(4,9,16,.46) 0%,rgba(4,9,16,.16) 44%,transparent 74%)}html.dark .auth-cover-title{color:#e9f6ee;text-shadow:0 6px 14px rgba(0,0,0,.44)}html.dark .auth-panel{background:linear-gradient(180deg,#111d32,#0f1a2c 52%);border-color:color-mix(in srgb,var(--border-dark-subtle) 84%,#40608a 16%);box-shadow:0 18px 42px #00000080,0 1px #ffffff0a inset}html.dark .auth-panel-header h1,html.dark .auth-field span,html.dark .auth-mode-btn{color:var(--text-dark-primary)}html.dark .auth-panel-header p,html.dark .auth-reset{color:color-mix(in srgb,var(--text-dark-primary) 42%,var(--text-dark-secondary) 58%)}html.dark .auth-mode-switch{background:#11213a;border-color:#2b3f5b}html.dark .auth-mode-btn.is-active{background:linear-gradient(135deg,#1f3b2e,#254635);border-color:#90cca0d9;color:#f1fff3;box-shadow:0 7px 16px #0000006b}html.dark .auth-plan-card{background:#11213a;border-color:#304865;color:var(--text-dark-primary)}html.dark .auth-plan-back{color:var(--text-dark-primary)}html.dark .auth-plan-overlay-backdrop{background:linear-gradient(180deg,#0409103d,#0409106b)}html.dark .auth-plan-back-label{color:color-mix(in srgb,var(--text-dark-primary) 74%,var(--text-dark-secondary) 26%)}html.dark .auth-plan-sheet-close{background:#13253f;border-color:#385171;color:var(--text-dark-primary);box-shadow:0 8px 18px #00000047}html.dark .auth-plan-card.is-active{border-color:#79a575;background:radial-gradient(130% 170% at 100% 0%,rgba(102,156,110,.34),transparent 48%),#13243d;box-shadow:0 14px 24px #0000006b,0 0 0 2px #79a57547,0 1px #ffffff0f inset}html.dark .auth-plan-card.is-premium{background:radial-gradient(130% 170% at 100% 0%,rgba(177,129,42,.26),transparent 48%),#11213a}html.dark .auth-plan-card-price{color:#a9d9a8}html.dark .auth-plan-card-summary{color:color-mix(in srgb,var(--text-dark-primary) 52%,var(--text-dark-secondary) 48%)}html.dark .auth-plan-feature-list li{color:color-mix(in srgb,var(--text-dark-primary) 84%,var(--text-dark-secondary) 16%)}html.dark .auth-plan-feature-list li:before{background:#79a575}html.dark .auth-plan-badge{background:linear-gradient(135deg,#845b1d,#6e4b14);border-color:#eecf8c66;color:#ffe8bf}html.dark .auth-plan-card:after{box-shadow:0 0 0 2px #79a57594}html.dark .auth-plan-card.is-active:after{background:#8ac285;box-shadow:0 0 0 2px #13243d,0 0 0 6px #8ac28552}html.dark .auth-plan-note{color:color-mix(in srgb,var(--text-dark-primary) 40%,var(--text-dark-secondary) 60%)}html.dark .auth-divider{color:color-mix(in srgb,var(--text-dark-primary) 34%,var(--text-dark-secondary) 66%)}html.dark .auth-divider:before,html.dark .auth-divider:after{background:color-mix(in srgb,var(--border-dark-subtle) 68%,var(--text-dark-secondary) 32%)}html.dark .auth-social-btn{background:#13253f;border-color:#385171;color:var(--text-dark-primary)}html.dark .auth-social-btn:hover{background:#162c4b;border-color:#4a6488}html.dark .auth-social-btn--apple .auth-social-icon--apple{filter:invert(1)}html.dark .auth-field input{color:var(--text-dark-primary);background:#12233b;border-color:#385071;box-shadow:0 1px #ffffff08 inset}html.dark .auth-field input::placeholder{color:color-mix(in srgb,var(--text-dark-secondary) 82%,#d6e2f2 18%)}html.dark .auth-field input:hover{border-color:#4a6488}html.dark .auth-field input:focus{border-color:#79a575;box-shadow:0 0 0 3px #79a5753d,0 1px #ffffff0d inset}html.dark .auth-submit{color:#081526;border-color:#84b87e9e;background:linear-gradient(135deg,#7dab79,#6e976a);box-shadow:0 8px 18px #08122261,0 1px #ffffff1a inset}html.dark .auth-submit:hover{box-shadow:0 10px 20px #0812226b,0 1px #ffffff1f inset}html.dark .auth-plan-continue-icon{color:#ffe8bf}html.dark .auth-plan-continue--premium{border-color:#eecf8c80;background:linear-gradient(135deg,#b17f2a,#94681f);color:#ffe8bf;box-shadow:0 12px 24px #0006,0 1px #ffffff1f inset}html.dark .auth-error{color:#fecaca;background:#7f1d1d57;border-color:#f8717180}html.dark .auth-notice{color:#bbf7d0;background:#14532d59;border-color:#4ade8070}.recipe-card{width:100%;height:104px;min-height:104px;background:#fff;border-radius:18px;border:none;padding:12px;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:0;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease;position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.recipe-card:hover{transform:translateY(-2px);box-shadow:0 8px 18px #00000014}.recipe-card:active{transform:scale(.99)}.recipe-card.recipe-card--context-open{transform:translateY(-2px);box-shadow:0 22px 40px #1f2a362e,0 0 0 1px #a4c1a275}html.dark .recipe-card{background:var(--bg-dark-surface);box-shadow:0 18px 36px #00000073}html.dark .recipe-card.recipe-card--context-open{box-shadow:0 26px 48px #00000080,0 0 0 1px #81b58e7a}html.dark .recipe-title{color:var(--text-dark-primary)}html.dark .recipe-sub,html.dark .recipe-time-icon{color:var(--text-dark-secondary)}html.dark .recipe-tag{background:#2ec77d2e;color:var(--text-dark-primary)}.recipe-card-main{display:flex;flex-direction:row;align-items:center;column-gap:12px;flex:1;height:100%}.recipe-card--with-image .recipe-card-main{flex:1;min-width:0}.recipe-thumb{width:80px;height:80px;min-width:80px;aspect-ratio:1 / 1;flex-shrink:0;border-radius:12px;overflow:hidden;border:none;background:var(--color-bg-elevated)}.recipe-thumb-image{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .35s ease;border-radius:inherit;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}.recipe-thumb-image.is-loaded{opacity:1}.recipe-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#94a3b81f;border-radius:inherit}.recipe-thumb-emoji{font-size:32px}.recipe-card .recipe-emoji{width:80px;height:80px;min-width:80px;aspect-ratio:1 / 1;border-radius:12px;font-size:36px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ffffffe6,#f2b48740)}.recipe-card .recipe-icon-wrap{width:80px;height:80px;min-width:80px;aspect-ratio:1 / 1;border-radius:12px;padding:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ffffffe6,#f2b48740)}.recipe-card .recipe-icon-image{width:100%;height:100%;object-fit:cover;border-radius:12px}.recipe-text{display:flex;flex-direction:column;gap:6px;padding:0 28px 0 0;justify-content:center;overflow:hidden;min-width:0}.recipe-card--with-image .recipe-text{min-width:0}.recipe-title{font-weight:700;color:#1e293b;font-size:16px;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.recipe-sub{color:var(--color-text-muted);font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px;white-space:nowrap}.recipe-time-icon{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;color:var(--color-text-muted)}.recipe-time-icon svg{width:12px;height:12px}.recipe-type-badge{display:inline-flex;align-items:center;margin-left:8px;padding:2px 8px;border-radius:999px;background:#fde68a;color:#1f2937;font-size:11px;font-weight:800;letter-spacing:.2px;text-transform:uppercase}.recipe-card--with-image .recipe-title{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2}.recipe-title-emoji{margin-right:6px}.recipe-serves{font-size:.85rem;color:var(--color-text-muted);font-weight:600}.recipe-image-status{font-size:.75rem;color:var(--color-text-muted)}.recipe-meta{margin-top:4px;font-size:.8rem;display:flex;align-items:center;gap:4px;color:#64748b}.recipe-meta-item{white-space:nowrap}.recipe-meta-separator{opacity:.7}.recipe-meta-quick{font-weight:700;color:#6b7280}.recipe-time{color:#475569;font-size:13px}.recipe-last-cooked{font-size:.8rem;color:#64748b}.recipe-tags{display:flex;gap:6px;flex-wrap:wrap;row-gap:6px;max-height:32px;overflow:hidden}.recipe-tag{background:#a5c1a32e;color:#2a3a2f;border-radius:999px;padding:4px 10px;font-weight:700;font-size:12px;border:none;box-shadow:none;white-space:nowrap}.recipe-tag.extra{background:#e2e8f0e6;color:#1f2937;border:none}.recipe-chevron{font-size:20px;color:#94a3b8;display:none}.fav-btn{display:none}.fav-btn .fav-icon svg{width:20px;height:20px;display:block}.fav-btn--active{color:#fbbf24;transform:scale(1.1)}.fade-in{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.categories-page{min-height:100%;padding:18px 16px calc(26px + env(safe-area-inset-bottom));background:var(--color-bg);display:flex;flex-direction:column;gap:14px}.categories-top{display:flex;align-items:center;gap:12px;justify-content:space-between}.categories-heading{display:flex;flex-direction:column;gap:4px}.categories-heading h1{margin:0;font-size:24px;letter-spacing:-.02em;color:#1e293b}.categories-heading p{margin:0;color:#475569;font-size:14px}.back-chip{border:none;background:transparent;color:#1e293b;border-radius:999px;padding:0;display:inline-flex;align-items:center;cursor:pointer;box-shadow:none;transition:transform .14s ease}.back-chip:hover{transform:translateY(-1px)}.back-chip:active{transform:translateY(0);background:transparent}.category-list{display:flex;flex-direction:column;gap:12px;margin-top:8px}.category-card,.subcategory-card{width:100%;border:1px solid #dbe7dc;border-left:6px solid var(--color-primary);border-radius:18px;background:#fff;padding:14px 14px 14px 16px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 12px 28px #0f172a0f;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease}.subcategory-card{padding:12px 14px}.category-card:hover,.subcategory-card:hover{transform:translateY(-2px);box-shadow:0 18px 36px #0f172a14;border-color:var(--color-primary)}.category-card:active,.subcategory-card:active{transform:translateY(0);background:#ffeedab3}.category-card-left{display:flex;align-items:center;gap:12px}.category-icon,.subcategory-icon{width:40px;height:40px;border-radius:12px;background:#f3fbf6;border:1px solid #cdecd7;display:inline-flex;align-items:center;justify-content:center;font-size:18px}.subcategory-icon{width:34px;height:34px}.category-label{font-size:16px;font-weight:700;color:#1e293b}.subcategory-label{font-size:15px;font-weight:600;color:#1e293b}.category-chevron{color:#94a3b8;font-size:18px;font-weight:700}.categories-page .subheader{font-size:15px;color:#475569;margin:0}.recipes-placeholder{display:flex;flex-direction:column;gap:12px}.recipe-list{display:flex;flex-direction:column;gap:10px}.empty-note{padding:16px;border-radius:16px;background:#f5f1e8;border:1px dashed #e2e8f0;color:#475569;text-align:center;line-height:1.4}.recipe-placeholder-card{width:100%;background:var(--color-secondary);border:1px solid #e2e8f0;border-left:6px solid var(--color-primary);border-radius:18px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:0 12px 28px #0f172a0d}.recipe-placeholder-main{display:flex;align-items:center;gap:12px}.recipe-placeholder-emoji{font-size:34px}.recipe-placeholder-text{display:flex;flex-direction:column;gap:6px}.recipe-placeholder-title{font-weight:700;font-size:16px;color:#1e293b}.recipe-placeholder-time{font-size:13px;color:#475569}.recipe-placeholder-tags{display:flex;flex-wrap:wrap;gap:6px}.recipe-placeholder-tag{background:#c084fc;color:#1f2937;border-radius:12px;padding:4px 9px;font-size:12px;font-weight:700;box-shadow:0 6px 14px #c084fc38}.recipe-placeholder-chevron{color:#c084fc;font-size:18px;font-weight:700}.card-grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 640px){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.view-shell{background:#ffffffbf;border:1px solid #e2e8f0;border-radius:20px;padding:14px 12px;box-shadow:inset 0 1px #fff9,0 8px 22px #0f172a0d}.categories-page .fade-in{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}.folder-page{background:#faf8f3;padding:16px;display:flex;flex-direction:column;gap:12px}.folder-header{display:flex;align-items:center;justify-content:space-between}.folder-title{font-weight:700;font-size:20px;color:#1e293b}.folder-card{background:#fff;border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 12px 30px #0f172a14;padding:14px}.folder-list{display:flex;flex-direction:column;gap:10px}.folder-row{width:100%;border:1px solid #e2e8f0;background:#faf8f3;border-radius:16px;padding:12px;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer;gap:10px;transition:transform .1s ease,box-shadow .1s ease}.folder-row:hover{transform:translateY(-1px);box-shadow:0 10px 22px #0f172a14}.folder-row-main{display:flex;flex-direction:column;gap:4px}.folder-row-name{font-weight:700;color:#1e293b}.folder-row-sub{color:#475569;font-size:13px}.folder-row-delete{border:none;background:#fff1f2;color:#b91c1c;border-radius:12px;padding:8px 10px;cursor:pointer;box-shadow:0 6px 14px #b91c1c26}.form-stack{display:flex;flex-direction:column;gap:12px;margin-top:6px}.form-label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:#1e293b;font-size:14px}.input.select{background:#fff}.folder-actions{display:flex;flex-direction:column;gap:8px;margin-top:12px}.btn.danger{color:#b91c1c;border-color:#fecdd3;background:#fff1f2;box-shadow:none}.empty-note{text-align:center;color:#475569;padding:16px 10px;border-radius:14px;background:#f5f1e8;border:1px dashed #e2e8f0}.import-recipe-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;padding:0;background:transparent;display:flex;align-items:flex-end;justify-content:center}.import-content{position:relative;z-index:1;width:100%;display:flex;flex-direction:column;gap:0;min-height:100%;justify-content:flex-end}.import-back-btn{align-self:flex-start}html.import-open,body.import-open,.app-root.import-open{overflow:hidden}.import-shell{padding:16px;border-radius:28px 28px 0 0;background:linear-gradient(180deg,#fffffffa,#ffffffe6);border:1px solid var(--color-border-light);border-bottom:none;box-shadow:0 20px 42px #1f2a361f;display:flex;flex-direction:column;gap:14px;width:100%;max-height:calc(var(--vv-height, 100vh) - env(safe-area-inset-top,0px));overflow:hidden;touch-action:none;will-change:transform;height:auto}.import-shell-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.import-title{font-family:var(--font-display);font-size:1.6rem;margin:0;color:var(--color-text-main);letter-spacing:-.02em;font-weight:600}.import-header{display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:100%}.import-header-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;width:100%}.import-toggle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;background:#f4efe5e6;border:1px solid var(--color-border-light);border-radius:14px;padding:8px;box-shadow:inset 0 1px #fffc;position:relative;overflow:hidden;--toggle-count: 3;--toggle-index: 0}.import-toggle:before{content:"";position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px) / var(--toggle-count, 3));border-radius:10px;background:linear-gradient(135deg,#a4c1a2f2,#a4c1a2bf);box-shadow:0 8px 18px #1f2a361f;transform:translate(calc(var(--toggle-index, 0) * 100%));transition:transform .25s ease;z-index:0}.import-toggle-btn{border:none;background:transparent;padding:10px 12px;border-radius:10px;font-weight:700;cursor:pointer;color:#4b5563;font-size:.85rem;letter-spacing:-.01em;text-align:center;position:relative;z-index:1;transition:color .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px}.import-toggle-btn.active{color:#1f2937}.import-toggle-icon{display:inline-flex;align-items:center;justify-content:center}.import-toggle-btn:focus-visible{outline:2px solid rgba(164,193,162,.6);outline-offset:2px}.import-textarea,.import-url-input{width:100%;padding:14px 16px;border-radius:16px;border:1px solid var(--color-border-light);font-size:1rem;background:#fff;resize:vertical;color:var(--color-text-main);box-shadow:inset 0 1px #ffffffb3;transition:border-color .2s ease,box-shadow .2s ease}.import-textarea{height:260px;min-height:300px}.import-textarea:focus,.import-url-input:focus{outline:none;border-color:#a4c1a2e6;box-shadow:0 0 0 3px #a4c1a240}.import-helper{margin-top:0;color:var(--color-text-muted);font-size:.9rem;background:#a4c1a21f;border:1px dashed rgba(164,193,162,.4);border-radius:12px;padding:10px 12px}.import-paste-btn{align-self:flex-end;margin-top:6px;padding:8px 12px;border-radius:10px;border:1px solid var(--color-border-light);background:#fff;color:#1f2937;font-weight:700;cursor:pointer;box-shadow:0 8px 18px #1f2a3614;transition:transform .15s ease,box-shadow .15s ease}.import-paste-btn{display:inline-flex;align-items:center;gap:8px}.import-paste-icon{display:inline-flex;align-items:center;justify-content:center}.import-sheet-handle{width:80px;height:10px;border-radius:999px;background:#0000001f;align-self:center;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;margin-top:3px}.import-shell.slide-up{animation:slideUpImport .7s cubic-bezier(.22,.7,.2,1) both}.import-shell.slide-down{animation:slideDownImport .7s cubic-bezier(.22,.7,.2,1) both}.import-paste-btn:hover{transform:translateY(-1px);box-shadow:0 12px 24px #1f2a361f}.import-paste-btn:active{transform:translateY(1px)}.import-paste-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.import-btn{margin-top:2px;padding:12px 14px;width:100%;background:linear-gradient(135deg,var(--color-primary),rgba(164,193,162,.8));color:#0f172a;border-radius:14px;font-weight:700;border:none;cursor:pointer;box-shadow:0 14px 26px #6f9f7b40;transition:transform .15s ease,box-shadow .15s ease}.import-btn:hover{transform:translateY(-1px);box-shadow:0 18px 34px #6f9f7b47}.import-btn:active{transform:translateY(1px)}.import-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.import-image-shell{display:flex;flex-direction:column;gap:12px;padding:12px;border-radius:16px;border:1px dashed var(--color-border-light);background:#ffffffb3}.import-cover-placeholder{width:100%;min-height:140px;border-radius:16px;border:1px dashed #cbd5f5;background:#e2e8f0;color:#64748b;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:700;text-align:center;padding:12px;cursor:pointer}.import-cover-placeholder svg{width:24px;height:24px}.import-cover-placeholder:disabled{opacity:.6;cursor:not-allowed}.import-cover-preview{width:100%;max-width:320px;height:150px;object-fit:cover;border-radius:16px;border:1px solid #e2e8f0;display:block}.import-image-btn{border:1px solid var(--color-border-light);background:#fff;color:#1f2937;border-radius:12px;padding:10px 12px;font-weight:700;cursor:pointer;width:100%;text-align:center;transition:transform .15s ease,box-shadow .15s ease}.import-image-btn:hover{transform:translateY(-1px);box-shadow:0 12px 24px #1f2a361f}.import-image-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.import-image-preview{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.import-image-preview img{width:96px;height:96px;border-radius:12px;object-fit:cover;border:1px solid var(--color-border-light);background:#fff}.import-image-remove{border:1px solid var(--color-border-light);background:#fff;color:#1f2937;border-radius:12px;padding:8px 12px;font-weight:700;cursor:pointer}.error-box{margin-top:0;padding:10px 12px;background:#fee2e2;color:#991b1b;border-radius:10px;border:1px solid #fca5a5}html.dark .import-recipe-page{background:#00000059;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}html.dark .import-shell{background:linear-gradient(180deg,#16243cf2,#10192dfa);border-color:var(--border-dark-subtle);box-shadow:var(--shadow-dark-elevated)}html.dark .import-toggle{background:#10192de6;border-color:var(--border-dark-strong)}html.dark .import-toggle:before{background:linear-gradient(135deg,#9fc4a0f2,#9fc4a0cc);box-shadow:0 10px 24px #0006}html.dark .import-toggle-btn{color:var(--text-dark-secondary)}html.dark .import-toggle-btn.active{color:var(--text-dark-primary)}html.dark .import-textarea,html.dark .import-url-input{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary);box-shadow:none}html.dark .import-helper{color:var(--text-dark-secondary);background:#10192da6;border-color:var(--border-dark-subtle)}html.dark .import-paste-btn{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary);box-shadow:0 10px 22px #00000059}@media (max-width: 520px){.import-header-actions{flex-direction:column;align-items:flex-start;width:100%}}html.dark .import-btn{color:#0b1221}html.dark .import-image-shell{background:#10192d99;border-color:var(--border-dark-subtle)}html.dark .import-image-btn,html.dark .import-image-remove{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .import-cover-placeholder{background:#10192db3;border-color:var(--border-dark-subtle);color:var(--text-dark-secondary)}html.dark .import-cover-preview,html.dark .import-image-preview img{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle)}@keyframes slideUpImport{0%{transform:translateY(100%);opacity:.96}to{transform:translateY(0);opacity:1}}@keyframes slideDownImport{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:.96}}@media (min-width: 720px){.import-toggle{max-width:420px}}@media (max-width: 520px){.import-shell{padding:14px}.import-title{font-size:1.45rem}.import-toggle-btn{flex:1 1 100px;padding:9px 8px}}.grocery-page{height:100%;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 16px 32px;--grocery-check-fill: #8fbe9a;--grocery-check-bg: rgba(169, 204, 153, .25);--grocery-check-border: #9aa3af;--grocery-check-focus: rgba(106, 150, 123, .35);--grocery-mode-pill-bg: rgba(143, 190, 154, .18);--grocery-mode-pill-text: #2f4f3a;--grocery-mode-toggle-bg: #ffffff;--grocery-mode-toggle-border: #e2e8f0}.grocery-page h1{margin-top:0;font-family:var(--font-display)}.grocery-page::-webkit-scrollbar{width:0;height:0}.grocery-actions-sticky{position:sticky;top:45px;z-index:20;display:flex;justify-content:flex-end;padding-bottom:8px}.grocery-grab-zone{display:flex;justify-content:center;align-items:center;touch-action:none;position:absolute;left:50%;top:-20px;transform:translate(-50%)}.grocery-grab-zone:before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}.grocery-grab-bar{width:80px;height:8px;border-radius:999px;background:#94a3b899}.grocery-grab-zone:hover .grocery-grab-bar{background:#94a3b8d9}.grocery-page.is-minimizing{transform-origin:bottom left;animation:groceryMinimize .65s cubic-bezier(.3,.75,.4,1) forwards}.grocery-page.is-opening{transform-origin:bottom left;animation:groceryOpen .65s cubic-bezier(.3,.75,.4,1)}.grocery-top-row{display:flex;align-items:center;justify-content:center;gap:0px;position:relative}.grocery-header-actions{display:inline-flex;align-items:center;gap:8px}.grocery-icon-btn{width:32px;height:32px;border-radius:10px;border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.grocery-icon-btn svg{width:16px;height:16px;display:block}.grocery-icon-btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px #0f172a1f}.grocery-category{margin-top:20px;font-weight:700;font-size:1.1rem;color:var(--text-dark)}.grocery-section-card{border:1px solid #e2e8f0;border-radius:18px;padding:0;overflow:hidden;margin-bottom:12px;background:var(--color-bg-elevated)}.grocery-section-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--section-accent-soft, #f1f5f9);border:none;padding:12px 14px;cursor:pointer;border-top-left-radius:18px;border-top-right-radius:18px}.grocery-section-header.is-completed{opacity:.85}.grocery-section-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:var(--section-accent-icon, #64748b);flex-shrink:0}.grocery-section-icon svg{width:20px;height:20px;display:block}.grocery-section-title{font-weight:700;font-size:1rem;color:var(--color-text-main)}.grocery-section-count{font-size:.85rem;color:var(--color-text-muted)}.grocery-section-status{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);background:#fff9;padding:3px 8px;border-radius:999px}.grocery-section-toggle{transition:transform .7s ease}.grocery-section-toggle.is-collapsed{transform:rotate(-90deg)}.grocery-section-body{overflow:hidden;transition:max-height .7s ease;max-height:1000px;padding:8px 12px}.grocery-sections-unhydrated .grocery-section-body{transition:none}.grocery-section-body.is-collapsed{max-height:0}.grocery-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;gap:8px;border-radius:999px;transition:opacity .2s ease,transform .2s ease,background .2s ease}.grocery-item-label{display:inline-flex;align-items:center;gap:8px;flex:1;position:relative;width:100%}.grocery-item-text{transition:color .2s ease}.grocery-item-actions{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.grocery-item.is-checked{opacity:.85;transform:scale(.995);background:var(--grocery-check-bg, rgba(169, 204, 153, .25));margin:4px 0}.grocery-checkbox-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.grocery-check{width:20px;height:20px;border-radius:50%;border:2px solid var(--grocery-check-border, #9aa3af);display:inline-flex;align-items:center;justify-content:center;background:transparent;transition:background .2s ease,border-color .2s ease,transform .2s ease;flex-shrink:0}.grocery-check-icon{width:8px;height:4px;border-left:2px solid #ffffff;border-bottom:2px solid #ffffff;transform:rotate(-45deg) scale(.9);opacity:0;transition:opacity .2s ease,transform .2s ease}.grocery-checkbox-input:focus-visible+.grocery-check{box-shadow:0 0 0 3px var(--grocery-check-focus, rgba(106, 150, 123, .35))}.grocery-item.is-checked .grocery-check{background:var(--grocery-check-fill, #8fbe9a);border-color:var(--grocery-check-fill, #8fbe9a);transform:scale(1.05)}.grocery-item.is-checked .grocery-check-icon{opacity:1;transform:rotate(-45deg) scale(1)}.grocery-shopping-mode .grocery-item{padding:10px 12px}.grocery-shopping-mode .grocery-check{width:24px;height:24px}.grocery-shopping-mode .grocery-item.is-checked{opacity:.6;padding:6px 10px;margin:2px 0}.grocery-shopping-mode .grocery-edit-btn{padding:8px 12px;font-size:.8rem}.grocery-edit-btn{border:1px solid #e2e8f0;background:#fff;color:#1e293b;padding:6px 10px;border-radius:999px;font-weight:600;font-size:.75rem;cursor:pointer}.grocery-edit-btn:hover{background:#f3f4f6}.grocery-source-btn{border:1px solid #cbd5e1;background:#f8fafc;color:#1e3a5f;padding:6px 10px;border-radius:999px;font-weight:600;font-size:.75rem;cursor:pointer}.grocery-source-btn:hover{background:#eff6ff;border-color:#bfdbfe}.bottom-actions{margin-top:32px;display:flex;flex-direction:column;gap:12px}button.grocery-btn{padding:12px;border-radius:8px;background:#a9cc99;color:#ffffffc9;font-weight:600;border:none;cursor:pointer}button.grocery-btn.secondary{background:#e5e7eb;color:#111}.grocery-edit-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}.grocery-source-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:210;padding:16px;animation:grocerySourceOverlayIn .2s ease}.grocery-source-modal{width:100%;max-width:380px;background:#fff;border-radius:18px;border:1px solid #e2e8f0;padding:16px;box-shadow:0 18px 40px #0f172a33;display:flex;flex-direction:column;gap:12px;animation:grocerySourceModalIn .22s ease}.grocery-source-title{font-weight:700;font-size:1rem;color:#1e293b}.grocery-source-subtitle{color:#475569;font-size:.86rem;margin-top:-2px}.grocery-source-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.grocery-source-item{margin:0}.grocery-source-item-btn{width:100%;text-align:left;border:1px solid #e2e8f0;background:#fff;color:#0f172a;padding:10px 12px;border-radius:12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:space-between;gap:10px}.grocery-source-item-btn:hover{background:#f8fafc}.grocery-source-item-btn.is-open{border-color:#bfdbfe;background:#eff6ff}.grocery-source-item-chevron{transition:transform .2s ease}.grocery-source-item-chevron.is-open{transform:rotate(180deg)}.grocery-source-ingredients{margin-top:0;border:1px solid transparent;border-radius:12px;background:#f8fafc;padding:0 12px;max-height:0;opacity:0;transform:scale(.985) translateY(-4px);overflow:hidden;transition:max-height .26s ease,opacity .2s ease,transform .2s ease,margin-top .2s ease,padding .2s ease,border-color .2s ease}.grocery-source-ingredients.is-open{margin-top:8px;border-color:#e2e8f0;padding:10px 12px;max-height:380px;opacity:1;transform:scale(1) translateY(0)}.grocery-source-ingredients-title{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#475569;margin-bottom:8px}.grocery-source-ingredients-list{margin:0;padding:0 0 0 18px;display:flex;flex-direction:column;gap:6px;color:#0f172a;font-size:.88rem}.grocery-source-ingredients-empty{color:#64748b;font-size:.86rem}.grocery-source-item-unavailable{display:block;border:1px dashed #cbd5e1;color:#64748b;padding:10px 12px;border-radius:12px;font-weight:600}.grocery-source-empty{color:#64748b;font-size:.9rem}.grocery-source-actions{display:flex;justify-content:flex-end}.grocery-edit-modal{width:100%;max-width:360px;background:#fff;border-radius:18px;border:1px solid #e2e8f0;padding:16px;box-shadow:0 18px 40px #0f172a33;display:flex;flex-direction:column;gap:12px}.grocery-edit-title{font-weight:700;font-size:1rem;color:#1e293b}.grocery-edit-field{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:#1e293b}.grocery-edit-field input{border:1px solid #e2e8f0;border-radius:12px;padding:10px;background:#f8fafc;font-size:.9rem}.grocery-edit-actions{display:flex;flex-wrap:wrap;gap:10px}.grocery-edit-error{color:#b91c1c;font-weight:600;font-size:.85rem}.grocery-mode-row{display:flex;align-items:center;gap:12px;margin:6px 0 16px}.grocery-mode-toggle{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:999px;border:1px solid var(--grocery-mode-toggle-border, #e2e8f0);background:var(--grocery-mode-toggle-bg, #ffffff);color:var(--color-text-main);font-weight:600;cursor:pointer}.grocery-mode-toggle.is-active{border-color:#9fc5a6}.grocery-mode-switch{width:36px;height:20px;border-radius:999px;background:#d1d5db;display:inline-flex;align-items:center;padding:2px;transition:background .2s ease}.grocery-mode-toggle.is-active .grocery-mode-switch{background:#8fbe9a}.grocery-mode-knob{width:16px;height:16px;border-radius:50%;background:#fff;transform:translate(0);transition:transform .2s ease}.grocery-mode-toggle.is-active .grocery-mode-knob{transform:translate(16px)}.grocery-mode-pill{background:var(--grocery-mode-pill-bg, rgba(143, 190, 154, .18));color:var(--grocery-mode-pill-text, #2f4f3a);padding:6px 10px;border-radius:999px;font-size:.8rem;font-weight:600;letter-spacing:.02em}html.dark .grocery-edit-modal,html.dark .grocery-source-modal{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .grocery-source-title{color:var(--text-dark-primary)}html.dark .grocery-source-subtitle{color:var(--text-dark-secondary)}html.dark .grocery-source-btn{background:#172033;border-color:#2a3a55;color:#c8d8ef}html.dark .grocery-source-btn:hover{background:#1c2b42;border-color:#375174}html.dark .grocery-source-item-btn{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .grocery-source-item-btn:hover{background:#18253b}html.dark .grocery-source-item-btn.is-open{background:#1f3251;border-color:#3d5f8a}html.dark .grocery-source-ingredients{background:#162338}html.dark .grocery-source-ingredients.is-open{border-color:#304865}html.dark .grocery-source-ingredients-title{color:#9fb3cf}html.dark .grocery-source-ingredients-list{color:#dbe8f8}html.dark .grocery-source-item-unavailable{border-color:#324761;color:#8fa6c5}html.dark .grocery-source-empty{color:var(--text-dark-secondary)}html.dark .grocery-edit-field input,html.dark .grocery-edit-btn{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .grocery-section-card{border-color:var(--border-dark-subtle)}html.dark .grocery-section-header{background:var(--section-accent-soft-dark, #1f2c43)}html.dark .grocery-section-icon{color:var(--section-accent-icon-dark, #b4c2d7)}html.dark .grocery-section-status{background:#0b122166;color:var(--text-dark-secondary)}html.dark .grocery-mode-toggle,html.dark .grocery-icon-btn{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .grocery-mode-switch{background:#2a3a55}html.dark .grocery-mode-toggle.is-active .grocery-mode-switch{background:#4aa37e}html.dark .grocery-mode-pill{background:#4aa37e2e;color:#cfe6d7}@keyframes groceryMinimize{0%{transform:translate(0)}to{transform:translateY(100%)}}@keyframes groceryOpen{0%{transform:translateY(100%)}to{transform:translate(0)}}@keyframes grocerySourceOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes grocerySourceModalIn{0%{opacity:0;transform:scale(.97) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.chat-container{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;padding:0 12px;background:var(--color-bg);color:#0f172a;position:relative}.chat-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center;min-height:0;padding:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;z-index:1200;opacity:0;transition:opacity .5s ease;pointer-events:none}.chat-overlay.is-open{opacity:1;pointer-events:auto}.chat-drawer{width:100%;max-width:var(--app-root-width);height:90vh;max-height:90vh;background:var(--color-bg);border-radius:26px 26px 0 0;box-shadow:0 -24px 50px #0f172a33;transform:translateY(100%);transition:transform .5s cubic-bezier(.3,.75,.4,1);overflow:hidden;display:flex;flex-direction:column;min-height:0}.chat-drawer.is-open{transform:translateY(0)}.chat-grab-zone{display:flex;justify-content:center;align-items:center;padding:20px 0 10px;touch-action:none;position:relative}.chat-grab-zone:before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}.chat-grab-bar{width:80px;height:8px;border-radius:999px;background:#94a3b899}.chat-grab-zone:hover .chat-grab-bar{background:#94a3b8d9}.chat-header{padding:4px 4px 8px;background:transparent;position:relative;z-index:2;display:flex;flex-direction:column;flex-shrink:0;gap:4px;align-items:center;text-align:center}.chat-header-row{width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 20px}.chat-header-icon{width:38px;height:38px;display:block;margin-top:-7px}.chat-header h1{margin:0;font-size:20px;letter-spacing:-.02em}.chat-header p{margin:4px 0 0;color:#475569;font-size:14px}.chat-container .chat-input-bar{position:absolute;bottom:0;left:0;right:0;transform:none;max-width:none;max-height:none;overflow:visible;flex-shrink:0;padding:0 12px;background:transparent;z-index:8;pointer-events:none}.chat-quick-actions{padding-bottom:12px}.chat-messages{flex:1;min-height:0;overflow-y:auto;padding:8px 0 calc(var(--chat-composer-height, 112px) + 16px) 0;scroll-behavior:smooth;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}.native-ios-shell .chat-messages{padding-bottom:calc(var(--chat-composer-height, 112px) + var(--keyboard-height, 0px) + 16px)}.chat-sheet-content{padding-bottom:0}.chat-row{display:block;width:100%;margin-bottom:16px;animation:bubbleIn .28s ease forwards;opacity:0;transform:translateY(8px)}.assistant-markdown{font-size:15px;line-height:1.65;word-wrap:break-word;overflow-wrap:break-word}.assistant-markdown h1,.assistant-markdown h2,.assistant-markdown h3{margin:10px 0 6px;font-weight:800}.assistant-markdown p{margin:10px 0}.assistant-markdown ul,.assistant-markdown ol{margin:10px 0 10px 18px;padding-left:16px}.assistant-markdown li{margin:6px 0}.message{width:100%;box-sizing:border-box;word-break:break-word}.message.assistant{background:#fff;border:1px solid #e2e8f0;padding:1rem;border-radius:.75rem;color:#1e293b}.message.user{background:#f1f5f9;padding:1rem;border-radius:.75rem;color:#0f172a}.chat-user-message-body{display:flex;flex-direction:column;gap:8px}.chat-user-message-image{width:min(220px,72vw);max-height:260px;object-fit:cover;border-radius:12px;border:1px solid #dbe2ec;background:#fff}.chat-user-message-text{white-space:pre-wrap}.typing-indicator{display:inline-block;font-size:1.5rem;letter-spacing:.2rem}.typing-indicator span{animation:blink 1s infinite;opacity:.3}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes blink{0%{opacity:.2}50%{opacity:1}to{opacity:.2}}.message.assistant h1,.message.assistant h2,.message.assistant h3{font-weight:600;margin:12px 0 6px}.message.assistant ul,.message.assistant ol{padding-left:20px;margin:8px 0}.message.assistant li{margin-bottom:4px}.existing-recipes{display:flex;flex-direction:column;gap:10px}.existing-recipes-message{font-weight:600}.existing-recipes-list{display:flex;flex-direction:column;gap:8px}.existing-recipes-item{border:none;text-align:left;cursor:pointer;font:inherit;display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;border:1px solid #e2e8f0;background:#f8fafc}.existing-recipes-thumb{width:48px;height:48px;border-radius:10px;overflow:hidden;background:#e2e8f0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.existing-recipes-thumb-image{width:100%;height:100%;display:block;object-fit:cover}.existing-recipes-emoji{font-size:22px}.existing-recipes-text{display:flex;flex-direction:column;gap:2px}.existing-recipes-title{font-weight:600}.existing-recipes-item:hover{border-color:#cbd5f5;background:#eef2ff}.existing-recipes-item:focus-visible{outline:2px solid #94a3ff;outline-offset:2px}html.dark .assistant-markdown,html.dark .message.assistant{color:#e2e8f0}.message.assistant p{margin:6px 0;line-height:1.45}.message.assistant code{background:#f3f4f6;padding:2px 4px;border-radius:4px;font-size:.9rem}.message.assistant pre{background:#f5f7fb;color:#0f172a;padding:12px;border:1px solid #e2e8f0;border-radius:12px;overflow:auto;margin:12px 0;max-height:260px;font-size:.9rem}html.dark .chat-container{background:#050814;color:#e2e8f0}html.dark .message.assistant{background:#111b2a;border-color:#1e293b;color:#f1f5f9}html.dark .assistant-markdown ul,html.dark .assistant-markdown ol,html.dark .message.assistant ul,html.dark .message.assistant ol,html.dark .assistant-markdown li,html.dark .message.assistant li{color:#e2e8f0}html.dark .existing-recipes-item{background:#0b1324;border-color:#1e293b}html.dark .existing-recipes-item:hover{border-color:#334155;background:#101b2f}html.dark .existing-recipes-thumb{background:#1e293b}.chat-quick-actions{display:flex;gap:8px;padding:8px 0;margin-top:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;transition:opacity .2s ease,transform .2s ease,max-height .2s ease,margin .2s ease,padding .2s ease;max-height:200px}.chat-quick-actions-header{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-subtle, #94a3b8);margin-top:8px;transition:opacity .2s ease,transform .2s ease,max-height .2s ease,margin .2s ease,padding .2s ease;max-height:200px}.chat-quick-action-btn{flex:0 0 auto;border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);padding:8px 10px;border-radius:999px;font-size:.85rem;font-weight:600;white-space:nowrap;cursor:pointer}html.dark .chat-quick-action-btn{border-color:var(--color-border-dark);background:var(--color-bg);color:var(--color-text-main)}.chat-placeholder-suggestions{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0 8px;transition:opacity .2s ease,transform .2s ease,max-height .2s ease,margin .2s ease,padding .2s ease;max-height:200px}.chat-placeholder-btn{border:1px solid var(--color-border-light);background:#fff;color:#0f172a;padding:8px 14px;border-radius:999px;font-weight:600;cursor:pointer}html.dark .chat-placeholder-btn{border-color:var(--color-border-dark);background:var(--bg-dark-surface);color:var(--text-dark-primary)}.chat-suggested-actions{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0 4px;transition:opacity .2s ease,transform .2s ease,max-height .2s ease,margin .2s ease,padding .2s ease;max-height:200px}.chat-container.is-input-focused .chat-quick-actions,.chat-container.is-input-focused .chat-quick-actions-header,.chat-container.is-input-focused .chat-placeholder-suggestions,.chat-container.is-input-focused .chat-suggested-actions{opacity:0;transform:translateY(6px);max-height:0;margin:0;padding:0;overflow:hidden;pointer-events:none}.chat-toast{background:#d9f2e0;border:1px solid var(--color-primary);color:#2f5b3c;border-radius:14px;padding:10px 12px;font-weight:700;box-shadow:0 8px 18px #0000000f;margin:6px 0 4px;display:flex;align-items:center;justify-content:space-between;gap:12px}.chat-toast-text{flex:1}.chat-toast-btn{border:1px solid rgba(47,91,60,.35);background:transparent;color:inherit;border-radius:999px;padding:6px 12px;font-weight:700;cursor:pointer}.chat-swap-actions{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0 2px}.chat-swap-btn{border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);padding:8px 12px;border-radius:12px;font-size:.9rem;font-weight:700;cursor:pointer}.chat-swap-btn-secondary{background:transparent}.chat-suggested-action-btn{border:1px solid var(--color-border-light);background:var(--color-bg-elevated);color:var(--color-text-main);padding:8px 12px;border-radius:12px;font-size:.9rem;font-weight:700;cursor:pointer}html.dark .chat-suggested-action-btn{border-color:var(--color-border-dark);background:var(--color-bg);color:var(--color-text-main)}html.dark .chat-toast{background:#193124;border-color:#2a5b3d;color:#d3f0da}html.dark .chat-toast-btn{border-color:#d3f0da59}html.dark .chat-swap-btn{border-color:var(--color-border-dark);background:var(--color-bg);color:var(--color-text-main)}html.dark .add-to-planner-btn{background:#f8e6d5;color:#0f172a}html.dark .meal-plan-preview{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);box-shadow:var(--shadow-dark-elevated)}.chat-input-bar{display:block;padding:0;background:transparent;position:relative;pointer-events:none}.chat-input-stack{display:flex;flex-direction:column;gap:8px;pointer-events:none}.native-ios-shell .chat-container .chat-input-bar{bottom:max(env(safe-area-inset-bottom,0px),12px)}.native-ios-shell.keyboard-open .chat-container .chat-input-bar{bottom:var(--keyboard-height, 0px)}.chat-input-bar:before{content:"";position:absolute;left:0;right:0;bottom:-8px;height:calc(var(--chat-composer-height, 112px) + 16px);background:linear-gradient(180deg,#f0efe500,#f0efe5d1 44%,#f0efe5f5);pointer-events:none;z-index:-1}.native-ios-shell.keyboard-open .chat-input-bar:before{bottom:0;height:calc(var(--chat-composer-height, 112px) + 8px)}.chat-input-shell{display:flex;align-items:center;gap:6px;border:1px solid rgba(148,163,184,.32);background:#fffffff2;border-radius:24px;padding:6px 8px;box-shadow:0 18px 34px #1f2a361f,0 2px #ffffffb8 inset;pointer-events:auto}.chat-input-shell:focus-within{border-color:#94a3b87a;box-shadow:none}.chat-input-action-wrap{position:relative;flex:0 0 auto}.chat-plus-btn{border:1px solid transparent;background:transparent;color:#334155;border-radius:18px;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;line-height:1;box-shadow:none;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.chat-plus-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round}.chat-plus-btn:hover:not(:disabled){background:transparent;border-color:transparent;color:#334155}.chat-plus-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.chat-plus-btn:focus-visible,.dictate-btn:focus-visible,.chat-input-action-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.chat-input-actions-menu{position:absolute;left:0;bottom:calc(100% + 10px);width:clamp(200px,44.8vw,237px);max-width:calc(100vw - 32px);max-height:300px;overflow-y:auto;border:1px solid var(--glass-chrome-border);border-radius:16px;background:var(--glass-chrome-bg-strong);backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur);box-shadow:var(--glass-chrome-shadow),var(--glass-chrome-highlight);padding:8px;z-index:20;animation:chatInputMenuIn .18s ease}@supports not (backdrop-filter: blur(2px)){.chat-input-actions-menu{background:#fff}}.chat-input-actions-section+.chat-input-actions-section{margin-top:6px;padding-top:6px;border-top:1px solid #e2e8f0}.chat-input-actions-title{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;padding:0 6px 4px}.chat-input-action-item{width:100%;border:1px solid rgba(255,255,255,.12);background:#ffffff29;color:#0f172a;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;text-align:left;font-size:.93rem;font-weight:650;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.chat-input-action-item:hover:not(:disabled){background:#ffffff4d;border-color:#fff3}.chat-input-action-item:disabled{opacity:.58;cursor:not-allowed}.chat-input-action-item-icon{width:20px;height:20px;color:#334155;flex:0 0 auto}.chat-input-action-item-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.chat-image-preview{display:flex;align-items:flex-start;margin:0 0 8px;pointer-events:auto}.chat-image-preview-thumb{position:relative;width:64px;height:64px}.chat-image-preview img{width:64px;height:64px;border-radius:12px;object-fit:cover;border:1px solid #e2e8f0;background:#fff}.chat-image-remove{position:absolute;top:6px;right:6px;width:20px;height:20px;border:1px solid #d6dce6;background:#fff;color:#334155;border-radius:999px;padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 1px 4px #0f172a2e}.chat-image-remove svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round}.chat-image-remove:hover{border-color:#c2ccd9;color:#1e293b}.chat-image-remove:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.chat-input-bar textarea{flex:1;border:none;border-radius:16px;padding:9px 8px 9px 2px;min-height:24px;max-height:180px;resize:none;font-family:var(--font-body);font-size:15px;line-height:1.35;background:transparent;outline:none;box-shadow:none;align-self:center}.chat-input-bar textarea::placeholder{color:#94a3b8}.dictate-btn{border:1px solid transparent;background:transparent;color:#64748b;border-radius:16px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;transition:background-color .14s ease,border-color .14s ease,color .14s ease;position:relative;overflow:hidden}.dictate-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.dictate-btn:hover:not(:disabled){background:transparent;border-color:transparent;color:#64748b}.dictate-btn.is-active{background:linear-gradient(180deg,#a4c1a257,#a4c1a238);border-color:#85a584c7;color:#2f5b3c;box-shadow:0 0 0 1px #85a5841f inset,0 8px 18px #85a5842e}.dictate-btn.is-active:after{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border-radius:999px;border:1px solid rgba(133,165,132,.45);animation:dictatePulse 1.25s ease-out infinite;pointer-events:none}.dictate-btn.is-active svg{animation:dictateMicBob .8s ease-in-out infinite}.dictate-btn.is-unavailable{color:#94a3b8}.dictate-btn:disabled{opacity:.45;cursor:not-allowed}.send-btn{border:1px solid rgba(133,165,132,.55);background:var(--color-primary);color:#193020;border-radius:999px;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;box-shadow:0 8px 20px #a4c1a28c;transition:transform .12s ease,box-shadow .12s ease}.send-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.send-btn:active:not(:disabled){transform:translateY(1px) scale(.98);box-shadow:0 6px 16px #a4c1a280}.send-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.save-recipe-btn{margin-top:8px;padding:8px 12px;background:var(--color-primary);border:none;border-radius:8px;color:#0f172a;font-weight:600;cursor:pointer}.save-recipe-btn:hover{opacity:.9}.add-to-planner-btn{margin-top:8px;padding:8px 12px;background:#f8e6d5;border:none;border-radius:8px;color:#0f172a;font-weight:600;cursor:pointer;box-shadow:none}.add-to-planner-btn:hover{opacity:.9;box-shadow:none}.add-to-planner-btn+.save-recipe-btn,.save-recipe-btn+.add-to-planner-btn{margin-left:8px}.apply-plan-btn{margin-top:6px;padding:8px 12px;background:var(--color-primary);border:none;border-radius:8px;font-weight:600;cursor:pointer;color:#0f172a}.apply-plan-btn:hover{opacity:.9}.meal-plan-preview{margin-top:10px;background:var(--color-bg-elevated);border:1px solid var(--color-border-light);border-radius:18px;padding:8px 0;box-shadow:0 10px 24px #0000000f}.meal-plan-day+.meal-plan-day{border-top:1px solid color-mix(in srgb,var(--color-border-light) 88%,transparent)}.meal-plan-day{display:grid;grid-template-columns:minmax(108px,128px) minmax(0,1fr);gap:14px;align-items:start;padding:14px 16px}.meal-plan-day-heading{display:flex;flex-direction:column;gap:3px}.meal-plan-day-title{font-weight:700;color:var(--color-text-main);font-size:.98rem;line-height:1.1}.meal-plan-day-date{font-weight:600;font-size:12px;color:var(--color-text-muted);line-height:1.1}.meal-plan-meals{display:flex;flex-direction:column;gap:8px}.meal-plan-item{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:start;color:var(--color-text-main)}.meal-plan-item-label{font-weight:700;color:var(--color-text-muted);font-size:.84rem;line-height:1.35;text-transform:uppercase;letter-spacing:.04em}.meal-plan-item-title{font-weight:600;line-height:1.35}@media (max-width: 560px){.meal-plan-day{grid-template-columns:1fr;gap:10px}.meal-plan-day-heading{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:8px}.meal-plan-item{grid-template-columns:64px minmax(0,1fr);gap:8px}}.apply-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:50}.apply-modal{background:#fff;padding:20px;border-radius:14px;width:85%;max-width:380px;animation:fadeIn .2s ease}.apply-modal h2{margin-top:0}.apply-modal p{color:var(--color-text-muted)}.apply-option-btn{width:100%;background:var(--color-primary);border:none;padding:10px;margin:8px 0;border-radius:10px;font-weight:600;cursor:pointer}.apply-option-btn:hover{opacity:.9}.close-btn{width:100%;background:#e2e8f0;border:none;padding:10px;border-radius:10px;margin-top:10px;cursor:pointer}html.dark .apply-overlay{background:#040a14b8}html.dark .apply-modal{background:var(--bg-dark-surface);color:var(--text-dark-primary);border:1px solid var(--border-dark-subtle);box-shadow:var(--shadow-dark-elevated)}html.dark .apply-modal h2{color:var(--text-dark-primary)}html.dark .apply-modal p{color:var(--text-dark-secondary)}html.dark .apply-option-btn{color:#0f172a}html.dark .close-btn{background:var(--bg-dark-surface-elevated);color:var(--text-dark-primary);border:1px solid var(--border-dark-subtle)}.new-chat-btn{position:absolute;top:-5px;right:4px;height:36px;border:none;border-radius:12px;background:#a5c1a3;cursor:pointer;color:#0f172a;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;font-size:.84rem;font-weight:700;line-height:1;white-space:nowrap}.new-chat-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round}.new-chat-btn:hover{background:#f8fafc}html.dark .chat-container{background:var(--bg-dark-page);color:var(--text-dark-primary)}html.dark .chat-header p{color:var(--text-dark-secondary)}html.dark .chat-messages{gap:10px}html.dark .chat-row{margin-bottom:10px}html.dark .message{max-width:86%}html.dark .message.assistant{background:var(--bg-dark-surface);border:1px solid var(--border-dark-subtle);color:var(--text-dark-primary);margin-right:auto}html.dark .message.user{background:var(--bg-dark-surface-elevated);border:1px solid var(--border-dark-subtle);color:var(--text-dark-primary);margin-left:auto}html.dark .chat-user-message-image{border-color:var(--border-dark-subtle);background:var(--bg-dark-surface)}html.dark .message.system,html.dark .message.welcome{background:var(--bg-dark-surface);border:1px dashed var(--border-dark-subtle);color:var(--text-dark-secondary);margin-right:auto}html.dark .assistant-markdown code,html.dark .message.assistant code{background:#ffffff0d;color:var(--text-dark-primary)}html.dark .message.assistant pre{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .chat-messages:empty:before{content:"Ask me anything about your pantry or meals.";color:var(--text-dark-secondary);font-size:14px;padding:12px 0;display:block;text-align:center;background:linear-gradient(90deg,#ffffff05,#ffffff0a,#ffffff05);border-radius:12px}html.dark .chat-input-bar{background:transparent}html.dark .chat-input-bar:before{background:linear-gradient(180deg,#05081400,#050814d1 48%,#050814f5)}html.dark .chat-input-shell{border-color:#94a3b83d;background:#0f172aeb;box-shadow:0 22px 40px #0206176b,0 1px #ffffff0a inset}html.dark .chat-input-shell:focus-within{border-color:#94a3b85c;box-shadow:none}html.dark .chat-input-bar textarea{border-color:transparent;background:transparent;color:var(--text-dark-primary);box-shadow:none}html.dark .chat-input-bar textarea::placeholder{color:var(--text-dark-secondary)}html.dark .chat-input-bar textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 2px #92be9740}html.dark .chat-plus-btn{background:transparent;border-color:transparent;color:var(--text-dark-primary);box-shadow:none}html.dark .chat-plus-btn:hover:not(:disabled){background:transparent;border-color:transparent;box-shadow:none;color:var(--text-dark-primary)}html.dark .chat-image-remove{background:#fff;border-color:#d6dce6;color:#334155;box-shadow:0 1px 4px #0f172a4d}html.dark .dictate-btn{color:var(--text-dark-secondary)}html.dark .dictate-btn:hover:not(:disabled){background:transparent;border-color:transparent;color:var(--text-dark-secondary)}html.dark .dictate-btn.is-active{background:#85a5843d;border-color:#85a5848c;color:#cde5cf}html.dark .dictate-btn.is-active:after{border-color:#85a58480}html.dark .chat-input-actions-menu{border-color:var(--glass-chrome-border);background:var(--glass-chrome-bg-strong);box-shadow:var(--glass-chrome-shadow),var(--glass-chrome-highlight)}@supports not (backdrop-filter: blur(2px)){html.dark .chat-input-actions-menu{background:#0f172a}}html.dark .chat-input-actions-section+.chat-input-actions-section{border-top-color:var(--border-dark-subtle)}html.dark .chat-input-actions-title{color:var(--text-dark-secondary)}html.dark .chat-input-action-item{color:var(--text-dark-primary)}html.dark .chat-input-action-item:hover:not(:disabled){background:#ffffff14;border-color:#ffffff1a}html.dark .chat-input-action-item-icon{color:var(--text-dark-secondary)}html.dark .chat-image-preview img{border-color:var(--border-dark-subtle);background:var(--bg-dark-surface)}html.dark .send-btn{border-color:#85a58473;box-shadow:0 10px 22px #00000059}html.dark .chat-quick-actions,html.dark .chat-suggested-actions{gap:6px}html.dark .chat-quick-action-btn,html.dark .chat-suggested-action-btn{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-secondary);box-shadow:none}html.dark .chat-quick-action-btn:hover,html.dark .chat-suggested-action-btn:hover{color:var(--text-dark-primary);border-color:var(--border-dark-strong)}html.dark .chat-quick-action-btn,html.dark .chat-suggested-action-btn{font-weight:600}@keyframes chatInputMenuIn{0%{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dictatePulse{0%{opacity:.75;transform:scale(.88)}70%{opacity:0;transform:scale(1.22)}to{opacity:0;transform:scale(1.22)}}@keyframes dictateMicBob{0%{transform:translateY(0)}50%{transform:translateY(-1.5px)}to{transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.chat-input-actions-menu{animation:none}.dictate-btn.is-active:after,.dictate-btn.is-active svg{animation:none}}@keyframes bubbleIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2200;display:flex;align-items:flex-end;justify-content:center;padding:18px 18px calc(env(safe-area-inset-bottom) + 18px);background:#0f172a52;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.onboarding-sheet{width:min(100%,440px);border-radius:28px;border:1px solid rgba(207,199,184,.72);background:radial-gradient(120% 120% at 100% 0%,rgba(164,193,162,.28),transparent 42%),linear-gradient(180deg,#fcfaf5fa,#f5f1e8fa);box-shadow:0 28px 60px #0f172a2e,inset 0 1px #fffc;padding:18px;display:flex;flex-direction:column;gap:18px;animation:onboarding-sheet-in .32s cubic-bezier(.22,1,.36,1)}.onboarding-skip{margin-left:auto;border:none;background:transparent;color:#5b6878;font-size:13px;font-weight:700;cursor:pointer}.onboarding-progress{display:flex;align-items:center;gap:8px}.onboarding-progress-dot{width:8px;height:8px;border-radius:999px;background:#94a3b86b;transition:width .18s ease,background-color .18s ease}.onboarding-progress-dot.is-active{width:28px;background:#79a575f0}.onboarding-illustration{min-height:150px;border-radius:24px;border:1px solid rgba(207,199,184,.58);background:radial-gradient(120% 100% at 0% 0%,rgba(255,255,255,.92),transparent 46%),linear-gradient(135deg,#aac6a3e6,#e4ebe3eb);position:relative;overflow:hidden}.onboarding-illustration--welcome{display:grid;place-items:center}.onboarding-orb{width:118px;height:118px;border-radius:999px;background:#ffffffb3;box-shadow:0 20px 36px #3f5d4529}.onboarding-orb--small{position:absolute;right:28px;bottom:18px;width:48px;height:48px;background:#79a575db}.onboarding-illustration--recipes{padding:20px}.onboarding-mini-card{width:72%;height:84px;border-radius:22px;background:#fffc;box-shadow:0 16px 30px #0f172a14}.onboarding-mini-card--offset{position:absolute;right:20px;bottom:18px;width:56%;height:72px;background:#f5f8f0f2}.onboarding-illustration--planner{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:18px}.onboarding-illustration--planner span{border-radius:18px;background:#ffffffc2}.onboarding-illustration--grocery{padding:18px;display:flex;flex-direction:column;gap:12px}.onboarding-check-row{height:26px;border-radius:999px;background:#ffffffbd}.onboarding-copy{display:flex;flex-direction:column;gap:8px}.onboarding-eyebrow{color:#607287;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.onboarding-title{margin:0;color:#172033;font-family:var(--font-display);font-size:32px;line-height:.98;letter-spacing:-.03em}.onboarding-body{margin:0;color:#556273;font-size:15px;line-height:1.45}.onboarding-actions{display:flex;align-items:center;gap:10px}.onboarding-back,.onboarding-next{flex:1;min-height:48px}@keyframes onboarding-sheet-in{0%{opacity:0;transform:translateY(44px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.onboarding-sheet{animation:none}}html.dark .onboarding-overlay{background:#0206178a}html.dark .onboarding-sheet{border-color:#647e9b5c;background:radial-gradient(120% 120% at 100% 0%,rgba(68,121,86,.24),transparent 42%),linear-gradient(180deg,#0e1d30fa,#091527fa);box-shadow:0 30px 62px #00000085,inset 0 1px #ffffff08}html.dark .onboarding-skip,html.dark .onboarding-eyebrow,html.dark .onboarding-body{color:#d1dce9d1}html.dark .onboarding-title{color:#f4f7fb}html.dark .onboarding-progress-dot{background:#64748b85}html.dark .onboarding-progress-dot.is-active{background:#79a575f5}html.dark .onboarding-illustration{border-color:#647e9b4d;background:radial-gradient(120% 100% at 0% 0%,rgba(21,36,58,.92),transparent 46%),linear-gradient(135deg,#28453ae6,#18263aeb)}html.dark .onboarding-mini-card,html.dark .onboarding-check-row,html.dark .onboarding-illustration--planner span,html.dark .onboarding-orb{background:#f3f7fb1f}html.dark .onboarding-orb--small{background:#79a575e6}.bottom-nav-wrapper{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;justify-content:center;pointer-events:none;padding:0;opacity:1;transform:translateZ(0);will-change:transform,opacity;transition:opacity 224ms ease,transform 224ms cubic-bezier(.22,1,.36,1)}.native-ios-shell .bottom-nav-wrapper,.native-ios-shell.keyboard-open .bottom-nav-wrapper{bottom:0;transform:translateZ(0)}html.recipe-editor-open .bottom-nav-wrapper,body.recipe-editor-open .bottom-nav-wrapper,.app-root.recipe-editor-open .bottom-nav-wrapper{opacity:0;transform:translate3d(0,18px,0);pointer-events:none}html.chat-open .bottom-nav-wrapper{z-index:50;opacity:1;transform:translateZ(0);pointer-events:none}.bottom-nav-bar{pointer-events:auto;position:relative;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;padding:9px 16px;background:#fff;border:1px solid var(--color-border-light);border-radius:20px 20px 0 0;gap:12px;width:100%;max-width:none}.nav-item{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 4px;justify-content:center;border-radius:50px;text-decoration:none;color:var(--nav-icon-inactive);font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;position:relative;z-index:1;transition:color .2s ease,transform .2s ease}.nav-item-button{border:none;background:transparent;cursor:pointer}.nav-item-chat .nav-icon{color:var(--color-primary)}.nav-item-active{color:var(--color-text-main)}.nav-icon{font-size:18px;line-height:1;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:transparent;transition:transform .24s ease,background-color .24s ease,color .24s ease,box-shadow .24s ease}.nav-item-active .nav-icon{background:var(--color-primary);color:#fff;box-shadow:0 8px 18px #6f9f7b52;animation:navIconPop .36s cubic-bezier(.22,1,.36,1)}.nav-item-chat.nav-item-active .nav-icon{background:transparent;color:var(--color-primary);box-shadow:none}.nav-item-active .nav-label{animation:navLabelRise .3s ease}.nav-item:hover .nav-icon{transform:translateY(-1px)}.nav-item:active .nav-icon{transform:scale(.96)}.nav-date-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:8px;border:2px solid currentColor;font-size:13px;font-weight:800;letter-spacing:-.02em;font-family:var(--font-mono)}.nav-recipe-icon{width:22px;height:22px;display:block}.nav-recipe-icon svg{width:100%;height:100%;display:block}.nav-planner-icon{width:22px;height:22px;display:block}.nav-planner-icon svg{width:100%;height:100%;display:block}.nav-settings-icon{width:22px;height:22px;display:block}.nav-settings-icon svg{width:100%;height:100%;display:block}html.dark .bottom-nav-bar{background:linear-gradient(180deg,#10192deb,#10192dd1);border-color:var(--border-dark-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 18px 46px #0009}html.dark .nav-item{color:#8ea3bf;transition:color .12s ease,transform .12s ease}html.dark .nav-item:hover,html.dark .nav-item-active{color:var(--text-dark-primary)}html.dark .nav-item-active .nav-icon{background:#9fc4a0;color:#0b1221;box-shadow:0 10px 22px #00000073}html.dark .nav-item-chat.nav-item-active .nav-icon{background:transparent;color:#9fc4a0;box-shadow:none}html.dark .nav-item:active{transform:translateY(1px)}@media (prefers-reduced-motion: reduce){.bottom-nav-wrapper{transition:none}.nav-item-active .nav-icon,.nav-item-active .nav-label{animation:none}}@keyframes navIconPop{0%{transform:scale(.84);opacity:.85}60%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}@keyframes navLabelRise{0%{opacity:.72;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif}:root{--color-bg: #f0efe5;--color-bg-elevated: #ffffff;--app-bg: var(--color-bg);--color-primary: #a4c1a2;--color-secondary: #ffeeda;--color-accent: #f2b487;--color-text-main: #1f2a36;--color-text-muted: #6c7481;--color-border-light: #e1d9cc;--color-border-dark: #2f3a46;--nav-bg: rgba(31, 42, 54, .05);--nav-pill-bg: #ffffff;--nav-icon-inactive: #696969;--nav-icon-active: #f2f2f2;--bottom-nav-clearance: 90px;--chat-bg-user: #a4c1a2;--chat-bg-ai: #fdfaf5;--chip-bg: #e7f7ee;--input-bg: #fff4e5;--cook-step-text-color: #0f172a}html.dark{--bg-dark-page: #0b1221;--bg-dark-surface: #10192d;--bg-dark-surface-elevated: #16243c;--text-dark-primary: #e6edf7;--text-dark-secondary: #9fb1c9;--border-dark-subtle: #1f2c43;--border-dark-strong: #30405c;--shadow-dark-elevated: 0 16px 42px rgba(0, 0, 0, .4);--color-bg: var(--bg-dark-page);--color-bg-elevated: var(--bg-dark-surface-elevated);--color-text-main: var(--text-dark-primary);--color-text-muted: var(--text-dark-secondary);--color-border-light: var(--border-dark-subtle);--color-border-dark: var(--border-dark-strong);--nav-bg: rgba(11, 18, 33, .8);--nav-pill-bg: var(--bg-dark-surface);--nav-icon-inactive: #8095b2;--nav-icon-active: var(--text-dark-primary);--bottom-nav-clearance: 90px;--chat-bg-user: #2ec77d;--chat-bg-ai: var(--bg-dark-surface);--chip-bg: #1b2a44;--input-bg: var(--bg-dark-surface);--cook-step-text-color: #0f172a}:root{--font-display: "Fraunces", "Iowan Old Style", "Palatino", serif;--font-body: "IBM Plex Sans", "Helvetica Neue", "Segoe UI", sans-serif;--font-mono: "Space Mono", "SFMono-Regular", ui-monospace, monospace;--app-safe-top: max(env(safe-area-inset-top, 0px), var(--vv-offset-top, 0px));--glass-chrome-bg: rgba(255, 255, 255, .72);--glass-chrome-bg-strong: rgba(255, 255, 255, .86);--glass-chrome-border: rgba(255, 255, 255, .42);--glass-chrome-shadow: 0 14px 28px rgba(31, 42, 54, .12);--glass-chrome-shadow-soft: 0 10px 22px rgba(31, 42, 54, .1);--glass-chrome-highlight: inset 0 1px 0 rgba(255, 255, 255, .26);--glass-chrome-blur: blur(18px) saturate(160%)}html.dark{--glass-chrome-bg: rgba(15, 23, 42, .52);--glass-chrome-bg-strong: rgba(15, 23, 42, .78);--glass-chrome-border: rgba(255, 255, 255, .12);--glass-chrome-shadow: 0 16px 30px rgba(2, 6, 23, .32);--glass-chrome-shadow-soft: 0 12px 22px rgba(2, 6, 23, .28);--glass-chrome-highlight: inset 0 1px 0 rgba(255, 255, 255, .08)}body{background:var(--app-bg);color:var(--color-text-main);font-family:var(--font-body);line-height:1.55}html,body{background:var(--app-bg);overscroll-behavior:none}#root,.app-root{background:var(--app-bg)}html.planner-modal-open .app-content,body.planner-modal-open .app-content{overflow:hidden}html.planner-modal-open .recipe-detail-overlay,body.planner-modal-open .recipe-detail-overlay{overflow:hidden;touch-action:none}@media (max-width: 720px){body{background:var(--app-bg)}}.app-root{--app-root-width: min(100vw, 480px);max-width:480px;margin:0 auto;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;background:var(--app-bg);padding-top:var(--app-safe-top);border-radius:30px;border:1px solid var(--color-border-light);box-shadow:0 18px 50px #0f172a14,0 2px #fff9 inset;overflow:hidden;position:relative;animation:appShellIn .35s ease}@supports (-webkit-touch-callout: none){@media (max-width: 720px){:root{--app-safe-top: max(44px, env(safe-area-inset-top, 0px), var(--vv-offset-top, 0px))}.app-root{padding-top:var(--app-safe-top)}}}html.dark body{background:var(--app-bg)}html.dark .app-root{background:var(--app-bg);box-shadow:0 18px 50px #00000073}.app-content{flex:1;--app-content-pad-top: 0px;--app-content-pad-x: 5px;--app-content-pad-bottom: 110px;padding:var(--app-content-pad-top) var(--app-content-pad-x) var(--app-content-pad-bottom)}.app-content.app-content--today{--app-content-pad-bottom: 0px}.app-root.grocery-drawer-open .app-content,.app-root.chat-drawer-open .app-content{overflow:hidden}.keyboard-scroll-container{--keyboard-scroll-base-padding: 0px;--keyboard-scroll-extra-offset: 0px;--keyboard-scroll-focus-margin: 18px;--keyboard-scroll-top-margin: 20px;--keyboard-scroll-safe-top: var(--app-safe-top, 0px);scroll-padding-top:calc(var(--keyboard-scroll-safe-top) + var(--keyboard-scroll-top-margin));scroll-padding-bottom:calc(var(--keyboard-height, 0px) + env(safe-area-inset-bottom,0px) + var(--keyboard-scroll-extra-offset) + var(--keyboard-scroll-focus-margin))}.native-ios-shell.keyboard-open .keyboard-scroll-container{padding-bottom:calc(var(--keyboard-scroll-base-padding) + var(--keyboard-height, 0px) + env(safe-area-inset-bottom,0px) + var(--keyboard-scroll-extra-offset))}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:5px}.page-title{font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:-.02em}.page-subtitle{font-size:13px;font-weight:500;color:var(--color-text-muted)}.card{background:linear-gradient(180deg,var(--color-bg-elevated),rgba(255,255,255,.6));border-radius:20px;padding:18px;box-shadow:0 14px 40px #0f172a0f,0 1px #ffffffb3 inset;border:1px solid var(--color-border-light)}.card+.card{margin-top:12px}.section-title{font-size:16px;font-weight:600;letter-spacing:-.01em;margin:0 0 -5px}.btn{border-radius:999px;padding:10px 18px;border:none;cursor:pointer;font-size:14px;font-weight:600;letter-spacing:.01em;transition:transform .15s ease,box-shadow .15s ease}.btn-loading{display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-loading-icon{width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:999px;display:inline-block;flex:0 0 14px;animation:btnSpin .8s linear infinite}.btn-primary{background:var(--color-primary);color:#0f172a;box-shadow:0 10px 18px #1f2a361f}.btn-peach{background:var(--color-accent);color:#1f2937;box-shadow:0 10px 18px #1f2a361f}.btn-ghost{background:transparent;border:1px solid var(--color-border-light);color:var(--color-text-main)}.input{width:100%;border-radius:14px;border:1px solid var(--color-border-light);padding:11px 12px;font-size:14px;outline:none;background:var(--input-bg);box-shadow:0 1px #ffffff80 inset}.input:focus{border-color:var(--color-primary)}.screen{padding:16px;display:flex;flex-direction:column;gap:14px}.meal-slot{margin-bottom:14px}.meal-slot-label{font-size:13px;font-weight:600;margin-bottom:4px;letter-spacing:.01em}.meal-slot-body{border-radius:16px;padding:12px 14px;border:1px dashed var(--color-border-light);background:linear-gradient(180deg,#ffffffe6,#ffffffbf)}.meal-slot-placeholder{font-size:13px;color:var(--color-text-muted)}.meal-slot-title{font-size:14px;font-weight:600}.meal-slot-sub{font-size:12px;color:var(--color-text-muted)}.recipe-card{background:linear-gradient(180deg,var(--color-bg-elevated),rgba(255,255,255,.7));border-radius:20px;padding:16px 16px 12px;border:1px solid var(--color-border-light);box-shadow:0 12px 35px #0f172a0d;margin-bottom:10px;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.recipe-card:hover{transform:translateY(-2px);box-shadow:0 16px 45px #0f172a14}@keyframes appShellIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes btnSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.chat-messages{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.chat-bubble{max-width:80%;padding:10px 12px;border-radius:18px;font-size:14px}.chat-bubble-user{align-self:flex-end;background:var(--chat-bg-user);color:#0f172a;border-radius:18px 18px 4px}.chat-bubble-ai{align-self:flex-start;background:var(--chat-bg-ai);border-radius:18px 18px 18px 4px}.grocery-float-btn{position:fixed;left:calc((100vw - var(--app-root-width)) / 2 + 16px);bottom:calc(var(--bottom-nav-clearance) + 16px);width:52px;height:52px;border-radius:16px;border:0px solid var(--color-border-light);background:var(--color-bg-elevated);box-shadow:0 18px 38px #0f172a29;display:inline-flex;align-items:center;justify-content:center;padding:8px;cursor:pointer;z-index:45;transition:transform .15s ease,box-shadow .15s ease;animation:groceryFloatIn .18s ease;margin-bottom:5px}.grocery-float-btn img{width:28px;height:28px;display:block}.grocery-float-btn:hover{transform:translateY(-1px);box-shadow:0 22px 42px #0f172a33}html.dark .grocery-float-btn{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-strong);box-shadow:0 20px 44px #00000073}html.dark .grocery-float-btn img{filter:brightness(0) saturate(100%) invert(.92)}@keyframes groceryFloatIn{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-input-inner{display:flex;gap:8px;background:var(--color-bg-elevated);padding:6px;border-radius:999px;border:1px solid var(--color-border-light)}.tag{display:inline-block;padding:4px 10px;border-radius:999px;background-color:var(--color-accent);color:#1f2933;font-size:12px;font-weight:500;margin-right:6px;margin-bottom:6px}.soft-card{background:var(--color-bg-elevated);border:1px solid var(--color-border-light);box-shadow:0 14px 40px #1f2a3614}.list-stack{display:flex;flex-direction:column;gap:10px}.block-btn{width:100%}.muted{color:var(--color-text-muted);font-size:14px}.stack{display:flex;flex-direction:column}.gap-sm{gap:10px}.today-page{padding:16px 16px 48px;display:flex;flex-direction:column;gap:12px}.today-swipe-region{display:flex;flex-direction:column;gap:12px;touch-action:pan-y}.today-swipe-region.is-day-swipe-active{-webkit-user-select:none;user-select:none}.today-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.today-header .icon-btn{justify-self:end}.today-header-spacer{width:40px;height:40px}.today-brand{justify-self:center;display:inline-flex;align-items:center;gap:10px}.today-brand-logo{width:34px;height:34px;object-fit:contain}.today-brand-text{font-size:22px;font-weight:700;letter-spacing:.02em;color:var(--color-text-main)}.date-pill{background:var(--color-primary);color:#f7f7f2;border-radius:18px;padding:30px;font-weight:700;text-align:center;font-size:18px}.date-pill.date-pill-nav{display:flex;align-items:center;justify-content:space-between;gap:12px}.date-pill-btn{border:none;background:#fff3;color:#f7f7f2;width:36px;height:36px;border-radius:12px;cursor:pointer;font-weight:700;display:inline-flex;align-items:center;justify-content:center;box-shadow:none;transition:transform .2s ease,background .2s ease}.date-pill-btn:hover{background:#ffffff47;transform:translateY(-1px);box-shadow:none}.date-pill-btn:active{transform:translateY(0);box-shadow:none}.date-pill-icon{width:20px;height:20px}.date-pill-icon-prev{transform:rotate(180deg)}.date-pill-label{flex:1;text-align:center}.date-pill-label--animate{display:inline-block;will-change:transform,opacity}.date-pill-label--animate.is-next{animation:today-day-nav-next .6s cubic-bezier(.22,.7,.2,1) both}.date-pill-label--animate.is-prev{animation:today-day-nav-prev .6s cubic-bezier(.22,.7,.2,1) both}.today-meal-list--animate{will-change:transform,opacity}.today-meal-list--animate.is-next{animation:today-day-nav-next .6s cubic-bezier(.22,.7,.2,1) both}.today-meal-list--animate.is-prev{animation:today-day-nav-prev .6s cubic-bezier(.22,.7,.2,1) both}@keyframes today-day-nav-next{0%{opacity:.2;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes today-day-nav-prev{0%{opacity:.2;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion: reduce){.date-pill-label--animate.is-next,.date-pill-label--animate.is-prev,.today-meal-list--animate.is-next,.today-meal-list--animate.is-prev{animation:none}}.meal-list{display:flex;flex-direction:column;gap:8px}.meal-card{display:flex;align-items:center;gap:14px;background:#fff;border-radius:18px;padding:12px 14px;border:1px solid var(--color-border-light);box-shadow:0 12px 35px #1f2a360f}.meal-icon{width:44px;height:44px;border-radius:12px;background:#6f9f7b33;display:flex;align-items:center;justify-content:center;font-size:20px}.meal-label{font-size:17px;font-weight:600;color:var(--color-text-main)}.ai-card{background:#f8e6d5;border-radius:18px;padding:14px 16px;border:1px solid #f0d7be;touch-action:pan-y}.ai-card-title{font-weight:700;color:var(--color-text-main);margin-bottom:4px}.ai-card-sub{color:var(--color-text-muted);font-size:14px}.chat-page{padding:16px 16px 70px}.chat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.chat-header-text{text-align:center}.chat-title{font-size:22px;font-weight:700}.chat-subtitle{font-size:13px;color:var(--color-text-muted)}.icon-btn{border:none;background:transparent;font-size:18px;cursor:pointer;color:var(--color-text-main)}.back-button{display:inline-flex;align-items:center;gap:8px;padding:4px}.back-icon{width:44px;height:44px;border-radius:999px;background:var(--glass-chrome-bg);border:1px solid var(--glass-chrome-border);display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--glass-chrome-shadow-soft),var(--glass-chrome-highlight);color:var(--color-text-main);backdrop-filter:var(--glass-chrome-blur);-webkit-backdrop-filter:var(--glass-chrome-blur)}.chat-body{display:flex;flex-direction:column;gap:12px}.prompt-pill{background:var(--color-primary);color:#f7f7f2;padding:14px 16px;border-radius:18px;font-weight:600}.chat-card{background:var(--color-bg-elevated);border:1px solid var(--color-border-light);border-radius:20px;padding:16px;box-shadow:0 14px 40px #0f172a0f}.chat-card-title{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;margin-bottom:6px}.chat-card-emoji{font-size:22px}.chat-card-heading{color:var(--color-text-main)}.chat-meta{color:var(--color-text-muted);font-size:14px;display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.chat-section{margin-top:12px}.chat-section-title{font-weight:700;margin-bottom:6px}.chat-list{margin:0;padding-left:18px;color:var(--color-text-main)}.chat-card-actions{display:flex;gap:10px;margin-top:14px}.chip-row{display:flex;gap:8px;flex-wrap:wrap}.chip{border:none;background:var(--chip-bg);color:#1f2a36;border-radius:14px;padding:8px 12px;font-weight:600;font-size:13px;cursor:pointer}.chat-input{flex:1;border-radius:16px;border:1px solid var(--color-border-light);background:var(--input-bg);padding:12px 14px;font-size:14px;outline:none}.chat-input:focus{border-color:var(--color-primary)}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.chip-active{background:#6f9f7b38;color:#1f2a36}.recipe-detail-title{display:flex;align-items:center;gap:8px;font-weight:700}.recipe-emoji{font-size:26px}.meta-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}.meta-item{background:var(--color-bg);border-radius:12px;padding:10px;text-align:center;border:1px solid var(--color-border-light)}.meta-label{display:block;font-size:12px;color:var(--color-text-muted)}.meta-value{font-weight:700;color:var(--color-text-main)}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.divider{height:1px;background:var(--color-border-light);margin:12px 0}.section-block{display:flex;flex-direction:column;gap:6px}.section-label{font-weight:700;color:var(--color-text-main)}.simple-list{margin:0;padding-left:18px;color:var(--color-text-main);display:grid;gap:4px}.cta-row{display:flex;gap:10px;margin-top:14px}.planner-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.planner-week-label{font-weight:700}.planner-week{display:flex;flex-direction:column;gap:12px}.planner-day{border:1px solid var(--color-border-light);border-radius:16px;padding:10px;background:var(--color-bg)}.planner-day-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.planner-day-label{font-weight:700}.planner-slots{display:grid;gap:8px}.planner-slot{background:#fff;border-radius:12px;border:1px dashed var(--color-border-light);padding:10px 12px}.planner-slot-label{font-weight:600;margin-bottom:2px}.planner-slot-empty{color:var(--color-text-muted);font-size:13px}.settings-card{background:#fff;border:1px solid var(--color-border-light);border-radius:16px;padding:12px 14px;box-shadow:0 12px 35px #1f2a3612;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.settings-text{display:flex;flex-direction:column;gap:4px}.settings-title{font-weight:700;color:var(--color-text-main)}.settings-desc{color:var(--color-text-muted);font-size:13px}.settings-arrow{font-weight:700;color:var(--color-text-muted)}.pill-list{display:flex;flex-wrap:wrap;gap:8px}.pill{display:inline-flex;align-items:center;gap:8px;background:var(--color-bg);border:1px solid var(--color-border-light);border-radius:14px;padding:8px 10px;box-shadow:0 8px 25px #1f2a360f}.pill-remove{border:none;background:transparent;color:var(--color-text-muted);cursor:pointer}.id-block{margin-top:10px;padding:12px;border-radius:12px;background:var(--input-bg);font-family:monospace;font-size:14px;border:1px dashed var(--color-border-light)}html.dark{color-scheme:dark}html.dark body{background-color:var(--bg-dark-page);color:var(--text-dark-secondary)}html.dark .app-root,html.dark .app-content,html.dark .screen,html.dark .today-page,html.dark .chat-page{background:var(--bg-dark-page)}html.dark p,html.dark label,html.dark .page-subtitle,html.dark .chat-subtitle,html.dark .chat-meta,html.dark .muted,html.dark .meal-slot-placeholder,html.dark .planner-slot-empty,html.dark .settings-desc,html.dark .meal-slot-sub,html.dark .meta-label,html.dark .divider{color:var(--text-dark-secondary)}html.dark h1,html.dark h2,html.dark h3,html.dark h4,html.dark h5,html.dark h6,html.dark .page-title,html.dark .section-title,html.dark .today-title,html.dark .today-brand-text,html.dark .planner-week-label,html.dark .planner-day-label,html.dark .planner-slot-label,html.dark .meal-slot-label,html.dark .meal-label,html.dark .chat-title,html.dark .chat-card-heading,html.dark .chat-section-title,html.dark .settings-title,html.dark .section-label,html.dark .recipe-title{color:var(--text-dark-primary)}html.dark .card,html.dark .soft-card,html.dark .planner-card,html.dark .planner-day,html.dark .settings-card,html.dark .chat-card{background:var(--bg-dark-surface);border-color:var(--border-dark-strong);box-shadow:var(--shadow-dark-elevated)}html.dark .recipe-card,html.dark .meal-card,html.dark .planner-slot,html.dark .meal-slot-body,html.dark .meta-item,html.dark .ai-card,html.dark .today-meal-card,html.dark .pill,html.dark .tag,html.dark .pill-list .pill{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-subtle);box-shadow:var(--shadow-dark-elevated);color:var(--text-dark-primary)}html.dark .chat-input-inner,html.dark .chat-input,html.dark .input,html.dark .id-block{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);box-shadow:var(--shadow-dark-elevated);color:var(--text-dark-primary)}html.dark .today-meal-menu-btn{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .today-servings-adjust{border-top:1px solid var(--border-dark-subtle);padding-top:8px}html.dark .today-servings-label{color:var(--text-dark-primary)}html.dark .today-servings-control{border-color:var(--border-dark-subtle)}html.dark .today-meal-empty{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-secondary)}html.dark .today-meal-empty-label{color:var(--text-dark-primary)}html.dark .today-meal-empty-sub{color:var(--text-dark-secondary)}html.dark .meal-slot-body,html.dark .planner-slot{border-style:dashed}html.dark .meal-title{color:var(--text-dark-primary)}html.dark .today-meal-text{color:var(--text-dark-secondary)}html.dark .folder-row{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .folder-row-name{color:var(--text-dark-primary)}html.dark .folder-row-sub{color:var(--text-dark-secondary)}html.dark .folder-row:hover{border-color:var(--border-dark-strong)}html.dark .folder-card{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary)}html.dark .folder-card:hover{border-color:var(--border-dark-strong)}html.dark .folder-name{color:var(--text-dark-primary)}html.dark .folder-meta{color:var(--text-dark-secondary)}html.dark .divider{background:var(--border-dark-subtle)}html.dark ::placeholder{color:var(--text-dark-secondary);opacity:.85}html.dark .recipes-search-card{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle)}html.dark .search-input,html.dark .tag-search-input{background:var(--input-bg);border-color:var(--border-dark-subtle);color:var(--text-dark-primary);box-shadow:inset 0 0 0 1px #ffffff05}html.dark .btn{color:var(--text-dark-primary);box-shadow:none;transition:transform .12s ease,background-color .12s ease,border-color .12s ease}html.dark .btn:not(.btn-primary):not(.btn-peach):not(.btn-ghost){background:var(--bg-dark-surface-elevated);border:1px solid var(--border-dark-subtle)}html.dark .btn:not(.btn-primary):not(.btn-peach):not(.btn-ghost):hover{background:var(--bg-dark-surface);border-color:var(--border-dark-strong)}html.dark .btn-primary{background:#b2d1b1;color:#0c1827;border:1px solid #8ab090;box-shadow:0 12px 28px #0000005c}html.dark .btn-primary:hover{background:#c1daba;border-color:#9bc29c}html.dark .btn-primary:active{background:#a1c59c;transform:translateY(1px)}html.dark .btn-peach{background:#f4ba8f;color:#0f172a;border:1px solid #dca277;box-shadow:0 12px 28px #00000052}html.dark .btn-peach:hover{background:#f6c69f;border-color:#e0ac86}html.dark .btn-ghost{background:var(--bg-dark-surface);color:var(--text-dark-primary);border:1px solid var(--border-dark-strong)}html.dark .btn-ghost:hover{background:var(--bg-dark-surface-elevated);border-color:var(--border-dark-strong)}html.dark .btn-ghost:active,html.dark .btn:active{transform:translateY(1px)}html.dark .btn:focus-visible,html.dark .icon-btn:focus-visible,html.dark .planner-slot-delete:focus-visible,html.dark .planner-slot-drag:focus-visible,html.dark .pill-remove:focus-visible,html.dark .input:focus-visible,html.dark .chat-input:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;box-shadow:0 0 0 2px #92be9740}html.dark .icon-btn,html.dark .planner-slot-delete,html.dark .planner-slot-drag,html.dark .pill-remove{color:var(--text-dark-secondary);transition:color .15s ease,background .15s ease,border-color .15s ease}html.dark .back-icon{background:var(--glass-chrome-bg);border-color:var(--glass-chrome-border);color:var(--text-dark-primary)}html.dark .planner-slot-drag{background:var(--bg-dark-surface);border-color:var(--border-dark-subtle);color:var(--text-dark-primary);box-shadow:inset 0 0 0 1px #ffffff08}html.dark .icon-btn:hover,html.dark .planner-slot-delete:hover,html.dark .planner-slot-drag:hover,html.dark .pill-remove:hover{color:var(--text-dark-primary);background:#ffffff08;border-color:var(--border-dark-strong)}html.dark .planner-slot-delete{border-color:var(--border-dark-subtle)}html.dark .recipe-emoji,html.dark .chat-card-emoji,html.dark .planner-day-icon,html.dark .meal-icon{opacity:.9;color:var(--text-dark-primary)}html.dark .card,html.dark .recipe-card,html.dark .meal-card,html.dark .today-meal-card,html.dark .planner-slot,html.dark .settings-card,html.dark .chat-card{transition:transform .12s ease,background-color .12s ease,border-color .12s ease}html.dark .recipe-card:hover,html.dark .meal-card:hover,html.dark .today-meal-card:hover,html.dark .planner-slot:hover,html.dark .settings-card:hover,html.dark .chat-card:hover,html.dark .card:hover{transform:translateY(-1px);border-color:var(--border-dark-strong)}html.dark .recipe-card:active,html.dark .meal-card:active,html.dark .today-meal-card:active,html.dark .planner-slot:active,html.dark .settings-card:active,html.dark .chat-card:active,html.dark .card:active{transform:translateY(1px);background:var(--bg-dark-surface)}html.dark .planner-day{transition:border-color .12s ease,background-color .12s ease,transform .12s ease}html.dark .planner-day:hover{border-color:var(--border-dark-strong)}html.dark .planner-day:focus-within,html.dark .planner-day.active{border-color:var(--border-dark-strong);background:var(--bg-dark-surface-elevated)}html.dark .chip{transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .12s ease}html.dark .chip:hover{transform:translateY(-1px)}html.dark .chip-active{background:var(--bg-dark-surface-elevated);color:var(--text-dark-primary);border:1px solid var(--border-dark-strong);box-shadow:none}html.dark .chat-bubble-user,html.dark .chat-bubble-ai{transition:transform .12s ease,background-color .12s ease,border-color .12s ease}html.dark .chat-bubble-user:hover,html.dark .chat-bubble-ai:hover{transform:translateY(-1px)}html.dark .chat-bubble-user:active,html.dark .chat-bubble-ai:active{transform:translateY(1px);background:#ffffff0a}.limit-modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:14px}.limit-modal .modal-close{color:#b33939}.limit-modal .modal-close:hover{color:#982a2a}.limit-modal-upgrade-btn{display:inline-flex;align-items:center;gap:7px;flex-direction:row-reverse;background:linear-gradient(135deg,#f6df9f,#e7c171);color:#5e430c;border:1px solid rgba(195,155,77,.58);box-shadow:0 8px 16px #7a5d2333}.limit-modal-upgrade-btn:hover{transform:translateY(-1px);filter:saturate(1.06)}.limit-modal-upgrade-btn:active{transform:translateY(1px)}html.dark .limit-modal .modal-close{color:#ef8d8d}.reset-success-modal{max-width:420px;border-radius:28px;background:radial-gradient(circle at top,rgba(196,218,172,.32),transparent 42%),linear-gradient(180deg,#fffcf5fa,#faf6eafa);border:1px solid rgba(176,194,150,.4);box-shadow:0 22px 54px #21324d2e}.reset-success-copy{margin:4px 0 0;font-size:.98rem;line-height:1.65;color:var(--text-primary)}.reset-success-btn{min-width:104px;justify-content:center}html.dark .reset-success-modal{background:radial-gradient(circle at top,rgba(128,171,117,.2),transparent 44%),linear-gradient(180deg,#171f28f5,#12181ffa);border-color:#89a17257;box-shadow:0 22px 54px #0006}html.dark .reset-success-copy{color:var(--text-dark-primary)}.fade-in{animation:fade-in .25s ease-out}html.no-page-fade .fade-in{animation:none!important;transform:none!important;opacity:1!important}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
