@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap";:root{color:#202b25;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-optical-sizing:auto;--green:#176b4b;--green-dark:#10583d;--mint:#e8f3ec;--muted:#7b8980;--line:#e8ece7;background:#f5f7f3;font-family:DM Sans,sans-serif;font-weight:400}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.app-shell{min-height:100vh}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:76px;padding:0 max(50vw - 560px,28px);display:flex}.brand{color:#20352a;letter-spacing:-1px;align-items:center;gap:10px;font:800 22px Manrope,sans-serif;text-decoration:none;display:flex}.brand-mark{background:var(--green);color:#fff;border-radius:12px;place-items:center;width:36px;height:36px;display:grid}.brand-accent{color:var(--green)}.top-status{align-items:center;gap:20px;display:flex}.privacy-note{color:#7b8980;align-items:center;gap:7px;font-size:12px;display:flex}.privacy-dot{background:#49a878;border-radius:50%;width:7px;height:7px}.offline-pill{color:#a65b2c;background:#fff1e8;border-radius:20px;align-items:center;gap:5px;padding:6px 10px;font-size:12px;display:flex}.main-wrap{max-width:1120px;margin:0 auto;padding:42px 28px 70px}.welcome-row{justify-content:space-between;align-items:center;margin-bottom:34px;display:flex}.eyebrow,.section-kicker{color:var(--green);letter-spacing:1.4px;text-transform:uppercase;margin:0 0 8px;font-size:11px;font-weight:800}.welcome-row h1{letter-spacing:-1.2px;color:#1c2c23;margin:0 0 7px;font:800 32px Manrope,sans-serif}.subheading{color:#7b8980;margin:0;font-size:14px}.hero-illustration{place-items:center;width:108px;height:90px;display:grid;position:relative}.hero-circle{width:72px;height:72px;color:var(--green);background:#e2f0e6;border-radius:26px;place-items:center;display:grid;transform:rotate(-8deg)}.spark{color:#e6a94b;font-size:20px;position:absolute}.spark-one{top:0;right:5px}.spark-two{font-size:15px;bottom:0;left:2px}.tabs{border-bottom:1px solid #dfe6df;gap:6px;margin-bottom:28px;display:flex}.tab{color:#7c8980;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:9px;margin-bottom:-1px;padding:13px 17px;font-size:13px;font-weight:600;display:flex}.tab.active{color:var(--green);border-color:var(--green)}.content-grid{grid-template-columns:minmax(0,1fr) 285px;align-items:start;gap:22px;display:grid}.primary-column{min-width:0}.section-heading{justify-content:space-between;align-items:center;margin:3px 0 17px;display:flex}.section-heading h2,.panel-toolbar h2{letter-spacing:-.5px;margin:0;font:800 21px Manrope,sans-serif}.section-kicker{margin-bottom:5px;font-size:9px}.date-chip{color:#7d8981;border:1px solid var(--line);background:#fff;border-radius:9px;align-items:center;gap:6px;padding:8px 11px;font-size:12px;display:flex}.progress-card,.list-card,.tip-card,.mini-stat,.page-panel,.start-card{border:1px solid var(--line);background:#fff;border-radius:16px}.progress-card{margin-bottom:14px;padding:17px 20px}.progress-top,.progress-bottom{color:#7d8981;justify-content:space-between;align-items:center;font-size:12px;display:flex}.progress-top strong{color:#34443a}.progress-track{background:#edf1ed;border-radius:10px;height:7px;margin:13px 0 9px;overflow:hidden}.progress-fill{background:#47a978;border-radius:10px;height:100%;transition:width .25s}.progress-bottom{font-size:11px}.list-card{padding:20px}.list-card-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.list-card-head h3{margin:0;font:700 15px Manrope}.text-button{color:var(--green);background:0 0;border:0;align-items:center;gap:5px;padding:7px;font-size:12px;font-weight:700;display:inline-flex}.items-list{flex-direction:column;display:flex}.shopping-item{border-bottom:1px solid #f0f2ef;align-items:center;gap:12px;padding:13px 2px;display:flex}.check-button{color:#fff;background:#fff;border:1.5px solid #cbd5cc;border-radius:7px;flex:none;place-items:center;width:22px;height:22px;display:grid}.done .check-button{background:#48a675;border-color:#48a675}.item-name{flex:1;font-size:14px;font-weight:600}.done .item-name{color:#a1aaa3;text-decoration:line-through}.quantity-control{color:#4e5d53;align-items:center;gap:10px;font-size:12px;display:flex}.quantity-control button{color:#69766d;background:#fff;border:1px solid #e7ece7;border-radius:7px;place-items:center;width:25px;height:25px;display:grid}.finish-button{background:var(--green);color:#fff;border:0;border-radius:10px;justify-content:center;align-items:center;gap:9px;width:100%;height:47px;margin-top:18px;font-size:13px;font-weight:700;display:flex}.finish-button:hover,.primary-button:hover{background:var(--green-dark)}.empty-inline{text-align:center;color:#929c94;padding:24px 0;font-size:13px}.side-column{flex-direction:column;gap:12px;display:flex}.tip-card{background:#f0f7f1;border-color:#e3eee5;gap:12px;padding:17px;display:flex}.tip-icon{color:#d49a3d;background:#fff;border-radius:10px;flex:none;place-items:center;width:30px;height:30px;display:grid}.tip-card strong{font-size:13px}.tip-card p{color:#718078;margin:5px 0 0;font-size:11px;line-height:1.6}.mini-stat{align-items:center;gap:11px;padding:14px;display:flex}.mini-stat-icon,.setting-icon{width:37px;height:37px;color:var(--green);background:#edf5ef;border-radius:11px;flex:none;place-items:center;display:grid}.mini-stat>div:nth-child(2){flex-direction:column;flex:1;gap:2px;display:flex}.mini-stat strong{font:800 18px Manrope}.mini-stat span{color:#87928a;font-size:11px}.mini-stat>button{color:#9aa49d;background:0 0;border:0}.start-card{text-align:center;flex-direction:column;align-items:center;padding:48px 28px;display:flex}.start-icon,.empty-icon{width:66px;height:66px;color:var(--green);background:#e9f3eb;border-radius:22px;place-items:center;margin-bottom:17px;display:grid}.start-card h2,.empty-state h3{margin:0 0 9px;font:800 19px Manrope}.start-card p,.empty-state p{color:#7b8980;max-width:380px;margin:0 auto 20px;font-size:13px;line-height:1.65}.primary-button{background:var(--green);color:#fff;border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;height:46px;padding:0 18px;font-size:13px;font-weight:700;transition:background .2s;display:inline-flex}.hint{color:#9aa49d;margin-top:15px;font-size:11px}.page-panel{min-height:350px;padding:24px}.panel-toolbar{justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px;display:flex}.panel-toolbar p{color:#89948c;margin:6px 0 0;font-size:12px}.compact{height:39px;padding:0 13px;font-size:12px}.add-product-card{background:#f6faf6;border:1px solid #dce9de;border-radius:13px;margin-bottom:17px;padding:17px}.add-head{justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;display:flex}.icon-button{color:#859188;background:0 0;border:0}.add-fields{grid-template-columns:minmax(150px,1fr) 160px auto;gap:9px;display:grid}.input-wrap,.search-box{background:#fff;border:1px solid #e1e8e1;border-radius:9px;align-items:center;padding:0 11px;display:flex}.input-wrap input,.search-box input{background:0 0;border:0;outline:0;flex:1;min-width:0;height:40px;font-size:12px}.voice-button,.search-box button{color:var(--green);background:0 0;border:0;place-items:center;display:grid}.add-fields select{color:#59665d;background:#fff;border:1px solid #e1e8e1;border-radius:9px;padding:0 10px;font-size:12px}.field-hint{color:#8b978e;margin-top:9px;font-size:10px;display:block}.search-box{gap:8px;max-width:440px;margin-bottom:16px}.search-box>svg{color:#98a39b}.selection-summary{color:#849087;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:11px;display:flex}.product-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.product-tile{text-align:left;background:#fff;border:1px solid #e8ede8;border-radius:12px;flex-direction:column;align-items:flex-start;min-height:116px;padding:14px;transition:all .15s;display:flex;position:relative}.product-tile:hover{border-color:#a8cbb2;transform:translateY(-1px)}.product-tile.selected{background:#f0f7f1;border-color:#6eaa80}.product-check{color:#fff;border:1px solid #d9e1da;border-radius:6px;place-items:center;width:18px;height:18px;display:grid;position:absolute;top:10px;right:10px}.selected .product-check{background:var(--green);border-color:var(--green)}.product-emoji{margin-bottom:7px;font-size:21px}.product-tile strong{color:#35443a;font-size:12px}.product-tile small{color:#97a198;margin-top:3px;font-size:10px}.sticky-action{justify-content:flex-end;padding-top:18px;display:flex;position:sticky;bottom:15px}.sticky-action .primary-button{box-shadow:0 5px 20px #174b3026}.empty-state{text-align:center;padding:55px 15px}.empty-icon{margin:0 auto 15px}.history-list{flex-direction:column;gap:10px;display:flex}.history-card{border:1px solid #edf0ed;border-radius:12px;align-items:center;gap:13px;padding:14px;display:flex}.history-icon{width:38px;height:38px;color:var(--green);background:#edf5ef;border-radius:11px;place-items:center;display:grid}.history-info{flex-direction:column;flex:1;gap:4px;display:flex}.history-info strong{font-size:13px}.history-info span{color:#8a958d;font-size:11px}.secondary-button{color:#42614d;background:#fff;border:1px solid #dfe7df;border-radius:8px;height:35px;padding:0 12px;font-size:11px;font-weight:700}.settings-panel{max-width:850px}.setting-row{border-bottom:1px solid #eff2ef;align-items:center;gap:13px;padding:16px 0;display:flex}.setting-row>div:nth-child(2){flex-direction:column;flex:1;gap:5px;display:flex}.setting-row strong{font-size:13px}.setting-row span{color:#849087;font-size:11px;line-height:1.5}.safe-label{background:#edf6ef;border-radius:20px;padding:5px 9px;font-weight:700;color:#398158!important;font-size:10px!important}.backup-card{background:#f7f9f6;border-radius:12px;justify-content:space-between;align-items:center;gap:20px;margin-top:22px;padding:18px;display:flex}.backup-card h3{margin:0 0 5px;font:700 14px Manrope}.backup-card p{color:#87928a;margin:0;font-size:11px;line-height:1.5}.backup-actions{flex:none;gap:8px;display:flex}.file-label{cursor:pointer;align-items:center;display:flex}.file-label input{display:none}.about-note{color:#8a958d;gap:9px;margin-top:18px;font-size:11px;line-height:1.6;display:flex}.about-note svg{flex:none}.footer{color:#a0aaa2;justify-content:space-between;max-width:1120px;margin:0 auto;padding:0 28px 25px;font-size:10px;display:flex}.footer span:first-child{color:#718277;font-weight:800}.toast{color:#fff;z-index:5;background:#233a2c;border-radius:10px;align-items:center;gap:20px;padding:12px 15px 12px 18px;font-size:12px;display:flex;position:fixed;bottom:25px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0002}.toast button{color:#fff;background:0 0;border:0;place-items:center;display:grid}.mobile-nav{display:none}@media (width<=760px){.topbar{height:62px;padding:0 18px}.brand{font-size:20px}.privacy-note{font-size:0}.privacy-dot{width:8px;height:8px}.main-wrap{padding:28px 17px 95px}.welcome-row{margin-bottom:24px}.welcome-row h1{font-size:25px}.subheading{max-width:270px;font-size:12px;line-height:1.5}.hero-illustration{transform-origin:100%;transform:scale(.8)}.tabs{display:none}.content-grid{grid-template-columns:1fr;gap:14px}.side-column{grid-template-columns:1fr 1fr;display:grid}.tip-card{grid-column:1/-1}.section-heading h2,.panel-toolbar h2{font-size:19px}.list-card{padding:16px}.page-panel{padding:17px}.panel-toolbar{align-items:flex-start}.panel-toolbar p{max-width:230px;line-height:1.5}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.add-fields{grid-template-columns:1fr 1fr}.add-fields .input-wrap,.add-fields .primary-button{grid-column:1/-1}.backup-card{flex-direction:column;align-items:flex-start}.backup-actions{width:100%}.backup-actions>*{flex:1;justify-content:center}.history-card{flex-wrap:wrap}.history-info{min-width:calc(100% - 60px)}.history-card .secondary-button{margin-left:50px}.footer{padding:0 18px 20px}.mobile-nav{z-index:4;height:67px;padding:7px 8px calc(7px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e7ece7;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-tab{color:#89958c;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:65px;font-size:9px;font-weight:600;display:flex}.mobile-tab.active{color:var(--green)}.toast{justify-content:space-between;width:calc(100% - 32px);bottom:80px}.sticky-action{bottom:78px}.start-card{padding:36px 18px}}@media (width<=390px){.top-status{gap:8px}.date-chip{font-size:10px}.product-grid{gap:7px}.product-tile{min-height:108px;padding:12px}.panel-toolbar{gap:8px}.panel-toolbar .compact{padding:0 9px}.backup-actions{flex-direction:column}}.storage-status{border:1px solid #e6ece6;border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;padding:16px;display:flex}.storage-status strong{font-size:12px}.storage-status span{color:#87928a;flex:1;min-width:220px;font-size:11px;line-height:1.5}.consent-backdrop{z-index:10;background:#10251bd9;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.consent-card{background:#fff;border-radius:22px;width:min(100%,430px);padding:32px;box-shadow:0 25px 80px #0003}.consent-mark{width:54px;height:54px;color:var(--green);background:#e8f3ec;border-radius:17px;place-items:center;margin-bottom:22px;display:grid}.consent-card h2{letter-spacing:-.8px;margin:8px 0 10px;font:800 25px Manrope}.consent-card>p{color:#748178;margin:0 0 18px;font-size:13px;line-height:1.7}.consent-detail{color:#536258;align-items:center;gap:9px;margin:11px 0;font-size:12px;display:flex}.consent-detail svg{color:#399565}.consent-accept{width:100%;margin:20px 0 12px}.consent-card small{text-align:center;color:#9aa49d;font-size:10px;line-height:1.5;display:block}@media (width<=760px){.consent-card{padding:26px 22px}.storage-status{align-items:flex-start}.storage-status .secondary-button{width:100%}}.voice-backdrop{z-index:20;background:#10251bd9;place-items:center;padding:18px;animation:.18s ease-out voiceFade;display:grid;position:fixed;inset:0}.voice-modal{text-align:center;background:#fff;border-radius:24px;width:min(100%,440px);padding:34px 30px 28px;animation:.22s ease-out voicePop;position:relative;box-shadow:0 25px 80px #0004}.voice-close{color:#68766c;background:#f2f5f2;border:0;border-radius:10px;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:17px;right:17px}.recording-orb{width:76px;height:76px;color:var(--green);background:#e8f3ec;border-radius:50%;place-items:center;margin:4px auto 22px;display:grid}.recording-orb.is-recording{color:#d94e43;background:#fff0ee;animation:1.7s infinite recordPulse}.voice-modal .section-kicker{display:block}.voice-modal h2{letter-spacing:-.7px;margin:8px 0;font:800 25px Manrope}.voice-modal>p{color:#7b8980;max-width:330px;margin:0 auto 18px;font-size:13px;line-height:1.65}.voice-transcript{color:#425248;text-align:left;background:#f6f8f5;border:1px solid #e8eee8;border-radius:13px;min-height:92px;max-height:150px;padding:15px;font-size:13px;line-height:1.6;overflow:auto}.recording-indicator{justify-content:center;align-items:center;gap:4px;height:30px;margin:13px 0;display:flex}.recording-indicator span{background:#e15d52;border-radius:5px;width:4px;height:9px;animation:.75s ease-in-out infinite alternate voiceWave}.recording-indicator span:nth-child(2),.recording-indicator span:nth-child(4){animation-delay:.2s}.recording-indicator span:nth-child(3){animation-delay:.4s}.recording-indicator span:nth-child(5){animation-delay:.3s}.voice-stop{width:100%;height:48px;margin-top:10px}.voice-modal>small{color:#9aa49d;margin-top:12px;font-size:10px;line-height:1.5;display:block}@keyframes recordPulse{0%,to{box-shadow:0 0 #e15d5230}50%{box-shadow:0 0 0 12px #e15d5200}}@keyframes voiceWave{to{height:25px}}@keyframes voiceFade{0%{opacity:0}to{opacity:1}}@keyframes voicePop{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=480px){.voice-modal{border-radius:21px;padding:30px 21px 23px}.voice-modal h2{font-size:23px}}.product-tile{padding:0;overflow:hidden}.product-select{text-align:left;background:0 0;border:0;flex-direction:column;align-items:flex-start;width:100%;min-height:91px;padding:14px 14px 8px;display:flex;position:relative}.product-select .product-check{top:12px;right:12px}.product-actions{border-top:1px solid #f0f3f0;justify-content:flex-end;gap:5px;padding:5px 9px 9px;display:flex}.product-actions button{color:#718078;background:#f5f8f5;border:0;border-radius:7px;place-items:center;width:29px;height:27px;display:grid}.product-actions button:hover{color:var(--green);background:#e8f3ec}.product-actions button:last-child:hover{color:#c64d43;background:#fff0ee}.product-edit-modal{background:#fff;border-radius:22px;width:min(100%,430px);padding:32px;position:relative;box-shadow:0 25px 80px #0004}.product-edit-modal h2{letter-spacing:-.7px;margin:8px 0;font:800 24px Manrope}.product-edit-modal>p{color:#7b8980;margin:0 0 22px;font-size:12px;line-height:1.6}.product-edit-label{color:#536258;flex-direction:column;gap:7px;margin:14px 0;font-size:11px;font-weight:700;display:flex}.product-edit-label input,.product-edit-label select{color:#2d3b32;background:#fff;border:1px solid #e1e8e1;border-radius:9px;outline:none;width:100%;height:44px;padding:0 12px;font-size:13px}.product-edit-label input:focus,.product-edit-label select:focus{border-color:#78aa86;box-shadow:0 0 0 3px #e8f3ec}.product-edit-actions{justify-content:flex-end;gap:9px;margin-top:24px;display:flex}.product-edit-actions .primary-button,.product-edit-actions .secondary-button{height:39px}@media (width<=480px){.product-edit-modal{padding:28px 22px}.product-edit-actions{flex-direction:column-reverse}.product-edit-actions>*{justify-content:center;width:100%}}.voice-review-modal{max-height:min(88vh,760px);overflow:auto}.voice-review-list{flex-direction:column;gap:9px;max-height:42vh;padding:2px;display:flex;overflow:auto}.voice-review-row{align-items:center;gap:8px;display:flex}.voice-review-row input{color:#2d3b32;background:#fff;border:1px solid #e1e8e1;border-radius:10px;outline:none;flex:1;min-width:0;height:43px;padding:0 12px;font:600 13px Manrope,sans-serif}.voice-review-row input:focus{border-color:#78aa86;box-shadow:0 0 0 3px #e8f3ec}.voice-review-row .icon-button{flex:0 0 38px;height:38px}.list-head-actions{align-items:center;gap:8px;display:flex}.print-button{color:#52665a}@media (width<=480px){.list-head-actions{gap:2px}.list-head-actions .text-button{padding:6px 4px;font-size:11px}}@media print{@page{size:A4 portrait;margin:9mm}html,body,#root,.app-shell{color:#111!important;background:#fff!important;width:100%!important;min-width:0!important;margin:0!important;padding:0!important}.topbar,.tabs,.side-column,.mobile-nav,.progress-card,.list-card-head .add-list-button,.finish-button,.toast,.welcome-row .eyebrow,.welcome-row .subheading,.hero-illustration{display:none!important}.main-wrap{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}.welcome-row{margin:0 0 7mm!important;display:block!important}.welcome-row>div:first-child{display:block}.welcome-row h1{color:#20352a!important;letter-spacing:0!important;margin:0!important;font:800 18pt Arial,sans-serif!important;display:block!important}.welcome-row h1 .brand-word{color:#20352a!important}.welcome-row h1 .brand-accent{color:#176b4b!important}.content-grid{width:100%!important;display:block!important}.primary-column{width:100%!important}.section-heading{margin:0 0 4mm!important}.section-heading h2{color:#111!important;font-size:11pt!important}.section-kicker{display:none!important}.date-chip{color:#555!important;background:0 0!important;border:0!important;padding:0!important;font-size:8pt!important}.list-card{border:0!important;border-radius:0!important;padding:0!important}.list-card-head{margin:0 0 3mm!important;display:block!important}.list-card-head h3{font:700 10pt Arial,sans-serif!important}.list-head-actions{display:none!important}.items-list{column-count:3!important;column-fill:balance!important;column-gap:7mm!important;width:100%!important;display:block!important}.shopping-item{break-inside:avoid!important;page-break-inside:avoid!important;border-bottom:1px solid #e5e5e5!important;align-items:center!important;gap:5px!important;min-height:0!important;padding:3px 1px!important;display:flex!important}.check-button{background:#fff!important;border:1px solid #555!important;border-radius:2px!important;width:11px!important;min-width:11px!important;height:11px!important}.check-button svg{width:9px!important;height:9px!important}.item-name{overflow-wrap:anywhere;color:#111!important;font:9pt Arial,sans-serif!important;text-decoration:none!important}.done .item-name{color:#777!important;text-decoration:line-through!important}.quantity-control{color:#111!important;gap:0!important;font:8pt Arial,sans-serif!important}.quantity-control button{display:none!important}.quantity-control span{text-align:center!important;min-width:12px!important}.footer{color:#555!important;border-top:1px solid #ddd!important;justify-content:space-between!important;width:100%!important;max-width:none!important;margin:7mm 0 0!important;padding:3mm 0 0!important;font:8pt Arial,sans-serif!important;display:flex!important}.footer span:first-child{color:#222!important;font-weight:800!important}.footer a{color:#333!important;text-decoration:none!important}}.sort-control{color:#7b8980;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.sort-control select{color:#34443a;background:#fff;border:1px solid #e1e8e1;border-radius:8px;outline:none;max-width:145px;height:31px;padding:0 8px;font-size:11px;font-weight:600}.sort-control select:focus{border-color:#78aa86;box-shadow:0 0 0 3px #e8f3ec}.item-group{flex-direction:column;display:flex}.item-group-title{color:#176b4b;letter-spacing:.7px;text-transform:uppercase;background:#e8f3ec;border-radius:7px;margin:13px 0 2px;padding:7px 9px;font:800 10px Manrope,sans-serif}.item-group:first-child .item-group-title{margin-top:2px}@media (width<=600px){.list-card-head{flex-wrap:wrap;align-items:flex-start;gap:8px}.list-head-actions{flex-wrap:wrap;width:100%}.sort-control{margin-right:auto}.sort-control select{max-width:130px}}
