:root{--bg:#f6f7f5;--kaart:#ffffff;--tekst:#1c1f1a;--zacht:#6b7268;--lijn:#e3e6e0;--groen:#16a34a;--groen-zacht:#dcfce7;--rood:#dc2626}@media (prefers-color-scheme:dark){:root{--bg:#121411;--kaart:#1c1f1a;--tekst:#eef1ec;--zacht:#9aa296;--lijn:#2c312a;--groen-zacht:#14361f}}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--tekst)}body{font:16px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;-webkit-tap-highlight-color:transparent}main{max-width:560px;margin:0 auto;padding:16px 16px calc(96px + env(safe-area-inset-bottom))}button,input,select{font:inherit;color:inherit}header{display:flex;align-items:baseline;justify-content:space-between;margin:8px 0 16px}h1{font-size:1.6rem;margin:0}.teller{color:var(--zacht);font-size:.95rem}.offline{background:#fef3c7;color:#92400e;padding:8px 12px;border-radius:10px;font-size:.9rem}.toevoegen{background:var(--kaart);border:1px solid var(--lijn);border-radius:14px;padding:12px;display:grid;grid-gap:8px;gap:8px;margin-bottom:20px}.toevoegen input,.toevoegen select{width:100%;padding:12px;border:1px solid var(--lijn);border-radius:10px;background:var(--bg)}.rij{display:grid;grid-template-columns:80px 1fr auto;grid-gap:8px;gap:8px}.primair,.toevoegen button{background:var(--groen);color:#fff;border:0;border-radius:10px;padding:12px 16px;font-weight:600;cursor:pointer}.primair{width:100%;margin-top:8px}.primair:disabled{opacity:.5}section{margin-bottom:20px}h2{font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--zacht);margin:0 0 8px;display:flex;justify-content:space-between;align-items:center}ul{list-style:none;margin:0;padding:0;background:var(--kaart);border:1px solid var(--lijn);border-radius:14px;overflow:hidden}li{display:flex;align-items:center;border-bottom:1px solid var(--lijn)}li:last-child{border-bottom:0}.item{flex:1 1;display:flex;align-items:center;gap:12px;padding:14px 12px;background:none;border:0;text-align:left;cursor:pointer;min-height:52px}.vakje{width:22px;height:22px;border:2px solid var(--lijn);border-radius:6px;flex:none;display:grid;place-items:center;font-size:.8rem}.klaar .vakje{background:var(--groen);border-color:var(--groen);color:#fff}.klaar .naam{text-decoration:line-through;color:var(--zacht)}.naam{flex:1 1}.qty{font-size:.9rem}.klein,.qty{color:var(--zacht)}.klein{background:none;border:0;font-size:1.2rem;padding:14px 12px;cursor:pointer}.klein:hover{color:var(--tekst)}.link{background:none;border:0;color:var(--rood);text-transform:none;letter-spacing:0;font-size:.85rem;cursor:pointer}.afgevinkt ul{opacity:.85}.leeg{color:var(--zacht);text-align:center;padding:16px 0}.vast{background:var(--groen-zacht);border-radius:14px;padding:12px}.vast input[type=checkbox]{width:20px;height:20px;accent-color:var(--groen)}footer{position:fixed;left:0;right:0;bottom:0;display:flex;gap:8px;justify-content:center;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--kaart);border-top:1px solid var(--lijn)}footer button{flex:1 1;max-width:260px;padding:12px;border-radius:10px;border:1px solid var(--lijn);background:var(--bg);font-weight:600;cursor:pointer}.login{max-width:360px;padding-top:20vh;text-align:center}.login form{display:grid;grid-gap:10px;gap:10px;margin-top:20px}.login input{padding:14px;border:1px solid var(--lijn);border-radius:10px;background:var(--kaart)}.login button{padding:14px;border:0;border-radius:10px;background:var(--groen);color:#fff;font-weight:600}.fout{color:var(--rood)}