:root{--ink: #18332b;--muted: #6d7b73;--paper: #fbf7ef;--surface: #fffdf8;--surface-quiet: #f4eee4;--line: rgba(24, 51, 43, .13);--accent: #2f7d68;--accent-strong: #225c4e;--warn: #a85d18;--danger: #9d332b;--shadow: 0 24px 70px rgba(24, 51, 43, .11);color:var(--ink);background:var(--paper);font-family:Aptos,Segoe UI,sans-serif}*{box-sizing:border-box}html{overflow-y:auto}body{margin:0;min-width:320px;min-height:100vh;overscroll-behavior-y:auto;touch-action:pan-y;-webkit-overflow-scrolling:touch;background:linear-gradient(135deg,#fbf7efeb,#f8eeddeb),radial-gradient(circle at 12% 8%,rgba(47,125,104,.18),transparent 24rem),radial-gradient(circle at 92% 20%,rgba(168,93,24,.14),transparent 22rem)}a{color:inherit}.app-shell{width:min(100% - 16px,760px);margin:0 auto;padding:10px 0 28px;touch-action:pan-y}.topbar{display:flex;align-items:center;gap:8px;padding:2px 0 6px}.brand{display:inline-flex;align-items:center;text-decoration:none;flex:0 0 auto}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:14px;background:var(--ink);color:var(--paper);font-weight:900;letter-spacing:-.06em}.account-chip{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:var(--muted)}.account-chip>span{display:grid;place-items:center;min-width:32px;height:32px;padding:0 7px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--ink);font-size:.76rem;font-weight:800}.module-menu{display:flex;align-items:center;gap:4px;flex:1 1 auto;min-width:0}.module-menu a{width:38px;min-height:38px;display:grid;place-items:center;padding:0;border:1px solid transparent;border-radius:14px;color:var(--muted);font-size:1.15rem;font-weight:800;text-decoration:none;transition:background .14s ease,color .14s ease,transform .14s ease}.module-menu a:hover{transform:translateY(-1px);color:var(--ink)}.module-menu a.active{border-color:#2f7d683d;background:var(--accent);color:#fff}.eyebrow{margin:0;color:var(--warn);font-size:.66rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.045em;line-height:.98}h1{max-width:850px;margin-bottom:0;font-size:clamp(2.25rem,8vw,5.6rem)}.page-heading p:not(.eyebrow){max-width:650px;margin-bottom:0;color:var(--muted);font-size:clamp(1rem,3vw,1.2rem);line-height:1.45}.workspace{padding-top:2px;animation:fade-in .22s ease-out both}.dashboard-layout,.work-grid{display:grid;gap:14px}.metric-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric{min-height:96px;padding:14px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 12px 35px #18332b0f}.metric span,.metric small{display:block;color:var(--muted);font-weight:700}.metric span{font-size:.8rem}.metric small{font-size:.74rem}.metric strong{display:block;margin:8px 0 3px;font-size:1.8rem;letter-spacing:-.08em}.metric.warn strong{color:var(--warn)}.split-grid,.work-grid{display:grid;grid-template-columns:1fr;gap:12px}.split-grid.lower{grid-template-columns:1fr}.full-span{grid-column:1 / -1}.panel{padding:16px;border:1px solid var(--line);border-radius:24px;background:#fffdf8db;box-shadow:var(--shadow)}.hero-panel{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1fr);gap:22px;align-items:start}.panel h2{margin-bottom:10px;font-size:clamp(1.25rem,5vw,1.8rem)}.panel h3{margin-bottom:5px;font-size:1rem}.panel p{color:var(--muted);line-height:1.4;font-size:.92rem}.section-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:16px}.status-pill{display:inline-flex;align-items:center;white-space:nowrap;min-height:28px;padding:0 10px;border-radius:999px;background:var(--surface-quiet);color:var(--muted);font-size:.72rem;font-weight:900}.status-pill.warn{color:var(--warn)}input,select,button,textarea{width:100%;min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font:inherit;font-size:.95rem}textarea{resize:vertical;min-height:120px}button{cursor:pointer;border-color:var(--accent);background:var(--accent);color:#fff;font-weight:900;transition:transform .14s ease,background .14s ease,opacity .14s ease}button:hover{transform:translateY(-1px);background:var(--accent-strong)}button:disabled{cursor:wait;opacity:.6}.ghost-button{border-color:var(--line);background:var(--surface-quiet);color:var(--ink)}.ghost-button:hover{background:#ebe2d5}.danger-button{border-color:#9d332b40;background:#9d332b1a;color:var(--danger)}.danger-button:hover{background:var(--danger);color:#fff}.text-button{min-height:auto;width:auto;padding:0;border:0;background:transparent;color:var(--accent);font-size:.82rem}.text-button:hover{background:transparent;color:var(--accent-strong)}.compact{min-height:32px;width:auto;padding:6px 10px;border-radius:999px;font-size:.74rem}.primary-action{min-height:46px}.form-stack{display:grid;gap:10px}.inline-fields{display:grid;grid-template-columns:1fr;gap:6px}.form-row,.button-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.button-row>*{width:100%}.button-row.tight{gap:6px}.button-row.tight button{min-height:36px;padding:8px 10px;border-radius:12px;font-size:.78rem}.button-with-spinner{display:inline-flex;align-items:center;justify-content:center;gap:8px}.button-spinner{width:.9rem;height:.9rem;border:2px solid currentColor;border-right-color:transparent;border-radius:999px;animation:ff-spin .8s linear infinite}@keyframes ff-spin{to{transform:rotate(360deg)}}.thumb-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.thumb-choice{border-color:var(--line);background:var(--surface-quiet);color:var(--ink)}.thumb-choice:hover{background:#ebe2d5;color:var(--ink)}.thumb-choice.active{background:var(--accent);border-color:var(--accent);color:#fff}.thumb-choice.active:hover{background:var(--accent-strong);color:#fff}.thumb-choice.down.active{background:var(--danger);border-color:var(--danger)}.thumb-choice.down.active:hover{background:#7f261f;color:#fff}.field-label{display:grid;gap:7px;color:var(--muted);font-size:.78rem;font-weight:900}.scan-band{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:8px}.scan-band button{width:100%}.search-input{margin-bottom:12px}.scanner-view{display:none;width:100%;max-height:260px;margin:0 0 12px;object-fit:cover;border-radius:22px;border:1px solid var(--line);background:var(--ink)}.scanner-view.active{display:block}.product-preview{margin:0 0 12px;padding:12px;border:1px solid var(--line);border-radius:24px;background:#ffffff94}.product-preview-image,.photo-image{width:100%;display:block;object-fit:cover;border-radius:18px}.product-preview-image{max-height:220px}.product-suggestions{display:flex;flex-wrap:wrap;gap:7px}.product-chip{display:inline-grid;justify-items:start;width:auto;min-height:42px;padding:8px 11px;border-color:var(--line);background:var(--surface-quiet);color:var(--ink);border-radius:999px}.product-chip:hover{background:#ebe2d5;color:var(--ink)}.product-chip strong{font-size:.86rem}.product-chip span{color:var(--muted);font-size:.72rem}.list-block,.compact-list,.timeline-list,.suggestion-stack,.proposal-grid,.user-table{display:grid;gap:10px}.list-item,.compact-row,.timeline-row,.proposal-card,.suggestion-card,.user-row,.mini-meal{border:1px solid var(--line);background:#ffffff94}.list-item{display:grid;gap:12px;padding:12px;border-radius:18px}.inventory-row{grid-template-columns:minmax(0,1fr) auto auto;align-items:center}.product-list{align-content:start}.product-list-item{display:grid;grid-template-columns:1fr;gap:8px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:18px;background:#ffffff94;color:var(--ink);text-align:left}.product-list-item.active{border-color:#2f7d6873;box-shadow:0 0 0 2px #2f7d681f}.product-list-item:hover,.product-list-item.active:hover{background:#ffffffb8;color:var(--ink)}.product-list-item strong,.product-list-item span,.product-list-item small{display:block}.product-list-item span,.product-list-item small{color:var(--muted)}.product-list-meta{display:grid;gap:4px;justify-items:start}.item-meta{display:grid;gap:4px;text-align:right}.item-meta strong{font-size:1.05rem}.expiry{color:var(--muted);font-size:.8rem;font-weight:800}.expiry.warn{color:var(--warn)}.compact-row,.timeline-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;padding:10px 12px;border-radius:16px}.compact-row small,.timeline-row small{color:var(--muted)}.compact-row span,.timeline-row span{color:var(--muted);font-weight:800;text-transform:capitalize}.timeline-row{grid-template-columns:86px minmax(0,1fr)}.timeline-row small{grid-column:2}.empty-state{margin:0;color:var(--muted)}.notice{margin:14px 0 0;padding:12px 14px;border-radius:16px;background:#2f7d681a;color:var(--accent-strong);font-weight:800}.notice.error{background:#9d332b1a;color:var(--danger)}.modal-body .notice,.detail-grid .notice{margin-top:0}.shopping-row{grid-template-columns:42px minmax(0,1fr) auto;align-items:center}.shopping-row.checked{opacity:.62}.check-button{width:38px;height:38px;min-height:38px;padding:0;border-radius:50%;background:var(--surface);color:var(--accent)}.shopping-row.checked .check-button{background:var(--accent);color:#fff;font-size:.68rem}.shopping-table{display:grid;gap:0;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#ffffff9e}.shopping-table button{transition:none;-webkit-appearance:none;appearance:none;touch-action:manipulation}.shopping-table-head,.shopping-table-row{display:grid;grid-template-columns:minmax(0,1.8fr) 52px 36px 36px;gap:6px;align-items:center;padding:5px 8px}.shopping-table-head{border-bottom:1px solid var(--line);color:var(--muted);font-size:.66rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.shopping-table-row{border-top:1px solid var(--line)}.shopping-table-row:first-of-type{border-top:none}.shopping-table-row.checked{opacity:.62}.shopping-name-button{min-width:0;width:100%;border:none;background:transparent;text-align:left;padding:0;font-size:.86rem;font-weight:800;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shopping-name-button:hover,.shopping-name-button:active,.shopping-name-button:focus{background:transparent;color:var(--ink);transform:none;outline:none}.shopping-qty{font-size:.8rem;font-weight:800;color:var(--muted)}.shopping-qty-button{border:none;background:transparent;padding:0;min-height:28px}.shopping-qty-button:hover,.shopping-qty-button:active,.shopping-qty-button:focus{background:transparent;color:var(--ink);transform:none;outline:none}.icon-button{width:34px;min-width:34px;min-height:34px;padding:0;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:.84rem;font-weight:900}.icon-button.danger{color:#7d2d2d}.shopping-table .shopping-name-button:hover,.shopping-table .shopping-name-button:active,.shopping-table .shopping-name-button:focus,.shopping-table .shopping-name-button:focus-visible,.shopping-table .shopping-qty-button:hover,.shopping-table .shopping-qty-button:active,.shopping-table .shopping-qty-button:focus,.shopping-table .shopping-qty-button:focus-visible{background:transparent!important;color:var(--ink)!important;transform:none!important;box-shadow:none!important;outline:none!important}.shopping-table .icon-button:hover,.shopping-table .icon-button:active,.shopping-table .icon-button:focus,.shopping-table .icon-button:focus-visible{background:var(--surface)!important;color:var(--ink)!important;transform:none!important;box-shadow:none!important;outline:none!important}.shopping-table .icon-button.danger:hover,.shopping-table .icon-button.danger:active,.shopping-table .icon-button.danger:focus,.shopping-table .icon-button.danger:focus-visible{color:#7d2d2d!important}.shopping-qty-button,.icon-button{-webkit-tap-highlight-color:transparent}.shopping-qty-button:focus,.icon-button:focus{outline:none}@media(hover:none)and (pointer:coarse){.shopping-name-button:hover,.shopping-name-button:active,.shopping-name-button:focus,.shopping-qty-button:hover,.shopping-qty-button:active,.shopping-qty-button:focus{background:transparent;color:var(--ink);transform:none;outline:none}.shopping-qty-button:hover{background:transparent;transform:none}.icon-button:hover,.icon-button:active,.icon-button:focus{background:var(--surface);color:var(--ink);transform:none;outline:none}.icon-button.danger:hover{color:#7d2d2d}.icon-button.danger:active,.icon-button.danger:focus{color:#7d2d2d}}.quiet-panel{box-shadow:none;background:#f4eee49e}.slot-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.slot-column{min-height:180px;padding:12px;border-radius:22px;background:var(--surface-quiet)}.slot-column h3{text-transform:capitalize}.mini-meal{display:grid;gap:5px;margin-top:8px;padding:10px;border-radius:16px;background:var(--surface)}.mini-meal span,.mini-meal small{color:var(--muted)}.proposal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.proposal-card{display:grid;gap:14px;padding:16px;border-radius:24px}.vote-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.vote-row button{min-height:40px;padding:8px}.mode-selector{display:grid;gap:8px;margin-bottom:14px}.mode-card{display:grid;gap:4px;justify-items:start;min-height:auto;padding:14px;border-color:var(--line);background:var(--surface-quiet);color:var(--ink);text-align:left}.mode-card span{color:var(--muted);font-size:.86rem;font-weight:700}.mode-card.active{background:var(--ink);color:#fff}.mode-card.active span{color:#ffffffb8}.suggestion-card{display:grid;gap:12px;padding:16px;border-radius:24px}.suggestion-topline{display:flex;align-items:start;justify-content:space-between;gap:12px}.suggestion-topline span{color:var(--accent);font-weight:900}.ingredient-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ingredient-columns div{display:grid;gap:5px;padding:12px;border-radius:16px;background:var(--surface-quiet)}.ingredient-columns span{color:var(--muted);font-size:.9rem}.step-list{margin:0;padding-left:20px;color:var(--muted)}.recipe-library{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.recipe-tile{display:grid;gap:8px;min-height:150px;padding:14px;border:1px solid var(--line);border-radius:22px;background:var(--surface)}.recipe-tile p{display:-webkit-box;margin:0;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical}.recipe-tile small{align-self:end;color:var(--muted);font-weight:800}.recipe-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.recipe-actions button{min-height:38px;padding:7px;border-radius:12px;font-size:.78rem}.connection-row{display:flex;gap:10px;align-items:center;margin-bottom:12px}.connection-row button{width:auto}.connection-ok{color:var(--accent);font-weight:900}.connection-warn{color:var(--warn);font-weight:900}.user-row{display:grid;grid-template-columns:1fr;gap:10px;align-items:center;padding:12px;border-radius:18px}.user-row button{width:100%}.access-panel{max-width:680px}.product-detail-grid{display:grid;grid-template-columns:1fr;gap:12px}.product-detail-copy,.product-photo-tools{display:grid;gap:12px}.summary-tags{display:flex;flex-wrap:wrap;gap:8px}.product-gallery{display:grid;grid-template-columns:1fr;gap:10px}.table-panel{overflow:hidden}.product-table-headline{margin-bottom:12px}.compact-action{min-height:34px;width:auto;padding:6px 12px;border-radius:999px}.top-actions-row{justify-content:end;flex-wrap:wrap;gap:6px}.top-actions-row>*{width:auto}.table-toolbar{display:grid;gap:10px;margin-bottom:12px}.table-toolbar-main{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.filter-chip-row{display:flex;flex-wrap:wrap;gap:6px;overflow-x:hidden;padding-bottom:2px}.filter-chip-row::-webkit-scrollbar{display:none}.filter-chip{width:auto;min-height:32px;padding:5px 9px;border-color:var(--line);border-radius:999px;background:var(--surface-quiet);color:var(--ink);white-space:nowrap;font-size:.88rem}.sort-chip-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.sort-chip-row .filter-chip{min-width:0;width:100%;padding-inline:4px}.filter-chip:hover{background:#ebe2d5;color:var(--ink)}.filter-chip.active{border-color:var(--accent);background:var(--accent);color:#fff}.filter-chip.active:hover{background:var(--accent-strong);color:#fff}.icon-chip{min-width:46px;padding:6px 0;font-size:1rem}.product-table{display:grid;gap:0;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#ffffff9e;touch-action:pan-y}.product-table-header{display:grid;grid-template-columns:minmax(0,1fr) 34px 34px 34px;gap:6px;align-items:center;padding:6px 8px;color:var(--muted);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;background:#f4eee4c7}.name-header-cell{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}.header-view-buttons{display:inline-flex;align-items:center;gap:4px}.table-view-cycle-button{width:auto;min-height:18px;padding:0 6px;border-radius:8px;border:1px solid var(--line);background:var(--surface-quiet);color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.04em;line-height:1.1;text-transform:uppercase}.table-view-cycle-button:hover{background:#ebe2d5;color:var(--ink)}.product-table-row{display:grid;grid-template-columns:minmax(0,1fr) 34px 34px 34px;gap:6px;align-items:center;padding:4px 8px;border-top:1px solid var(--line);background:transparent}.product-cell{display:grid;gap:0;min-width:0}.product-action-cell{display:flex;justify-content:center}.product-stock-cell{justify-items:center}.icon-action-button{min-height:30px;min-width:30px;padding:0;border-radius:10px;font-size:.84rem;line-height:1}.product-cell span,.product-cell small{color:var(--muted)}.product-main-cell strong{font-size:.96rem}.product-main-cell strong,.product-cell span,.product-name-button{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-name-button{min-height:auto;padding:0;border:0;border-radius:0;background:transparent;color:inherit;text-align:left}.product-name-button:hover{background:transparent;color:inherit;transform:none}.product-main-cell span{display:none}.product-main-cell.expiring strong{color:var(--warn)}.product-main-cell.expired strong{color:var(--danger)}.product-main-cell strong:first-letter{letter-spacing:0}.product-folder-row{background:#f4eee46b}.folder-toggle-button{display:flex;align-items:center;justify-content:space-between;gap:8px}.folder-toggle-button span{color:var(--muted);font-size:.72rem}.pagination-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}.pagination-row button{width:auto}.pagination-copy{color:var(--muted);font-size:.78rem;font-weight:800}.table-label{color:var(--muted);font-size:.66rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.icon-choice{font-size:1.2rem;line-height:1}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;align-items:start;padding:0;background:#18332b6b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal-sheet{max-height:min(100vh,920px);overflow:auto;padding:10px;border:1px solid var(--line);border-radius:0 0 18px 18px;background:var(--surface);box-shadow:0 -12px 38px #18332b2e}.quantity-picker-sheet{width:auto;max-width:calc(100vw - 24px);padding:8px;border-radius:14px}.quantity-picker-backdrop{align-items:center!important;justify-items:center!important;padding:0!important}.quantity-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px}.quantity-strip-title{width:100%;margin:0 0 2px;text-align:center;color:var(--muted);font-size:.74rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.qty-token{width:38px;min-width:38px;min-height:38px;padding:0;border-radius:10px;font-size:.9rem}.qty-token-input{background:var(--surface);border:1px solid var(--line);color:var(--ink);text-align:center}.detail-sheet{padding-bottom:18px}.modal-head{margin-bottom:8px}.modal-head-actions{display:flex;flex-wrap:wrap;justify-content:end;gap:8px}.modal-body{display:grid;gap:8px}.field-caption{font-size:.78rem;font-weight:700;color:var(--ink-muted);letter-spacing:.06em;text-transform:uppercase}.shopping-detail-photo{width:100%;max-height:220px;object-fit:contain;border-radius:12px;border:1px solid var(--line-soft);background:#00000008}.modal-actions{margin-top:8px}.detail-grid{display:grid;gap:12px}.quick-history-panel{display:grid;gap:6px}.muted-inline{color:var(--muted);font-size:.82rem}.history-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:12px;background:#ffffff94}.history-copy{display:grid;gap:2px;min-width:0}.history-copy strong{font-size:.72rem}.history-copy span{color:var(--muted);font-size:.74rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-delete-button{width:24px;min-width:24px;min-height:24px;padding:0;border-color:#9d332b33;border-radius:999px;background:#9d332b14;color:var(--danger);font-size:.9rem;line-height:1}.history-delete-button:hover{background:var(--danger);color:#fff}.quick-add-menu{display:grid;gap:8px}.pending-photo-row{grid-template-columns:minmax(0,1fr) auto}.quick-add-option{min-height:48px;border-radius:16px}.detail-copy{display:grid;gap:12px}.detail-card{padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff9}.detail-overview-grid{display:grid;gap:6px}.detail-overview-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:8px;align-items:start;padding:4px 0;border-bottom:1px solid rgba(24,51,43,.08)}.detail-overview-row:last-child{border-bottom:none}.detail-overview-row strong{color:var(--muted);font-size:.74rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.detail-overview-row span{min-width:0;font-weight:800;overflow-wrap:break-word;word-break:normal;line-height:1.25}.detail-section{display:grid;gap:8px}.detail-table{display:grid;gap:4px}.detail-table-header,.detail-table-row{display:grid;gap:6px;align-items:center}.detail-table-header{padding:0 4px;color:var(--muted);font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.detail-table-row{padding:7px 8px;border:1px solid var(--line);border-radius:12px;background:#ffffff94;font-size:.8rem;font-weight:700}.detail-price-table{grid-template-columns:88px 72px minmax(0,1fr) 24px}.detail-photo-table{grid-template-columns:50px 84px minmax(0,1fr) 78px}.recipe-ingredient-table{gap:4px}.recipe-ingredient-table-header,.recipe-ingredient-table-row{grid-template-columns:110px minmax(0,1fr) 34px}.recipe-ingredient-qty{color:var(--muted);font-weight:800;font-size:.78rem}.recipe-ingredient-name{font-weight:800}.recipe-ingredient-name-matched{text-decoration:underline;text-underline-offset:2px}.recipe-ingredient-table-row .icon-action-button{width:30px;min-width:30px;min-height:30px;justify-self:end}.detail-table-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-photo-thumb-cell{display:flex;align-items:center}.photo-thumb-button{width:auto;min-height:auto;padding:0;border:0;background:transparent}.photo-thumb-button:hover{background:transparent;transform:none}.detail-photo-thumb{width:40px;height:40px;border-radius:10px;object-fit:cover;display:block}.photo-action-stack{display:flex;gap:4px;justify-content:end}.photo-action-stack button{min-width:30px;min-height:30px;padding:0 8px}.receipt-result-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 76px 64px}.receipt-results-table{gap:4px}.matched-row{background:#2f7d681f;border-color:#2f7d6838}.receipt-match-pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 8px;border-radius:999px;background:#2f7d6829;color:var(--accent-strong);font-size:.72rem;font-weight:900}.receipt-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.receipt-summary-strip span{min-height:30px;padding:7px 8px;border-radius:999px;background:#2f7d681a;color:var(--accent-strong);font-size:.72rem;font-weight:900;text-align:center}.compact-preview{max-width:220px}.photo-card{display:grid;gap:10px;padding:10px;border:1px solid var(--line);border-radius:20px;background:#ffffff94}.empty-photo{place-items:center;text-align:center}.empty-photo .product-preview-image{width:min(100%,520px);max-height:280px;object-fit:cover}.photo-preview-backdrop{z-index:40;place-items:center;padding:10px}.photo-preview-sheet{position:relative;width:min(100%,920px);max-height:calc(100vh - 20px);display:grid;gap:8px}.photo-preview-close{justify-self:end}.photo-preview-full{max-width:100%;max-height:calc(100vh - 70px);border-radius:18px;object-fit:contain;background:var(--ink)}body.product-overlay-open .module-menu{display:none}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media(min-width:901px){.app-shell{width:min(1180px,calc(100% - 28px));padding:18px 0 48px}.topbar{gap:12px;padding:10px 0 12px}.brand-mark{width:42px;height:42px;border-radius:16px}.account-chip>span{min-width:34px;height:34px;font-size:.8rem}.module-menu{gap:6px}.module-menu a{width:40px;min-height:40px;border-radius:14px;font-size:1.15rem}.metric-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.metric{min-height:118px;padding:18px;border-radius:26px}.metric span,.metric small{font-size:inherit}.metric strong{margin:10px 0 4px;font-size:2.5rem}.split-grid,.work-grid{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:14px}.split-grid.lower{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{padding:clamp(18px,4vw,28px);border-radius:30px}.panel h2{font-size:clamp(1.7rem,4vw,2.55rem)}.panel h3{font-size:1.1rem}.panel p{font-size:1rem}.status-pill{min-height:30px;padding:0 11px;font-size:.78rem}input,select,button{min-height:46px;padding:11px 13px;border-radius:16px;font-size:1rem}.compact{min-height:34px;font-size:.78rem}.primary-action{min-height:52px}.inline-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.button-row>*{width:auto}.scan-band{grid-template-columns:minmax(0,1fr) auto auto}.scan-band button{width:auto}.list-item{padding:14px;border-radius:22px}.product-list-item{grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:14px;border-radius:22px}.product-list-meta{justify-items:end}.compact-row,.timeline-row{padding:12px 14px;border-radius:18px}.user-row{grid-template-columns:minmax(0,1fr) 130px 180px 220px auto;padding:14px;border-radius:22px}.user-row button{width:auto}.product-detail-grid{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:14px}.table-toolbar-main{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:center}.product-table-row{grid-template-columns:minmax(0,1fr) 38px 38px 38px;gap:8px;padding:6px 10px}.product-table-header{grid-template-columns:minmax(0,1fr) 38px 38px 38px;gap:8px;padding:0 10px 6px;font-size:.74rem}.table-label{display:none}.product-action-cell button{width:32px;min-width:32px;min-height:32px}.modal-backdrop{place-items:center;padding:24px}.modal-sheet{width:min(960px,calc(100vw - 48px));max-height:calc(100vh - 48px);border-radius:28px;padding:20px}.history-row{padding:7px 10px}.detail-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:14px}.detail-card{padding:14px}.detail-overview-grid{grid-template-columns:1fr;gap:4px}.detail-overview-row{grid-template-columns:132px minmax(0,1fr)}.detail-price-table{grid-template-columns:100px 88px minmax(0,1fr) 24px}.detail-photo-table{grid-template-columns:60px 100px minmax(0,1fr) 88px}.recipe-ingredient-table-header,.recipe-ingredient-table-row{grid-template-columns:120px minmax(0,1fr) 36px}.receipt-result-grid{grid-template-columns:minmax(0,1.7fr) 1fr 86px 72px}.detail-photo-thumb{width:48px;height:48px}.product-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.app-shell{width:min(100% - 10px,760px);padding-top:6px;padding-bottom:18px}.account-chip .ghost-button{display:none}.account-chip{gap:6px}.topbar{padding-bottom:8px}.workspace,.dashboard-layout,.work-grid{gap:10px}.module-menu{gap:3px}.module-menu a{width:38px;min-height:38px;border-radius:14px;font-size:1.05rem}.metric-strip{display:grid;grid-auto-flow:column;grid-auto-columns:max-content;gap:8px;overflow-x:auto;padding-bottom:2px;margin-bottom:2px;scrollbar-width:none}.metric-strip::-webkit-scrollbar{display:none}.metric{display:flex;align-items:baseline;gap:6px;flex:0 0 auto;min-height:auto;padding:7px 10px;border-radius:999px}.metric span{order:2;font-size:.72rem;white-space:nowrap}.metric small{display:none}.metric strong{order:1;margin:0;font-size:1rem;line-height:1}.panel{padding:12px;border-radius:18px}.panel h2{font-size:1.2rem}.panel p{font-size:.88rem}.section-head{gap:8px;margin-bottom:10px}.status-pill{min-height:24px;padding:0 8px;font-size:.68rem}input,select,button{min-height:38px;padding:8px 10px;border-radius:12px;font-size:.9rem}.primary-action{min-height:40px}.form-stack,.scan-band,.inline-fields,.button-row,.thumb-row{gap:6px}.product-preview,.list-item,.product-list-item,.compact-row,.timeline-row,.user-row,.photo-card{border-radius:14px}.product-preview,.list-item,.product-list-item,.compact-row,.timeline-row,.user-row,.photo-card{padding:9px}.split-grid,.split-grid.lower,.work-grid,.hero-panel,.proposal-grid,.product-detail-grid{grid-template-columns:1fr}.recipe-library{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-row,.shopping-row,.user-row,.product-list-item{grid-template-columns:1fr}.shopping-row .check-button{justify-self:start}.item-meta{text-align:left}.slot-board{grid-template-columns:1fr 1fr}.product-list-meta{justify-items:start}.product-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-action{width:auto}.product-table-header{grid-template-columns:minmax(0,1fr) 34px 34px 34px;gap:4px}.product-table-row{grid-template-columns:minmax(0,1fr) 34px 34px 34px;gap:4px;padding:3px 8px}.product-cell span{font-size:.76rem}.product-action-cell button{width:30px;min-width:30px;min-height:30px;padding:0;font-size:.82rem}}@media(max-width:540px){.app-shell{width:calc(100% - 6px);padding-top:4px;padding-bottom:14px}.topbar{align-items:start}.module-menu{gap:2px}.module-menu a{width:38px;min-height:38px;font-size:1rem}.panel{border-radius:16px;padding:10px}.metric{padding:6px 9px}.metric span{font-size:.68rem}.metric strong{font-size:.94rem}.panel h2{font-size:1.08rem}.panel p{font-size:.84rem}input,select,button{min-height:36px;padding:7px 9px;border-radius:11px;font-size:.88rem}textarea{min-height:104px;padding:8px 9px;border-radius:11px;font-size:.88rem}.inline-fields,.slot-board,.ingredient-columns,.vote-row,.thumb-row,.product-gallery{grid-template-columns:1fr}.button-row>*,.connection-row button{width:100%}.scan-band,.recipe-library,.recipe-actions{grid-template-columns:1fr}.status-pill{white-space:normal;text-align:center;justify-content:center}.modal-backdrop{padding:0}.modal-sheet{max-height:100vh;padding:8px;border-radius:0 0 16px 16px}.history-row{padding:5px 7px}.history-copy strong{font-size:.68rem}.history-copy span{font-size:.7rem}.detail-overview-row{grid-template-columns:92px minmax(0,1fr);gap:6px}.detail-price-table{grid-template-columns:76px 64px minmax(0,1fr) 24px}.detail-photo-table{grid-template-columns:44px 76px minmax(0,1fr) 68px}.recipe-ingredient-table-header,.recipe-ingredient-table-row{grid-template-columns:92px minmax(0,1fr) 34px}.receipt-result-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) 68px 58px}.detail-photo-thumb{width:34px;height:34px}.product-table-header,.product-table-row{grid-template-columns:minmax(0,1fr) 32px 32px 32px;gap:4px}.product-table-row{padding:3px 7px}.product-main-cell strong{font-size:.9rem}.product-table-header{font-size:.64rem}.product-cell span{font-size:.72rem}.product-action-cell button{width:34px;min-width:34px;min-height:34px;padding:0;font-size:.82rem}}
