:root{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#18322d;background:#f7f7f2;font-synthesis:none;--ink:#19332d;--dark:#15352e;--lime:#ddf29c;--muted:#6c7871;--line:#e5e8df;--paper:#ffffff;--bg:#f7f7f2;--orange:#dc764e}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit}.splash{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:64px;gap:14px}.splash span{font-size:15px;font-weight:700}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #87ae36;outline-offset:2px}.shell{max-width:860px;margin:auto;padding:20px 22px 100px}.appbar{display:flex;align-items:center;justify-content:space-between;margin:5px 0 24px}.brand{display:flex;align-items:center;gap:11px}.logo{height:42px;width:42px;border-radius:14px;background:var(--dark);color:var(--lime);display:grid;place-items:center;font-size:22px}.brand-name{font-size:24px;letter-spacing:-1.3px;font-weight:850;line-height:1}.brand-tag{font-size:10px;font-weight:800;letter-spacing:1.6px;color:var(--muted);text-transform:uppercase;margin-top:5px}.top-action{border:1px solid var(--line);background:white;border-radius:999px;padding:9px 12px;font-size:12px;font-weight:750;white-space:nowrap;display:flex;align-items:center;gap:6px}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:1.8px;font-weight:900;color:#8a9990}.welcome{display:flex;align-items:end;justify-content:space-between;margin:0 0 15px;gap:16px}.welcome h1{font-weight:820;letter-spacing:-1.6px;font-size:30px;margin:5px 0 0}.welcome .sub{font-size:13px;color:var(--muted);margin:6px 0 0}.trip-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mini-select,.pill{border:1px solid var(--line);background:white;border-radius:999px;padding:10px 14px;color:var(--ink);font-size:13px;font-weight:700}.mini-select{max-width:220px}.hero{background:var(--dark);color:white;border-radius:26px;padding:25px 26px;margin-top:19px;position:relative;overflow:hidden}.hero:before{position:absolute;content:"";height:190px;width:190px;background:#9bba61;opacity:.07;border-radius:50%;right:-57px;top:-85px}.hero-head{display:flex;justify-content:space-between;align-items:center;position:relative}.hero .eyebrow{color:#b8ccbb}.count-badge{font-size:12px;color:var(--lime);background:#315548;padding:7px 10px;border-radius:100px;font-weight:750}.total{font-size:clamp(42px,9vw,62px);font-weight:800;line-height:1;letter-spacing:-2.7px;margin:16px 0 16px;font-variant-numeric:tabular-nums}.hero-line{display:flex;justify-content:space-between;font-size:12px;color:#cee0d1;margin:10px 0}.hero-line strong{font-size:13px;color:white}.hero-divider{height:1px;background:#466056;margin:17px 0 15px}.meter{height:9px;border-radius:20px;background:#4b685e;overflow:hidden;margin:14px 0 11px}.meter-fill{height:100%;background:var(--lime);border-radius:20px;transition:width .25s}.meter-fill.over{background:#ff9773}.budget-row{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#e8efea}.budget-row strong{color:var(--lime)}.budget-row strong.over{color:#ff9773}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:29px 0 14px}.section-head h2{font-size:20px;letter-spacing:-.7px;margin:0}.text-link{border:0;background:none;color:#536856;font-weight:750;font-size:13px;padding:7px}.actions{display:grid;grid-template-columns:1.35fr 1fr;gap:11px;margin:18px 0}.btn{border:none;border-radius:16px;padding:14px 18px;background:var(--dark);color:white;font-size:14px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px}.btn.primary{background:var(--lime);color:#23412e}.btn.secondary{background:#e9efe4;color:var(--dark)}.btn.ghost{background:white;border:1px solid var(--line);color:var(--ink)}.btn.danger{background:#fff2eb;color:#aa482e}.btn.full{width:100%}.btn.small{min-height:36px;padding:8px 12px;border-radius:12px;font-size:12px}.btn:active{transform:translateY(1px)}.search{width:100%;background:white;border:1px solid var(--line);border-radius:14px;padding:14px 16px;font-size:14px;outline:0}.card{background:var(--paper);border:1px solid var(--line);border-radius:20px;overflow:hidden}.item{padding:14px 17px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #eef0e9}.item:last-child{border-bottom:0}.item-icon{width:39px;height:39px;display:grid;place-items:center;background:#ecf0e7;border-radius:12px;flex-shrink:0;font-size:19px}.item-main{min-width:0;flex:1}.item-name{font-weight:770;font-size:14px;overflow-wrap:anywhere}.item-meta{color:#87928c;font-size:12px;margin-top:3px}.item-right{text-align:right;display:flex;align-items:center;gap:8px}.item-price{font-weight:800;font-size:15px;font-variant-numeric:tabular-nums}.item-controls{display:flex;align-items:center;gap:7px}.circle{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:white;display:grid;place-items:center;font-size:17px;color:var(--ink)}.item-edit{border:0;background:#f2f5eb;color:var(--ink);border-radius:9px;padding:6px 8px;font-weight:800}.empty{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:45px 23px;color:var(--muted);gap:8px}.empty-icon{font-size:45px;margin-bottom:7px}.empty h3{color:var(--ink);margin:0;font-size:18px}.empty p{font-size:13px;max-width:255px;margin:0 0 10px;line-height:1.5}.empty .btn{margin-top:9px}.notice{background:#edf2df;border:1px solid #dce8c4;border-radius:16px;font-size:12px;line-height:1.55;color:#476047;padding:14px 16px;margin:17px 0}.subtle{font-size:12px;color:var(--muted);line-height:1.6}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border-top:1px solid var(--line);display:flex;justify-content:center;z-index:20;padding:6px 10px calc(6px + env(safe-area-inset-bottom))}.bottom-nav .nav-wrap{width:100%;max-width:680px;display:grid;grid-template-columns:repeat(4,1fr)}.nav{background:transparent;border:0;color:#819089;min-height:57px;display:flex;flex-direction:column;gap:4px;justify-content:center;align-items:center;font-size:10px;font-weight:800;letter-spacing:.2px;border-radius:12px}.nav .symbol{font-size:21px;line-height:1}.nav.active{color:var(--dark);background:#edf4df}.panel-title{font-weight:820;letter-spacing:-1px;font-size:28px;margin:18px 0 4px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.setting-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px}.setting-card .label{font-size:11px;letter-spacing:.6px;font-weight:800;color:var(--muted);text-transform:uppercase}.setting-card .value{font-size:20px;font-weight:800;letter-spacing:-.5px;margin:5px 0 0}.setting-card button{margin-top:9px}.history-row{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:18px;border-bottom:1px solid var(--line)}.history-row:last-child{border-bottom:0}.history-meta{font-size:12px;color:var(--muted);margin-top:4px}.history-total{font-weight:850;font-size:19px}.modal-overlay{position:fixed;inset:0;background:rgba(19,44,37,.57);z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:0}@media(min-width:700px){.modal-overlay{align-items:center;padding:20px}}.modal{background:#fff;max-width:550px;width:100%;border-radius:25px 25px 0 0;max-height:95dvh;overflow-y:auto;padding:24px 25px calc(30px + env(safe-area-inset-bottom));box-shadow:0 20px 90px #152c2645}@media(min-width:700px){.modal{border-radius:25px;max-height:90dvh}}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:17px}.modal-head h2{font-size:23px;letter-spacing:-1px;margin:0}.modal-close{width:34px;height:34px;border-radius:50%;border:0;background:#eff3e9;font-size:22px;color:#4a5b50}.field{margin:14px 0}.field label{display:block;font-size:12px;color:#53645b;font-weight:790;margin-bottom:7px}.field input,.field select{background:#fafbf8;border:1px solid #dce3d8;padding:13px 13px;border-radius:12px;width:100%;font-size:16px;color:#18352e;min-height:47px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.switchfield{display:flex;align-items:center;justify-content:space-between;margin:13px 0;padding:12px;background:#f7f9f4;border-radius:12px}.switchfield label{font-size:13px;font-weight:800}.switchfield input{height:20px;width:20px;accent-color:#315b44}.form-actions{display:flex;gap:9px;margin-top:20px}.form-actions>*{flex:1}.scanner-box{background:#142a28;border-radius:20px;overflow:hidden;position:relative;min-height:220px;display:grid;place-items:center;color:white}.scanner-box video{height:245px;width:100%;object-fit:cover}.scanner-guide{position:absolute;width:67%;height:125px;border:2px solid var(--lime);border-radius:15px;box-shadow:0 0 0 9999px #0002;pointer-events:none}.scanner-hint{font-size:12px;text-align:center;color:#697970;line-height:1.5;margin:14px 0}.scanner-status{font-size:12px;color:#aac7b4;text-align:center;padding:20px}.inline-message{padding:12px;border-radius:11px;background:#f4f6ee;font-size:12px;color:#4b6054;line-height:1.5;margin:12px 0}.inline-message.warn{background:#fff4df;color:#926235}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{background:#fff;border:1px solid var(--line);border-radius:25px;padding:29px;max-width:460px;width:100%;box-shadow:0 20px 55px #132a2310}.auth-card h1{font-size:32px;line-height:1.1;letter-spacing:-1.4px;margin:15px 0 9px}.auth-card p{color:var(--muted);font-size:13px;line-height:1.6}.spaced{margin:20px 0}.copyrow{display:flex;align-items:center;gap:8px;background:#f4f7ed;padding:10px 12px;border-radius:11px;overflow:hidden}.copyrow code{font-size:17px;font-weight:850;letter-spacing:1.4px;flex:1;overflow-wrap:anywhere}.tip{background:#f9faeb;color:#687547;border-radius:13px;padding:12px 14px;font-size:12px;line-height:1.5}.narrow{max-width:520px}.flexbetween{display:flex;justify-content:space-between;align-items:center;gap:10px}.tabset{display:flex;gap:7px;margin:18px 0}.tabset button{flex:1;background:#e8ede3;border:0;border-radius:12px;padding:12px;font-size:13px;font-weight:800;color:#75827a}.tabset button.sel{background:var(--dark);color:white}#toast{position:fixed;top:18px;left:50%;transform:translate(-50%,-140px);z-index:100;background:#15352e;color:white;box-shadow:0 8px 35px #1233;padding:12px 16px;border-radius:100px;font-size:12px;font-weight:800;transition:transform .25s;max-width:calc(100vw - 30px);text-align:center}#toast.show{transform:translate(-50%,0)}@media(max-width:480px){.shell{padding:17px 17px 100px}.appbar{margin-bottom:19px}.welcome h1{font-size:26px}.top-action{padding:8px 10px}.hero{padding:23px 20px}.total{font-size:51px}.item{padding:12px 13px}.item-right{gap:5px}.item-icon{width:35px;height:35px}.circle{width:26px;height:26px}.item-controls{gap:4px}.item-name{font-size:13px}.item-price{font-size:13px}.modal{padding:20px 18px calc(25px + env(safe-area-inset-bottom))}.field-row{gap:9px}}

/* AisleMeter brand mark for header and authentication */
.logo{overflow:hidden;background:transparent;}
.brand-mark{height:100%;width:100%;display:block;object-fit:contain;}
.auth-card .logo{width:64px;height:64px;border-radius:19px;}
/* AisleMeter 2.0: store location and tax controls */
.trip-location {color:var(--muted,#74857a);font-size:13px;margin:1px 0 14px;line-height:1.45;overflow-wrap:anywhere}
.store-lookup-actions {display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-4px 0 14px}
.store-lookup-actions .btn {flex:0 0 auto}
.store-results {display:grid;gap:8px;margin:0 0 12px;max-height:255px;overflow-y:auto}
.store-result {width:100%;display:flex;flex-direction:column;align-items:start;gap:3px;text-align:left;padding:12px;background:#f2f5ed;border:1px solid #d8e2d4;border-radius:12px;color:#19372d;font:inherit;cursor:pointer}
.store-result:hover,.store-result:focus {background:#e4f1d5;outline:2px solid #adc975}
.store-result strong {font-size:14px}
.store-result span {font-size:12px;color:#536658;line-height:1.4;overflow-wrap:anywhere}
.store-result small {color:#647565}
.store-favorites {display:flex;flex-wrap:wrap;gap:7px;margin-top:4px}
.store-favorite {font:inherit;color:#17352e;border:1px solid #d4ddcc;border-radius:24px;background:#f0f4ea;padding:8px 11px;cursor:pointer;font-size:12px}
#storeSearchInput {max-width:100%}
@media (max-width:600px){.store-lookup-actions .btn{width:100%}}

/* AisleMeter UX update: only active cart, store picker, read-only history */
.store-select{display:inline-flex;align-items:center;gap:10px;min-width:205px;max-width:100%;min-height:49px;padding:6px 13px;border:1px solid #d6dfd1;border-radius:16px;background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer;box-shadow:0 2px 5px #152c2608}
.store-select-icon{font-size:18px}.store-select-copy{display:flex;flex-direction:column;gap:1px;min-width:0}.store-select-copy small{font-size:9px;font-weight:800;letter-spacing:1.25px;color:#8c9b91}.store-select-copy strong{font-size:14px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:250px}.store-select-chevron{color:#6b8173;margin-left:auto;font-size:19px}.store-select:focus-visible,.pill:focus-visible{outline:3px solid #96b65c;outline-offset:2px}
.start-trip-card{margin:20px 0;border:1px solid var(--line);background:white;border-radius:25px;padding:32px 25px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.start-trip-card h2{font-size:24px;letter-spacing:-1px;margin:0}.start-trip-card p{font-size:14px;color:var(--muted);line-height:1.5;margin:0 0 8px;max-width:350px}.start-trip-icon{display:grid;place-items:center;width:55px;height:55px;border-radius:16px;background:#edf4df;font-size:26px}
.history-review-tools{display:flex;justify-content:space-between;align-items:center;gap:9px;flex-wrap:wrap;margin:10px 0}.history-review-date{font-weight:760;font-size:12px;color:#5c7165}.read-only-note{border:1px solid #dbe5d3;border-radius:14px;background:#f1f5ec;color:#526e58;margin-top:16px;padding:13px 16px;font-size:13px;font-weight:750}.manual-store-cta{border-top:1px solid #e4e9de;padding-top:15px;margin-top:18px}.manual-store-cta .subtle{margin:0 0 10px}
@media(max-width:480px){.store-select{min-width:175px;flex:1}.store-select-copy strong{max-width:155px}.trip-tools>.pill{white-space:nowrap}.history-review-tools{align-items:flex-start}.history-review-tools .history-review-date{margin-left:2px}}

/* Version 2.1 — saved receipts and accessible mobile reconciliation */
.receipt-history-actions{display:flex;justify-content:flex-start;margin:13px 0}.receipt-history-actions .btn{max-width:400px}
.receipt-end-actions{display:grid;gap:10px;margin:16px 0}.history-actions{display:flex;gap:13px;justify-content:flex-end;flex-wrap:wrap;margin-top:6px}
.history-reconciled{font-size:11px;color:#47734f;font-weight:800;margin-top:4px}
.receipt-saved-card{border:1px solid #cddfbd;background:#f1f7e7;padding:17px;border-radius:18px;margin:12px 0 18px}
.receipt-saved-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:15px;font-size:11px;font-weight:850;letter-spacing:.8px;color:#38604a}
.receipt-saved-amounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.receipt-saved-amounts div{min-width:0}
.receipt-saved-amounts small{display:block;color:#667b65;font-size:10px;line-height:1.4;margin-bottom:6px}
.receipt-saved-amounts strong{display:block;color:#17382f;font-size:17px;overflow-wrap:anywhere}
.receipt-warning{font-size:12px;color:#99602c;margin:12px 0 0;font-weight:650}
.receipt-modal{max-width:680px}.receipt-intro{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;background:#f3f7ed;padding:15px;border-radius:14px;margin-bottom:13px}
.receipt-intro span{color:#607260;font-size:12px}.receipt-camera{border:1.5px dashed #a7bc94;padding:18px;border-radius:16px;background:#f5f9ef;text-align:center;margin:13px 0}
.receipt-camera label{font-size:15px;font-weight:850;display:block;margin:0 0 12px}
.receipt-camera input{max-width:100%;font-size:13px}.receipt-modal textarea{width:100%;font-family:inherit;line-height:1.6;border-radius:13px;border:1px solid #dce3d8;padding:12px;resize:vertical;color:#17372e;font-size:14px;background:#fafbf8}
.receipt-loading{display:flex;align-items:center;flex-direction:column;gap:12px;text-align:center;padding:44px 14px}.receipt-loading h3{margin:4px 0;font-size:21px;color:#17372e}.receipt-loading p{font-size:13px;color:#67796c}
.receipt-spinner{width:45px;height:45px;border-radius:50%;border:5px solid #dce7d1;border-top-color:#39624d;animation:receipt-spin .9s linear infinite}@keyframes receipt-spin{to{transform:rotate(360deg)}}
.receipt-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.receipt-columns div{background:#eff4e7;padding:14px;border-radius:14px;min-width:0}.receipt-columns span{display:block;font-size:11px;color:#607365;margin-bottom:5px}.receipt-columns strong{font-size:24px;color:#15352e;letter-spacing:-.7px}
.receipt-form-totals{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.receipt-form-totals .field{margin:7px 0}.receipt-form-totals label{font-size:11px}.receipt-form-totals input{padding:9px!important;font-size:15px!important}
.receipt-variance{border-radius:12px;padding:12px 14px;background:#f5f0e1;color:#63502d;font-size:13px;font-weight:750;margin:12px 0}
.receipt-match-head{display:flex;justify-content:space-between;align-items:center;gap:13px;margin:22px 0 10px}.receipt-match-head h3{font-size:19px;margin:0}.receipt-match-head p{color:#6b796e;font-size:11px;line-height:1.5;margin:4px 0}
.receipt-line{border:1px solid #e1e7da;background:#fff;border-radius:15px;padding:14px;margin:10px 0}.receipt-line-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.receipt-line-head strong{font-size:12px;color:#18392f}
.receipt-line .field{margin:8px 0}.receipt-line .field label{font-size:11px;margin-bottom:4px}.receipt-line input,.receipt-line select{min-height:40px!important;padding:9px 10px!important;font-size:14px!important}
.receipt-line-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.receipt-match-label{font-size:11px;color:#4d7950;font-weight:650}.receipt-raw{margin:20px 0;background:#f4f7ef;border-radius:14px;padding:14px}
.receipt-raw summary{font-weight:780;color:#234638;cursor:pointer;font-size:13px}.receipt-raw textarea{margin:10px 0}.receipt-raw .btn{margin-top:7px}
.receipt-photo-inline{margin:10px 0 16px;background:#f4f7ed;padding:12px;border-radius:13px}.receipt-photo-inline summary{cursor:pointer;font-size:12px;font-weight:750}
.receipt-photo-inline img,.receipt-photo-preview img{display:block;width:100%;height:auto;max-height:420px;object-fit:contain;margin:12px auto;border:1px solid #e5e7de;border-radius:9px}
.receipt-photo-preview{overflow:auto;max-height:63vh;text-align:center;margin:0 0 13px}.receipt-photo-preview img{max-height:none;width:auto;max-width:100%}
.receipt-confirmed{background:#e6f1d9;color:#2d6736;padding:14px;border-radius:13px;font-size:14px;font-weight:800}
.receipt-summary{margin:15px 0;border:1px solid #e2e8dd;border-radius:14px;overflow:hidden}.receipt-summary>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e5e9df;font-size:13px}.receipt-summary>div:last-child{border:0;background:#edf4e6}.receipt-summary span{color:#617468}.receipt-summary strong{color:#15392d;font-size:17px}.receipt-secondary{margin-top:10px}
@media(max-width:520px){.receipt-form-totals{grid-template-columns:1fr 1fr}.receipt-form-totals>.field:last-child{grid-column:1/-1}.receipt-columns strong{font-size:21px}.receipt-history-actions .btn{width:100%}.receipt-saved-amounts{grid-template-columns:1fr 1fr}.receipt-saved-amounts div:last-child{grid-column:1/-1}.receipt-modal{padding-bottom:calc(25px + env(safe-area-inset-bottom))}}

.receipt-unmatched{background:#fff6e9;border:1px solid #efdec7;border-radius:14px;padding:13px;margin:13px 0}.receipt-unmatched strong{font-size:13px;color:#845d27}.receipt-unmatched p{font-size:12px;margin:6px 0;color:#674d2a;line-height:1.5}.receipt-unmatched small{color:#8f7049;font-size:11px;line-height:1.5}

/* Receipt suggestions require shopper review, especially price-only guesses. */
.receipt-match-label.possible{display:block;margin-top:8px;color:#916016;background:#fff6e4;border:1px solid #ead3a3;border-radius:8px;padding:9px 11px;font-size:12px;line-height:1.45;}

.receipt-totals-warning{margin:12px 0;padding:12px 14px;border-radius:10px;background:#fff6e4;border:1px solid #e9cfa2;color:#6f4f19;font-size:13px}.receipt-totals-warning p{margin:4px 0 0;line-height:1.45}

/* V2.1.2: reduced cart clutter; single tax switch in the summary */
.hero-tax-line{align-items:center;gap:12px;position:relative}
.hero-tax-line>span:first-child{min-width:0;line-height:1.5}
.hero-tax-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:13px;flex-shrink:0}
.hero-tax-switch{display:inline-flex;align-items:center;gap:6px;padding:5px 8px 5px 6px;min-height:29px;color:#fff;background:#315548;border:1px solid #618274;border-radius:100px;font-size:11px;font-weight:800;cursor:pointer}
.hero-tax-track{position:relative;display:inline-block;width:28px;height:16px;border-radius:99px;background:#899b91;transition:background .15s}
.hero-tax-thumb{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform .15s}
.hero-tax-switch[aria-checked="true"] .hero-tax-track{background:#b8e98b}
.hero-tax-switch[aria-checked="true"] .hero-tax-thumb{transform:translateX(12px);background:#17382e}
.hero-tax-switch:focus-visible{outline:3px solid #ddf29c;outline-offset:3px}
.hero-tax-status{min-width:18px;text-align:center}
.selected-store-card{display:flex;align-items:flex-start;gap:12px;border:1px solid #dbe6d7;border-radius:17px;background:#f1f6e9;padding:15px;margin:0 0 16px;color:#17382e}
.selected-store-pin{flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e2eed8;font-size:17px}
.selected-store-details{min-width:0;flex:1}
.selected-store-label{color:#66806a;font-size:10px;font-weight:850;letter-spacing:1.15px;margin:0 0 6px}
.selected-store-details strong{display:block;font-size:15px;line-height:1.3;overflow-wrap:anywhere}
.selected-store-details p{margin:4px 0 0;color:#566c5b;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
@media(max-width:440px){.hero-tax-actions{gap:7px}.hero-tax-switch{padding:5px}.hero-tax-line{gap:5px}.hero-tax-status{font-size:10px}}

/* v2.2 household shopping list — deliberately not ecommerce checkout controls */
.list-top-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 18px}
.list-top-actions .btn{flex:0 1 auto}.list-outstanding{font-size:12px;font-weight:850;color:#63786a}
.family-store-section{border:1px solid #dde6d7;background:#fff;border-radius:19px;overflow:hidden;margin:14px 0}
.family-store-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px;background:#f1f6ea;border-bottom:1px solid #e1e9dc}
.family-store-heading>div{display:flex;flex-direction:column;gap:3px;min-width:0}.family-store-name{font-size:16px;font-weight:850;letter-spacing:-.4px;color:#17382e}.family-store-heading small{font-size:11px;color:#697e70;line-height:1.45}
.store-add{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border-radius:12px;background:#def29d;color:#183a2e;border:0;font-size:26px;cursor:pointer}
.family-list-row{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:13px 16px;border-top:1px solid #eef1e9}.family-list-row:first-of-type{border-top:0}
.family-list-text{display:flex;flex-direction:column;gap:4px;min-width:0}.family-list-text strong{font-size:14px;line-height:1.35}.family-list-text small{font-size:11px;color:#6c7b70;line-height:1.4}
.family-list-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.family-list-actions .btn.small{padding:10px 11px;font-size:12px;border-radius:11px}
.empty-store-message{padding:12px 16px;color:#829287;font-size:12px;margin:0}
.product-suggestions{margin:3px 0 12px}.suggestion-head{font-size:11px;letter-spacing:.5px;font-weight:800;margin:5px 0 7px;color:#6a796f}.product-suggestion{width:100%;display:flex;flex-direction:column;gap:3px;background:#f2f7eb;border:1px solid #dbe6d3;padding:10px;text-align:left;border-radius:11px;cursor:pointer;margin-bottom:6px;font:inherit}.product-suggestion strong{font-size:13px;color:#15372b}.product-suggestion small{font-size:11px;color:#687868}
.past-product-selected{font-size:12px;font-weight:750;color:#315e41;margin:4px 0}.previous-price-note{font-size:12px;color:#556c5b;background:#f2f6e9;padding:10px;border-radius:10px}
.list-on-cart{background:#f7faf2;border:1px solid #dce8ce;border-radius:17px;padding:15px;margin:17px 0}.list-on-cart-head{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:9px}.list-on-cart-head strong{display:block;font-size:14px}.list-on-cart-head small{display:block;font-size:11px;color:#6a7e70;margin-top:3px}.list-on-cart-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid #e2ebd9;font-size:12px}.list-on-cart-item>span{flex:1;min-width:0;font-weight:650}.list-on-cart-item small{display:block;font-size:10px;color:#849186;font-weight:500;margin-top:2px}
@media(max-width:500px){.family-list-row{padding:11px}.family-list-actions{gap:4px}.family-list-actions .btn.small{font-size:11px;padding:9px}.list-on-cart-item .btn{font-size:11px}}

/* V2.2.1 family list improvements */
.list-estimate-card{padding:20px 22px;background:#16382f;color:#fff;border-radius:20px;margin:0 0 20px}
.list-estimate-card>div{display:flex;flex-direction:column;gap:7px}
.list-estimate-card .eyebrow{color:#c7daa5;font-size:10px}
.list-estimate-card strong{font-size:clamp(27px,6vw,35px);letter-spacing:-1px}
.list-estimate-card small{font-size:12px;color:#d7e5dc;line-height:1.5}
.family-store-heading{gap:9px}
.family-store-collapse{flex:1;display:flex;align-items:center;min-width:0;gap:10px;padding:0;background:transparent;border:0;cursor:pointer;text-align:left;color:#16382f;font:inherit}
.family-store-collapse:focus-visible{outline:2px solid #799e42;outline-offset:5px;border-radius:5px}
.family-store-title{display:flex;flex-direction:column;gap:4px;min-width:0}
.family-store-title small{display:block;line-height:1.4;color:#657d6a;overflow-wrap:anywhere}
.collapse-chevron{flex:0 0 14px;font-size:18px;color:#56704f}
.family-store-items[hidden],#listLocationSearchPanel[hidden]{display:none!important}
.family-list-empty{padding:30px 14px;text-align:center}
.list-location-picker{border:1px solid #e1e9d7;background:#f7faf4;border-radius:12px;padding:12px;margin:7px 0 14px}
.list-location-search-row{display:flex;gap:8px;align-items:center}
.list-location-search-row>input{flex:1;min-width:0}
.list-location-search-row>.btn{flex-shrink:0;white-space:nowrap}
.list-selected-location:not(:empty){margin-top:7px;color:#345c43;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
#listLocationSearchPanel{margin-top:12px}
.got-scanner-overlay{position:fixed;inset:0;z-index:9999;background:#14241fbb;display:flex;align-items:center;justify-content:center;padding:18px}
.got-scanner-dialog{background:#fff;border-radius:18px;padding:20px;width:min(100%,490px);max-height:90vh;overflow-y:auto;box-shadow:0 18px 55px #0004}
.got-scanner-dialog .modal-head{margin:0 0 14px}
.got-scanner-dialog .scanner-box{min-height:220px}
@media(max-width:480px){.list-location-search-row .btn.small{padding:11px 9px}.family-store-heading{padding:13px}.family-store-title small{font-size:11px}}

/* v2.3: profile, families and saved stores */
.settings-panel{padding:20px;display:grid;gap:16px}
.settings-panel .field{min-width:0}
.settings-panel select,.settings-panel input:not([type=file]){width:100%}
.settings-profile-head{display:flex;gap:14px;align-items:center;margin-bottom:5px}
.settings-profile-head>div,.member-info{min-width:0;display:grid;gap:3px}
.settings-profile-head strong,.member-info strong{color:#17372e;font-size:16px}
.settings-profile-head small,.member-info small,.saved-store-row small,.settings-family-overview small{color:#75847d;display:block;overflow-wrap:anywhere;font-size:12px}
.profile-avatar{width:64px;height:64px;flex:none;object-fit:cover;border-radius:50%;border:2px solid #e3e9d8}
.profile-avatar-fallback{display:flex;align-items:center;justify-content:center;background:#dcf0a3;color:#183a2f;font-weight:800;font-size:28px}
.avatar-small{width:42px;height:42px;font-size:18px}
.settings-panel-actions{display:flex;flex-wrap:wrap;gap:9px}
.settings-family-overview,.member-row,.saved-store-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e5e9e0;padding:14px 0}
.settings-family-overview>div,.saved-store-row>div{min-width:0;flex:1}
.member-info{flex:1}
.settings-members{display:grid}
.settings-members .member-row:last-child,.settings-panel .saved-store-row:last-child{padding-bottom:0}
.settings-panel .section-head.compact{margin:3px 0 0}
.settings-data{gap:8px}.settings-version{margin:20px 0 95px}
.settings-separator{height:1px;border:0;background:#e5e9e0;margin:22px 0}
@media(max-width:480px){.settings-panel{padding:16px}.settings-profile-head{align-items:flex-start}.member-row .btn{white-space:nowrap}}

/* v2.3 multi-family list chooser: intentionally restrained, matching the existing UI */
.list-switcher{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;background:#f5f8f2;border:1px solid #dfe9d7;border-radius:15px;padding:12px 14px;margin:10px 0 18px}
.list-switcher-field{flex:1 1 190px;min-width:0;display:grid;gap:5px}.list-switcher-field label{font-size:10px;font-weight:850;letter-spacing:1px;color:#68806d}.list-switcher-field select{width:100%;min-width:0;background:#fff;border:1px solid #d7e3d2;border-radius:9px;padding:10px 9px;font-size:14px;color:#15352e}.list-switcher-field small{font-size:11px;color:#65796a}.list-switcher>.btn{margin-bottom:3px;white-space:nowrap}@media(max-width:390px){.list-switcher>.btn{flex:1}}


/* List Gallery C1 — original v2.3 colors, stacked cards on phones, columns on desktop. */
.list-gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:2px 0 20px}
.list-gallery-heading .panel-title{margin:9px 0 3px}
.list-gallery-heading .subtle{margin:0;font-size:13px}
.list-gallery-heading .btn{white-space:nowrap;flex-shrink:0}
.list-gallery-toolbar{display:flex;align-items:center;gap:8px;margin:14px 0 16px;flex-wrap:wrap}
.list-filter{border:1px solid #dce6d8;color:#51685a;background:#fff;border-radius:999px;padding:10px 16px;font-size:13px;font-weight:800;min-height:39px}
.list-filter.active{background:#18382f;color:#fff;border-color:#18382f}
.list-gallery-total{color:#708276;font-size:12px;font-weight:750;margin-left:auto}
.list-family-filters{display:flex;gap:7px;align-items:center;overflow-x:auto;scrollbar-width:thin;padding:0 0 8px;margin-top:-4px;margin-bottom:8px}
.list-family-chip{border:1px solid #dce6d8;border-radius:999px;padding:8px 13px;font-size:12px;font-weight:750;background:#fff;color:#557360;white-space:nowrap}
.list-family-chip.active{border-color:#8aa65f;background:#edf4de;color:#254832}
.list-gallery-grid{display:grid;grid-template-columns:1fr;gap:15px;margin:18px 0 22px}
.list-gallery-card{display:flex;flex-direction:column;align-items:stretch;text-align:left;min-width:0;padding:19px 19px 17px;border-radius:22px;border:1px solid #e2e8dc;background:#fff;color:#18382f;box-shadow:0 4px 17px rgba(18,57,39,.035);font:inherit;transition:border-color .16s,box-shadow .16s,transform .16s;overflow:hidden}
.list-gallery-card:hover{border-color:#bed5a1;box-shadow:0 8px 28px rgba(18,57,39,.095)}
.list-gallery-card:active{transform:scale(.99)}
.list-gallery-card:focus-visible{outline:3px solid #87ae36;outline-offset:3px}
.list-gallery-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}
.list-gallery-icon{display:grid;place-items:center;width:42px;height:42px;background:#eaf2dc;color:#204734;border-radius:14px;font-size:20px}
.list-gallery-card.family .list-gallery-icon{background:#eaf2f0}
.list-gallery-owner{display:block;max-width:75%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid #e1e9da;border-radius:100px;padding:7px 10px;font-size:11px;font-weight:800;color:#557054;background:#f5f9ee}
.list-gallery-owner.family{background:#edf3f3;border-color:#dbe7e4;color:#3e6b61}
.list-gallery-name{font-size:21px;letter-spacing:-.65px;font-weight:850;line-height:1.18;overflow-wrap:anywhere}
.list-gallery-count{font-size:12px;font-weight:700;color:#738678;margin-top:7px}
.list-gallery-divider{height:1px;background:#e9eee6;margin:16px 0 12px}
.list-gallery-preview{display:grid;gap:9px;min-height:82px;align-content:start}
.list-gallery-preview-item{display:flex;align-items:center;gap:10px;min-width:0;color:#345445;font-size:13px;font-weight:680}
.list-gallery-preview-item>span:first-child{flex:0 0 22px;text-align:center;font-size:17px}
.list-gallery-preview-item>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.list-gallery-more,.list-gallery-noitems{color:#8a968c;font-size:12px;padding-left:32px}
.list-gallery-noitems{padding:10px 0;color:#738879;font-style:italic}
.list-gallery-card-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:6px;margin-top:18px}
.list-gallery-estimate{display:flex;flex-direction:column;min-width:0;gap:4px}
.list-gallery-estimate small{font-size:10px;font-weight:800;color:#829584;letter-spacing:.8px}
.list-gallery-estimate strong{font-size:23px;font-weight:860;letter-spacing:-.8px;color:#193f2e;overflow-wrap:anywhere}
.list-gallery-arrow{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eaf2de;color:#245139;font-weight:800;font-size:19px;flex:none}
.list-gallery-stores{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.list-gallery-stores span{font-size:10px;font-weight:750;background:#f4f6f1;color:#6c8070;padding:6px 8px;border-radius:8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.list-gallery-empty{text-align:center;background:#fff;border:1px dashed #d7e3d2;border-radius:20px;padding:34px 18px;margin-top:16px}
.list-gallery-empty>div{font-size:37px;color:#789077}.list-gallery-empty h2{font-size:18px;margin:10px 0 4px}.list-gallery-empty p{font-size:13px;color:#748576;line-height:1.5}.list-gallery-empty .btn{margin-top:9px}
.list-gallery-privacy{font-size:11px;line-height:1.6;color:#6b7e71;margin:16px 0 5px}
.list-detail-back{margin:-3px 0 20px}.list-back-button{border:0;background:none;color:#58745e;padding:10px 0;font-size:13px;font-weight:800}
.list-detail-back+.eyebrow+.panel-title{margin:7px 0 3px;overflow-wrap:anywhere}
.list-detail-scope{color:#6b8173;margin:0 0 17px;font-size:12px;font-weight:750}
@media(min-width:680px){.list-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}
@media(max-width:500px){.list-gallery-heading{align-items:flex-start;flex-direction:column;gap:13px}.list-gallery-heading .btn{min-height:43px}.list-gallery-card{padding:17px}.list-gallery-name{font-size:20px}.list-gallery-grid{gap:12px}}
@media(prefers-reduced-motion:reduce){.list-gallery-card{transition:none}}

/* D1: understated list-sync indicator in the existing gallery/detail design. */
.list-live-status{display:block;margin:7px 0 0;color:#75847a;font-size:11px;line-height:1.35;font-weight:650;letter-spacing:.1px}

/* E1 list management keeps the original gallery shape, adding a small manage action. */
.list-gallery-cell{position:relative;min-width:0;display:flex;flex-direction:column}
.list-gallery-cell .list-gallery-card{flex:1;width:100%;padding-bottom:48px}
.list-gallery-cell.is-archived .list-gallery-card{background:#f7f8f4}
.list-manage-quick{position:absolute;bottom:11px;right:13px;border:1px solid #dfe7d9;border-radius:10px;background:#f1f5eb;color:#315246;padding:7px 11px;font-size:12px;font-weight:750;cursor:pointer}
.list-manage-quick:hover{background:#e8f0df}
.list-manage-quick:focus-visible{outline:3px solid #87ae36;outline-offset:2px}
.list-detail-management{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0}
.archive-pill{background:#f3f1e6;color:#6e6b55;border-radius:100px;padding:7px 11px;font-size:12px;font-weight:750}
.list-manage-intro{padding:12px 14px;border-radius:14px;background:#f3f6ed;display:flex;flex-direction:column;gap:3px}
.list-manage-intro small{font-size:12px;color:#647367}
.list-manage-warning{background:#fff7e8;border:1px solid #f0e3c7;padding:11px 13px;border-radius:12px;color:#7d6035;font-size:12px;line-height:1.55}
.list-manage-danger{border-top:1px solid #e1e7db;margin-top:20px;padding-top:10px}
.list-manage-danger h3{font-size:14px;margin:8px 0 0}
.list-manage-danger .btn{margin:8px 8px 0 0}
.list-gallery-toolbar{flex-wrap:wrap}
button:disabled{opacity:.46;cursor:not-allowed}

/* E2: personal item library within the existing AisleMeter design */
.e2-heading,.e2-list-heading-actions,.e2-heading-actions,.e2-library-actions{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.e2-heading{margin-bottom:18px;align-items:flex-start}.e2-heading>.btn{margin-top:4px}
.e2-heading-actions .btn{white-space:nowrap}.e2-heading-actions{justify-content:flex-end}
.list-detail-back{display:flex;gap:12px;align-items:center;justify-content:space-between}
.list-top-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.e2-library-actions{margin:16px 0 18px}.e2-library-actions .btn{white-space:normal}
.e2-search-label{font-size:13px;color:var(--muted,#64756c);flex:1 1 200px}
.e2-search-label input{margin-top:5px;width:100%}
.e2-my-items{display:flex;flex-direction:column;gap:10px}
.e2-item-row{display:flex;align-items:center;gap:12px;padding:16px;background:#fff;border:1px solid #dce3d9;border-radius:20px}
.e2-item-row[hidden]{display:none}.e2-item-icon{width:48px;height:48px;border-radius:13px;background:#eff4e9;display:grid;place-items:center;font-size:25px;flex:0 0 48px}
.e2-item-info{flex:1;min-width:0;display:grid;gap:4px}.e2-item-info strong{color:#18392d;font-weight:750;overflow-wrap:anywhere}
.e2-item-info small{color:#728078;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.e2-item-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.e2-star{width:40px;height:40px;border:1px solid #d7ded3;border-radius:12px;background:#f3f6ee;color:#758578;font-size:26px;cursor:pointer}
.e2-star.on{color:#977a25;background:#fff5d0}.e2-hide{font-size:12px}
.e2-regular-choices{max-height:300px;overflow:auto;border:1px solid #dfe5d9;border-radius:16px;margin:12px 0}
.e2-regular-option{display:flex;align-items:flex-start;gap:14px;padding:13px 15px;border-bottom:1px solid #e7ebe4;cursor:pointer}
.e2-regular-option:last-child{border-bottom:0}.e2-regular-option input{min-width:19px;width:19px;height:19px;margin-top:4px}
.e2-regular-option span{display:grid;gap:3px}.e2-regular-option small{font-size:12px;color:#66746a}
@media(max-width:540px){.e2-item-row{align-items:flex-start;flex-wrap:wrap}.e2-item-buttons{width:100%;justify-content:flex-end}.e2-heading-actions{width:100%;justify-content:flex-start}.e2-heading-actions .btn{flex:1}.e2-library-actions .btn{width:100%}}

/* E2.2: keep cancellation visible but secondary; neutralize empty estimates. */
.cart-trip-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;column-gap:16px;row-gap:9px}
.cancel-trip-link{color:#a44f46!important;font-weight:730}
.cancel-trip-link:hover{text-decoration:underline}
.list-gallery-estimate strong.estimate-missing{font-size:13px;font-weight:600;letter-spacing:0;line-height:1.45;color:#7f8e83}
.danger-confirm{background:#a33e36;color:#fff;border:1px solid #a33e36}
.danger-confirm:hover{background:#8a302a}
@media(max-width:480px){.cart-trip-actions{column-gap:12px;row-gap:7px}.cart-trip-actions .text-link{font-size:12px}}

/* E2.3 — show who is shopping an item without exposing their cart or receipt. */
.list-in-cart-status{display:inline-flex;align-items:center;width:fit-content;max-width:100%;
 padding:5px 9px;border:1px solid #cfdfc5;background:#eff6e8;color:#2c624c;border-radius:99px;
 font-size:11px;font-weight:750;line-height:1.35;margin-top:2px;overflow-wrap:anywhere}
.cart-reserved-label{font-size:11px;font-weight:750;color:#4d7459;padding:7px 6px}
.list-shopping-summary{background:#f2f7ee;border:1px solid #dfebd6;border-radius:15px;
 padding:14px 16px;color:#436750;font-size:13px;line-height:1.55;margin:14px 0}
.list-gallery-preview .list-gallery-preview-text{display:flex;flex-direction:column;gap:3px;
 min-width:0;overflow:hidden;white-space:normal;flex:1}
.list-gallery-preview-text>span{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.list-gallery-preview-text small{color:#4c7a5b;font-size:10px;font-weight:750;line-height:1.35;white-space:normal}
@media(max-width:480px){.family-list-row{align-items:flex-start}.family-list-actions{align-self:center}}

/* E2.3.1 — source-list attribution, unobtrusive beneath the item price/quantity. */
.item-source{font-size:11px;line-height:1.4;font-weight:600;color:#6d8175;margin-top:4px;overflow-wrap:anywhere}

/* E2.4 — compact department grouping and optional aisle details. */
.cart-department{margin:13px 0 16px}
.cart-department-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:14px;font-weight:820;color:var(--dark);margin:0 1px 8px}
.cart-department-title small{font-size:11px;color:var(--muted);font-weight:650}
.cart-department .card{margin:0}
.item-location,.list-item-location{display:block;margin-top:4px;font-size:11px;line-height:1.35;color:#6f8578;font-weight:600}
.list-on-cart-department{padding-top:9px}
.list-on-cart-department + .list-on-cart-department{margin-top:7px;border-top:1px solid var(--line)}
.list-on-cart-department-label{text-transform:uppercase;font-size:10px;font-weight:850;letter-spacing:1.1px;color:#69816f;padding:5px 0 8px}
.list-on-cart-item strong{font-size:13px}
.got-list-location{font-size:11px;margin-top:6px;font-weight:750;color:#536c5d}
@media (max-width:440px){.cart-department-title{font-size:13px}.list-on-cart-item{gap:8px}.list-on-cart-item .btn{white-space:nowrap}}

/* E2.5 — quiet History privacy and sharing cues; original cards stay intact. */
.history-filters{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 12px}
.history-filter{border:1px solid #dfe6da;background:#fff;color:var(--forest,#14352e);border-radius:999px;padding:9px 12px;font-size:12px;font-weight:700;cursor:pointer}
.history-filter.selected{background:#e7efd9;border-color:#a8c77b}
.history-family-filter{display:flex;align-items:center;gap:10px;margin:0 0 20px;color:#66776c;font-size:13px;font-weight:700}
.history-family-filter select{max-width:240px;min-width:150px;padding:9px 10px;border-radius:13px;border:1px solid #dfe6da;background:#fff;color:#193c32}
.history-access{display:inline-block;margin-top:5px;font-size:11px;font-weight:650;line-height:1.5;color:#677c70;overflow-wrap:anywhere}
.history-access-shared{color:#265c49}
.history-access-private{color:#738075}
.history-trip-copy{flex:1;min-width:0}
.history-trip-end{text-align:right;flex-shrink:0}
.history-review-visibility{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:14px}
.history-review-visibility .history-access{font-size:13px}
.history-share-choices{display:grid;gap:10px;margin:14px 0}
.history-share-option{display:flex;align-items:center;gap:12px;border:1px solid #dfe5d8;border-radius:14px;padding:13px;background:#fafbf8;font-weight:700;color:#193b33}
.history-share-option input{height:19px;width:19px;accent-color:#244f3f;flex-shrink:0}
@media(max-width:420px){.history-row{gap:12px}.history-actions{display:flex;gap:9px;justify-content:flex-end;flex-wrap:wrap}.history-family-filter select{min-width:0}}

/* E2.6 — compact camera beside shelf price, never changes the cart layout. */
.shelf-price-row{display:flex;align-items:stretch;gap:7px;min-width:0}
.shelf-price-row input{flex:1 1 0;min-width:0;width:0}
.shelf-photo-btn{display:grid;place-items:center;flex:0 0 44px;min-width:44px;width:44px;min-height:47px;font-size:21px;padding:0;border:1px solid #d4dfd1;border-radius:12px}
.shelf-photo-btn:disabled{opacity:.55}
.shelf-photo-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none;overflow:hidden;padding:0!important;border:0!important}
.shelf-photo-feedback:empty{display:none}
.shelf-photo-feedback{margin-top:8px;font-size:12px;color:#587061;line-height:1.45}
.shelf-photo-note{margin:4px 0 0;font-size:12px;line-height:1.45;color:#52725e}
.shelf-photo-warning{color:#916a32}
.shelf-photo-review{display:flex;align-items:flex-start;gap:10px;padding:9px;background:#f1f5ed;border-radius:10px}
.shelf-photo-review>img,.shelf-inline-preview{width:72px;height:62px;flex-shrink:0;object-fit:cover;border-radius:8px}
.shelf-photo-review p{font-size:12px;color:#52695a;margin:5px 0}
.shelf-price-choices{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.shelf-price-choices .btn{min-width:68px;padding:8px 11px;font-size:12px}
.shelf-inline-preview{display:inline-block;float:left;margin:0 9px 3px 0}

/* E2.6.1: barcode button restored alongside the existing shelf photo button. */
.barcode-scan-row{display:flex;align-items:stretch;gap:7px;min-width:0}
.barcode-scan-row>input{flex:1 1 0;min-width:0;width:0}
.barcode-scan-btn{display:grid;place-items:center;flex:0 0 44px;min-width:44px;width:44px;min-height:47px;font-size:22px;padding:0;border:1px solid #d4dfd1;border-radius:12px}

/* E2.7 groups: make the destructive group action understated but visible. */
.settings-panel-actions .btn.danger{background:#fff6f4;color:#a63228;border:1px solid #e6c5bf}
.settings-panel-actions .btn.danger:hover{background:#feece8}

/* E2.8 — beta-friendly release notes and a quiet, accessible Settings update marker. */
.nav .symbol{position:relative;display:inline-block}
.nav-update-dot{position:absolute;right:-7px;top:-3px;background:#dd764a;border:2px solid #fff;width:11px;height:11px;border-radius:50%;pointer-events:none}
.whatsnew-entry-card{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:15px 17px;background:#f5f9ed;border:1px solid #dce8cf;color:#19372f;min-height:80px;cursor:pointer;margin:18px 0 4px;border-radius:18px}
.whatsnew-entry-card:focus-visible{outline:3px solid #8dad4a;outline-offset:2px}
.whatsnew-card-icon{display:grid;place-items:center;width:39px;height:39px;flex:none;border-radius:13px;background:#e4f2c8;color:#224334;font-size:23px}
.whatsnew-card-copy{flex:1;min-width:0;display:grid;gap:5px}
.whatsnew-card-copy strong{font-size:15px;font-weight:800}
.whatsnew-card-copy small{font-size:12px;color:#6a786e;line-height:1.45}
.whatsnew-card-new{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;background:#ddf29c;color:#23412e;padding:6px 8px;border-radius:999px}
.whatsnew-card-arrow{font-size:21px;color:#71836f}
.whatsnew-back{padding:4px 0;margin:2px 0 17px}
.whatsnew-intro{max-width:580px;margin:10px 0 19px;font-size:13px}
.update-timeline,.roadmap-list{overflow:hidden}
.update-entry{padding:20px;border-bottom:1px solid #ebeee6}
.update-entry:last-child{border-bottom:0}
.update-entry.update-latest{background:#f8fbf2}
.update-meta{display:flex;align-items:center;gap:10px;font-size:11px;color:#859189;font-weight:600}
.update-version{font-weight:800;color:#345c46;background:#eaf2df;border-radius:999px;padding:5px 9px}
.update-entry h2{font-size:18px;line-height:1.25;letter-spacing:-.45px;margin:11px 0 7px;color:#19352c}
.update-entry p{color:#617369;font-size:13px;line-height:1.55;margin:0 0 11px}
.update-entry ul{margin:0;padding-left:19px;color:#455e4e;font-size:12px;line-height:1.7}
.whatsnew-more{margin-top:13px}
.whatsnew-roadmap-heading{margin-top:35px}
.whatsnew-roadmap-intro{margin:-4px 0 15px;font-size:12px}
.roadmap-entry{display:flex;align-items:flex-start;gap:12px;padding:17px 18px;border-bottom:1px solid #ebeee6}
.roadmap-entry:last-child{border-bottom:0}
.roadmap-status{flex:none;min-width:62px;text-align:center;text-transform:uppercase;font-size:9px;font-weight:800;letter-spacing:.55px;border-radius:999px;padding:7px 8px;background:#edf2e7;color:#607267}
.roadmap-next{background:#ddf29c;color:#214132}
.roadmap-planned{background:#e7f0e1;color:#365a48}
.roadmap-entry h3{font-size:14px;line-height:1.35;margin:2px 0 6px;color:#19362f}
.roadmap-entry p{color:#687a6f;font-size:12px;line-height:1.55;margin:0}
.whatsnew-note{padding:13px 0 0;margin:17px 0 0}
@media(max-width:480px){.update-entry{padding:16px 15px}.roadmap-entry{gap:9px;padding:15px 12px}.whatsnew-entry-card{padding:13px}.whatsnew-card-copy strong{font-size:14px}.whatsnew-card-new{font-size:9px}}

/* E2.9 — Small-screen usability polish. Cart search starts compact. */
.cart-section-heading{align-items:center;flex-wrap:wrap;row-gap:6px}
.cart-heading-label{display:inline-flex;align-items:center;gap:8px;min-width:0}
.cart-heading-label h2{margin:0}
.cart-search-toggle{min-width:38px;min-height:38px;border:1px solid #dfe7d9;border-radius:12px;background:#f1f5ed;color:#355b47;display:inline-grid;place-items:center;padding:8px}
.cart-search-toggle svg{width:19px;height:19px;display:block}
.cart-search-toggle.is-open{background:#dff0ba;border-color:#c2d997}
.cart-search-container{margin:5px 0 11px}
.cart-search-container .search{width:100%;min-height:44px}
/* The location plan can be collapsed without losing its header or full-list link. */
.list-on-cart-head{align-items:center;margin-bottom:0}
.list-on-cart-head:has(+ .list-on-cart-body){margin-bottom:9px}
.list-on-cart-toggle{min-width:0;flex:1;display:flex;gap:9px;align-items:center;text-align:left;justify-content:space-between;background:none;color:var(--ink);border:0;padding:6px 1px;cursor:pointer;border-radius:8px}
.list-on-cart-heading-text{min-width:0;display:block}
.list-on-cart-heading-text strong,.list-on-cart-heading-text small{display:block}
.list-on-cart-chevron{font-size:20px;line-height:1;color:#6b806c;transition:transform .18s ease}
.list-on-cart-toggle[aria-expanded="true"] .list-on-cart-chevron{transform:rotate(180deg)}
.list-on-cart-head>.text-link{flex:none;white-space:nowrap;font-size:12px}
.list-on-cart-toggle:focus-visible,.cart-search-toggle:focus-visible{outline:3px solid #87ae36;outline-offset:2px}
.settings-footer-actions{margin:19px 0 8px;display:flex;justify-content:flex-start}
/* Same typographic rhythm for main page titles throughout Cart, List, History, Settings. */
.welcome h1,.panel-title{font-size:28px;font-weight:820;letter-spacing:-.95px;line-height:1.16;margin:6px 0 4px;overflow-wrap:anywhere}
.shell>.eyebrow+.panel-title{margin-top:7px}
.list-gallery-heading .panel-title,.e2-heading .panel-title,.list-detail-back+.eyebrow+.panel-title{margin-top:7px;margin-bottom:4px}
.welcome{margin-bottom:17px}
.welcome .sub{margin-top:6px}
/* Use the real barcode-mark asset rather than a shopping-cart emoji. */
.splash{font-size:inherit;gap:14px;padding:24px;min-height:80vh;text-align:center}
.splash-logo{display:block;width:90px;height:90px;object-fit:contain;border-radius:20px}
.splash span{font-size:14px;font-weight:750;letter-spacing:.1px;color:#577267}
@media(max-width:480px){.welcome h1,.panel-title{font-size:26px}.cart-section-heading{align-items:center}.cart-trip-actions{gap:4px 10px}.cart-search-toggle{min-width:38px;min-height:38px}}
