:root{--accent: #e07a5f;--accent-donker: #c9634a;--accent-tint: #fbeee9;--tekst: #3d405b;--groen: #81b29a;--beige: #f0ebe3;--beige-licht: #f4f1ed;--grijs: #6b7280;--grijs-licht: #9ca3af;--lijn: #e5e7eb;--rood: #dc2626;--oranje-warn: #d97706;--oranje-warn-tint: #fdf3e0;--grijs-tint: #f4f5f7;--schema4: var(--blauw-info);--schema4-donker: #1e40af;--schema4-tint: #eef4ff;--schema4-rand: #b9cdf7;--schema6: #7c3aed;--schema6-donker: #5b21b6;--schema6-tint: #f4effc;--schema6-rand: #d9c7f7;--blauw-info: #2563eb;--wit: #ffffff;--cta-nav: var(--accent);--cta-nav-donker: var(--accent-donker);--cta-actie: #3a8580;--cta-actie-donker: #2e6b67;--cta-gevaar: var(--rood);--cta-gevaar-donker: #b91c1c}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--tekst);background:var(--wit);line-height:1.5}h1,h2,h3,h4{color:var(--tekst);line-height:1.25}a{color:var(--accent-donker)}.app-shell{display:flex;min-height:100vh}.app-sidebar{width:280px;flex-shrink:0;background:var(--beige-licht);border-right:1px solid var(--lijn);padding:1rem;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@media(min-width:769px){.app-sidebar{height:100vh;height:100dvh;position:sticky;top:0}.sidebar-toggle,.sidebar-overlay{display:none}}.app-main{flex:1;min-width:0;padding:1.25rem 1.75rem;max-width:1400px}.main-header{font-size:1.75rem;font-weight:700;margin:.25rem 0}.sub-header{color:var(--grijs);margin:0 0 .75rem}.kolommen{display:flex;gap:1rem}.kolommen.wrap-mobiel{flex-wrap:wrap}@media(max-width:640px){.kolommen.wrap-mobiel>div{flex:1 1 100%!important}}.metric{background:var(--beige);border-radius:.5rem;padding:.6rem .85rem;margin-bottom:.5rem}.metric-label{margin:0;font-size:.8rem;color:var(--grijs)}.metric-waarde{margin:.1rem 0 0;font-size:1.5rem;font-weight:700}.metric-delta{margin:.1rem 0 0;font-size:.8rem}.metric-delta.positief{color:var(--groen)}.metric-delta.negatief{color:var(--rood)}.metric-delta.neutraal{color:var(--grijs)}.alert{border-radius:.5rem;padding:.65rem .9rem;margin:.4rem 0;border:1px solid transparent}.alert.success{background:#ecf7f1;border-color:var(--groen);color:#2f6b52}.alert.info{background:#eef4ff;border-color:var(--blauw-info);color:#1e3a8a}.alert.warning{background:#fff7ed;border-color:var(--oranje-warn);color:#92400e}.alert.error{background:#fef2f2;border-color:var(--rood);color:#991b1b}.status-regel{display:flex;align-items:baseline;gap:.45rem;font-size:.9rem;margin:.25rem 0 .75rem}.status-regel .status-icoon{font-weight:700}.status-regel.ok .status-icoon{color:var(--groen)}.status-regel.tip .status-icoon{color:var(--blauw-info)}.status-regel.warn .status-icoon{color:var(--oranje-warn)}.status-regel .status-tekst{flex:1;min-width:0}.status-regel .status-seizoen{color:var(--grijs);font-size:.8rem;white-space:nowrap}.expander{border:1px solid var(--lijn);border-radius:.5rem;margin:.4rem 0;background:var(--wit)}.expander>summary{cursor:pointer;padding:.55rem .85rem;font-weight:600;list-style:none;display:flex;align-items:baseline;gap:.5rem}.expander-titel{flex:1;min-width:0}.expander-samenvatting{font-weight:400;font-size:.85rem;color:var(--grijs);white-space:nowrap}.expander>summary::-webkit-details-marker{display:none}.expander>summary:before{content:"▸ ";color:var(--accent)}.expander[open]>summary:before{content:"▾ "}.expander-inhoud{padding:.25rem .85rem .85rem}.tabs-balk{display:flex;gap:.25rem;border-bottom:2px solid var(--lijn);flex-wrap:wrap}.tab-knop{background:none;border:none;padding:.5rem .9rem;cursor:pointer;color:var(--grijs);font-size:.9rem;border-bottom:2px solid transparent;margin-bottom:-2px}.tab-knop.actief{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.btn{background:var(--wit);border:1px solid var(--lijn);border-radius:.5rem;padding:.45rem .9rem;cursor:pointer;color:var(--tekst);font-size:.9rem}.btn:hover:not(:disabled){border-color:var(--accent)}.btn.primary{background:var(--cta-actie);border-color:var(--cta-actie);color:var(--wit)}.btn.primary:hover:not(:disabled){background:var(--cta-actie-donker)}.btn.nav{background:var(--cta-nav);border-color:var(--cta-nav);color:var(--wit)}.btn.nav:hover:not(:disabled){background:var(--cta-nav-donker)}.btn.gevaar{background:var(--cta-gevaar);border-color:var(--cta-gevaar);color:var(--wit)}.btn.gevaar:hover:not(:disabled){background:var(--cta-gevaar-donker)}.btn.vol{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.divider{border:none;border-top:1px solid var(--lijn);margin:1rem 0}.caption{color:var(--grijs);font-size:.8rem;margin:.2rem 0}.spinner-rij{display:flex;align-items:center;gap:.5rem;color:var(--grijs)}.spinner{width:1rem;height:1rem;border:2px solid var(--lijn);border-top-color:var(--accent);border-radius:50%;animation:draai .8s linear infinite}@keyframes draai{to{transform:rotate(360deg)}}.veld{margin-bottom:.6rem}.veld-label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.2rem}.invoer{width:100%;padding:.4rem .6rem;border:1px solid var(--lijn);border-radius:.4rem;font-size:.9rem;font-family:inherit;color:var(--tekst);background:var(--wit)}.invoer:focus{outline:none;border-color:var(--accent)}.invoer::placeholder{color:#9aa0b5;opacity:1;font-style:italic}.checkbox-rij{display:flex;align-items:center;gap:.4rem;cursor:pointer;margin:.3rem 0}.voortgang-buiten{background:var(--lijn);border-radius:.25rem;height:8px;overflow:hidden}.voortgang-binnen{background:var(--groen);height:100%}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;background:var(--beige);font-size:.75rem;font-weight:600}.veld-gewijzigd{background:var(--oranje-warn-tint);border-left:4px solid var(--oranje-warn);border-radius:.4rem;padding:.35rem .6rem;margin-bottom:.5rem}.veld-was{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--oranje-warn)}.veld-herstel{border:1px solid var(--oranje-warn);background:var(--wit);color:var(--oranje-warn);border-radius:.3rem;cursor:pointer;font-size:.85rem;line-height:1;padding:.1rem .35rem}.veld-herstel:hover{background:var(--oranje-warn);color:var(--wit)}.schema-badge{display:inline-block;padding:.05rem .5rem;border-radius:999px;border:1px solid;font-size:.75rem;font-weight:600;white-space:nowrap}.schema-badge.s4{background:var(--schema4-tint);border-color:var(--schema4);color:var(--schema4-donker)}.schema-badge.s6{background:var(--schema6-tint);border-color:var(--schema6);color:var(--schema6-donker)}.veld-kaart{background:var(--grijs-tint);border:1px solid var(--lijn);border-radius:.5rem;padding:.75rem 1rem;margin-bottom:.75rem}.veld-kaart.s4{background:var(--schema4-tint);border-color:var(--schema4-rand)}.veld-kaart.s6{background:var(--schema6-tint);border-color:var(--schema6-rand)}.veld-kaart.accent{background:var(--accent-tint);border-color:var(--accent)}.data-tabel .schema-kol-4{background:var(--schema4-tint)}.data-tabel .schema-kol-6{background:var(--schema6-tint)}.tabel-wrap{overflow-x:auto}.data-tabel{border-collapse:collapse;width:100%;font-size:.85rem}.data-tabel th,.data-tabel td{border:1px solid var(--lijn);padding:.35rem .55rem;text-align:left}.data-tabel th{background:var(--beige-licht);font-weight:600}.stepper{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.75rem}.stepper-stap{flex:1;min-width:90px;text-align:center}.stepper-knop{width:100%;border:1px solid var(--lijn);border-radius:.5rem;padding:.45rem;background:var(--wit);cursor:pointer;font-size:1.1rem}.stepper-knop.bekijkt{border-color:var(--accent);background:#fdf1ec}.stepper-nummer{font-size:.7rem;font-weight:600;color:var(--grijs);margin-right:.3rem;vertical-align:middle}.stepper-knop.complete{color:var(--groen)}.stepper-label{font-size:.7rem;color:var(--grijs);margin-top:.15rem}.login-wrap{max-width:360px;margin:8vh auto;padding:1.5rem;border:1px solid var(--lijn);border-radius:.75rem;background:var(--wit)}.boeking-kalender{max-width:21rem;margin-bottom:.75rem}.boeking-kalender .kalender-kop{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.boeking-kalender .kalender-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.boeking-kalender .kalender-dagkop{text-align:center;font-size:.75rem;color:var(--grijs);padding:.2rem 0}.boeking-kalender .kalender-dag{position:relative;padding:.4rem 0;text-align:center;font:inherit;color:var(--tekst);background:none;border:1px solid transparent;border-radius:6px}.boeking-kalender .kalender-dag:disabled{color:var(--grijs-licht)}.boeking-kalender .kalender-dag:not(:disabled){cursor:pointer}.boeking-kalender .kalender-dag.heeft-bevestigd{background:var(--accent-tint);border-color:var(--accent)}.boeking-kalender .kalender-dag.heeft-optie:after{content:"";position:absolute;left:50%;transform:translate(-50%);bottom:2px;width:5px;height:5px;border-radius:50%;background:var(--oranje-warn)}.boeking-kalender .kalender-dag.geselecteerd{outline:2px solid var(--accent-donker);font-weight:700}.boeking-kalender .kalender-legenda{display:flex;align-items:center;gap:1rem;margin-top:.4rem;font-size:.8rem;color:var(--grijs)}.boeking-kalender .legenda-blok{display:inline-block;width:.9em;height:.9em;border-radius:3px;background:var(--accent-tint);border:1px solid var(--accent);vertical-align:-.1em}.boeking-kalender .legenda-stip{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--oranje-warn);vertical-align:.1em}.data-tabel tr.rij-bewerkt td{background:var(--accent-tint)}.data-tabel tr.rij-vervallen td{text-decoration:line-through;opacity:.55}.tijdlijn-wrap{max-width:100%}.tijdlijn-grid{margin-left:72px}@media(max-width:768px){.app-sidebar{position:fixed;top:0;left:0;height:100vh;height:100dvh;width:85vw;max-width:320px;padding-top:calc(1rem + env(safe-area-inset-top));padding-bottom:calc(1rem + env(safe-area-inset-bottom));z-index:200;transform:translate(-100%);transition:transform .2s ease;box-shadow:2px 0 12px #0003;visibility:hidden}.app-sidebar.open{transform:translate(0);visibility:visible}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:150;touch-action:none}.sidebar-toggle{position:fixed;top:calc(.5rem + env(safe-area-inset-top));left:calc(.5rem + env(safe-area-inset-left));z-index:100;background:var(--wit);color:var(--tekst);border:1px solid var(--lijn);border-radius:.5rem;box-shadow:0 1px 4px #0000001f;min-width:44px;min-height:44px;padding:.35rem .6rem;font-size:1.25rem;line-height:1;cursor:pointer}body.sidebar-open{overflow:hidden}.app-main{padding:.75rem;padding-top:calc(.75rem + env(safe-area-inset-top));padding-left:calc(.75rem + env(safe-area-inset-left));padding-right:calc(.75rem + env(safe-area-inset-right));padding-bottom:calc(1.5rem + env(safe-area-inset-bottom));width:100%}.main-header{font-size:1.2rem;margin:0;padding-left:3.25rem;min-height:44px;display:flex;align-items:center}.sub-header{padding-left:3.25rem;margin-top:-.35rem;font-size:.85rem}h2{font-size:1.2rem}h3{font-size:1.05rem}h4{font-size:.95rem}.divider{margin:.75rem 0}.invoer,select.invoer,input.invoer,textarea.invoer{font-size:16px;min-height:40px}.btn{min-height:40px}.checkbox-rij{min-height:36px}.tabs-balk{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs-balk::-webkit-scrollbar{display:none}.tab-knop{white-space:nowrap;flex-shrink:0;padding:.55rem .75rem}.stepper{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem}.stepper-stap{min-width:0}.stepper-knop{padding:.35rem;font-size:1rem}.stepper-label{overflow-wrap:anywhere;line-height:1.2}.expander>summary{flex-wrap:wrap;padding:.6rem .75rem}.expander-samenvatting{white-space:normal}.expander-inhoud{padding:.25rem .75rem .75rem}.metric{padding:.45rem .65rem}.metric-waarde{font-size:1.2rem}.metric-label{font-size:.75rem}.veld-kaart{padding:.6rem .75rem}.alert{padding:.55rem .75rem}.tabel-wrap{-webkit-overflow-scrolling:touch;max-width:100%}.data-tabel{font-size:.8rem}.data-tabel th,.data-tabel td{padding:.3rem .45rem}.app-main img,.app-main video{max-width:100%;height:auto}.app-main pre{max-width:100%;overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere}.tijdlijn-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.tijdlijn-grid{min-width:680px}.boeking-kalender{max-width:100%}.login-wrap{margin:4vh 1rem;margin-top:calc(4vh + env(safe-area-inset-top))}}
