@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f7f6f2;--surface:#fff;--surface-sunken:#f1efe9;--text:#1c211e;--text-muted:#6b736e;--text-faint:#9aa19c;--accent:#2f6f4e;--accent-strong:#245a3f;--accent-soft:#e4efe8;--accent-contrast:#fff;--danger:#a63a2f;--danger-soft:#fbeae7;--sale:#b4571a;--sale-soft:#fdf0e3;--border:#e3e0d8;--border-strong:#cfcbc0;--radius-sm:8px;--radius:12px;--radius-lg:18px;--shadow-sm:0 1px 2px #1c211e0f;--shadow:0 4px 16px #1c211e14;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--font:"Inter Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--tabbar-height:62px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.45}h1,h2,h3,p{margin:0}button{font:inherit;cursor:pointer}input,select{font:inherit;color:inherit}.app{flex-direction:column;min-height:100%;display:flex}.topbar{z-index:20;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.topbar__brand{align-items:center;gap:var(--space-2);letter-spacing:-.01em;font-size:17px;font-weight:650;display:flex}.topbar__mark{background:var(--accent);width:28px;height:28px;color:var(--accent-contrast);border-radius:9px;place-items:center;font-size:15px;display:grid}.topbar__nav{gap:var(--space-1);display:none}.topbar__user{align-items:center;gap:var(--space-3);color:var(--text-muted);font-size:14px;display:flex}.main{width:100%;max-width:720px;padding:var(--space-4) var(--space-4) calc(var(--tabbar-height) + var(--space-5));flex:1;margin:0 auto}.page-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.page-head h1{letter-spacing:-.02em;font-size:22px;font-weight:650}.page-head__count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:14px}.tabbar{z-index:20;height:var(--tabbar-height);padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:550;text-decoration:none;display:flex}.tabbar a.active{color:var(--accent)}.tabbar__icon{font-size:19px;line-height:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.list{flex-direction:column;display:flex;overflow:hidden}.list-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);display:flex}.list-row:last-child{border-bottom:none}.list-row__body{flex:1;min-width:0}.list-row__title{overflow-wrap:anywhere;font-weight:550}.list-row__meta{color:var(--text-muted);font-size:13px}.list-row--done .list-row__title{color:var(--text-faint);text-decoration:line-through}.tick{background:var(--surface);border:2px solid var(--border-strong);color:#0000;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;padding:0;font-size:14px;line-height:1;transition:background .12s,border-color .12s;display:grid}.tick:hover{border-color:var(--accent)}.tick--on{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn{justify-content:center;align-items:center;gap:var(--space-2);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);white-space:nowrap;padding:10px 16px;font-size:15px;font-weight:550;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-sunken)}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn--primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn--ghost{color:var(--text-muted);background:0 0;border-color:#0000;padding:8px 10px}.btn--ghost:hover{background:var(--surface-sunken);color:var(--text)}.btn--danger{color:var(--danger)}.btn--danger:hover{background:var(--danger-soft)}.btn--small{padding:6px 10px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--text-faint);background:0 0;border:1px solid #0000;flex:none;place-items:center;padding:0;font-size:17px;line-height:1;display:grid}.icon-btn:hover{background:var(--surface-sunken);color:var(--text)}.icon-btn--danger:hover{background:var(--danger-soft);color:var(--danger)}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--text-muted);font-size:13px;font-weight:550}.input{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:none;width:100%;padding:11px 13px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input--plain{border-color:var(--border)}.add-bar{gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.add-bar .input{flex:1}.qty{background:var(--surface-sunken);border-radius:var(--radius-sm);flex:none;align-items:center;gap:2px;padding:2px;display:flex}.qty button{width:28px;height:28px;color:var(--text-muted);background:0 0;border:none;border-radius:6px;padding:0;font-size:16px;line-height:1}.qty button:hover:not(:disabled){background:var(--surface);color:var(--text)}.qty button:disabled{opacity:.35;cursor:not-allowed}.qty span{text-align:center;font-variant-numeric:tabular-nums;min-width:20px;font-size:14px;font-weight:600}@media (width<=460px){.add-bar .btn__text{display:none}.add-bar .btn{padding:10px 14px}}.shop-picker{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-3);background:var(--accent-soft);border-radius:var(--radius);color:var(--accent-strong);border:1px solid #0000;font-size:14px;display:flex}.shop-picker select{min-width:0;color:var(--accent-strong);background:0 0;border:1px solid #0000;border-radius:6px;flex:1;padding:4px 6px;font-weight:600}.shop-picker select:hover{border-color:#2f6f4e40}.badge{background:var(--surface-sunken);color:var(--text-muted);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.badge--archived{background:var(--surface-sunken);color:var(--text-faint)}.empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-muted)}.empty__icon{opacity:.5;font-size:30px}.empty p{margin-top:var(--space-2)}.notice{border-radius:var(--radius-sm);padding:10px 13px;font-size:14px}.notice--error{background:var(--danger-soft);color:var(--danger)}.section-label{margin:var(--space-5) 0 var(--space-2);color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:650}.section-label:first-child{margin-top:0}.toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.switch{align-items:center;gap:var(--space-2);color:var(--text-muted);cursor:pointer;font-size:14px;display:inline-flex}.login{min-height:100%;padding:var(--space-4);place-items:center;display:grid}.login__card{width:100%;max-width:360px;padding:var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.login__brand{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);display:flex}.login__brand .topbar__mark{border-radius:11px;width:36px;height:36px;font-size:19px}.login__title{letter-spacing:-.01em;font-size:19px;font-weight:650}.login__sub{color:var(--text-muted);font-size:13px}.login form{gap:var(--space-4);flex-direction:column;display:flex}.login .btn{width:100%;padding:12px}@media (width>=700px){.topbar{padding:var(--space-3) var(--space-5)}.topbar__nav{display:flex}.topbar__nav a{border-radius:var(--radius-sm);color:var(--text-muted);padding:7px 13px;font-size:14px;font-weight:550;text-decoration:none}.topbar__nav a:hover{background:var(--surface-sunken);color:var(--text)}.topbar__nav a.active{background:var(--accent-soft);color:var(--accent-strong)}.tabbar{display:none}.main{padding-bottom:var(--space-6)}}.backlink{margin-bottom:var(--space-2);color:var(--text-muted);font-size:14px;text-decoration:none;display:inline-block}.backlink:before{content:"←";margin-right:6px}.backlink:hover{color:var(--text)}.rowlink{color:inherit;text-decoration:none}.rowlink:hover{color:var(--accent);text-decoration:underline}.prices{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.price-card{padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);position:relative}.price-card--best{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.price-card__head{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.price-card__shop{color:var(--text-muted);font-size:13px;font-weight:600}.price-card__amount{align-items:baseline;gap:var(--space-2);display:flex}.price-card__now{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:680}.price-card__was{color:var(--text-faint);font-size:14px;text-decoration:line-through}.price-card__unit{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:13px}.price-card__best{margin-top:var(--space-2);color:var(--accent);font-size:12px;font-weight:650}.badge--sale{background:var(--sale-soft);color:var(--sale)}.shop-block{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.shop-block:last-child{border-bottom:none}.shop-block__head{align-items:center;gap:var(--space-3);display:flex}.shop-block__form{gap:var(--space-2);margin-top:var(--space-3);flex-direction:column;display:flex}.shop-block__row{align-items:center;gap:var(--space-2);flex-flow:wrap;display:flex}.shop-block__row .input{flex:90px;min-width:0}.shop-block__row .btn{flex:none}.shop-block__price .input{flex:0 110px}.shop-block__price .switch{flex:none}.shop-block__price .btn{margin-left:auto}.suggesties{gap:var(--space-1);margin-top:var(--space-2);flex-direction:column;display:flex}.suggestie{align-items:center;gap:var(--space-3);background:var(--surface-sunken);border-radius:var(--radius-sm);text-align:left;border:1px solid #0000;width:100%;padding:8px 10px;display:flex}.suggestie:hover{border-color:var(--accent);background:var(--accent-soft)}.suggestie__naam{overflow-wrap:anywhere;flex:1;min-width:0;font-size:14px}.suggestie__inhoud{color:var(--text-muted);font-size:12px}.suggestie__prijs{font-variant-numeric:tabular-nums;flex:none;font-size:14px;font-weight:650}.suggestie__prijs .was{color:var(--text-faint);margin-right:5px;font-weight:500;text-decoration:line-through}.bron{margin-top:var(--space-4);color:var(--text-faint);text-align:center;font-size:12px}.bron a{color:inherit}.bodem{align-items:baseline;gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-sunken);border-radius:var(--radius);flex-wrap:wrap;font-size:14px;display:flex}.bodem__label{color:var(--text-muted);font-weight:600}.bodem__bedrag{font-variant-numeric:tabular-nums;font-weight:680}.bodem__waar{color:var(--text-muted)}.verloop{flex-direction:column;display:flex}.verloop__regel{align-items:baseline;gap:var(--space-3);padding:9px var(--space-4);border-bottom:1px solid var(--border);font-size:14px;display:flex}.verloop__regel:last-child{border-bottom:none}.verloop__regel--laagste{background:var(--accent-soft)}.verloop__datum{width:84px;color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none;font-size:13px}.verloop__winkel{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.verloop__prijs{font-variant-numeric:tabular-nums;flex:none}.verloop__prijs .was{color:var(--text-faint);margin-right:5px;text-decoration:line-through}.verloop__eenheid{width:92px;color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums;flex:none;font-size:13px}@media (width<=520px){.verloop__regel{flex-wrap:wrap;row-gap:2px}.verloop__datum{width:66px}.verloop__eenheid{text-align:left;flex:100%;width:auto;padding-left:66px}}.scanner{z-index:50;color:#fff;background:#10130f;flex-direction:column;display:flex;position:fixed;inset:0}.scanner__balk{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);padding-top:calc(var(--space-3) + env(safe-area-inset-top));font-size:14px;display:flex}.scanner__balk .btn{color:#fff;background:#ffffff1f;border-color:#0000}.scanner__balk .btn:hover{background:#fff3}.scanner__beeld{flex:1;position:relative;overflow:hidden}.scanner__beeld video{object-fit:cover;width:100%;height:100%}.scanner__kader{border-radius:var(--radius);border:2px solid #ffffffd9;width:min(78vw,320px);height:130px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #00000073}.scanner__fout{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-5);text-align:center;flex-direction:column;display:flex;position:absolute;inset:0}.scan-knop{flex:none;padding:10px 12px}
