:root{--bg-main:#f9fafb;--bg-card:#fff;--text-main:#0f1115;--text-muted:#6b7280;--primary:#0f1115;--primary-dark:#000;--secondary:#6b7280;--accent:#2951ff;--border:#e5e7eb;--border-hover:#0f1115;--success:#16a34a;--danger:#dc2626;--warning:#f1c40f;--purple:#9b59b6;--pending:#fbc02d;--shadow-card:none;--font-display:"Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"Roboto Mono", "SFMono-Regular", Menlo, Consolas, monospace}[data-theme=dark]{--bg-main:#0f172a;--bg-card:#1e293b;--text-main:#e2e8f0;--text-muted:#94a3b8;--primary:#38bdf8;--primary-dark:#0ea5e9;--border:#334155;--border-hover:#475569;--shadow-card:0 10px 30px #0006}[data-theme=neon]{--bg-main:#0d0221;--bg-card:#190440;--text-main:#f5f3ff;--text-muted:#b9a9e0;--primary:#ff007f;--primary-dark:#d1006a;--secondary:#fcee0a;--accent:#0fc;--border:#38226b;--border-hover:#4b2f8c;--shadow-card:0 10px 30px #ff007f40}[data-theme=ocean]{--bg-main:#082f49;--bg-card:#0c4a6e;--text-main:#e0f2fe;--text-muted:#7dd3fc;--primary:#0ea5e9;--primary-dark:#0284c7;--border:#075985;--border-hover:#0369a1;--shadow-card:0 10px 30px #00000059}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{height:100%}body{font-family:var(--font-display);background:var(--bg-main);min-height:100%;color:var(--text-main);overscroll-behavior-y:contain;-webkit-font-smoothing:antialiased;margin:0;transition:background-color .2s,color .2s}.mono{font-family:var(--font-mono)}#root{min-height:100dvh}.container{max-width:480px;padding:calc(env(safe-area-inset-top,0px) + 24px) 16px calc(env(safe-area-inset-bottom,0px) + 24px);min-height:100dvh;margin:0 auto}@media (width>=900px){.container.dashboard-wide{max-width:1100px}}.tasks-compact .task-list{gap:8px}.tasks-compact .task-card-column{gap:6px;padding:8px 10px}.tasks-compact .form-row{gap:2px;margin-bottom:4px}.tasks-compact .form-row label{font-size:.78rem}@media (width>=640px){.tasks-compact .task-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-items:start;display:grid}}.task-card-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.task-card-header>span{flex:1;min-width:0}.task-title,.task-title .badge{font-weight:800}.check-btn{border:1.5px solid var(--border);background:var(--bg-card);width:30px;height:30px;color:var(--text-main);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;font-size:.95rem;line-height:1;transition:background .15s,border-color .15s,color .15s;display:flex}.check-btn:hover:not(:disabled){border-color:var(--success);color:var(--success)}.check-btn.done{background:var(--success);border-color:var(--success);color:#fff}.check-btn:disabled{opacity:.55;cursor:default}.photo-drop{border:1.5px dashed var(--border);color:var(--text-muted);text-align:center;cursor:pointer;border-radius:10px;padding:7px 10px;font-size:.76rem;transition:border-color .15s,background .15s,color .15s}.photo-drop-compact{flex:none;justify-content:center;align-items:center;gap:4px;width:76px;min-width:76px;height:30px;padding:0 6px;display:inline-flex}.photo-drop-compact .photo-drop-label{font-size:.82rem;line-height:1}.photo-drop-compact .photo-drop-text,.photo-drop-compact .error{display:none}.photo-drop:hover{border-color:var(--border-hover)}.photo-drop.drag-over{border-color:var(--accent);color:var(--text-main);background:#2951ff0f}.photo-drop.uploaded{border-style:solid;border-color:var(--success);color:var(--success)}.photo-drop .error{margin-top:4px;display:block}.form-accordion{border:1px solid var(--border);border-radius:10px;padding:6px 10px}.form-accordion summary{cursor:pointer;color:var(--text-muted);font-size:.8rem;font-weight:700;list-style:none}.form-accordion summary::-webkit-details-marker{display:none}.form-accordion summary:before{content:"▸ "}.form-accordion[open] summary:before{content:"▾ "}.form-accordion[open] summary{margin-bottom:8px}.form-accordion .form-row{margin-bottom:0}.dashboard-grid{flex-wrap:wrap;gap:24px;display:flex}.dashboard-grid .col{flex-direction:column;flex:1;gap:20px;min-width:320px;display:flex}.dashboard-grid .col>section,.dashboard-grid .col>.card{margin-bottom:0}.col-narrow{max-width:700px;margin:0 auto}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-main);font-weight:700}h1{margin-bottom:24px;font-size:1.5rem}.btn-primary,.btn-secondary{cursor:pointer;touch-action:manipulation;text-transform:uppercase;letter-spacing:.6px;border:none;border-radius:10px;min-height:44px;padding:12px 20px;font-size:.85rem;font-weight:700;transition:opacity .15s,border-color .15s,background .15s}.btn-primary{background:var(--primary);color:#fff;width:100%;box-shadow:none}.btn-primary:hover:not(:disabled){opacity:.85}.btn-secondary{color:var(--text-muted);border:1px solid var(--border);background:0 0;width:100%;margin-top:16px}.btn-secondary:hover:not(:disabled){border-color:var(--text-main);color:var(--text-main)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.55;cursor:default;transform:none}#user-photo{border-radius:50%;margin-bottom:8px;display:block}.error{color:var(--danger);min-height:1.2em}.header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.header h1{margin-bottom:4px}.stat-line{color:var(--text-muted);margin:0;font-size:.95rem;font-weight:600}.banner{color:var(--text-main);background:linear-gradient(135deg,#21c4b926,#00b4d826);border:1px solid #21c4b94d;border-radius:14px;margin-bottom:16px;padding:12px 14px;font-size:.95rem;font-weight:700;animation:.3s fadeIn}.install-hint{background:linear-gradient(135deg,#2951ff14,#16a34a14);border:1px solid #2951ff33;border-radius:16px;margin:16px 0 18px;padding:14px 16px}.install-hint h2{margin:0 0 8px;font-size:1rem}.install-hint p{color:var(--text-muted);margin:0 0 10px;line-height:1.5}.install-hint ol{color:var(--text-main);margin:0 0 10px 20px;padding:0;line-height:1.55}.preview-banner{z-index:50;color:#1a1a1a;background:linear-gradient(135deg,#ff9f43,#feca57);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-weight:700;display:flex;position:sticky;top:0;box-shadow:0 2px 10px #0003}.preview-content{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.9;filter:grayscale(.08)}.preview-content .preview-interactive{pointer-events:auto;-webkit-user-select:auto;user-select:auto}section{margin-bottom:28px;animation:.25s fadeIn}section h2{margin-bottom:10px;font-size:1.1rem}.task-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.assignment-column{min-height:0}.assignment-panel{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:16px;flex-direction:column;max-height:68vh;padding:10px 10px 6px;display:flex;overflow:hidden}.assignment-panel h3,.assignment-panel .subtle{margin-top:0}.assignment-panel h3{margin-bottom:4px}.assignment-panel .subtle{margin-bottom:8px}.assignment-task-list{gap:6px;min-height:0;padding-right:4px;overflow-y:auto}.task-card{background:var(--bg-card);box-shadow:var(--shadow-card);border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:.86rem;transition:border-color .15s;display:flex}.task-card:hover{border-color:var(--border-hover)}.task-card.dragging{opacity:.5}.drag-handle{cursor:grab;color:var(--text-muted);margin-right:4px}.task-card-column{flex-direction:column;align-items:stretch}.reward-card{flex-direction:column;align-items:stretch;gap:8px;padding:8px 10px}.reward-card-main{justify-content:space-between;align-items:center;gap:8px;display:flex}.reward-feedback{color:var(--text-muted);margin:0;font-size:.78rem}.reward-title{font-weight:800}.reward-redeem-btn{color:#111;letter-spacing:.6px;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #111;border-radius:9px;flex:none;min-height:34px;padding:0 12px;font-size:.72rem;font-weight:800;transition:background .15s,color .15s,opacity .15s}.reward-redeem-btn:hover:not(:disabled){background:#1111110f}.reward-redeem-btn:disabled{opacity:.5;cursor:default}.task-info{text-align:left;flex-direction:column;flex:1;gap:2px;min-width:0;line-height:1.2;display:flex}.btn-row{gap:8px;display:flex}.btn-row .btn-compact{flex:1}.btn-compact{white-space:nowrap;border-radius:8px;width:auto;min-height:38px;margin-top:0;padding:8px 16px;font-size:.75rem}.inline-action{letter-spacing:.12em;border-radius:6px;flex:none;width:auto;height:24px;min-height:24px;margin-top:0;padding:4px 8px;font-size:.68rem;line-height:1}.danger-inline-action{color:#e74c3c;box-shadow:none;background:0 0;border:1px solid #e74c3c}.danger-inline-action:hover:not(:disabled){color:#d84333;background:#e74c3c0a;border-color:#d84333}.btn-compact:disabled{opacity:.6;cursor:default}.empty-state{color:var(--text-muted);font-size:.9rem;list-style:none}.task-info{text-align:left;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.icon-btn{background:var(--warning);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;min-height:36px;padding:0;font-size:1rem;display:inline-flex}.icon-btn-danger{background:var(--danger)}.hero-card{color:#fff;box-shadow:var(--shadow-card);background:linear-gradient(135deg, var(--primary), var(--accent));border-radius:24px;margin-bottom:20px;padding:20px}.hero-card.orange{background:linear-gradient(135deg, var(--secondary), #ffcf7d)}.hero-card h1,.hero-card h2{color:#fff;margin:0 0 4px}.hero-card .stat-line{color:#ffffffe6}.hero-card .stat-label{color:#fffc;text-transform:uppercase;letter-spacing:1px;margin-bottom:2px;font-size:.7rem;font-weight:700;display:block}.hero-card.header{align-items:center}.hero-card .btn-secondary{color:#fff;background:#ffffff40;border-color:#fff6;width:auto;margin-top:0}.header.hero-card:not(.orange){background:var(--bg-card);color:var(--text-main);border:none;border-bottom:1px solid var(--border);box-shadow:none;margin:calc(-1 * (env(safe-area-inset-top,0px) + 24px)) -16px 20px;padding:calc(env(safe-area-inset-top,0px) + 20px) 16px 16px;border-radius:0}.header.hero-card:not(.orange) h1{color:var(--text-main)}.header.hero-card:not(.orange) .stat-line,.header.hero-card:not(.orange) .stat-label{color:var(--text-muted)}.header.hero-card:not(.orange) .btn-secondary{color:var(--text-muted);border:1px solid var(--border);background:0 0}.header.hero-card:not(.orange) .btn-secondary:hover:not(:disabled){border-color:var(--text-main);color:var(--text-main)}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:2px;font-size:.7rem;font-weight:700;display:block}.stats-card{text-align:center;justify-content:space-around;display:flex}.stats-card .stat-block{flex-direction:column;gap:4px;display:flex}.stat-value{font-family:var(--font-mono);font-size:1.7rem;font-weight:700}.stat-value.teal{color:var(--primary)}.stat-value.red{color:var(--danger)}.stat-value.orange{color:var(--secondary)}.north-star{background:var(--bg-card);border:1px solid #ffd70099;border-radius:18px;margin-bottom:20px;padding:16px 18px;font-style:italic;box-shadow:0 0 20px #ffd70040}.card{background:var(--bg-card);box-shadow:var(--shadow-card);border:1px solid var(--border);border-radius:14px;margin-bottom:12px;padding:16px}.task-divider{border-top:2px dashed var(--border);text-align:left;margin-top:20px;padding-top:16px}.form-row{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.form-row label{color:var(--text-muted);font-size:.85rem;font-weight:700}.form-row input,.form-row select,.form-row textarea{border:1px solid var(--border);background:var(--bg-card);width:100%;min-height:40px;color:var(--text-main);border-radius:12px;padding:10px 12px;font-family:inherit;font-size:1rem}.form-row textarea{resize:vertical;min-height:70px}.form-inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.form-inline>*{border-radius:12px;flex:1;min-width:120px}.subcard{background:var(--bg-main);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;padding:12px}.subcard label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px;font-size:.75rem;font-weight:800;display:block}.subcard input,.subcard select{border:1px solid var(--border);background:var(--bg-card);width:100%;min-height:40px;color:var(--text-main);border-radius:10px;margin-bottom:8px;padding:10px 12px;font-family:inherit;font-size:1rem}.subcard .btn-primary{margin-top:0}.manual-action-msg{text-align:center;color:var(--success);margin-top:10px;font-size:.85rem;font-weight:800}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:center;gap:4px;margin-bottom:24px;display:flex}.tab-btn{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;min-height:36px;margin-bottom:-1px;padding:10px 16px;font-size:.72rem;font-weight:700;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--text-main);background:0 0}.tab-btn.active{color:var(--text-main);border-bottom-color:var(--accent);box-shadow:none;background:0 0}.subtle{color:var(--text-muted);font-size:.85rem}.progress-track{background:var(--border);border-radius:8px;height:10px;margin:6px 0;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width .4s}.badge{text-transform:uppercase;background:var(--border);color:var(--text-main);border-radius:12px;padding:2px 10px;font-size:.7rem;font-weight:800;display:inline-block}.badge-pending{color:#b06000;background:#fef7e0}.badge-approved{color:#137333;background:#e6f4ea}.badge-rejected{color:#c5221f;background:#fce8e6}table.data-table{border-collapse:collapse;width:100%;font-size:.85rem}table.data-table th,table.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:6px 4px}.home-launcher,.meals-app-shell{--meals-ink:#26372c;--meals-green:#294632;--meals-muted:#6c786f;--meals-line:#dce4dd;--meals-red:#c94f3d;--meals-paper:#f4f6f2;min-height:100dvh;color:var(--meals-ink);font-family:DM Sans,Avenir Next,sans-serif}.home-launcher{background:#f1f5f1;place-items:center;padding:48px 24px;display:grid}.home-launcher-inner{width:min(920px,100%)}.home-launcher-kicker,.meals-eyebrow{color:#56725d;letter-spacing:1.4px;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:800}.home-launcher h1,.meals-main>h1{color:var(--meals-ink);letter-spacing:0;margin:10px 0 12px;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.4rem,7vw,4rem);line-height:1.02}.home-launcher-copy,.meals-subheading{color:var(--meals-muted);margin:0;font-size:1.05rem}.home-launcher-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:32px;display:grid}.home-app-choice{border:1px solid var(--meals-line);min-height:245px;color:var(--meals-ink);text-align:left;cursor:pointer;background:#fff;border-radius:8px;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:28px;display:flex}.home-app-choice.meals{border-color:var(--meals-red);background:var(--meals-red);color:#fff}.home-choice-icon{color:#42634b;background:#edf3ee;border-radius:50%;place-items:center;width:48px;height:48px;display:grid}.home-app-choice.meals .home-choice-icon{color:#fff;background:#ffffff2e}.home-choice-icon svg{width:24px}.home-app-choice strong{font-family:Georgia,serif;font-size:1.75rem;display:block}.home-app-choice small{color:#748077;max-width:330px;margin-top:8px;font-size:.9rem;line-height:1.5;display:block}.home-app-choice.meals small{color:#ffffffd1}.app-switcher-button{z-index:120;top:calc(env(safe-area-inset-top,0px) + 12px);border:1px solid var(--border);background:var(--bg-card);width:44px;height:44px;color:var(--text-main);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:fixed;left:12px}.app-switcher-button svg{width:19px}.meals-app-shell{background:var(--meals-paper);transition:margin-right .18s}.meals-app-shell.chat-open{margin-right:var(--meal-chat-width)}.meal-chat-resizing .meals-app-shell{transition:none}.meals-header{z-index:90;border-bottom:1px solid var(--meals-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff2;position:sticky;top:0}.meals-header-inner{align-items:center;gap:24px;max-width:1180px;min-height:72px;margin:0 auto;padding:0 24px;display:flex}.meals-brand{color:var(--meals-green);white-space:nowrap;font-family:Georgia,serif;font-size:1.45rem}.meals-back,.meals-nav button{color:#617067;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:7px;min-height:40px;padding:9px 12px;font:700 .88rem inherit;display:inline-flex}.meals-back svg,.meals-nav svg{width:17px}.meals-nav{gap:4px;margin-left:auto;display:flex}.meals-nav button.active{background:var(--meals-green);color:#fff}.meal-chat-toggle{border:1px solid var(--meals-line);color:#a54132;cursor:pointer;background:#f8eeeb;border-radius:50%;flex:0 0 42px;place-items:center;width:42px;height:42px;padding:0;display:grid}.meal-chat-toggle svg{width:19px}.meals-main{max-width:1180px;min-height:calc(100dvh - 72px);margin:0 auto;padding:42px 24px 64px}.meals-eyebrow{color:#a54132}.meals-toolbar{justify-content:space-between;gap:12px;margin:28px 0 20px;display:flex}.recipe-filters{flex-wrap:wrap;gap:7px;margin:-6px 0 22px;display:flex}.recipe-filters button{border:1px solid var(--meals-line);color:#5c6d61;cursor:pointer;background:#fff;border-radius:18px;min-height:36px;padding:7px 13px;font-weight:700}.recipe-filters button.active{border-color:var(--meals-green);background:var(--meals-green);color:#fff}.recipe-toolbar-actions{gap:10px;display:flex}.recipe-import-panel{border:1px solid var(--meals-line);background:#fff;border-left:4px solid #d0523f;border-radius:6px;margin:0 0 24px;padding:24px}.recipe-import-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.recipe-import-heading span{color:#a54132;letter-spacing:1px;text-transform:uppercase;font-size:.7rem;font-weight:800}.recipe-import-heading h2{color:var(--meals-green);margin:5px 0 0;font-family:Georgia,serif;font-size:1.65rem}.recipe-import-heading button{width:40px;height:40px;color:var(--meals-green);cursor:pointer;background:#edf2ed;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.recipe-import-heading svg{width:18px}.recipe-import-inputs{grid-template-columns:minmax(0,1.4fr) minmax(220px,.6fr);gap:16px;margin-top:18px;display:grid}.recipe-import-inputs>label{color:#617067;font-size:.75rem;font-weight:700}.recipe-import-inputs textarea,.recipe-import-fields input,.recipe-import-fields select{width:100%;min-height:44px;color:var(--meals-ink);font:inherit;background:#fff;border:1px solid #d3dcd4;border-radius:6px;margin-top:7px;padding:10px 12px}.recipe-file-picker{text-align:center;cursor:pointer;background:#f7faf7;border:1px dashed #9fb1a2;border-radius:6px;place-content:center;justify-items:center;gap:6px;min-height:132px;padding:20px;display:grid}.recipe-file-picker.dragging{border-color:var(--meals-red);background:#fdf2ef;box-shadow:inset 0 0 0 2px #d0523f1f}.recipe-file-picker.dragging svg{color:var(--meals-red);transform:translateY(-2px)}.recipe-file-picker svg{color:#5f7c65;width:28px}.recipe-file-picker span{color:#7a867e;font-size:.7rem}.recipe-file-picker input{opacity:0;width:1px;height:1px;position:absolute}.recipe-import-files{flex-wrap:wrap;gap:7px;margin-top:12px;display:flex}.recipe-import-files span{color:#526258;background:#f4f7f4;border:1px solid #d8e0d9;border-radius:4px;padding:5px 8px;font-size:.75rem}.recipe-import-actions{justify-content:space-between;align-items:center;gap:14px;min-height:48px;margin-top:14px;display:flex}.recipe-import-actions p{color:#647168;margin:0;font-size:.82rem}.recipe-import-review{border-top:1px solid var(--meals-line);margin-top:20px;padding-top:18px}.recipe-import-review h3{color:var(--meals-green);margin:0 0 12px;font-family:Georgia,serif;font-size:1.25rem}.recipe-import-draft{border-top:1px solid #e4e9e4;padding:16px 0}.recipe-import-draft.excluded{opacity:.5}.recipe-import-include{color:var(--meals-green);font-size:.8rem;font-weight:800}.recipe-import-fields{grid-template-columns:minmax(180px,2fr) 1fr .6fr .6fr;gap:10px;margin-top:10px;display:grid}.recipe-import-fields label{color:#617067;font-size:.7rem;font-weight:700}.recipe-import-draft p{color:#647168;white-space:pre-wrap;margin:10px 0 0;font-size:.8rem;line-height:1.5}.recipe-import-save{justify-content:flex-end;margin-top:16px;display:flex}.staples-panel{border:1px solid var(--meals-line);background:#fff;border-radius:6px;margin:0 0 24px;padding:20px 22px}.staples-heading{justify-content:space-between;align-items:end;gap:20px;display:flex}.staples-heading .meals-eyebrow{margin:0 0 4px}.staples-heading h2{color:var(--meals-green);margin:0;font-family:Georgia,serif;font-size:1.4rem}.staples-heading span{color:#748178;margin-top:5px;font-size:.76rem;display:block}.staples-heading form{gap:8px;display:flex}.staples-heading input{width:min(260px,30vw);min-height:44px;color:var(--meals-ink);font:inherit;background:#fff;border:1px solid #d3dcd4;border-radius:6px;padding:10px 12px}.staples-list{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.staples-list>p{color:#7b887f;margin:0;font-size:.8rem}.staple-item{background:#f7f9f7;border:1px solid #dce4dd;border-radius:5px;align-items:stretch;min-height:38px;display:inline-flex}.staple-item.selected{background:#eaf1eb;border-color:#9eb3a2}.staple-item label{color:#526258;cursor:pointer;align-items:center;gap:7px;padding:8px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.staple-item input{width:17px;height:17px;accent-color:var(--meals-green);margin:0}.staple-item>button{color:#9a4b3d;cursor:pointer;background:0 0;border:0;border-left:1px solid #dce4dd;place-items:center;width:34px;padding:0;display:grid}.staple-item>button svg{width:14px}.meals-search{flex:1;max-width:430px;position:relative}.meals-search svg{color:#738078;width:18px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.meals-search input,.recipe-editor input,.recipe-editor select,.recipe-editor textarea,.meal-day select,.shopping-add input{width:100%;min-height:46px;color:var(--meals-ink);background:#fff;border:1px solid #d3dcd4;border-radius:6px;padding:11px 12px;font:500 1rem inherit}.meals-search input{padding-left:42px}.meals-primary,.recipe-secondary{cursor:pointer;border:0;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:11px 16px;font:700 .9rem inherit;display:inline-flex}.meals-primary{background:var(--meals-red);color:#fff}.recipe-secondary{color:#36523d;background:#edf2ed}.meals-primary svg,.recipe-secondary svg{width:18px}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.recipe-card{border:1px solid var(--meals-line);background:#fff;border-radius:6px;flex-direction:column;min-height:215px;padding:20px;display:flex}.recipe-card-top{justify-content:space-between;gap:12px;display:flex}.recipe-card-top span{color:#a54132;letter-spacing:1px;text-transform:uppercase;font-size:.7rem;font-weight:800}.recipe-card h2,.shopping-panel h2{color:var(--meals-green);margin:6px 0 0;font-family:Georgia,serif;font-size:1.45rem}.recipe-heart{color:var(--meals-red)}.recipe-meta{color:#738078;gap:14px;margin-top:16px;font-size:.8rem;display:flex}.recipe-meta span{align-items:center;gap:5px;display:inline-flex}.recipe-meta svg{width:15px}.recipe-card p{color:#647168;font-size:.82rem;line-height:1.45}.recipe-rating-summary{color:#66736b;cursor:pointer;background:#f8faf8;border:1px solid #e0e7e0;border-radius:5px;align-items:center;gap:8px;width:100%;min-height:44px;margin:auto 0 12px;padding:9px 10px;display:flex}.recipe-rating-summary:hover{background:#f2f6f2;border-color:#b7c6b9}.recipe-rating-summary strong{color:var(--meals-green);font-size:.82rem}.recipe-rating-summary small{color:#7d8981;margin-left:auto;font-size:.68rem}.recipe-rating-stars{color:#d29832;gap:1px;display:inline-flex}.recipe-rating-stars svg{width:15px;height:15px}.recipe-actions{gap:8px;margin-top:auto;display:flex}.recipe-actions button{color:#36523d;cursor:pointer;background:#edf2ed;border:0;border-radius:5px;align-items:center;gap:5px;min-height:34px;padding:7px 11px;display:inline-flex}.recipe-actions svg{width:15px}.meals-empty{text-align:center;background:#fff;border:1px dashed #bfcabf;border-radius:8px;grid-column:1/-1;place-content:center;justify-items:center;min-height:280px;padding:32px;display:grid}.meals-empty svg{color:#6a856f;width:42px;height:42px}.meals-empty h2{color:var(--meals-green);font-family:Georgia,serif}.week-grid{grid-template-columns:repeat(7,minmax(145px,1fr));gap:10px;margin-top:28px;padding-bottom:8px;display:grid;overflow-x:auto}.week-heading{justify-content:space-between;align-items:end;gap:24px;display:flex}.week-heading h1{margin-bottom:4px}.week-heading .meals-subheading{margin:0}.week-picker{align-items:end;gap:8px;display:flex}.week-picker>button{border:1px solid var(--meals-line);width:42px;height:42px;color:var(--meals-green);cursor:pointer;background:#fff;border-radius:6px;place-items:center;padding:0;display:grid}.week-picker svg{width:19px}.week-picker label{color:#6e7c73;letter-spacing:.7px;text-transform:uppercase;font-size:.7rem;font-weight:800}.week-picker input{border:1px solid var(--meals-line);min-height:42px;color:var(--meals-ink);font:inherit;background:#fff;border-radius:6px;margin-top:5px;padding:8px 10px;display:block}.meal-type-steps{border:1px solid var(--meals-line);background:#fff;border-radius:6px;grid-template-columns:repeat(4,1fr);margin-top:26px;display:grid;overflow:hidden}.meal-type-steps button{border:0;border-right:1px solid var(--meals-line);color:#69766e;cursor:pointer;background:#fff;min-height:54px;font-weight:700}.meal-type-steps button:last-child{border-right:0}.meal-type-steps button span{color:#63766a;background:#edf2ed;border-radius:50%;place-items:center;width:24px;height:24px;margin-right:8px;font-size:.72rem;display:inline-grid}.meal-type-steps button.active{background:var(--meals-green);color:#fff}.meal-type-steps button.active span{color:var(--meals-green);background:#fff}.meal-day{border:1px solid var(--meals-line);background:#fff;border-radius:6px;min-height:260px;padding:15px}.meal-day>strong{color:var(--meals-green);display:block}.meal-day>span{color:#839087;font-size:.75rem}.meal-day label{color:#7a877e;letter-spacing:.8px;text-transform:uppercase;margin:18px 0 6px;font-size:.65rem;font-weight:800;display:block}.meal-day select{min-height:40px;padding:8px;font-size:.8rem}.meal-replace-button{color:#617067;text-align:left;cursor:pointer;background:#f8faf8;border:1px dashed #aab8ac;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:46px;padding:9px 10px;display:flex}.meal-replace-button.planned{color:var(--meals-green);background:#edf3ed;border-style:solid;border-color:#b9c9bc;font-weight:800}.meal-replace-button span{overflow-wrap:anywhere;min-width:0}.meal-replace-button svg{flex:0 0 16px;width:16px}.meal-replace-button.side{background:#fbfaf4}.ai-planner{border:1px solid #d7e0d8;border-left:4px solid var(--meals-red);background:#fff;border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:14px;margin-top:26px;padding:22px;display:grid}.ai-planner label{color:#4e6254;font-size:.82rem;font-weight:700}.ai-planner textarea{width:100%;min-height:54px;color:var(--meals-ink);resize:vertical;background:#f9fbf9;border:1px solid #ccd7ce;border-radius:5px;margin-top:7px;padding:11px 12px;font:500 .9rem inherit}.ai-reason{color:#6a4c46;background:#f8eeeb;border-radius:5px;margin:10px 0 0;padding:9px;font-size:.7rem;line-height:1.4}.meal-calendar-context{border-top:1px solid #edf1ed;margin-top:12px;padding-top:10px}.meal-calendar-context.busy{border-top-color:#e4b4aa}.meal-calendar-context p{color:#66736b;margin:5px 0;font-size:.68rem;line-height:1.35}.meal-calendar-context strong{color:#a54132}.meals-status{color:#617067;min-height:20px;font-size:.82rem}.full-meal-calendar{border:1px solid var(--meals-line);background:#fff;border-radius:6px;margin-top:28px;padding:22px}.full-meal-calendar-head{justify-content:space-between;align-items:end;gap:18px;display:flex}.full-meal-calendar-head .meals-eyebrow{margin:0 0 5px}.full-meal-calendar-head h2{color:var(--meals-green);margin:0;font-family:Georgia,serif;font-size:1.65rem}.full-meal-calendar-head>span{color:#748178;font-size:.78rem}.full-meal-grid{grid-template-columns:repeat(7,minmax(145px,1fr));gap:10px;margin-top:18px;padding-bottom:8px;display:grid;overflow-x:auto}.full-meal-grid>article{background:#fafcf9;border:1px solid #e0e6e0;border-radius:5px;padding:13px}.full-meal-grid>article>strong{color:var(--meals-green);font-size:.88rem;display:block}.full-meal-grid>article>span{color:#839087;font-size:.7rem}.planned-meal-check{cursor:pointer;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:7px;margin-top:11px;display:grid}.planned-meal-check input{accent-color:var(--meals-red);margin:2px 0 0}.planned-meal-check span{color:#435548;min-width:0;font-size:.76rem;line-height:1.25}.planned-meal-check small{color:#87928b;letter-spacing:.6px;text-transform:uppercase;margin-bottom:2px;font-size:.58rem;font-weight:800;display:block}.planned-meal-check.empty{cursor:default;opacity:.55}.planned-meal-check.side{border-left:2px solid #d9e1da;margin-left:17px;padding-left:7px}.week-footer{justify-content:space-between;align-items:center;gap:14px;margin-top:18px;display:flex}.shopping-layout{grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:20px;margin-top:28px;display:grid}.shopping-heading{justify-content:space-between;align-items:end;gap:18px;display:flex}.shopping-heading .meals-subheading{margin-bottom:4px}.shopping-heading span{color:#7a877e;font-size:.78rem}.shopping-heading+.staples-panel{margin-top:24px}.shopping-export-actions{gap:8px;display:flex}.shopping-export-actions button:disabled{cursor:not-allowed;opacity:.5}.shopping-export-status{color:#617067;min-height:20px;margin:12px 0 0;font-size:.8rem}.shopping-panel{border:1px solid var(--meals-line);background:#fff;border-radius:6px;padding:22px}.shopping-item{border-bottom:1px solid #edf1ed;align-items:stretch;min-height:48px;display:flex}.shopping-item>label{cursor:pointer;flex:1;align-items:center;gap:11px;min-width:0;display:flex}.shopping-item input{width:20px;height:20px;accent-color:var(--meals-red);flex:0 0 20px}.shopping-item span{flex:1;min-width:0}.shopping-item small{color:#6d7a71}.shopping-item.checked span{color:#8b958e;text-decoration:line-through}.shopping-visibility,.shopping-hidden-item button{color:#728078;cursor:pointer;background:0 0;border:0;flex:0 0 42px;place-items:center;width:42px;padding:0;display:grid}.shopping-visibility:hover,.shopping-hidden-item button:hover{color:#a54132;background:#f8eeeb}.shopping-visibility svg,.shopping-hidden-item button svg{width:17px}.shopping-hidden{border-top:1px solid var(--meals-line);margin-top:18px;padding-top:14px}.shopping-hidden summary{color:#6d7a71;cursor:pointer;font-size:.78rem;font-weight:800}.shopping-hidden>div{margin-top:8px}.shopping-hidden-item{color:#7b877f;border-bottom:1px solid #edf1ed;align-items:center;gap:10px;min-height:42px;display:flex}.shopping-hidden-item>span{flex:1}.shopping-hidden-item>small{color:#929b95}.shopping-add{gap:8px;margin-top:18px;display:flex}.shopping-add button{background:var(--meals-green);color:#fff;cursor:pointer;border:0;border-radius:6px;flex:0 0 46px;place-items:center;display:grid}.shopping-build{width:100%}.meals-note{border-left:3px solid var(--meals-red);color:#67443e;background:#f8eeeb;margin-top:12px;padding:18px;font-size:.85rem;line-height:1.5}.meals-muted{color:#7b887f}.calendar-connect{text-align:center;background:#fff;border:1px dashed #bfcabf;border-radius:8px;max-width:520px;margin:28px auto 0;padding:34px}.calendar-connect>svg{color:#6a856f;width:38px;height:38px}.calendar-connect h2,.calendar-panel h2{color:var(--meals-green);font-family:Georgia,serif}.calendar-connect p,.calendar-panel p{color:#718077;font-size:.88rem;line-height:1.5}.calendar-setup{grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);gap:20px;margin-top:28px;display:grid}.calendar-panel{border:1px solid var(--meals-line);background:#fff;border-radius:6px;padding:24px}.calendar-panel h2{margin:0 0 6px;font-size:1.4rem}.calendar-choice{color:#354b3b;cursor:pointer;border-bottom:1px solid #edf1ed;align-items:center;gap:11px;min-height:46px;font-size:.88rem;display:flex}.calendar-choice input{width:19px;height:19px;accent-color:var(--meals-red)}.calendar-choice span{border-radius:50%;width:10px;height:10px}.calendar-output{color:#617067;text-transform:uppercase;margin:22px 0 18px;font-size:.75rem;font-weight:800;display:block}.calendar-output select{width:100%;min-height:48px;color:var(--meals-ink);background:#fff;border:1px solid #d3dcd4;border-radius:5px;margin-top:8px;padding:10px;font:500 .9rem inherit}.calendar-panel .meals-primary{width:100%}.calendar-status{color:#617067;min-height:20px;font-size:.82rem}.recipe-editor-overlay{z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1d2b21ad;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.recipe-editor{background:#fff;border-radius:8px;width:min(720px,100%);max-height:calc(100dvh - 40px);padding:28px;overflow-y:auto;box-shadow:0 24px 70px #121f1647}.recipe-editor-head{justify-content:space-between;align-items:center;display:flex}.recipe-editor-head h2{color:var(--meals-green);margin:0;font-family:Georgia,serif;font-size:1.9rem}.recipe-editor-head button,.ingredient-row button{width:42px;height:42px;color:var(--meals-green);cursor:pointer;background:#edf2ed;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.recipe-editor-head svg,.ingredient-row svg{width:18px}.recipe-form-grid{grid-template-columns:2fr 1fr 1fr;gap:12px;margin-top:18px;display:grid}.recipe-editor label,.recipe-field-label{color:#617067;font-size:.75rem;font-weight:700;display:block}.recipe-editor label input,.recipe-editor label select,.recipe-editor label textarea{margin-top:7px}.recipe-details-row{align-items:end;gap:18px;margin:14px 0;display:flex}.recipe-details-row>label:first-child{width:160px}.recipe-favourite-check{align-items:center;gap:8px;min-height:46px;display:flex!important}.recipe-favourite-check input{width:18px!important;min-height:18px!important;margin:0!important}.recipe-field-label{margin-top:16px}.ingredient-row{grid-template-columns:90px 100px minmax(0,1fr) 42px;gap:8px;margin:8px 0;display:grid}.ingredient-row button{color:#a54132;background:#f5e9e6;border-radius:5px}.recipe-editor>.recipe-secondary{margin-top:2px}.recipe-message{color:#a54132;min-height:20px;font-size:.8rem}.recipe-editor-actions{justify-content:flex-end;gap:10px;display:flex}.recipe-print-setup{background:#fff;border-radius:8px;width:min(520px,100%);padding:28px;box-shadow:0 24px 70px #121f1647}.recipe-print-setup .meals-eyebrow,.meal-replacement-dialog .meals-eyebrow{margin:0 0 5px}.recipe-print-setup>p{color:#637168;margin:18px 0;line-height:1.5}.recipe-print-scale{border:1px solid var(--meals-line);border-radius:6px;grid-template-columns:repeat(3,1fr);margin:20px 0 26px;display:grid;overflow:hidden}.recipe-print-scale button{border:0;border-right:1px solid var(--meals-line);min-height:58px;color:var(--meals-green);cursor:pointer;background:#fff;font:800 1rem inherit}.recipe-print-scale button:last-child{border-right:0}.recipe-print-scale button.active{background:var(--meals-green);color:#fff}.meal-replacement-dialog{background:#fff;border-radius:8px;width:min(780px,100%);max-height:calc(100dvh - 40px);padding:28px;overflow-y:auto;box-shadow:0 24px 70px #121f1647}.meal-ai-replace{color:#80483e;text-align:left;cursor:pointer;background:#f8eeeb;border:0;border-radius:6px;align-items:center;gap:14px;width:100%;min-height:72px;margin-top:22px;padding:14px 16px;display:flex}.meal-ai-replace:disabled{cursor:wait;opacity:.65}.meal-ai-replace>svg{flex:0 0 25px;width:25px}.meal-ai-replace span{gap:3px;display:grid}.meal-ai-replace small{color:#785f59;font-size:.76rem;font-weight:500}.meal-replacement-divider{border-top:1px solid var(--meals-line);text-align:center;margin:22px 0 16px}.meal-replacement-divider span{color:#78847c;text-transform:uppercase;background:#fff;padding:0 10px;font-size:.72rem;font-weight:800;position:relative;top:-9px}.meal-replacement-search{grid-template-columns:minmax(220px,1fr) 140px auto;gap:8px;display:grid}.meal-replacement-search .meals-search{max-width:none}.meal-replacement-search select{min-height:46px;color:var(--meals-ink);font:inherit;background:#fff;border:1px solid #d3dcd4;border-radius:6px;padding:10px}.replacement-status{color:#a54132;min-height:20px;margin:9px 0 0;font-size:.78rem}.meal-replacement-results{border:1px solid var(--meals-line);border-radius:6px;max-height:330px;overflow-y:auto}.meal-replacement-results>button{color:#354b3b;text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #e3e8e3;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:62px;padding:11px 14px;display:flex}.meal-replacement-results>button:last-child{border-bottom:0}.meal-replacement-results>button:hover:not(:disabled){background:#f4f8f4}.meal-replacement-results>button.current{cursor:default;opacity:.65;background:#f4f6f4}.meal-replacement-results>button span{gap:4px;display:grid}.meal-replacement-results>button small{color:#77847b;font-size:.72rem}.meal-replacement-results>button svg{flex:0 0 18px;width:18px}.meal-replacement-results>button em{color:#78847c;text-transform:uppercase;font-size:.7rem;font-style:normal;font-weight:800}.meal-replacement-empty{color:#758178;text-align:center;place-items:center;min-height:120px;padding:24px;display:grid}.meal-clear-button{color:#9a4b3d;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-top:14px;padding:8px 0;display:inline-flex}.meal-clear-button svg{width:16px}.recipe-review-dialog{background:#fff;border-radius:8px;width:min(680px,100%);max-height:calc(100dvh - 40px);padding:28px;overflow-y:auto;box-shadow:0 24px 70px #121f1647}.recipe-review-overview{background:#fbf7ed;border-left:4px solid #d29832;justify-content:space-between;align-items:center;gap:24px;margin-top:20px;padding:18px;display:flex}.recipe-review-overview>p{color:#6d6656;max-width:280px;margin:0;font-size:.78rem;line-height:1.45}.recipe-review-average{align-items:center;gap:12px;display:flex}.recipe-review-average>strong{color:var(--meals-green);font:700 2.3rem Georgia,serif}.recipe-review-average>span{gap:3px;display:grid}.recipe-review-average small{color:#7c7668;font-size:.68rem}.recipe-review-list{gap:9px;margin-top:18px;display:grid}.recipe-review-list article{border:1px solid var(--meals-line);background:#fff;border-radius:6px;padding:14px 16px}.recipe-review-list article>div{color:var(--meals-green);justify-content:space-between;align-items:center;gap:12px;font-size:.86rem;display:flex}.recipe-review-list article p{color:#5e6d63;white-space:pre-wrap;margin:9px 0 0;font-size:.82rem;line-height:1.5}.recipe-review-form{border-top:1px solid var(--meals-line);margin-top:20px;padding-top:20px}.recipe-review-form h3{color:var(--meals-green);margin:0 0 8px;font-family:Georgia,serif}.recipe-star-input{gap:3px;display:inline-flex}.recipe-star-input button{color:#d29832;cursor:pointer;background:#f4f6f4;border:0;border-radius:5px;place-items:center;width:42px;height:42px;padding:0;display:grid}.recipe-star-input button:hover{background:#fbf3df}.recipe-star-input svg{width:25px}.recipe-review-form>label{color:#617067;margin-top:16px;font-size:.75rem;font-weight:700;display:block}.recipe-review-form textarea{width:100%;color:var(--meals-ink);resize:vertical;background:#fff;border:1px solid #d3dcd4;border-radius:6px;margin-top:7px;padding:11px 12px;font:500 .9rem inherit}.meal-chat-panel{z-index:1500;background:#f6f8f5;border-left:1px solid #cfd9d1;grid-template-rows:auto minmax(0,1fr) auto;min-width:340px;max-width:min(720px,100vw - 24px);display:grid;position:fixed;top:0;bottom:0;right:0;box-shadow:-18px 0 48px #1d2b212e}.meal-chat-resize{z-index:2;cursor:ew-resize;background:0 0;border:0;width:12px;padding:0;position:absolute;top:0;bottom:0;left:-6px}.meal-chat-resize:after{content:"";background:#9eada1;border-radius:2px;width:2px;position:absolute;top:46%;bottom:46%;left:5px}.meal-chat-resizing{cursor:ew-resize;-webkit-user-select:none;user-select:none}.meal-chat-head{border-bottom:1px solid var(--meals-line);background:#fff;justify-content:space-between;align-items:center;gap:16px;min-height:84px;padding:17px 18px 15px 22px;display:flex}.meal-chat-head>div{gap:2px;min-width:0;display:grid}.meal-chat-head span{color:#a54132;letter-spacing:.8px;text-transform:uppercase;align-items:center;gap:5px;font-size:.68rem;font-weight:800;display:flex}.meal-chat-head span svg{width:14px}.meal-chat-head strong{color:var(--meals-green);font:700 1.4rem Georgia,serif}.meal-chat-head small{color:#78847c;font-size:.7rem}.meal-chat-head>button{width:40px;height:40px;color:var(--meals-green);cursor:pointer;background:#edf2ed;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.meal-chat-head>button svg{width:18px}.meal-chat-thread{min-height:0;padding:20px 18px;overflow-y:auto}.meal-chat-message{max-width:88%;margin-bottom:15px}.meal-chat-message.user{margin-left:auto}.meal-chat-message>span{color:#7b877f;text-transform:uppercase;margin:0 7px 5px;font-size:.62rem;font-weight:800;display:block}.meal-chat-message.user>span{text-align:right}.meal-chat-message p{color:#405147;white-space:pre-wrap;background:#fff;border:1px solid #dce4dd;border-radius:6px;margin:0;padding:11px 13px;font-size:.85rem;line-height:1.5}.meal-chat-message.user p{border-color:var(--meals-green);background:var(--meals-green);color:#fff}.meal-chat-message.thinking p{color:#77847b;font-style:italic}.meal-chat-proposal{border:1px solid #c6d4c8;border-left:4px solid var(--meals-red);background:#fff;border-radius:6px;margin:20px 0;padding:16px}.meal-chat-proposal>div:first-child{color:var(--meals-green);align-items:center;gap:7px;display:flex}.meal-chat-proposal>div:first-child svg{width:18px}.meal-chat-proposal>p{color:#506057;margin:12px 0 0;font-size:.78rem;line-height:1.4}.meal-chat-proposal>p b{color:var(--meals-green)}.meal-chat-proposal>p small{color:#7b877f;margin-top:3px;display:block}.meal-chat-proposal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.meal-chat-compose{padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--meals-line);background:#fff}.meal-chat-compose textarea{width:100%;min-height:70px;color:var(--meals-ink);resize:vertical;background:#fbfcfb;border:1px solid #ccd7ce;border-radius:6px;padding:11px 12px;font:500 .88rem inherit}.meal-chat-compose>div{justify-content:space-between;align-items:center;gap:10px;min-height:42px;margin-top:8px;display:flex}.meal-chat-compose small{color:#a54132;font-size:.7rem;line-height:1.3}.meal-chat-compose button{background:var(--meals-red);color:#fff;cursor:pointer;border:0;border-radius:50%;flex:0 0 42px;place-items:center;width:42px;height:42px;padding:0;display:grid}.meal-chat-compose button:disabled{cursor:not-allowed;opacity:.45}.meal-chat-compose button svg{width:18px}@media (width<=760px){.home-launcher-grid,.recipe-grid,.shopping-layout,.calendar-setup{grid-template-columns:1fr}.home-app-choice{min-height:190px}.meals-header-inner{flex-wrap:wrap;gap:10px;min-height:auto;padding:12px 16px}.meals-brand{flex:1}.meals-nav{order:3;grid-template-columns:repeat(4,1fr);width:100%;display:grid}.meal-chat-toggle{margin-left:auto}.meals-nav button{justify-content:center;padding:9px 5px}.meals-main{padding:30px 16px}.meals-toolbar{flex-direction:column}.shopping-heading{flex-direction:column;align-items:stretch}.shopping-export-actions{grid-template-columns:1fr 1fr;display:grid}.recipe-toolbar-actions,.recipe-import-actions{flex-direction:column;align-items:stretch}.recipe-toolbar-actions button{flex:1}.recipe-import-inputs,.recipe-import-fields{grid-template-columns:1fr}.staples-heading{flex-direction:column;align-items:stretch}.staples-heading form{grid-template-columns:minmax(0,1fr) auto;display:grid}.staples-heading input{width:100%}.ai-planner{grid-template-columns:1fr}.week-heading,.full-meal-calendar-head{flex-direction:column;align-items:stretch}.week-picker{align-items:end}.week-picker label{flex:1}.week-picker input{width:100%}.meal-type-steps{grid-template-columns:repeat(2,1fr)}.meal-type-steps button:nth-child(2){border-right:0}.meal-type-steps button:nth-child(-n+2){border-bottom:1px solid var(--meals-line)}.week-footer{flex-direction:column;align-items:stretch}.meals-search{max-width:none}.recipe-form-grid{grid-template-columns:1fr 1fr}.recipe-form-grid>label:first-child{grid-column:1/-1}.ingredient-row{grid-template-columns:64px 76px minmax(0,1fr) 42px}.meal-replacement-search{grid-template-columns:1fr 1fr}.meal-replacement-search .meals-search{grid-column:1/-1}.recipe-print-setup,.meal-replacement-dialog,.recipe-review-dialog{padding:22px 18px}.recipe-review-overview{flex-direction:column;align-items:flex-start;gap:10px}.recipe-review-overview>p{max-width:none}.recipe-rating-summary{flex-wrap:wrap}.recipe-rating-summary small{width:100%;margin-left:0}.meals-app-shell.chat-open{margin-right:0}.meal-chat-panel{min-width:0;max-width:none;width:100%!important}.meal-chat-resize{display:none}}.task-assignment-card{padding:0;overflow:hidden}.task-assignment-scroll{overflow-x:auto}.task-assignment-table th,.task-assignment-table td{vertical-align:middle;padding:10px 8px}.task-assignment-col-header{text-align:center;min-width:88px}.task-assignment-name{font-weight:700}.task-assignment-cell{text-align:center}.task-row-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:inline-flex}.task-checkbox{cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.task-checkbox input{opacity:0;pointer-events:none;position:absolute}.task-checkbox span{border:1px solid var(--border);color:#fff;background:var(--bg-card);border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;font-weight:800;display:inline-flex}.task-checkbox input:checked+span{background:var(--primary);border-color:var(--primary)}.task-checkbox input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.link-btn{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:4px;font-size:.85rem;font-weight:700}blockquote{border-left:3px solid var(--accent);background:#00b4d814;border-radius:0 8px 8px 0;margin:6px 0;padding:6px 10px;font-size:.85rem}.theme-picker-btn{top:calc(env(safe-area-inset-top,0px) + 12px);background:var(--bg-card);width:40px;height:40px;box-shadow:var(--shadow-card);cursor:pointer;z-index:40;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;display:flex;position:fixed;right:12px}.modal-overlay{z-index:50;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-card);width:100%;max-width:420px;max-height:85vh;box-shadow:var(--shadow-card);border-radius:24px;padding:20px;animation:.2s fadeIn;overflow-y:auto}.theme-options{flex-direction:column;gap:8px;margin-top:12px;display:flex}.theme-options button{border:2px solid var(--border);background:var(--bg-main);color:var(--text-main);cursor:pointer;text-align:left;border-radius:14px;padding:10px 14px;font-weight:700}.theme-options button.active{border-color:var(--primary)}.calendar{background:var(--bg-card);box-shadow:var(--shadow-card);border:1px solid var(--border);border-radius:18px;margin-bottom:16px;padding:12px}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.calendar-header strong{font-size:.95rem}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-weekdays{margin-bottom:4px}.calendar-weekday{text-align:center;color:var(--text-muted);font-size:.7rem;font-weight:700}.calendar-cell{aspect-ratio:1;background:var(--bg-main);cursor:pointer;color:var(--text-main);border:1px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:2px;font-size:.8rem;display:flex}.calendar-cell.empty{visibility:hidden;cursor:default}.calendar-cell.today{border-color:var(--primary);font-weight:800}.calendar-cell.selected{background:var(--primary);color:#fff}.calendar-date{font-weight:700}.calendar-dot{background:var(--secondary);border-radius:50%;width:6px;height:6px;display:inline-block}.calendar-cell.selected .calendar-dot{background:#fff}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}
