:root{--bg: #0b1020;--bg-2: #121a2e;--kaart: #151e34;--kaart-2: #1c2742;--lijn: #26324f;--tekst: #eef1f8;--zacht: #9aa5bf;--vaag: #6b7593;--oranje: #f28a3c;--oranje-diep: #c2410c;--oranje-zacht: rgba(242, 138, 60, .14);--groen: #34c27a;--groen-zacht: rgba(52, 194, 122, .14);--blauw: #5b8cff;--rood: #ef5b5b;--radius: 16px;--veilig-boven: env(safe-area-inset-top, 0px);--veilig-onder: env(safe-area-inset-bottom, 0px);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--tekst);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Inter,Roboto,sans-serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--oranje)}.app{max-width:720px;margin:0 auto;min-height:100vh;padding:calc(var(--veilig-boven) + 12px) 16px calc(var(--veilig-onder) + 96px)}.kop{display:flex;align-items:center;gap:12px;margin:4px 0 18px}.kop h1{font-size:24px;margin:0;flex:1;letter-spacing:-.01em}.kop .klein-icoon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:18px}.terug{width:40px;height:40px;border-radius:50%;border:0;background:var(--kaart-2);color:var(--tekst);font-size:20px;display:grid;place-items:center}.logo{width:42px;height:42px;border-radius:12px;background:#fff;color:#0b1020;font-weight:800;display:grid;place-items:center;font-size:20px}.avatar{width:42px;height:42px;border-radius:50%;border:0;background:var(--kaart-2);color:var(--tekst);font-weight:700}.tabs{display:flex;gap:22px;border-bottom:1px solid var(--lijn);margin:0 -16px 16px;padding:0 16px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{background:none;border:0;padding:10px 0 12px;color:var(--zacht);font-weight:600;font-size:17px;white-space:nowrap;border-bottom:3px solid transparent}.tab.actief{color:var(--tekst);border-bottom-color:var(--tekst)}.sectie-titel{text-transform:uppercase;letter-spacing:.08em;font-size:13px;color:var(--zacht);font-weight:700;margin:22px 0 12px}.tegels{display:grid;grid-template-columns:repeat(4,1fr);gap:18px 8px}@media (max-width: 380px){.tegels{grid-template-columns:repeat(3,1fr)}}.tegel{background:none;border:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--tekst);font-size:14px;text-align:center}.tegel .icoon{width:68px;height:68px;border-radius:20px;display:grid;place-items:center;font-size:32px;box-shadow:0 6px 18px #00000059}.tegel.uit{opacity:.45;cursor:default}.tegel small{color:var(--vaag);font-size:11px;margin-top:-6px}.grad-oranje{background:linear-gradient(160deg,#f59a52,#c8501a)}.grad-groen{background:linear-gradient(160deg,#4fbf7a,#1f8a4c)}.grad-blauw{background:linear-gradient(160deg,#6a95ff,#2c56d6)}.grad-grijs{background:linear-gradient(160deg,#6b7590,#3c455c)}.grad-paars{background:linear-gradient(160deg,#a77bff,#6b3fd1)}.grad-rood{background:linear-gradient(160deg,#f87171,#b91c1c)}.grad-roze{background:linear-gradient(160deg,#f472b6,#be185d)}.filter-label{text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:var(--zacht);font-weight:700;margin:14px 0 8px}.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px 2px}.chips::-webkit-scrollbar{display:none}.chips.wrap{flex-wrap:wrap;overflow:visible;margin:0;padding:0}.chip{flex:none;border:1px solid var(--lijn);background:var(--bg-2);color:var(--tekst);border-radius:999px;padding:8px 14px;font-size:15px;white-space:nowrap}.chip .aantal{color:var(--zacht);margin-left:4px;font-size:13px}.chip.actief{background:var(--oranje);border-color:var(--oranje);color:#1a0d03;font-weight:600}.chip.actief .aantal{color:#1a0d03b3}.zoek{width:100%;border:0;background:var(--kaart-2);border-radius:999px;padding:13px 18px 13px 44px;font-size:16px;outline:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%239aa5bf' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='9' cy='9' r='6'/%3E%3Cpath d='m14 14 4 4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:16px center}.zoek::placeholder{color:var(--vaag)}.resultaten{color:var(--zacht);margin:18px 0 10px;font-size:15px}.kaart{background:var(--kaart);border:1px solid var(--lijn);border-radius:var(--radius);padding:16px;margin-bottom:12px}.recept-kaart{display:block;width:100%;text-align:left;color:var(--tekst)}.recept-kaart .boven{display:flex;gap:10px;align-items:flex-start}.recept-kaart h3{margin:0;font-size:18px;flex:1;line-height:1.3}.recept-kaart .foto{width:64px;height:64px;border-radius:12px;object-fit:cover;flex:none;background:var(--kaart-2)}.meta{color:var(--zacht);font-size:14px;margin-top:6px}.badge{display:inline-block;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:600;white-space:nowrap}.badge.cat{background:#c2410c59;color:#ffb38a}.badge.soort{background:#5b8cff2e;color:#a9c1ff}.badge.label{background:var(--kaart-2);color:var(--zacht);font-weight:500}.badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.knoppen-rij{display:flex;gap:10px;margin-top:12px}.rond{width:44px;height:44px;border-radius:50%;border:1px solid var(--lijn);background:var(--bg-2);display:grid;place-items:center;font-size:18px;color:var(--zacht)}.rond.aan{background:var(--oranje-zacht);border-color:var(--oranje);color:var(--oranje)}.rond.aan.groen{background:var(--groen-zacht);border-color:var(--groen);color:var(--groen)}.knop{border:0;border-radius:12px;padding:13px 18px;font-weight:600;font-size:16px;background:var(--oranje);color:#1a0d03;display:inline-flex;align-items:center;justify-content:center;gap:8px}.knop:disabled{opacity:.5}.knop.breed{width:100%}.knop.tweede{background:var(--kaart-2);color:var(--tekst);border:1px solid var(--lijn)}.knop.gevaar{background:transparent;color:var(--rood);border:1px solid rgba(239,91,91,.4)}.knop.klein{padding:8px 14px;font-size:14px;border-radius:10px}.veld{margin-bottom:16px}.veld>label:not(.upload-vak),.veld-label{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--zacht);font-weight:700;margin-bottom:7px}.invoer,textarea.invoer,select.invoer{width:100%;background:var(--bg-2);border:1px solid var(--lijn);border-radius:12px;padding:12px 14px;font-size:16px;outline:none}.invoer:focus{border-color:var(--oranje)}.invoer.auto{border-color:#34c27ab3;background-color:#34c27a14}textarea.invoer{min-height:120px;resize:vertical;line-height:1.5}.hulp{color:var(--vaag);font-size:13px;margin-top:6px}.twee-kolom{display:grid;grid-template-columns:1fr 1fr;gap:12px}.code-invoer{font-size:28px;letter-spacing:10px;text-align:center;font-variant-numeric:tabular-nums}.opmaak{border:1px solid var(--lijn);border-radius:12px;background:var(--bg-2);overflow:hidden}.opmaak:focus-within{border-color:var(--oranje)}.opmaak-balk{display:flex;gap:6px;padding:8px;border-bottom:1px solid var(--lijn);flex-wrap:wrap;background:var(--kaart)}.opmaak-knop{border:1px solid var(--lijn);background:var(--bg-2);color:var(--tekst);border-radius:8px;padding:6px 11px;font-size:14px;min-width:38px}.opmaak-knop.aan{background:var(--oranje-zacht);border-color:var(--oranje);color:var(--oranje)}.opmaak-vak{min-height:180px;padding:12px 14px;outline:none;font-size:16px}.opmaak-vak:empty:before{content:attr(data-placeholder);color:var(--vaag)}.rijk p{margin:0 0 10px}.rijk h3{font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--oranje);margin:16px 0 6px}.rijk h3:first-child{margin-top:0}.rijk ul,.rijk ol{margin:0 0 10px;padding-left:24px}.rijk li{margin:4px 0}.rijk ol li::marker{color:var(--oranje);font-weight:700}.ingr-kop{list-style:none;margin:14px 0 4px -22px!important;font-weight:700;color:var(--oranje);font-size:14px;text-transform:uppercase;letter-spacing:.06em}.ingr-kop:first-child{margin-top:0!important}.voorstel-rij{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--lijn);cursor:pointer}.voorstel-rij:last-of-type{border-bottom:0}.voorstel-rij input{width:20px;height:20px;accent-color:var(--oranje);flex:none}.voorstel-rij span{flex:1}.voorstel-rij small{color:var(--vaag);font-size:12px}.voorstel-rij.al span{color:var(--zacht)}.detail h2{font-size:26px;line-height:1.2;margin:0 0 10px;letter-spacing:-.01em}.detail .hero{width:100%;max-height:300px;object-fit:cover;border-radius:var(--radius);margin-bottom:16px}.kcal-kaart .groot{font-size:28px;font-weight:800}.porties{display:flex;align-items:center;gap:14px;background:var(--kaart);border:1px solid var(--lijn);border-radius:var(--radius);padding:10px 16px;margin:10px 0 14px}.porties span.label{flex:1;font-weight:600}.porties .getal{font-size:22px;font-weight:700;min-width:32px;text-align:center}.ingredienten{padding-left:22px;margin:0}.ingredienten li{margin:7px 0}.bereiding{white-space:pre-wrap}.kop-rij{display:flex;align-items:center;justify-content:space-between;margin:22px 0 8px}.kop-rij h4,.detail h4{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:13px;color:var(--zacht)}.item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--lijn)}.item:last-child{border-bottom:0}.vink{width:26px;height:26px;border-radius:8px;border:2px solid var(--lijn);background:none;flex:none;display:grid;place-items:center;color:#08130c;font-size:15px}.vink.aan{background:var(--groen);border-color:var(--groen)}.item .naam{flex:1}.item.af .naam{text-decoration:line-through;color:var(--vaag)}.item .bron{color:var(--vaag);font-size:12px;display:block}.weg{background:none;border:0;color:var(--vaag);font-size:20px;padding:4px 8px}.leeg{text-align:center;color:var(--zacht);padding:40px 12px}.leeg .groot{font-size:40px;margin-bottom:8px}.fout{background:#ef5b5b1f;border:1px solid rgba(239,91,91,.4);color:#ffb4b4;border-radius:12px;padding:12px 14px;margin:12px 0}.ok{background:var(--groen-zacht);border:1px solid rgba(52,194,122,.4);color:#a6f0c7;border-radius:12px;padding:12px 14px;margin:12px 0}.laden{color:var(--zacht);padding:30px 0;text-align:center}.zwevend{position:fixed;right:max(16px,calc(50% - 344px));bottom:calc(var(--veilig-onder) + 20px);width:58px;height:58px;border-radius:50%;border:0;background:var(--oranje);color:#1a0d03;font-size:30px;box-shadow:0 10px 24px #00000073;display:grid;place-items:center}.melding{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--veilig-onder) + 90px);background:#f4f6fb;color:#0b1020;padding:10px 18px;border-radius:999px;font-weight:600;box-shadow:0 8px 20px #0006;z-index:50;max-width:calc(100% - 32px);text-align:center;pointer-events:none}.login{min-height:calc(100vh - 80px);display:flex;flex-direction:column;justify-content:center;max-width:400px;margin:0 auto}.login .logo{width:64px;height:64px;font-size:32px;border-radius:18px;margin-bottom:18px}.login h1{margin:0 0 6px;font-size:28px}.login p{color:var(--zacht);margin:0 0 22px}.link-knop{background:none;border:0;color:var(--zacht);text-decoration:underline;padding:8px 0}.upload-vak{border:1.5px dashed var(--lijn);border-radius:12px;padding:14px;display:flex;align-items:center;gap:12px;color:var(--zacht);background:var(--bg-2)}.upload-vak input{display:none}.upload-vak img{width:56px;height:56px;object-fit:cover;border-radius:10px}.tabel{width:100%;border-collapse:collapse}.tabel td{padding:10px 0;border-bottom:1px solid var(--lijn);vertical-align:middle}.tabel td:last-child{text-align:right}.export-keuze{display:grid;gap:10px}.export-keuze .knop{justify-content:flex-start;padding:16px}.export-keuze .knop small{display:block;font-weight:400;color:var(--zacht);font-size:13px}.landen{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.land-tegel{background:var(--kaart);border:1px solid var(--lijn);border-radius:var(--radius);padding:16px;text-align:left;color:var(--tekst);display:flex;flex-direction:column}.land-naam{font-weight:700;font-size:17px}.land-kop{font-size:22px;margin:26px 0 4px}.stad-kop{text-transform:uppercase;letter-spacing:.08em;font-size:13px;color:var(--blauw);font-weight:700;margin:18px 0 8px}.plek-kaart{padding:14px 16px}.plek-kaart h3{margin:0;font-size:17px;line-height:1.3}.plek-boven{display:flex;gap:12px;align-items:flex-start}.plek-icoon{font-size:24px;line-height:1.2}.plek-notitie{color:var(--zacht);font-size:14px;margin-top:4px;font-style:italic}.plek-kaart .knoppen-rij{margin-top:10px}.plek-kaart .rond{width:38px;height:38px;font-size:16px}.regio-links{margin-top:14px}.regio-links .item{padding:8px 0}.sterren{display:inline-flex;gap:2px}.sterren button{background:none;border:0;font-size:28px;color:var(--lijn);padding:0 2px;line-height:1}.sterren button.aan{color:#f5b301}.sterren-tonen{color:#f5b301;letter-spacing:1px;font-size:14px}.sterren-tonen .leeg-ster{color:var(--lijn)}.kluis-slot{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:380px;margin:30px auto 0}.kluis-slot .slot-icoon{font-size:56px}.kluis-slot h2{margin:8px 0 22px}.kluis-slot .veld{text-align:left}.kluis-regel{display:flex;align-items:center;gap:10px;margin-top:10px}.kluis-regel .meta{width:72px}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;flex:1;font-size:16px;letter-spacing:.04em}.groot-pin{font-size:22px;letter-spacing:.25em}.kaarten-raster{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.klantenkaart{aspect-ratio:1.586;border:0;border-radius:14px;padding:14px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 6px 16px #00000059}.kk-winkel{font-weight:800;font-size:18px;line-height:1.2;word-break:break-word}.kk-onder{font-size:12px;opacity:.85}.kassa{background:#fff;border-radius:var(--radius);overflow:hidden;text-align:center;padding-bottom:14px}.kassa-kop{padding:12px 16px;font-weight:800;font-size:18px;text-align:left}.kassa-code{display:block;margin:18px auto 8px;max-width:calc(100% - 24px);height:auto;image-rendering:pixelated}.kassa-code.tweeD{width:70%;max-width:280px}.kassa-nummer{color:#111;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:18px;letter-spacing:.06em}.scanner{position:relative;margin-bottom:18px}.scanner video{width:100%;border-radius:var(--radius);background:#000;display:block;max-height:60vh;object-fit:cover}.scan-kader{position:absolute;left:10%;right:10%;top:30%;height:28%;border:3px solid var(--oranje);border-radius:12px;pointer-events:none}.scanner .knop{margin-top:10px}.kleur-bol{width:34px;height:34px;border-radius:50%;border:3px solid transparent;padding:0}.kleur-bol.aan{border-color:#fff;box-shadow:0 0 0 2px var(--oranje)}.vink-rij{display:flex;align-items:center;gap:10px;padding:8px 0}.vink-rij input{width:20px;height:20px;accent-color:var(--oranje)}.temp-rij{padding:14px 16px}.temp-boven{display:flex;align-items:center;gap:12px}.temp-product{font-weight:700;font-size:18px}.temp-mijn{display:flex;flex-direction:column;align-items:center;background:var(--oranje-zacht);border:1px solid var(--oranje);border-radius:14px;padding:6px 12px;min-width:76px}.temp-mijn span{font-size:30px;font-weight:800;color:var(--oranje);line-height:1.1}.temp-mijn small{font-size:11px;color:var(--zacht);text-transform:uppercase;letter-spacing:.06em}.temp-tip{margin-top:10px;color:var(--zacht);font-size:14px}#afdruk{display:none}@media print{@page{size:A4;margin:16mm 14mm}html,body{background:#fff!important;color:#1b1b1b}.app,.melding,.zwevend{display:none!important}#afdruk{display:block;font-family:Georgia,Times New Roman,serif;color:#1b1b1b}#afdruk .boek-titel{text-align:center;padding-top:60mm;page-break-after:always}#afdruk .boek-titel h1{font-size:40pt;margin:0 0 6mm}#afdruk .boek-titel p{font-size:13pt;color:#666}#afdruk .inhoud{page-break-after:always}#afdruk .inhoud h2{font-size:20pt}#afdruk .inhoud li{font-size:11pt;margin:2mm 0}#afdruk .recept{page-break-before:always}#afdruk .recept:first-of-type{page-break-before:auto}#afdruk .recept h2{font-size:22pt;margin:0 0 2mm;color:#9a3412}#afdruk .recept .sub{font-family:-apple-system,Segoe UI,sans-serif;font-size:9.5pt;color:#666;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5mm}#afdruk .recept img{max-width:100%;max-height:80mm;object-fit:cover;border-radius:3mm;margin-bottom:5mm}#afdruk .recept .kolommen{display:grid;grid-template-columns:38% 1fr;gap:8mm}#afdruk .recept h3{font-family:-apple-system,Segoe UI,sans-serif;font-size:10pt;text-transform:uppercase;letter-spacing:.1em;color:#9a3412;border-bottom:.4mm solid #e7c6b0;padding-bottom:1.5mm}#afdruk .recept ul{padding-left:5mm;font-size:11pt}#afdruk .recept li{margin:1.5mm 0}#afdruk .recept .tekst{font-size:11pt;line-height:1.55}#afdruk .recept .tekst p{margin:0 0 2.5mm}#afdruk .recept .tekst h4,#afdruk .recept .tekst h3{font-family:-apple-system,Segoe UI,sans-serif;font-size:9pt;text-transform:uppercase;letter-spacing:.08em;color:#9a3412;border:0;margin:4mm 0 1.5mm;padding:0}#afdruk .recept .tekst ol,#afdruk .recept .tekst ul{padding-left:5mm;margin:0 0 2.5mm}#afdruk .recept li.kop{list-style:none;margin:3.5mm 0 1mm -5mm;font-family:-apple-system,Segoe UI,sans-serif;font-size:9pt;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#9a3412}#afdruk .recept .beschrijving{font-style:italic;font-size:11.5pt;color:#444;margin-bottom:5mm}#afdruk .recept .voet{margin-top:6mm;font-size:9pt;color:#888}#afdruk .rg-titel{text-align:center;padding-top:60mm;page-break-after:always}#afdruk .rg-titel h1{font-size:36pt;margin:0 0 6mm}#afdruk .rg-titel p{color:#666}#afdruk .rg-land{page-break-before:always}#afdruk .rg-land:first-of-type{page-break-before:auto}#afdruk .rg-land h2{font-size:24pt;color:#1e3a8a;margin:0 0 4mm}#afdruk .rg-land h3{font-family:-apple-system,Segoe UI,sans-serif;font-size:10pt;text-transform:uppercase;letter-spacing:.1em;color:#1e3a8a;border-bottom:.4mm solid #c7d2fe;padding-bottom:1.5mm;margin:6mm 0 2mm}#afdruk .rg-land ul{padding-left:5mm;margin:0;columns:2;column-gap:8mm}#afdruk .rg-land li{font-size:10.5pt;margin:1.5mm 0;break-inside:avoid}#afdruk .rg-extra{color:#777;font-size:8.5pt;font-family:-apple-system,Segoe UI,sans-serif}#afdruk .rg-notitie{font-style:italic;color:#555;font-size:9.5pt}}
