:root{--ink:#111827;--green:#38b84b;--lime:#8ee000;--paper:#f4f5f1;--muted:#697078;--line:#dfe3dc}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 Arial,sans-serif}a{color:inherit;text-decoration:none}img{max-width:100%}.ticker{height:30px;overflow:hidden;background:var(--green);font-size:10px;font-weight:800;letter-spacing:2px;white-space:nowrap;padding:7px 0}.ticker span{display:inline-block;animation:tick 30s linear infinite}@keyframes tick{to{transform:translateX(-50%)}}.header{height:82px;padding:0 5vw;display:flex;align-items:center;position:sticky;top:0;z-index:20;background:rgba(244,245,241,.97);border-bottom:1px solid var(--line)}.logo{width:170px;height:60px}.logo img,footer img{width:100%;height:100%;object-fit:contain;background:var(--ink)}.nav{display:flex;gap:28px;margin:auto;font-size:12px;font-weight:800}.menu{display:none;border:0;background:none;font-size:25px}.btn{display:inline-flex;justify-content:center;align-items:center;background:var(--ink);color:#fff;border:0;padding:15px 20px;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:1px;cursor:pointer}.green{background:var(--green);color:var(--ink)}.hero{height:clamp(420px,52vw,760px);background:#071427;position:relative}.hero>img{width:100%;height:100%;object-fit:contain}.hero-actions{position:absolute;left:6vw;bottom:5vw}.intro,.dark-split,.contact-grid{padding:85px 6vw;display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.eyebrow{color:var(--green);text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:800}h1,h2{font-weight:900;letter-spacing:-3px;line-height:1}h1{font-size:clamp(46px,6vw,82px)}h2{font-size:clamp(36px,5vw,64px)}em{color:var(--green);font-style:normal}.intro>div:last-child>p,.prose{font-size:18px;color:var(--muted)}.trust{font-size:11px;font-weight:800;margin-top:25px}.content{padding:85px 6vw}.cards{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-width:1px 0 0 1px;margin-top:45px}.cards article{min-height:250px;padding:25px;background:rgba(255,255,255,.25);border:1px solid var(--line);border-width:0 1px 1px 0}.cards article>span{float:right;font:10px monospace;color:var(--muted)}.cards article h2,.cards article h3{font-size:21px;letter-spacing:-.5px;margin-top:55px}.cards article p{color:var(--muted)}.cards article a{display:block;margin-top:25px;font-size:10px;font-weight:800;text-transform:uppercase}.dark-split,.page-hero{background:var(--ink);color:#fff}.dark-split p{color:#b7c0ca}.project-preview{background:#fff;color:var(--ink);padding:35px}.project-preview>i,.bar{display:block;height:5px;background:#e1e5df;margin:18px 0}.project-preview u,.bar i{display:block;height:100%;background:var(--green)}.project-preview>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.project-preview>div span{background:#f1f3ef;padding:20px;font-size:28px}.page-hero{min-height:490px;padding:100px 7vw 70px;border-bottom:7px solid var(--green);display:flex;flex-direction:column;justify-content:end}.page-hero h1{max-width:950px}.page-hero>p:last-child{font-size:19px;color:#b7c0ca;max-width:700px}.prose{max-width:850px;white-space:normal}.cta{background:var(--green);padding:55px 6vw;display:flex;align-items:center;justify-content:space-between}.cta h2{font-size:45px;margin:0}.contact-grid form,.login-card{background:var(--ink);color:#fff;padding:35px}.contact-grid label,.login-card label,.editor label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:1px;margin:13px 0}.contact-grid input,.contact-grid textarea,.login-card input,.editor input,.editor textarea{width:100%;display:block;padding:12px;margin-top:6px;border:1px solid #4c5562;background:transparent;color:inherit}.contact-grid textarea,.editor textarea{min-height:100px}footer{background:#0b111c;color:#fff;padding:45px 6vw;display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:center}footer>img{width:170px;height:62px}footer p,footer small{text-align:right;color:#8c96a3}footer nav{display:flex;gap:20px;font-size:10px;text-transform:uppercase}.login-page{min-height:100vh;background:var(--ink);display:grid;place-items:center;padding:20px}.login-card{width:min(440px,100%);background:#fff;color:var(--ink)}.login-card img{height:80px;width:100%;object-fit:contain;background:var(--ink)}.login-card h1{font-size:34px}.login-card>a{display:block;margin-top:20px}.success{background:#daf4dc;color:#156b22;padding:13px;margin:12px 0}.error{background:#ffe4e4;color:#8b1515;padding:13px}.backend{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.side{background:var(--ink);color:#fff;padding:20px;display:flex;flex-direction:column;gap:20px}.side img{width:100%;height:70px;object-fit:contain}.side>b{font-size:8px;letter-spacing:2px;color:#8e98a5}.side nav{display:flex;flex-direction:column}.side nav a{padding:12px;color:#aeb6c0}.side nav a.active{background:#202a37;color:#fff;border-left:3px solid var(--green)}.side>a:last-child{margin-top:auto}.admin-main{padding:0 4vw 50px;min-width:0}.admin-main>header{height:95px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.admin-main>header h1{font-size:30px;margin:3px 0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:35px 0}.stats article,.panel{background:#fff;padding:24px}.stats strong{display:block;font-size:34px}.panel{margin:20px 0}.row{display:grid;grid-template-columns:1fr 1fr auto;gap:15px;padding:14px 0;border-top:1px solid var(--line)}.cms-shell{display:grid;grid-template-columns:180px 1fr 1fr;gap:14px;margin-top:30px;align-items:start}.page-tabs{background:#fff;padding:12px;display:flex;flex-direction:column}.page-tabs a{padding:10px;font-size:11px}.page-tabs a.active{background:#e4f5e5;color:#177529;font-weight:800}.editor h2{font-size:27px}.portal-page>header{height:78px;background:var(--ink);color:#fff;padding:8px 5vw;display:flex;justify-content:space-between;align-items:center}.portal-page>header img{height:62px;width:160px;object-fit:contain}.portal-layout{display:grid;grid-template-columns:280px 1fr;max-width:1350px;margin:auto}.portal-layout>aside{background:#fff;padding:45px 30px}.portal-layout>aside h1{font-size:35px}.portal-layout>aside nav{display:flex;flex-direction:column;margin-top:30px}.portal-layout>aside nav a{padding:12px 0;border-bottom:1px solid var(--line)}.portal-layout>main{padding:30px}.portal-card{border:1px solid var(--line);padding:20px;margin:12px 0}.portal-card h3{font-size:22px}
@media(max-width:950px){.cards{grid-template-columns:repeat(2,1fr)}.cms-shell{grid-template-columns:160px 1fr}.cms-shell>.editor:last-child{grid-column:1/-1}.stats{grid-template-columns:1fr 1fr}}
@media(max-width:650px){body{overflow-x:hidden}.header{height:70px;padding:0 16px}.logo{width:135px}.menu{display:block;margin-left:auto}.header-btn{display:none}.nav{display:none;position:absolute;top:70px;left:0;right:0;background:#fff;padding:20px;flex-direction:column;box-shadow:0 16px 30px #0002}.nav.open{display:flex}.hero{height:330px}.hero-actions{left:16px;bottom:14px}.intro,.dark-split,.contact-grid{grid-template-columns:1fr;padding:55px 20px}.content{padding:55px 20px}.cards{grid-template-columns:1fr}.page-hero{min-height:390px;padding:70px 20px 50px}.cta{padding:40px 20px;align-items:flex-start;flex-direction:column;gap:20px}.cta h2{font-size:35px}footer{grid-template-columns:1fr;padding:35px 20px}footer p,footer small{text-align:left}.backend{display:block}.side{position:sticky;top:0;z-index:30;padding:8px 10px;gap:5px}.side img,.side>b,.side>a:last-child{display:none}.side nav{flex-direction:row;overflow-x:auto}.side nav a{flex:0 0 auto;white-space:nowrap;padding:9px;font-size:10px}.admin-main{padding:0 14px 35px}.admin-main>header{height:75px}.stats{grid-template-columns:1fr 1fr}.cms-shell{grid-template-columns:1fr}.page-tabs{flex-direction:row;overflow-x:auto;position:sticky;top:52px}.page-tabs a{flex:0 0 auto}.cms-shell>.editor:last-child{grid-column:auto}.row{grid-template-columns:1fr}.portal-layout{display:block}.portal-layout>aside{padding:25px 18px}.portal-layout>aside nav{flex-direction:row;overflow-x:auto}.portal-layout>aside nav a{padding:10px;white-space:nowrap}.portal-layout>main{padding:16px}.portal-layout .stats{grid-template-columns:1fr 1fr}.contact-grid form{padding:24px}}

.admin-user{display:flex;align-items:center;gap:10px}.admin-user span{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--green);font-weight:900}.admin-columns{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:20px;align-items:start}.data-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 0;border-top:1px solid var(--line)}.data-row>div{display:flex;flex-direction:column;min-width:0}.data-row small{color:var(--muted)}.badge{display:inline-flex;padding:5px 9px;border-radius:99px;background:#e4f5e5;color:#176d25;font-size:10px;font-weight:800;white-space:nowrap}.row-actions{display:flex!important;flex-direction:row!important;align-items:center;gap:12px}.row-actions a,.row-actions button{border:0;background:none;color:#177529;font:700 11px Arial;cursor:pointer}.editor select,.editor input[type=file]{width:100%;padding:12px;margin-top:6px;border:1px solid #ccd2ca;background:#fff;color:var(--ink)}.editor input,.editor textarea{border-color:#ccd2ca}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini-progress{display:block;width:180px;max-width:100%;height:4px;background:#e0e4dd;margin-top:8px}.mini-progress u{display:block;height:100%;background:var(--green)}.media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.media-grid>h2{grid-column:1/-1}.media-grid article{border:1px solid var(--line);padding:12px}.media-grid img{width:100%;height:170px;object-fit:cover}.brand-preview{width:100%;height:120px;object-fit:contain;background:var(--ink);padding:12px}.website-admin{margin-top:28px}.service-admin-row>img{width:78px;height:58px;object-fit:cover;flex:0 0 auto}.service-grid,.realization-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.service-card{min-height:360px;padding:28px;display:flex;flex-direction:column;justify-content:space-between;background:#101a28;color:#fff;background-size:cover;background-position:center}.service-card>span{font-size:11px;letter-spacing:2px;color:var(--green)}.service-card h2{font-size:34px;letter-spacing:-1px;margin:0 0 12px}.service-card p{max-width:520px;color:#d5dae0;font-size:16px}.realization-grid article{background:#fff}.realization-grid img{width:100%;height:330px;object-fit:cover}.realization-grid article>div{padding:25px}.realization-grid h2{font-size:30px;letter-spacing:-1px}.empty-state{padding:60px;background:#fff;text-align:center}.empty-state h2{font-size:35px}.invoice-download{color:#177529;font-weight:800}
@media(max-width:950px){.admin-columns{grid-template-columns:1fr}.service-grid{grid-template-columns:1fr}.service-card{min-height:320px}}
@media(max-width:650px){.admin-user b{display:none}.admin-main>header h1{font-size:23px}.panel{padding:18px}.form-grid,.media-grid,.realization-grid{grid-template-columns:1fr}.data-row{align-items:flex-start}.row-actions{flex-wrap:wrap}.service-card{min-height:290px;padding:22px}.service-card h2{font-size:28px}.realization-grid img{height:240px}}

.request-card{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:25px;padding:24px 0;border-top:1px solid var(--line)}.request-card h3{font-size:24px;margin:12px 0 4px}.request-card p{margin:6px 0}.request-actions{display:flex;flex-direction:column;gap:10px}.request-actions form{display:flex;gap:8px;align-items:center}.request-actions select{width:100%;padding:12px;border:1px solid #ccd2ca;background:#fff}.request-actions .btn{white-space:nowrap;padding:13px}.danger-button{border:0;background:#ffe4e4;color:#8b1515;padding:11px 14px;font-weight:800;cursor:pointer}.form-note{padding:14px;background:#eef7ee;border-left:3px solid var(--green);color:#405044}.row-actions form{margin:0}
@media(max-width:750px){.request-card{grid-template-columns:1fr}.request-actions form{align-items:stretch;flex-direction:column}.request-actions button{width:100%}}

.calendar-admin{margin-top:28px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.approval-card{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;padding:24px 0;border-top:1px solid var(--line)}.approval-card h3{font-size:24px;margin:10px 0 2px}.approval-card>div:last-child{display:flex;flex-direction:column;gap:8px}.calendar-list article{display:grid;grid-template-columns:64px 1fr auto;gap:15px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.calendar-list time{display:flex;flex-direction:column;background:var(--ink);color:#fff;padding:8px;text-align:center;font-weight:900}.calendar-list time small{color:var(--green)}.calendar-list article>div{display:flex;flex-direction:column}.calendar-list article>div small,.request-history small{color:var(--muted)}.request-history{margin-top:35px;border-top:1px solid var(--line)}
@media(max-width:750px){.approval-card{grid-template-columns:1fr}.panel-heading{align-items:flex-start;flex-direction:column}.calendar-list article{grid-template-columns:55px 1fr}.calendar-list article>.badge{grid-column:2}}

.text-link{display:inline-block;margin-top:12px;color:#18802a;font-size:11px;font-weight:900;text-transform:uppercase}.realization-editor{display:grid;grid-template-columns:1fr 1fr;gap:28px}.gallery-admin{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;align-content:start}.gallery-admin>h3{grid-column:1/-1}.gallery-admin article{background:#f2f4f0;padding:10px}.gallery-admin img{width:100%;height:150px;object-fit:cover}.gallery-admin button{width:100%;margin-top:7px}.realization-cover{min-height:650px;background:var(--ink);color:#fff;position:relative;display:flex;align-items:flex-end}.realization-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}.realization-cover>div{position:relative;z-index:1;padding:80px 7vw;max-width:1000px}.realization-cover h1{margin:12px 0}.realization-story{padding:90px 7vw;display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw}.realization-story h2{margin-top:10px}.realization-story h3{font-size:24px;margin-top:35px}.realization-story .lead{font-size:20px;color:var(--muted)}.detail-gallery{padding:0 7vw 90px;display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.detail-gallery img{width:100%;height:430px;object-fit:cover}.detail-gallery img:nth-child(3n){grid-column:1/-1}
@media(max-width:750px){.realization-editor,.realization-story,.detail-gallery{grid-template-columns:1fr}.gallery-admin{grid-template-columns:1fr}.realization-cover{min-height:480px}.realization-cover>div{padding:55px 20px}.realization-story{padding:60px 20px}.detail-gallery{padding:0 20px 60px}.detail-gallery img,.detail-gallery img:nth-child(3n){height:280px;grid-column:auto}}

.template-panel{margin-top:20px}.template-chip{display:inline-flex;padding:8px 12px;margin:4px;border-radius:99px;background:#e8ece6;font-size:11px;font-weight:800}.project-detail-admin{margin-top:24px}.step-admin-list{margin-top:30px}.project-step-admin{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;padding:25px 0;border-top:1px solid var(--line);position:relative}.project-step-admin.is-complete{border-left:4px solid var(--green);padding-left:20px}.step-number{display:inline-grid;place-items:center;width:36px;height:36px;background:var(--ink);color:var(--green);font-weight:900}.step-proof-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;align-content:start}.step-proof-gallery img{width:100%;height:120px;object-fit:cover}.complete-check{padding:12px;background:#eaf6e9}.client-step-list{margin-top:25px}.client-step{display:grid;grid-template-columns:42px 1fr;gap:14px;padding:18px 0;border-top:1px solid var(--line)}.client-step>span{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#e1e5df;font-weight:900}.client-step.is-complete>span{background:var(--green)}.client-step h4{font-size:18px;margin:5px 0}.client-step p{margin:5px 0;color:var(--muted)}.client-step-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}.client-step-photos img{width:100%;height:100px;object-fit:cover}.header .logo img{background:#fff}
@media(max-width:750px){.project-step-admin{grid-template-columns:1fr}.step-proof-gallery{grid-template-columns:repeat(2,1fr)}.client-step-photos{grid-template-columns:repeat(2,1fr)}.client-step-photos img{height:120px}}

.complete-check{position:relative;display:flex!important;align-items:center;gap:14px;min-height:64px;padding:14px 16px!important;border:2px solid #cfd8cd!important;border-radius:10px;background:#f6f8f4!important;font-size:13px!important;font-weight:900;letter-spacing:0!important;text-transform:none!important;cursor:pointer;transition:.2s}.complete-check input{appearance:none;-webkit-appearance:none;width:30px!important;height:30px;margin:0!important;border:2px solid #899488!important;border-radius:8px;background:#fff!important;display:grid!important;place-items:center;flex:0 0 30px;cursor:pointer}.complete-check input:checked{background:var(--green)!important;border-color:var(--green)!important}.complete-check input:checked:after{content:'✓';color:#071427;font-size:21px;font-weight:900}.project-step-admin.is-complete .complete-check{background:#e2f6e2!important;border-color:var(--green)!important}.project-step-admin.is-complete .step-number{background:var(--green);color:var(--ink)}.project-step-admin{border-radius:8px;transition:.2s}.project-step-admin.is-complete{background:linear-gradient(90deg,#effaef,transparent 70%)}.realization-delete{margin-top:10px}.realization-delete button{width:100%}

.template-list{display:flex;flex-wrap:wrap;align-content:flex-start}.template-chip{border:1px solid #d6ddd2}.template-chip:hover{border-color:var(--green);background:#e2f6e2}.template-editor{margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.template-delete{margin-top:10px}.month-calendar{margin-top:22px;border:1px solid var(--line);background:#fff}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;padding:18px}.calendar-toolbar h3{margin:0;font-size:24px}.calendar-toolbar a{font-size:11px;font-weight:900;color:#177529}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays b{padding:10px;text-align:center;background:var(--ink);color:#fff;font-size:10px}.calendar-day{min-height:135px;padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}.calendar-day.is-empty{background:#f0f2ee}.calendar-day.is-today{box-shadow:inset 0 0 0 3px var(--green)}.calendar-day>strong{display:block;margin-bottom:7px}.calendar-event{display:flex;gap:5px;padding:6px;margin:4px 0;border-radius:5px;font-size:10px;line-height:1.25;overflow:hidden}.calendar-event time{font-weight:900}.calendar-event span{overflow:hidden;text-overflow:ellipsis}.calendar-event.is-bdw{background:#dff5df;color:#145c20}.calendar-event.is-apple{background:#e5eaf4;color:#263e6b}
@media(max-width:750px){.month-calendar{overflow-x:auto}.calendar-weekdays,.calendar-grid{min-width:720px}.calendar-day{min-height:105px}.template-editor{padding:15px}}

.permission-grid{border:1px solid var(--line);padding:16px;margin:18px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.permission-grid legend{font-size:11px;font-weight:900;text-transform:uppercase;padding:0 8px}.permission-grid label{display:flex;align-items:center;gap:8px;margin:0!important;padding:9px;background:#f3f5f1;text-transform:none!important;letter-spacing:0!important;font-size:12px!important}.permission-grid input{width:20px!important;margin:0!important}.admin-access-editor{margin-top:24px}
@media(max-width:650px){.permission-grid{grid-template-columns:1fr}}

.current-images{display:grid;grid-template-columns:1fr 1fr;gap:12px}.current-images figure{margin:0;border:1px solid var(--line);padding:10px;background:#fff}.current-images figure.dark{background:var(--ink);color:#fff}.current-images figure.wide{grid-column:1/-1}.current-images figcaption{font-size:10px;font-weight:900;text-transform:uppercase;margin-bottom:8px}.current-images img{width:100%;height:90px;object-fit:contain}.current-images .wide img{height:180px;object-fit:cover}.page-image-preview{width:100%;height:220px;object-fit:cover;margin-top:14px;border:1px solid var(--line)}.page-managed-body{margin-bottom:40px}.home-body{margin-top:16px;color:var(--muted)}.page-block-manager{margin-top:22px}.block-create{padding-bottom:25px;border-bottom:1px solid var(--line)}.managed-block-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}.managed-block-list article{border:1px solid var(--line);padding:16px}.managed-block-list .danger-button{width:100%;margin-top:8px}
@media(max-width:700px){.current-images,.managed-block-list{grid-template-columns:1fr}.current-images figure.wide{grid-column:auto}.current-images .wide img{height:130px}}

.building-management{margin-top:28px}.building-admin-grid,.syndic-building-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.building-admin-card,.syndic-building-card{background:#f8faf7;border:1px solid var(--line);border-left:5px solid #9aa39a;padding:22px;display:flex;flex-direction:column;justify-content:space-between;gap:18px;min-width:0}.building-admin-card.status-goedgekeurd,.syndic-building-card.status-goedgekeurd{border-left-color:var(--green)}.building-admin-card.status-geweigerd,.syndic-building-card.status-geweigerd{border-left-color:#a73030}.building-admin-card h3,.syndic-building-card h3{font-size:25px;letter-spacing:-.5px;margin:12px 0 4px}.building-admin-card p,.syndic-building-card p{margin:7px 0;color:var(--muted)}.building-admin-card small,.syndic-building-card small{display:block;color:var(--muted)}.building-actions{display:flex;flex-direction:column;gap:9px}.building-actions form{margin:0}.building-actions .btn,.building-actions .danger-button,.building-actions .subtle-button{width:100%}.subtle-button{border:1px solid #cbd1ca;background:transparent;color:#4f5951;padding:10px 14px;font-weight:800;cursor:pointer}.request-drawer{margin:18px 0;border:1px solid var(--line);background:#fff}.request-drawer summary{cursor:pointer;list-style:none;padding:17px 20px;font-weight:900;color:#176d25}.request-drawer summary::-webkit-details-marker{display:none}.request-drawer summary:after{content:'+';float:right;font-size:22px;line-height:1}.request-drawer[open] summary:after{content:'−'}.request-drawer .editor{padding:0 20px 22px}.building-project-group{border:1px solid var(--line);background:#fff;margin:18px 0;padding:20px}.building-project-title{display:flex;align-items:end;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:14px}.building-project-title small{display:block;color:var(--green);font-weight:900;letter-spacing:1.6px}.building-project-title h3{font-size:27px;margin:4px 0 0}.building-project-title span{font-size:12px;color:var(--muted);white-space:nowrap}.portal-project-empty{padding:20px;border:1px dashed #bdc5bc;color:var(--muted)}
@media(max-width:900px){.building-admin-grid,.syndic-building-grid{grid-template-columns:1fr}}
@media(max-width:650px){.building-admin-card,.syndic-building-card,.building-project-group{padding:16px}.building-project-title{align-items:flex-start;flex-direction:column}.building-project-title h3{font-size:23px}.request-drawer summary{padding:15px 16px}.request-drawer .editor{padding:0 16px 18px}}
.site-popup{position:fixed;right:24px;bottom:24px;z-index:80;width:min(410px,calc(100vw - 32px));background:#fff;border-top:6px solid var(--green);box-shadow:0 22px 70px #07111f55;padding:28px}.site-popup[hidden]{display:none}.site-popup h2{font-size:34px;letter-spacing:-1.5px;margin:8px 35px 12px 0}.site-popup>p:not(.eyebrow){color:var(--muted);margin-bottom:20px}.site-popup-close{position:absolute;right:14px;top:13px;width:34px;height:34px;border:0;background:#edf1eb;color:var(--ink);font-size:24px;line-height:1;cursor:pointer}.site-popup .btn{width:100%}@media(max-width:650px){.site-popup{right:16px;bottom:16px;padding:22px}.site-popup h2{font-size:28px}}

.client-filter-bar{display:flex;align-items:end;gap:12px;background:#111827;color:#fff;padding:16px 20px;margin:22px 0 4px;border-left:5px solid var(--green)}.client-filter-bar label{flex:1;display:flex;flex-direction:column;gap:6px;font-size:10px;font-weight:900;letter-spacing:1px;text-transform:uppercase}.client-filter-bar select{width:100%;padding:12px;border:1px solid #4a5563;background:#fff;color:var(--ink);font-size:14px}.client-filter-bar .btn{white-space:nowrap}.client-filter-bar>a{padding:12px 4px;color:#a8dfae;font-size:11px;font-weight:900;white-space:nowrap}.client-filter-bar option{color:var(--ink)}
@media(max-width:650px){.client-filter-bar{align-items:stretch;flex-direction:column;padding:14px}.client-filter-bar .btn,.client-filter-bar>a{width:100%;text-align:center}.client-filter-bar>a{padding:8px}}

.admin-global-search{display:flex;gap:10px;margin:22px 0 0}.admin-global-search input{flex:1;min-width:0;padding:14px 16px;border:1px solid #ccd2ca;background:#fff;font-size:14px}.admin-global-search>a{align-self:center;color:#177529;font-size:11px;font-weight:900}.global-search-results{border-top:5px solid var(--green)}.search-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.search-result-grid>a{display:flex;flex-direction:column;min-width:0;padding:15px;border:1px solid var(--line);background:#f8faf7}.search-result-grid span{color:#177529;font-size:9px;font-weight:900;letter-spacing:1px;text-transform:uppercase}.search-result-grid b{margin:4px 0}.search-result-grid small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-list article{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:18px;align-items:start;padding:16px 0;border-top:1px solid var(--line)}.activity-list time,.activity-list small{color:var(--muted)}.activity-list div{display:flex;flex-direction:column}.activity-list .activity-type{font-size:9px;font-weight:900;color:#177529;text-transform:uppercase;letter-spacing:1px}.calendar-cancel-form{display:flex;gap:8px;align-items:center;margin-top:8px}.calendar-cancel-form input{min-width:160px;padding:8px;border:1px solid #ccd2ca}.calendar-event.is-cancelled{opacity:.5;text-decoration:line-through}
@media(max-width:700px){.admin-global-search{flex-wrap:wrap}.admin-global-search input{flex-basis:100%}.search-result-grid{grid-template-columns:1fr}.activity-list article{grid-template-columns:1fr;gap:4px}.calendar-cancel-form{align-items:stretch;flex-direction:column}.calendar-cancel-form input{width:100%}}
.technician-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:6px 0 14px;padding:12px;border:1px solid var(--line)}.technician-checks legend{padding:0 6px;font-size:10px;font-weight:900;letter-spacing:1px;text-transform:uppercase}.technician-checks label{display:flex!important;flex-direction:row!important;gap:8px;align-items:center;padding:9px;background:#f6f8f5;border:1px solid #e0e5de;cursor:pointer}.technician-checks input{width:auto!important;margin:0}.technician-checks span{display:flex;flex-direction:column;font-weight:800}.technician-checks small{font-weight:500;color:var(--muted)}.technician-checks.compact{display:flex;flex-wrap:wrap;border:0;padding:0;margin:10px 0 6px}.technician-checks.compact label{padding:6px 9px}.technician-management{border-top:5px solid var(--green)}.technician-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.technician-wrap{display:flex;flex-direction:column}.technician-card{height:100%;padding:18px;background:#f8faf7;border:1px solid var(--line)}.technician-card.is-new{border:2px dashed #b8c4b6}.technician-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:6px}.technician-heading b{font-size:18px}.technician-toggle{margin-top:7px}.technician-toggle button{width:100%}.event-info{display:flex;flex-direction:column;min-width:0}.event-team{display:inline-flex;width:max-content;margin-top:7px;padding:5px 8px;background:#e7f6e9;color:#166b26;font-size:11px;font-weight:900}.event-team-form{margin-top:8px}.calendar-event-detail{align-items:flex-start!important}.calendar-event-detail.is-cancelled{opacity:.55}.syndic-request-summary{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-top:1px solid var(--line)}.syndic-request-summary>div{display:flex;flex-direction:column;gap:5px}.syndic-request-summary>a{align-self:center;color:#177529;font-weight:900}.request-hub{margin-top:18px}
@media(max-width:1050px){.technician-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.technician-checks{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.technician-grid,.technician-checks{grid-template-columns:1fr}.syndic-request-summary{flex-direction:column}.syndic-request-summary>a{align-self:flex-start}.calendar-event-detail{grid-template-columns:48px minmax(0,1fr)!important}.calendar-event-detail>.badge{grid-column:2}.event-team{width:auto}.event-team-form .technician-checks{display:grid}}
.project-team{display:block;width:max-content;max-width:100%;margin-top:10px;padding:7px 10px;background:#e7f6e9;color:#166b26;font-weight:900}
.calendar-event.is-technician{border-left:3px solid #d89519;background:#fff4d8;color:#694400}
.technician-settings-page{display:grid;gap:18px}.technician-settings-page .settings-intro{position:relative;padding-right:min(30vw,280px);border-top:5px solid var(--green);background:linear-gradient(110deg,#fff 0%,#f5faf5 70%,#e2f4e4 100%)}.settings-intro .btn{display:inline-flex;margin-top:8px}.calendar-help ul{display:grid;gap:9px;margin:18px 0 0;padding-left:20px;color:var(--muted)}.calendar-booking-grid{display:grid;grid-template-columns:minmax(0,820px);justify-content:start}.calendar-booking-grid>.panel{width:100%}
@media(max-width:700px){.technician-settings-page .settings-intro{padding-right:20px}.calendar-booking-grid{grid-template-columns:1fr}}
.workday-checks{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 4px;padding:12px;border:1px solid var(--line)}.workday-checks legend{padding:0 6px;font-size:10px;font-weight:900;letter-spacing:1px;text-transform:uppercase}.workday-checks label{display:flex!important;flex-direction:row!important;align-items:center;gap:5px;padding:7px 9px;background:#fff;border:1px solid #dfe5dc;cursor:pointer}.workday-checks input,.online-bookable input{width:auto!important;margin:0}.work-hours{grid-template-columns:repeat(2,minmax(0,1fr))}.online-bookable{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;padding:10px;background:#eaf6eb}.slot-note{display:block;margin:-4px 0 8px;color:var(--muted)}
.absence-management{border-top:5px solid #d89519}.absence-form{padding:18px;background:#fafbf8;border:1px solid var(--line)}.absence-list{display:grid;gap:8px}.absence-list article{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px;border:1px solid var(--line);background:#fff}.absence-list article>div{display:flex;flex-direction:column;gap:4px}.absence-list article.is-past{opacity:.55}.calendar-event.is-absence{border-left:3px solid #b868cb;background:#f6eafa;color:#653070}
.request-archive{padding:0;overflow:hidden}.request-archive>summary{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px;cursor:pointer;list-style:none}.request-archive>summary::-webkit-details-marker{display:none}.request-archive>summary span:first-child{display:flex;flex-direction:column}.request-archive-list{border-top:1px solid var(--line)}.request-archive-list article{display:flex;justify-content:space-between;gap:20px;padding:18px 20px;border-top:1px solid var(--line)}.request-archive-list article:first-child{border-top:0}.request-archive-list article>div:first-child{display:flex;flex-direction:column;gap:5px}.archive-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.empty-request-state{padding:20px;background:#f7faf6;border:1px dashed #bdc9ba}.empty-request-state p{margin:5px 0 0;color:var(--muted)}.request-archive-link{font-weight:900;color:#177529}
.booking-panel{border-top:5px solid var(--green)}.booking-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.online-booking-form select:disabled{opacity:.65;cursor:wait}.personal-calendar-notice,.personal-calendar-intro{border-left:5px solid var(--green)}.personal-calendar-notice{background:linear-gradient(110deg,#fff,#eef8ef)}
@media(max-width:700px){.work-hours,.booking-controls{grid-template-columns:1fr}.absence-management .admin-columns{grid-template-columns:1fr}.absence-list article,.request-archive-list article,.request-archive>summary{align-items:stretch;flex-direction:column}.archive-actions{align-items:stretch}.archive-actions .subtle-button,.archive-actions button{width:100%;text-align:center}.booking-panel{padding:18px}.online-booking-form select{width:100%}}

.project-schedule-box{
 border:1px solid #cfd8d2;
 border-radius:16px;
 margin:18px 0;
 padding:18px;
 background:#f7faf8;
}
.project-schedule-box>legend{padding:0 8px;font-weight:800;color:#071426}
.project-appointment-box{
 display:grid;
 grid-template-columns:minmax(0,.85fr) minmax(320px,1.15fr);
 gap:24px;
 margin:24px 0;
 padding:24px;
 border:1px solid #d7dfda;
 border-radius:18px;
 background:linear-gradient(135deg,#f8fbf9,#eef7f1);
}
.project-appointment-box h3,.event-reschedule-form h4{margin-top:0}
.project-appointment-row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #dce5df}
.event-reschedule-form{margin-top:16px;padding:18px;border:1px solid #a9cfb4;border-radius:16px;background:#f4fbf6}
.event-move-panel{margin-top:14px;border:1px solid #cfd9d2;border-radius:14px;background:#f8faf9}
.event-move-panel>summary{cursor:pointer;padding:12px 14px;font-weight:800;color:#153322}
.event-move-form{display:grid;gap:12px;padding:0 14px 14px}
.document-admin-grid{display:grid;grid-template-columns:minmax(340px,.82fr) minmax(0,1.4fr);gap:24px;align-items:start}
.document-upload-form{position:sticky;top:20px}
.document-library{display:grid;gap:14px}
.document-admin-card{display:grid;grid-template-columns:48px minmax(0,1fr) minmax(190px,.55fr);gap:16px;align-items:start;padding:18px;border:1px solid #dde4df;border-radius:16px;background:#fff}
.document-type-icon{display:grid;place-items:center;width:44px;height:52px;border-radius:10px;background:#071426;color:#70d477;font-size:12px;font-weight:900;letter-spacing:.08em}
.document-main h3{margin:8px 0 4px}
.document-main p{margin-bottom:0;color:#53615a}
.document-actions{display:grid;gap:8px}
.document-actions form{display:grid;gap:8px}
.document-actions select{width:100%}
.portal-documents .panel-heading{align-items:flex-start}
.portal-document-type{margin-top:24px}
.portal-document-type>h3{margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid #dce4df}
.portal-document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.portal-document-card{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;padding:18px;border:1px solid #dce4df;border-radius:16px;background:#fff}
.portal-document-card .invoice-download{grid-column:1/-1;text-align:center}
.portal-document-card h3{margin:8px 0}
.flexible-date-option{display:flex!important;gap:12px;align-items:flex-start;padding:16px;border:1px solid #a9cfb4;border-radius:14px;background:#f1faf3}
.flexible-date-option input{width:auto!important;margin-top:4px}
.flexible-date-option span{display:grid;gap:3px}
.flexible-date-option small{font-weight:400;color:#56635b}
@media(max-width:980px){
 .document-admin-grid,.project-appointment-box{grid-template-columns:1fr}
 .document-upload-form{position:static}
}
@media(max-width:700px){
 .portal-document-grid{grid-template-columns:1fr}
 .document-admin-card{grid-template-columns:42px minmax(0,1fr)}
 .document-actions{grid-column:1/-1}
 .project-schedule-box,.project-appointment-box,.event-reschedule-form{padding:15px}
}

.spam-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.captcha-field{max-width:32rem;padding:1rem!important;border:2px solid #9eb9a2!important;border-radius:.45rem;background:#eef7ef!important;color:#111827!important;font-size:13px!important;font-weight:800;text-transform:none!important;letter-spacing:0!important}
.captcha-field input{max-width:9rem;margin-top:.55rem!important;background:#fff!important;color:#111827!important;border:1px solid #667568!important;font-size:18px!important;font-weight:800}
.request-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:.65rem;max-width:44rem;margin:.85rem 0}
.request-photo-grid a{display:block;aspect-ratio:4/3;border-radius:.65rem;overflow:hidden;border:1px solid #d7dfd8;background:#edf3ee}
.request-photo-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}
.request-photo-grid a:hover img{transform:scale(1.04)}
.customer-description{padding:1rem;border-left:4px solid #36b54a;background:#f4f8f4;line-height:1.65}
.request-type-badge{margin-left:.35rem;background:#0b1b2e!important;color:#fff!important}
.archive-drawer,.agenda-archive{margin-top:1.25rem;border:1px solid #d8e0d9;background:#f6f8f6}
.archive-drawer>summary,.agenda-archive>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;cursor:pointer;font-weight:700}
.archive-drawer[open]>summary,.agenda-archive[open]>summary{border-bottom:1px solid #d8e0d9}
.archived-row{opacity:.82;background:#f2f4f2}
.agenda-archive-list{display:grid;gap:.75rem;padding:1rem}
.archived-event{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,1fr);gap:1rem;align-items:start;padding:1rem;background:#fff;border:1px solid #e1e6e1}
.archived-event h4{margin:.45rem 0}
.apple-link-queue{margin:1.25rem 0;padding:1.2rem;border:1px solid #bfd7c2;background:linear-gradient(135deg,#f4faf5,#eef4f8)}
.apple-link-card{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.6fr);gap:1.2rem;padding:1rem 0;border-top:1px solid #d5e1d7}
.apple-link-card:first-of-type{border-top:0}
.apple-link-card h4{margin:.55rem 0;font-size:1.1rem}
.apple-link-form{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:.7rem;align-items:end}
.apple-link-form label{margin:0}
.footer-legal{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem 1.15rem;margin:.5rem 0}
.footer-legal a{font-size:.82rem;opacity:.8}
.cookie-banner{position:fixed;z-index:9999;left:1rem;right:1rem;bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;max-width:1120px;margin:auto;padding:1rem 1.1rem;background:#071426;color:#fff;border:1px solid rgba(255,255,255,.16);box-shadow:0 18px 60px rgba(0,0,0,.3)}
.cookie-banner[hidden]{display:none}
.cookie-banner p{margin:.35rem 0 0;max-width:760px;color:#d8e0e9;line-height:1.5}
.cookie-banner a{color:#6ade72;text-decoration:underline}
.cookie-actions{display:flex;flex:0 0 auto;gap:.65rem}
.cookie-actions button{min-height:44px;padding:.7rem 1rem;border:1px solid #aeb8c4;background:transparent;color:#fff;cursor:pointer}
.cookie-actions .green{border-color:#43c255}
.request-form input[type=file],.online-booking-form input[type=file]{padding:.75rem!important;background:#f5f7f5!important;border:2px dashed #829486!important;color:#111827!important;opacity:1}
.request-form input[type=file]::file-selector-button,.online-booking-form input[type=file]::file-selector-button{margin-right:.8rem;padding:.65rem .85rem;border:0;background:#38b84b;color:#071426;font-weight:900;cursor:pointer}
.request-form input[type=file]::-webkit-file-upload-button,.online-booking-form input[type=file]::-webkit-file-upload-button{margin-right:.8rem;padding:.65rem .85rem;border:0;background:#38b84b;color:#071426;font-weight:900;cursor:pointer}
.online-booking-form .flexible-date-option{margin-top:1rem}
.consent-check{display:flex!important;align-items:flex-start;gap:.65rem;padding:.85rem 0;line-height:1.45}
.consent-check input{flex:0 0 auto;width:18px!important;height:18px;margin-top:.1rem}
.consent-check a{text-decoration:underline}
@media(max-width:900px){
 .apple-link-card,.archived-event{grid-template-columns:1fr}
 .apple-link-form{grid-template-columns:1fr 1fr}
 .apple-link-form button{width:100%}
 .cookie-banner{align-items:stretch;flex-direction:column}
 .cookie-actions{display:grid;grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
 .request-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .apple-link-form{grid-template-columns:1fr}
 .cookie-banner{left:.5rem;right:.5rem;bottom:.5rem;padding:.9rem}
 .cookie-actions{grid-template-columns:1fr}
 .archive-drawer>summary,.agenda-archive>summary{align-items:flex-start;flex-direction:column}
}

form.is-submitting{position:relative;opacity:.78;pointer-events:none}
form.is-submitting button[type=submit],form.is-submitting button:not([type]){cursor:wait}
.file-selection{display:block;margin:.45rem 0 0;color:#476052;font-size:.78rem;font-weight:700;line-height:1.4;text-transform:none;letter-spacing:0}
.upload-error{color:#a42626}
@media(prefers-reduced-motion:reduce){
 form.is-submitting{transition:none}
}

:root{--soft-shadow:0 16px 42px rgba(7,20,38,.08);--strong-shadow:0 22px 60px rgba(7,20,38,.16)}
.header{box-shadow:0 8px 28px rgba(7,20,38,.06);backdrop-filter:blur(12px)}
.nav a{position:relative;padding:.5rem 0}
.nav a:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--green);transition:right .2s ease}
.nav a:hover:after,.nav a:focus-visible:after{right:0}
.btn{transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}
.btn:hover,.btn:focus-visible{transform:translateY(-2px);box-shadow:0 10px 24px rgba(7,20,38,.17)}
.hero{overflow:hidden}
.hero:after{content:"";position:absolute;inset:auto -10% -45% 48%;height:70%;background:radial-gradient(circle,rgba(56,184,75,.18),transparent 68%);pointer-events:none}
.hero>picture,.hero>picture>img,.hero>img,.hero-actions{position:relative;z-index:1}
.hero>picture{display:block;width:100%;height:100%}
.hero>picture>img{display:block;width:100%;height:100%;object-fit:contain}
.intro{background:linear-gradient(180deg,rgba(255,255,255,.54),rgba(255,255,255,0))}
.cards article,.service-card,.project-preview{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.cards article:hover,.service-card:hover{transform:translateY(-4px);box-shadow:var(--soft-shadow);border-color:#b9c8ba}
.page-hero{position:relative;overflow:hidden;box-shadow:inset 0 -1px rgba(255,255,255,.08)}
.page-hero:after{content:"";position:absolute;width:26rem;height:26rem;right:-7rem;bottom:-14rem;border:1px solid rgba(56,184,75,.34);border-radius:50%;box-shadow:0 0 0 5rem rgba(56,184,75,.045),0 0 0 10rem rgba(56,184,75,.025);pointer-events:none}
.page-hero>*{position:relative;z-index:1}
footer{border-top:1px solid rgba(255,255,255,.09)}
.backend .panel,.backend .stats article{border:1px solid #e3e8e2;box-shadow:0 10px 32px rgba(7,20,38,.045)}
.backend input:focus,.backend select:focus,.backend textarea:focus{outline:3px solid rgba(56,184,75,.18);border-color:#38b84b}
.building-create-drawer{margin:1rem 0 1.4rem;border:1px solid #cdd9ce;background:#f8fbf8}
.building-create-drawer>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;cursor:pointer;list-style:none}
.building-create-drawer>summary::-webkit-details-marker{display:none}
.building-create-drawer>summary b,.building-create-drawer>summary small{display:block}
.building-create-drawer>summary small{margin-top:.15rem;color:#68756b}
.building-create-drawer>summary>span:last-child{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#dff4e2;color:#187328;font-size:22px;font-weight:900;transition:transform .18s ease}
.building-create-drawer[open]>summary>span:last-child{transform:rotate(45deg)}
.building-create-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem;padding:0 1.1rem 1.1rem;border-top:1px solid #e0e7e0}
.building-create-form .span-2{grid-column:1/-1}
.building-notify-choice{display:flex!important;align-items:center;gap:.6rem;padding:.75rem;background:#edf8ef}
.building-notify-choice input{flex:0 0 auto;width:18px!important;height:18px;margin:0!important}
.vies-lookup{margin:.75rem 0;padding:.85rem;border:1px solid #b9d7be;background:#f0f8f1}
.vies-lookup[hidden]{display:none!important}
.vies-lookup-fields{display:grid;grid-template-columns:minmax(130px,.55fr) minmax(220px,1fr);gap:.7rem;align-items:end}
.vies-lookup-fields label{margin:0!important}
.vies-lookup-button{width:100%;min-height:43px;background:#10233a}
.vies-lookup>small{display:block;margin-top:.55rem;color:#52675a;line-height:1.45}
.vies-lookup a{font-weight:800;text-decoration:underline}
.vies-status.is-success{color:#176f27}
.vies-status.is-error{color:#9b2424}
.vies-status.is-loading{color:#53677d}
.apple-link-card-actions{display:grid;gap:.75rem;min-width:0}
.apple-quick-create-button{display:flex;align-items:center;gap:.75rem;width:100%;padding:.8rem 1rem;border:1px dashed #76a97d;background:#f8fcf8;color:#102016;text-align:left;cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.apple-quick-create-button:hover,.apple-quick-create-button:focus-visible{border-color:#2da941;background:#eff9f0;transform:translateY(-1px)}
.apple-quick-create-button>span:first-child{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:#38b84b;color:#071426;font-size:22px;font-weight:900}
.apple-quick-create-button b,.apple-quick-create-button small{display:block}
.apple-quick-create-button small{margin-top:.1rem;color:#66746a}
.apple-quick-dialog{width:min(820px,calc(100vw - 32px));max-height:min(90vh,900px);padding:0;border:0;background:#f7f9f6;color:#111827;box-shadow:0 30px 100px rgba(3,13,26,.38);overflow:auto}
.apple-quick-dialog::backdrop{background:rgba(3,12,24,.67);backdrop-filter:blur(4px)}
.apple-quick-form{padding:0}
.apple-quick-dialog-head{position:relative;display:flex;justify-content:space-between;gap:1rem;padding:1.35rem 1.5rem 1.2rem;background:#071426;color:#fff;border-bottom:5px solid #38b84b}
.apple-quick-dialog-head h2{margin:.2rem 0 .65rem;font-size:clamp(1.65rem,4vw,2.25rem);letter-spacing:-1px}
.apple-quick-dialog-head p{margin:0;color:#c7d1dc}
.apple-quick-dialog-head .eyebrow{color:#75df80}
.apple-dialog-close{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;font-size:26px;cursor:pointer}
.apple-quick-sections{display:grid;gap:1rem;padding:1.25rem 1.5rem}
.apple-quick-sections fieldset{margin:0;padding:1rem 1.1rem 1.15rem;border:1px solid #dce4db;background:#fff}
.apple-quick-sections legend{padding:0 .5rem 0 0;font-size:.86rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.apple-quick-sections legend span{display:inline-grid;place-items:center;width:25px;height:25px;margin-right:.4rem;border-radius:50%;background:#dff4e2;color:#187328}
.apple-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1rem}
.apple-quick-grid label{display:block;margin:0;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.apple-quick-grid input,.apple-quick-grid select,.apple-quick-grid textarea{width:100%;margin-top:.35rem;padding:.72rem .78rem;border:1px solid #cbd5cc;background:#fbfcfb;color:#111827;font:inherit;text-transform:none;letter-spacing:0}
.apple-quick-grid textarea{min-height:76px;resize:vertical}
.apple-quick-grid .span-2{grid-column:1/-1}
.apple-invite-choice{display:flex;align-items:flex-start;gap:.75rem;margin:0 1.5rem;padding:1rem;border:1px solid #badfc0;background:#edf8ef;cursor:pointer}
.apple-invite-choice input{flex:0 0 auto;width:18px;height:18px;margin-top:.1rem}
.apple-invite-choice b,.apple-invite-choice small{display:block}
.apple-invite-choice small{margin-top:.15rem;color:#52675a;line-height:1.45}
.apple-quick-footer{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;background:rgba(247,249,246,.96);border-top:1px solid #dce4db;backdrop-filter:blur(10px)}
.has-admin-dialog{overflow:hidden}
@media(max-width:900px){
 .apple-link-form{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
 .header{backdrop-filter:none}
 .page-hero:after{width:17rem;height:17rem}
 .apple-quick-dialog{width:100%;max-width:none;height:100%;max-height:none;margin:0}
 .apple-quick-dialog-head{padding:1rem}
 .apple-quick-sections{padding:1rem}
 .apple-quick-grid{grid-template-columns:1fr}
 .apple-quick-grid .span-2{grid-column:auto}
 .building-create-form{grid-template-columns:1fr}
 .building-create-form .span-2{grid-column:auto}
 .vies-lookup-fields{grid-template-columns:1fr}
 .apple-invite-choice{margin:0 1rem}
 .apple-quick-footer{display:grid;grid-template-columns:1fr;padding:1rem}
 .apple-quick-footer>*{width:100%}
}
@media(prefers-reduced-motion:reduce){
 .btn,.cards article,.service-card,.apple-quick-create-button,.nav a:after{transition:none}
}

:root{
 --radius-xs:8px;
 --radius-sm:12px;
 --radius-md:18px;
 --radius-lg:26px;
 --radius-xl:32px;
 --surface-shadow:0 14px 40px rgba(7,20,38,.07);
 --surface-shadow-hover:0 20px 52px rgba(7,20,38,.12);
}

html{background:var(--paper)}
body{
 font-family:Inter,"Segoe UI",Arial,sans-serif;
 -webkit-font-smoothing:antialiased;
 text-rendering:optimizeLegibility;
}
h1,h2,h3{text-wrap:balance}
p{overflow-wrap:anywhere}
button,input,select,textarea{font:inherit}

:where(a,button,input,select,textarea,summary):focus-visible{
 outline:3px solid rgba(56,184,75,.28);
 outline-offset:3px;
}

/* Knoppen en invoervelden */
.btn,
.danger-button,
.subtle-button,
.row-actions a,
.row-actions button,
.cookie-actions button,
.request-form input[type=file]::file-selector-button,
.online-booking-form input[type=file]::file-selector-button{
 border-radius:var(--radius-sm);
}
.btn{min-height:44px}
.danger-button,.subtle-button,.cookie-actions button{
 transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease;
}
.danger-button:hover,.subtle-button:hover,.cookie-actions button:hover{
 transform:translateY(-1px);
 box-shadow:0 8px 22px rgba(7,20,38,.09);
}

:where(.contact-grid,.login-card,.editor,.backend,.portal-page) input:not([type=checkbox]):not([type=radio]),
:where(.contact-grid,.login-card,.editor,.backend,.portal-page) select,
:where(.contact-grid,.login-card,.editor,.backend,.portal-page) textarea,
.admin-global-search input,
.calendar-cancel-form input,
.request-actions select{
 border-radius:var(--radius-sm);
 min-height:44px;
 transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}
:where(.contact-grid,.login-card,.editor,.backend,.portal-page) input:not([type=checkbox]):not([type=radio]):focus,
:where(.contact-grid,.login-card,.editor,.backend,.portal-page) select:focus,
:where(.contact-grid,.login-card,.editor,.backend,.portal-page) textarea:focus,
.admin-global-search input:focus{
 outline:none;
 border-color:var(--green);
 box-shadow:0 0 0 4px rgba(56,184,75,.14);
}
input[type=checkbox],input[type=radio]{accent-color:var(--green)}
.request-form input[type=file],.online-booking-form input[type=file]{border-radius:var(--radius-sm)}
.success,.error,.form-note,.empty-request-state,.portal-project-empty{
 border-radius:var(--radius-sm);
}

/* Publieke website */
.header .logo img{border-radius:10px}
.menu{border-radius:10px}
.hero,.page-hero{
 border-radius:0 0 var(--radius-xl) var(--radius-xl);
}
.hero>picture>img,.hero>img{border-radius:0 0 var(--radius-xl) var(--radius-xl)}
.cards{
 border-radius:var(--radius-lg);
 overflow:hidden;
 box-shadow:var(--surface-shadow);
}
.cards article{background:rgba(255,255,255,.7)}
.service-card,
.realization-grid article,
.empty-state{
 border-radius:var(--radius-lg);
 overflow:hidden;
 box-shadow:var(--surface-shadow);
}
.service-card:hover,.realization-grid article:hover{
 box-shadow:var(--surface-shadow-hover);
}
.realization-grid article{
 border:1px solid rgba(210,219,210,.85);
 transition:transform .2s ease,box-shadow .2s ease;
}
.realization-grid article:hover{transform:translateY(-4px)}
.project-preview{
 border-radius:var(--radius-lg);
 box-shadow:0 24px 58px rgba(0,0,0,.22);
}
.project-preview>div span{border-radius:var(--radius-sm)}
.dark-split{
 margin:0 clamp(12px,2vw,30px) 34px;
 border-radius:var(--radius-lg);
 overflow:hidden;
}
.cta{
 margin:0 clamp(12px,2vw,30px) 30px;
 border-radius:var(--radius-lg);
 box-shadow:0 18px 44px rgba(56,184,75,.17);
}
.contact-grid form{
 border-radius:var(--radius-lg);
 box-shadow:0 24px 64px rgba(7,20,38,.18);
}
.realization-cover{border-radius:0 0 var(--radius-xl) var(--radius-xl);overflow:hidden}
.detail-gallery img{border-radius:var(--radius-md);box-shadow:var(--surface-shadow)}
.site-popup{
 border-radius:var(--radius-lg);
 border-top:0;
 box-shadow:0 28px 80px rgba(7,17,31,.25);
}
.site-popup:before{
 content:"";
 position:absolute;
 left:0;
 right:0;
 top:0;
 height:6px;
 border-radius:var(--radius-lg) var(--radius-lg) 0 0;
 background:var(--green);
}
.site-popup-close{border-radius:50%}
.cookie-banner{border-radius:var(--radius-md)}
footer{border-radius:var(--radius-xl) var(--radius-xl) 0 0}

/* Login en installatie */
.login-card{
 border-radius:var(--radius-lg);
 overflow:hidden;
 box-shadow:0 30px 90px rgba(0,0,0,.32);
}
.login-card img{
 border-radius:var(--radius-sm);
 padding:8px;
}
.login-card .btn{width:100%;margin-top:8px}

/* Beheerportaal */
.side nav a{border-radius:var(--radius-sm);margin:2px 0}
.side nav a.active{
 border-left:0;
 box-shadow:inset 4px 0 0 var(--green);
}
.admin-user{padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.72)}
.backend .panel,
.backend .stats article{
 border-radius:var(--radius-md);
 box-shadow:var(--surface-shadow);
}
.backend .stats article{position:relative;overflow:hidden}
.backend .stats article:after{
 content:"";
 position:absolute;
 width:84px;
 height:84px;
 right:-38px;
 top:-38px;
 border-radius:50%;
 background:rgba(56,184,75,.12);
}
.client-filter-bar,
.admin-global-search input,
.search-result-grid>a,
.page-tabs,
.current-images figure,
.managed-block-list article,
.media-grid article,
.gallery-admin article{
 border-radius:var(--radius-sm);
}
.client-filter-bar{
 border-left:0;
 box-shadow:0 12px 34px rgba(7,20,38,.12);
}
.client-filter-bar:before{
 content:"";
 width:5px;
 align-self:stretch;
 border-radius:999px;
 background:var(--green);
}
.page-tabs a{border-radius:10px}
.data-row,
.request-card,
.approval-card,
.syndic-request-summary,
.activity-list article,
.calendar-list article{
 margin:9px 0;
 padding:15px;
 border:1px solid #e0e6df;
 border-radius:var(--radius-sm);
 background:#fbfcfb;
}
.request-card,.approval-card{padding:20px}
.customer-description{
 padding:13px 15px;
 border-radius:var(--radius-sm);
 background:#f1f7f2;
}
.request-photo-grid img,
.media-grid img,
.gallery-admin img,
.step-proof-gallery img,
.client-step-photos img,
.page-image-preview{
 border-radius:var(--radius-sm);
}
.badge,.template-chip,.event-team,.project-team{border-radius:999px}
.request-drawer,
.archive-drawer,
.agenda-archive,
.request-archive,
.building-create-drawer,
.event-move-panel{
 border-radius:var(--radius-md);
 overflow:hidden;
}
.building-admin-card,
.syndic-building-card,
.building-project-group,
.technician-card,
.absence-form,
.absence-list article,
.project-step-admin,
.project-schedule-box,
.project-appointment-box,
.event-reschedule-form,
.document-admin-card,
.portal-document-card,
.flexible-date-option,
.apple-link-card-actions,
.vies-lookup,
.apple-quick-create-button{
 border-radius:var(--radius-md);
}
.building-admin-card,.syndic-building-card{
 border-left-width:0;
 box-shadow:inset 5px 0 0 #9aa39a,var(--surface-shadow);
}
.building-admin-card.status-goedgekeurd,.syndic-building-card.status-goedgekeurd{
 box-shadow:inset 5px 0 0 var(--green),var(--surface-shadow);
}
.building-admin-card.status-geweigerd,.syndic-building-card.status-geweigerd{
 box-shadow:inset 5px 0 0 #a73030,var(--surface-shadow);
}
.technician-checks,
.workday-checks,
.permission-grid{
 border-radius:var(--radius-sm);
}
.technician-checks label,
.workday-checks label,
.permission-grid label,
.online-bookable,
.complete-check,
.building-notify-choice,
.apple-invite-choice{
 border-radius:var(--radius-sm);
}
.step-number{border-radius:10px}
.month-calendar{
 border-radius:var(--radius-md);
 overflow:hidden;
 box-shadow:var(--surface-shadow);
}
.calendar-event{border-radius:9px}
.calendar-list time{border-radius:10px}
.document-type-icon{border-radius:var(--radius-sm)}
.apple-quick-dialog{
 border-radius:var(--radius-lg);
}
.apple-quick-dialog-head{
 border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.apple-dialog-close{border-radius:50%}
.apple-quick-sections fieldset{border-radius:var(--radius-md)}
.apple-quick-footer{border-radius:0 0 var(--radius-lg) var(--radius-lg)}

/* Klantenportaal */
.portal-page>header{border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.portal-layout>aside{border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.portal-layout>aside nav a{
 border-radius:10px;
 padding-left:10px;
 padding-right:10px;
}
.portal-layout>aside nav a:hover{background:#eef7ef}
.portal-card,
.portal-layout .panel,
.portal-document-card{
 border-radius:var(--radius-md);
 box-shadow:var(--surface-shadow);
}
.client-step{
 margin:8px 0;
 padding:15px;
 border:1px solid #e1e7e0;
 border-radius:var(--radius-sm);
 background:#fbfcfb;
}

@media(max-width:650px){
 :root{--radius-md:16px;--radius-lg:20px;--radius-xl:24px}
 .nav{border-radius:0 0 var(--radius-md) var(--radius-md)}
 .hero,.hero>picture>img,.hero>img,.page-hero{border-radius:0 0 var(--radius-lg) var(--radius-lg)}
 .dark-split,.cta{margin-left:10px;margin-right:10px}
 .side nav a{border-radius:10px}
 .admin-user{background:transparent;padding:0}
 .client-filter-bar:before{display:none}
 .apple-quick-dialog{border-radius:0}
 .apple-quick-dialog-head,.apple-quick-footer{border-radius:0}
 .site-popup{border-radius:var(--radius-md)}
 .cookie-banner{border-radius:var(--radius-sm)}
}

@media(prefers-reduced-motion:reduce){
 .danger-button,.subtle-button,.realization-grid article{transition:none}
}

:root{--emergency:#d94a3d;--emergency-dark:#8d201a;--warning:#e29b25}
.emergency-page,.timeclock-page{display:grid;gap:20px;margin-top:28px}
.dashboard-emergency-alert{display:flex;align-items:center;gap:15px;margin:26px 0 -12px;padding:17px 20px;border:1px solid #efb9b4;border-radius:17px;background:#fff2f0;color:#67201a;box-shadow:0 12px 32px rgba(141,32,26,.07)}
.dashboard-emergency-alert div{display:grid}.dashboard-emergency-alert small{color:#80544f}.dashboard-emergency-alert strong{margin-left:auto}
.emergency-hero,.timeclock-hero{
 display:flex;align-items:center;justify-content:space-between;gap:30px;padding:32px 34px;border-radius:24px;background:linear-gradient(125deg,#071426,#10253d);color:#fff;box-shadow:0 22px 56px rgba(7,20,38,.18)
}
.emergency-hero{border-bottom:6px solid var(--emergency)}
.emergency-hero h2,.timeclock-hero h2{margin:7px 0 10px;font-size:clamp(35px,5vw,58px)}
.emergency-hero p,.timeclock-hero p{margin:0;color:#c4cfda}
.emergency-price{flex:0 0 min(350px,38%);padding:18px 20px;border:1px solid rgba(255,255,255,.16);border-radius:17px;background:rgba(255,255,255,.08)}
.emergency-price small,.emergency-price strong{display:block}.emergency-price small{color:#ffb9b3;text-transform:uppercase;letter-spacing:1px}.emergency-price strong{margin-top:7px;font-size:20px}
.emergency-price>a{display:inline-flex;margin-top:11px;color:#dff8e3;font-size:11px;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.emergency-button{background:var(--emergency);color:#fff}.emergency-button:hover{background:#c43b30}
.calendar-event.is-emergency{background:#ffe1dd!important;color:#7e211a!important;border-left:3px solid var(--emergency)}
.emergency-badge{background:#ffe6e3;color:var(--emergency-dark)}
.emergency-settings,.emergency-create-form{margin:0!important}
.emergency-settings{border-top:5px solid var(--warning)!important}
.emergency-create-form{border-top:5px solid var(--emergency)!important}
.emergency-request-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:24px;margin-top:15px;padding:22px;border:1px solid #f0c5c1;border-radius:18px;background:#fffafa;box-shadow:0 13px 35px rgba(141,32,26,.06)}
.emergency-card-head{display:flex;align-items:center;justify-content:space-between;gap:15px}
.emergency-request-card h3,.emergency-intervention-card h3{font-size:24px;margin:13px 0 5px}
.emergency-dispatch-form{align-self:start;padding:18px;border-radius:15px;background:#fff;border:1px solid #ead9d7}
.emergency-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.emergency-intervention-card{display:flex;flex-direction:column;min-width:0;padding:20px;border:1px solid #e2e7e1;border-radius:18px;background:#fff;box-shadow:0 13px 35px rgba(7,20,38,.06)}
.emergency-intervention-card.status-onderweg{border-top:5px solid var(--warning)}
.emergency-intervention-card.status-ter-plaatse{border-top:5px solid var(--emergency)}
.emergency-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0}
.emergency-metrics span{padding:12px;border-radius:12px;background:#f2f5f1}.emergency-metrics small,.emergency-metrics b{display:block}.emergency-metrics small{color:var(--muted)}
.emergency-status-form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-top:auto}.emergency-status-form label{margin:0!important}.emergency-status-form select{width:100%}
.portal-emergency-panel{padding:0!important;overflow:hidden;border:1px solid #efc4c0!important}
.portal-emergency-head{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:26px 28px;background:linear-gradient(125deg,#071426,#18263a);color:#fff;border-bottom:6px solid var(--emergency)}
.portal-emergency-head h2{margin:8px 0 10px;font-size:clamp(30px,4vw,44px)}.portal-emergency-head p{margin:0;color:#c9d2dc}
.portal-emergency-price{flex:0 0 min(310px,38%);padding:15px 17px;border-radius:15px;background:rgba(255,255,255,.1)}.portal-emergency-price small,.portal-emergency-price strong{display:block}.portal-emergency-price small{color:#ffb9b3;text-transform:uppercase;font-weight:900}.portal-emergency-price strong{margin-top:5px}
.portal-emergency-form{padding:24px 28px}.portal-emergency-form>.emergency-button{width:100%;min-height:54px}
.portal-emergency-history{padding:0 28px 25px}

.timeclock-hero{border-bottom:6px solid var(--green)}
.offline-indicator{display:flex;align-items:center;gap:9px;padding:12px 15px;border-radius:999px;background:#e7f6e9;color:#176d25;white-space:nowrap}
.offline-indicator>span{width:10px;height:10px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(56,184,75,.15)}
.offline-indicator.is-offline{background:#fff0dc;color:#81520c}.offline-indicator.is-offline>span{background:var(--warning);box-shadow:0 0 0 5px rgba(226,155,37,.18)}
.timeclock-current{display:grid;gap:16px}
.active-clock-banner{display:flex;align-items:center;gap:16px;padding:18px 22px;border-radius:18px;background:#e9f8eb;border:1px solid #bfe0c3}
.active-clock-banner div{display:grid}.active-clock-banner small{color:#287533;text-transform:uppercase;font-weight:900;letter-spacing:1px}.active-clock-banner b{font-size:19px}.active-clock-banner span:last-child{color:#52675a}
.clock-pulse{width:16px;height:16px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(56,184,75,.6);animation:clockPulse 1.8s infinite}
@keyframes clockPulse{70%{box-shadow:0 0 0 13px rgba(56,184,75,0)}100%{box-shadow:0 0 0 0 rgba(56,184,75,0)}}
.timeclock-event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.timeclock-event-card{display:grid;grid-template-columns:66px minmax(0,1fr);gap:16px;padding:20px;border:1px solid #dce3dc;border-radius:20px;background:#fff;box-shadow:0 14px 38px rgba(7,20,38,.07)}
.timeclock-event-card.is-running{border-color:#86c68e;box-shadow:0 16px 44px rgba(56,184,75,.13)}
.timeclock-date{display:flex;flex-direction:column;align-items:center;justify-content:center;width:62px;height:68px;border-radius:15px;background:#071426;color:#fff}.timeclock-date b{font-size:24px}.timeclock-date small{color:#7cdf86;font-size:10px;font-weight:900}
.timeclock-event-content h3{margin:9px 0 4px;font-size:22px}.timeclock-event-content p{margin:0 0 5px}.timeclock-event-content>small{color:var(--muted)}
.timeclock-total{display:inline-flex;align-items:end;gap:8px;margin-top:13px;padding:8px 11px;border-radius:10px;background:#f0f5f0}.timeclock-total small,.timeclock-total b{display:block}
.timeclock-punch-form{grid-column:1/-1;display:grid;gap:7px}.timeclock-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:58px;border:0;border-radius:15px;font-weight:900;font-size:16px;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}
.timeclock-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 28px rgba(7,20,38,.15)}
.timeclock-button.is-start{background:var(--green);color:#071426}.timeclock-button.is-stop{background:#071426;color:#fff}.timeclock-button:disabled{opacity:.45;cursor:not-allowed}
.offline-saved{padding:8px 10px;border-radius:9px;background:#fff0dc;color:#81520c;text-align:center;font-weight:800}
.timeclock-report{margin:0!important}
.project-time-summary{margin:18px 0;padding:20px;border:1px solid #cfe0d1;border-radius:18px;background:#f5faf6}.project-time-summary>.panel-heading>strong{font-size:26px;color:#176d25}
.offline-timeclock-shell{width:min(900px,100%);margin:auto;padding:22px}.timeclock-offline-page{min-height:100vh;background:#eef1ed}.offline-timeclock-shell>header{display:flex;align-items:center;gap:15px;margin-bottom:16px;padding:18px 22px;border-radius:20px;background:#071426;color:#fff}.offline-timeclock-shell>header img{width:58px;height:58px;border-radius:14px}.offline-timeclock-shell h1{margin:4px 0;font-size:30px}.offline-timeclock-shell>.offline-indicator{margin:14px 0}.offline-empty{padding:35px;border-radius:20px;background:#fff;text-align:center}

@media(max-width:1100px){.emergency-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .emergency-hero,.timeclock-hero{align-items:flex-start;flex-direction:column;padding:25px 22px}.emergency-price{flex:auto;width:100%}
 .emergency-request-card,.timeclock-event-grid{grid-template-columns:1fr}.emergency-grid{grid-template-columns:1fr}
 .dashboard-emergency-alert{align-items:flex-start;flex-wrap:wrap}.dashboard-emergency-alert strong{width:100%;margin-left:31px}
 .portal-emergency-head{align-items:flex-start;flex-direction:column;padding:22px}.portal-emergency-price{flex:auto;width:100%}.portal-emergency-form{padding:20px}.portal-emergency-history{padding:0 20px 20px}
 .emergency-status-form{grid-template-columns:1fr}.emergency-status-form .btn{width:100%}
 .timeclock-event-card{grid-template-columns:55px minmax(0,1fr);padding:16px}.timeclock-date{width:52px;height:60px}.timeclock-punch-form{grid-column:1/-1}
 .offline-indicator{white-space:normal}
}
@media(prefers-reduced-motion:reduce){.clock-pulse{animation:none}.timeclock-button{transition:none}}

:root{--emergency-red:#d94a3d;--emergency-red-dark:#8d201a}
.nav-emergency{color:var(--emergency-red-dark)!important}
.nav-emergency::before{content:"";display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--emergency-red)}
.public-emergency-page{background:#f4f5f1}
.public-emergency-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr);gap:7vw;align-items:end;min-height:510px;padding:105px 7vw 70px;background:radial-gradient(circle at 80% 10%,rgba(56,184,75,.14),transparent 35%),#071426;color:#fff;border-bottom:7px solid var(--emergency-red)}
.public-emergency-hero h1{max-width:980px;margin:15px 0 22px}
.public-emergency-hero>div>p:last-child{max-width:720px;color:#c8d1db;font-size:19px}
.public-emergency-hero aside{padding:25px;border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.08)}
.public-emergency-hero aside small,.public-emergency-hero aside strong,.public-emergency-hero aside span{display:block}
.public-emergency-hero aside small{color:#ffaaa3;text-transform:uppercase;letter-spacing:1px;font-weight:900}
.public-emergency-hero aside strong{margin:9px 0 14px;font-size:22px}
.public-emergency-hero aside span{color:#c8d1db}
.public-emergency-layout{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:7vw;align-items:start;padding:80px 7vw}
.public-emergency-info{position:sticky;top:130px}
.public-emergency-info h2,.public-emergency-form h2{font-size:clamp(33px,4vw,50px);margin:10px 0 24px}
.public-emergency-info>p{color:#5f6871;font-size:17px}
.public-emergency-info ol{padding:0;margin:34px 0;list-style:none;counter-reset:emergency-step}
.public-emergency-info li{position:relative;padding:0 0 25px 50px;counter-increment:emergency-step}
.public-emergency-info li::before{content:counter(emergency-step);position:absolute;left:0;top:0;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#071426;color:#fff;font-size:11px;font-weight:900}
.public-emergency-info li:not(:last-child)::after{content:"";position:absolute;left:15px;top:35px;bottom:4px;width:1px;background:#ccd3cc}
.public-emergency-info li b,.public-emergency-info li span{display:block}
.public-emergency-info li span{margin-top:4px;color:#697078}
.safety-notice{padding:19px 21px;border-left:5px solid var(--emergency-red);background:#fff0ee;color:#6f211b}
.safety-notice p{margin:5px 0 0}.safety-notice a{font-size:19px;font-weight:900;text-decoration:underline}
.public-emergency-form{margin:0!important;padding:35px!important;background:#fff!important;color:#111827!important;border-top:7px solid var(--emergency-red);box-shadow:0 18px 55px rgba(7,20,38,.09)}
.public-emergency-form label{color:#111827!important}
.public-emergency-form input,.public-emergency-form select,.public-emergency-form textarea{width:100%;display:block;margin-top:7px;padding:13px;border:1px solid #b7c0b9;background:#f8faf8;color:#111827}
.public-emergency-form textarea{min-height:135px}
.public-emergency-form input:focus,.public-emergency-form select:focus,.public-emergency-form textarea:focus{outline:3px solid rgba(56,184,75,.22);border-color:#29983b}
.public-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.public-emergency-form input[type=file]{padding:12px;border:2px dashed #87998a;background:#f4f8f4}
.public-emergency-form input[type=file]::file-selector-button{margin-right:10px;padding:10px 13px;border:0;background:#071426;color:#fff;font-weight:900;cursor:pointer}
.human-check{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,210px);align-items:center;gap:18px;margin:17px 0;padding:17px 18px;border:1px solid #b9d3bd;border-left:5px solid #38b84b;border-radius:10px;background:linear-gradient(115deg,#eff8f0,#fff);color:#111827}
.human-check-copy{display:flex;align-items:center;gap:13px}
.human-check-copy>span{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:50%;background:#071426;color:#6fe07d;font-size:18px;font-weight:900}
.human-check-copy div{display:grid;gap:2px}
.human-check-copy small{color:#4f6553;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.11em}
.human-check-copy b{font-size:17px}
.human-check label{margin:0!important;color:#111827!important;font-size:10px!important}
.human-check input{width:100%!important;min-height:46px;margin-top:5px!important;padding:10px 12px!important;border:1px solid #829688!important;background:#fff!important;color:#111827!important;font-size:18px!important;font-weight:900}
.public-emergency-submit{width:100%;min-height:58px;background:var(--emergency-red);font-size:11px}
.public-emergency-submit:hover{background:#bf382e}
.public-form-note{margin:13px 0 0;text-align:center;color:#6a727a;font-size:12px}
.emergency-contact{display:flex;flex-wrap:wrap;gap:7px 16px;margin:10px 0 15px}
.emergency-contact a{font-weight:800;text-decoration:underline}
.emergency-contact small{width:100%;padding:10px;border-left:3px solid var(--emergency-red);background:#fff}
@media(max-width:1100px){.header .nav{gap:15px}.header .header-btn{padding-inline:14px}}
@media(max-width:900px){.header .menu{display:block;margin-left:auto}.header .header-btn{display:none}.header .nav{display:none;position:absolute;top:82px;left:0;right:0;flex-direction:column;gap:0;padding:18px;background:#fff;box-shadow:0 16px 30px #0002}.header .nav.open{display:flex}.header .nav a{padding:11px 13px}.public-emergency-hero,.public-emergency-layout{grid-template-columns:1fr}.public-emergency-hero{min-height:auto;padding:75px 5vw 50px}.public-emergency-hero aside{max-width:520px}.public-emergency-layout{padding:55px 5vw}.public-emergency-info{position:static}}
@media(max-width:650px){.header .nav{top:70px}.nav-emergency{padding:13px!important;background:#fff0ee}.public-emergency-hero{padding:60px 20px 40px}.public-emergency-layout{padding:40px 20px}.public-emergency-form{padding:23px!important}.public-form-grid,.human-check{grid-template-columns:1fr}}

.project-client-picker{margin:18px 0;padding:18px;border:1px solid #cbd5cc;background:#f7faf7}
.project-client-picker legend{padding:0 8px;font-weight:900}
.project-client-picker>p{margin:0 0 13px;color:#697078}
.project-client-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:360px;overflow:auto;padding-right:4px}
.project-client-grid label{display:flex!important;align-items:flex-start;gap:9px;margin:0!important;padding:11px 12px;border:1px solid #dce4dd;background:#fff;text-transform:none!important;letter-spacing:0!important;font-size:13px!important;cursor:pointer}
.project-client-grid input{flex:0 0 auto;width:18px!important;height:18px;margin:1px 0 0!important}
.project-client-grid label:has(input:checked){border-color:#38b84b;background:#eef9ef}
.project-client-grid label.is-primary{border-color:#071426;background:#eef2f5}
.project-client-grid label small{display:block;color:#697078}
.project-client-pills{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 15px}
.project-client-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:99px;background:#e7f4e8;color:#176b25;font-size:11px;font-weight:900}
.project-client-pill.is-primary{background:#071426;color:#fff}
.shared-project-badge{display:inline-flex;margin-bottom:8px;padding:5px 8px;border-radius:99px;background:#e7f4e8;color:#176b25;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.6px}
.shared-project-group{border-left:5px solid #38b84b!important}
@media(max-width:700px){.project-client-grid{grid-template-columns:1fr}}

.project-client-tools{display:grid;gap:11px;margin:14px 0}
.project-client-search{display:block!important;margin:0!important;text-transform:none!important;letter-spacing:0!important}
.project-client-search>span{display:block;margin-bottom:6px;color:#182331;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.project-client-search input{width:100%;min-height:46px;padding:11px 14px;border:1px solid #b8c5ba;background:#fff;font-size:14px}
.project-client-search input:focus{border-color:#31ad46;box-shadow:0 0 0 3px rgba(49,173,70,.12);outline:0}
.project-client-selection{display:flex;flex-wrap:wrap;align-items:center;gap:7px;min-height:42px;padding:8px 10px;border:1px dashed #b8c5ba;background:#eef4ef}
.project-client-selection>span{color:#647067;font-size:12px}
.project-client-selection>b{margin-right:3px;color:#17231b;font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.project-client-selected-pill{width:auto!important;min-height:30px!important;margin:0!important;padding:5px 9px!important;border:1px solid #a8d8af!important;border-radius:99px!important;background:#fff!important;color:#176b25!important;font-size:11px!important;font-weight:900!important;line-height:1.2!important}
.project-client-selected-pill:hover{border-color:#2fae45!important;background:#e8f8eb!important}
.project-client-grid [hidden],.project-client-grid .is-primary-hidden{display:none!important}
.project-client-empty{margin:10px 0 0!important;padding:12px;border:1px dashed #c8d1ca;background:#fff;color:#667068!important;font-size:13px}
.project-client-primary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 13px;padding:11px 13px;border-left:4px solid #38b84b;background:#071426;color:#fff}
.project-client-primary span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.09em;opacity:.65}
.project-client-primary b{text-align:right}
.timeclock-identity-picker{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,360px);align-items:end;gap:24px;margin-bottom:22px;border-left:6px solid #38b84b!important;background:linear-gradient(120deg,#fff,#f0f8f1)!important}
.timeclock-identity-picker h2{margin:2px 0 6px}
.timeclock-identity-picker p{margin:0;color:#5f6b63}
.timeclock-identity-picker label{margin:0!important}
.timeclock-identity-picker select{min-height:50px;border-color:#94b99b;background:#fff;font-weight:800}
.client-file-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px;border-left:6px solid #38b84b;background:linear-gradient(125deg,#071426,#10283d);color:#fff}
.client-file-header h2{margin:3px 0 8px;color:#fff}
.client-file-header p{margin:0;color:rgba(255,255,255,.72)}
.client-file-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.client-file-actions a,.client-file-actions button{display:inline-flex;align-items:center;min-height:39px;padding:8px 12px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.08);color:#fff;font:900 11px Arial,sans-serif;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}
.client-file-actions a:hover,.client-file-actions button:hover{background:#38b84b;border-color:#38b84b;color:#071426}
.client-file-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin:18px 0;background:#dce4de;border:1px solid #dce4de}
.client-file-stat{padding:16px;background:#fff}
.client-file-stat b{display:block;font-size:23px;color:#071426}
.client-file-stat small{color:#657069;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.client-file-section{margin-top:18px}
.client-file-section .data-row{align-items:flex-start}
.client-file-empty{padding:18px;border:1px dashed #c9d2cb;background:#fafcfb;color:#657069}
.client-file-dialog{width:min(980px,calc(100vw - 28px));max-height:min(92vh,980px);padding:0;border:0;background:#f5f7f4;color:#111827;box-shadow:0 30px 100px rgba(4,15,28,.4);overflow:auto}
.client-file-dialog::backdrop{background:rgba(4,13,25,.72);backdrop-filter:blur(3px)}
.client-file-dialog[open]{animation:clientDialogIn .18s ease-out}
@keyframes clientDialogIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
.client-file-dialog-head{position:sticky;top:0;z-index:3;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 25px;background:#071426;color:#fff;border-bottom:5px solid #38b84b}
.client-file-dialog-head h2{margin:5px 0 4px;color:#fff;font-size:clamp(28px,4vw,43px)}
.client-file-dialog-head p{margin:0;color:#b9c5cf}
.client-file-dialog-head>button{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:27px;line-height:1;cursor:pointer}
.client-file-dialog-head>button:hover{background:#38b84b;color:#071426}
.client-file-dialog-form{padding:24px 26px 28px}
.client-file-dialog-form>.project-client-picker,.client-file-dialog-form>.project-schedule-box{margin-top:20px}
.client-file-dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:18px;border-top:1px solid #d6ded8}
.client-file-dialog-actions .subtle-button{min-height:44px;padding:10px 15px}
@media(max-width:900px){
 .timeclock-identity-picker{grid-template-columns:1fr}
 .client-file-header{display:block}
 .client-file-actions{justify-content:flex-start;margin-top:18px}
 .client-file-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
 .project-client-picker{padding:14px}
 .project-client-selection{align-items:flex-start}
 .client-file-stats{grid-template-columns:1fr}
 .client-file-dialog{width:calc(100vw - 14px);max-height:96vh}
 .client-file-dialog-head{padding:17px}
 .client-file-dialog-form{padding:17px}
 .client-file-dialog-actions{align-items:stretch;flex-direction:column-reverse}
 .client-file-dialog-actions>*{width:100%}
}

/* V29 · juridische pagina's, e-mailbeheer en realisatiegalerij */
.legal-content{max-width:960px;margin:0 auto;color:#33404c}
.legal-content h2{margin:48px 0 15px;padding-top:28px;border-top:1px solid #d9e0d9;color:#071426;font-size:clamp(25px,3vw,38px);line-height:1.15}
.legal-content h2:first-child{margin-top:0;padding-top:0;border-top:0}
.legal-content h3{margin:30px 0 10px;color:#0d2035;font-size:20px}
.legal-content p{margin:0 0 18px;font-size:16px;line-height:1.78}
.legal-content ul{margin:0 0 24px;padding-left:23px}
.legal-content li{margin:8px 0;line-height:1.65}

.email-admin-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(390px,.85fr);gap:24px;align-items:start}
.email-admin-layout>div{display:grid;gap:20px}
.email-design-form h2,.email-preview-panel h2,.email-test-form h2{margin-top:5px}
.email-logo-current{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;padding:18px;background:#071426;color:#fff}
.email-logo-current span{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.email-logo-current img{display:block;max-width:210px;max-height:72px;width:auto;height:auto;background:#fff}
.email-color-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.email-color-grid label{margin:0!important}
.email-color-grid input[type=color]{width:100%;height:52px;padding:5px;cursor:pointer}
.legal-company-settings{margin:30px -2px 24px;padding:24px;border:1px solid #d5ded6;background:#f4f8f3}
.legal-live-links{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.legal-live-links a{display:inline-flex;padding:9px 12px;background:#fff;border:1px solid #c8d3ca;font-size:11px;font-weight:900}
.email-preview-panel{position:sticky;top:22px}
.email-preview-panel iframe{display:block;width:100%;height:660px;margin-top:18px;border:1px solid #d8e0d9;background:#f3f6f2}
.email-scope-list ul{margin:12px 0 0;padding-left:20px}
.email-scope-list li{margin:10px 0;color:#516056}

.gallery-sort-panel{display:block!important}
.gallery-sort-heading{grid-column:1/-1;display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid #d7dfd8}
.gallery-sort-heading h3{margin:3px 0 6px}
.gallery-sort-heading p{margin:0;color:#637066}
.gallery-sort-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.gallery-sort-grid article{position:relative;display:grid;grid-template-rows:180px auto auto;gap:8px;padding:10px;border:1px solid #cdd7cf;background:#fff;box-shadow:0 7px 24px rgba(7,20,38,.06);transition:transform .16s,box-shadow .16s,border-color .16s}
.gallery-sort-grid article.is-dragging{opacity:.55;transform:scale(.97);border-color:#38b84b;box-shadow:0 15px 40px rgba(7,20,38,.2)}
.gallery-sort-grid article img{display:block;width:100%;height:180px;object-fit:cover}
.gallery-drag-handle{position:absolute;z-index:2;top:17px;right:17px;display:grid!important;place-items:center;width:42px!important;height:42px!important;min-height:42px!important;margin:0!important;padding:0!important;border:1px solid rgba(255,255,255,.55)!important;border-radius:50%!important;background:rgba(7,20,38,.88)!important;color:#fff!important;font-size:21px!important;cursor:grab!important;touch-action:none}
.gallery-drag-handle:active{cursor:grabbing!important;background:#38b84b!important;color:#071426!important}
.gallery-order-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.gallery-order-buttons button{min-height:38px;padding:7px!important;border:1px solid #cbd5cd!important;background:#f3f7f2!important;color:#18251b!important;font-size:10px!important;font-weight:900!important}
.gallery-sort-grid .danger-button{width:100%}

.realization-cover-media{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;background:#071426;cursor:zoom-in}
.realization-cover-media img{display:block;width:100%;height:100%;object-fit:cover;opacity:.55}
.realization-cover-media:focus-visible,.realization-gallery-photo:focus-visible{outline:4px solid #8be000;outline-offset:-4px}
.realization-cover>div{pointer-events:none}
.detail-gallery .realization-gallery-photo{display:block;width:100%;height:430px;margin:0;padding:0;border:0;background:#071426;overflow:hidden;cursor:zoom-in}
.detail-gallery .realization-gallery-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .28s ease}
.detail-gallery .realization-gallery-photo:hover img{transform:scale(1.025)}
.detail-gallery .realization-gallery-photo:nth-child(3n){grid-column:1/-1}
.realization-lightbox{width:100vw;max-width:none;height:100vh;max-height:none;margin:0;padding:0;border:0;background:rgba(3,10,19,.96);color:#fff;overflow:hidden}
.realization-lightbox::backdrop{background:rgba(3,10,19,.96)}
.realization-lightbox[open]{display:grid;grid-template-columns:74px minmax(0,1fr) 74px;align-items:center}
.realization-lightbox figure{display:grid;grid-template-rows:minmax(0,1fr) auto;align-items:center;justify-items:center;gap:15px;width:100%;height:100vh;margin:0;padding:36px 12px 24px;box-sizing:border-box}
.realization-lightbox figure img{display:block;max-width:100%;max-height:calc(100vh - 105px);width:auto;height:auto;object-fit:contain}
.realization-lightbox figcaption{min-height:20px;color:#cad3dc;font-size:14px;text-align:center}
.lightbox-close{position:fixed;z-index:3;top:18px;right:18px;display:grid;place-items:center;width:50px;height:50px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:32px;cursor:pointer}
.lightbox-nav{display:grid;place-items:center;width:54px;height:72px;margin:auto;padding:0;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.07);color:#fff;font-size:46px;cursor:pointer}
.lightbox-close:hover,.lightbox-nav:hover{background:#38b84b;color:#071426;border-color:#38b84b}
.lightbox-prev{grid-column:1}
.realization-lightbox figure{grid-column:2}
.lightbox-next{grid-column:3}

@media(max-width:1050px){
 .email-admin-layout{grid-template-columns:1fr}
 .email-preview-panel{position:static}
 .gallery-sort-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:750px){
 .legal-content h2{margin-top:36px;padding-top:22px;font-size:27px}
 .legal-content p{font-size:15px;line-height:1.7}
 .email-color-grid{grid-template-columns:1fr}
 .email-logo-current{align-items:flex-start;flex-direction:column}
 .email-preview-panel iframe{height:570px}
 .gallery-sort-heading{align-items:stretch;flex-direction:column}
 .gallery-sort-heading form,.gallery-sort-heading .btn{width:100%}
 .gallery-sort-grid{grid-template-columns:1fr}
 .gallery-sort-grid article{grid-template-rows:240px auto auto}
 .gallery-sort-grid article img{height:240px}
 .detail-gallery .realization-gallery-photo,.detail-gallery .realization-gallery-photo:nth-child(3n){height:280px;grid-column:auto}
 .realization-lightbox[open]{grid-template-columns:52px minmax(0,1fr) 52px}
 .realization-lightbox figure{padding:68px 5px 18px}
 .realization-lightbox figure img{max-height:calc(100vh - 135px)}
 .lightbox-nav{width:42px;height:58px;font-size:36px}
}

/* V30 · mobiele verfijning voor website, klantenportaal en beheer */
.mobile-admin-nav-toggle,
.mobile-admin-logout{display:none}

html,
body{max-width:100%}

input,
select,
textarea,
button{font:inherit}

@media(max-width:900px){
 .header .nav a{
  display:flex;
  align-items:center;
  min-height:46px;
 }
 .header .nav.open{
  max-height:calc(100dvh - 70px);
  overflow-y:auto;
  overscroll-behavior:contain;
 }
 .portal-layout>main,
 .admin-main{min-width:0}
 .email-admin-layout{grid-template-columns:minmax(0,1fr)}

 /* Ook op kleinere tablets blijft het beheer één duidelijke mobiele kolom. */
 body.backend{display:block!important;width:100%}
 body.backend>.side{
  position:sticky;
  top:0;
  z-index:100;
  display:block!important;
  width:100%;
  padding:8px 10px;
  border-bottom:1px solid rgba(255,255,255,.12);
  box-shadow:0 10px 28px rgba(7,20,38,.22);
 }
 .mobile-admin-nav-toggle{
  display:grid;
  grid-template-columns:26px auto minmax(0,1fr);
  align-items:center;
  gap:8px;
  width:100%;
  min-height:50px;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:#1b2939;
  color:#fff;
  text-align:left;
  cursor:pointer;
 }
 .mobile-admin-nav-toggle>b{
  min-width:0;
  overflow:hidden;
  text-align:right;
  text-overflow:ellipsis;
  white-space:nowrap;
 }
 body.backend>.side>img,
 body.backend>.side>b,
 body.backend>.side>a:last-child{display:none!important}
 body.backend>.side nav{
  display:flex;
  flex-direction:column!important;
  gap:3px;
  max-height:calc(100dvh - 76px);
  margin-top:8px;
  padding:5px;
  overflow-x:hidden!important;
  overflow-y:auto;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:#101c2b;
 }
 body.admin-nav-enhanced>.side nav:not(.is-open){display:none}
 body.backend>.side nav a{
  display:flex;
  align-items:center;
  width:100%;
  min-height:46px;
  padding:11px 13px;
  color:#d5dce4;
  font-size:13px;
  white-space:normal;
 }
 body.backend>.side nav .mobile-admin-logout{display:flex;color:#ffb8b2}
 .admin-main{width:100%;padding-left:16px!important;padding-right:16px!important}
 .admin-columns,
 .cms-shell,
 .email-admin-layout{grid-template-columns:minmax(0,1fr)!important}
}

@media(max-width:650px){
 html{scroll-padding-top:82px}
 body{width:100%;overflow-x:hidden}

 /* Publieke website */
 .header{
  width:100%;
  min-height:70px;
  height:70px;
  gap:10px;
 }
 .header .menu{
  display:grid;
  place-items:center;
  flex:0 0 46px;
  width:46px;
  height:46px;
  margin-left:auto;
  padding:0;
  border-radius:12px;
  background:#e9eee8;
 }
 .header .nav{
  padding:10px 14px 16px;
 }
 .header .nav a{
  width:100%;
  padding:12px 14px;
  border-bottom:1px solid #e3e8e2;
  font-size:13px;
 }
 .hero{min-height:280px;height:auto;aspect-ratio:1.7/1}
 .hero>picture>img,.hero>img{object-fit:contain}
 .hero-actions{
  right:16px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
 }
 .hero-actions .btn{width:100%;min-height:48px}
 .page-hero h1,
 h1{font-size:clamp(38px,12vw,54px);letter-spacing:-2px}
 .page-hero h2,
 h2{letter-spacing:-1.5px}
 .content,
 .intro,
 .dark-split,
 .contact-grid{padding-left:18px;padding-right:18px}
 .contact-grid form,
 .public-emergency-form{padding:20px!important}
 .contact-grid input,
 .contact-grid select,
 .contact-grid textarea,
 .public-emergency-form input,
 .public-emergency-form select,
 .public-emergency-form textarea{
  min-height:50px;
  border-radius:10px;
  font-size:16px;
 }
 .contact-grid textarea,
 .public-emergency-form textarea{min-height:125px}
 .contact-grid .btn,
 .public-emergency-form .btn,
 .cta .btn{width:100%;min-height:50px}
 .human-check{padding:15px}
 .human-check-copy{align-items:flex-start}
 .public-emergency-form input[type=file]{
  min-width:0;
  max-width:100%;
  padding:8px;
 }
 .public-emergency-form input[type=file]::file-selector-button{
  display:block;
  width:100%;
  margin:0 0 8px;
 }
 footer{
  gap:24px;
  padding-left:18px;
  padding-right:18px;
 }
 footer nav{display:flex;flex-wrap:wrap;gap:8px}
 footer nav a{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:10px;
 }

 /* Mobiel beheer: compact bovenmenu in plaats van een horizontale menubalk */
 body.backend{display:block!important;width:100%}
 body.backend>.side{
  position:sticky;
  top:0;
  z-index:100;
  display:block!important;
  width:100%;
  padding:8px 10px;
  border-bottom:1px solid rgba(255,255,255,.12);
  box-shadow:0 10px 28px rgba(7,20,38,.22);
 }
 .mobile-admin-nav-toggle{
  display:grid;
  grid-template-columns:26px auto minmax(0,1fr);
  align-items:center;
  gap:8px;
  width:100%;
  min-height:50px;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:#1b2939;
  color:#fff;
  text-align:left;
  cursor:pointer;
 }
 .mobile-admin-nav-toggle>span:first-child{font-size:20px;line-height:1}
 .mobile-admin-nav-toggle>span:nth-child(2){
  color:#aeb9c5;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
 }
 .mobile-admin-nav-toggle>b{
  min-width:0;
  overflow:hidden;
  text-align:right;
  text-overflow:ellipsis;
  white-space:nowrap;
 }
 .mobile-admin-nav-toggle[aria-expanded=true]{
  border-color:#38b84b;
  box-shadow:0 0 0 3px rgba(56,184,75,.15);
 }
 body.backend>.side>img,
 body.backend>.side>b,
 body.backend>.side>a:last-child{display:none!important}
 body.backend>.side nav{
  display:flex;
  flex-direction:column!important;
  gap:3px;
  max-height:calc(100dvh - 76px);
  margin-top:8px;
  padding:5px;
  overflow-x:hidden!important;
  overflow-y:auto;
  overscroll-behavior:contain;
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  background:#101c2b;
 }
 body.admin-nav-enhanced>.side nav:not(.is-open){display:none}
 body.backend>.side nav a{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  width:100%;
  min-height:46px;
  padding:11px 13px;
  border-radius:10px;
  color:#d5dce4;
  font-size:13px;
  white-space:normal;
 }
 body.backend>.side nav a.active{
  background:#233448;
  color:#fff;
  box-shadow:inset 4px 0 0 #38b84b;
 }
 body.backend>.side nav .mobile-admin-logout{
  display:flex;
  margin-top:5px;
  border-top:1px solid rgba(255,255,255,.12);
  color:#ffb8b2;
 }

 .admin-main{
  width:100%;
  padding:0 10px 34px!important;
 }
 .admin-main>header{
  min-height:76px;
  height:auto;
  gap:10px;
  padding:12px 2px;
 }
 .admin-main>header h1{
  max-width:68vw;
  margin:4px 0 0;
  overflow-wrap:anywhere;
  font-size:clamp(21px,7vw,29px);
  letter-spacing:-1px;
 }
 .admin-main>header small{font-size:9px}
 .admin-user{flex:0 0 auto}
 .admin-user>b{display:none}
 .admin-global-search{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  margin-top:14px;
 }
 .admin-global-search input{
  grid-column:1/-1;
  width:100%;
  min-height:50px;
  font-size:16px;
 }
 .admin-global-search .btn{grid-column:1/-1;width:100%;min-height:48px}

 .backend .panel{
  width:100%;
  margin:14px 0;
  padding:16px;
  overflow-wrap:anywhere;
 }
 .backend .stats{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px;
  margin:18px 0;
 }
 .backend .stats article{
  min-width:0;
  padding:17px 15px;
 }
 .backend .stats strong{font-size:30px}
 .admin-columns,
 .form-grid,
 .cms-shell,
 .media-grid,
 .realization-grid,
 .service-grid,
 .technician-grid,
 .email-color-grid,
 .email-admin-layout,
 .booking-controls,
 .work-hours{
  grid-template-columns:minmax(0,1fr)!important;
 }
 .cms-shell>.editor:last-child{grid-column:auto}
 .page-tabs{
  position:static;
  top:auto;
  flex-direction:row;
  gap:4px;
  width:100%;
  padding:7px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
 }
 .page-tabs a{
  flex:0 0 auto;
  min-height:42px;
  padding:11px 13px;
 }
 .panel-heading,
 .gallery-sort-heading{
  align-items:stretch;
  flex-direction:column;
  gap:10px;
 }
 .panel-heading h2,
 .gallery-sort-heading h3{margin-bottom:0}
 .row,
 .data-row,
 .approval-card,
 .request-card,
 .calendar-list article,
 .activity-list article{
  min-width:0;
 }
 .data-row{
  display:flex;
  flex-direction:column;
  gap:10px;
 }
 .data-row>*{min-width:0;max-width:100%}
 .row-actions,
 .archive-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  width:100%;
  gap:8px;
 }
 .row-actions form,
 .row-actions a,
 .row-actions button,
 .archive-actions form,
 .archive-actions a,
 .archive-actions button{width:100%}

 .backend form,
 .backend fieldset{min-width:0;max-width:100%}
 .backend .editor label{max-width:100%}
 .backend input:not([type=checkbox]):not([type=radio]):not([type=color]),
 .backend select,
 .backend textarea{
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:48px;
  font-size:16px;
 }
 .backend textarea{min-height:110px}
 .backend input[type=file]{
  padding:8px;
  overflow:hidden;
 }
 .backend input[type=file]::file-selector-button{
  display:block;
  width:100%;
  margin:0 0 7px;
  padding:10px;
  border:0;
  background:#071426;
  color:#fff;
  font-weight:800;
 }
 .backend .btn,
 .backend button:not(.gallery-drag-handle):not(.lightbox-close):not(.lightbox-nav){
  min-height:46px;
  max-width:100%;
 }
 .backend .editor>.btn,
 .backend .editor>button,
 .backend .editor>.danger-button,
 .backend .editor>.subtle-button{width:100%}
 .technician-checks,
 .technician-checks.compact{
  display:grid;
  grid-template-columns:minmax(0,1fr)!important;
  gap:7px;
 }
 .technician-checks label,
 .technician-checks.compact label{
  width:100%;
  min-height:48px;
  margin:0!important;
  padding:10px 12px;
 }
 .technician-checks input{
  flex:0 0 22px;
  width:22px!important;
  height:22px;
 }

 /* Agenda blijft volledig bruikbaar door horizontaal te schuiven */
 .month-calendar{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-inline:contain;
 }
 .calendar-toolbar{
  position:sticky;
  left:0;
  gap:8px;
  min-width:min(720px,calc(100vw - 20px));
  padding:13px;
 }
 .calendar-toolbar h3{font-size:20px}
 .calendar-weekdays,
 .calendar-grid{min-width:720px}
 .calendar-day{min-height:112px}
 .calendar-list article{
  grid-template-columns:52px minmax(0,1fr)!important;
  gap:10px;
  padding:12px;
 }
 .calendar-list article>*{min-width:0}
 .calendar-list article>.badge,
 .calendar-list article>form,
 .calendar-list article>.row-actions{grid-column:2}
 .event-move-form,
 .event-reschedule-form{padding:13px}

 /* Noodinterventie en prikklok */
 .emergency-page,
 .timeclock-page{gap:13px;margin-top:16px}
 .emergency-hero,
 .timeclock-hero{padding:21px 17px;border-radius:18px}
 .emergency-hero h2,
 .timeclock-hero h2{font-size:34px;letter-spacing:-1.5px}
 .emergency-request-card{
  grid-template-columns:minmax(0,1fr);
  gap:16px;
  padding:15px;
 }
 .emergency-card-head{align-items:flex-start}
 .emergency-contact{
  flex-direction:column;
  align-items:flex-start;
 }
 .emergency-contact a{max-width:100%;overflow-wrap:anywhere}
 .emergency-dispatch-form{width:100%;padding:14px}
 .emergency-grid,
 .timeclock-event-grid{grid-template-columns:minmax(0,1fr)}
 .emergency-status-form{grid-template-columns:minmax(0,1fr)}
 .emergency-status-form .btn{width:100%}
 .request-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .timeclock-event-card{
  grid-template-columns:50px minmax(0,1fr);
  gap:11px;
  padding:14px;
 }

 /* Klantenportaal */
 .portal-page>header{
  min-height:72px;
  height:auto;
  gap:10px;
  padding:8px 14px;
 }
 .portal-page>header img{width:125px;height:54px}
 .portal-page>header div{
  min-width:0;
  text-align:right;
  font-size:12px;
  overflow-wrap:anywhere;
 }
 .portal-layout{display:block;width:100%}
 .portal-layout>aside{
  padding:20px 14px 12px;
  border-radius:0 0 18px 18px;
 }
 .portal-layout>aside h1{
  margin:5px 0;
  font-size:29px;
  letter-spacing:-1px;
 }
 .portal-layout>aside p{margin:6px 0}
 .portal-layout>aside nav{
  flex-direction:row;
  gap:6px;
  margin-top:14px;
  padding-bottom:5px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
 }
 .portal-layout>aside nav a{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  min-height:44px;
  padding:9px 12px;
  border:1px solid #dfe5de;
  border-radius:11px;
  background:#f7f9f6;
 }
 .portal-layout>main{width:100%;padding:12px 10px 30px}
 .portal-layout .panel,
 .portal-card{padding:16px}
 .portal-layout input:not([type=checkbox]):not([type=radio]),
 .portal-layout select,
 .portal-layout textarea{
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:49px;
  font-size:16px;
 }
 .portal-layout textarea{min-height:115px}
 .portal-layout .btn,
 .portal-layout button{min-height:48px;max-width:100%}
 .portal-emergency-head{padding:19px 16px}
 .portal-emergency-form{padding:17px}
 .portal-emergency-history{padding:0 17px 17px}
 .client-step{grid-template-columns:38px minmax(0,1fr)}

 /* Dialogen en galerij */
 .apple-quick-dialog,
 .client-file-dialog{
  width:100vw;
  max-width:none;
  max-height:100dvh;
  margin:0;
  border-radius:0;
 }
 .gallery-sort-grid article{grid-template-rows:210px auto auto}
 .gallery-sort-grid article img{height:210px}
}

@media(max-width:390px){
 .backend .stats article{padding:14px 12px}
 .backend .stats strong{font-size:27px}
 .admin-main>header h1{max-width:62vw;font-size:22px}
 .mobile-admin-nav-toggle{grid-template-columns:24px minmax(0,1fr)}
 .mobile-admin-nav-toggle>span:nth-child(2){display:none}
 .page-hero h1,
 h1{font-size:38px}
 .emergency-metrics{grid-template-columns:minmax(0,1fr)}
 .request-photo-grid{grid-template-columns:minmax(0,1fr)}
}

@media(prefers-reduced-motion:reduce){
 .side nav,
 .header .nav{scroll-behavior:auto}
}

/* V31 · mobiele hero, contactgegevens en footer */
.contact-company-card{
 margin-top:26px;
 padding:22px;
 border:1px solid #d6ded6;
 border-left:5px solid var(--green);
 border-radius:16px;
 background:#fff;
 box-shadow:0 14px 36px rgba(7,20,38,.07);
}
.contact-company-card .eyebrow{margin:0 0 8px}
.contact-company-card h2{
 margin:0 0 17px;
 color:#071426;
 font-size:28px;
 letter-spacing:-1px;
}
.contact-company-list{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:9px;
 margin:0;
}
.contact-company-list>div{
 min-width:0;
 padding:12px 14px;
 border-radius:11px;
 background:#f2f6f1;
}
.contact-company-list>div:first-child{grid-column:1/-1}
.contact-company-list dt{
 color:#68736a;
 font-size:9px;
 font-weight:900;
 letter-spacing:.1em;
 text-transform:uppercase;
}
.contact-company-list dd{
 margin:4px 0 0;
 color:#071426;
 font-weight:800;
 overflow-wrap:anywhere;
}
.contact-company-list dd a{
 color:#071426;
 text-decoration:underline;
 text-decoration-color:#38b84b;
 text-decoration-thickness:2px;
 text-underline-offset:3px;
}

footer nav .footer-login-link{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 min-height:44px;
 padding:11px 18px;
 border:1px solid rgba(255,255,255,.24);
 border-radius:12px;
 background:#38b84b;
 color:#071426;
 font-weight:900;
 letter-spacing:.08em;
 text-transform:uppercase;
}
.footer-legal-links{
 display:flex;
 flex-wrap:wrap;
 justify-content:flex-end;
 gap:7px 14px;
 font-size:9px;
 color:#8c96a3;
}
.footer-legal-links a{text-decoration:underline}

@media(max-width:650px){
 /* De CTA staat mobiel in de normale documentstroom en kan niet achter de hero verdwijnen. */
 .hero{
  display:flex!important;
  flex-direction:column;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:auto!important;
  overflow:hidden;
  background:#071427;
 }
 .hero>picture>img,.hero>img{
  display:block;
  flex:0 0 auto;
  width:100%;
  height:auto!important;
  min-height:0;
  object-fit:contain;
 }
 .hero-actions{
  position:static!important;
  z-index:5;
  display:block!important;
  width:100%;
  padding:12px 16px 19px;
  background:#071427;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
 }
 .hero-actions .btn{
  display:flex!important;
  width:100%;
  min-height:52px;
  border-radius:13px;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
 }
 .contact-company-card{padding:18px}
 .contact-company-card h2{font-size:24px}
 .contact-company-list{grid-template-columns:minmax(0,1fr)}
 .contact-company-list>div:first-child{grid-column:auto}
 footer nav{width:100%}
 footer nav .footer-login-link{width:100%}
 .footer-legal-links{justify-content:flex-start}
}

/* V33 CRM workspace */
:root{
 --crm-navy:#071426;
 --crm-navy-2:#10243a;
 --crm-blue:#1f67d2;
 --crm-green:#35b94b;
 --crm-surface:#ffffff;
 --crm-bg:#f3f6f9;
 --crm-border:#dce3ea;
 --crm-text:#152235;
 --crm-muted:#687789;
 --crm-shadow:0 10px 30px rgba(13,33,55,.08);
}
body.backend{background:var(--crm-bg);color:var(--crm-text);font-family:"Segoe UI",Arial,sans-serif}
@media(min-width:901px){
 body.backend{grid-template-columns:260px minmax(0,1fr)!important}
 body.backend>.side{width:260px;position:sticky;top:0;height:100vh;overflow:auto}
}
.side{padding:18px 14px;background:linear-gradient(180deg,var(--crm-navy),#0b1d31 68%,#10253b);box-shadow:10px 0 32px rgba(5,20,38,.1)}
.side>img{height:62px;margin:4px 0 2px;padding:8px;border-radius:12px;background:#fff}
.side>b{padding:0 8px;color:#6f849a;letter-spacing:.16em}
.side nav{gap:4px}
.crm-nav-group{display:grid;gap:3px;margin:10px 0}
.crm-nav-group>small{padding:8px 10px 4px;color:#7f94a9;font-size:9px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.side .crm-nav-group a{display:flex;align-items:center;gap:11px;min-height:42px;padding:8px 10px;border:1px solid transparent;border-radius:10px;color:#c5d0db;font-size:13px;font-weight:650}
.side .crm-nav-group a:hover{background:rgba(255,255,255,.07);color:#fff}
.side .crm-nav-group a.active{border-color:rgba(78,220,99,.23);border-left:1px solid rgba(78,220,99,.23);background:linear-gradient(100deg,rgba(53,185,75,.25),rgba(31,103,210,.14));color:#fff;box-shadow:inset 3px 0 0 var(--crm-green)}
.crm-nav-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:8px;background:rgba(255,255,255,.08);color:#9fb2c4;font-size:11px;font-weight:900}
.side a.active .crm-nav-icon{background:var(--crm-green);color:#071426}
.admin-main{padding:0 clamp(16px,3vw,44px) 55px}
.admin-main>header{position:sticky;top:0;z-index:24;height:86px;margin:0 calc(clamp(16px,3vw,44px)*-1) 18px;padding:0 clamp(16px,3vw,44px);border-bottom:1px solid var(--crm-border);background:rgba(243,246,249,.94);backdrop-filter:blur(12px)}
.admin-main>header h1{font-size:27px;letter-spacing:-.025em}
.admin-main>header small{color:var(--crm-muted);font-weight:750;letter-spacing:.08em}
.crm-header-actions{display:flex;gap:8px;margin-left:auto;margin-right:16px}
.crm-quick-action{display:inline-flex;align-items:center;min-height:39px;padding:8px 13px;border-radius:9px;background:var(--crm-blue);color:#fff;font-size:11px;font-weight:800}
.crm-quick-action.secondary{border:1px solid var(--crm-border);background:#fff;color:var(--crm-text)}
.admin-user{border:1px solid var(--crm-border);border-radius:99px;background:#fff;box-shadow:0 4px 14px rgba(13,33,55,.05)}
.admin-user>span{background:linear-gradient(135deg,var(--crm-blue),var(--crm-green));color:#fff}
.admin-global-search{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin:0 0 14px;padding:10px;border:1px solid var(--crm-border);border-radius:14px;background:#fff;box-shadow:var(--crm-shadow)}
.admin-global-search input{min-height:44px;border:0!important;background:#f5f8fb!important}
.client-filter-bar{margin:0 0 18px;border:0;border-radius:14px;box-shadow:var(--crm-shadow)}
.panel,.stats article{border:1px solid var(--crm-border);border-radius:16px;background:var(--crm-surface);box-shadow:var(--crm-shadow)}
.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0}
.stats article{position:relative;min-height:116px;overflow:hidden;padding:21px}
.stats article:after{content:"";position:absolute;right:-20px;top:-22px;width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,rgba(31,103,210,.12),rgba(53,185,75,.12))}
.stats strong{color:var(--crm-navy);font-size:34px}
.stats small{color:var(--crm-muted);font-weight:750;letter-spacing:.06em}
.crm-dashboard-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;margin:20px 0;padding:30px;border-radius:18px;background:linear-gradient(120deg,#071426,#123353);color:#fff;box-shadow:0 18px 44px rgba(7,20,38,.2)}
.crm-dashboard-hero h2{margin:5px 0 8px;color:#fff;font-size:clamp(29px,4vw,44px)}
.crm-dashboard-hero p{max-width:700px;margin:0;color:#bfd0df}
.crm-dashboard-actions{display:flex;flex-wrap:wrap;gap:9px;flex:0 0 auto}
.crm-dashboard-actions .btn{border-radius:10px}
.data-row{border-color:var(--crm-border)}
.data-row:hover{background:#f8fafc}
.data-row a,.row-actions>a{color:var(--crm-blue);font-weight:800}
.badge{border-radius:99px;background:#eef3f7;color:#44566a}
.month-calendar,.calendar-list,.calendar-booking-grid>*,.personal-calendar-notice{border:1px solid var(--crm-border);border-radius:16px;background:#fff;box-shadow:var(--crm-shadow)}
.calendar-toolbar{padding:15px 18px;border-bottom:1px solid var(--crm-border)}
.calendar-grid{gap:1px;background:var(--crm-border)}
.calendar-day{min-height:128px;border:0!important;background:#fff}
.calendar-day.is-today{box-shadow:inset 0 0 0 2px var(--crm-blue)}
.calendar-day>strong{display:grid;place-items:center;width:28px;height:28px;border-radius:50%}
.calendar-day.is-today>strong{background:var(--crm-blue);color:#fff}
.calendar-event{border-radius:7px!important;box-shadow:none!important}
.calendar-event.is-bdw{border-left:4px solid var(--crm-blue)!important;background:#eaf2ff!important}
.calendar-event.is-emergency{border-left-color:#d73b31!important;background:#fff0ef!important}
.client-file-header{position:relative;overflow:hidden;border:0;border-radius:18px;background:linear-gradient(125deg,#071426,#123755);box-shadow:0 18px 45px rgba(7,20,38,.2)}
.client-file-header:after{content:"360°";position:absolute;right:18px;bottom:-27px;color:rgba(255,255,255,.06);font-size:100px;font-weight:900;pointer-events:none}
.client-file-actions{position:relative;z-index:1}
.client-file-actions a,.client-file-actions button{border-radius:9px}
.client-file-stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;border:0;background:transparent}
.client-file-stat{border:1px solid var(--crm-border);border-radius:14px;box-shadow:var(--crm-shadow)}
.client-project-record .quote-status{display:inline-flex;margin-top:7px}
.quote-status{display:inline-flex;align-items:center;width:max-content;padding:5px 9px;border-radius:99px;background:#fff4cc;color:#795b00;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.crm-quote-workflow{margin:18px 0;padding:22px;border:1px solid #bad0ef;border-radius:16px;background:linear-gradient(135deg,#f5f9ff,#fff);box-shadow:var(--crm-shadow)}
.crm-quote-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.crm-quote-heading h3{margin:3px 0 5px;font-size:29px}
.crm-quote-steps,.portal-quote-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:17px 0}
.crm-quote-steps span,.portal-quote-flow span{position:relative;padding:11px 12px 11px 28px;border-radius:9px;background:#e8edf2;color:#718091;font-size:11px;font-weight:850}
.crm-quote-steps span:before,.portal-quote-flow span:before{content:"";position:absolute;left:11px;top:50%;width:8px;height:8px;border-radius:50%;background:#a7b2be;transform:translateY(-50%)}
.crm-quote-steps span.done,.portal-quote-flow span.done{background:#e5f7e8;color:#176c27}
.crm-quote-steps span.done:before,.portal-quote-flow span.done:before{background:var(--crm-green)}
.crm-quote-documents{display:grid;gap:8px;margin:12px 0}
.crm-quote-documents a{display:flex;justify-content:space-between;gap:10px;padding:12px;border:1px solid var(--crm-border);border-radius:9px;background:#fff;color:var(--crm-blue)}
.crm-quote-action,.crm-quote-admin-decision{margin-top:14px;padding-top:14px;border-top:1px solid var(--crm-border)}
.crm-quote-admin-decision>div{display:flex;gap:9px}
.quote-planning-lock{padding:22px;border:1px dashed #d8b858;border-radius:13px;background:#fff9e8;color:#654f12}
.project-approver-choice{display:flex!important;align-items:center;gap:6px;margin-top:8px;padding-top:7px;border-top:1px solid var(--crm-border);color:#31506f!important}
.project-approver-choice input{width:16px!important;height:16px}
.project-schedule-box.is-locked{position:relative;opacity:.62;background:#f1f4f7}
.project-schedule-box.is-locked:after{content:"Planning wordt beschikbaar zodra de offerte is goedgekeurd.";display:block;margin-top:12px;padding:10px 12px;border-radius:8px;background:#fff4cc;color:#6a5200;font-size:12px;font-weight:800}
.portal-page{background:#edf2f6;color:var(--crm-text);font-family:"Segoe UI",Arial,sans-serif}
.portal-page>header{height:76px;padding:8px 4vw;border-radius:0;background:#071426;box-shadow:0 8px 30px rgba(7,20,38,.18)}
.portal-layout{grid-template-columns:250px minmax(0,1fr);max-width:1500px;padding:18px;gap:18px}
.portal-layout>aside{position:sticky;top:18px;height:max-content;padding:26px 22px;border:1px solid var(--crm-border);border-radius:16px;background:#fff;box-shadow:var(--crm-shadow)}
.portal-layout>aside h1{font-size:29px}
.portal-layout>aside nav{gap:4px}
.portal-layout>aside nav a{padding:10px 12px;border:0;border-radius:8px;color:#506174;font-weight:700}
.portal-layout>aside nav a:hover{background:#edf4ff;color:var(--crm-blue)}
.portal-layout>main{padding:0}
.portal-layout .panel,.portal-card{border:1px solid var(--crm-border);border-radius:16px;background:#fff;box-shadow:var(--crm-shadow)}
.portal-card{padding:22px}
.portal-card.is-quote-project{border-top:5px solid var(--crm-blue)}
.portal-record-status{display:flex;align-items:center;justify-content:space-between;gap:10px}
.quote-document-links{display:grid;gap:7px;margin:12px 0}
.quote-document-links a{padding:11px 13px;border-radius:9px;background:#eaf2ff;color:#1558b4;font-weight:800}
.quote-decision-card{margin:16px 0;padding:17px;border:1px solid #9fc1f1;border-radius:12px;background:#f5f9ff}
.quote-decision-card label{display:block;margin:12px 0;color:#53667a;font-size:11px;font-weight:800;text-transform:uppercase}
.quote-decision-card textarea{width:100%;min-height:80px;margin-top:6px;padding:10px;border:1px solid var(--crm-border);border-radius:8px;background:#fff}
.quote-decision-card>div{display:flex;gap:9px}
.building-relationship-manager,.project-relationship-manager{margin-top:14px;border:1px solid var(--crm-border);border-radius:11px;background:#f8fafc}
.building-relationship-manager>summary,.project-relationship-manager>summary{cursor:pointer;padding:13px 15px;color:#24496f;font-weight:850}
.building-relationship-manager[open]>summary,.project-relationship-manager[open]>summary{border-bottom:1px solid var(--crm-border);background:#eef5ff}
.building-relationship-manager>.relationship-chip-list,.project-relationship-manager>.relationship-chip-list,.building-relationship-manager>.compact-relationship-form,.project-relationship-manager>.compact-relationship-form{margin:13px}
.relationship-chip-list{display:flex;flex-wrap:wrap;gap:7px}
.relationship-chip{display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid #cbd7e3;border-radius:99px;background:#fff;font-size:11px}
.relationship-chip form{display:inline-flex;margin:0}
.relationship-chip button{display:grid;place-items:center;width:20px;min-height:20px!important;height:20px;padding:0;border:0;border-radius:50%;background:#e7edf3;color:#536577;cursor:pointer}
.compact-relationship-form{padding:15px;border-radius:10px;background:#fff}
.compact-relationship-form .check-line,.check-line{display:flex!important;align-items:center;gap:9px;text-transform:none!important;letter-spacing:0!important;font-size:13px!important}
.compact-relationship-form .check-line input,.check-line input{flex:0 0 auto;width:18px!important;height:18px;margin:0!important}
.portal-shared-buildings .panel-heading{margin-bottom:15px}

@media(max-width:1100px){
 .client-file-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
 .crm-header-actions{display:none}
}
@media(max-width:1100px){
 body.backend>.side{height:auto;overflow:visible}
 .side nav{display:none!important;position:absolute;left:10px;right:10px;top:58px;max-height:calc(100vh - 75px);overflow:auto;padding:12px;border-radius:14px;background:#071426;box-shadow:0 24px 60px rgba(0,0,0,.35)}
 .admin-nav-enhanced .side nav.is-open{display:block!important}
 .crm-nav-group{margin:4px 0 11px}
 .side .crm-nav-group a{min-height:42px}
 .admin-main>header{position:static;margin:0 -14px 14px;padding:0 14px}
 .portal-layout{display:block;padding:10px}
 .portal-layout>aside{position:static;margin-bottom:10px}
}
@media(max-width:650px){
 .admin-main>header{height:auto;min-height:72px}
 .admin-user b{display:none}
 .admin-global-search{grid-template-columns:1fr auto}
 .admin-global-search a{grid-column:1/-1}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .crm-dashboard-hero{align-items:flex-start;flex-direction:column;padding:22px}
 .crm-dashboard-actions{width:100%}
 .crm-dashboard-actions a{width:100%;justify-content:center}
 .client-file-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .crm-quote-heading{display:block}
 .crm-quote-steps,.portal-quote-flow{grid-template-columns:1fr}
 .crm-quote-admin-decision>div,.quote-decision-card>div{align-items:stretch;flex-direction:column}
 .portal-page>header{padding:8px 14px}
 .portal-layout>aside nav{display:flex;overflow:auto;flex-direction:row}
 .portal-layout>aside nav a{flex:0 0 auto;white-space:nowrap}
 .portal-layout .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .building-relationship-manager>.compact-relationship-form{margin:8px;padding:11px}
}

/* V34 klantgerichte werkruimte */
:root{
 --crm-bg:#f5f7f6;
 --crm-border:#e7ece9;
 --crm-shadow:0 8px 28px rgba(16,36,58,.07);
}
body.backend{background:linear-gradient(180deg,#f8faf9 0,#f3f6f4 100%)}
body.backend,.portal-page{font-size:15px;line-height:1.68;letter-spacing:.012em}
body.backend h1,body.backend h2,body.backend h3,body.backend h4,
.portal-page h1,.portal-page h2,.portal-page h3,.portal-page h4{font-family:"Segoe UI",Arial,sans-serif;line-height:1.18;letter-spacing:0}
body.backend p,.portal-page p{line-height:1.7;letter-spacing:.015em}
body.backend b,body.backend strong,.portal-page b,.portal-page strong{letter-spacing:.006em}
body.backend input,body.backend select,body.backend textarea,body.backend button,
.portal-page input,.portal-page select,.portal-page textarea,.portal-page button{font-family:"Segoe UI",Arial,sans-serif;letter-spacing:.02em}
.side .crm-nav-group a{letter-spacing:.018em}
.crm-nav-group>small,.side>b{letter-spacing:.19em}
.admin-main{max-width:1720px;width:100%;margin:0 auto}
.admin-main>header{border:0;background:rgba(248,250,249,.94);box-shadow:0 1px 0 rgba(15,34,53,.06)}
.admin-global-search{border:0;border-radius:16px;box-shadow:0 5px 22px rgba(16,36,58,.06)}
.admin-global-search.is-dashboard-hidden{display:none}
.admin-global-search input{background:#f3f6f4!important}
.panel{border:0!important;border-radius:20px;box-shadow:0 5px 22px rgba(16,36,58,.055)}
.data-row{border:0!important;border-bottom:1px solid #edf1ef!important;border-radius:0!important}
.data-row:last-child{border-bottom:0!important}
.data-row:hover{background:#f7faf8}
.side{box-shadow:none}
.side .crm-nav-group a{border:0}
.side .crm-nav-group a.active{box-shadow:inset 3px 0 0 var(--crm-green),0 5px 18px rgba(0,0,0,.08)}

.customer-workspace-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin:8px 0 25px;padding:18px 2px 22px;border-bottom:1px solid #dfe6e2}
.customer-workspace-intro h2{max-width:800px;margin:5px 0 8px;color:var(--crm-navy);font-size:clamp(34px,5vw,58px);line-height:1.12;letter-spacing:0}
.customer-workspace-intro p{max-width:720px;margin:0;color:var(--crm-muted);font-size:15px;line-height:1.65}
.customer-workspace-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;flex:0 0 auto}
.customer-workspace-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:43px;border-radius:10px}
.customer-directory-section{margin:24px 0 14px}
.customer-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 2px 14px}
.customer-section-heading .eyebrow{margin-bottom:4px}
.customer-section-heading h2{margin:0;color:var(--crm-navy);font-size:28px;letter-spacing:0}
.customer-section-heading p{margin:4px 0 0;color:var(--crm-muted)}
.customer-section-heading>a{color:#1f67d2;font-size:12px;font-weight:850}
.customer-fast-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:14px;padding:8px;border-radius:14px;background:#fff;box-shadow:0 5px 22px rgba(16,36,58,.05)}
.customer-fast-search input{min-height:45px;padding:10px 14px;border:0;border-radius:9px;background:#f4f7f5}
.customer-fast-search button{border-radius:9px}
.customer-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.customer-directory-card{position:relative;display:flex;min-width:0;min-height:225px;overflow:hidden;flex-direction:column;padding:20px;border:0;border-radius:18px;background:#fff;color:var(--crm-text);box-shadow:0 5px 22px rgba(16,36,58,.055);transition:transform .18s ease,box-shadow .18s ease}
.customer-directory-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--crm-green),#1f67d2);opacity:.8}
.customer-directory-card:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgba(16,36,58,.11)}
.customer-card-head{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px}
.customer-card-head>div{display:grid;min-width:0;gap:2px}
.customer-card-head b{overflow:hidden;color:var(--crm-navy);font-size:17px;text-overflow:ellipsis;white-space:nowrap}
.customer-card-head small{color:var(--crm-muted);font-size:11px;font-weight:750}
.customer-avatar{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#eaf1ff;color:#1f67d2;font-size:17px;font-weight:900}
.customer-avatar-business{background:#e8f7eb;color:#237833}
.customer-avatar-syndic{background:#fff1dc;color:#9a5c00}
.customer-open-arrow{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#f0f4f2;color:#476072;font-weight:900}
.customer-directory-card>p{min-height:42px;margin:16px 0 12px;color:#617182;font-size:12px;line-height:1.65}
.customer-card-metrics{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto}
.customer-card-metrics span{padding:6px 8px;border-radius:8px;background:#f3f6f4;color:#657687;font-size:10px}
.customer-card-metrics b{color:var(--crm-navy)}
.customer-attention{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.customer-attention span{padding:6px 8px;border-radius:99px;background:#fff2d9;color:#875300;font-size:10px;font-weight:850}
.customer-next{display:block;margin-top:12px;color:#247334;font-size:10px;font-weight:800}
.customer-next.is-quiet{color:#8a969f}
.customer-pulse{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:22px 0;padding:4px 0;border-radius:18px;background:#fff;box-shadow:0 5px 22px rgba(16,36,58,.05)}
.customer-pulse>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;border-right:1px solid #e8edea}
.customer-pulse>div:last-child{border-right:0}
.customer-pulse small{color:var(--crm-muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.customer-pulse strong{color:var(--crm-navy);font-size:28px}
.customer-followup-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-top:18px}
.customer-followup-list{padding:22px;border-radius:20px;background:#fff;box-shadow:0 5px 22px rgba(16,36,58,.05)}
.customer-followup-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 2px;border-bottom:1px solid #edf1ef;color:var(--crm-text)}
.customer-followup-row:last-child{border-bottom:0}
.customer-followup-row>div{display:grid;gap:3px}
.customer-followup-row b{color:var(--crm-navy);font-size:13px}
.customer-followup-row span{color:var(--crm-muted);font-size:12px}
.customer-followup-row>small{padding:5px 8px;border-radius:99px;background:#f1f5f3;color:#536678;font-size:9px;font-weight:850}
.customer-empty-state{padding:20px 2px;color:var(--crm-muted)}

.client-file-header{border-left:5px solid var(--crm-green);background:#fff;box-shadow:0 7px 28px rgba(16,36,58,.07);color:var(--crm-text)}
.client-file-header:after{color:rgba(31,103,210,.035)}
.client-file-header h2{color:var(--crm-navy)}
.client-file-header p{color:var(--crm-muted)}
.client-file-header .eyebrow{color:#29903c}
.client-file-actions a,.client-file-actions button{border:0;background:#f0f4f2;color:#25405a;box-shadow:none}
.client-file-actions a:hover,.client-file-actions button:hover{background:#e5efe8;color:#176b29}
.client-file-actions button:nth-of-type(2){background:var(--crm-green);color:#071426}
.client-file-stats{gap:0;overflow:hidden;margin:12px 0 18px;border-radius:18px;background:#fff;box-shadow:0 5px 22px rgba(16,36,58,.05)}
.client-file-stat{border:0;border-right:1px solid #e9eeeb;border-radius:0;box-shadow:none}
.client-file-stat:last-child{border-right:0}
.client-file-section{gap:14px}
.client-file-section>.panel,.client-file-section.panel{border:0;box-shadow:0 5px 22px rgba(16,36,58,.05)}
.client-file-dialog{border:0;border-radius:22px;box-shadow:0 26px 80px rgba(7,20,38,.28)}
.client-file-dialog-head{border:0;border-bottom:1px solid #e8edea;background:#f8faf9}
.customer-create-form{scroll-margin-top:105px}
.customer-management-shell{grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr)}
.customer-management-shell>.customer-create-form{grid-column:2;grid-row:1}
.customer-management-shell>.list-panel{grid-column:1;grid-row:1}
.email-save-state{display:inline-flex;margin:2px 0 16px!important;padding:7px 10px;border-radius:99px;background:#e8f7eb;color:#247334;font-size:11px;font-weight:800;letter-spacing:.02em!important}

.portal-layout>aside,.portal-layout .panel,.portal-card{border:0;box-shadow:0 5px 22px rgba(16,36,58,.06)}
.portal-card{border-left:4px solid #dfe8e2}
.portal-card.is-quote-project{border-top:0;border-left-color:var(--crm-blue)}

@media(max-width:1200px){
 .customer-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
 .customer-workspace-intro{align-items:flex-start;flex-direction:column}
 .customer-workspace-actions{justify-content:flex-start}
 .customer-followup-grid{grid-template-columns:1fr}
 .customer-management-shell{grid-template-columns:1fr}
 .customer-management-shell>.customer-create-form,.customer-management-shell>.list-panel{grid-column:1;grid-row:auto}
 .customer-management-shell>.list-panel{grid-row:1}
 .customer-management-shell>.customer-create-form{grid-row:2}
}
@media(max-width:650px){
 .customer-workspace-intro h2{font-size:38px}
 .customer-workspace-actions,.customer-workspace-actions a{width:100%}
 .customer-directory-grid{grid-template-columns:1fr}
 .customer-directory-card{min-height:210px}
 .customer-fast-search{grid-template-columns:1fr}
 .customer-pulse{grid-template-columns:repeat(2,minmax(0,1fr))}
 .customer-pulse>div{border-bottom:1px solid #e8edea}
 .customer-pulse>div:nth-child(2){border-right:0}
 .customer-pulse>div:nth-last-child(-n+2){border-bottom:0}
 .client-file-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
 .client-file-stat{border-bottom:1px solid #e9eeeb}
 .client-file-stat:nth-child(2n){border-right:0}
 .client-file-stat:nth-last-child(-n+2){border-bottom:0}
}

/* V36 duidelijke agenda en stabiele beheerheader */
@media(min-width:901px){
 body.backend{grid-template-columns:260px minmax(0,1fr)!important}
 body.backend>.side{width:260px!important;min-width:260px;max-width:260px}
 body.backend>.admin-main{width:auto;min-width:0}
 body.backend>.side>img{display:block;width:100%;max-width:100%;object-fit:contain}
}
.calendar-admin{display:flex;min-width:0;flex-direction:column;margin-top:8px}
.calendar-admin>.personal-calendar-notice{order:0}
.calendar-admin>.calendar-workspace-panel{order:1}
.calendar-admin>.active-project-requests{order:3}
.calendar-admin>.request-archive{order:4}
.calendar-workspace-panel{overflow:hidden;margin-top:0!important;padding:0!important}
.calendar-page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 26px 20px}
.calendar-page-heading h2{margin:2px 0 7px;color:var(--crm-navy);font-size:clamp(28px,3vw,40px);letter-spacing:-.025em}
.calendar-page-heading p{margin:0;color:var(--crm-muted)}
.calendar-page-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.calendar-page-actions form{margin:0}
.calendar-page-actions .btn,.calendar-page-actions .subtle-button{min-height:42px;border-radius:10px;white-space:nowrap}
.calendar-control-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 26px;border-top:1px solid #edf1ef;border-bottom:1px solid #e5ebe7;background:#f8faf9}
.calendar-view-switch{display:inline-flex;gap:3px;padding:4px;border-radius:11px;background:#e9eeeb}
.calendar-view-switch a{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 12px;border-radius:8px;color:#617182;font-size:11px;font-weight:800}
.calendar-view-switch a.active{background:#fff;color:var(--crm-navy);box-shadow:0 3px 10px rgba(16,36,58,.1)}
.calendar-technician-filter{display:flex!important;align-items:center;gap:10px;margin:0!important;color:#647486;font-size:10px!important;font-weight:850;letter-spacing:.07em!important;white-space:nowrap}
.calendar-technician-filter select{min-width:190px;min-height:38px;margin:0!important;padding:8px 32px 8px 10px!important;border:1px solid #dce4df!important;border-radius:9px;background:#fff!important;color:var(--crm-navy)!important;text-transform:none}
.calendar-legend{display:flex;align-items:center;flex-wrap:wrap;gap:17px;padding:11px 26px;border-bottom:1px solid #edf1ef;color:#687789;font-size:10px;font-weight:750}
.calendar-legend span{display:inline-flex;align-items:center;gap:6px}
.calendar-legend i{display:block;width:10px;height:10px;border-radius:3px;background:#2874d0}
.calendar-legend .legend-apple{background:#7a64d1}
.calendar-legend .legend-absence{background:#c7a035}
.calendar-legend .legend-emergency{background:#d7433a}
.week-planner-shell{min-width:0;padding:18px 20px 22px;background:#f5f8f6}
.week-planner-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:13px}
.week-planner-toolbar>a{display:grid;place-items:center;min-width:38px;min-height:38px;padding:7px 11px;border:1px solid #dce4df;border-radius:9px;background:#fff;color:#30485e;font-size:11px;font-weight:850}
.week-planner-toolbar>a:nth-last-child(2){margin-left:auto}
.week-planner-toolbar>div{display:grid;gap:1px;margin-left:3px}
.week-planner-toolbar small{color:#758495;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.week-planner-toolbar h3{margin:0;color:var(--crm-navy);font-size:20px;letter-spacing:-.01em}
.week-planner{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:8px;min-width:1060px}
.week-planner-shell{overflow-x:auto;scrollbar-color:#b7c3ba transparent;scrollbar-width:thin}
.week-day-column{display:flex;min-height:510px;overflow:hidden;flex-direction:column;border:1px solid #e0e7e2;border-radius:13px;background:#fff}
.week-day-column>header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 8px;padding:12px 13px;border-bottom:1px solid #e8edea;background:#fbfcfb}
.week-day-column>header span{color:#536678;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.week-day-column>header b{grid-row:1/3;grid-column:2;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#162b40;font-size:16px}
.week-day-column>header small{color:#89959f;font-size:9px}
.week-day-column.is-today{border-color:#74c581;box-shadow:0 8px 22px rgba(53,185,75,.12)}
.week-day-column.is-today>header{background:#eef9f0}
.week-day-column.is-today>header b{background:var(--crm-green);color:#071426}
.week-day-events{display:flex;min-height:0;flex:1;flex-direction:column;gap:7px;padding:9px}
.planner-event{position:relative;padding:10px 9px 10px 12px;border-radius:9px;background:#eaf2ff;color:#173f70;box-shadow:inset 3px 0 0 #2874d0}
.planner-event[hidden]{display:none!important}
.planner-event-time{display:flex;align-items:baseline;gap:4px;margin-bottom:5px;color:#1d5799;font-size:9px}
.planner-event-time b{font-size:12px}
.planner-event h4{margin:0 0 4px;overflow-wrap:anywhere;color:inherit;font-size:12px;line-height:1.32;letter-spacing:0}
.planner-event>small{display:block;overflow:hidden;margin-top:2px;color:inherit;font-size:9px;line-height:1.35;opacity:.78;text-overflow:ellipsis}
.planner-event-team{font-weight:800}
.planner-event-apple{background:#f0edff;color:#54409c;box-shadow:inset 3px 0 0 #7a64d1}
.planner-event-absence{background:#fff7dc;color:#735a0a;box-shadow:inset 3px 0 0 #c7a035}
.planner-event-emergency{background:#fff0ef;color:#962a24;box-shadow:inset 3px 0 0 #d7433a}
.week-day-empty{margin:auto!important;padding:25px 5px;color:#9aa5ad!important;text-align:center;font-size:10px}
.week-day-column.is-filter-empty{background:#fafbfa}
.planner-filter-empty{margin:15px 0 0;padding:13px;border-radius:10px;background:#fff7dc;color:#735a0a;text-align:center;font-size:12px;font-weight:750}
.calendar-management-drawer{margin:0;border-top:1px solid #e5ebe7;background:#fff}
.calendar-management-drawer>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 26px;cursor:pointer;list-style:none}
.calendar-management-drawer>summary::-webkit-details-marker{display:none}
.calendar-management-drawer>summary span:first-child{display:grid;gap:2px}
.calendar-management-drawer>summary b{color:var(--crm-navy);font-size:14px}
.calendar-management-drawer>summary small{color:var(--crm-muted);font-size:11px}
.calendar-management-drawer[open]>summary{border-bottom:1px solid #e8edea;background:#f8faf9}
.calendar-management-drawer>.calendar-list{padding:8px 24px 24px;border:0;border-radius:0;box-shadow:none}
.calendar-list-filter-empty{margin:12px 0!important;padding:14px;border-radius:10px;background:#f1f5f3;color:#687789!important;text-align:center;font-size:11px}
.calendar-create-dialog{width:min(720px,calc(100vw - 30px));max-height:calc(100vh - 30px);overflow:auto;padding:0;border:0;border-radius:20px;background:#fff;color:var(--crm-text);box-shadow:0 28px 90px rgba(7,20,38,.35)}
.calendar-create-dialog::backdrop{background:rgba(5,18,32,.64);backdrop-filter:blur(3px)}
.calendar-create-dialog-head{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 24px;border-bottom:1px solid #e7ece9;background:#fff}
.calendar-create-dialog-head h2{margin:2px 0 5px;color:var(--crm-navy);font-size:28px;letter-spacing:-.02em}
.calendar-create-dialog-head p{margin:0;color:var(--crm-muted)}
.calendar-create-dialog-head>button{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border:0;border-radius:50%;background:#eff3f1;color:#4b5f70;font-size:22px;cursor:pointer}
.calendar-create-form{padding:5px 24px 24px}
.calendar-create-form input,.calendar-create-form select{border-color:#d8e1db!important;background:#fafcfb!important;color:var(--crm-navy)!important}
.calendar-create-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid #e8edea}
.calendar-create-actions button{min-height:42px;border-radius:9px}
.active-project-requests{margin-top:22px}
.client-timeclock-body{display:grid;gap:16px;padding:22px 24px 26px}
.client-timeclock-identity{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:15px 17px;border-radius:13px;background:#eaf5ec}
.client-timeclock-identity label{display:grid;min-width:min(420px,100%);gap:6px;margin:0!important;color:#617064;font-size:10px!important;font-weight:850;text-transform:uppercase;letter-spacing:.07em!important}
.client-timeclock-identity select{min-height:43px;padding:9px 12px;border:1px solid #b9d1bd;border-radius:9px;background:#fff;color:var(--crm-navy);font-weight:800}
.client-timeclock-technician{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0!important;padding:14px 17px;border-radius:12px;background:#eaf5ec}
.client-timeclock-technician span{color:#627266;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.client-timeclock-technician b{color:var(--crm-navy)}
.client-timeclock-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.client-timeclock-grid .timeclock-event-card{min-width:0;margin:0;box-shadow:0 7px 22px rgba(16,36,58,.07)}
.client-timeclock-grid .timeclock-event-content h3{font-size:18px}
.client-timeclock-central-link{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border-radius:10px;background:#eef2f0;color:#244665;font-size:11px;font-weight:850}
.client-timeclock-central-link:hover{background:#e1ebe4;color:#176c28}

@media(max-width:900px){
 .calendar-page-heading{align-items:flex-start;flex-direction:column}
 .calendar-page-actions{justify-content:flex-start;width:100%}
 .calendar-control-bar{align-items:stretch;flex-direction:column}
 .calendar-technician-filter{justify-content:space-between}
 .calendar-technician-filter select{min-width:0;width:min(250px,60vw)}
 .week-planner{grid-template-columns:repeat(7,170px);min-width:max-content}
 .week-day-column{min-height:430px}
 .client-timeclock-grid{grid-template-columns:1fr}
}
@media(max-width:650px){
 .calendar-page-heading{padding:20px 17px 16px}
 .calendar-page-heading h2{font-size:29px}
 .calendar-page-actions,.calendar-page-actions .btn,.calendar-page-actions form,.calendar-page-actions form .subtle-button{width:100%}
 .calendar-control-bar{padding:12px 17px}
 .calendar-view-switch{width:100%;overflow-x:auto}
 .calendar-view-switch a{flex:1;white-space:nowrap}
 .calendar-technician-filter{align-items:flex-start;flex-direction:column;gap:5px}
 .calendar-technician-filter select{width:100%;max-width:none}
 .calendar-legend{gap:10px 14px;padding:10px 17px}
 .week-planner-shell{padding:14px 12px 18px}
 .week-planner-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto}
 .week-planner-toolbar>div{min-width:0}
 .week-planner-toolbar h3{font-size:16px}
 .week-planner-toolbar>a:nth-last-child(2){margin-left:0}
 .calendar-management-drawer>summary{padding:16px 17px}
 .calendar-management-drawer>.calendar-list{padding:5px 14px 18px}
 .calendar-create-dialog{width:calc(100vw - 18px);max-height:calc(100vh - 18px);border-radius:15px}
 .calendar-create-dialog-head{padding:17px}
 .calendar-create-dialog-head h2{font-size:24px}
 .calendar-create-form{padding:4px 17px 19px}
 .calendar-create-actions{align-items:stretch;flex-direction:column-reverse}
 .calendar-create-actions button{width:100%}
 .client-timeclock-body{padding:15px 12px 18px}
 .client-timeclock-identity{align-items:stretch;flex-direction:column}
 .client-timeclock-identity label{min-width:0}
 .client-timeclock-grid .timeclock-event-card{grid-template-columns:52px minmax(0,1fr);padding:14px}
}

/* V36 projecten, projectprikklok en rechtstreeks agendabeheer */
body.backend>.side>img{
 width:100%!important;
 height:auto!important;
 max-height:64px;
 padding:0!important;
 border:0!important;
 border-radius:0!important;
 background:transparent!important;
 object-fit:contain!important;
 object-position:left center;
 box-shadow:none!important;
}
.customer-live-empty,.project-directory-empty,.timeclock-project-filter-empty{padding:18px;border-radius:12px;background:#fff7dc;color:#725a0b;font-weight:750}
.project-admin-workspace{display:flex;min-width:0;flex-direction:column;gap:18px;margin-top:8px}
.project-workspace-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 28px;border-radius:20px;background:linear-gradient(125deg,#0b1b2e,#102944);color:#fff;box-shadow:0 14px 38px rgba(7,20,38,.14)}
.project-workspace-hero h2{margin:3px 0 9px;font-size:clamp(30px,4vw,48px);letter-spacing:-.025em}
.project-workspace-hero p:not(.eyebrow){max-width:720px;margin:0;color:#bdcad5}
.project-workspace-hero .btn{flex:0 0 auto;border-radius:11px}
.project-workspace-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 6px 26px rgba(16,36,58,.06)}
.project-workspace-stats>div{display:grid;gap:4px;padding:19px 21px;border-right:1px solid #e8eeea}
.project-workspace-stats>div:last-child{border-right:0}
.project-workspace-stats small{color:#718090;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.project-workspace-stats strong{color:var(--crm-navy);font-size:28px}
.project-workspace-stats .needs-attention{background:#fff4e7}
.project-workspace-stats .needs-attention strong{color:#a34f00}
.project-directory-zone{order:4}
.project-admin-workspace>.template-panel{order:5}
.project-admin-workspace>.project-detail-admin{order:3}
.project-directory-panel{overflow:hidden;border-radius:20px;background:#fff;box-shadow:0 7px 30px rgba(16,36,58,.07)}
.project-directory-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:23px 25px 18px}
.project-directory-heading h2{margin:2px 0 6px;color:var(--crm-navy);font-size:31px;letter-spacing:-.02em}
.project-directory-heading p{margin:0;color:var(--crm-muted)}
.project-directory-controls{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:14px 25px;border-top:1px solid #edf1ef;border-bottom:1px solid #e6ece8;background:#f8faf9}
.project-live-search{display:grid;min-width:min(460px,100%);gap:5px;margin:0!important;color:#6c7b89;font-size:9px!important;font-weight:850;text-transform:uppercase;letter-spacing:.07em!important}
.project-live-search input{width:100%;min-height:42px;margin:0!important;padding:10px 13px!important;border:1px solid #d8e1db!important;border-radius:10px;background:#fff!important;color:var(--crm-navy)!important;text-transform:none}
.project-status-filters{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}
.project-status-filters button{min-height:36px;padding:7px 11px;border:1px solid #dce4df;border-radius:9px;background:#fff;color:#607182;font-size:10px;font-weight:820;cursor:pointer}
.project-status-filters button.active{border-color:#9fd7a8;background:#e9f7eb;color:#176d29}
.project-directory-list{display:grid;gap:0;padding:0 25px}
.project-directory-card{position:relative;border-bottom:1px solid #e9eeeb;background:#fff}
.project-directory-card:last-child{border-bottom:0}
.project-directory-card.is-open{margin:0 -10px;padding:0 10px;border-radius:12px;background:#eef8f0}
.project-directory-card.is-overdue{box-shadow:inset 4px 0 0 #e38332}
.project-card-main{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:14px;padding:17px 70px 17px 8px}
.project-card-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#e7f1ff;color:#1d65c5;font-size:17px;font-weight:900}
.project-card-copy{display:grid;min-width:0;gap:5px}
.project-card-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.project-card-title b{overflow:hidden;color:var(--crm-navy);font-size:15px;text-overflow:ellipsis;white-space:nowrap}
.project-card-title em{padding:4px 7px;border-radius:99px;background:#e9f6eb;color:#237633;font-size:9px;font-style:normal;font-weight:850}
.project-card-copy>small{color:#657687;font-size:11px;line-height:1.55}
.project-card-description{display:-webkit-box;overflow:hidden;max-width:760px;color:#34475a;font-size:11px;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.project-card-description.is-empty{color:#8b98a3;font-style:italic}
.project-card-meta{display:flex;flex-wrap:wrap;gap:5px}
.project-card-meta i{padding:4px 7px;border-radius:7px;background:#f1f5f3;color:#667787;font-size:9px;font-style:normal}
.project-card-meta i.is-danger{background:#fff0e3;color:#a34f00;font-weight:850}
.project-card-progress{display:block;width:min(420px,100%);height:4px;overflow:hidden;border-radius:99px;background:#e4eae6}
.project-card-progress u{display:block;height:100%;background:linear-gradient(90deg,#2ca844,#6bd47b)}
.project-card-open{color:#237a35;font-size:10px;font-weight:850;white-space:nowrap}
.project-card-delete{position:absolute;right:7px;bottom:12px}
.project-card-delete button{border:0;background:transparent;color:#a04d4d;font-size:9px;font-weight:800;cursor:pointer}
.project-archive{margin:15px 25px 22px}
.project-create-dialog{width:min(930px,calc(100vw - 30px))}
.project-create-form{padding:4px 24px 25px}
.project-detail-admin{overflow:hidden;border-top:5px solid var(--crm-green);border-radius:20px;box-shadow:0 9px 34px rgba(16,36,58,.09)!important}
.client-project-description{display:-webkit-box;overflow:hidden;max-width:780px;margin:8px 0 10px;color:#32465a;font-size:12px;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.client-project-description.is-empty{color:#8a98a3;font-style:italic}
.project-description-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);align-items:start;gap:24px;margin:0 24px 22px;padding:20px 22px;border:1px solid #dfe8e2;border-left:5px solid var(--crm-green);border-radius:15px;background:linear-gradient(135deg,#f4faf5,#fff);box-shadow:0 6px 20px rgba(16,36,58,.05)}
.project-description-content{min-width:0}
.project-description-content>p:last-child{margin:8px 0 0;color:#24394d;font-size:14px;line-height:1.75;overflow-wrap:anywhere}
.project-description-content>p.is-empty{color:#7c8a95;font-style:italic}
.project-description-editor{overflow:hidden;border:1px solid #d9e3dc;border-radius:12px;background:#fff}
.project-description-editor>summary{padding:13px 15px;color:#1f6f31;font-size:11px;font-weight:850;cursor:pointer;list-style-position:inside}
.project-description-editor[open]>summary{border-bottom:1px solid #e7ece9;background:#f6faf7}
.project-description-editor .editor{display:grid;gap:12px;padding:15px}
.project-description-editor .editor label{margin:0}
.project-description-editor textarea{min-height:150px;resize:vertical}
.project-time-summary{margin:18px 0;padding:20px;border-radius:15px;background:#f5f9f6}
.project-time-summary h3{margin:2px 0;color:var(--crm-navy);font-size:23px}
.project-clock-action{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:13px 0;padding:15px 17px;border-radius:12px;background:#e8f5eb}
.project-clock-action>div{display:grid;gap:2px}
.project-clock-action small{color:#66786a;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.project-clock-action b{color:var(--crm-navy)}
.project-clock-action form{margin:0}
.timeclock-project-search{margin:14px 0}
.timeclock-project-search label{display:grid;max-width:560px;gap:6px;color:#647486;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.timeclock-project-search input{min-height:44px;padding:10px 14px;border:1px solid #d6e0da;border-radius:11px;background:#fff;color:var(--crm-navy);font:inherit;text-transform:none}
.timeclock-project-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:#e9f5ec;color:#247834;font-size:18px;font-weight:900}
.timeclock-total{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-top:10px;padding-top:9px;border-top:1px solid #e4eae6}
.timeclock-total small{color:#718073}
.timeclock-total b{color:var(--crm-navy);font-size:19px}
.planner-event.is-editable,.calendar-event.is-editable,[data-calendar-edit-key]{cursor:pointer}
.planner-event.is-editable:after,.calendar-event.is-editable:after{content:"Aanpassen";display:block;margin-top:7px;color:inherit;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;opacity:.7}
.planner-event.is-editable:hover,.planner-event.is-editable:focus,.calendar-event.is-editable:hover,.calendar-event.is-editable:focus{outline:2px solid rgba(44,168,68,.45);outline-offset:2px;transform:translateY(-1px)}
.calendar-edit-dialog{width:min(820px,calc(100vw - 30px))}
.calendar-edit-dialog .technician-checks{grid-template-columns:repeat(3,minmax(0,1fr))}

@media(max-width:1100px){
 .project-workspace-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
 .project-workspace-stats>div:nth-child(3){border-right:0}
 .project-directory-controls{align-items:stretch;flex-direction:column}
 .project-live-search{min-width:0;width:100%}
 .project-status-filters{justify-content:flex-start}
}
@media(max-width:700px){
 .project-workspace-hero{align-items:stretch;flex-direction:column;padding:22px 19px}
 .project-workspace-hero .btn{width:100%}
 .project-workspace-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .project-workspace-stats>div{padding:15px}
 .project-workspace-stats>div:nth-child(3){border-right:1px solid #e8eeea}
 .project-workspace-stats>div:nth-child(2n){border-right:0}
 .project-directory-heading{padding:20px 17px 15px}
 .project-directory-controls{padding:13px 17px}
 .project-directory-list{padding:0 13px}
 .project-card-main{grid-template-columns:40px minmax(0,1fr);padding:15px 8px 36px}
 .project-card-mark{width:40px;height:40px}
 .project-card-open{grid-column:2;margin-top:2px}
 .project-card-delete{right:4px;bottom:10px}
 .project-card-description{-webkit-line-clamp:3}
 .client-project-record{align-items:stretch;flex-direction:column}
 .client-project-record .row-actions{justify-content:flex-start}
 .project-description-panel{grid-template-columns:1fr;gap:15px;margin:0 14px 18px;padding:17px}
 .project-clock-action{align-items:stretch;flex-direction:column}
 .project-clock-action .timeclock-button{width:100%}
 .calendar-edit-dialog .technician-checks{grid-template-columns:1fr}
}

/* V36.1 nette statuskeuze voor projectstappen */
.complete-check{
 position:relative;
 display:grid!important;
 grid-template-columns:38px minmax(0,1fr);
 align-items:center;
 gap:13px;
 min-height:68px;
 padding:13px 15px!important;
 border:1px solid #d7e0d9!important;
 border-radius:13px!important;
 background:#f8faf9!important;
 box-shadow:none!important;
 color:var(--crm-navy);
 cursor:pointer;
 transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
.complete-check:hover{border-color:#9acda3!important;background:#f3f9f4!important}
.complete-check>input{
 position:absolute!important;
 width:1px!important;
 height:1px!important;
 margin:0!important;
 padding:0!important;
 overflow:hidden;
 opacity:0;
 pointer-events:none;
}
.complete-check-control{
 position:relative;
 display:grid;
 place-items:center;
 width:36px;
 height:36px;
 border:2px solid #9aa8a0;
 border-radius:10px;
 background:#fff;
 transition:border-color .18s ease,background .18s ease,transform .18s ease;
}
.complete-check-control:after{
 content:"";
 width:8px;
 height:15px;
 margin-top:-3px;
 border:solid #fff;
 border-width:0 3px 3px 0;
 opacity:0;
 transform:rotate(45deg) scale(.65);
 transition:opacity .15s ease,transform .15s ease;
}
.complete-check-copy{display:grid;gap:2px;min-width:0}
.complete-check-copy b{font-size:13px;line-height:1.35;letter-spacing:0}
.complete-check-copy small{color:#718078;font-size:10px;font-weight:650;line-height:1.4;text-transform:none}
.complete-check>input:focus-visible+.complete-check-control{outline:3px solid rgba(53,185,75,.24);outline-offset:3px}
.complete-check>input:checked+.complete-check-control{border-color:#2daf45;background:#32b94a;transform:scale(1.02)}
.complete-check>input:checked+.complete-check-control:after{opacity:1;transform:rotate(45deg) scale(1)}
.project-step-admin.is-complete .complete-check{border-color:#8bd497!important;background:#edf9ef!important;box-shadow:inset 4px 0 0 #32b94a!important}
.project-step-admin.is-complete .complete-check-copy b{color:#176b28}
@media(max-width:650px){
 .complete-check{grid-template-columns:34px minmax(0,1fr);min-height:64px;padding:12px!important}
 .complete-check-control{width:32px;height:32px;border-radius:9px}
}

/* V36.3 uren horen bij het projectdossier, niet bij de klantenfiche */
.client-file-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:900px){
 .client-file-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:650px){
 .client-file-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .client-file-stat:nth-child(n){border-bottom:1px solid #e9eeeb}
 .client-file-stat:last-child{border-right:0;border-bottom:0}
}

/* V36.4 navigatie naar afspraken via Waze */
.waze-button{
 display:inline-flex;
 align-items:center;
 justify-content:flex-start;
 gap:8px;
 width:max-content;
 max-width:100%;
 min-height:40px;
 margin-top:8px;
 padding:5px 12px 5px 6px;
 border:1px solid #22334a;
 border-radius:999px;
 background:#0b1728;
 color:#fff!important;
 box-shadow:0 5px 14px rgba(7,20,38,.12);
 font-size:11px;
 font-weight:850;
 letter-spacing:.01em;
 line-height:1.2;
 text-decoration:none!important;
 white-space:nowrap;
 transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;
}
.waze-button:before{
 content:"↗";
 display:grid;
 place-items:center;
 flex:0 0 28px;
 width:28px;
 height:28px;
 border-radius:50%;
 background:#35bd4b;
 color:#071426;
 font-size:14px;
 font-weight:900;
}
.waze-button:hover,.waze-button:focus-visible{border-color:#35bd4b;background:#101f34;transform:translateY(-1px);box-shadow:0 8px 18px rgba(7,20,38,.18)}
.waze-button:focus-visible{outline:3px solid rgba(53,189,75,.24);outline-offset:3px}
.row-actions .waze-button{border:1px solid #22334a;background:#0b1728;color:#fff!important;font-family:inherit;font-weight:850}
.row-actions .waze-button:hover,.row-actions .waze-button:focus-visible{border-color:#35bd4b;background:#101f34}
.waze-button-compact{
 min-height:36px;
 margin-top:6px;
 padding:4px 10px 4px 5px;
 font-size:10px;
}
.waze-button-compact:before{flex-basis:26px;width:26px;height:26px;font-size:12px}
.waze-button-mini{
 flex:0 0 auto;
 min-height:27px;
 margin:0 0 0 auto;
 padding:2px 7px 2px 3px;
 font-size:8px;
}
.waze-button-mini:before{flex-basis:21px;width:21px;height:21px;font-size:10px}
.planner-event .waze-button{margin-top:8px}
.project-appointment-row>div{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.project-appointment-row>div:last-child{align-items:flex-end}
.project-appointment-row small{max-width:440px;color:var(--muted);line-height:1.4}
.project-appointment-row .waze-button{margin-top:4px}
@media(max-width:700px){
 .waze-button{min-height:44px;padding-right:14px}
 .waze-button:before{flex-basis:32px;width:32px;height:32px}
 .waze-button-compact{width:auto;min-height:42px}
 .waze-button-mini{width:auto;min-height:34px;padding-right:8px}
 .waze-button-mini:before{flex-basis:26px;width:26px;height:26px}
 .client-file-section .row-actions{align-items:stretch}
 .project-appointment-row{align-items:flex-start}
}

/* V37 beheerbaar keuzemenu voor syndicusaanvragen */
.syndic-request-options-panel{border-top:5px solid #27b748}
.syndic-request-option-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.syndic-request-option-card{
 display:grid;
 grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) 100px;
 gap:10px;
 align-items:end;
 padding:16px;
 border:1px solid #d8e1db;
 border-radius:14px;
 background:#fff;
 box-shadow:0 8px 20px rgba(7,20,38,.05);
}
.syndic-request-option-card label{margin:0}
.syndic-request-option-card .check-line{grid-column:1/3;align-self:center}
.syndic-request-option-card button{grid-column:3;grid-row:2;min-height:42px}
.syndic-request-option-card.is-inactive{background:#f2f4f2;opacity:.72}
.syndic-request-option-card.is-new{border:2px dashed #8acb96;background:#f4fbf5}
@media(max-width:1100px){
 .syndic-request-option-list{grid-template-columns:1fr}
}
@media(max-width:700px){
 .syndic-request-option-card{grid-template-columns:1fr;padding:14px}
 .syndic-request-option-card .check-line,.syndic-request-option-card button{grid-column:1;grid-row:auto}
 .syndic-request-option-card button{width:100%}
}

/* V38 definitieve responsive kwaliteitslaag: website, beheer en klantenportaal */
:root{
 --pro-navy:#071426;
 --pro-navy-2:#102238;
 --pro-green:#35b94d;
 --pro-green-dark:#17802c;
 --pro-surface:#ffffff;
 --pro-canvas:#f2f5f2;
 --pro-line:#dfe6e1;
 --pro-muted:#647384;
 --pro-danger:#b52b2b;
 --pro-radius-sm:10px;
 --pro-radius:16px;
 --pro-radius-lg:24px;
 --pro-shadow:0 10px 34px rgba(7,20,38,.075);
 --pro-shadow-raised:0 18px 55px rgba(7,20,38,.12);
}

html{
 width:100%;
 max-width:100%;
 overflow-x:clip;
 scroll-padding-top:96px;
 -webkit-text-size-adjust:100%;
}
body{
 width:100%;
 max-width:100%;
 overflow-x:clip;
 font-family:"Segoe UI",Inter,Arial,sans-serif;
 font-size:15px;
 line-height:1.65;
 letter-spacing:.005em;
 -webkit-font-smoothing:antialiased;
 text-rendering:optimizeLegibility;
}
main,section,article,aside,header,footer,nav,form,fieldset,div,label{min-width:0}
img,video,canvas{display:block;max-width:100%}
p,li,dd,small,b,strong,h1,h2,h3,h4,a,button,label,legend{
 overflow-wrap:anywhere;
}
h1,h2,h3,h4{
 color:inherit;
 font-family:"Segoe UI",Inter,Arial,sans-serif;
 letter-spacing:-.025em;
 line-height:1.12;
 text-wrap:balance;
}
p{line-height:1.72}
.sr-only{
 position:absolute!important;
 width:1px!important;
 height:1px!important;
 padding:0!important;
 margin:-1px!important;
 overflow:hidden!important;
 clip:rect(0,0,0,0)!important;
 white-space:nowrap!important;
 border:0!important;
}
:focus-visible{
 outline:3px solid rgba(53,185,77,.35);
 outline-offset:3px;
}
.btn,.subtle-button,.danger-button,.crm-quick-action,.header-btn{
 min-height:42px;
 border-radius:var(--pro-radius-sm);
 font-family:inherit;
 font-weight:800;
 letter-spacing:.045em;
 line-height:1.2;
 text-align:center;
 white-space:normal;
}
.btn{
 padding:12px 18px;
 box-shadow:0 6px 16px rgba(7,20,38,.08);
}
.btn.green{
 background:var(--pro-green);
 color:var(--pro-navy);
}
.btn:hover,.subtle-button:hover,.danger-button:hover,.crm-quick-action:hover{
 transform:translateY(-1px);
}
.success,.error,.form-note{
 border:0;
 border-radius:var(--pro-radius-sm);
 box-shadow:none;
}
input:not([type=checkbox]):not([type=radio]),
select,
textarea{
 max-width:100%;
 min-height:44px;
 border-radius:var(--pro-radius-sm)!important;
 font:inherit;
 line-height:1.35;
}
textarea{resize:vertical}
input[type=file]{
 width:100%;
 max-width:100%;
 overflow:hidden;
 white-space:normal;
}
dialog{
 max-width:calc(100vw - 24px);
 max-height:calc(100dvh - 24px);
}

/* Neutrale lijniconen, zonder emoji-glyphs */
.nav-toggle-lines{
 display:grid;
 flex:0 0 22px;
 width:22px;
 gap:4px;
}
.nav-toggle-lines i{
 display:block;
 width:100%;
 height:2px;
 border-radius:99px;
 background:currentColor;
 transition:transform .18s ease,opacity .18s ease;
}
[aria-expanded=true]>.nav-toggle-lines i:nth-child(1){transform:translateY(6px) rotate(45deg)}
[aria-expanded=true]>.nav-toggle-lines i:nth-child(2){opacity:0}
[aria-expanded=true]>.nav-toggle-lines i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.status-check-mark,
.human-check-copy>span{
 position:relative;
 display:inline-grid;
 place-items:center;
 flex:0 0 28px;
 width:28px;
 height:28px;
 border-radius:9px;
 background:var(--pro-green);
 color:transparent;
 font-size:0;
}
.status-check-mark:after,
.human-check-copy>span:after{
 content:"";
 width:10px;
 height:5px;
 border-left:2px solid var(--pro-navy);
 border-bottom:2px solid var(--pro-navy);
 transform:translateY(-1px) rotate(-45deg);
}
.complete-check input:checked:after{
 content:""!important;
 width:11px;
 height:6px;
 border-left:2px solid var(--pro-navy);
 border-bottom:2px solid var(--pro-navy);
 transform:translateY(-1px) rotate(-45deg);
}
.waze-button:before{
 content:"W"!important;
 font-family:"Segoe UI",Arial,sans-serif!important;
 font-size:12px!important;
 line-height:1!important;
}

/* Publieke website */
.ticker{
 height:auto;
 min-height:30px;
 padding:7px 0;
 line-height:1.5;
}
.header{
 width:100%;
 height:82px;
 padding:0 clamp(18px,4vw,72px);
 gap:clamp(16px,2.5vw,34px);
 border-bottom:1px solid rgba(7,20,38,.08);
 background:rgba(248,250,247,.96);
 box-shadow:0 8px 30px rgba(7,20,38,.055);
 backdrop-filter:blur(14px);
}
.header .logo{
 display:flex;
 align-items:center;
 flex:0 0 176px;
 width:176px;
 height:64px;
 overflow:hidden;
 border-radius:12px;
 background:#fff;
}
.header .logo img{
 width:100%;
 height:100%;
 padding:5px 8px;
 border-radius:12px;
 background:#fff;
 object-fit:contain;
}
.header .nav{
 align-items:center;
 justify-content:center;
 gap:clamp(16px,2vw,30px);
 min-width:0;
 margin:auto;
}
.header .nav a{
 flex:0 0 auto;
 padding:10px 0;
 color:#263547;
 font-size:12px;
 line-height:1.3;
 white-space:nowrap;
}
.header .menu{
 display:none;
 place-items:center;
 width:44px;
 height:44px;
 padding:10px;
 border:1px solid var(--pro-line);
 border-radius:12px;
 background:#fff;
 color:var(--pro-navy);
 cursor:pointer;
}
.header .header-btn{flex:0 0 auto}
.hero{
 width:100%;
 height:auto!important;
 min-height:0!important;
 max-height:760px;
 aspect-ratio:1734/907;
 background:#071426;
}
.hero>picture>img,.hero>img{
 width:100%;
 height:100%;
 border-radius:0!important;
 object-fit:contain;
 object-position:center;
}
.hero-actions{
 left:clamp(18px,6vw,96px);
 bottom:clamp(16px,4vw,62px);
}
.intro,.dark-split,.contact-grid{
 width:100%;
 padding:clamp(58px,7vw,108px) clamp(20px,6vw,104px);
 gap:clamp(38px,7vw,112px);
}
.intro h1{max-width:820px;margin:.25em 0}
.intro>div:last-child>p,.prose{font-size:clamp(16px,1.25vw,19px)}
.trust{
 display:flex;
 flex-wrap:wrap;
 gap:8px;
 margin-top:25px;
}
.trust span{
 display:inline-flex;
 align-items:center;
 gap:8px;
 padding:7px 10px;
 border-radius:99px;
 background:#e7f4e8;
 color:#1a6428;
 font-size:10px;
 font-weight:850;
 letter-spacing:.04em;
 text-transform:uppercase;
}
.trust span:before{
 content:"";
 display:block;
 width:7px;
 height:7px;
 border-radius:50%;
 background:var(--pro-green);
}
.content{
 width:100%;
 padding:clamp(58px,7vw,108px) clamp(20px,6vw,104px);
}
.page-hero{
 min-height:clamp(390px,46vw,620px);
 padding:clamp(78px,9vw,135px) clamp(20px,7vw,118px) clamp(55px,7vw,95px);
}
.page-hero h1{font-size:clamp(42px,6vw,86px)}
.cards{
 grid-template-columns:repeat(4,minmax(0,1fr));
 gap:14px;
 border:0;
}
.cards article{
 min-height:270px;
 padding:28px;
 border:1px solid var(--pro-line);
 border-radius:var(--pro-radius);
 background:#fff;
 box-shadow:0 7px 24px rgba(7,20,38,.04);
}
.cards article h2,.cards article h3{margin-top:48px}
.service-grid,.realization-grid{gap:20px}
.service-card,.realization-grid article{
 overflow:hidden;
 border:1px solid var(--pro-line);
 border-radius:var(--pro-radius-lg);
 box-shadow:var(--pro-shadow);
}
.realization-grid img{height:clamp(240px,26vw,390px)}
.cta{
 gap:28px;
 padding:clamp(42px,5vw,72px) clamp(20px,6vw,104px);
 border-radius:0;
}
.cta h2{font-size:clamp(34px,4.2vw,58px)}
.contact-grid{align-items:start}
.contact-grid>div,.contact-grid>form{min-width:0}
.contact-grid form{
 border-radius:var(--pro-radius-lg);
 box-shadow:var(--pro-shadow-raised);
}
.site-popup{
 right:clamp(14px,2vw,28px);
 bottom:clamp(14px,2vw,28px);
 max-height:calc(100dvh - 28px);
 overflow:auto;
 border-radius:var(--pro-radius-lg);
}
footer{
 grid-template-columns:minmax(180px,.7fr) minmax(260px,1.3fr);
 gap:28px;
 padding:52px clamp(20px,6vw,104px);
 border-radius:0!important;
}
footer>img{align-self:start}
footer nav,footer .footer-legal-links{justify-content:flex-end;flex-wrap:wrap}
.login-card{
 overflow:hidden;
 border-radius:var(--pro-radius-lg);
 box-shadow:0 26px 80px rgba(0,0,0,.28);
}

/* Gedeelde backofficebasis */
body.backend,.portal-page{
 background:#eef2ef;
 color:#102238;
 font-size:15px;
 line-height:1.65;
 letter-spacing:.005em;
}
body.backend h1,body.backend h2,body.backend h3,body.backend h4,
.portal-page h1,.portal-page h2,.portal-page h3,.portal-page h4{
 letter-spacing:-.02em!important;
 line-height:1.16!important;
}
.panel,.stats article,.portal-card,.customer-directory-card{
 border:1px solid rgba(214,224,217,.82);
 border-radius:var(--pro-radius)!important;
 background:#fff;
 box-shadow:var(--pro-shadow);
}
.panel{padding:clamp(19px,2.2vw,30px)}
.panel-heading{align-items:flex-start}
.panel-heading h2{margin:.15em 0}
.data-row>*{min-width:0}
.row-actions{
 align-items:center;
 justify-content:flex-end;
 flex-wrap:wrap;
 max-width:100%;
}
.badge{max-width:100%;white-space:normal}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.editor label{
 color:#526273;
 font-size:10px;
 font-weight:800;
 line-height:1.45;
}
.editor input,.editor select,.editor textarea{
 color:#102238;
 background:#fff;
}

/* Beheerportaal */
body.backend{
 grid-template-columns:244px minmax(0,1fr)!important;
 min-height:100dvh;
}
body.backend>.side{
 position:sticky;
 top:0;
 width:244px!important;
 min-width:244px!important;
 max-width:244px!important;
 height:100dvh;
 padding:18px 14px;
 gap:14px;
 overflow-y:auto;
 border-right:1px solid rgba(255,255,255,.08);
 background:linear-gradient(180deg,#071426 0%,#0c1b2d 100%);
}
.side>img{
 width:100%;
 height:68px;
 padding:6px;
 border-radius:12px;
 background:transparent;
 object-fit:contain;
}
.side>b{padding:0 9px;color:#71849a}
.side nav{gap:12px}
.crm-nav-group{gap:3px}
.crm-nav-group>small{
 padding:0 10px 5px;
 color:#70849a;
 font-size:9px;
 letter-spacing:.13em;
}
.side nav a{
 display:flex;
 align-items:center;
 gap:10px;
 min-height:42px;
 padding:8px 10px;
 border:1px solid transparent;
 border-radius:10px;
 color:#bac7d4;
 font-size:12px;
 font-weight:700;
 line-height:1.25;
}
.side nav a:hover{background:rgba(255,255,255,.055);color:#fff}
.side nav a.active{
 border-color:rgba(53,185,77,.24);
 border-left-color:var(--pro-green);
 background:rgba(53,185,77,.12);
 color:#fff;
 box-shadow:none;
}
.crm-nav-icon{
 display:grid;
 place-items:center;
 flex:0 0 29px;
 width:29px;
 height:29px;
 border-radius:8px;
 background:rgba(255,255,255,.07);
 color:#9eb0c2;
 font-size:8px;
 font-weight:900;
 letter-spacing:.06em;
}
.side nav a.active .crm-nav-icon{
 background:var(--pro-green);
 color:var(--pro-navy);
}
.crm-nav-icon svg{display:block;width:17px;height:17px;overflow:visible}
.admin-main{
 width:100%;
 max-width:1720px;
 min-width:0;
 margin:0 auto;
 padding:0 clamp(18px,3vw,48px) 64px;
}
.admin-main>header{
 display:grid;
 grid-template-columns:minmax(190px,1fr) auto auto;
 align-items:center;
 gap:18px;
 width:100%;
 min-height:96px;
 height:auto;
 margin:0;
 padding:14px 0;
}
.admin-main>header>div:first-child{min-width:0}
.admin-main>header small{color:#6c7d8d;font-weight:750;letter-spacing:.07em}
.admin-main>header h1{
 max-width:none!important;
 margin:3px 0 0;
 font-size:clamp(26px,2.4vw,38px);
 white-space:normal;
}
.crm-header-actions{
 display:flex;
 align-items:center;
 justify-content:flex-end;
 flex-wrap:wrap;
 gap:7px;
}
.crm-quick-action{min-height:38px;padding:9px 12px}
.admin-user{
 flex:0 0 auto;
 max-width:240px;
 padding:5px 10px 5px 5px;
 border:1px solid var(--pro-line);
 border-radius:99px;
 background:#fff;
}
.admin-user b{
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}
.admin-global-search{
 align-items:stretch;
 width:100%;
 margin:22px 0 0;
 padding:8px;
 border:1px solid var(--pro-line);
 border-radius:14px;
 background:#fff;
 box-shadow:0 7px 24px rgba(7,20,38,.04);
}
.admin-global-search input{
 min-height:44px;
 border:0!important;
 background:#f5f8f6!important;
}
.admin-global-search .btn{flex:0 0 auto}
.client-filter-bar{
 align-items:end;
 gap:12px;
 border-radius:var(--pro-radius)!important;
}
.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.stats article{min-height:124px}
.customer-directory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.customer-directory-card{
 min-height:225px;
 padding:20px;
 transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.customer-directory-card:hover{
 transform:translateY(-2px);
 border-color:#b7d7bf;
 box-shadow:0 16px 38px rgba(7,20,38,.1);
}
.customer-open-arrow,.project-card-open{font-family:inherit}
.admin-columns{grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr)}
.cms-shell{grid-template-columns:190px minmax(0,1fr) minmax(0,1fr)}
.request-card,.approval-card,.project-step-admin{min-width:0}
.calendar-workspace-panel,.month-calendar,.week-planner-shell{
 max-width:100%;
 overflow:hidden;
}
.week-planner,.month-calendar{
 overscroll-behavior-inline:contain;
 scrollbar-color:#aebcb3 #edf2ef;
}
.calendar-create-dialog,.calendar-edit-dialog,.client-file-dialog,.apple-quick-dialog{
 width:min(820px,calc(100vw - 24px));
 max-height:calc(100dvh - 24px);
 overflow:auto;
 border-radius:var(--pro-radius-lg);
}
.calendar-event,.planner-event{max-width:100%}
.calendar-event span,.planner-event h4,.planner-event small{
 overflow:hidden;
 text-overflow:ellipsis;
}
.project-card-main{min-width:0}
.project-card-title,.project-card-meta{min-width:0}
.complete-check{
 border-width:1px!important;
 border-radius:12px!important;
}
.complete-check input{
 flex-basis:28px;
 width:28px!important;
 height:28px;
 border-radius:8px;
}
.project-step-admin.is-complete{
 border-radius:var(--pro-radius);
 background:linear-gradient(90deg,#eef9f0,rgba(255,255,255,.7) 76%);
}
.waze-button{
 border-radius:99px;
 box-shadow:0 5px 14px rgba(7,20,38,.12);
}
.waze-button:before{background:var(--pro-green)}

/* Compact Waze-logo in week- en maandagenda */
.waze-agenda-link{
 display:inline-grid;
 place-items:center;
 flex:0 0 30px;
 width:30px;
 height:30px;
 min-width:30px;
 margin:7px 0 0 auto;
 padding:6px;
 border:1px solid rgba(7,20,38,.1);
 border-radius:9px;
 background:#33ccff;
 box-shadow:0 4px 10px rgba(7,20,38,.12);
 text-decoration:none!important;
 transition:transform .16s ease,box-shadow .16s ease,filter .16s ease;
}
.waze-agenda-link img{display:block;width:18px;height:18px;object-fit:contain}
.waze-agenda-link:hover,.waze-agenda-link:focus-visible{
 filter:brightness(1.04);
 transform:translateY(-1px);
 box-shadow:0 7px 14px rgba(7,20,38,.18);
}
.waze-agenda-link:focus-visible{outline:3px solid rgba(51,204,255,.35);outline-offset:2px}
.calendar-event .waze-agenda-link{
 flex-basis:26px;
 width:26px;
 height:26px;
 min-width:26px;
 margin:0 0 0 auto;
 padding:5px;
 border-radius:8px;
}
.calendar-event .waze-agenda-link img{width:16px;height:16px}

/* Klantenportaal */
.portal-page>header{
 position:sticky;
 top:0;
 z-index:100;
 height:74px;
 padding:8px clamp(16px,4vw,64px);
 border:0;
 border-radius:0;
 background:#071426;
 box-shadow:0 10px 30px rgba(7,20,38,.16);
}
.portal-page>header img{
 width:164px;
 height:58px;
 object-fit:contain;
}
.portal-page>header>div{
 min-width:0;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}
.portal-layout{
 grid-template-columns:250px minmax(0,1fr);
 width:100%;
 max-width:1540px;
 gap:20px;
 padding:20px;
}
.portal-layout>aside{
 position:sticky;
 top:94px;
 height:max-content;
 padding:26px 22px;
 border:1px solid var(--pro-line);
 border-radius:var(--pro-radius);
 background:#fff;
 box-shadow:var(--pro-shadow);
}
.portal-layout>aside h1{margin:8px 0 4px;font-size:30px}
.portal-layout>aside p{margin:0;color:var(--pro-muted)}
.portal-layout>aside nav{gap:4px;margin-top:24px}
.portal-layout>aside nav a{
 min-height:40px;
 padding:9px 11px;
 border:0;
 border-radius:9px;
 color:#506174;
 font-size:12px;
 font-weight:750;
}
.portal-layout>aside nav a:hover,.portal-layout>aside nav a:focus-visible{
 background:#eaf5ec;
 color:#176b29;
}
.portal-nav-toggle{display:none}
.portal-layout>main{width:100%;min-width:0;padding:0}
.portal-layout .stats{margin:0 0 18px}
.portal-card{padding:22px}
.portal-card h3{margin:.35em 0}
.portal-document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.portal-document-card{min-width:0}
.portal-quote-flow{grid-template-columns:repeat(3,minmax(0,1fr))}
.client-step>span{
 overflow:visible;
 flex:0 0 36px;
}
.client-step .status-check-mark{
 width:28px;
 height:28px;
 border-radius:8px;
}

/* Tablet */
@media(max-width:1180px){
 .header .nav{gap:15px}
 .header .nav a{font-size:11px}
 .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.backend{grid-template-columns:218px minmax(0,1fr)!important}
 body.backend>.side{width:218px!important;min-width:218px!important;max-width:218px!important;padding-inline:10px}
 .admin-main{padding-inline:22px}
 .admin-main>header{grid-template-columns:minmax(180px,1fr) auto}
 .admin-main>header .admin-user{grid-column:2;grid-row:1}
 .crm-header-actions{grid-column:1/-1;grid-row:2;justify-content:flex-start;padding-bottom:5px}
 .customer-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cms-shell{grid-template-columns:170px minmax(0,1fr)}
 .cms-shell>.editor:last-child{grid-column:1/-1}
 .portal-layout{grid-template-columns:220px minmax(0,1fr);gap:14px;padding:14px}
 .portal-layout>aside{padding:22px 16px}
}

@media(max-width:980px){
 .header{height:74px;padding-inline:16px}
 .header .logo{flex-basis:154px;width:154px;height:58px}
 .header .menu{display:grid;margin-left:auto}
 .header .header-btn{display:none}
 .header .nav{
  position:absolute;
  top:calc(100% + 1px);
  left:12px;
  right:12px;
  display:none;
  align-items:stretch;
  gap:2px;
  max-height:calc(100dvh - 92px);
  margin:0;
  padding:10px;
  overflow:auto;
  border:1px solid var(--pro-line);
  border-radius:0 0 16px 16px;
  background:#fff;
  box-shadow:0 24px 58px rgba(7,20,38,.19);
 }
 .header .nav.open{display:flex}
 .header .nav a{
  width:100%;
  min-height:44px;
  padding:12px 13px;
  border-radius:9px;
  font-size:13px;
  white-space:normal;
 }
 .header .nav a:hover{background:#eef7ef}
}

/* Mobiel en tabletbeheer */
@media(max-width:1100px){
 html{scroll-padding-top:78px}
 body.backend{display:block!important}
 body.backend>.side{
 position:sticky;
 top:0;
 z-index:150;
 display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:auto;
  padding:8px 10px;
  overflow:visible;
  border:0;
  box-shadow:0 10px 30px rgba(7,20,38,.2);
 }
 body.backend>.side>img,body.backend>.side>b,body.backend>.side>a:last-child{display:none!important}
 .mobile-admin-nav-toggle{
  display:grid;
  grid-template-columns:24px auto minmax(0,1fr);
  gap:9px;
  width:100%;
  min-height:50px;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  background:#102238;
  color:#fff;
  text-align:left;
 }
 .mobile-admin-nav-toggle>b{
  overflow:hidden;
  color:#a9b9c8;
  font-size:11px;
  text-align:right;
  text-overflow:ellipsis;
  white-space:nowrap;
 }
 body.backend>.side nav{
  position:absolute;
  top:calc(100% - 1px);
  left:10px;
  right:10px;
  display:flex;
  max-height:calc(100dvh - 76px);
  margin:0;
  padding:10px;
  overflow-y:auto;
  border:1px solid rgba(255,255,255,.12);
  border-radius:0 0 14px 14px;
  background:#0b1a2c;
  box-shadow:0 24px 50px rgba(7,20,38,.35);
 }
 body.admin-nav-enhanced>.side nav:not(.is-open){display:none}
 body.backend>.side nav .mobile-admin-logout{display:flex}
 .admin-main{
  max-width:none;
  padding:0 15px 44px!important;
 }
 .admin-main>header{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  min-height:80px;
  gap:10px;
  padding:12px 0;
 }
 .admin-main>header h1{font-size:27px}
 .admin-main>header>div:first-child small{font-size:9px}
 .admin-main>header .admin-user{grid-column:2;grid-row:1}
 .admin-main>header .crm-header-actions{
  grid-column:1/-1;
  grid-row:2;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  width:100%;
  padding:0;
 }
 .crm-header-actions .crm-quick-action{width:100%;min-width:0}
 .admin-global-search{flex-wrap:wrap}
 .admin-global-search input{flex:1 1 calc(100% - 110px)}
 .client-filter-bar{align-items:stretch;flex-direction:column}
 .client-filter-bar label,.client-filter-bar .btn{width:100%}
 .admin-columns,.cms-shell,.email-admin-layout,.request-card,.approval-card{
  grid-template-columns:minmax(0,1fr)!important;
 }
 .cms-shell>.editor:last-child{grid-column:auto}
 .page-tabs{
  position:static;
  flex-direction:row;
  max-width:100%;
  overflow-x:auto;
  border-radius:12px;
 }
 .page-tabs a{flex:0 0 auto;white-space:nowrap}
 .calendar-control-bar{align-items:stretch;flex-direction:column}
 .calendar-view-switch{width:100%;overflow:auto}
 .calendar-view-switch a{flex:1;white-space:nowrap}
 .calendar-technician-filter{align-items:stretch;flex-direction:column}
 .calendar-technician-filter select{width:100%;max-width:none}
 .week-planner-shell,.month-calendar{overflow-x:auto}
 .week-planner,.calendar-weekdays,.calendar-grid{min-width:720px}
}

/* Mobiele website en klantportaal */
@media(max-width:760px){
 body{font-size:14px}
 .ticker{font-size:9px;letter-spacing:.12em}
 .hero{
  min-height:0!important;
  max-height:none;
  aspect-ratio:1734/907;
 }
 .hero-actions{left:14px;bottom:12px}
 .hero-actions .btn{min-height:39px;padding:10px 13px;font-size:9px}
 .intro,.dark-split,.contact-grid,.content{
  grid-template-columns:minmax(0,1fr);
  padding:52px 18px;
  gap:30px;
 }
 h1{font-size:clamp(38px,12vw,56px)}
 h2{font-size:clamp(30px,9vw,44px)}
 .page-hero{
  min-height:360px;
  padding:76px 18px 48px;
 }
 .page-hero h1{font-size:clamp(38px,11vw,58px)}
 .cards,.service-grid,.realization-grid,.detail-gallery{
  grid-template-columns:minmax(0,1fr);
 }
 .cards{gap:12px}
 .cards article{min-height:auto;padding:22px}
 .cards article h2,.cards article h3{margin-top:35px}
 .service-card{min-height:310px;padding:22px}
 .realization-grid img{height:260px}
 .realization-story,.detail-gallery{padding-inline:18px}
 .detail-gallery img,.detail-gallery img:nth-child(3n){grid-column:auto;height:280px}
 .cta{
  align-items:stretch;
  flex-direction:column;
  padding:42px 18px;
 }
 .cta .btn{width:100%}
 .contact-grid form{padding:21px}
 .site-popup{
  right:10px;
  bottom:10px;
  width:calc(100vw - 20px);
  padding:20px;
 }
 footer{
  grid-template-columns:minmax(0,1fr);
  padding:38px 18px;
 }
 footer p,footer small{text-align:left}
 footer nav,footer .footer-legal-links{justify-content:flex-start}
 .login-page{padding:12px}
 .login-card{padding:23px}

 .portal-page>header{
  height:66px;
  padding:6px 12px;
 }
 .portal-page>header img{width:124px;height:52px}
 .portal-page>header>div{max-width:52vw;font-size:11px;text-align:right}
 .portal-layout{
  display:block;
  width:100%;
  padding:10px;
 }
 .portal-layout>aside{
  position:sticky;
  top:66px;
  z-index:90;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  margin:0 0 10px;
  padding:10px 12px;
  border-radius:13px;
 }
 .portal-layout>aside>small,.portal-layout>aside>h1{display:none}
 .portal-layout>aside>p{
  overflow:hidden;
  color:#23364a;
  font-size:13px;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
 }
 .portal-nav-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:8px 11px;
  border:1px solid var(--pro-line);
  border-radius:10px;
  background:#f4f7f5;
  color:var(--pro-navy);
  font-size:11px;
  font-weight:800;
 }
 .portal-layout>aside nav{
  position:absolute;
  top:calc(100% + 4px);
  left:0;
  right:0;
  display:flex;
  grid-column:1/-1;
  flex-direction:column;
  gap:3px;
  max-height:calc(100dvh - 144px);
  margin:0;
  padding:9px;
  overflow-y:auto;
  border:1px solid var(--pro-line);
  border-radius:13px;
  background:#fff;
  box-shadow:var(--pro-shadow-raised);
 }
 .portal-nav-enhanced .portal-layout>aside nav:not(.is-open){display:none}
 .portal-layout>aside nav a{
  width:100%;
  min-height:43px;
  padding:11px 12px;
  white-space:normal;
 }
 .portal-layout>main{padding:0}
 .portal-layout .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .portal-layout .stats article{min-height:100px;padding:15px}
 .portal-layout .panel,.portal-card{padding:16px}
 .portal-document-grid,.portal-quote-flow{grid-template-columns:minmax(0,1fr)}
 .portal-document-card{grid-template-columns:42px minmax(0,1fr);padding:14px}
 .building-project-title,.panel-heading{
  align-items:flex-start;
  flex-direction:column;
 }
 .form-grid,.media-grid,.permission-grid,.current-images,.managed-block-list,
 .building-admin-grid,.syndic-building-grid,.technician-grid,.syndic-request-option-list{
  grid-template-columns:minmax(0,1fr)!important;
 }
 .data-row{
  align-items:flex-start;
  flex-direction:column;
 }
 .data-row>.row-actions,.row-actions{
  align-items:stretch;
  justify-content:flex-start;
  width:100%;
 }
 .row-actions>a,.row-actions>button,.row-actions>form{max-width:100%}
 .row-actions .waze-button{width:100%;justify-content:flex-start}
 .client-step{grid-template-columns:38px minmax(0,1fr)}
 .client-step-photos{grid-template-columns:repeat(2,minmax(0,1fr))}
 .human-check{grid-template-columns:minmax(0,1fr)!important}
}

@media(max-width:520px){
 .header{height:68px;padding-inline:10px}
 .header .logo{flex-basis:136px;width:136px;height:52px}
 .header .nav{left:8px;right:8px}
 .header .menu{width:42px;height:42px}
 .intro,.dark-split,.contact-grid,.content{padding-inline:14px}
 .stats,.customer-directory-grid{grid-template-columns:minmax(0,1fr)}
 .stats article{min-height:104px}
 .admin-main{padding-inline:10px!important}
 .admin-main>header{grid-template-columns:minmax(0,1fr)}
 .admin-main>header .admin-user{display:none}
 .admin-main>header>div:first-child{grid-column:1}
 .admin-main>header .crm-header-actions{grid-template-columns:minmax(0,1fr)}
 .admin-global-search input{flex-basis:100%}
 .admin-global-search .btn{width:100%}
 .customer-directory-card{min-height:0}
 .calendar-page-actions,.calendar-page-actions .btn,.calendar-page-actions form,
 .calendar-page-actions form .subtle-button{width:100%}
 .calendar-create-dialog,.calendar-edit-dialog,.client-file-dialog,.apple-quick-dialog{
  width:calc(100vw - 12px);
  max-width:calc(100vw - 12px);
  max-height:calc(100dvh - 12px);
  border-radius:14px;
 }
 .calendar-create-dialog-head,.client-file-dialog-head{padding:16px}
 .calendar-create-form,.client-file-dialog form{padding-inline:16px}
 .portal-layout{padding:7px}
 .portal-layout .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .portal-layout .panel,.portal-card{padding:14px}
 .client-step-photos{grid-template-columns:minmax(0,1fr)}
}

@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{
  scroll-behavior:auto!important;
  animation-duration:.01ms!important;
  animation-iteration-count:1!important;
 transition-duration:.01ms!important;
 }
}

/* V40 projectplanning en rustige mobiele agenda */
.planner-event.is-editable:after,.calendar-event.is-editable:after{content:none!important;display:none!important}

.project-deadline-panel{
 display:grid;
 grid-template-columns:minmax(220px,.58fr) minmax(0,1.42fr);
 gap:18px;
 margin:18px 0 24px;
 padding:18px;
 border:1px solid #dce6df;
 border-radius:15px;
 background:linear-gradient(120deg,#f7fbf8,#fff);
}
.project-deadline-current{
 display:flex;
 min-width:0;
 flex-direction:column;
 justify-content:center;
 padding:15px 17px;
 border-left:4px solid var(--pro-green);
 border-radius:11px;
 background:#edf8ef;
}
.project-deadline-current span,.project-deadline-form label>span{
 color:#637568;
 font-size:9px;
 font-weight:850;
 letter-spacing:.07em;
 text-transform:uppercase;
}
.project-deadline-current b{margin:5px 0;color:var(--pro-navy);font-size:24px}
.project-deadline-current small{color:#66766b;line-height:1.45}
.project-deadline-form{
 display:grid;
 grid-template-columns:minmax(160px,.7fr) minmax(220px,1.3fr) auto;
 align-items:end;
 gap:11px;
 margin:0;
}
.project-deadline-form label{display:grid;gap:6px;margin:0!important}
.project-deadline-form input{
 width:100%;
 min-height:44px;
 margin:0!important;
 padding:10px 12px!important;
 border:1px solid #d4dfd7!important;
 border-radius:10px!important;
 background:#fff!important;
 color:var(--pro-navy)!important;
 font:inherit!important;
 text-transform:none!important;
}
.project-deadline-form .btn{min-height:44px;white-space:nowrap}

/* Het icoon blijft klein en opent Waze zonder de afspraakkaart uit te rekken. */
.planner-event .waze-agenda-link,.calendar-event .waze-agenda-link{
 display:grid!important;
 position:absolute!important;
 top:9px!important;
 right:9px!important;
 place-items:center!important;
 width:28px!important;
 min-width:28px!important;
 height:28px!important;
 min-height:28px!important;
 margin:0!important;
 padding:5px!important;
 border:0!important;
 border-radius:50%!important;
 background:#33ccff!important;
 box-shadow:0 3px 9px rgba(7,20,38,.16)!important;
}
.calendar-event{position:relative}
.planner-event .waze-agenda-link:before,.calendar-event .waze-agenda-link:before{content:none!important;display:none!important}
.planner-event .waze-agenda-link img,.calendar-event .waze-agenda-link img{display:block!important;width:17px!important;height:17px!important}
.planner-event:has(.waze-agenda-link),.calendar-event:has(.waze-agenda-link){padding-right:43px!important}
.mobile-month-agenda{display:none}

@media(min-width:761px){
 .planner-event .waze-agenda-link,.calendar-event .waze-agenda-link{
  top:50%!important;
  right:4px!important;
  width:20px!important;
  min-width:20px!important;
  height:20px!important;
  min-height:20px!important;
  padding:2px!important;
  border-radius:5px!important;
  background:transparent!important;
  box-shadow:none!important;
  opacity:.7;
  transform:translateY(-50%)!important;
 }
 .calendar-event .waze-agenda-link{
  width:18px!important;
  min-width:18px!important;
  height:18px!important;
  min-height:18px!important;
 }
 .planner-event .waze-agenda-link img{width:15px!important;height:15px!important}
 .calendar-event .waze-agenda-link img{width:13px!important;height:13px!important}
 .planner-event .waze-agenda-link:hover,.planner-event .waze-agenda-link:focus-visible,
 .calendar-event .waze-agenda-link:hover,.calendar-event .waze-agenda-link:focus-visible{
  background:#33ccff!important;
  opacity:1;
  transform:translateY(-50%)!important;
 }
 .planner-event:has(.waze-agenda-link){padding-right:30px!important}
 .calendar-event:has(.waze-agenda-link){padding-right:24px!important}
}

@media(max-width:900px){
 .project-deadline-panel{grid-template-columns:minmax(0,1fr)}
 .project-deadline-form{grid-template-columns:repeat(2,minmax(0,1fr))}
 .project-deadline-form .btn{grid-column:1/-1;width:100%}
}

@media(max-width:760px){
 .week-planner-shell{
  width:100%;
  overflow:visible!important;
  padding:14px 10px 18px!important;
 }
 .week-planner{
  display:flex!important;
  width:100%!important;
  min-width:0!important;
  flex-direction:column;
  gap:10px;
 }
 .week-day-column{
  width:100%;
  min-height:0!important;
  overflow:visible;
  border-radius:12px;
 }
 .week-day-column>header{padding:10px 13px}
 .week-day-column>header span{font-size:11px}
 .week-day-column>header b{width:32px;height:32px}
 .week-day-events{
  min-height:0;
  flex:none;
  gap:8px;
  padding:9px;
 }
 .week-day-empty{
  margin:0!important;
  padding:12px!important;
  border-radius:9px;
  background:#f6f8f7;
 }
 .planner-event{
  width:100%;
  min-height:72px;
  padding:12px 45px 12px 14px!important;
  border-radius:10px;
 }
 .planner-event-time{margin-bottom:6px;font-size:10px}
 .planner-event-time b{font-size:13px}
 .planner-event h4{font-size:14px;line-height:1.35}
 .planner-event>small{font-size:10px;line-height:1.45}
 .planner-event .waze-agenda-link{
  top:50%!important;
  right:11px!important;
  width:30px!important;
  min-width:30px!important;
  height:30px!important;
  min-height:30px!important;
  transform:translateY(-50%)!important;
 }
 .planner-event .waze-agenda-link:hover,.planner-event .waze-agenda-link:focus-visible{transform:translateY(-50%)!important}
 .project-deadline-panel{margin:14px 0 20px;padding:13px}
 .project-deadline-current{padding:13px 14px}
 .project-deadline-current b{font-size:21px}
 .project-deadline-form{grid-template-columns:minmax(0,1fr)}
 .project-deadline-form .btn{grid-column:auto}

 .month-calendar{
  width:100%;
  overflow:visible!important;
  border-radius:13px;
 }
 .month-calendar .calendar-weekdays,.month-calendar .calendar-grid{
  display:none!important;
  min-width:0!important;
 }
 .month-calendar .calendar-toolbar{
  gap:8px;
  padding:12px;
 }
 .month-calendar .calendar-toolbar h3{
  flex:1;
  font-size:20px;
  text-align:center;
 }
 .month-calendar .calendar-toolbar a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:8px 10px;
  border:1px solid #dce4df;
  border-radius:9px;
  background:#f7f9f8;
  font-size:10px;
  white-space:nowrap;
 }
 .mobile-month-agenda{
  display:grid;
  gap:10px;
  padding:10px;
  border-top:1px solid #e4ebe6;
  background:#f3f7f4;
 }
 .mobile-month-day{
  overflow:hidden;
  border:1px solid #dce5df;
  border-radius:12px;
  background:#fff;
  box-shadow:0 4px 14px rgba(7,20,38,.05);
 }
 .mobile-month-day>header{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-bottom:1px solid #e7ece9;
  background:#f9fbfa;
 }
 .mobile-month-day>header>div{
  display:flex;
  align-items:center;
  gap:7px;
 }
 .mobile-month-day>header span{
  color:#647585;
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
 }
 .mobile-month-day>header b{
  display:grid;
  place-items:center;
  width:31px;
  height:31px;
  border-radius:50%;
  background:#eaf0ec;
  color:var(--pro-navy);
  font-size:14px;
 }
 .mobile-month-day>header strong{color:#42576b;font-size:11px}
 .mobile-month-day>header small{color:#758596;font-size:9px;font-weight:800}
 .mobile-month-day.is-today{border-color:#6ac679}
 .mobile-month-day.is-today>header{background:#edf8ef}
 .mobile-month-day.is-today>header b{background:var(--pro-green);color:#071426}
 .mobile-month-events{display:grid;gap:7px;padding:9px}
 .mobile-month-event{
  display:grid;
  position:relative;
  grid-template-columns:58px minmax(0,1fr);
  gap:11px;
  min-height:66px;
  padding:11px 44px 11px 12px;
  border-radius:10px;
  background:#eaf2ff;
  color:#173f70;
  box-shadow:inset 3px 0 0 #2874d0;
 }
 .mobile-month-event.is-apple{background:#f0edff;color:#54409c;box-shadow:inset 3px 0 0 #7a64d1}
 .mobile-month-event.is-technician{background:#fff4d8;color:#694400;box-shadow:inset 3px 0 0 #d89519}
 .mobile-month-event.is-absence{background:#f6eafa;color:#653070;box-shadow:inset 3px 0 0 #b868cb}
 .mobile-month-event.is-emergency{background:#fff0ef!important;color:#962a24!important;box-shadow:inset 3px 0 0 #d7433a}
 .mobile-month-event time{display:flex;flex-direction:column;color:inherit;font-size:9px}
 .mobile-month-event time b{font-size:13px}
 .mobile-month-event h4{margin:0 0 4px;color:inherit;font-size:13px;line-height:1.35;letter-spacing:0}
 .mobile-month-event small{display:block;margin-top:2px;color:inherit;font-size:10px;opacity:.78}
 .mobile-month-event.is-editable{cursor:pointer}
 .mobile-month-event.is-editable:active{transform:scale(.995)}
 .mobile-month-event .waze-agenda-link{
  display:grid!important;
  position:absolute!important;
  top:50%!important;
  right:10px!important;
  place-items:center!important;
  width:29px!important;
  min-width:29px!important;
  height:29px!important;
  min-height:29px!important;
  margin:0!important;
  padding:5px!important;
  border:0!important;
  border-radius:50%!important;
  background:#33ccff!important;
  box-shadow:0 3px 9px rgba(7,20,38,.16)!important;
  transform:translateY(-50%)!important;
 }
 .mobile-month-event .waze-agenda-link:before{content:none!important;display:none!important}
 .mobile-month-event .waze-agenda-link img{display:block!important;width:17px!important;height:17px!important}
 .mobile-month-empty{margin:0;padding:25px;border:1px dashed #c8d3cb;border-radius:10px;background:#fff;color:#6d7d72;text-align:center}
}
.calendar-live-availability{
 display:flex;
 align-items:flex-start;
 gap:.7rem;
 margin:.85rem 0;
 padding:.85rem 1rem;
 border:1px solid #d7dfdb;
 border-radius:14px;
 background:#f5f8f6;
 color:#475569;
 font-size:.88rem;
 line-height:1.45;
}
.calendar-live-availability-icon{
 flex:0 0 11px;
 width:11px;
 height:11px;
 margin-top:.28rem;
 border-radius:50%;
 background:#94a3b8;
 box-shadow:0 0 0 4px rgba(148,163,184,.14);
}
.calendar-live-availability.is-checking{
 border-color:#9ec5f8;
 background:#eff6ff;
 color:#1e4f8a;
}
.calendar-live-availability.is-checking .calendar-live-availability-icon{
 background:#2563eb;
 animation:availability-pulse 1s ease-in-out infinite;
}
.calendar-live-availability.is-available{
 border-color:#83d59a;
 background:#ecf9ef;
 color:#17652a;
}
.calendar-live-availability.is-available .calendar-live-availability-icon{
 background:#2fbb55;
 box-shadow:0 0 0 4px rgba(47,187,85,.16);
}
.calendar-live-availability.is-busy,
.calendar-live-availability.is-error{
 border-color:#f0a3a3;
 background:#fff1f1;
 color:#8f1d1d;
}
.calendar-live-availability.is-busy .calendar-live-availability-icon,
.calendar-live-availability.is-error .calendar-live-availability-icon{
 background:#dc2626;
 box-shadow:0 0 0 4px rgba(220,38,38,.13);
}
@keyframes availability-pulse{
 50%{opacity:.38;transform:scale(.78)}
}
@media(max-width:700px){
 .calendar-live-availability{font-size:.82rem;padding:.78rem .85rem;border-radius:12px}
}
.smtp-settings-card{
 display:grid;
 gap:18px;
 margin:24px 0;
 padding:22px;
 border:1px solid #cedbd2;
 border-radius:16px;
 background:linear-gradient(145deg,#f7faf7,#eef5ef);
}
.smtp-settings-heading{
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:18px;
}
.smtp-settings-heading h3{margin:3px 0 6px;font-size:1.28rem}
.smtp-settings-heading p{margin:0;color:#607068;line-height:1.55}
.smtp-status{
 flex:0 0 auto;
 padding:8px 11px;
 border-radius:999px;
 font-size:.72rem;
 font-weight:900;
 letter-spacing:.04em;
 text-transform:uppercase;
}
.smtp-status-wrap{display:grid;justify-items:end;gap:6px;flex:0 0 auto}
.smtp-status-wrap small{color:#64716b;font-size:.72rem;white-space:nowrap}
.smtp-status.is-active{background:#dff5e4;color:#146b2c}
.smtp-status.is-inactive{background:#edf0ef;color:#64716b}
.smtp-enable-line{
 display:flex!important;
 align-items:flex-start;
 gap:12px;
 padding:15px!important;
 border:1px solid #c9d8cc!important;
 border-radius:12px;
 background:#fff;
}
.smtp-enable-line input{width:20px!important;height:20px!important;margin-top:2px}
.smtp-enable-line span{display:grid;gap:3px}
.smtp-enable-line small,.smtp-security-note{color:#64716b}
.smtp-security-note{
 margin:0;
 padding:12px 14px;
 border-left:3px solid var(--pro-green);
 background:rgba(255,255,255,.72);
 line-height:1.55;
}
@media(max-width:700px){
 .smtp-settings-card{padding:16px;border-radius:13px}
 .smtp-settings-heading{display:grid}
 .smtp-status-wrap{justify-items:start}
}

/* V45 technician login and shared calendar access */
.technician-calendar-access{
 margin:18px 0;
 padding:17px;
 border:1px solid #d7e1da;
 border-radius:14px;
 background:#f4f8f5;
}
.technician-calendar-access>legend{
 padding:0 8px;
 color:#071426;
 font-size:11px;
 font-weight:900;
 letter-spacing:.06em;
 text-transform:uppercase;
}
.technician-calendar-access>p{
 margin:0 0 12px;
 color:#617169;
 font-size:12px;
 line-height:1.55;
}
.technician-calendar-access .permission-grid{
 margin:0;
 padding:0;
 border:0;
 background:transparent;
}
.technician-calendar-access .permission-grid label{
 min-height:44px;
 border:1px solid #dde6df;
 border-radius:10px;
 background:#fff;
}
.technician-login-card{
 border-radius:20px;
 box-shadow:0 24px 70px rgba(0,0,0,.28);
}
.technician-login-card .eyebrow{margin-bottom:5px}
.technician-login-card>p:not(.eyebrow):not(.error){
 color:#617084;
 line-height:1.65;
}
.technician-login-card .error{
 border-radius:10px;
 font-weight:700;
}
.waze-icon-button{
 display:inline-grid!important;
 flex:0 0 38px;
 width:38px;
 height:38px;
 place-items:center;
 padding:0!important;
 border:1px solid #b9dfe9!important;
 border-radius:12px!important;
 background:#dff8ff!important;
 box-shadow:0 5px 14px rgba(39,157,191,.14);
 transition:transform .16s ease,box-shadow .16s ease!important;
}
.waze-icon-button:hover{
 transform:translateY(-2px);
 box-shadow:0 8px 18px rgba(39,157,191,.22);
}
.waze-icon-button img{
 display:block;
 width:24px;
 height:24px;
 object-fit:contain;
}
.client-password-recipient{
 display:grid;
 gap:4px;
 margin:4px 0 16px;
 padding:17px;
 border-radius:13px;
 background:#eef4f0;
}
.client-password-recipient span{
 color:#697970;
 font-size:10px;
 font-weight:900;
 letter-spacing:.08em;
 text-transform:uppercase;
}
.client-password-recipient b{font-size:16px;color:#071426}
.client-password-recipient small{color:#617169}
.client-password-dialog{max-width:620px}
.client-delete-dialog{max-width:640px}
.client-danger-trigger{
 border-color:#efcaca!important;
 background:#fff4f4!important;
 color:#9b1f29!important;
}
.client-delete-dialog .eyebrow{color:#b22530}
.client-delete-dialog .danger-button{min-height:46px;padding:0 17px}
.customer-create-dialog{max-width:820px}
@media(max-width:650px){
 .technician-calendar-access{padding:14px}
 .waze-icon-button{width:42px;height:42px;flex-basis:42px}
}

/* V46 – duidelijke toetsenbord- en agentnavigatie */
.skip-link{
 position:fixed;
 left:18px;
 top:12px;
 z-index:10000;
 padding:12px 16px;
 border:3px solid #38b84b;
 border-radius:10px;
 background:#fff;
 color:#071426;
 font-weight:900;
 transform:translateY(-160%);
 transition:transform .16s ease;
}
.skip-link:focus{transform:translateY(0)}
main[tabindex="-1"]:focus{outline:none}

/* V46 – centrale instellingen en rustigere backoffice-typografie */
body.backend,
.portal-page{
 font-family:"Segoe UI Variable Text","Aptos",-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;
 font-kerning:normal;
 font-optical-sizing:auto;
 letter-spacing:0;
 line-height:1.5;
}
body.backend h1,
body.backend h2,
body.backend h3,
body.backend h4,
.portal-page h1,
.portal-page h2,
.portal-page h3,
.portal-page h4{
 font-family:"Segoe UI Variable Display","Aptos Display","Segoe UI Variable Text","Aptos",-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;
 font-weight:720;
 letter-spacing:-.01em;
 line-height:1.16;
}
body.backend input,
body.backend select,
body.backend textarea,
body.backend button,
.portal-page input,
.portal-page select,
.portal-page textarea,
.portal-page button{
 font-family:inherit;
 letter-spacing:0;
}
body.backend p,
.portal-page p{letter-spacing:0}

.settings-subnav{
 position:sticky;
 top:86px;
 z-index:23;
 display:flex;
 gap:7px;
 margin:0 0 24px;
 padding:9px;
 overflow-x:auto;
 border:1px solid #dfe7e2;
 border-radius:16px;
 background:rgba(255,255,255,.96);
 box-shadow:0 12px 34px rgba(7,20,38,.07);
 backdrop-filter:blur(12px);
}
.settings-subnav a{
 display:flex;
 align-items:center;
 gap:9px;
 min-height:42px;
 padding:0 15px;
 border-radius:11px;
 color:#66776f;
 font-size:12px;
 font-weight:750;
 white-space:nowrap;
}
.settings-subnav a span{
 color:#9aa9a2;
 font-size:9px;
 font-weight:850;
 letter-spacing:.09em;
}
.settings-subnav a:hover{background:#f0f5f2;color:#071426}
.settings-subnav a.active{
 background:#071426;
 color:#fff;
 box-shadow:0 8px 20px rgba(7,20,38,.14);
}
.settings-subnav a.active span{color:#64d875}
.settings-hub{display:grid;gap:20px}
.settings-hub>header{
 display:flex;
 align-items:flex-end;
 justify-content:space-between;
 gap:28px;
 min-height:230px;
 padding:clamp(28px,4vw,52px);
 overflow:hidden;
 border-radius:24px;
 background:
  radial-gradient(circle at 90% 12%,rgba(56,184,75,.22),transparent 30%),
  linear-gradient(135deg,#071426,#12253a);
 color:#fff;
 box-shadow:0 22px 55px rgba(7,20,38,.14);
}
.settings-hub>header>div{max-width:800px}
.settings-hub>header h2{
 max-width:700px;
 margin:8px 0 15px;
 color:#fff;
 font-size:clamp(34px,4vw,58px);
 line-height:1.02;
}
.settings-hub>header p:last-child{
 max-width:720px;
 margin:0;
 color:#c9d4df;
 font-size:16px;
 line-height:1.7;
}
.settings-hub-status{
 flex:0 0 auto;
 padding:10px 14px;
 border:1px solid rgba(255,255,255,.18);
 border-radius:999px;
 background:rgba(255,255,255,.08);
 color:#dff8e3;
 font-size:11px;
 font-weight:800;
}
.settings-hub-grid{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:15px;
}
.settings-hub-card{
 display:grid;
 grid-template-columns:auto minmax(0,1fr) auto;
 align-items:start;
 gap:18px;
 min-height:190px;
 padding:26px;
 border:1px solid #dfe7e2;
 border-radius:19px;
 background:#fff;
 box-shadow:0 10px 30px rgba(7,20,38,.055);
 transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.settings-hub-card:hover{
 transform:translateY(-3px);
 border-color:#aedfb6;
 box-shadow:0 18px 42px rgba(7,20,38,.09);
}
.settings-hub-card>span{
 display:grid;
 width:42px;
 height:42px;
 place-items:center;
 border-radius:12px;
 background:#e8f8eb;
 color:#16812a;
 font-size:11px;
 font-weight:900;
}
.settings-hub-card small{
 color:#718079;
 font-size:10px;
 font-weight:800;
 letter-spacing:.09em;
 text-transform:uppercase;
}
.settings-hub-card h3{
 margin:7px 0 9px;
 color:#071426;
 font-size:23px;
}
.settings-hub-card p{margin:0;color:#697970;line-height:1.65}
.settings-hub-card>b{align-self:center;color:#1ca239;font-size:23px}

/* V48 – Spryng, ETA en gecontroleerd vertrek naar Waze */
.sms-settings-page{display:grid;gap:20px}
.sms-settings-status{
 display:inline-flex;
 align-items:center;
 gap:9px;
 flex:0 0 auto;
 padding:10px 14px;
 border:1px solid #d8e3db;
 border-radius:999px;
 background:#fff;
 color:#56675d;
 font-size:11px;
 font-weight:850;
}
.sms-settings-status span{width:9px;height:9px;border-radius:50%;background:#d89024;box-shadow:0 0 0 4px rgba(216,144,36,.12)}
.sms-settings-status.is-ready{color:#18772a}
.sms-settings-status.is-ready span{background:#38b84b;box-shadow:0 0 0 4px rgba(56,184,75,.13)}
.sms-settings-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:20px;align-items:start}
.sms-settings-form{display:grid;gap:17px}
.sms-settings-form>.panel-heading{padding:0 0 15px;border-bottom:1px solid #e3eae5}
.sms-enable-line{
 display:flex!important;
 align-items:flex-start!important;
 grid-template-columns:auto 1fr;
 gap:12px;
 margin:0!important;
 padding:15px;
 border:1px solid #cfe0d3;
 border-radius:13px;
 background:#f1f8f2;
}
.sms-enable-line input{flex:0 0 20px;width:20px!important;height:20px;margin:1px 0 0!important}
.sms-enable-line span{display:grid;gap:3px}
.sms-enable-line b{color:#071426;font-size:13px}
.sms-enable-line small{margin:0!important;color:#6b7a70}
.sms-token-help{padding:13px 15px;border-left:4px solid #38b84b;border-radius:0 11px 11px 0;background:#eef5f0}
.sms-token-help b{display:block;margin-bottom:7px;color:#071426;font-size:11px}
.sms-token-help p{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.sms-token-help code{padding:4px 7px;border:1px solid #d3e0d6;border-radius:7px;background:#fff;color:#18752a;font-size:10px}
.sms-settings-aside{display:grid;gap:16px}
.sms-flow-card h3,.sms-test-card h3{margin:4px 0 8px}
.sms-flow-card>ol{display:grid;gap:0;margin:18px 0;padding:0;list-style:none}
.sms-flow-card li{display:grid;grid-template-columns:32px 1fr;gap:11px;padding:12px 0;border-top:1px solid #e4ebe6}
.sms-flow-card li>span{display:grid;width:28px;height:28px;place-items:center;border-radius:9px;background:#071426;color:#fff;font-size:10px;font-weight:900}
.sms-flow-card li>div{display:grid;gap:3px}.sms-flow-card li b{font-size:12px}.sms-flow-card li small{color:#6f7d75;line-height:1.45}
.sms-flow-card>a{color:#16812d;font-size:11px;font-weight:850}
.sms-test-card button:disabled{cursor:not-allowed;opacity:.48}
.sms-connection-card{border-top:4px solid #38b84b}
.sms-token-summary{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0!important}
.sms-token-summary b,.sms-token-summary span{display:inline-flex;padding:6px 9px;border-radius:8px;background:#eef5f0;color:#345044;font-size:10px;font-weight:800}
.sms-token-summary b{background:#071426;color:#fff}
.sms-connection-card>small{display:block;margin:0 0 12px;color:#607068}

.departure-dialog{
 width:min(820px,calc(100vw - 28px));
 max-height:min(94vh,940px);
 padding:0;
 overflow:auto;
 border:0;
 border-radius:22px;
 background:#f4f7f5;
 color:#071426;
 box-shadow:0 30px 100px rgba(3,14,27,.42);
}
.departure-dialog::backdrop{background:rgba(3,13,25,.76);backdrop-filter:blur(4px)}
.departure-dialog[open]{animation:clientDialogIn .18s ease-out}
.departure-dialog-head{
 position:sticky;
 top:0;
 z-index:4;
 display:flex;
 align-items:flex-start;
 justify-content:space-between;
 gap:20px;
 padding:20px 22px;
 border-bottom:1px solid #dfe7e1;
 background:#fff;
}
.departure-dialog-head>div{display:flex;align-items:center;gap:14px}
.departure-dialog-head .eyebrow{margin:0 0 2px;color:#1b9132}
.departure-dialog-head h2{margin:0;font-size:clamp(25px,4vw,36px);letter-spacing:-.035em}
.departure-dialog-head p:last-child{margin:3px 0 0;color:#6d7b73}
.departure-dialog-head>button{
 display:grid;
 flex:0 0 40px;
 width:40px;
 height:40px;
 place-items:center;
 border:1px solid #dce4df;
 border-radius:50%;
 background:#f4f7f5;
 color:#071426;
 font-size:25px;
 cursor:pointer;
}
.departure-waze-mark{display:grid;flex:0 0 46px;width:46px;height:46px;place-items:center;border-radius:14px;background:#33ccff;box-shadow:0 8px 18px rgba(32,160,200,.2)}
.departure-waze-mark img{display:block;width:29px;height:29px}
.departure-dialog-body{padding:22px}
.departure-loading{display:flex;align-items:center;gap:16px;min-height:150px;padding:22px;border:1px solid #dfe7e1;border-radius:16px;background:#fff}
.departure-loading b{font-size:15px}.departure-loading p{margin:5px 0 0;color:#6c7b72;line-height:1.55}
.departure-spinner{width:34px;height:34px;flex:0 0 34px;border:4px solid #dce9df;border-top-color:#38b84b;border-radius:50%;animation:departureSpin .8s linear infinite}
@keyframes departureSpin{to{transform:rotate(360deg)}}
.departure-error{padding:18px;border:1px solid #efc5c8;border-radius:14px;background:#fff1f2;color:#8f1f28}
.departure-error p{margin:6px 0 0;line-height:1.55}
.departure-content{display:grid;gap:16px}
.departure-context{display:grid;grid-template-columns:1fr 1.25fr;gap:12px}
.departure-context>div{display:grid;gap:4px;padding:15px;border:1px solid #dfe7e1;border-radius:14px;background:#fff}
.departure-context small{color:#78857d;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.departure-context b{font-size:14px}.departure-context span{color:#637369;font-size:11px;line-height:1.5}
.departure-eta{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border-radius:16px;background:#071426;color:#fff}
.departure-eta>div{display:grid;gap:2px}.departure-eta small{color:#aebbc8;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.departure-eta strong{color:#4cda62;font-size:34px;letter-spacing:-.04em}
.departure-eta p{margin:0;color:#c7d2dc;font-size:11px}.departure-eta p b{color:#fff}.departure-eta p span{margin-inline:5px;color:#5f7284}
.departure-message-section{padding:18px;border:1px solid #dfe7e1;border-radius:16px;background:#fff}
.departure-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:14px}
.departure-section-heading .eyebrow{margin:0 0 3px;color:#1d9134}.departure-section-heading h3{margin:0;font-size:18px}
.departure-section-heading>span{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#edf3ef;color:#627169;font-size:9px;font-weight:850}
.departure-section-heading>span.is-over{background:#fee9ea;color:#9c2029}
.departure-template-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}
.departure-template-grid button{
 display:grid;
 grid-template-columns:25px 1fr;
 grid-template-rows:auto auto;
 gap:2px 8px;
 min-width:0;
 padding:11px;
 border:1px solid #dce5df;
 border-radius:11px;
 background:#f7faf8;
 color:#071426;
 text-align:left;
 cursor:pointer;
}
.departure-template-grid button>span{grid-row:1/3;display:grid;width:25px;height:25px;place-items:center;border-radius:8px;background:#e5ece7;color:#506057;font-size:9px;font-weight:900}
.departure-template-grid button b{min-width:0;font-size:10px;line-height:1.35}.departure-template-grid button small{color:#75847b;font-size:8px;line-height:1.35}
.departure-template-grid button.is-active{border-color:#38b84b;background:#eef9f0;box-shadow:0 0 0 2px rgba(56,184,75,.09)}
.departure-template-grid button.is-active>span{background:#38b84b;color:#071426}
.departure-message-label{display:grid;gap:7px;margin:0!important;color:#26384b;font-size:11px;font-weight:850}
.departure-message-label textarea{width:100%;min-height:112px;margin:0!important;padding:13px;border:1px solid #cad7ce;border-radius:11px;background:#fff;color:#071426;font:inherit;font-size:13px;line-height:1.55;resize:vertical}
.departure-message-label textarea:focus{outline:0;border-color:#38b84b;box-shadow:0 0 0 3px rgba(56,184,75,.12)}
.departure-message-label small{margin:0!important;color:#77857d;font-size:9px}
.departure-send-status{padding:12px 14px;border-radius:11px;font-size:11px;font-weight:760;line-height:1.5}
.departure-send-status.is-sending{background:#eef3f8;color:#284b68}.departure-send-status.is-success{background:#e8f8eb;color:#176f28}
.departure-send-status.is-warning{background:#fff5df;color:#845c11}.departure-send-status.is-error{background:#ffeaeb;color:#92242c}
.departure-dialog-actions{
 position:sticky;
 bottom:0;
 z-index:4;
 display:flex;
 align-items:center;
 justify-content:flex-end;
 gap:10px;
 padding:15px 22px;
 border-top:1px solid #dce5df;
 background:rgba(255,255,255,.96);
 backdrop-filter:blur(8px);
}
.departure-send-button{display:flex!important;align-items:center;gap:8px;min-height:48px}
.departure-send-button span{font-size:10px}.departure-send-button b{font-size:11px}
.departure-send-button:disabled{cursor:not-allowed;filter:grayscale(.4);opacity:.48}

@media(max-width:1000px){
 .sms-settings-grid{grid-template-columns:1fr}
}
@media(max-width:680px){
 .settings-section-intro{align-items:flex-start;flex-direction:column}
 .departure-dialog{width:calc(100vw - 12px);max-height:97vh;border-radius:17px}
 .departure-dialog-head{padding:15px}.departure-waze-mark{width:40px;height:40px;flex-basis:40px}.departure-waze-mark img{width:25px;height:25px}
 .departure-dialog-head h2{font-size:25px}.departure-dialog-head p:last-child{font-size:10px}
 .departure-dialog-body{padding:13px}
 .departure-context{grid-template-columns:1fr}
 .departure-eta{align-items:flex-start;flex-direction:column;gap:8px;padding:15px}.departure-eta strong{font-size:30px}
 .departure-message-section{padding:14px}
 .departure-template-grid{grid-template-columns:1fr 1fr}
 .departure-dialog-actions{align-items:stretch;flex-direction:column-reverse;padding:12px 14px}
 .departure-dialog-actions>*{width:100%;justify-content:center}
}
.settings-operations{display:grid;gap:20px}
.settings-section-intro{
 display:flex;
 align-items:flex-end;
 justify-content:space-between;
 gap:28px;
 padding:clamp(25px,3vw,38px);
 border:1px solid #dfe7e2;
 border-radius:20px;
 background:linear-gradient(135deg,#fff,#f2f7f4);
 box-shadow:0 12px 34px rgba(7,20,38,.055);
}
.settings-section-intro>div{max-width:780px}
.settings-section-intro h2{
 margin:6px 0 10px;
 color:#071426;
 font-size:clamp(28px,3vw,42px);
}
.settings-section-intro p:last-child{
 max-width:720px;
 margin:0;
 color:#687870;
 line-height:1.7;
}
.settings-operations-grid{
 display:grid;
 grid-template-columns:minmax(290px,.68fr) minmax(0,1.55fr);
 gap:18px;
 align-items:start;
}
.settings-operations-grid>.panel{
 margin:0;
 border-radius:18px;
 box-shadow:0 10px 30px rgba(7,20,38,.05);
}
.settings-operations-grid>.emergency-settings{
 position:sticky;
 top:158px;
 border-top:5px solid #38b84b;
}
.settings-operations-grid>.emergency-settings h3{margin:4px 0 18px;font-size:24px}
.settings-operations-grid .syndic-request-option-list{margin-top:18px}

@media(max-width:900px){
 .settings-subnav{position:static}
 .settings-hub-grid{grid-template-columns:1fr}
 .settings-operations-grid{grid-template-columns:1fr}
 .settings-operations-grid>.emergency-settings{position:static}
}
@media(max-width:650px){
 .settings-subnav{
  margin-inline:-2px;
  padding:7px;
  border-radius:13px;
 }
 .settings-subnav a{min-height:40px;padding-inline:12px}
 .settings-hub>header{
  min-height:0;
  align-items:flex-start;
  flex-direction:column;
  padding:25px 21px;
  border-radius:18px;
 }
 .settings-hub>header h2{font-size:35px}
 .settings-hub-status{align-self:flex-start}
 .settings-hub-card{
  grid-template-columns:auto minmax(0,1fr);
  min-height:0;
  padding:20px;
 }
 .settings-hub-card>b{display:none}
 .settings-section-intro{
  align-items:flex-start;
  flex-direction:column;
  padding:22px 19px;
  border-radius:16px;
 }
 .settings-section-intro .subtle-button{width:100%;text-align:center}
}
.portal-payment-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:14px 0;padding:14px 15px;border:1px solid #cfe4d3;border-radius:13px;background:#f2faf4}
.portal-payment-summary small,.portal-payment-summary b{display:block}.portal-payment-summary>div small{color:#64778a;font-size:10px;text-transform:uppercase;letter-spacing:.07em}.portal-payment-summary>div b{margin-top:3px}
.portal-payment-summary>span{padding:7px 9px;border-radius:9px;background:#fff0d4;color:#85600e;font-size:11px;font-weight:850}.portal-payment-summary>span.is-paid{background:#dff4e3;color:#1b7b2d}
.portal-payments{display:grid;gap:20px}.portal-payment-list{display:grid;gap:10px}.portal-payment-list>article{display:grid;grid-template-columns:46px minmax(220px,1fr) minmax(145px,.3fr) auto;gap:15px;align-items:center;padding:15px;border:1px solid #dce5e0;border-radius:15px;background:#fff}.portal-payment-list>article.is-pending{border-color:#e6c876;background:#fffaf0}.portal-payment-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#def4e2;color:#1b8731;font-size:17px;font-weight:900}.portal-payment-list .is-pending .portal-payment-icon{background:#ffedc5;color:#986500}.portal-payment-list h3{margin:3px 0 4px;font-size:15px}.portal-payment-list p,.portal-payment-list small{margin:0;color:#6d7d90;font-size:11px}.portal-payment-list>article>div:nth-child(2)>small{text-transform:uppercase;letter-spacing:.06em;font-size:9px;font-weight:850}.portal-payment-amount{text-align:right}.portal-payment-amount b,.portal-payment-amount span,.portal-payment-amount small{display:block}.portal-payment-amount b{font-size:17px}.portal-payment-amount span{margin-top:3px;color:#238338;font-size:10px;font-weight:850}.portal-payment-list .is-pending .portal-payment-amount span{color:#93630c}.portal-payment-actions .invoice-download{white-space:nowrap}
@media(max-width:720px){.portal-payment-list>article{grid-template-columns:42px 1fr}.portal-payment-amount{grid-column:2;text-align:left}.portal-payment-actions{grid-column:1/-1}.portal-payment-actions .invoice-download{display:flex;justify-content:center;width:100%}}

/* V52 public-site polish — calm, consistent and responsive */
body:not(.backend):not(.portal-page){--site-ink:#071426;--site-green:#35ba4d;--site-paper:#f5f7f4;--site-line:#dce4df;--site-muted:#657268;font-family:Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;line-height:1.65;letter-spacing:0;background:var(--site-paper);color:var(--site-ink);-webkit-font-smoothing:antialiased}
body:not(.backend):not(.portal-page) :where(h1,h2,h3,h4){line-height:1.08;letter-spacing:-.035em;text-wrap:balance}
body:not(.backend):not(.portal-page) :where(p,li){text-wrap:pretty}
body:not(.backend):not(.portal-page) .header{height:84px;padding-inline:clamp(18px,5vw,76px);border-bottom:1px solid rgba(7,20,38,.08);background:rgba(248,250,247,.94);backdrop-filter:blur(14px)}
body:not(.backend):not(.portal-page) .logo{width:174px;height:58px;padding:4px 8px;border-radius:10px;background:#fff}
body:not(.backend):not(.portal-page) .logo img{background:transparent!important;object-fit:contain}
body:not(.backend):not(.portal-page) .nav{gap:clamp(16px,2.1vw,32px);font-size:11px}.nav a{position:relative;padding:31px 0}.nav a:after{content:"";position:absolute;right:0;bottom:21px;left:0;height:2px;transform:scaleX(0);background:var(--site-green);transition:transform .16s ease}.nav a:hover:after,.nav a[aria-current=page]:after{transform:scaleX(1)}
body:not(.backend):not(.portal-page) .btn{min-height:46px;padding:12px 18px;border-radius:10px;letter-spacing:.06em;box-shadow:none;transition:transform .16s ease,box-shadow .16s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 9px 20px rgba(7,20,38,.14)}
body:not(.backend):not(.portal-page) .hero{min-height:clamp(430px,52vw,740px);height:auto;background:#071426}.hero>img{display:block;min-height:inherit;object-fit:contain;object-position:center}
body:not(.backend):not(.portal-page) :where(.intro,.dark-split,.contact-grid,.content){padding-block:clamp(58px,7vw,104px)}
body:not(.backend):not(.portal-page) .intro{gap:clamp(35px,7vw,110px)}
body:not(.backend):not(.portal-page) .intro>div:last-child>p,body:not(.backend):not(.portal-page) .prose{font-size:clamp(16px,1.5vw,19px);line-height:1.75;color:var(--site-muted)}
body:not(.backend):not(.portal-page) .cards{gap:12px;border:0}.cards article{min-height:265px;border:1px solid var(--site-line)!important;border-radius:15px;background:#fff;box-shadow:0 8px 26px rgba(7,20,38,.045);transition:transform .18s ease,box-shadow .18s ease}.cards article:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(7,20,38,.08)}.cards article h2,.cards article h3{margin-top:45px;line-height:1.2}
body:not(.backend):not(.portal-page) .page-hero{min-height:460px;padding:clamp(75px,9vw,120px) clamp(20px,7vw,110px) clamp(55px,6vw,85px);border-bottom-width:5px}.page-hero h1{margin-bottom:20px}.page-hero>p:last-child{line-height:1.7}
body:not(.backend):not(.portal-page) :where(.contact-grid form,.login-card){border-radius:17px;box-shadow:0 18px 50px rgba(7,20,38,.13)}
body:not(.backend):not(.portal-page) :where(input:not([type=checkbox]):not([type=radio]),select,textarea){border-radius:9px}
body:not(.backend):not(.portal-page) .cta{padding:clamp(40px,5vw,70px) clamp(20px,6vw,92px)}
body:not(.backend):not(.portal-page) footer{gap:24px;padding:52px clamp(20px,6vw,92px);border-top:1px solid rgba(255,255,255,.08)}
body:not(.backend):not(.portal-page) footer>img{background:transparent!important;object-fit:contain}footer .footer-login{display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;border:1px solid rgba(255,255,255,.22);border-radius:8px;color:#fff}
@media(max-width:900px){body:not(.backend):not(.portal-page) .nav{gap:14px}.header-btn{padding-inline:12px}}
@media(max-width:650px){
 body:not(.backend):not(.portal-page) .header{height:72px;padding-inline:14px}.logo{width:142px!important;height:53px!important}.menu{display:grid;width:44px;height:44px;place-items:center;border-radius:10px;background:#edf2ee}
 body:not(.backend):not(.portal-page) .nav{top:72px;gap:3px;padding:12px 14px 18px;border-top:1px solid var(--site-line);box-shadow:0 18px 35px rgba(7,20,38,.15)}body:not(.backend):not(.portal-page) .nav a{padding:13px 11px;border-radius:9px}.nav a:hover,.nav a[aria-current=page]{background:#edf6ef}.nav a:after{display:none}
 body:not(.backend):not(.portal-page) .hero{min-height:300px}.hero-actions{right:14px;left:14px;bottom:16px}.hero-actions .btn{width:100%}
 body:not(.backend):not(.portal-page) :where(.intro,.dark-split,.contact-grid,.content){padding:52px 18px}.page-hero{min-height:370px!important;padding:74px 18px 48px!important}
 body:not(.backend):not(.portal-page) .cards{grid-template-columns:1fr;gap:10px}.cards article{min-height:220px}.cards article h2,.cards article h3{margin-top:35px}
 body:not(.backend):not(.portal-page) .cta{align-items:stretch}.cta .btn{width:100%}
 body:not(.backend):not(.portal-page) footer{grid-template-columns:1fr;padding:40px 18px}footer nav{flex-wrap:wrap;gap:10px 16px}footer p,footer small{text-align:left}
}

/* V57.1: veilige beheeracties bij afgesloten prikklokregistraties */
.timeclock-history-actions{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;flex-wrap:wrap}
.timeclock-delete-session{padding:.55rem .75rem;font-size:.72rem}
.admin-tax-preview{display:block;margin-top:.45rem;color:#178538;font-weight:750;line-height:1.45}
.building-client-links{margin-top:1rem;padding:.8rem;border:1px solid #dce5de;border-radius:14px;background:#f7faf8}.building-client-links>summary{cursor:pointer;font-weight:800}.building-client-link-list{display:grid;gap:.5rem;margin:1rem 0}.building-client-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem;background:#fff;border-radius:10px}.building-client-link span{display:grid}.building-client-link small{color:#667587}.building-client-add{grid-template-columns:minmax(180px,1fr) minmax(140px,.55fr) auto!important;align-items:end}.building-client-add button{margin:0}
.demo-tools-panel{grid-column:1/-1}.demo-tools-actions{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}.demo-tools-actions form{margin:0}
@media(max-width:700px){.timeclock-history-row{align-items:flex-start}.timeclock-history-actions{width:100%;justify-content:space-between}}
@media(max-width:700px){.building-client-add{grid-template-columns:1fr!important}.building-client-link{align-items:flex-start;flex-direction:column}}

/* V58.3: ruimer en beter leesbaar inlogscherm voor klanten */
.customer-login-page{
 padding:clamp(22px,4vw,60px);
}
.customer-login-page .login-card{
 width:min(580px,100%);
 padding:clamp(34px,4vw,52px);
 border-top:5px solid var(--green);
}
.customer-login-page .login-card img{
 height:112px;
 margin-bottom:24px;
 padding:12px;
}
.customer-login-page .login-card h1{
 margin:0 0 10px;
 font-size:clamp(38px,5vw,50px);
 line-height:1.04;
 letter-spacing:-.045em;
}
.customer-login-page .login-intro{
 margin:0 0 28px;
 color:#667384;
 font-size:16px;
 line-height:1.6;
}
.customer-login-page .login-card label{
 margin:18px 0;
 font-size:12px;
 font-weight:800;
}
.customer-login-page .login-card input:not([type=checkbox]):not([type=radio]){
 min-height:56px;
 padding:15px 16px;
 font-size:16px;
}
.customer-login-page .login-card .btn{
 min-height:56px;
 margin-top:10px;
 font-size:12px;
}
.customer-login-page .login-card>a{
 display:flex;
 align-items:center;
 min-height:42px;
 margin-top:10px;
 color:#44546a;
 font-size:14px;
 font-weight:700;
}
.customer-login-page .login-card>a:hover{color:#178538}
@media(max-width:650px){
 .customer-login-page{place-items:center;padding:12px}
 .customer-login-page .login-card{padding:28px 22px}
 .customer-login-page .login-card img{height:92px;margin-bottom:20px}
 .customer-login-page .login-card h1{font-size:35px}
 .customer-login-page .login-intro{margin-bottom:23px;font-size:15px}
}
