:root{--green: #2e7d32;--green-dark: #1b5e20;--bg: #f5f6f5;--surface: #ffffff;--text: #1a1c1a;--muted: #6b716b;--border: #e2e5e2;--danger: #c62828;--nav-h: 64px;--safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #121412;--surface: #1d201d;--text: #eaece9;--muted: #9aa09a;--border: #2c302c}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;min-height:100%}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;padding-top:calc(14px + env(safe-area-inset-top,0px));background:var(--green);color:#fff}.app-title{font-size:1.15rem;font-weight:600}.link-btn{background:none;border:none;color:#fff;opacity:.85;font-size:.9rem;padding:6px;cursor:pointer}.app-content{flex:1;padding-bottom:calc(var(--nav-h) + var(--safe-bottom) + 8px)}.screen{padding:16px;display:flex;flex-direction:column;gap:16px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(var(--nav-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);display:flex;background:var(--surface);border-top:1px solid var(--border);z-index:20}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;background:none;color:var(--muted);font-size:.7rem;cursor:pointer;padding:8px 2px;transition:color .15s}.nav-item.active{color:var(--green)}@media(prefers-color-scheme:dark){.nav-item.active{color:#7bc67e}}.nav-item svg{width:24px;height:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px}.card-label{font-size:.8rem;color:var(--muted);margin-bottom:4px}.week-range{font-size:1.5rem;font-weight:700}.greeting{font-size:1.05rem;margin:0}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 10px;text-align:center}.tile-title{font-weight:600;margin-bottom:6px}.tile-status{font-size:.85rem}.btn-primary{width:100%;padding:15px;font-size:1rem;font-weight:600;color:#fff;background:var(--green);border:none;border-radius:12px;cursor:pointer}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-primary:active:not(:disabled){background:var(--green-dark)}.empty-state{text-align:center;padding:48px 24px;color:var(--text)}.empty-icon{font-size:3rem;margin-bottom:8px}.empty-state h3{margin:8px 0 6px}.center-screen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center}.gate-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:28px 22px}.gate-logo{font-size:2.6rem;margin:0}.gate-card form{display:flex;flex-direction:column;gap:14px;margin-top:16px;text-align:left}label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted)}input{padding:13px;font-size:1rem;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text)}input:focus{outline:2px solid var(--green);border-color:var(--green)}.tile-ok{border-color:var(--green)}.tile-ok .tile-status{color:var(--green)}@media(prefers-color-scheme:dark){.tile-ok .tile-status{color:#7bc67e}}.tile-btn{margin-top:8px;width:100%;padding:7px 4px;font-size:.72rem;border:1px solid var(--green);color:var(--green);background:none;border-radius:8px;cursor:pointer}@media(prefers-color-scheme:dark){.tile-btn{color:#7bc67e;border-color:#3d6b40}}.tile-btn-remove{color:var(--danger);border-color:var(--danger)}.tile-btn-retry{color:#8a5a00;border-color:#d9a300}@media(prefers-color-scheme:dark){.tile-btn-retry{color:#f0c260;border-color:#7a5c10}}.retry-inline{display:flex;flex-direction:column;gap:6px;margin:6px 0 2px}.segmented{display:flex;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:5px}.seg{flex:1;padding:11px 6px;border:none;border-radius:8px;background:none;color:var(--muted);font-size:.92rem;font-weight:600;cursor:pointer}.seg.active{background:var(--green);color:#fff}.lidl-auto{display:flex;flex-direction:column;gap:10px}.lidl-auto input[type=url]{width:100%}.lidl-actions{display:flex;gap:8px}.lidl-actions .btn-primary,.lidl-actions .btn-secondary{flex:1}.btn-secondary{padding:13px;font-size:.95rem;font-weight:600;color:var(--green);background:none;border:1px solid var(--green);border-radius:12px;cursor:pointer}.btn-secondary:disabled{opacity:.45;cursor:not-allowed}.week-list{display:flex;flex-wrap:wrap;gap:8px}.week-pill{padding:8px 12px;font-size:.85rem;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--text);cursor:pointer}.week-pill:disabled{opacity:.5}.job-progress{display:flex;align-items:center;gap:14px;background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:14px}.job-progress.job-error{border-color:var(--danger)}.or-divider{text-align:center;font-size:.8rem;color:var(--muted);margin:4px 0}.file-drop{display:flex;flex-direction:column;align-items:center;gap:8px;padding:26px 16px;border:2px dashed var(--border);border-radius:14px;text-align:center;color:var(--muted);cursor:pointer}.file-drop input{display:none}.file-icon{font-size:1.8rem}.progress-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px}.progress-steps{font-weight:600;font-size:.9rem}.result-ok{border-color:var(--green);display:flex;flex-direction:column;gap:4px}.result-error{border-color:var(--danger);color:var(--danger)}.warn-card{border-color:#d9a300;display:flex;flex-direction:column;gap:6px}.warn-list{margin:0;padding-left:18px;font-size:.9rem}.muted{color:var(--muted)}.hint{font-size:.82rem;margin:0}.error-text{color:var(--danger);font-size:.88rem;margin:0}.spinner{width:34px;height:34px;border:3px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.add-row{display:flex;gap:8px}.add-row input[type=text]{flex:1}.add-row select{padding:0 10px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text);font-size:.9rem}.add-btn{width:48px;border:none;border-radius:10px;background:var(--green);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer}.recurring-toggle{flex-direction:row;align-items:center;gap:8px;font-size:.85rem;color:var(--text)}.recurring-toggle input{width:18px;height:18px}.need-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.need-item{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.need-main{flex:1;display:flex;flex-direction:column}.need-text{font-weight:500}.need-note{font-size:.8rem}.chip{font-size:.7rem;padding:5px 9px;border-radius:999px;border:1px solid var(--border);background:none;color:var(--muted);cursor:pointer;white-space:nowrap}.chip-on{background:var(--green);color:#fff;border-color:var(--green)}.row-del{border:none;background:none;color:var(--muted);font-size:1.1rem;cursor:pointer;padding:4px 6px}.plan-card{display:flex;flex-direction:column;gap:8px}.plan-markets{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.market-badge{background:var(--green);color:#fff;padding:4px 12px;border-radius:999px;font-weight:600;font-size:.9rem}.plan-total{margin-left:auto;font-weight:700}.plan-reasoning{margin:0;font-size:.92rem;line-height:1.4}.list-screen{gap:12px}.sum-bar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:baseline;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.sum-bar strong{font-size:1.1rem;color:var(--green)}.market-group{display:flex;flex-direction:column;gap:6px}.market-heading{margin:8px 0 2px;font-size:1.05rem}.cat-group{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.cat-heading{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-top:6px}.done-group{opacity:.55}.item-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 14px;cursor:pointer;color:var(--text)}.item-row.checked .item-name{text-decoration:line-through}.check-box{flex:none;width:24px;height:24px;border:2px solid var(--border);border-radius:7px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.9rem}.check-box.on{background:var(--green);border-color:var(--green)}.item-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.item-name{font-weight:500}.item-sub{font-size:.78rem}.item-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}.badge{font-size:.68rem;padding:2px 7px;border-radius:6px;font-weight:600}.badge-plus{background:#ffe08a;color:#6b5200}.badge-date{background:#d7e9ff;color:#1c4b7a}.badge-veg{background:#d6f0d8;color:#1f5d28;margin-left:8px;vertical-align:middle}.item-price{flex:none;font-weight:600;white-space:nowrap}.recipe-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden}.recipe-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:none;border:none;padding:14px 16px;text-align:left;cursor:pointer;color:var(--text)}.recipe-title{font-weight:600;font-size:1rem}.recipe-meta{font-size:.82rem;margin-top:2px}.chevron{color:var(--muted)}.recipe-body{padding:0 16px 16px;border-top:1px solid var(--border)}.recipe-body h4{margin:14px 0 6px;font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.recipe-desc{margin:12px 0 0;font-size:.92rem}.ingredient-list{list-style:none;margin:0;padding:0}.ingredient-list li{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--border);font-size:.92rem}.ingredient-list li.on-list span:first-child:before{content:"✓ ";color:var(--green);font-weight:700}.step-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:.92rem;line-height:1.4}
