:root{--ink: #0f172a;--ink2: #1e293b;--bolt: #f97316;--bolt2: #ea580c;--bolt-soft: rgba(249, 115, 22, .12);--ask: #2563eb;--slate-50: #f8fafc;--slate-100: #f1f5f9;--slate-200: #e2e8f0;--slate-300: #cbd5e1;--slate-500: #64748b;--slate-600: #475569;--bg: #f5f5f4;--goed: #15803d;--slecht: #b91c1c}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:ui-sans-serif,system-ui,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100%}header.kop{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fffffff2;border-bottom:1px solid var(--slate-200)}.brand{display:inline-flex;align-items:center;gap:6px;font-weight:900;letter-spacing:-.02em;font-size:18px;color:var(--ink);margin-right:16px;text-decoration:none}.brand .bolt-icon{width:22px;height:22px;color:var(--bolt)}.brand b{color:var(--bolt);font-weight:900}.spacer{flex:1}.sep{width:1px;height:22px;background:var(--slate-200);margin:0 4px}.zwak{color:var(--slate-500)}.klein{font-size:12px}.goed{color:var(--goed)}.slecht{color:var(--slecht)}.num{text-align:right;font-variant-numeric:tabular-nums}button{font:inherit;font-weight:500;padding:6px 12px;border:none;border-radius:8px;background:transparent;color:var(--slate-600);cursor:pointer;transition:background .12s,color .12s}button:hover{background:var(--slate-100);color:var(--ink)}button.active{background:var(--bolt);color:#fff;font-weight:700}button.active:hover{background:var(--bolt2)}button.primary{background:var(--bolt);color:#fff;font-weight:700}button.primary:hover{background:var(--bolt2);color:#fff}button.rand{border:1px solid var(--slate-300);background:#fff}button.danger{color:var(--slecht);border:1px solid #fecaca}button.danger:hover{background:#fef2f2;color:var(--slecht)}button.link{padding:0;color:var(--bolt2);text-decoration:underline;background:none}button:disabled{opacity:.35;cursor:default}.toolbar{display:flex;align-items:center;gap:4px}.balk{display:flex;align-items:center;gap:4px;padding:6px 16px;background:var(--ink);border-bottom:1px solid var(--ink2);color:#e2e8f0}.balk .balk-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#94a3b8;margin-right:6px;font-weight:700}.balk b{color:#fff}.balk button{color:#cbd5e1;padding:4px 12px}.balk button:hover{background:var(--ink2);color:#fff}.balk button.active{background:var(--bolt);color:#fff;font-weight:700}.balk .status{font-size:12px;color:#94a3b8}.pagina{flex:1;overflow-y:auto}.pagina-in{max-width:1000px;margin:0 auto;padding:24px 16px 60px}.pagina-in.smal{max-width:640px}.pagina h1{margin:0 0 4px;font-size:24px;letter-spacing:-.02em}.pagina-kop{display:flex;align-items:flex-end;gap:12px;margin-bottom:16px}.pagina-kop p{margin:0;color:var(--slate-600)}.kaart{background:#fff;border:1px solid var(--slate-200);border-radius:12px;padding:14px 16px;margin-bottom:14px}.kaart h3{margin:0 0 10px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--slate-500);font-weight:700}.kaart h3 .zwak{text-transform:none;letter-spacing:0;font-weight:400}.kaart-kop{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.kaart-kop h3{margin:0}table.lijst{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}table.lijst th{text-align:left;font-size:11px;color:var(--slate-500);border-bottom:1px solid var(--slate-200);padding:4px 6px;font-weight:600}table.lijst td{padding:7px 6px;border-bottom:1px solid var(--slate-100);font-size:13px}table.lijst th.num,table.lijst td.num{text-align:right}table.lijst tr.klik{cursor:pointer}table.lijst tr.klik:hover td{background:var(--slate-50)}table.lijst tr.som td{font-weight:700;border-top:1px solid var(--slate-300);border-bottom:none}.tabel-scroll{overflow-x:auto}.leeg{text-align:center;color:var(--slate-500);padding:28px 0 14px}label.veld{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--slate-600);font-weight:500;margin-bottom:8px}label.veld input,label.veld select,.veld-los{font:inherit;font-size:13px;padding:5px 8px;border:1px solid var(--slate-300);border-radius:8px;background:#fff;color:var(--ink);width:100%;min-width:0}label.veld input:focus,label.veld select:focus,.veld-los:focus{outline:none;border-color:var(--bolt);box-shadow:0 0 0 2px var(--bolt-soft)}label.veld .eenheid{position:relative;display:block}label.veld .eenheid input{padding-right:46px}label.veld .eenheid i{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-style:normal;font-size:11px;color:var(--slate-500);pointer-events:none}.rij{display:flex;gap:8px}.rij>*{flex:1;min-width:0}label.check{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink);margin-bottom:8px;cursor:pointer}label.check input{accent-color:var(--bolt);margin:0}.melding{font-size:12px;color:var(--slecht);margin:6px 0 0}.melding.ok{color:var(--goed)}.segment{display:inline-flex;border:1px solid var(--slate-300);border-radius:8px;overflow:hidden;background:#fff}.segment button{border-radius:0;padding:5px 10px;font-size:12.5px}.segment button+button{border-left:1px solid var(--slate-200)}.segment.breed{display:flex}.segment.breed button{flex:1;padding:6px 0}.login-wrap{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--slate-100)}.modal{width:340px;background:#fff;border-radius:14px;padding:16px 18px;box-shadow:0 18px 50px #0f172a4d;display:flex;flex-direction:column;gap:8px}.modal h3{margin:0 0 4px;font-size:15px}.modal.login h3{display:flex;align-items:center;gap:6px;font-size:20px;font-weight:900;letter-spacing:-.02em}.modal.login h3 b{color:var(--bolt)}.modal.login .bolt-icon{width:22px;height:22px;color:var(--bolt)}.modal label.veld{margin-bottom:0}.modal-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:4px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:50}.modal.breed{width:min(560px,94vw);max-height:88vh;overflow-y:auto}.method-note{font-size:11px;color:var(--slate-500);margin:4px 0 0}.werk{flex:1;display:flex;min-height:0}.invoer{width:340px;flex-shrink:0;overflow-y:auto;background:#fff;border-right:1px solid var(--slate-200)}.sectie{padding:12px 16px 6px;border-bottom:1px solid var(--slate-100)}.sectie-kop{display:flex;align-items:center;gap:8px;margin-bottom:8px}.sectie-kop h3{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--slate-500);font-weight:700;flex:1}.schakel{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--slate-600);cursor:pointer}.schakel input{accent-color:var(--bolt);margin:0}.dakvlak{border:1px solid var(--slate-200);border-radius:10px;padding:8px 10px 2px;margin-bottom:8px;background:var(--slate-50)}.dakvlak-voet{display:flex;align-items:center;margin:-2px 0 6px}.dakvlak-voet label.check{margin:0;font-size:12px;flex:1}.dakvlak-voet button{font-size:11.5px;padding:2px 6px}.toestel{display:flex;align-items:center;gap:8px;min-height:30px}.toestel label.check{flex:1;margin:0;font-size:12.5px}.toestel .keer{display:inline-flex;align-items:center;gap:5px}.toestel .keer input{width:52px;font:inherit;font-size:12.5px;padding:3px 6px;border:1px solid var(--slate-300);border-radius:6px;text-align:right}.toestel .keer i{font-style:normal;font-size:11px;color:var(--slate-500);white-space:nowrap}.pieken{list-style:none;margin:10px 0 0;padding:0;font-size:12.5px}.pieken li{padding:5px 0;border-top:1px solid var(--slate-100);display:flex;gap:10px;flex-wrap:wrap;align-items:baseline}.pieken li b{min-width:150px}.dagen{display:flex;gap:4px;margin-bottom:8px}.dagen button{flex:1;padding:4px 0;font-size:12px;border:1px solid var(--slate-300);background:#fff}.dagen button.active{border-color:var(--bolt)}.uitkomst{flex:1;overflow-y:auto;min-width:0}.uitkomst-in{max-width:980px;margin:0 auto;padding:16px 16px 60px}.uitkomst-in.rekent{opacity:.55;transition:opacity .15s}.stappen-balk{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:4px;padding:8px 12px;background:var(--slate-50);border-bottom:1px solid var(--slate-200)}.stappen-balk button{padding:5px 10px;font-size:12.5px;border:1px solid var(--slate-200);background:#fff;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stappen-balk button span{display:inline-block;width:16px;line-height:16px;border-radius:999px;margin-right:4px;text-align:center;vertical-align:1px;background:var(--slate-100);color:var(--slate-600);font-size:10px;font-weight:800}.stappen-balk button.active{border-color:var(--bolt);background:#fff7ed;color:var(--bolt2);font-weight:700}.stappen-balk button.active span{background:#fff;color:var(--bolt2)}.stappen-balk button.nieuw{border-style:dashed;color:var(--slate-600);background:transparent}.kaart.aanzet{display:flex;align-items:center;gap:16px;border-color:#fed7aa;background:#fff7ed}.kaart.aanzet p{margin:2px 0 0;color:var(--slate-600)}.kaart.aanzet button{flex-shrink:0}.voortgang{height:6px;border-radius:999px;background:var(--slate-100);overflow:hidden;margin-bottom:10px}.voortgang i{display:block;height:100%;background:var(--bolt);transition:width .3s}.topline{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--ink2);color:#fff;border-radius:12px;overflow:hidden;margin-bottom:12px}.topline>div{background:var(--ink);padding:12px 16px}.topline .label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;opacity:.7;font-weight:700}.topline b{display:block;font-size:24px;font-weight:900;margin-top:2px;letter-spacing:-.02em}.topline .onder{font-size:11.5px;opacity:.7}.topline .accent b{color:#fdba74}.variant-kaarten{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-bottom:14px}.variant-kaart{position:relative;display:flex;flex-direction:column;gap:4px;text-align:left;background:#fff;border:1px solid var(--slate-200);border-radius:12px;padding:12px 12px 10px 16px;cursor:pointer;font-size:12.5px;min-height:104px;color:var(--ink);font-weight:400}.variant-kaart:hover{border-color:var(--slate-300);background:#fff}.variant-kaart.on{border-color:var(--bolt);box-shadow:0 0 0 2px #fed7aa}.variant-kaart .vk-kleur{position:absolute;left:0;top:10px;bottom:10px;width:5px;border-radius:0 4px 4px 0}.variant-kaart b{font-size:13px;line-height:1.25}.variant-kaart .vk-regels{display:flex;flex-direction:column;gap:1px;font-size:11px;line-height:1.3;color:var(--slate-500)}.variant-kaart .vk-kost{margin-top:auto;font-size:15px;font-weight:800}.variant-kaart .vk-kost span{font-size:11px;font-weight:500;color:var(--slate-500)}.variant-kaart .vk-tvt{font-size:11.5px;font-weight:600}.vk-dot{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px}.stappen{margin:0;padding:0;list-style:none;counter-reset:stap}.stappen li{position:relative;padding:0 0 10px 34px;font-size:14.5px;line-height:1.45;counter-increment:stap}.stappen li:last-child{padding-bottom:0}.stappen li:before{content:counter(stap);position:absolute;left:0;top:0;width:22px;height:22px;border-radius:999px;background:var(--bolt-soft);color:var(--bolt2);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center}.grafiek svg{width:100%;height:auto;display:block}.legende{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11.5px;margin:6px 0 0}.uitleg{font-size:12px;color:var(--slate-500);margin:8px 0 0;line-height:1.45}.balken{display:flex;flex-direction:column;gap:8px}.balk-rij{display:grid;grid-template-columns:96px 1fr 76px;align-items:center;gap:10px;font-size:12.5px}.balk-rij.breed-label{grid-template-columns:170px 1fr 130px}.kaart h4{margin:12px 0 4px;font-size:12px;color:var(--slate-600);font-weight:700}.balk-rij .staaf{display:flex;height:24px;border-radius:6px;overflow:hidden;background:var(--slate-100)}.balk-rij .staaf i{display:block;height:100%}.status-badge{display:inline-block;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:999px;background:var(--slate-100);color:var(--slate-600)}.status-badge.geverifieerd{background:#dcfce7;color:var(--goed)}.status-badge.eigen{background:var(--bolt-soft);color:var(--bolt2)}.tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px}.tabs button{border:1px solid var(--slate-200);background:#fff}.tabs button.active{border-color:var(--bolt)}.item-velden{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.item-velden .vol{grid-column:1 / -1}.item-velden fieldset{grid-column:1 / -1;border:1px solid var(--slate-200);border-radius:10px;margin:0 0 10px;padding:8px 10px 2px;display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.item-velden legend{font-size:11px;color:var(--slate-500);font-weight:700;padding:0 4px}.rapport-kop{display:flex;align-items:flex-end;gap:12px;margin-bottom:14px}.rapport-kop h1{margin:6px 0 2px;font-size:24px;letter-spacing:-.02em}.rapport-kop p{margin:0;color:var(--slate-600)}.rapport-voet{font-size:11px;color:var(--slate-500);margin-top:10px;line-height:1.5}@media (max-width: 900px){header.kop{flex-wrap:wrap}header.kop .gebruiker{display:none}.werk{flex-direction:column;overflow-y:auto}.invoer{width:auto;overflow:visible;border-right:none;border-bottom:1px solid var(--slate-200)}.uitkomst{overflow:visible}.topline{grid-template-columns:repeat(2,1fr)}.item-velden,.item-velden fieldset{grid-template-columns:1fr}}@media print{html,body,#root{height:auto}body{background:#fff;font-size:12px}header.kop,.balk,.niet-afdrukken{display:none!important}.app,.pagina{display:block;height:auto;overflow:visible}.pagina-in{max-width:none;padding:0}.kaart{break-inside:avoid;border-color:var(--slate-300)}.topline,.topline>div{-webkit-print-color-adjust:exact;print-color-adjust:exact}.variant-kaart,.balk-rij .staaf i,.vk-dot,.vk-kleur,.status-badge,.stappen li:before{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A4;margin:14mm}}
