:root{--bg-canvas: #fcf9f2;--bg-surface: #ffffff;--bg-subtle: #f4eee3;--border-color: #e6ded3;--border-subtle: #f0eae0;--text-primary: #232c25;--text-secondary: #57675c;--text-muted: #596b5d;--brand-sage: #4e7055;--brand-sage-light: #e8efe9;--brand-sage-hover: #3d5943;--brand-sage-text: #213d28;--accent-warm: #d97736;--accent-warm-text: #8c4b1d;--accent-warm-light: #fbeee4;--danger: #c0392b;--danger-text: #c0392b;--danger-light: #fdeeed;--success: #28712c;--success-light: #edf7ee;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-pill: 9999px;--shadow-sm: 0 2px 6px rgba(45, 38, 28, .05);--shadow-md: 0 6px 18px rgba(45, 38, 28, .08);--shadow-lg: 0 12px 32px rgba(45, 38, 28, .12);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}[data-theme=dark]{--bg-canvas: #161e18;--bg-surface: #202b22;--bg-subtle: #27342b;--border-color: #324337;--border-subtle: #2c3c31;--text-primary: #ecf3ed;--text-secondary: #9fb0a3;--text-muted: #8c9e90;--brand-sage: #83b08d;--brand-sage-light: #25392b;--brand-sage-hover: #9acaa3;--brand-sage-text: #c2e2c8;--accent-warm: #ea8a4b;--accent-warm-text: #f2a46f;--accent-warm-light: #3d2c20;--danger: #e74c3c;--danger-text: #ff8a80;--danger-light: #3d211e;--success: #6fcf75;--success-light: #1f3823;--shadow-sm: 0 2px 6px rgba(0, 0, 0, .25);--shadow-md: 0 6px 18px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .45)}*{box-sizing:border-box;margin:0;padding:0}body{min-width:320px;min-height:100vh;font-family:var(--font-family);background-color:var(--bg-canvas);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font:inherit;color:inherit}input,select,textarea{font:inherit;color:inherit;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.6rem .8rem}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--brand-sage);outline-offset:2px}.layout-root{display:flex;flex-direction:column;min-height:100vh}.app-topbar{padding-top:env(safe-area-inset-top,0px);display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;background:var(--bg-surface);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:100}.topbar-brand{display:flex;align-items:center;gap:.6rem}.brand-link{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.15rem;color:var(--brand-sage)}.brand-emoji{font-size:1.4rem}.badge-preview{font-size:.7rem;padding:.2rem .5rem;background:var(--accent-warm-light);color:var(--accent-warm-text);border-radius:var(--radius-pill);font-weight:600}.topbar-actions{display:flex;align-items:center;gap:.8rem}.sync-status{font-size:.9rem}.sync-status.synced{color:var(--success);font-weight:700}.sync-status.syncing{animation:spin 1s infinite linear}.sync-status.error{color:var(--danger-text)}@keyframes spin{to{transform:rotate(360deg)}}.icon-button{padding:.4rem;border-radius:var(--radius-pill);font-size:1.1rem;display:inline-flex;align-items:center;justify-content:center}.icon-button:hover{background:var(--bg-subtle)}.layout-body{display:flex;flex:1}.desktop-sidebar{width:250px;background:var(--bg-surface);border-right:1px solid var(--border-color);display:flex;flex-direction:column;padding:1.25rem 1rem;gap:1.5rem}.sidebar-brand{display:flex;align-items:center;gap:.75rem;padding-bottom:1rem;border-bottom:1px solid var(--border-subtle)}.brand-title{font-size:1.25rem;font-weight:700;color:var(--brand-sage);line-height:1.2}.brand-subtitle{font-size:.75rem;color:var(--text-muted)}.nav-section{display:flex;flex-direction:column;gap:.25rem}.nav-section-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:700;padding:.25rem .6rem}.nav-link{display:flex;align-items:center;gap:.75rem;padding:.6rem .8rem;border-radius:var(--radius-md);color:var(--text-secondary);font-weight:500;transition:background .15s ease,color .15s ease}.nav-link:hover{background:var(--bg-subtle);color:var(--text-primary)}.nav-link.active{background:var(--brand-sage-light);color:var(--brand-sage-text);font-weight:600}.nav-icon{font-size:1.15rem}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:.75rem}.pill-button{padding:.4rem .8rem;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-pill);font-size:.85rem;font-weight:500;text-align:center}.sidebar-preview-note{font-size:.75rem;color:var(--text-muted);background:var(--bg-subtle);padding:.5rem;border-radius:var(--radius-sm)}.main-content{flex:1;padding:1.5rem clamp(1rem,3vw,2.5rem);max-width:1200px;margin:0 auto;width:100%}.view-container{display:flex;flex-direction:column;gap:1.5rem}.view-title{font-size:1.75rem;font-weight:700;color:var(--text-primary)}.quick-actions-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.quick-action-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.25rem .75rem;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);text-align:center;gap:.5rem;transition:transform .15s ease,box-shadow .15s ease}.quick-action-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--brand-sage)}.qa-icon{font-size:2rem}.qa-text{font-size:.9rem;font-weight:600;color:var(--text-primary)}.mobile-bottom-nav,.mobile-only{display:none}@media(max-width:768px){.local-preview-container{display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:0;overflow:hidden}.local-preview-banner{flex:0 0 auto}.layout-root{height:100vh;height:100dvh;min-height:0;overflow:hidden}.local-preview-container>.layout-root{height:auto;flex:1 1 0}.layout-body{min-height:0;overflow:hidden}.desktop-sidebar{display:none}.mobile-only{display:inline-flex}.mobile-bottom-nav{display:flex;position:relative;bottom:auto;left:auto;right:auto;flex-shrink:0;background:var(--bg-surface);border-top:1px solid var(--border-color);padding:.5rem 0 calc(.5rem + env(safe-area-inset-bottom,0px));justify-content:space-around;z-index:100}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:.2rem;color:var(--text-muted);font-size:.75rem;font-weight:500;min-width:60px;padding:.25rem 0}.bottom-nav-item.active{color:var(--brand-sage);font-weight:700}.bottom-nav-icon{font-size:1.3rem}.main-content{min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding-bottom:1.5rem}}.button-primary{background:var(--brand-sage);color:var(--bg-canvas);padding:.65rem 1.25rem;border-radius:var(--radius-md);font-weight:600;transition:background .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.button-primary:hover{background:var(--brand-sage-hover)}.button-secondary{background:var(--bg-subtle);color:var(--text-primary);border:1px solid var(--border-color);padding:.65rem 1.25rem;border-radius:var(--radius-md);font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.button-secondary:hover{background:var(--border-subtle)}.button-danger{background:var(--danger-light);color:var(--danger-text);border:1px solid var(--danger);padding:.5rem 1rem;border-radius:var(--radius-md);font-weight:600}.button-link{color:var(--brand-sage);font-weight:500;text-decoration:underline;padding:.5rem}.card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-sm)}.local-preview-banner{background:var(--brand-sage-light);color:var(--brand-sage-text);padding:.5rem 1rem;display:flex;align-items:center;gap:.6rem;font-size:.85rem;font-weight:600;border-bottom:1px solid var(--brand-sage)}.setup-required-screen,.auth-screen{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:var(--bg-canvas)}.setup-card,.auth-card{width:min(100%,30rem);background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:2rem;display:flex;flex-direction:column;gap:1.25rem}.setup-icon,.auth-emoji{font-size:2.5rem;text-align:center}.setup-instructions ol{padding-left:1.25rem;margin-top:.5rem;display:flex;flex-direction:column;gap:.4rem;font-size:.9rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:500}.auth-alert{padding:.6rem .8rem;border-radius:var(--radius-sm);font-size:.85rem}.auth-alert.error{background:var(--danger-light);color:var(--danger-text)}.auth-alert.success{background:var(--success-light);color:var(--success)}.manual-entry-title{font-size:1.1rem;font-weight:700}.form-group{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.85rem;position:relative}.form-group label{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem}.form-alert{padding:.65rem .85rem;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:1rem}.form-alert.error{background:var(--danger-light);color:var(--danger-text)}.form-alert.success{background:var(--success-light);color:var(--success)}.autocomplete-popover{position:absolute;top:100%;left:0;right:0;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:50;margin-top:.25rem;display:flex;flex-direction:column;overflow:hidden}.popover-title{font-size:.75rem;color:var(--text-muted);padding:.4rem .6rem;background:var(--bg-subtle);border-bottom:1px solid var(--border-subtle)}.autocomplete-item{display:flex;justify-content:space-between;padding:.5rem .75rem;font-size:.85rem;text-align:left}.autocomplete-item:hover{background:var(--brand-sage-light);color:var(--brand-sage-text)}.autocomplete-item .item-meta{color:var(--text-muted);font-size:.75rem}.tab-switcher{display:flex;gap:.5rem;border-bottom:1px solid var(--border-color);padding-bottom:.5rem}.tab-btn{padding:.6rem 1.1rem;border-radius:var(--radius-md);font-weight:600;font-size:.9rem;color:var(--text-secondary)}.tab-btn.active{background:var(--brand-sage-light);color:var(--brand-sage-text)}.search-filter-bar{display:flex;flex-direction:column;gap:.85rem}.search-input-wrap{display:flex;align-items:center;gap:.5rem;background:var(--bg-canvas);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.4rem .8rem}.search-input-wrap input{border:none;background:transparent;width:100%;padding:.25rem 0}.search-input-wrap input:focus{outline:none}.filter-controls{display:flex;flex-wrap:wrap;gap:.85rem}.filter-controls label{display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:500}.filter-controls select{padding:.35rem .65rem;font-size:.85rem}.stock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.stock-card{display:flex;flex-direction:column;gap:.85rem}.stock-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.item-name{font-size:1.15rem;font-weight:700}.item-badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}.badge{font-size:.75rem;padding:.15rem .5rem;border-radius:var(--radius-pill);font-weight:500}.category-badge{background:var(--bg-subtle);color:var(--text-secondary)}.location-badge{background:var(--accent-warm-light);color:var(--accent-warm-text)}.stock-quantity-badge{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.qty-tag{background:var(--brand-sage-light);color:var(--brand-sage-text);font-weight:700;font-size:.95rem;padding:.25rem .65rem;border-radius:var(--radius-pill);white-space:nowrap}.stock-meta-info{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--text-muted)}.date-badge{padding:.15rem .45rem;border-radius:var(--radius-sm);font-weight:500}.date-badge.printed{background:var(--success-light);color:var(--success)}.date-badge.estimated{background:var(--bg-subtle);color:var(--text-secondary)}.date-badge.unknown{background:var(--bg-subtle);color:var(--text-muted)}.batches-dropdown{background:var(--bg-subtle);border-radius:var(--radius-sm);padding:.5rem;font-size:.8rem}.batches-dropdown summary{cursor:pointer;font-weight:600;color:var(--text-secondary)}.batch-table-wrap{margin-top:.5rem;overflow-x:auto}.batch-table{width:100%;border-collapse:collapse;font-size:.75rem}.batch-table th,.batch-table td{padding:.35rem .45rem;text-align:left;border-bottom:1px solid var(--border-color)}.stock-actions-bar{display:flex;flex-wrap:wrap;gap:.4rem;padding-top:.5rem;border-top:1px solid var(--border-subtle)}.btn-sm{padding:.35rem .65rem;font-size:.8rem;border-radius:var(--radius-sm)}.modal-overlay{position:fixed;inset:0;background:#00000073;display:grid;place-items:center;padding:1rem;z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content{width:min(100%,32rem);max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:1.25rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem}.confirm-notice{font-size:.9rem;color:var(--text-secondary)}.events-timeline{list-style:none;display:flex;flex-direction:column;gap:.75rem}.event-row{display:flex;align-items:center;gap:.85rem;padding:.75rem;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-canvas)}.event-row.undone{opacity:.55;text-decoration:line-through}.event-icon{font-size:1.5rem}.event-body{flex:1;display:flex;flex-direction:column;gap:.2rem}.event-summary{font-size:.9rem;font-weight:600}.event-meta{display:flex;align-items:center;gap:.6rem;font-size:.75rem;color:var(--text-muted)}.event-type-badge{background:var(--bg-subtle);padding:.1rem .4rem;border-radius:var(--radius-pill);text-transform:uppercase;font-size:.65rem;font-weight:700}.badge-undone{background:var(--danger-light);color:var(--danger-text);padding:.1rem .4rem;border-radius:var(--radius-pill);font-size:.65rem;font-weight:700}.settings-section{display:flex;flex-direction:column;gap:1rem}.settings-section h2{font-size:1.25rem;font-weight:700;color:var(--text-primary);border-bottom:1px solid var(--border-subtle);padding-bottom:.5rem}.section-desc{font-size:.85rem;color:var(--text-secondary)}.locations-settings-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.location-settings-item{display:flex;justify-content:space-between;align-items:center;padding:.6rem .85rem;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.loc-info{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9rem}.loc-stock-count{font-size:.75rem;color:var(--text-muted);font-weight:400}.add-location-form{margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--border-color);display:flex;flex-direction:column;gap:.75rem}.form-group-checkbox{display:flex;flex-direction:column;gap:.35rem}.checkbox-label{display:flex;align-items:center;gap:.6rem;font-weight:500;cursor:pointer}.input-hint{font-size:.75rem;color:var(--text-muted);padding-left:1.6rem}.export-actions-grid{display:flex;flex-wrap:wrap;gap:.75rem}.receipt-review-view{display:flex;flex-direction:column;gap:1.25rem}.duplicate-warning{background:var(--accent-warm-light);border:1px solid var(--accent-warm);display:flex;flex-direction:column;gap:.6rem}.dup-warning-header{display:flex;align-items:center;gap:.5rem;color:var(--accent-warm-text);font-size:1rem}.receipt-input-accordion{background:var(--bg-subtle);border-radius:var(--radius-sm);padding:.6rem;font-size:.85rem}.receipt-input-accordion summary{cursor:pointer;font-weight:600;color:var(--text-secondary)}.raw-input-wrap{margin-top:.6rem;display:flex;flex-direction:column;gap:.5rem}.raw-input-wrap textarea{width:100%;font-family:monospace;font-size:.85rem}@supports (-webkit-touch-callout: none){.filter-controls select,.raw-input-wrap textarea{font-size:16px}}.candidate-items-section{display:flex;flex-direction:column;gap:.85rem}.items-header-bar{display:flex;justify-content:space-between;align-items:center}.candidate-list{display:flex;flex-direction:column;gap:.85rem}.candidate-row{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:var(--bg-surface);border:1px solid var(--border-color);transition:opacity .2s ease,background .2s ease}.candidate-row.excluded{opacity:.45;background:var(--bg-subtle)}.row-main-fields{display:grid;grid-template-columns:2fr 1.5fr 1.2fr .8fr .8fr;gap:.6rem}@media(max-width:768px){.row-main-fields{grid-template-columns:1fr 1fr}.row-main-fields .name-field{grid-column:span 2}}.row-date-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.6rem}.field-group{display:flex;flex-direction:column;gap:.25rem}.field-group label{font-size:.75rem;font-weight:600;color:var(--text-muted)}.orig-line-hint{font-size:.7rem;color:var(--text-muted);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uncertainty-callout{background:var(--accent-warm-light);color:var(--accent-warm-text);border-radius:var(--radius-sm);padding:.4rem .6rem;font-size:.75rem;display:flex;align-items:center;gap:.4rem;font-weight:500}.review-commit-bar{display:flex;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--border-subtle)}.btn-large{padding:.85rem 2rem;font-size:1.05rem;font-weight:700}.view-title-row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem}.mode-toggle-pill{display:flex;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:var(--radius-pill);padding:.25rem;gap:.25rem}.pill-btn{padding:.35rem .85rem;border-radius:var(--radius-pill);font-size:.85rem;font-weight:600;color:var(--text-secondary)}.pill-btn.active{background:var(--brand-sage);color:#fff}.locations-scene-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.location-room-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;text-align:left;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.location-room-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--brand-sage)}.room-icon-box{font-size:2.2rem;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--bg-canvas);border-radius:var(--radius-md);flex-shrink:0}.room-meta{display:flex;flex-direction:column;gap:.2rem}.room-name{font-size:1.1rem;font-weight:700}.room-badge{font-size:.75rem;color:var(--text-muted)}.single-location-scene{display:flex;flex-direction:column;gap:1.25rem}.location-scene-hero{display:flex;align-items:center;gap:1.25rem;padding:1.25rem 1.5rem;background:linear-gradient(135deg,var(--bg-surface) 0%,var(--bg-subtle) 100%)}.scene-hero-icon{font-size:2.5rem}.location-food-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.food-tile-btn{display:flex;align-items:center;gap:.85rem;padding:1rem;text-align:left;transition:transform .15s ease,box-shadow .15s ease}.food-tile-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--brand-sage)}.food-tile-info{display:flex;flex-direction:column;gap:.3rem;flex:1}.food-tile-title{font-size:1rem;font-weight:700}.batch-indicator{font-size:.7rem;color:var(--text-muted)}.compact-items-table-wrap{overflow-x:auto;margin-top:1rem}.compact-table{width:100%;border-collapse:collapse;font-size:.85rem}.compact-table th,.compact-table td{padding:.65rem .85rem;text-align:left;border-bottom:1px solid var(--border-color)}.compact-food-cell{display:flex;align-items:center;gap:.6rem}.qty-tag-inline{background:var(--brand-sage-light);color:var(--brand-sage-text);padding:.2rem .5rem;border-radius:var(--radius-pill);font-weight:600;font-size:.8rem;margin-right:.3rem}.batch-modal{width:min(100%,36rem)}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle)}.header-info{display:flex;align-items:center;gap:.85rem}.item-stored-sub{font-size:.8rem;color:var(--text-secondary)}.batches-card-list{display:flex;flex-direction:column;gap:.85rem;margin:1rem 0}.batch-item-card{display:flex;flex-direction:column;gap:.6rem;padding:.85rem;background:var(--bg-canvas)}.batch-header-row{display:flex;justify-content:space-between;align-items:center}.batch-index-badge{font-size:.75rem;font-weight:700;color:var(--text-muted)}.batch-qty-badge{font-size:.95rem;font-weight:700;color:var(--brand-sage)}.batch-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;font-size:.8rem}.meta-label{color:var(--text-muted);margin-right:.35rem}.batch-actions-row{display:flex;flex-wrap:wrap;gap:.35rem;padding-top:.5rem;border-top:1px solid var(--border-subtle)}.submodal{z-index:250}.dashboard-layout-container{display:flex;flex-direction:column;gap:1.5rem}.dashboard-controls-bar{display:flex;justify-content:flex-end;gap:.75rem}.dashboard-editor-panel{display:flex;flex-direction:column;gap:1rem;background:var(--bg-surface);border:1px dashed var(--brand-sage)}.editor-widget-list{list-style:none;display:flex;flex-direction:column;gap:.6rem}.editor-widget-item{display:flex;justify-content:space-between;align-items:center;padding:.65rem .85rem;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.editor-widget-item.hidden{opacity:.5}.widget-label-part{display:flex;align-items:center;gap:.6rem}.order-num{font-size:.8rem;color:var(--text-muted);font-weight:700}.widget-action-btns{display:flex;align-items:center;gap:.4rem}.dashboard-widgets-stream{display:flex;flex-direction:column;gap:1.5rem}.widget-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.pantry-summary-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem}.pantry-summary-text{flex:1 1 12rem;margin:0;font-size:.9rem;color:var(--text-secondary)}.pantry-summary-strip .form-alert{flex-basis:100%;margin:0}.cook-tonight-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.cook-tonight-pick{margin:0;font-size:.9rem;font-weight:600;color:var(--brand-sage-text, var(--text-primary))}.pantry-stats-line{margin:0 0 1rem;font-size:.85rem;color:var(--text-muted)}.widget-header h2,.widget-header h3{font-size:1.2rem;font-weight:700}.widget-subtitle{font-size:.8rem;color:var(--text-muted)}.urgent-items-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem}.urgent-item-chip{display:flex;align-items:center;gap:.85rem;padding:.85rem;background:var(--bg-canvas)}.chip-meta{display:flex;flex-direction:column;gap:.2rem;flex:1}.chip-qty{font-size:.8rem;color:var(--text-secondary)}.loc-pills-row{display:flex;flex-wrap:wrap;gap:.6rem}.loc-pill-card{display:flex;align-items:center;gap:.5rem;padding:.5rem .85rem;background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);font-size:.85rem;font-weight:600;transition:transform .1s ease}.loc-pill-card:hover{transform:translateY(-1px);border-color:var(--brand-sage)}.pill-count{background:var(--brand-sage-light);color:var(--brand-sage-text);font-size:.75rem;padding:.1rem .4rem;border-radius:var(--radius-pill)}.flashcards-widget{background:linear-gradient(135deg,var(--bg-surface) 0%,var(--bg-subtle) 100%)}.flashcard-controls{display:flex;align-items:center;gap:.75rem}.auto-advance-label{display:flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:500;cursor:pointer}.wheel-filter .auto-advance-label input[type=checkbox]{width:1.5rem;height:1.5rem;padding:0;flex-shrink:0}.flashcard-scene{perspective:1000px;width:100%;max-width:380px;height:220px;margin:.5rem auto 1rem;cursor:pointer}.flashcard-inner{position:relative;width:100%;height:100%;text-align:center;transition:transform .5s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}.flashcard-inner.flipped{transform:rotateY(180deg)}.flashcard-face{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:var(--radius-lg);padding:1.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--shadow-md);border:2px dashed #e2d7c5}.flashcard-front{background:#fffdfa;color:#2c3930;gap:.6rem}[data-theme=dark] .flashcard-front{background:#243027;color:#edf5ee;border-color:#3b4c3e}.flashcard-back{background:#fbf7ee;color:#2c3930;transform:rotateY(180deg);gap:.4rem;justify-content:center}[data-theme=dark] .flashcard-back{background:#1e2821;color:#edf5ee;border-color:#3b4c3e}.card-item-title{font-size:1.25rem;font-weight:700}.flip-hint{font-size:.75rem;color:var(--text-muted);margin-top:auto}.card-detail-item{display:flex;gap:.5rem;font-size:.85rem}.cd-label{color:var(--text-muted)}.wheel-center-stage{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:1.25rem 0}.wheel-circle{width:140px;height:140px;border-radius:50%;border:6px solid var(--brand-sage);display:flex;align-items:center;justify-content:center;background:var(--bg-canvas);box-shadow:var(--shadow-md);position:relative;transition:transform .6s cubic-bezier(.17,.67,.83,.67)}.wheel-circle.spinning{animation:wheel-spin .6s cubic-bezier(.2,.8,.3,1)}@keyframes wheel-spin{0%{transform:rotate(0)}to{transform:rotate(720deg)}}.wheel-pointer{position:absolute;top:-14px;font-size:1.2rem;color:var(--brand-sage)}.wheel-center-emoji{font-size:2.75rem}.btn-spin{font-size:1.05rem;padding:.75rem 2rem;border-radius:var(--radius-pill)}.wheel-result-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:var(--brand-sage-light);border:1px solid var(--brand-sage);animation:fade-in .25s ease}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.reset-excluded{font-size:.8rem}.recipe-ideas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.recipe-card-mini{display:flex;align-items:center;gap:1rem;padding:1rem;transition:transform .15s ease,border-color .15s ease}.recipe-card-mini:hover{transform:translateY(-2px);border-color:var(--brand-sage)}.recipe-emoji{font-size:2.5rem}.recipe-info{display:flex;flex-direction:column;gap:.25rem}.recipe-info h4{font-size:1rem;font-weight:700}.recipe-meta-text{font-size:.75rem;color:var(--text-muted)}.badge-available{background:var(--success-light);color:var(--success);font-size:.75rem;font-weight:700;padding:.15rem .5rem;border-radius:var(--radius-pill)}.badge-missing{background:var(--accent-warm-light);color:var(--accent-warm-text);font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:var(--radius-pill)}.recipes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.recipe-card{display:flex;flex-direction:column;gap:1rem;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.recipe-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--brand-sage)}.recipe-card-top{display:flex;align-items:center;gap:1rem}.recipe-emoji-big{font-size:3rem}.recipe-headline h2,.recipe-headline h3{font-size:1.15rem;font-weight:700}.recipe-modal{width:min(100%,38rem)}.recipe-modal-title-box{display:flex;align-items:center;gap:1rem}.modal-emoji{font-size:2.75rem}.recipe-detail-section{display:flex;flex-direction:column;gap:.75rem}.recipe-detail-section h4{font-size:1rem;font-weight:700;border-bottom:1px solid var(--border-subtle);padding-bottom:.35rem}.recipe-ingredients-checklist{list-style:none;display:flex;flex-direction:column;gap:.5rem}.recipe-ing-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-radius:var(--radius-sm);background:var(--bg-canvas)}.recipe-ing-item.in-stock{border-left:3px solid var(--success)}.recipe-ing-item.missing{border-left:3px solid var(--accent-warm)}.ing-check-icon{margin-right:.6rem}.ing-info{flex:1;display:flex;gap:.4rem;align-items:center}.optional-tag{font-size:.75rem;color:var(--text-muted)}.ing-stock-status{font-size:.75rem;font-weight:600}.recipe-steps-list{padding-left:1.25rem;display:flex;flex-direction:column;gap:.5rem;font-size:.9rem}.deduct-preview-list{list-style:none;display:flex;flex-direction:column;gap:.4rem;background:var(--bg-subtle);padding:.75rem;border-radius:var(--radius-sm);margin:.75rem 0;font-size:.85rem}.craving-buttons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.85rem}.craving-card{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;cursor:pointer;text-align:left;transition:transform .15s ease,border-color .15s ease}.craving-card:hover{transform:translateY(-2px);border-color:var(--brand-sage)}.craving-card.active{background:var(--brand-sage-light);border-color:var(--brand-sage)}.craving-emoji{font-size:1.8rem}.craving-meta{display:flex;flex-direction:column;gap:.15rem}.craving-title{font-weight:700;font-size:.9rem}.craving-desc{font-size:.75rem;color:var(--text-secondary)}.suggestions-results-section{display:flex;flex-direction:column;gap:1.25rem}.results-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-subtle);padding-bottom:.5rem}.suggestions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.suggestion-card{display:flex;gap:.85rem;padding:1rem}.sug-info{flex:1;display:flex;flex-direction:column;gap:.3rem}.sug-info h4{font-size:1rem;font-weight:700}.sug-reason{font-size:.75rem;color:var(--text-secondary)}.sug-actions{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between}.exclude-btn{font-size:.7rem;color:var(--text-muted)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.flashcard-scene:focus-visible,.wheel-widget button:focus-visible,.flashcard-controls button:focus-visible,.flashcard-filter-controls select:focus-visible{outline:3px solid var(--focus-ring, #39765c);outline-offset:3px}.flashcard-filter-controls{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem;margin:.5rem 0 1rem}.flashcard-filter-controls label,.wheel-filter label,.location-edit-fields label{display:flex;flex-direction:column;gap:.3rem}.location-edit-fields{display:flex;flex-wrap:wrap;gap:.65rem;min-width:14rem}.candidate-list-actions,.receipt-row-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem}.receipt-row-tools{justify-content:space-between;margin-bottom:.5rem}.combine-select-label{display:inline-flex;align-items:center;gap:.35rem}@media(prefers-reduced-motion:reduce){.flashcard-inner,.wheel-circle,.wheel-disc,.flashcard-face{animation:none!important;transition:none!important;scroll-behavior:auto!important}}:where(a[href],button,input:not([type=hidden]),select,textarea,[role=button][tabindex]):focus-visible{outline:3px solid var(--focus-ring, #176b4d);outline-offset:3px}@media(forced-colors:active){:where(a[href],button,input:not([type=hidden]),select,textarea,[role=button][tabindex]):focus-visible{outline-color:Highlight}}.receipt-upload-section{display:flex;flex-direction:column;align-items:flex-start;gap:.8rem}.receipt-upload-card{width:100%;border:1.5px dashed var(--border-color);border-radius:var(--radius-lg);background:var(--bg-canvas);transition:border-color .16s ease,background .16s ease,transform .16s ease}.receipt-upload-card:hover{border-color:var(--brand-sage);background:var(--bg-subtle)}.upload-label{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.2rem;cursor:pointer}.upload-icon{display:grid;place-items:center;flex:0 0 3rem;width:3rem;height:3rem;border-radius:1rem;background:var(--brand-sage-light);font-size:1.5rem}.upload-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:.25rem}.upload-text{color:var(--text-primary);font-size:1rem;font-weight:700}.upload-subtext{color:var(--text-secondary);font-size:.8rem;line-height:1.45}.button-upload{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--brand-sage);border-radius:var(--radius-md);padding:.6rem .9rem;background:var(--brand-sage);color:var(--bg-canvas);font-size:.875rem;font-weight:700;box-shadow:0 2px #0000000f}.button-ai{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:2.7rem;padding:.65rem 1rem;border:1px solid #b8a4d7;border-radius:var(--radius-md);background:#f3eefb;color:#553d78;font-weight:700;transition:background .16s ease,border-color .16s ease,transform .16s ease}.button-ai:hover{background:#e9dff7;border-color:#9276bd;transform:translateY(-1px)}.button-ai>span:first-child{font-size:1.1rem}.upload-hint{max-width:68ch;color:var(--text-muted);font-size:.8rem;line-height:1.5;margin:0}.ocr-progress{width:100%;padding:.7rem .85rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-subtle)}.ocr-progress p{margin:0}.ocr-progress-status{position:relative;display:flex;align-items:center;gap:.5rem;font-weight:600;font-variant-numeric:tabular-nums}.ocr-progress-dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--brand-sage);animation:ocr-progress-pulse 1.4s ease-in-out infinite}@keyframes ocr-progress-pulse{0%,to{opacity:.35}50%{opacity:1}}.ocr-progress-estimate,.ocr-progress-reassurance{max-width:68ch;color:var(--text-muted);font-size:.8rem;line-height:1.5;margin-top:.35rem}.ocr-progress-reassurance{font-weight:600;color:var(--text-primary)}.ocr-progress-live{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.ocr-progress-dot{animation:none!important;opacity:1}}.wheel-center-stage{gap:1rem}.wheel-visual-wrap{position:relative;width:min(100%,320px);aspect-ratio:1;margin:.5rem auto 0;padding:.45rem;border-radius:50%;background:var(--bg-surface);box-shadow:0 8px 24px #232d2324,0 0 0 1px var(--border-color)}.wheel-disc{position:relative;width:100%;height:100%;overflow:hidden;border:5px solid var(--bg-surface);border-radius:50%;box-shadow:inset 0 0 0 1px #28372829;transition:transform 2.6s cubic-bezier(.11,.72,.13,1)}.wheel-disc:after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;box-shadow:inset 0 0 0 1px #2837281f}.wheel-segment-label{position:absolute;top:50%;left:50%;z-index:1;display:block;width:84px;margin:-.55rem 0 0 -42px;overflow:hidden;color:#28372d;font-size:.64rem;font-weight:700;line-height:1.1;text-align:center;text-overflow:ellipsis;white-space:nowrap;transform-origin:center center;pointer-events:none}.wheel-hub{position:absolute;top:50%;left:50%;z-index:2;display:grid;place-items:center;width:3.3rem;height:3.3rem;border:4px solid var(--bg-surface);border-radius:50%;background:var(--bg-canvas);box-shadow:0 2px 8px #00000024;font-size:1.35rem;transform:translate(-50%,-50%)}.wheel-pointer{position:absolute;z-index:5;top:-.35rem;left:50%;width:2rem;height:2.3rem;transform:translate(-50%);filter:drop-shadow(0 2px 2px rgba(0,0,0,.2))}.wheel-pointer span{display:block;width:0;height:0;margin:0 auto;border-left:.9rem solid transparent;border-right:.9rem solid transparent;border-top:1.9rem solid var(--brand-sage)}.wheel-count{margin:0;color:var(--text-muted);font-size:.8rem}.btn-spin{min-width:11rem;min-height:2.9rem;box-shadow:0 3px #00000014}.button-primary,.button-secondary,.button-danger,.button-ai,.button-upload{transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}.button-primary:not(:disabled):active,.button-secondary:not(:disabled):active,.button-ai:not(:disabled):active,.btn-spin:not(:disabled):active{transform:translateY(1px);box-shadow:none}button:disabled{cursor:not-allowed;opacity:.62}@media(max-width:560px){.upload-label{align-items:flex-start;flex-wrap:wrap;padding:.9rem}.upload-copy{flex-basis:calc(100% - 4rem)}.button-upload{margin-left:4rem}.wheel-visual-wrap{width:min(100%,290px)}.wheel-segment-label{font-size:.57rem;width:74px;margin-left:-37px}}[data-theme=dark] .button-ai{border-color:#66517f;background:#30283d;color:#eee3ff}[data-theme=dark] .button-ai:hover{border-color:#9b82c0;background:#3d324e}.button-primary,.button-secondary,.button-danger,.button-ai,.button-upload,.button-link{-webkit-tap-highlight-color:transparent}.button-primary:not(:disabled):hover,.button-secondary:not(:disabled):hover,.button-danger:not(:disabled):hover,.button-upload:not(:disabled):hover{transform:translateY(-1px)}.button-primary:disabled,.button-secondary:disabled,.button-danger:disabled,.button-ai:disabled,.button-upload:disabled{cursor:not-allowed;opacity:.58;box-shadow:none;transform:none}.wheel-widget .widget-header{margin-bottom:1rem}.wheel-filter{padding:.85rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-canvas)}.wheel-result-card{border-color:var(--brand-sage);background:var(--brand-sage-light);box-shadow:0 6px 18px #263c2a14}.wheel-result-card h4{margin:0;line-height:1.35}.wheel-disc{will-change:transform}@media(max-width:560px){.receipt-upload-card .upload-label{align-items:flex-start;flex-wrap:wrap;gap:.75rem;padding:1rem}.receipt-upload-card .upload-copy{flex-basis:calc(100% - 4rem)}.receipt-upload-card .button-upload{width:100%;min-height:2.8rem}.wheel-visual-wrap{width:min(100%,280px)}.wheel-segment-label{width:68px;margin-left:-34px;font-size:.56rem}.wheel-filter{padding:.7rem}.wheel-result-card{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.button-primary,.button-secondary,.button-danger,.button-ai,.button-upload,.wheel-disc,.receipt-upload-card{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}:where(a,button,input,select,textarea,[role=button],[tabindex="0"]):focus-visible{outline:3px solid var(--brand-sage, #789477);outline-offset:3px}:where(input,select,textarea){transition:border-color .14s ease,box-shadow .14s ease}:where(input,select,textarea):focus-visible{border-color:var(--brand-sage, #789477);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-sage, #789477) 18%,transparent)}.manual-entry-form>.manual-entry-title{margin-bottom:.35rem}.manual-entry-form .form-group{min-width:0}.manual-entry-form input,.manual-entry-form select,.manual-entry-form textarea{max-width:100%}.recipe-card,.loc-pill-card,.use-first-item,.flashcard-item{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}@media(hover:hover)and (pointer:fine){.recipe-card:hover,.loc-pill-card:hover,.use-first-item:hover{transform:translateY(-2px);box-shadow:0 8px 22px #23312614}}@media(prefers-reduced-motion:reduce){:where(input,select,textarea),.recipe-card,.loc-pill-card,.use-first-item,.flashcard-item{transition:none!important}}.view-container{min-width:0}.view-header,.view-title-row,.results-header{gap:.85rem}.view-subtitle{max-width:68ch;line-height:1.55}.search-filter-bar,.filter-controls{align-items:end;gap:.8rem}.search-filter-bar label,.filter-controls label{min-width:0;flex:1 1 12rem}.search-filter-bar select,.filter-controls select{width:100%;min-width:0}.suggestions-results-section,.compact-list-wrapper,.manual-entry-form{min-width:0}.suggestion-card,.location-room-card,.food-tile-btn,.craving-card{text-align:left}.suggestion-card,.location-room-card,.food-tile-btn{overflow-wrap:anywhere}.form-alert{border-radius:.8rem;line-height:1.5}.form-hint,.input-hint{line-height:1.5}.empty-suggestions,.empty-scene{display:grid;justify-items:start;gap:.8rem;padding:clamp(1rem,3vw,1.6rem)}.empty-suggestions p,.empty-scene p{max-width:58ch;margin:0;line-height:1.6}.compact-table th,.compact-table td{vertical-align:middle}@media(max-width:560px){.view-title-row{align-items:flex-start;flex-direction:column}.mode-toggle-pill{max-width:100%;overflow-x:auto}.search-filter-bar,.filter-controls{align-items:stretch}.search-filter-bar label,.filter-controls label{flex-basis:100%}.form-actions{position:sticky;bottom:0;z-index:4;padding:.75rem 0;background:var(--bg-card, var(--bg-canvas))}}.shopping-items-list .recipe-ing-item{display:flex;align-items:center;gap:.75rem}.shopping-items-list .recipe-ing-item>input[type=checkbox]{flex:0 0 auto;width:1.15rem;height:1.15rem;accent-color:var(--color-primary, #63866a)}.shopping-items-list .ing-info{flex:1 1 auto;min-width:0}.shopping-items-list .optional-tag{display:block;overflow-wrap:anywhere}.shopping-add-form{display:flex;flex-direction:column;gap:1rem}.shopping-add-form h2,.shopping-list-view #shopping-list-heading{font-size:1.15rem;line-height:1.35}.shopping-add-fields{display:grid;grid-template-columns:minmax(0,2fr) minmax(7rem,.8fr) minmax(7rem,1fr);gap:.85rem;align-items:end}.shopping-add-fields label{display:flex;flex-direction:column;gap:.35rem;min-width:0;color:var(--text-secondary);font-size:.85rem;font-weight:600}.shopping-add-fields input{width:100%;min-width:0;color:var(--text-primary);font-weight:400}.shopping-add-form .modal-actions{margin-top:0}.shopping-list-view>.form-alert{margin-bottom:0}.shopping-list-view .results-header{gap:.75rem;flex-wrap:wrap}.shopping-items-list{display:flex;flex-direction:column;gap:.5rem;list-style:none}.shopping-items-list .recipe-ing-item{display:flex;align-items:center;gap:.75rem;min-width:0;padding:.75rem;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-canvas)}.shopping-items-list .recipe-ing-item>input[type=checkbox]{flex:0 0 auto;width:1.15rem;height:1.15rem;accent-color:var(--brand-sage)}.shopping-items-list .ing-info{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.shopping-items-list .optional-tag{display:block;font-size:.75rem;overflow-wrap:anywhere}.shopping-item-checked{text-decoration:line-through;opacity:.7}.want-view .craving-buttons-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));align-items:stretch}.want-view .craving-card{min-width:0;height:100%}.want-view .craving-meta{min-width:0}.want-view .craving-title,.want-view .craving-desc{overflow-wrap:anywhere}.want-view .search-filter-bar.card{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.want-view .search-filter-bar label{display:flex;flex-direction:column;gap:.35rem;min-width:0;font-size:.85rem;font-weight:600;color:var(--text-secondary)}.want-view .search-filter-bar select{width:100%;min-width:0}.want-view .suggestions-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));align-items:stretch}.want-view .suggestion-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-content:start;align-items:start;min-width:0;gap:.75rem}.want-view .suggestion-card>svg,.want-view .suggestion-card>img{max-width:100%}.want-view .sug-info{min-width:0;overflow-wrap:anywhere}.want-view .sug-actions{grid-column:1 / -1;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.4rem;padding-top:.65rem;border-top:1px solid var(--border-subtle)}.want-view .sug-actions a,.want-view .sug-actions button{max-width:100%;text-align:center}.auth-divider{display:flex;align-items:center;gap:.75rem;color:var(--text-muted);font-size:.8rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border-color)}.auth-google-button{width:100%;min-height:2.75rem}.google-g-mark{display:inline-grid;place-items:center;width:1.35rem;height:1.35rem;border:1px solid var(--border-color);border-radius:50%;background:#fff;color:#4285f4;font-weight:800;font-family:Arial,sans-serif}.auth-google-button:disabled{opacity:.65;cursor:wait}@media(max-width:700px){.shopping-add-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.shopping-add-fields label:first-child{grid-column:1 / -1}.shopping-list-view .results-header{align-items:flex-start}.shopping-items-list .recipe-ing-item{gap:.55rem;padding:.65rem}.shopping-items-list .recipe-ing-item .button-link{flex:0 0 auto}.want-view .search-filter-bar.card{grid-template-columns:minmax(0,1fr)}.want-view .suggestion-card{grid-template-columns:auto minmax(0,1fr)}}@media(max-width:380px){.shopping-add-fields{grid-template-columns:minmax(0,1fr)}.shopping-add-fields label:first-child{grid-column:auto}.want-view .craving-buttons-grid,.want-view .suggestions-grid{grid-template-columns:minmax(0,1fr)}}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--bg-canvas)}.error-boundary-card{max-width:480px;display:flex;flex-direction:column;gap:.85rem;text-align:center;align-items:center}.events-timeline .event-row{content-visibility:auto;contain-intrinsic-size:auto 72px}.onboarding-card{position:relative;display:flex;flex-direction:column;gap:.85rem;margin-bottom:1rem;padding:1.25rem}.onboarding-card h2{font-size:1.25rem}.onboarding-dismiss{position:absolute;top:.5rem;right:.5rem}.onboarding-steps{list-style:none;display:flex;flex-direction:column;gap:.5rem;color:var(--text-secondary)}.empty-cta-row{display:flex;gap:.75rem;justify-content:center;margin-top:.5rem}.empty-cta-row .button-primary{text-decoration:none;display:inline-block}.gemini-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem}.gemini-web-panel{margin-top:.85rem;display:flex;flex-direction:column;gap:.5rem;text-align:left;width:100%}.gemini-image-route{display:flex;flex-direction:column;gap:.35rem;margin-top:.75rem;padding:.6rem .75rem;border:1px dashed var(--border-color, #d8cfc4);border-radius:.6rem}.gemini-image-route .upload-hint{margin:0}.gemini-web-steps{margin:0;padding-left:1.25rem;color:var(--text-secondary);display:flex;flex-direction:column;gap:.35rem}.onboarding-links{display:flex;gap:.5rem;flex-wrap:wrap}.brainstorm-card{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.brainstorm-card details textarea,.gemini-web-panel details textarea{width:100%;resize:vertical}.onboarding-model{margin:0;color:var(--text-secondary);font-size:.9rem;line-height:1.55}.onboarding-reopen{margin:0 0 1rem;text-align:center}.onboarding-reopen .button-link{font-size:.85rem;color:var(--text-secondary)}.topbar-more{position:relative;align-items:center}.topbar-more-toggle{display:inline-flex;align-items:center;gap:.3rem;min-height:24px;padding:.25rem .5rem;border-radius:var(--radius-pill);font-size:.8rem;font-weight:600;color:var(--text-secondary)}.topbar-more-toggle:hover{background:var(--bg-subtle);color:var(--text-primary)}.topbar-more-icon{font-size:1rem;line-height:1}.topbar-more-menu{position:absolute;top:calc(100% + .4rem);right:0;z-index:110;min-width:11rem;list-style:none;display:flex;flex-direction:column;gap:.15rem;padding:.35rem;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.topbar-more-link{display:flex;align-items:center;gap:.5rem;min-height:44px;padding:.5rem .6rem;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.9rem;font-weight:500}.topbar-more-link:hover{background:var(--bg-subtle);color:var(--text-primary)}.topbar-more-link.active{background:var(--brand-sage-light);color:var(--brand-sage-text);font-weight:600}.topbar-more-link-icon{font-size:1.1rem}.search-filter-bar .search-input-wrap{width:100%;align-self:stretch}.onboarding-steps{counter-reset:onboarding-step;margin:.25rem 0 0;padding:0;gap:.6rem}.onboarding-steps li{counter-increment:onboarding-step;display:flex;align-items:flex-start;gap:.75rem;padding:.7rem .9rem;background:var(--bg-canvas);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);line-height:1.45}.onboarding-steps li:before{content:counter(onboarding-step);flex-shrink:0;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--brand-sage);color:var(--bg-canvas);font-weight:700;font-size:.875rem;display:grid;place-items:center;margin-top:.05rem}.onboarding-model{font-size:1rem;max-width:55ch;margin-bottom:.25rem}.onboarding-links{margin-top:.25rem}.onboarding-links .button-link{padding:.3rem .85rem;border:1px solid var(--border-color);border-radius:var(--radius-pill);background:var(--bg-surface);text-decoration:none}.onboarding-links .button-link:hover{background:var(--brand-sage-light);border-color:var(--brand-sage);color:var(--brand-sage-text)}.view-subtitle{font-size:1.0625rem;max-width:60ch;margin-bottom:.75rem}.upload-hint{max-width:62ch}.upload-hint:before{content:"";display:inline-block;width:.3rem;height:.3rem;border-radius:50%;background:var(--brand-sage);margin-right:.45rem;vertical-align:.15rem;opacity:.75}.changelog-details{margin-top:.75rem;border-top:1px solid var(--border-color);padding-top:.75rem}.changelog-details>summary{display:flex;align-items:center;gap:.6rem;cursor:pointer;min-height:44px;list-style:none;font-weight:600;color:var(--text-primary);border-radius:var(--radius-sm);padding:.25rem .4rem;margin-left:-.4rem}.changelog-details>summary::-webkit-details-marker{display:none}.changelog-details>summary:hover{background:var(--bg-subtle)}.changelog-details>summary:after{content:"";margin-left:auto;width:.5rem;height:.5rem;border-right:2px solid var(--text-secondary);border-bottom:2px solid var(--text-secondary);transform:rotate(45deg);transition:transform .15s ease}.changelog-details[open]>summary:after{transform:rotate(-135deg)}.changelog-version{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.875rem;font-variant-numeric:tabular-nums;padding:.15rem .5rem;border-radius:var(--radius-pill);background:var(--brand-sage-light);color:var(--brand-sage-text)}.changelog-summary-text{font-size:.9rem;color:var(--text-secondary);font-weight:500}.changelog-body{max-height:360px;overflow-y:auto;margin-top:.75rem;padding-right:.4rem}.changelog-release+.changelog-release{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border-color)}.changelog-release-header{display:flex;align-items:baseline;flex-wrap:wrap;gap:.6rem;margin-bottom:.35rem}.changelog-release-header h3{margin:0;font-size:1rem;font-variant-numeric:tabular-nums}.changelog-release-header time{font-size:.8125rem;color:var(--text-secondary)}.changelog-release-title{margin:0 0 .75rem;font-size:.9rem;color:var(--text-secondary)}.changelog-section+.changelog-section{margin-top:.85rem}.changelog-section h4{margin:0 0 .35rem;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.changelog-section ul{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.4rem}.changelog-section li{font-size:.875rem;line-height:1.5;color:var(--text-primary)}@media(max-width:600px){.changelog-body{max-height:300px}.changelog-details>summary{font-size:.9rem}}.search-filter-bar .filter-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;align-items:end;width:100%}.search-filter-bar .filter-controls label{display:flex;flex-direction:column;align-items:stretch;gap:.3rem;min-width:0}.search-filter-bar .filter-controls label>span{font-size:.75rem;font-weight:600;letter-spacing:.02em;color:var(--text-secondary)}.search-filter-bar .filter-controls select{width:100%;min-width:0}@media(max-width:900px){.search-filter-bar .filter-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.search-filter-bar .filter-controls{grid-template-columns:minmax(0,1fr)}}
