:root{--bg:#f3f6fb;--card:#fff;--line:#dce4ef;--ink:#10213f;--text:#20314d;--muted:#6a768d;--blue:#2156d8;--blue2:#3b82f6;--green:#137a53;--green-soft:#ebf9f3;--orange:#b85f19;--orange-soft:#fff5eb;--red:#b42318;--red-soft:#fff1f1;--shadow:0 10px 30px rgba(16,33,63,.07);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html,body{margin:0;background:linear-gradient(180deg,#f7faff 0,#f3f6fb 35%,#eef2f8 100%);color:var(--text);min-height:100%}button,input,select{font:inherit}button{cursor:pointer}.shell{max-width:1180px;margin:0 auto;padding:0 20px}.shell--main{padding-bottom:28px}.hero{position:relative;overflow:hidden;background:linear-gradient(130deg,#102552 0%,#1d4cc7 58%,#2d74e8 100%);color:#fff}.hero__bg{position:absolute;inset:0;background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.14),transparent 22%),radial-gradient(circle at 88% 18%,rgba(255,255,255,.12),transparent 18%);pointer-events:none}.hero__content{position:relative;display:flex;justify-content:space-between;gap:26px;align-items:center;padding-top:24px;padding-bottom:76px}.eyebrow{font-size:11px;letter-spacing:.22em;font-weight:800;opacity:.78;margin-bottom:8px}.hero h1{margin:0 0 8px;font-size:clamp(34px,6vw,54px);line-height:1.02}.hero__sub{margin:0;max-width:720px;font-size:17px;line-height:1.5;color:rgba(255,255,255,.9)}.hero__chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.hero-chip{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);padding:8px 11px;border-radius:999px;font-size:12px;font-weight:700;color:#fff}.scan-hero{border:0;background:#fff;color:#12366d;font-weight:900;padding:14px 18px;border-radius:17px;font-size:16px;box-shadow:0 14px 34px rgba(0,0,0,.18);white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:-48px;position:relative;z-index:2}.stat{background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.7);border-radius:20px;padding:15px 16px;box-shadow:var(--shadow)}.stat__label{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.stat strong{display:block;font-size:31px;line-height:1.05;color:var(--ink);margin:8px 0 5px}.stat span{color:var(--muted);font-size:13px}.home-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px;margin:14px 0 8px}.panel{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:16px;box-shadow:var(--shadow)}.panel--featured{background:linear-gradient(180deg,#fff,#f8fbff)}.panel__head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}.kicker{color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.panel h2,.section-banner h2{margin:3px 0 0;font-size:22px;line-height:1.12;color:var(--ink)}.text-button{border:0;background:transparent;color:var(--blue);font-weight:800;padding:4px}.snapshot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.snapshot{border:1px solid var(--line);background:#f8fbff;border-radius:16px;padding:12px}.snapshot strong{display:block;font-size:14px;color:var(--ink);margin-bottom:3px}.snapshot p{margin:0;color:var(--muted);font-size:12px;line-height:1.38}.snapshot.is-alert{background:linear-gradient(180deg,#fff8f0,#fff);border-color:#f2d6ba}.snapshot.is-good{background:linear-gradient(180deg,#effaf4,#fff);border-color:#cde9d8}.mini-list{display:grid;gap:8px}.mini-card{border:1px solid var(--line);border-radius:16px;padding:11px;background:#fbfcfe}.mini-card__top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.mini-card h3{margin:0;color:var(--ink);font-size:14px;line-height:1.28}.mini-card p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.4}.mini-card small{color:var(--muted);display:block;margin-top:5px;font-size:11px}.mini-product{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px}.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border-radius:999px;font-size:11px;font-weight:800}.badge--warm{background:var(--orange-soft);color:var(--orange)}.badge--cool{background:#edf3ff;color:#2f5ecf}.badge--green{background:var(--green-soft);color:var(--green)}.tabs{display:flex;gap:8px;overflow:auto;margin:15px 0 14px;padding-bottom:2px}.tab{border:1px solid var(--line);background:#fff;padding:10px 14px;border-radius:999px;font-weight:800;color:#475467;white-space:nowrap}.tab.active{background:var(--ink);color:#fff;border-color:var(--ink)}.view{display:none}.view.active{display:block}.section-banner{display:flex;justify-content:space-between;gap:14px;align-items:flex-end;margin:6px 0 12px}.section-banner p{margin:0;max-width:520px;color:var(--muted);font-size:13px;line-height:1.45}.toolbar,.manual-add{display:flex;gap:10px;margin-bottom:12px}.searchwrap{position:relative;flex:1}.searchwrap span{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#8a94a6;font-size:18px}.searchwrap input{padding-left:42px}.toolbar--inventory select{width:175px}input,select{border:1px solid #d7deea;border-radius:14px;padding:12px 13px;background:#fff;min-width:0;color:var(--text)}input:focus,select:focus{outline:none;border-color:#8ab4ff;box-shadow:0 0 0 4px rgba(33,86,216,.08)}.manual-add input{flex:1}.manual-add button,.primary{border:0;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;font-weight:900;padding:11px 17px;border-radius:13px}.cards{display:grid;gap:10px}.cards--inventory{gap:11px}.product,.shopping-item,.meal,.order{background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px;box-shadow:var(--shadow)}.product{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}.product__main{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:flex-start}.thumb{width:58px;height:58px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:26px;background:linear-gradient(180deg,#f1f6ff,#dce8ff);border:1px solid #d8e5ff;overflow:hidden;flex:0 0 58px}.thumb img{width:100%;height:100%;object-fit:cover}.thumb--small{width:42px;height:42px;flex-basis:42px;border-radius:12px;font-size:20px}.thumb--scan{width:64px;height:64px;flex-basis:64px}.product h3,.meal h3{margin:0 0 5px;font-size:17px;line-height:1.26;color:var(--ink)}.meta{display:flex;gap:7px;flex-wrap:wrap;color:var(--muted);font-size:11px}.pill{display:inline-flex;align-items:center;gap:5px;background:#eef4ff;color:#285ca8;border-radius:999px;padding:4px 8px;font-weight:700}.submeta{margin-top:8px;font-size:12px;color:var(--muted)}.qtypanel{display:flex;align-items:center;gap:8px;background:#f8fbff;border:1px solid #e2e9f4;padding:8px 10px;border-radius:16px}.qtystack{text-align:center;min-width:42px}.qty{display:block;font-size:26px;font-weight:900;color:var(--ink);line-height:1}.qtylabel{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.actionbtn,.edit{border:1px solid var(--line);background:#fff;border-radius:12px;padding:9px 11px;font-weight:900;white-space:nowrap}.actionbtn span{display:none}.minus{color:var(--red);background:var(--red-soft)}.plus{color:var(--green);background:var(--green-soft)}.edit{font-weight:800;color:#475467;background:#f8fafc}.shopping-item{display:flex;justify-content:space-between;align-items:center;gap:14px}.shopping-item__main strong{display:block;font-size:16px;color:var(--ink)}.shopping-item__main small{display:block;color:var(--muted);margin-top:4px}.remove{border:0;background:#ecfdf3;color:#067647;border-radius:13px;padding:9px 12px;font-weight:900}.auto-tag{color:var(--orange);font-weight:800}.meal{display:grid;grid-template-columns:auto 1fr;gap:12px;background:linear-gradient(145deg,#fff,#f6faff)}.meal-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#edf3ff;font-size:22px}.meal p{margin:6px 0 0;color:#475467;line-height:1.45}.order .big{font-size:17px;font-weight:900;color:var(--ink)}.order__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.order__cell{background:#f7f9fc;border:1px solid #e2e7f0;border-radius:14px;padding:10px}.order__cell strong{display:block;font-size:18px;color:var(--ink)}.order__cell span{display:block;color:var(--muted);font-size:11px;margin-top:2px}.empty{text-align:center;padding:28px 18px;color:var(--muted);background:#fff;border:1px dashed #cfd7e5;border-radius:17px}.empty strong{display:block;color:var(--ink);margin-bottom:4px}.compact-empty{padding:18px 12px;font-size:12px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);z-index:1000;background:#10213f;color:#fff;padding:11px 15px;border-radius:999px;font-weight:800;font-size:13px;box-shadow:0 12px 30px rgba(0,0,0,.24);opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:0;border-radius:22px;padding:0;width:min(94vw,520px);box-shadow:0 24px 80px rgba(0,0,0,.32)}dialog::backdrop{background:#10182899}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;padding:15px;border-bottom:1px solid var(--line)}.dialog-head strong{display:block;font-size:18px}.dialog-head small{display:block;color:var(--muted);margin-top:3px}.dialog-head button{border:0;background:#f2f4f7;border-radius:50%;width:34px;height:34px}.scanner-help{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:8px;align-items:center;padding:12px 14px;background:#f7f9fc;color:#566176;font-size:12px}.camera-note{padding:0 14px 10px;color:var(--muted);font-size:11px}.scan-wait{text-align:center;color:var(--muted);padding:10px}#reader{padding:12px;min-height:250px}.manual-scan{padding:10px 12px;display:flex;gap:8px}.manual-scan input{flex:1}.manual-scan button{border:0;background:var(--ink);color:#fff;border-radius:11px;padding:0 14px}#scanResult{padding:0 12px 14px}#editDialog form{padding-bottom:14px}#editDialog label{display:block;margin:11px 15px;color:#475467;font-size:12px;font-weight:700}#editDialog label input:not([type=checkbox]){display:block;width:100%;margin-top:5px}.check{display:flex!important;gap:8px;align-items:center}.check input{width:auto}.primary{margin:4px 15px;width:calc(100% - 30px)}.scan-found{background:#ecfdf3;border:1px solid #abefc6;border-radius:14px;padding:12px}.scan-unknown{background:#fff6ed;border:1px solid #fedf89;border-radius:14px;padding:12px}.scan-product{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center}.scan-actions{display:flex;gap:8px;margin-top:10px}.scan-actions button{border:0;border-radius:11px;padding:10px 12px;font-weight:800}.scan-actions .use{background:#b42318;color:#fff}.scan-actions .add{background:#067647;color:#fff}
@media(max-width:1024px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.home-grid{grid-template-columns:1fr 1fr}.panel--featured{grid-column:1/-1}.section-banner{flex-direction:column;align-items:flex-start}}
@media(max-width:720px){.hero__content{flex-direction:column;align-items:flex-start;padding-bottom:30px}.stats{margin-top:14px}.home-grid{grid-template-columns:1fr}.panel--featured{grid-column:auto}.product{grid-template-columns:1fr}.qtypanel{justify-content:space-between;flex-wrap:wrap}.actionbtn span{display:inline}.order__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scanner-help{grid-template-columns:auto 1fr}}
@media(max-width:560px){.shell,.shell--main{padding-left:13px;padding-right:13px}.hero h1{font-size:40px}.hero__sub{font-size:15px}.stats{grid-template-columns:1fr 1fr}.stat strong{font-size:27px}.snapshot-grid{grid-template-columns:1fr}.toolbar,.manual-add{flex-direction:column}.toolbar--inventory select{width:100%}.shopping-item{align-items:flex-start;flex-direction:column}.qtypanel{gap:7px;padding:8px}.thumb{width:50px;height:50px;flex-basis:50px;font-size:22px}.product__main{gap:10px}.product h3{font-size:16px}.scanner-dialog{width:96vw}.stats .stat{padding:13px}}
.qty-input{width:86px;text-align:center;font-weight:800}.shopping-actions{display:flex;align-items:center;gap:10px}.meal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.meal-coverage{margin-top:10px;color:var(--muted);font-size:12px;font-weight:700}.thumb img{width:100%;height:100%;object-fit:contain;border-radius:inherit;background:#fff}.product .thumb{width:58px;height:58px}.photo-fallback{display:flex;width:100%;height:100%;align-items:center;justify-content:center}.camera-note{font-weight:600}@media(max-width:560px){.qty-input{width:100%}.shopping-actions{width:100%;justify-content:space-between}.meal-head{flex-direction:column}}
.hero-chip--button{font:inherit;cursor:pointer}.hero-chip--button:hover{background:rgba(255,255,255,.22);transform:translateY(-1px)}
.zones-dialog{width:min(94vw,620px)}.zones-body{padding:14px}.zone-add{display:flex;gap:9px;margin-bottom:14px}.zone-add input{flex:1}.primary-inline{border:0;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;font-weight:900;padding:11px 16px;border-radius:13px}.zones-list{display:grid;gap:9px}.zone-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);background:#f9fbfe;border-radius:16px;padding:12px}.zone-row__main{display:flex;align-items:center;gap:10px}.zone-row__main strong{display:block;color:var(--ink)}.zone-row__main small{display:block;color:var(--muted);margin-top:3px}.zone-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#edf3ff}.zone-actions{display:flex;gap:7px}.zone-actions button{border:1px solid var(--line);background:#fff;border-radius:11px;padding:8px 10px;font-weight:800;color:#475467}.zone-actions .danger{color:var(--red);background:var(--red-soft);border-color:#f1c8c4}.zone-note{margin:14px 2px 2px;color:var(--muted);font-size:12px;line-height:1.45}#editLocation{display:block;width:100%;margin-top:5px}
@media(max-width:560px){.zone-add,.zone-row{flex-direction:column;align-items:stretch}.zone-actions{justify-content:flex-end}.zone-actions button{flex:1}}

/* v6 meal checkout */
.meal--actionable{align-items:start}.meal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.make-meal{border:0;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;border-radius:12px;padding:9px 12px;font-weight:900;white-space:nowrap}.meal-dialog{width:min(95vw,650px)}.meal-checkout-body{padding:15px}.meal-checkout-description{margin:0 0 14px;color:var(--muted);line-height:1.45}.ingredient-list{display:grid;gap:9px}.ingredient-row{display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid var(--line);border-radius:15px;background:#f9fbfe;padding:11px 12px}.ingredient-row label{display:flex;align-items:center;gap:10px;min-width:0}.ingredient-row label input{width:20px;height:20px;flex:0 0 auto}.ingredient-row strong{display:block;color:var(--ink);font-size:14px}.ingredient-row small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.ingredient-row--missing{background:#fff8f0;border-color:#f2d6ba}.ingredient-qty{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:800}.ingredient-qty input{width:66px;padding:8px;text-align:center;font-weight:900}.meal-missing-note{margin-top:12px;padding:10px 12px;border-radius:13px;background:#fff8f0;color:#8a4b16;font-size:12px;line-height:1.4}.meal-missing-note:empty{display:none}.meal-confirm-row{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}.secondary{border:1px solid var(--line);background:#fff;color:#475467;font-weight:800;padding:10px 14px;border-radius:12px}.primary-inline:disabled{opacity:.55;cursor:not-allowed}@media(max-width:560px){.meal-footer{align-items:flex-start;flex-direction:column}.make-meal{width:100%}.ingredient-row{align-items:flex-start;flex-direction:column}.ingredient-qty{width:100%;justify-content:flex-end}.meal-confirm-row{display:grid;grid-template-columns:1fr 1fr}.meal-confirm-row button{width:100%}}

/* v7 dashboard drill-down + latest-order scrolling */
.stat--clickable,.snapshot--clickable{font:inherit;text-align:left;color:inherit;cursor:pointer;width:100%;appearance:none}.stat--clickable:hover,.snapshot--clickable:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(24,58,112,.12);border-color:#b9cae9}.stat--clickable:focus-visible,.snapshot--clickable:focus-visible{outline:3px solid #8fb5ff;outline-offset:2px}.stat--clickable small,.snapshot--clickable small{display:block;margin-top:8px;color:#2d61bd;font-size:11px;font-weight:900}.snapshot--clickable{border:1px solid var(--line);padding:12px;border-radius:14px;background:#f8fbff}.snapshot--clickable.is-good{background:#f1fbf5}.snapshot--clickable.is-alert{background:#fff8f0}.compact-panel #recentList{max-height:280px;overflow-y:auto;overscroll-behavior:contain;padding-right:5px;scrollbar-gutter:stable}.compact-panel #recentList::-webkit-scrollbar{width:9px}.compact-panel #recentList::-webkit-scrollbar-thumb{background:#cbd6e8;border-radius:999px}.compact-panel #recentList::-webkit-scrollbar-track{background:#f3f6fb;border-radius:999px}

/* v8: every dashboard card is actionable; previews use the same flows as full sections */
.dashboard-card{font:inherit;text-align:left;color:inherit;cursor:pointer;width:100%;appearance:none;-webkit-appearance:none}
.dashboard-card:hover,.mini-meal-card:hover,.recent-product-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(24,58,112,.13);border-color:#b9cae9}
.dashboard-card:focus-visible,.mini-meal-card:focus-visible,.recent-product-card:focus-visible{outline:3px solid #8fb5ff;outline-offset:2px}
.mini-meal-card,.recent-product-card{font:inherit;text-align:left;color:inherit;width:100%;cursor:pointer;appearance:none;-webkit-appearance:none}
.mini-meal-card{display:block}
.mini-meal-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:9px;color:var(--muted);font-size:11px;font-weight:700}
.mini-meal-footer strong{color:var(--blue);white-space:nowrap}
.recent-product-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px}
.recent-edit-hint{margin-top:7px;color:var(--blue);font-size:11px;font-weight:900}
#recentList{scroll-behavior:smooth}
@media(max-width:560px){.mini-meal-footer{align-items:flex-start;flex-direction:column;gap:4px}}

/* v10 inline per-item Walmart auto-add toggle */
.auto-reorder-toggle{display:inline-flex;align-items:center;gap:8px;margin-top:9px;padding:7px 10px;border:1px solid #d8e2f1;border-radius:12px;background:#f8fbff;color:#304766;font-size:12px;font-weight:800;cursor:pointer;user-select:none}.auto-reorder-toggle input{width:18px;height:18px;margin:0;accent-color:var(--blue);cursor:pointer}.auto-reorder-toggle:hover{border-color:#b9cae9;background:#f2f7ff}@media(max-width:560px){.auto-reorder-toggle{width:100%;justify-content:flex-start}}


/* v11 manual inventory + continuous scanner */
.add-product-btn{border:0;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;border-radius:13px;padding:11px 15px;font-weight:900;white-space:nowrap}.scan-again{background:#eef4ff!important;color:#2457a6!important;border:1px solid #c9d8f2!important}.scan-actions{flex-wrap:wrap}#addProductDialog form{padding-bottom:14px}#addProductDialog label{display:block;margin:11px 15px;color:#475467;font-size:12px;font-weight:700}#addProductDialog label input:not([type=checkbox]),#addProductDialog label select{display:block;width:100%;margin-top:5px}@media(max-width:560px){.add-product-btn{width:100%}.manual-scan{flex-wrap:wrap}.manual-scan input{flex:1 1 100%}.manual-scan button{min-height:42px}.scan-actions button{flex:1 1 130px}}

/* v13 invoice upload */
.hero__actions{display:flex;flex-direction:column;gap:10px;align-items:stretch;min-width:170px}
.invoice-drop{border:1px dashed rgba(255,255,255,.72);background:rgba(255,255,255,.12);color:#fff;border-radius:16px;padding:12px 16px;font-weight:900;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:.18s ease;min-height:48px}
.invoice-drop:hover,.invoice-drop.is-dragover{background:rgba(255,255,255,.22);border-style:solid;transform:translateY(-1px)}
.invoice-drop.is-uploading{opacity:.7;cursor:wait;transform:none}
.invoice-drop__icon{font-size:17px}.mobile-label{display:none}
@media(max-width:720px){.hero__actions{width:100%;min-width:0;flex-direction:row;gap:9px}.hero__actions>button{flex:1;min-width:0}.invoice-drop{padding:12px 10px}.desktop-label{display:none}.mobile-label{display:inline}}
