:root{color-scheme:dark;--bg: #0a0a0b;--bg-raised: #17171a;--text: #f2f2f0;--text-dim: #9a9a9f;--border: rgba(255, 255, 255, .12);--pill-bg: rgba(255, 255, 255, .07);--pill-bg-hover: rgba(255, 255, 255, .12);--accent: #5ac8fa;--accent-text: #0a0a0b;--error: #ff6b6b;--ok: #4ade80;--warn: #fbbf24;--user-bubble: #2a2a30;font-family:-apple-system,SF Pro Text,system-ui,Segoe UI,sans-serif}html,body{height:100%;overflow:hidden}body{margin:0;background:var(--bg);color:var(--text)}#root{width:100%;display:flex;justify-content:center}.startup-gate{width:100%;max-width:320px;min-height:100dvh;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center}.startup-logo{height:40px;width:auto}.startup-spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:startup-spin .8s linear infinite}@keyframes startup-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.startup-spinner{animation:none}}.startup-message{margin:0;color:var(--text);font-size:1rem;font-weight:600}.startup-hint{margin:0;color:var(--text-dim);font-size:.85rem;line-height:1.5}.chat{width:100%;max-width:560px;padding:max(20px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));display:flex;flex-direction:column;height:100dvh;box-sizing:border-box}.header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.header-logo{display:block;height:44px;width:auto}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.pill-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:34px;min-width:34px;padding:0 12px;border-radius:999px;border:1px solid var(--border);background:var(--pill-bg);color:var(--text);font-size:1rem;text-decoration:none;cursor:pointer;flex-shrink:0}.pill-button:hover{background:var(--pill-bg-hover)}.pill-button:disabled{opacity:.5;cursor:default}.notif-on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--pill-bg))}.pill-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid var(--border);background:var(--pill-bg);font-size:.8rem;color:var(--text-dim);width:fit-content}.transcript-wrap{position:relative;flex:1;min-height:0;display:flex}.transcript{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:18px;padding-bottom:8px}.scroll-to-bottom{position:absolute;bottom:12px;left:50%;transform:translate(-50%);width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--border);background:var(--bg-raised);color:var(--text);font-size:1.1rem;cursor:pointer;box-shadow:0 4px 12px #0006}.scroll-to-bottom:hover{background:var(--pill-bg-hover)}.empty{color:var(--text-dim);font-size:.9rem;line-height:1.5}.msg{font-family:Georgia,Iowan Old Style,Palatino Linotype,serif;font-size:1rem;line-height:1.6;white-space:pre-wrap}.msg.user{align-self:flex-end;max-width:85%;padding:10px 14px;border-radius:16px;background:color-mix(in srgb,var(--accent) 20%,var(--user-bubble));font-family:inherit}.msg.assistant{align-self:stretch;color:var(--text)}.msg.pending{color:var(--text-dim)}.error{color:var(--error);font-size:.85rem}.photo-tag{margin-bottom:6px}.composer{display:flex;flex-direction:column;gap:10px;margin-top:12px}.pending-images{display:flex;flex-wrap:wrap;gap:8px}.pending-image button{background:none;border:none;color:inherit;cursor:pointer;font-size:1rem;line-height:1;padding:0}.file-input{display:none}.composer-input-wrap{position:relative;min-width:0}.composer-input{width:100%;box-sizing:border-box;padding:14px 52px 14px 46px;border-radius:22px;border:1px solid var(--border);background:var(--bg-raised);color:var(--text);font-size:1rem}.composer-input::placeholder{color:var(--text-dim)}.composer-input:focus{outline:none;border-color:var(--accent)}.camera-inline{position:absolute;left:6px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;color:var(--text-dim);font-size:1rem;cursor:pointer}.camera-inline:hover{background:var(--pill-bg-hover)}.send-inline{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;border:none;background:var(--accent);color:var(--accent-text);font-size:1.15rem;font-weight:700;cursor:pointer}.send-inline:disabled{opacity:.4;cursor:default}.install-prompt{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:14px;border:1px solid var(--border);background:var(--bg-raised);color:var(--text);font-size:.85rem;margin-bottom:12px}.install-prompt p{margin:0}.install-prompt-actions{display:flex;gap:8px;flex-shrink:0}.install-prompt-actions button{padding:6px 12px;font-size:.8rem;border-radius:999px;border:1px solid var(--border);cursor:pointer}.install-prompt-actions button:first-child{background:var(--accent);color:var(--accent-text);border:none;font-weight:600}.install-prompt-dismiss{background:transparent;color:var(--text)}.tab-nav{display:flex;gap:4px;padding:4px;margin-bottom:16px;border-radius:14px;background:var(--pill-bg);flex-shrink:0}.tab-button{flex:1;padding:8px 0;border:none;border-radius:10px;background:transparent;color:var(--text-dim);font-size:.85rem;font-weight:600;cursor:pointer}.tab-button.tab-active{background:var(--bg-raised);color:var(--text)}.page{flex:1;min-height:0;overflow-y:auto;margin-right:-8px;padding-right:8px;display:flex;flex-direction:column;gap:14px}.page-note{color:var(--text-dim);font-size:.8rem;line-height:1.5;margin:0}.kroger-status{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.kroger-linked{color:var(--accent);border-color:var(--accent);white-space:nowrap}.kroger-unlinked{color:var(--error);border-color:var(--error)}.settings-quiet-actions{display:flex;flex-wrap:wrap;gap:14px}.settings-quiet-action{align-self:flex-start;margin-top:6px;padding:0;border:0;background:none;font-size:.8rem;text-decoration:underline;color:var(--text-dim);cursor:pointer}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-radius:14px;border:1px solid var(--border);background:var(--bg-raised)}.settings-row-text{display:flex;flex-direction:column;gap:4px;min-width:0}.settings-row-label{font-size:.95rem;font-weight:600;color:var(--text)}.settings-row-desc{font-size:.8rem;color:var(--text-dim);line-height:1.4}.settings-section-title{font-size:1rem;margin:0 0 4px}.settings-activity-list{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:6px}.settings-activity-item{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-raised)}.settings-activity-date{font-size:.75rem;color:var(--text-dim)}.settings-activity-summary{font-size:.9rem}.usage-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}.usage-stat-card{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-raised)}.usage-stat-label{font-size:.75rem;color:var(--text-dim)}.usage-stat-value{font-size:1.1rem;font-weight:600}.usage-stat-cost{font-size:.8rem;color:var(--text-dim)}.usage-stat-cache{font-size:.75rem;color:var(--accent)}.usage-table-wrap{overflow-x:auto;margin-bottom:12px;border:1px solid var(--border);border-radius:10px;background:var(--bg-raised)}.usage-table{width:100%;border-collapse:collapse;font-size:.8rem;white-space:nowrap}.usage-table th,.usage-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border)}.usage-table thead th{font-size:.7rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em}.usage-table tbody tr:last-child td{border-bottom:none}.usage-table-num{text-align:right;font-variant-numeric:tabular-nums}.usage-table-when{display:block;font-size:.7rem;color:var(--text-dim)}.usage-details{margin-top:8px}.usage-details summary{cursor:pointer;font-size:.85rem;color:var(--text-dim);padding:4px 0}.usage-details .settings-activity-list{margin-top:8px}.toggle-switch{position:relative;flex-shrink:0;width:51px;height:31px;padding:0;border:none;border-radius:999px;background:var(--pill-bg);cursor:pointer;transition:background-color .15s ease}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #00000059;transition:transform .15s ease}.toggle-switch.toggle-on{background:var(--accent)}.toggle-switch.toggle-on:after{transform:translate(20px)}.toggle-switch:disabled{opacity:.5;cursor:default}.settings-segmented{display:flex;border:1px solid var(--border);border-radius:999px;padding:2px;flex-shrink:0}.settings-segmented-option{min-width:36px;padding:6px 10px;border:none;border-radius:999px;background:transparent;color:var(--text-dim);font-size:.9rem;cursor:pointer}.settings-segmented-option.settings-segmented-active{background:var(--accent);color:var(--accent-text)}.settings-segmented-option:disabled{opacity:.5;cursor:default}.settings-select{flex-shrink:0;padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:var(--pill-bg);color:var(--text);font-size:.9rem}.settings-select:disabled{opacity:.5;cursor:default}.store-link{display:block;padding:12px 16px;border-radius:14px;background:var(--accent);color:var(--accent-text);font-weight:600;text-align:center;text-decoration:none;font-size:.95rem}.cart-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.cart-item{padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:var(--bg-raised);display:flex;flex-direction:column;gap:8px}.cart-item-main{display:flex;justify-content:space-between;gap:8px;font-size:.95rem}.cart-item-qty{color:var(--text-dim);flex-shrink:0}.cart-item-meta{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--text-dim)}.source-autonomous{border-color:var(--accent);color:var(--accent)}.cart-item-time{margin-left:auto}.cart-total{font-size:.9rem;color:var(--text-dim);margin:0}.pantry-location{border:1px solid var(--border);border-radius:12px;background:var(--bg-raised);padding:14px;margin-bottom:16px}.pantry-location-expired{border-color:var(--error);background:color-mix(in srgb,var(--error) 8%,var(--bg-raised))}.pantry-location h2{font-size:1rem;margin:0 0 8px}.pantry-category{margin-bottom:14px}.pantry-category:last-child{margin-bottom:0}.pantry-category h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin:0 0 6px}.pantry-category ul,.pantry-location-expired>ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.pantry-item{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:.9rem}.pantry-item-text{display:flex;flex:1;min-width:84px;flex-direction:column;gap:1px}.pantry-item-name{min-width:0}.pantry-item-brand{font-size:.75rem;color:var(--text-dim)}.pantry-item-qty{color:var(--text-dim);min-width:70px;text-align:center;padding:0;font:inherit;background:none;border:none;cursor:pointer}.pantry-item-qty:disabled{cursor:default}.pantry-item-qty-input{width:70px;padding:4px 6px;font:inherit;color:var(--text);text-align:center;background:var(--bg-raised);border:1px solid var(--border);border-radius:8px}.pantry-item-size{font-size:.75rem;color:var(--text-dim)}.pantry-confirm-qty{width:100%;margin-top:8px;padding:6px 12px;border-radius:999px;font-size:.8rem;cursor:pointer;color:var(--warn);border:1px solid var(--warn);background:color-mix(in srgb,var(--warn) 12%,var(--pill-bg))}.pantry-item-move{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}.pantry-move-label{font-size:.75rem;color:var(--text-dim)}.pantry-move-toggle{padding:0;border:none;background:none;font-size:.75rem;color:var(--text-dim);text-decoration:underline;cursor:pointer}.pantry-move-target{padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:var(--pill-bg);color:var(--text);font-size:.75rem;cursor:pointer}.pantry-item-badges{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px}.pantry-item-stepper{display:flex;align-items:center;gap:2px}.pantry-step{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;font-size:1rem;line-height:1;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;cursor:pointer}.pantry-step:disabled{opacity:.4;cursor:default}.pantry-clear-all{align-self:flex-start;margin-top:8px;padding:10px 16px;font-size:.85rem;color:var(--error);background:none;border:1px solid var(--error);border-radius:12px;cursor:pointer}.pantry-clear-all:disabled{opacity:.5;cursor:default}.pill-badge.expired{color:var(--error);border-color:var(--error)}.pantry-item-delete{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;background:transparent;color:var(--text-dim);border-radius:6px;cursor:pointer}.pantry-item-delete:hover{color:var(--error);background:color-mix(in srgb,var(--error) 12%,transparent)}.pantry-item-delete:disabled{opacity:.5;cursor:default}.recipe-section{margin-bottom:20px}.recipe-section h2{font-size:1rem;margin:0 0 8px}.recipe-section ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.section-pending{display:flex;align-items:center;justify-content:center;min-height:240px}.section-spinner{width:22px;height:22px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:section-spin .8s linear infinite}@keyframes section-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.section-spinner{animation-duration:2.4s}}.store-search{display:flex;align-items:center;gap:8px;flex-shrink:0}.settings-row-input{flex-wrap:wrap}.settings-row-input .settings-row-text{flex:1 1 190px}.store-postal-input{width:96px;min-width:0;box-sizing:border-box;padding:8px 12px;font-size:.9rem;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:12px}.store-name-input{flex:1 1 130px;min-width:0;box-sizing:border-box;padding:8px 12px;font-size:.9rem;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:12px}.cart-destination{display:flex;flex-direction:column;gap:14px;border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:16px;background:var(--bg-raised)}.cart-destination>*{margin:0}.cart-destination>.page-action-button{margin-bottom:0}.cart-destination-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.cart-destination-title{display:flex;align-items:center;gap:8px;font-size:1rem;margin:0}.cart-destination-count{font-size:.75rem;color:var(--muted);white-space:nowrap}.cart-default-badge{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--pill-bg));font-size:.65rem}.section-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:10px}.section-pager-arrow{min-width:40px;font-size:1rem;line-height:1}.section-pager-arrow:disabled{opacity:.35;cursor:default}.section-pager-label{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.recipe-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:var(--bg-raised)}.recipe-item-text{display:flex;flex-direction:column;gap:2px;min-width:0}.recipe-item-title{font-size:.9rem;font-weight:600}.recipe-item-meta{font-size:.8rem;color:var(--text-dim)}.recipe-item-clickable{cursor:pointer}.recipe-item-clickable:hover{border-color:var(--accent)}.recipe-item-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipe-item-badges{display:flex;align-items:center;gap:8px;flex-shrink:0}.recipe-item-stacked-badge{margin-top:6px}.recipe-item-thumb{width:44px;height:44px;border-radius:8px;object-fit:cover;flex-shrink:0}.recipe-item-main{display:flex;align-items:center;gap:12px;min-width:0}.confirm-badge{border-color:#d9a441;color:#d9a441;background:color-mix(in srgb,#d9a441 14%,var(--pill-bg))}.source-badge-saved{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--pill-bg))}.source-badge-spoonacular{border-color:#6b8e23;color:#6b8e23;background:color-mix(in srgb,#6b8e23 14%,var(--pill-bg))}.source-badge-generated{display:inline-flex;align-items:center;gap:4px;border-color:#3ddc84;color:#3ddc84;background:color-mix(in srgb,#3ddc84 14%,var(--pill-bg))}.source-badge-icon{width:16px;height:16px;border-radius:4px;display:block;flex-shrink:0}.save-recipe-button{width:100%;height:auto;padding:12px 16px;margin-bottom:16px;font-weight:600}.delete-recipe-button{width:100%;height:auto;padding:12px 16px;margin-bottom:16px}.recipe-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;flex-direction:column;box-sizing:border-box;padding:max(20px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.recipe-modal-close{position:absolute;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--border);background:var(--pill-bg);color:var(--text);font-size:1.1rem;line-height:1;cursor:pointer}.recipe-modal-close:hover{background:var(--pill-bg-hover)}.recipe-modal-content{flex:1;min-height:0;overflow-y:auto;width:calc(100% - 10px);max-width:560px;margin:0 auto;padding-top:44px;box-sizing:border-box}.recipe-modal-image{width:100%;max-height:220px;object-fit:cover;border-radius:12px;margin-bottom:16px}.recipe-modal-title{margin:0 0 4px;font-size:1.3rem}.recipe-modal-meta{margin:0 0 24px;color:var(--text-dim);font-size:.9rem}.recipe-modal-section{margin-bottom:24px}.recipe-modal-section h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin:0 0 10px}.recipe-ingredient-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.recipe-ingredient-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-raised);font-size:.9rem}.recipe-steps-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:12px}.plan-week-switcher{display:flex;align-items:center;gap:8px;margin-bottom:12px}.plan-week-step{width:34px;height:34px;flex-shrink:0;border-radius:999px;border:1px solid var(--border);background:var(--pill-bg);color:var(--text);font-size:1.25rem;line-height:1;cursor:pointer}.plan-week-step:hover{background:var(--pill-bg-hover)}.plan-week-step:disabled{opacity:.5;cursor:default}.plan-week-label{flex:1;text-align:center;font-weight:600}.plan-week-today{height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:.8rem;cursor:pointer}.plan-week-today:disabled{opacity:.5;cursor:default}.plan-day-list-stale{opacity:.5}.page-action-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:auto;padding:12px 16px;margin-bottom:16px;font-weight:600}.plan-day-list{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column}.plan-day+.plan-day{border-top:1px solid var(--border)}.plan-day{display:flex;align-items:stretch;gap:12px;padding:6px 0}.plan-day-side{flex-shrink:0;width:96px;display:flex;flex-direction:column;gap:6px}.plan-day-date{font-size:.8rem;line-height:1.25;white-space:nowrap;color:var(--text-dim)}.plan-day-recipe{min-width:0;flex:1;display:flex;align-items:center;padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:var(--bg-raised)}.plan-day-recipe-clickable{cursor:pointer}.plan-day-recipe-clickable:hover{background:var(--pill-bg-hover)}.plan-day-recipe-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.plan-day-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.plan-day-title{font-size:.9rem;font-weight:600}.plan-day-empty{display:block;min-height:1.15rem}.plan-day-needs{align-self:flex-start;box-sizing:border-box;max-width:100%;margin-top:4px;padding:2px 8px;border-radius:999px;border:1px solid;font-size:.7rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-day-needs-ready{color:var(--ok);border-color:#4ade8080;background:#4ade801f}.plan-day-needs-missing{color:var(--warn);border-color:#fbbf2480;background:#fbbf241f}.plan-day-past .plan-day-date,.plan-day-past .plan-day-recipe{opacity:.45}.plan-day-today .plan-day-date{color:var(--accent);font-weight:700}.plan-day-today .plan-day-recipe{border-color:var(--accent)}.plan-day-today-badge{align-self:flex-start;font-size:.65rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent)}.plan-day-actions{flex:1;justify-content:center;display:flex;flex-direction:column;gap:6px}.plan-day-action{min-height:28px;display:flex;align-items:center;justify-content:center;padding:6px 10px;font-size:.75rem;font-weight:600;color:var(--text-dim);background:transparent;border:1px solid var(--border);border-radius:999px;cursor:pointer}.plan-day-action:hover:not(:disabled){color:var(--text);background:var(--pill-bg-hover)}.plan-day-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.plan-day-action:disabled{opacity:.5;cursor:default}.button-spinner{flex-shrink:0;width:13px;height:13px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:startup-spin .7s linear infinite}@media(prefers-reduced-motion:reduce){.button-spinner{animation:none}}.recipe-picker-filter{width:100%;box-sizing:border-box;padding:10px 14px;margin-bottom:12px;font-size:.9rem;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:12px}.recipe-picker-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.recipe-picker-option{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;text-align:left;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;cursor:pointer}.recipe-picker-option:hover{background:var(--pill-bg-hover)}.recipe-picker-option:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.recipe-section .plan-missing-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:6px}.plan-missing-list li{padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--bg-raised);font-size:.9rem}.plan-missing-item{display:flex;align-items:center;justify-content:space-between;gap:8px}.pill-badge-in-cart{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--pill-bg));flex-shrink:0}.recipe-steps-list li{font-size:.95rem;line-height:1.5;padding-left:4px}.recipe-link{display:inline;padding:0;margin:0;border:0;background:none;font:inherit;color:var(--accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.recipe-link:hover{text-decoration-thickness:2px}.recipe-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.activity-line{display:flex;align-items:baseline;gap:0;font-size:.85rem;color:var(--text-dim)}.activity-line:not(:first-child){margin-top:6px}.activity-dots span{display:inline-block;animation:activity-dot 1.4s ease-in-out infinite}.activity-dots span:before{content:"."}.activity-dots span:nth-child(2){animation-delay:.2s}.activity-dots span:nth-child(3){animation-delay:.4s}@keyframes activity-dot{0%,60%,to{opacity:.2}30%{opacity:1}}@media(prefers-reduced-motion:reduce){.activity-dots span{animation:none;opacity:.7}}.pill-badge-needs-approval{border-color:var(--warn);color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,var(--pill-bg));flex-shrink:0}.cart-needs-approval{margin-top:8px;width:100%;border-color:var(--warn);color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,var(--pill-bg))}.cart-clear-list{align-self:flex-start;padding:6px 14px;font-size:.85rem;color:var(--text-dim)}.cart-item-remove{align-self:flex-end;padding:4px 12px;font-size:.8rem}.cart-add-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.cart-add-input{flex:1 1 150px;min-width:0;box-sizing:border-box;padding:8px 12px;font-size:.9rem;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:12px}.cart-add-qty{width:52px;flex-shrink:0;box-sizing:border-box;padding:8px 10px;font-size:.9rem;text-align:center;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:12px}.approve-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;flex-direction:column;box-sizing:border-box;padding:max(20px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.approve-modal-content{overflow-y:auto;padding-top:44px}.approve-modal-title{margin:0 0 8px;font-size:1.15rem}.approve-modal-meta{margin:0 0 16px;color:var(--text-dim);font-size:.9rem;line-height:1.45}.approve-modal-error{color:var(--error);font-size:.9rem;margin:0 0 12px}.approve-option-list{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:10px}.approve-option{width:100%;display:flex;flex-direction:column;gap:6px;align-items:flex-start;text-align:left;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--bg-raised);color:var(--text);font:inherit;cursor:pointer}.approve-option:hover:not(:disabled){background:var(--pill-bg-hover)}.approve-option:disabled{opacity:.5}.approve-option-staged{border-color:var(--accent)}.approve-option-desc{font-size:.95rem;line-height:1.35}.approve-option-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--text-dim);font-size:.85rem}.approve-staged-badge{border-color:var(--accent);color:var(--accent)}.approve-modal-actions{display:flex;flex-direction:column;gap:10px}.approve-remove-button{border-color:var(--error);color:var(--error)}
