:root{--accent:#1f4e79;--accent-licht:#2e6da4;--accent-zeer-licht:#e7eef5;--bg:#eef1f4;--kaart:#fff;--rand:#d9dfe6;--tekst:#24303c;--tekst-zacht:#5a6572;--groen:#2e7d4f;--oranje:#c07617;--rood:#b3372f;--paars:#6a4fa3;--teal:#1d7a74;--radius:10px;--schaduw:0 1px 3px #1423321a;--veld-hoogte:40px;--viewer-bg-boven:#eef2f7;--viewer-bg-onder:#cfd9e4;--viewer-tekst:#62717f}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--tekst);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px}.app{height:100vh;display:flex}.zijbalk{color:#c8d4e0;background:#1b2937;flex-direction:column;flex-shrink:0;gap:2px;width:224px;padding:14px 10px;display:flex}.zijbalk .logo{color:#fff;letter-spacing:2px;padding:8px 12px 2px;font-size:21px;font-weight:800}.zijbalk .logo span{color:#7fb2e5}.zijbalk .subtitel{color:#7d8ea0;letter-spacing:.4px;padding:0 12px 2px;font-size:11px}.zijbalk .versie{color:#5d6e80;letter-spacing:.3px;padding:0 12px 16px;font-size:10.5px}.zijbalk a{color:#c8d4e0;border-radius:8px;align-items:center;gap:11px;padding:11px 12px;font-size:14.5px;font-weight:500;text-decoration:none;display:flex}.zijbalk a svg{opacity:.85;flex-shrink:0;width:19px;height:19px}.zijbalk a:hover{color:#fff;background:#24374b}.zijbalk a.actief{background:var(--accent-licht);color:#fff}.zijbalk .onderin{color:#62778c;margin-top:auto;padding:12px;font-size:11px;line-height:1.5}.inhoud{flex:1;padding:26px 32px 60px;overflow-y:auto}.inhoud>.binnen{max-width:1240px;margin:0 auto}.mobiel-balk,.zijbalk-achtergrond{display:none}@media (width<=1000px){.app{flex-direction:column}.mobiel-balk{color:#fff;background:#1b2937;flex-shrink:0;align-items:center;gap:10px;padding:9px 12px;display:flex}.mobiel-balk .logo{letter-spacing:2px;font-size:17px;font-weight:800}.mobiel-balk .logo span{color:#7fb2e5}.menu-knop{color:#c8d4e0;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px;display:inline-flex}.menu-knop:hover{color:#fff;background:#24374b}.menu-knop svg{width:22px;height:22px}.zijbalk{z-index:90;transition:transform .18s ease-out;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%);box-shadow:0 0 30px #00000059}.zijbalk.open{transform:none}.zijbalk-achtergrond{z-index:85;background:#0f172073;display:block;position:fixed;inset:0}.inhoud{padding:16px 14px 60px}.tabel-kaart,.kaart{overflow-x:auto}}.pagina-kop{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.pagina-kop h1{margin:0;font-size:24px;font-weight:700}.pagina-kop .sub{color:var(--tekst-zacht);margin-top:3px;font-size:13.5px}.knop{background:var(--accent);color:#fff;cursor:pointer;border:1.5px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:10px 18px;font-size:14.5px;font-weight:600;text-decoration:none;display:inline-flex}.knop:hover{background:var(--accent-licht)}.knop:disabled{opacity:.45;cursor:default}.knop.secundair{color:var(--accent);border:1.5px solid var(--accent);background:#fff}.knop.secundair:hover{background:var(--accent-zeer-licht)}.passkey-rij{border-bottom:1px solid var(--rand);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.knop.gevaar{color:var(--rood);border:1.5px solid var(--rood);background:#fff}.knop.gevaar:hover{background:#faeceb}.knop.klein{padding:6px 12px;font-size:13px}.kaart{background:var(--kaart);border:1px solid var(--rand);border-radius:var(--radius);box-shadow:var(--schaduw);padding:18px 20px}.kaart h2{color:var(--accent);margin:0 0 12px;font-size:15px;font-weight:700}.kaart-rij{gap:16px;margin-bottom:16px;display:grid}.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:20px;display:grid}.kpi{background:var(--kaart);border:1px solid var(--rand);border-radius:var(--radius);box-shadow:var(--schaduw);padding:14px 18px}.kpi .label{color:var(--tekst-zacht);text-transform:uppercase;letter-spacing:.4px;font-size:12.5px;font-weight:600}.kpi .waarde{color:var(--accent);margin-top:4px;font-size:27px;font-weight:800}.kpi.waarschuwing .waarde{color:var(--rood)}.kpi-onder{color:var(--rood);margin-top:2px;font-size:12.5px;font-weight:600;text-decoration:none;display:inline-block}.kpi-onder:hover{text-decoration:underline}.tabel-kaart{background:var(--kaart);border:1px solid var(--rand);border-radius:var(--radius);box-shadow:var(--schaduw);overflow:hidden}table.tabel{border-collapse:collapse;width:100%;font-size:14px}.tabel th{text-align:left;color:var(--tekst-zacht);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--rand);white-space:nowrap;background:#f4f6f9;padding:11px 14px;font-size:12px}.tabel th .sorteer{width:auto;height:auto;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;padding:0;display:inline-flex}.tabel th .sorteer:hover{color:var(--tekst)}.tabel th .sorteer .pijl{opacity:.55;font-size:9px}.tabel th[aria-sort] .sorteer{color:var(--tekst)}.tabel th[aria-sort] .sorteer .pijl{opacity:1}.tabel-voet{border-top:1px solid var(--rand);color:var(--tekst-zacht);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:flex}.tabel td{vertical-align:middle;border-bottom:1px solid #eceff3;padding:11px 14px}.tabel tr:last-child td{border-bottom:none}.tabel tr.klikbaar{cursor:pointer}.tabel tr.klikbaar:hover{background:#f5f8fb}.tabel td.rechts,.tabel th.rechts{text-align:right}.tabel .zacht{color:var(--tekst-zacht);font-size:13px}.tabel .verlopen{color:var(--rood);font-size:13px}.tabel .verlopen .merk{text-transform:uppercase;letter-spacing:.4px;margin-left:6px;font-size:11px;font-weight:700}.uitklap-knop{cursor:pointer;color:var(--tekst-zacht);background:0 0;border:none;padding:2px 4px;font-size:13px;line-height:1}.uitklap-knop:hover{color:var(--accent)}.inhoud-telling{cursor:pointer;flex-wrap:wrap;gap:6px;display:inline-flex}.inhoud-telling .tag{background:var(--accent-zeer-licht);color:var(--accent);white-space:nowrap;border-radius:6px;padding:3px 9px;font-size:12px;font-weight:600}.tabel tr.uitklap td{background:#f5f8fb;padding:12px 14px 14px 48px}.uitklap-inhoud{grid-template-columns:1fr 1fr;gap:22px;display:grid}.uitklap-kop{letter-spacing:.04em;text-transform:uppercase;color:var(--tekst-zacht);margin-bottom:6px;font-size:11.5px;font-weight:700}.uitklap-regel{background:var(--kaart);border:1px solid var(--rand);color:inherit;border-radius:7px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;padding:7px 10px;font-size:13.5px;text-decoration:none;display:flex}.uitklap-regel:hover{border-color:var(--accent)}@media (width<=900px){.uitklap-inhoud{grid-template-columns:1fr}}.chip{white-space:nowrap;border-radius:999px;padding:3.5px 11px;font-size:12.5px;font-weight:700;display:inline-block}.chip.aanvraag{color:#4a5560;background:#e8ebef}.chip.calculatie{color:#2456a8;background:#dfeafd}.chip.offerte,.chip.verzonden{color:#96660a;background:#fdf0d5}.chip.opdracht{color:#5b3fa0;background:#eae3f8}.chip.productie,.chip.bezig{color:#a05413;background:#fde5d0}.chip.gereed,.chip.geaccepteerd{color:#21663f;background:#d9f0e2}.chip.gefactureerd{color:#155e59;background:#d5ecea}.chip.afgewezen{color:#952f28;background:#fadcda}.chip.concept,.chip.open{color:#4a5560;background:#e8ebef}.chip.gepland{color:#2456a8;background:#dfeafd}.chip.klant{color:#2c6144;background:#dbeae0}.chip.prospect{color:#3a5488;background:#e3e9f5}.chip.leverancier{color:#59477e;background:#ece7f3}.prio{font-size:13px;font-weight:700}.prio.spoed{color:var(--rood)}.prio.hoog{color:var(--oranje)}.prio.normaal{color:var(--tekst-zacht)}.prio.laag{color:#8a97a4}label.veld{margin-bottom:12px;display:block}label.veld .naam{color:var(--tekst-zacht);text-transform:uppercase;letter-spacing:.3px;margin-bottom:5px;font-size:12.5px;font-weight:700;display:block}input,select,textarea{border:1.5px solid var(--rand);width:100%;color:var(--tekst);background:#fff;border-radius:8px;padding:9px 12px;font-family:inherit;font-size:14.5px}input:focus,select:focus,textarea:focus{border-color:var(--accent-licht);outline:none}input:not([type=checkbox]),select{height:var(--veld-hoogte)}input[type=color]{padding:4px}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%235a6572' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;background-size:11px;padding-right:32px}.veld-rij{grid-template-columns:1fr 1fr;gap:0 14px;display:grid}.veld input.fout,.veld textarea.fout{border-color:var(--rood);background:#fdf5f4}.veld-fout{color:var(--rood);text-transform:none;letter-spacing:0;margin-top:4px;font-size:12px;font-weight:600;line-height:1.5;display:block}.zoekbalk{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.zoekbalk input[type=search]{max-width:300px}.zoekbalk select{width:auto}.tabs{flex-wrap:wrap;gap:6px;display:flex}.tabs button{border:1.5px solid var(--rand);color:var(--tekst-zacht);cursor:pointer;background:#fff;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600}.tabs button.actief{background:var(--accent);border-color:var(--accent);color:#fff}.modal-achtergrond{z-index:100;background:#0f192373;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:min(560px,92vw);max-height:88vh;padding:24px 26px;overflow-y:auto;box-shadow:0 12px 40px #00000040}.modal h2{color:var(--accent);margin:0;font-size:18px}.modal-kop{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.modal-sluit{cursor:pointer;color:var(--tekst-zacht);background:0 0;border:0;flex:none;padding:2px 4px;font-size:19px;line-height:1}.modal-sluit:hover{color:var(--tekst)}.modal .acties{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.modal .acties .knop.gevaar{margin-right:auto}.dropzone{border-radius:var(--radius);text-align:center;color:var(--tekst-zacht);cursor:pointer;background:#fafbfc;border:2.5px dashed #b7c3cf;padding:22px;font-size:14px}.dropzone.actief{border-color:var(--accent-licht);background:var(--accent-zeer-licht);color:var(--accent)}.dropzone .groot{color:var(--tekst);margin-bottom:4px;font-size:15.5px;font-weight:700}.dropzone.gevuld{border-style:solid;border-color:var(--groen);background:#f2faf5}.logo-beheer{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.logo-beheer .acties{flex-wrap:wrap;gap:8px;display:flex}.logo-voorbeeld{border:1px solid var(--rand);background:repeating-conic-gradient(#f4f6f8 0% 25%,#fff 0% 50%) 50%/14px 14px;border-radius:8px;max-width:240px;max-height:64px;padding:8px}.logo-leeg{width:160px;height:64px;color:var(--tekst-zacht);background:#fafbfc;border:2px dashed #b7c3cf;border-radius:8px;place-items:center;font-size:13px;display:grid}.calc-indeling{grid-template-columns:360px 1fr;align-items:start;gap:18px;display:grid}.kolom-velden{border:0;gap:16px;min-width:0;margin:0;padding:0;display:grid}@media (width<=1000px){.calc-indeling{grid-template-columns:1fr}}.viewer-wrap{border-radius:var(--radius);background:linear-gradient(180deg, var(--viewer-bg-boven) 0%, var(--viewer-bg-onder) 100%);height:340px;position:relative;overflow:hidden}.viewer-wrap canvas{display:block}.viewer-hint{color:var(--viewer-tekst);pointer-events:none;font-size:11.5px;position:absolute;bottom:8px;right:12px}.feiten{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;display:grid}.feit{background:#f4f6f9;border-radius:8px;padding:9px 12px}.feit .label{color:var(--tekst-zacht);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:700}.feit .waarde{margin-top:2px;font-size:15.5px;font-weight:700}.kosten-tabel{border-collapse:collapse;width:100%;font-size:14px}.kosten-tabel td{border-bottom:1px solid #eceff3;padding:7px 4px}.kosten-tabel td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.kosten-tabel tr.totaal td{border-top:2px solid var(--accent);color:var(--accent);border-bottom:none;padding-top:10px;font-size:17px;font-weight:800}.offerte-kop{border-bottom:1px solid var(--rand);justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;padding-bottom:14px;display:flex}.offerte-kop .klant{font-size:16px;font-weight:700}.offerte-kop .sub{color:var(--tekst-zacht);margin-top:3px;font-size:13px}.offerte-meta{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;display:grid}.offerte-meta .k{letter-spacing:.04em;text-transform:uppercase;color:var(--tekst-zacht);margin-bottom:2px;font-size:11.5px;font-weight:700;display:block}.offerte-meta .v{font-size:14px}.offerte-regel{border-bottom:1px solid #eceff3;justify-content:space-between;align-items:baseline;gap:16px;padding:10px 0;display:flex}.offerte-regel>div:first-child{flex:1;min-width:0}.offerte-regel .omschrijving{font-size:14px;line-height:1.45}.offerte-regel .eenheid{color:var(--tekst-zacht);margin-top:2px;font-size:12.5px}.offerte-regel .bedrag{white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.offerte-regel .omschrijving-invoer{resize:none;background:0 0;border-color:#0000;border-radius:6px;width:100%;height:auto;padding:3px 6px;font-family:inherit;font-size:14px;line-height:1.45;display:block;overflow:hidden}.offerte-regel .omschrijving-invoer:hover{border-color:var(--rand);background:#fbfcfd}.offerte-regel .omschrijving-invoer:focus{border-color:var(--accent-licht);background:#fff}.offerte-regel .omschrijving-invoer.fout{border-color:var(--rood);background:#fdf5f4}.offerte-regel .regel-weg{cursor:pointer;color:var(--tekst-zacht);background:0 0;border:none;border-radius:6px;padding:0 2px;font-size:18px;line-height:1}.offerte-regel .regel-weg:hover{color:var(--rood);background:#fdf5f4}.regel-erbij{margin-top:12px;padding:6px 12px;font-size:13px}.offerte-regel .prijs-invoer{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.offerte-regel .prijs-invoer input.kort{width:58px}.offerte-regel .prijs-invoer input{text-align:right;font-variant-numeric:tabular-nums;width:86px;height:auto;color:var(--tekst);border-radius:6px;padding:3px 7px;font-size:12.5px}.offerte-regel .prijs-invoer input.fout{border-color:var(--rood);color:var(--rood);background:#fdf5f4}.offerte-regel .prijs-fout{color:var(--rood);margin-top:4px;font-size:12px}.offerte-totalen{justify-content:end;gap:6px;margin:14px 0 4px;display:grid}.offerte-totalen>div{color:var(--tekst-zacht);grid-template-columns:auto 120px;gap:24px;font-size:14px;display:grid}.offerte-totalen>div>span:last-child{text-align:right;font-variant-numeric:tabular-nums;color:var(--tekst);font-weight:600}.offerte-totalen .eind{border-top:2px solid var(--accent);color:var(--accent);margin-top:2px;padding-top:8px;font-size:17px;font-weight:800}.offerte-totalen .eind>span:last-child{color:var(--accent);font-weight:800}.offerte-totalen .eind.wacht,.offerte-totalen .eind.wacht>span:last-child{color:var(--tekst-zacht);font-size:13px;font-weight:600}.modal-voet{border-top:1px solid var(--rand);justify-content:space-between;align-items:flex-end;gap:16px;margin-top:20px;padding-top:16px;display:flex}.modal-voet label.veld{min-width:190px;margin-bottom:0}.hint{color:var(--tekst-zacht);text-transform:none;letter-spacing:0;margin-top:4px;font-size:12.5px;font-weight:500;line-height:1.5;display:block}.modal-voet .acties{margin-top:0}@media (width<=560px){.offerte-meta{grid-template-columns:1fr 1fr}.modal-voet{flex-direction:column;align-items:stretch}.veld-rij{grid-template-columns:1fr}}.stukprijs-banner{background:var(--accent);color:#fff;border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin-bottom:14px;padding:16px 20px;display:flex}.stukprijs-banner .bedrag{font-size:30px;font-weight:800}.stukprijs-banner .label{opacity:.8;text-transform:uppercase;letter-spacing:.5px;font-size:12.5px}.stukprijs-banner .acties{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-left:auto;display:flex}.stukprijs-banner .knop{color:var(--accent);background:#fff}.stukprijs-banner .knop:hover{background:var(--accent-zeer-licht)}.stukprijs-banner .knop.secundair{color:#fff;background:0 0;border-color:#ffffffa6}.stukprijs-banner .knop.secundair:hover{background:#ffffff29}.keuzelijst{border:1.5px solid var(--rand);background:#fff;border-radius:8px;gap:6px;padding:10px 12px;display:grid}.keuze{cursor:pointer;align-items:center;gap:9px;font-size:14px;display:flex}.keuze input[type=checkbox]{cursor:pointer;width:auto;margin:0}.keuze .zacht{color:var(--tekst-zacht);font-size:12.5px}.keuzelijst{max-height:210px;overflow-y:auto}.vouwvak{border-top:1px solid var(--rand)}.vouwvak>summary{cursor:pointer;align-items:baseline;gap:9px;padding:11px 2px;list-style:none;display:flex}.vouwvak>summary::-webkit-details-marker{display:none}.vouwvak>summary::marker{content:""}.vouwvak>summary:hover .titel{color:var(--accent)}.vouwvak .pijl{color:var(--tekst-zacht);transform-origin:45%;font-size:15px;line-height:1;transition:transform .12s}.vouwvak[open]>summary .pijl{transform:rotate(90deg)}.vouwvak .tekst{flex:1;min-width:0}.vouwvak .titel{color:var(--tekst-zacht);text-transform:uppercase;letter-spacing:.3px;font-size:12.5px;font-weight:700;display:block}.vouwvak .samenvatting{color:var(--tekst);margin-top:2px;font-size:13.5px;display:block}.vouwvak[open] .samenvatting{display:none}.vouwvak .merk{background:var(--accent-zeer-licht);color:var(--accent);text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;border-radius:6px;flex:none;padding:2px 8px;font-size:11.5px;font-weight:700}.vouwvak .inhoud{padding:2px 2px 6px}.veld-kop{letter-spacing:.05em;text-transform:uppercase;color:var(--tekst-zacht);border-top:1px solid var(--rand);margin:4px 0 8px;padding-top:12px;font-size:11.5px;font-weight:700}.snijgegevens{grid-template-columns:repeat(3,1fr);gap:0 14px;display:grid}.snijgegevens .veld .naam{min-height:2.4em;display:block}@media (width<=620px){.snijgegevens{grid-template-columns:repeat(2,1fr)}}.herkend{flex-wrap:wrap;gap:7px;display:flex}.herkend .tag{background:var(--accent-zeer-licht);color:var(--accent);border-radius:6px;padding:4px 10px;font-size:12.5px;font-weight:600}.plan-hulpbalk input[type=search]{flex:190px;min-width:140px;max-width:380px}.gantt-wrap{max-height:calc(100vh - 230px);overflow:auto}.gantt{-webkit-user-select:none;user-select:none;min-width:900px;position:relative}.gantt-kop{border-bottom:2px solid var(--rand);z-index:7;background:var(--kaart);display:flex;position:sticky;top:27px}.gantt-week-rij{border-bottom:1px solid var(--rand);z-index:7;background:#f8f9fb;display:flex;position:sticky;top:0}.gantt-week-rij .machine-kol{padding-top:0;padding-bottom:0}.gantt-week{text-align:center;color:var(--tekst-zacht);text-transform:uppercase;letter-spacing:.6px;border-left:1px solid #eceff3;padding:5px 0 4px;font-size:11px;font-weight:700}.gantt-dag{text-align:center;color:var(--tekst-zacht);border-left:1px solid #eceff3;padding:7px 0 5px;font-size:12px;font-weight:700}.gantt-dag .datum{font-size:11px;font-weight:500}.gantt-dag.weekend{background:#f2f4f7}.gantt-dag.vandaag{color:var(--accent);background:var(--accent-zeer-licht)}.machine-kol{border-right:2px solid var(--rand);z-index:6;background:var(--kaart);flex-direction:column;flex-shrink:0;justify-content:center;width:170px;padding:8px 12px;font-size:13.5px;font-weight:700;display:flex;position:sticky;left:0}.gantt-week-rij .machine-kol{background:#f8f9fb}.gantt-kop .machine-kol{background:var(--kaart);z-index:8}.machine-kol .type{color:var(--tekst-zacht);font-size:11.5px;font-weight:500}.machine-kol .belasting{color:var(--groen)}.machine-kol .belasting.overboekt{color:var(--rood);font-weight:700}.gantt-rij{border-bottom:1px solid #eceff3;display:flex}.gantt-spoor{cursor:crosshair;flex:1;height:58px;position:relative}.gantt-spoor .dag-lijn{pointer-events:none;border-left:1px solid #eceff3;position:absolute;top:0;bottom:0}.gantt-spoor .dag-lijn.weekend{background:#f6f7f9}.gantt-spoor .nacht-vak{pointer-events:none;background:repeating-linear-gradient(-45deg,#78849429,#78849429 3px,#0000 3px 7px);position:absolute;top:0;bottom:0}.gantt-spoor .uur-lijn{pointer-events:none;background:#eef1f4;width:1px;position:absolute;top:0;bottom:0}.gantt-spoor .uur-lijn.middag{background:#dfe4ea}.nu-lijn{background:var(--rood);z-index:5;pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.leeg-sleep{z-index:4;border:2px dashed var(--accent);background:var(--accent-zeer-licht);height:40px;color:var(--accent);text-align:center;white-space:nowrap;pointer-events:none;border-radius:7px;font-size:11px;font-weight:700;line-height:36px;position:absolute;top:9px;overflow:hidden}.balk{color:#fff;cursor:grab;z-index:2;border-radius:7px;flex-direction:column;justify-content:center;gap:1px;min-width:7px;height:40px;padding:5px 9px;font-size:12px;display:flex;position:absolute;top:9px;overflow:hidden;box-shadow:0 1px 3px #00000040}.balk:active{cursor:grabbing}.balk .titel{white-space:nowrap;text-overflow:ellipsis;pointer-events:none;font-weight:700;overflow:hidden}.gantt-spoor .balk{container-type:inline-size}@container (width<=180px){.balk .werkstuk{display:none}}@container (width<=95px){.balk .voorvoegsel{display:none}}@container (width<=72px){.balk .sub{display:none}}.balk .sub{opacity:.85;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;font-size:10.5px;overflow:hidden}.balk.gereed{opacity:.55}.balk.waarschuwing{outline:2px dashed var(--oranje);outline-offset:1.5px}.balk.bezig{outline:2.5px solid var(--oranje);outline-offset:1.5px}.balk.te-laat{box-shadow:0 0 0 2.5px var(--rood)}.balk .deadline-vlag{font-weight:700}.balk.te-kort{box-shadow:inset 0 0 0 2px var(--oranje)}.balk.te-laat.te-kort{box-shadow:inset 0 0 0 2px var(--oranje), 0 0 0 2.5px var(--rood)}.balk .tekort-vlag{font-weight:700}.balk .greep{cursor:ew-resize;background:#ffffff40;border-radius:0 7px 7px 0;width:9px;position:absolute;top:0;bottom:0;right:0}.balk.versleept{opacity:.85;z-index:10;box-shadow:0 6px 18px #00000059}.balk.gedimd{opacity:.14}.balk.aangewezen{z-index:11;animation:2.4s ease-out balk-wijs}@keyframes balk-wijs{0%,60%{box-shadow:0 0 0 3px var(--accent), 0 6px 18px #0000004d}to{box-shadow:0 1px 3px #00000040}}.klaarstrook{background:var(--kaart);border:1px solid var(--rand);border-radius:var(--radius);margin-bottom:10px;padding:9px 14px;font-size:13.5px}.klaarstrook>summary{cursor:pointer;color:var(--tekst-zacht)}.klaarstrook>summary strong{color:var(--tekst)}.klaarstrook .regels{gap:4px;max-height:220px;margin-top:9px;display:grid;overflow-y:auto}.klaarstrook .regel{text-align:left;background:var(--bg);border:1px solid var(--rand);width:100%;font:inherit;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:baseline;gap:12px;padding:6px 10px;display:flex}.klaarstrook .regel:hover:not(:disabled){border-color:var(--accent);background:var(--accent-zeer-licht)}.klaarstrook .regel:disabled{cursor:not-allowed;opacity:.55}.klaarstrook .regel .hoeveel{white-space:nowrap;font-size:12.5px}.melding-blok>summary{cursor:pointer}.melding-blok ul{margin:6px 0 0;padding-left:20px}.melding-blok li{margin-bottom:2px}.melding-blok .link{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.plan-voorbeeld{z-index:60;background:var(--kaart);border:1px solid var(--rand);border-radius:var(--radius);width:288px;padding:12px;font-size:13px;position:fixed;box-shadow:0 12px 34px #121e2a38}.plan-voorbeeld .kop{flex-direction:column;margin-bottom:9px;line-height:1.35;display:flex}.plan-voorbeeld .kop .zacht{color:var(--tekst-zacht);font-size:12px}.plan-voorbeeld .viewer{background:linear-gradient(160deg, var(--viewer-bg-boven), var(--viewer-bg-onder));border-radius:8px;justify-content:center;align-items:center;height:168px;display:flex;overflow:hidden}.plan-voorbeeld .viewer .viewer-wrap{width:100%;height:100%}.plan-voorbeeld .viewer img{object-fit:contain;background:#fff;width:100%;height:100%}.plan-voorbeeld .viewer .melding{color:var(--viewer-tekst);text-align:center;padding:0 14px;font-size:12.5px}.plan-voorbeeld .regels{gap:4px;margin-top:10px;display:grid}.plan-voorbeeld .regels>div{justify-content:space-between;gap:10px;display:flex}.plan-voorbeeld .regels .zacht{color:var(--tekst-zacht)}.plan-voorbeeld .regels strong{text-align:right}.plan-voorbeeld .regels .link{margin-top:4px}.datum-spring{width:auto;padding:9px 12px}.legenda{color:var(--tekst-zacht);flex-wrap:wrap;gap:18px;margin-top:10px;font-size:12.5px;display:flex}.legenda .item{align-items:center;gap:6px;display:flex}.legenda .blok{border-radius:4px;width:14px;height:14px}.detail-indeling{grid-template-columns:2fr 1fr;align-items:start;gap:18px;display:grid}@media (width<=1000px){.detail-indeling{grid-template-columns:1fr}}.info-lijst{gap:9px;font-size:14px;display:grid}.info-lijst .rij{grid-template-columns:140px 1fr;gap:8px;display:grid}.info-lijst .k{color:var(--tekst-zacht);font-size:13px;font-weight:600}.leeg{text-align:center;color:var(--tekst-zacht);padding:40px 20px;font-size:14.5px}.leeg-kaart{background:var(--kaart);border:1px solid var(--rand);border-radius:var(--radius);box-shadow:var(--schaduw)}.fout-melding{color:#952f28;background:#fadcda;border-radius:8px;margin-bottom:14px;padding:11px 15px;font-size:14px;font-weight:600}.gelukt-melding{color:#1f5c3b;background:#dcf0e4;border-radius:8px;margin-bottom:14px;padding:11px 15px;font-size:14px;font-weight:600}.toasts{z-index:120;gap:8px;display:grid;position:fixed;bottom:18px;right:18px}.toast{color:#f2faf5;cursor:pointer;background:#1f5c3b;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:600;animation:.18s ease-out toast-in;box-shadow:0 6px 18px #00000040}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}.notitie{background:#fdf6e0;border-radius:8px;padding:10px 14px;font-size:13.5px;line-height:1.5}.let-op{color:#7a5410;border-left:4px solid var(--oranje);background:#fdf3dc;border-radius:8px;margin-bottom:12px;padding:11px 15px;font-size:13.5px;line-height:1.5}.let-op strong{color:#5f4009}.voorraad-balk{background:#e6eaee;border-radius:4px;min-width:70px;height:7px;overflow:hidden}.voorraad-balk>div{border-radius:4px;height:100%}a.link{color:var(--accent-licht);font-weight:600;text-decoration:none}a.link:hover{text-decoration:underline}.link-knop{cursor:pointer;color:var(--accent-licht);font-weight:600;font-size:inherit;background:0 0;border:0;padding:0;font-family:inherit;text-decoration:underline}.terug-knop{text-decoration:none}.terug-knop:hover{text-decoration:underline}.bonnen{gap:10px;display:grid}.bon{background:var(--kaart);border:1px solid var(--rand);border-radius:var(--radius);box-shadow:var(--schaduw);align-items:stretch;gap:14px;padding:13px 15px;display:flex}.bon.af{box-shadow:none;background:#f7f9fb;border-color:#e3e8ee}.bon.af .bewerking{color:var(--tekst-zacht)}.bon-tekst{cursor:pointer;flex:1;min-width:0}.bon-kop{flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:3px;display:flex}.bon-kop .nummer{color:var(--tekst-zacht);letter-spacing:.3px;font-size:12.5px;font-weight:700}.bon .bewerking{margin-bottom:2px;font-size:16px;font-weight:700}.bon .zacht{color:var(--tekst-zacht);font-size:13px}.bon-tijden{color:var(--tekst-zacht);flex-wrap:wrap;gap:16px;margin-top:7px;font-size:13px;display:flex}.bon-tijden strong{color:var(--tekst)}.afwijking{font-weight:700}.afwijking.over{color:var(--rood)}.afwijking.onder{color:var(--groen)}.bon-af{cursor:pointer;border:1px solid var(--rand);min-width:104px;color:var(--tekst-zacht);border-radius:9px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:700;display:flex}.bon-af:hover{border-color:var(--groen);color:var(--groen)}.bon-af input{width:26px;height:26px;accent-color:var(--groen);cursor:pointer}.bon.af .bon-af{border-color:var(--groen);color:var(--groen)}.blok-kop{color:var(--tekst-zacht);text-transform:uppercase;letter-spacing:.3px;margin:18px 0 6px;font-size:12.5px;font-weight:700}@media (width<=560px){.bon{flex-direction:column}.bon-af{flex-direction:row;width:100%;padding:13px;font-size:15px}}.dashboard-rij{grid-template-columns:1.35fr 1fr;align-items:start;gap:16px;margin-bottom:16px;display:grid}@media (width<=1100px){.dashboard-rij{grid-template-columns:1fr}}.kaart-kop{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;display:flex}.kaart-kop h2{margin:0}.kaart-sub{color:var(--tekst-zacht);margin-bottom:14px;font-size:12.5px}.kaart-voet{color:var(--tekst-zacht);border-top:1px solid #eceff3;margin-top:12px;padding-top:10px;font-size:12.5px;line-height:1.5}.bezetting{gap:11px;display:grid}.bezetting-regel{grid-template-columns:132px 1fr 104px;align-items:center;gap:12px;display:grid}.bezetting-regel .naam{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:650;overflow:hidden}.bezetting-regel .spoor{background:#eef1f4;border-radius:4px;height:14px;position:relative}.bezetting-regel .balk{border-radius:4px;min-width:3px;height:100%;transition:width .18s;display:block}.bezetting-regel .balk.vol{background:var(--rood)}.bezetting-regel .capaciteit{background:var(--tekst-zacht);opacity:.45;border-radius:2px;width:2px;position:absolute;top:-3px;bottom:-3px}.bezetting-regel .cijfer{text-align:right;white-space:nowrap;font-size:13px}.bezetting-regel .cijfer .pct{color:var(--tekst-zacht);margin-left:7px;font-size:12.5px}.bezetting-regel .cijfer .pct.vol{color:var(--rood);font-weight:700}.scoring-getal{align-items:baseline;gap:14px;margin:4px 0 16px;display:flex}.scoring-getal .groot{color:var(--accent);font-size:42px;font-weight:800;line-height:1}.scoring-getal .uitleg{color:var(--tekst-zacht);font-size:13px;line-height:1.5}.scoring-tabel td,.scoring-tabel th{padding-left:0;padding-right:0}.maat-lijst{flex-direction:column;gap:5px;margin:8px 0;padding:0;list-style:none;display:flex}.maat-lijst li{border:1px solid var(--rand);background:var(--kaart);border-radius:7px;align-items:center;gap:6px;padding:6px 10px;font-size:13.5px;display:flex}.maat-lijst .regel-weg{cursor:pointer;color:var(--tekst-zacht);background:0 0;border:none;border-radius:5px;margin-left:auto;padding:2px 6px;font-size:15px;line-height:1}.maat-lijst .regel-weg:hover{color:var(--rood);background:#fdf5f4}.maat-invoer{align-items:center;gap:8px;margin-top:8px;display:flex}.maat-invoer select{flex:none;width:130px}.maat-invoer input[type=number]{flex:none;width:110px}.maat-invoer input[type=text]{flex:1;min-width:80px}.maat-invoer .knop{flex:none}.maat-melding{color:var(--rood);margin-top:4px;font-size:12px}@media (width<=560px){.maat-invoer{flex-wrap:wrap}}.sleep-gevolg{z-index:60;pointer-events:none;background:var(--tekst);color:#fff;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;max-width:min(92vw,900px);padding:9px 16px;font-size:13.5px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 4px 18px #14233259}.sleep-gevolg .tijd{white-space:nowrap;font-weight:700}.sleep-gevolg .deel{white-space:nowrap;background:#ffffff24;border-radius:999px;padding:2px 9px}.sleep-gevolg .deel.slecht{background:#b3372f}.sleep-gevolg .deel.goed{background:#2e7d4f}.hardheid{background:var(--kaart);border:1px solid var(--rand);border-radius:var(--radius);box-shadow:var(--schaduw);padding:12px 16px;font-size:13.5px}.hardheid .kop{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hardheid ul{color:var(--tekst-zacht);margin:8px 0 0;padding-left:18px}.hardheid li{margin-top:3px}.contact-rij{border:1px solid var(--rand);background:var(--kaart);border-radius:8px;grid-template-columns:auto 1fr 1.4fr auto;align-items:center;gap:6px 8px;margin-top:8px;padding:9px 10px;display:grid}.contact-rij input[type=radio]{width:auto;height:auto;margin:0}.contact-rij .onder{grid-column:2/4;gap:8px;display:flex}.contact-rij .veld-fout{grid-column:2/5}.contact-rij .regel-weg{cursor:pointer;color:var(--tekst-zacht);background:0 0;border:none;border-radius:5px;padding:2px 6px;font-size:15px;line-height:1}.contact-rij .regel-weg:hover{color:var(--rood);background:#fdf5f4}@media (width<=560px){.contact-rij{grid-template-columns:auto 1fr auto}.contact-rij .onder{flex-wrap:wrap;grid-column:1/4}}:focus-visible{outline:2px solid var(--accent-licht);outline-offset:2px}.tabel tr.klikbaar:focus-visible{outline-offset:-2px;background:#f5f8fb}.gantt-spoor .balk:focus-visible{box-shadow:0 0 0 2px var(--kaart), 0 0 0 4px var(--accent-licht);outline:none}.inlogscherm{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.inlogkaart{background:var(--kaart);border:1px solid var(--rand);border-radius:var(--radius);width:100%;max-width:360px;box-shadow:var(--schaduw);flex-direction:column;gap:4px;padding:28px 26px 22px;display:flex}.inlogkaart .logo{letter-spacing:2px;color:var(--tekst);font-size:22px;font-weight:800}.inlogkaart .logo span{color:var(--accent-licht)}.inlogkaart .subtitel{color:var(--tekst-zacht);letter-spacing:.4px;margin-bottom:18px;font-size:11px}.inlogkaart .knop{width:100%;margin-top:4px}.inlogkaart .fout-melding{margin-bottom:10px}.inlogkaart .hint{margin-top:14px}.inlogkaart .hint code{font-size:11.5px}.zijbalk .onderin .aangemeld{border-top:1px solid #2b3f52;flex-direction:column;align-items:flex-start;gap:3px;margin-top:8px;padding-top:8px;display:flex}.zijbalk .onderin .uitloggen{font:inherit;cursor:pointer;color:#7fb2e5;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.scherm-uitleg{margin-bottom:14px}.scherm-uitleg>summary{cursor:pointer;color:var(--tekst-zacht);align-items:center;gap:7px;padding:3px 2px;font-size:12.5px;font-weight:600;list-style:none;display:inline-flex}.scherm-uitleg>summary::-webkit-details-marker{display:none}.scherm-uitleg>summary::marker{content:""}.scherm-uitleg>summary:hover{color:var(--accent)}.scherm-uitleg .teken{border:1.5px solid;border-radius:50%;flex:none;justify-content:center;align-items:center;width:17px;height:17px;font-size:11px;font-weight:800;display:inline-flex}.scherm-uitleg[open]>summary{color:var(--accent)}.scherm-uitleg .inhoud{background:var(--kaart);border:1px solid var(--rand);border-radius:var(--radius);box-shadow:var(--schaduw);margin-top:6px;padding:16px 20px}.scherm-uitleg .meer{color:var(--accent);margin-top:12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-block}.scherm-uitleg .meer:hover{text-decoration:underline}.scherm-uitleg .waarvoor,.hulp-onderwerp .waarvoor{color:var(--tekst);margin:0 0 12px;font-size:14.5px}.scherm-uitleg ol,.hulp-onderwerp ol{color:var(--tekst);margin:0;padding-left:20px;font-size:14px;line-height:1.65}.scherm-uitleg ol li,.hulp-onderwerp ol li{margin-bottom:3px}.scherm-uitleg ul.tips,.hulp-onderwerp ul.tips{flex-direction:column;gap:8px;margin:14px 0 0;padding:0;list-style:none;display:flex}.tips .tip{color:var(--tekst);background:#f5f8fb;border-radius:8px;align-items:baseline;gap:10px;padding:9px 12px;font-size:13.5px;line-height:1.55;display:flex}.tips .tip .merk{text-transform:uppercase;letter-spacing:.5px;min-width:66px;color:var(--accent);flex:none;font-size:10.5px;font-weight:800}.tips .tip.sneltoets{background:#f2f6f5}.tips .tip.sneltoets .merk{color:var(--teal)}.tips .tip.valkuil{background:#fdf5ec}.tips .tip.valkuil .merk{color:var(--oranje)}.tips .tip .tekst{flex:1;min-width:0}.hulp-onderwerp{margin-bottom:14px;scroll-margin-top:16px}.hulp-onderwerp .kop{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:10px;display:flex}.hulp-onderwerp .kop h2{margin:0}.rondleiding-uitnodiging{z-index:95;background:var(--kaart);border:1px solid var(--rand);border-radius:12px;width:min(320px,100vw - 36px);padding:14px 16px;font-size:13.5px;line-height:1.55;position:fixed;bottom:18px;right:18px;box-shadow:0 8px 28px #1423322e}.rondleiding-uitnodiging .acties{gap:8px;margin-top:12px;display:flex}.rondleiding{z-index:120;position:fixed;inset:0}.rondleiding .gat{pointer-events:none;border-radius:10px;transition:top .18s,left .18s,width .18s,height .18s;position:fixed;box-shadow:0 0 0 9999px #0c16209e}.rondleiding .gat.vol{box-shadow:none;background:#0c16209e;border-radius:0;inset:0}.rondleiding .kaart{border-radius:12px;width:min(340px,100vw - 28px);padding:18px 20px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 14px 44px #0000004d}.rondleiding .kaart[style*=top]{transform:none}.rondleiding .kaart .teller{text-transform:uppercase;letter-spacing:.5px;color:var(--tekst-zacht);font-size:11px;font-weight:700}.rondleiding .kaart h2{margin:4px 0 8px;font-size:17px}.rondleiding .kaart p{color:var(--tekst);margin:0;font-size:14px;line-height:1.6}.rondleiding .kaart .acties{align-items:center;gap:8px;margin-top:16px;display:flex}.rondleiding .kaart .acties .knop{margin-left:0}.rondleiding .kaart .sluit{cursor:pointer;font:inherit;color:var(--tekst-zacht);text-underline-offset:2px;background:0 0;border:0;margin-right:auto;padding:0;font-size:13px;text-decoration:underline}.rondleiding .kaart .sluit:hover{color:var(--tekst)}@media (width<=900px){.rondleiding .kaart[style*=top]{bottom:16px;transform:translate(-50%);top:auto!important;left:50%!important}}
