:root{--yellow:#e2e600;--ink:#181d1c;--muted:#77807c;--border:#e4e9e6;--bg:#f4f6f4;--green:#2c735c}*{box-sizing:border-box}body{margin:0;font:14px/1.5 Inter,Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,textarea,select{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #899000;outline-offset:2px}h1,h2,h3,p{margin-top:0}h1{font-size:27px;letter-spacing:-.6px;margin-bottom:5px}h2{font-size:19px}h3{font-size:15px}small{font-size:11px}.muted{color:var(--muted)}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;background:white;border:1px solid #dce2dd;color:var(--ink);border-radius:8px;padding:9px 14px;line-height:1.3;font-size:13px;white-space:nowrap}.button:hover{background:#f1f4ed}.button.primary{background:var(--yellow);border-color:var(--yellow);font-weight:600}.button.dark{background:#202724;color:white;border-color:#202724}.button.small{padding:6px 9px;font-size:12px}.button.danger{color:#b44343}.icon-button{background:none;border:0;border-radius:6px;font-size:23px;line-height:1;padding:8px}.app-shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#18201c;color:#cbd3ce;overflow-y:auto;display:flex;flex-direction:column;padding:27px 17px;z-index:15}.brand{background:white;border-radius:8px;padding:13px 12px;margin-bottom:25px}.brand img{width:174px;max-width:100%;display:block}.sidebar .label{font-size:9px;letter-spacing:2px;color:#9aa79d;margin:16px 12px 7px}.sidebar a{display:flex;gap:13px;padding:11px 13px;border-radius:8px;font-size:13px;margin-bottom:3px;align-items:center}.sidebar a.active{background:var(--yellow);color:#171b19;font-weight:600}.sidebar a:hover:not(.active){background:#ffffff0b;color:white}.sidebar a.sub{margin-left:22px;font-size:12px;padding:8px 12px}.sidebar a svg{width:17px;height:17px}.sidebar-foot{margin-top:auto;padding:25px 10px 0;font-size:11px;color:#a1b0a4}.workspace{min-width:0}.topbar{height:72px;background:white;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:20px}.topbar-right{display:flex;align-items:center;gap:12px;font-size:12px}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e8eddf;font-weight:700;font-size:12px}.breadcrumb{font-size:12px;color:var(--muted)}.demo-banner{padding:9px 32px;background:#eff2d2;color:#4d5525;display:flex;gap:15px;align-items:center;justify-content:space-between;font-size:12px}.demo-banner select{padding:4px 8px;border:1px solid #cad09a;background:#fbfdea;border-radius:6px;font-size:12px}.main{padding:30px 32px 55px;max-width:1800px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.page-heading p{margin:0;color:var(--muted);font-size:13px}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.card{background:white;border:1px solid var(--border);border-radius:12px;padding:22px;margin-bottom:20px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.card-head h2,.card-head h3{margin:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:25px}.stat{padding:20px 22px;background:white;border:1px solid var(--border);border-radius:12px}.stat span{display:block;color:var(--muted);font-size:12px}.stat strong{display:block;font-size:30px;line-height:1.3;margin-top:9px;letter-spacing:-1px}.stat small{color:#738076}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:20px}.welcome{border-radius:12px;background:#25352b;color:white;padding:28px;position:relative;margin-bottom:23px}.welcome h2{font-size:23px;font-weight:500;margin-bottom:8px}.welcome p{color:#c4d0c7;max-width:660px;margin:0}.welcome .eyebrow{color:#dce38d;font-size:10px;letter-spacing:1.5px;margin-bottom:12px}.table-scroll{overflow:auto;max-width:100%;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.data-table th{text-align:left;color:#7a847c;font-size:10px;text-transform:uppercase;letter-spacing:.5px;background:#f8faf7;padding:12px;border-bottom:1px solid var(--border)}.data-table td{padding:15px 12px;border-bottom:1px solid #eef1ed}.data-table td small{display:block;color:var(--muted)}.data-table tr:last-child td{border-bottom:0}.data-table td strong{font-size:13px}.badge{display:inline-flex;font-size:10px;padding:4px 8px;border-radius:5px;background:#edf2ee;white-space:nowrap}.badge.blue{background:#e8f0fc;color:#426da3}.badge.amber{background:#fff3d5;color:#917023}.badge.green{background:#e5f4ea;color:#357255}.badge.red{background:#fbe7e7;color:#ae4c4c}.empty{text-align:center;padding:35px!important;color:var(--muted);white-space:normal}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;margin-bottom:5px}.field>span{font-weight:600;color:#57645c}.field input,.field textarea,.field select,.toolbar input,.toolbar select{border:1px solid #dce2dd;border-radius:7px;padding:10px 12px;background:white;width:100%;min-width:0;color:var(--ink);line-height:1.4}.field input:focus,.field textarea:focus{border-color:#8d972e}.field small{color:#79847c;font-weight:400}.field.check{flex-direction:row;align-items:center;gap:10px}.field.check input{width:18px;height:18px;order:-1}.field.wide{grid-column:1/-1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 18px}.form-error{color:#ac3535;margin-top:15px;white-space:pre-line}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.toolbar input,.toolbar select{width:auto;padding:8px 11px;font-size:12px}.toolbar .spacer{flex:1}.tabs{display:flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:white}.tabs button{border:0;background:white;padding:8px 14px;font-size:12px}.tabs button.active{background:#243d2c;color:white}.roster-layout{display:grid;grid-template-columns:minmax(0,1fr) 235px;gap:17px}.roster-card{padding:0;overflow:hidden}.roster-scroll{overflow:auto;max-height:65vh}.roster{border-collapse:separate;border-spacing:0;width:100%;table-layout:fixed}.roster th{background:#f8faf7;height:57px;position:sticky;top:0;z-index:3;font-weight:500;font-size:11px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-width:103px}.roster th small{display:block;color:#7d867f}.roster th:first-child{left:0;z-index:5;width:160px}.roster td{height:108px;padding:5px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:top;position:relative}.roster td.person{position:sticky;left:0;background:white;z-index:2;padding:18px 12px;font-size:12px}.roster td.person small{display:block;color:var(--muted);margin-top:5px}.roster td.weekend{background:#f8faf7}.roster td.today{background:#ffffed}.shift{display:block;width:100%;border:0;border-left:3px solid #638dc2;border-radius:5px;padding:7px 6px;text-align:left;background:#edf3fc;color:#31547e;font-size:10px;margin-bottom:4px;overflow:hidden}.shift strong{display:block;font-size:10px;white-space:nowrap}.shift span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shift.status-Ziek{background:#fce9e9;border-color:#d97878;color:#a34e4e}.shift.status-Verlof{background:#fff3d7;border-color:#d5b655;color:#836824}.shift.status-Vrij{background:#eef0ed;border-color:#abb4a8;color:#5a685d}.shift.status-Tijdvak{border:1px dashed #a6ae51;background:#fafbdc;color:#69732c}.shift.status-Gewerkt{background:#e5f3e9;border-color:#639d79;color:#386c4d}.cell-add{border:0;background:transparent;color:#b0bab1;width:100%;font-size:19px;opacity:.5}.roster td:hover .cell-add{opacity:1}.roster-summary{padding:18px}.summary-item{padding:10px 0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:10px;font-size:12px}.summary-item strong{font-weight:600}.legend{display:flex;gap:15px;flex-wrap:wrap;padding:14px 17px;font-size:10px;color:#667168}.legend i{width:7px;height:7px;border-radius:50%;display:inline-block;background:#638dc2;margin-right:4px}.notice{border:1px solid #e6debc;background:#fffbed;border-radius:8px;padding:12px 15px;font-size:12px;margin-bottom:17px;color:#776a38}.notice.good{background:#edf7ee;border-color:#d2e7d4;color:#416646}.notice p:last-child{margin:0}.roster-only .sidebar,.roster-only .topbar,.roster-only .demo-banner{display:none}.roster-only .app-shell{display:block}.roster-only .main{max-width:none;padding:18px}.roster-only .roster-scroll{max-height:78vh}.roster-only .roster-layout{grid-template-columns:minmax(0,1fr) 210px}.compact .roster td{height:68px}.compact .shift{padding:4px;font-size:9px}.compact .roster td.person{padding:9px}.compact .roster th:first-child{width:130px}.compact .roster th{height:42px}.photo-library{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.photo-tile{border:1px solid var(--border);border-radius:10px;overflow:hidden}.photo-tile img{width:100%;height:130px;object-fit:cover}.photo-tile>div{padding:12px;font-size:12px}.photo-tile .actions{margin-top:10px}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,1fr);gap:22px}.editor-preview{position:sticky;top:20px;height:76vh;border:1px solid var(--border);background:white;border-radius:12px;overflow:hidden}.editor-preview iframe{width:100%;height:100%;border:0}.content-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.editor-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}.editor-tabs .active{background:var(--ink);color:white}.upload-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.upload-row img{width:120px;height:80px;object-fit:cover;border-radius:7px;border:1px solid var(--border)}.upload-row input{max-width:230px;font-size:12px}.report-preview{background:#eaeeea;padding:25px;overflow:auto}.a4{width:210mm;min-height:297mm;padding:16mm;background:white;margin:auto;color:#17231d;font:11px/1.5 Arial,sans-serif;box-shadow:0 4px 20px #0001}.report-head{display:flex;justify-content:space-between;border-bottom:3px solid #dde200;padding-bottom:20px;margin-bottom:24px}.report-head img{width:165px;object-fit:contain}.report-head div{text-align:right;font-size:10px}.a4 h1{font-size:25px;letter-spacing:-.5px}.report-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid #e0e6de}.report-grid>div{padding:9px 11px;border-bottom:1px solid #e0e6de}.report-grid strong{display:block;color:#788477;font-size:9px;text-transform:uppercase}.report-block{margin-top:20px;break-inside:avoid}.report-block h3{font-size:12px;border-bottom:1px solid #dce4d9;padding-bottom:6px}.report-block p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}.report-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px}.report-photos img{width:100%;height:140px;object-fit:contain;background:#f4f6f2}.report-foot{border-top:1px solid #dce3d9;padding-top:15px;margin-top:35px;display:flex;justify-content:space-between;font-size:9px;color:#677363}.email-preview{padding:25px;background:#f5f7f3;border:1px solid #e1e6de;border-radius:10px;white-space:pre-wrap}.steps-list{counter-reset:steps;padding:0;list-style:none}.steps-list li{display:flex;gap:13px;margin:17px 0}.steps-list li:before{counter-increment:steps;content:counter(steps);display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#eef0ca;flex-shrink:0;font-size:12px}.test-card{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--border)}.test-card:last-child{border:0}.menu-toggle{display:none}.mobile-overlay{display:none}dialog{padding:0;border:0;border-radius:14px;max-width:calc(100% - 26px);width:570px;box-shadow:0 30px 100px #0003;color:var(--ink)}dialog.large{width:900px}dialog::backdrop{background:#15231988;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border);position:sticky;top:0;background:white;z-index:2}.dialog-head h2{margin:0;font-size:19px}.dialog-body{padding:24px;max-height:78vh;overflow:auto}.wizard-steps{display:flex;gap:8px;margin-bottom:26px}.wizard-steps span{flex:1;font-size:11px;color:#929990;border-bottom:3px solid #e6eae3;padding-bottom:9px}.wizard-steps .active{border-color:#b5bd28;color:#414b2c}.wizard-steps .done{border-color:#386e4d;color:#386e4d}.wizard-actions{margin-top:25px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--border);padding-top:20px}.wizard-actions span{font-size:11px;color:var(--muted)}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,30px);opacity:0;pointer-events:none;background:#263d2d;color:white;padding:14px 24px;border-radius:10px;z-index:100;max-width:90%;box-shadow:0 10px 30px #0002;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#8f3434}.login-page{min-height:100vh;display:grid;place-items:center;background:#edf1e9;padding:25px}.login-card{width:420px;max-width:100%;background:white;padding:38px;border-radius:18px;box-shadow:0 12px 40px #17301c0d}.login-card img{width:200px;display:block;margin:0 auto 30px}.login-card h1{font-size:24px}.login-card .field{margin-bottom:17px}.login-card .button{width:100%}.login-card .muted{font-size:12px}.busy{padding:80px;text-align:center}.quick-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-links button{min-height:65px}.section-divider{border:0;border-top:1px solid var(--border);margin:24px 0}.chips{display:flex;gap:5px;flex-wrap:wrap}.help-list{font-size:12px;color:#65725f}.help-list li{margin-bottom:8px}#print-root{display:none}
@media(max-width:1200px){.app-shell{grid-template-columns:210px minmax(0,1fr)}.sidebar{padding:25px 12px}.main{padding:25px}.roster-layout{grid-template-columns:1fr}.roster-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.roster-summary h3{grid-column:1/-1}.summary-item{display:block}.summary-item strong{display:block}.photo-library{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-250px;width:235px;transition:left .2s}.menu-open .sidebar{left:0}.menu-open .mobile-overlay{display:block;position:fixed;inset:0;background:#0007;z-index:14}.menu-toggle{display:inline-flex}.topbar{padding:0 20px}.main{padding:22px 18px}.stats{gap:10px}.stat{padding:17px}.dashboard-grid{grid-template-columns:1fr}.editor-grid{grid-template-columns:1fr}.editor-preview{position:static;height:500px}.demo-banner{padding:9px 20px;flex-wrap:wrap;gap:6px}.page-heading{align-items:start}.page-heading .actions{justify-content:end}.roster-only .roster-layout{grid-template-columns:1fr}}@media(max-width:580px){h1{font-size:24px}.topbar{height:60px;padding:0 14px}.topbar-right .username,.breadcrumb{display:none}.main{padding:20px 12px}.card{padding:17px 13px}.page-heading{display:block}.page-heading .actions{justify-content:start;margin-top:15px}.stats{grid-template-columns:1fr 1fr}.stat strong{font-size:27px}.photo-library{grid-template-columns:1fr 1fr}.form-grid,.content-fields{grid-template-columns:1fr}.wizard-steps{gap:5px}.wizard-steps span{font-size:9px}.dialog-head{padding:17px}.dialog-body{padding:18px;max-height:78dvh}.toolbar{gap:7px}.toolbar .spacer{display:none}.roster th:first-child{width:116px}.roster td.person{padding:14px 8px;font-size:11px}.roster-summary{grid-template-columns:1fr 1fr}.roster-only .main{padding:10px}.report-preview{padding:10px}.demo-banner{font-size:10px;padding:8px 13px}.welcome{padding:22px}.topbar-right{gap:7px}.photo-tile img{height:100px}.photo-tile>div{padding:10px}.button{padding:9px 11px;font-size:12px}.roster-card{padding:0}.quick-links{grid-template-columns:1fr 1fr}.wizard-actions span{display:none}.upload-row input{max-width:190px}}@media print{@page{size:A4 portrait;margin:0}body{background:white}body>*{display:none!important}#print-root{display:block!important}.a4{box-shadow:none;margin:0;min-height:297mm;width:210mm;padding:15mm}.report-block{break-inside:avoid}.report-head{break-inside:avoid}.report-photos{break-inside:avoid}a{color:inherit}.report-foot{break-inside:avoid}}

.compact .shift strong{white-space:normal;font-size:9px}.compact .shift span{font-size:8px}.roster-only.compact .roster-layout{grid-template-columns:minmax(0,1fr)}.roster-only.compact .roster-summary{display:none}

/* Portal 1.0.1: reusable addresses and accessible calendar day types. */
.form-grid>.wide{grid-column:1/-1}
.field[hidden],.notice[hidden]{display:none!important}
.roster th.weekend{background:#bbd5fa;color:#153f76;border-color:#9fbfea;font-weight:700}
.roster td.weekend{background:#dfebff;border-color:#bbcfec}
.roster th.weekend small{color:#294d7a}
.roster th.holiday{background:#d9c0f0;color:#48216d;border-color:#b89bd2;font-weight:700}
.roster td.holiday{background:#eedffc;border-color:#d4bce9}
.roster th.holiday small{color:#583576}
.roster .day-label{display:block;font-size:10px;line-height:1.25;padding:4px 3px;white-space:normal;overflow-wrap:anywhere}
.roster .holiday-label{font-weight:700}
.roster th.today,.roster td.today{box-shadow:inset 0 0 0 2px #8a9100}
.roster th.today:not(.weekend):not(.holiday){background:#ffffd9}
.compact .roster .day-label{font-size:9px;padding:3px 1px}
.calendar-legend{display:flex;gap:10px 20px;flex-wrap:wrap;align-items:center;padding:13px 17px;background:#fbfcff;border-bottom:1px solid var(--border);font-size:11px;color:#394858}
.calendar-legend span{display:inline-flex;align-items:center;gap:7px}
.calendar-legend i{width:14px;height:14px;border:1px solid;border-radius:3px;display:inline-block}
.calendar-legend .weekend-key{background:#bbd5fa;border-color:#739ccf}
.calendar-legend .holiday-key{background:#d9c0f0;border-color:#a180bf}
.calendar-legend small{color:#5c6670}

.payroll-dialog.large{width:1250px}.wizard-live-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:24px;align-items:start}.wizard-live-layout .form-grid{min-width:0}.payroll-preview{background:#f5f7f3;border:1px solid #dce4d7;border-radius:12px;padding:18px;position:sticky;top:0}.payroll-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.payroll-kpis div{background:white;padding:12px;border-radius:8px}.payroll-kpis small{display:block}.payroll-kpis strong{display:block;font-size:22px}.payroll-breakdown{width:100%;border-collapse:collapse;font-size:11px}.payroll-breakdown th,.payroll-breakdown td{padding:5px 3px;border-bottom:1px solid #e2e7de;text-align:right}.payroll-breakdown th:first-child,.payroll-breakdown td:first-child{text-align:left}.payroll-breakdown .has-allowance{background:#e8efd5;color:#243e13;font-weight:600}.payroll-costs{font-size:11px;margin:14px 0}.payroll-costs>div{display:flex;justify-content:space-between;gap:10px;padding:4px 0}.payroll-notes{background:#fff4dc;padding:10px;border-radius:8px;font-size:11px;margin-bottom:12px}.payroll-notes ul{padding-left:17px;margin-bottom:0}.payroll-notes li{margin-bottom:5px}@media(max-width:850px){.wizard-live-layout{grid-template-columns:1fr}.payroll-preview{position:static}.payroll-dialog .dialog-body{padding:16px}}
/* Live verloning and object-level customer access */
.payroll-dialog{width:min(1240px,96vw);max-width:1240px}.wizard-live-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr);gap:24px;align-items:start}.payroll-preview{position:sticky;top:0;background:#f2f5ee;border:1px solid #dce4d5;border-radius:12px;padding:20px;font-size:13px}.payroll-preview h3{margin-top:0}.payroll-preview table{width:100%;font-size:12px}.payroll-preview td{padding:5px 3px;border-bottom:1px solid #dce4d5}.payroll-preview .notice{font-size:12px}.payroll-preview .stat strong{font-size:24px}.object-grants{display:block}.grant-group{border:1px solid #c8d4cb;border-radius:8px;padding:16px;margin:20px 0}.grant-group legend{font-size:15px;font-weight:700;padding:0 8px}.grant-group legend small{font-weight:400;margin-left:8px;color:#667368}.grant-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;margin-top:14px}.grant-grid .field{min-height:38px;margin:0}.attachment-row{display:flex;gap:12px;align-items:center;min-height:46px;border-top:1px solid #e0e6e0;padding:8px}.attachment-row>span:nth-child(2){flex:1;overflow-wrap:anywhere}.attachment-row input{max-width:100%}.attachments-links{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.attachments-editor h3 small{color:#637369}.report-preview .a4{font-size:10pt}.report-preview .report-grid{font-size:9pt}.report-grid strong{display:block}.report-block p{white-space:pre-wrap;overflow-wrap:anywhere}.report-photos img{max-height:180px}#automation-form .actions{flex-wrap:wrap}#automation-form select{max-width:100%}.field[hidden]{display:none!important}
@media(max-width:850px){.wizard-live-layout{grid-template-columns:1fr}.payroll-preview{position:static}.grant-grid{grid-template-columns:1fr}.attachment-row{flex-wrap:wrap}}
/* Portal 1.1.2: centred, touch-friendly signed-in mobile layout. */
@media(max-width:580px){
 body{overflow-x:hidden}
 .workspace,.main{width:100%;max-width:100%;margin-inline:auto}
 .main{text-align:center;padding-inline:12px}
 .topbar{justify-content:center;position:relative}
 .topbar .menu-toggle{position:absolute;left:12px}
 .topbar-right{margin-left:auto}
 .sidebar{text-align:center}
 .brand img{margin-inline:auto}
 .sidebar a{justify-content:center}
 .sidebar a.sub{margin-left:0}
 .page-heading,.card-head,.welcome,.notice,.card>h2,.card>h3,.card>p{text-align:center}
 .page-heading .actions,.card-head,.actions,.toolbar,.editor-tabs,.upload-row,.attachments-links,.calendar-legend{justify-content:center}
 .form-grid,.content-fields,.object-grants,.grant-grid{width:100%;max-width:520px;margin-inline:auto}
 .field{text-align:center;align-items:stretch}
 .field>span,.field small{text-align:center}
 .field.check{justify-content:center;align-items:center}
 .field.check input{flex:0 0 18px}
 .button{justify-content:center}
 .page-heading .actions>.button,.wizard-actions .button,.object-code-search>.button{min-width:min(100%,240px)}
 .wizard-actions{justify-content:center;flex-wrap:wrap}
 .wizard-steps{justify-content:center;overflow-x:auto;padding-bottom:3px}
 .wizard-steps span{min-width:58px;text-align:center}
 dialog,dialog.large,.payroll-dialog{width:calc(100% - 16px);max-width:calc(100% - 16px);margin:auto}
 .dialog-head{justify-content:center;padding-right:48px}
 .dialog-head .icon-button{position:absolute;right:10px}
 .dialog-body{text-align:center;padding:16px 12px}
 .data-table th,.data-table td{text-align:center}
 .table-scroll{margin-inline:auto}
 .stats{max-width:520px;margin-inline:auto;margin-bottom:20px}
 .stat{text-align:center}
 .quick-links{max-width:520px;margin-inline:auto}
 .roster-layout,.roster-summary{margin-inline:auto}
 .roster-summary,.legend{justify-content:center;text-align:center}
 .report-preview{display:flex;justify-content:flex-start}
 .report-preview .a4{margin-inline:auto}
 .attachment-row{justify-content:center;text-align:center}
 .attachment-row>span:nth-child(2){flex-basis:100%}
 .object-code-results{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin-top:10px}
 .login-card{text-align:center;padding:28px 20px}
}
.logout-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:20px}.logout-actions .button{width:100%;min-height:44px}.live-clock{font-variant-numeric:tabular-nums;letter-spacing:.4px;color:#3f5147;background:#f1f4ef;border:1px solid var(--border);border-radius:7px;padding:6px 9px;min-width:76px;text-align:center}
@media(max-width:580px){.live-clock{font-size:11px;padding:5px 7px;min-width:67px}.topbar-right>a.button{display:none}}
@media print{.a4{font-size:9pt;padding:0!important;min-height:auto!important}.report-head{margin-bottom:10px}.report-grid{gap:8px;font-size:9pt}.report-block{margin-top:10px;break-inside:auto}.report-block h3{break-after:avoid}.report-foot{position:static;margin-top:12px}.report-grid>div,.report-head{break-inside:avoid}}
.field input:not([type=checkbox]):not([type=radio]),.field textarea,.field select,.toolbar input,.toolbar select{background:#fffde8;border-color:#c9ce72}.field input:not([type=checkbox]):not([type=radio]):hover,.field textarea:hover,.field select:hover{border-color:#aeb52f}.field input:not([type=checkbox]):not([type=radio]):focus,.field textarea:focus,.field select:focus{background:#fffff4;border-color:#899000;box-shadow:0 0 0 3px #e2e60033}
.employee-toolbar{justify-content:center}.employee-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:1180px;margin:0 auto}.employee-card{display:flex;align-items:center;gap:20px;padding:20px;border:1px solid var(--border);border-radius:12px;background:#fbfcfa;min-width:0}.employee-photo{width:112px;height:112px;flex:0 0 112px;border-radius:50%;object-fit:cover;border:4px solid white;box-shadow:0 2px 12px #0002}.employee-initials{display:grid;place-items:center;background:#e9eddf;color:#33453b;font-size:28px;font-weight:700}.employee-card-body{min-width:0;flex:1;text-align:center}.employee-card-body h2{margin:0 0 3px}.employee-card-body>p{color:var(--muted);margin-bottom:10px}.employee-facts{display:flex;justify-content:center;align-items:center;gap:7px 12px;flex-wrap:wrap;font-size:12px}.employee-actions{justify-content:center;margin-top:14px}.employee-photo-editor{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;padding:14px;border:1px dashed #b8c26b;border-radius:10px;background:#fffde8}.employee-photo-editor img,.employee-photo-placeholder{width:90px;height:90px;border-radius:50%;object-fit:cover}.employee-photo-placeholder{display:grid;place-items:center;background:#e8eddf;font-size:24px;font-weight:700}.employee-photo-editor small{flex-basis:100%;text-align:center}@media(max-width:900px){.employee-grid{grid-template-columns:1fr}}@media(max-width:580px){.employee-card{flex-direction:column}.employee-actions{width:100%}.employee-actions .button{flex:1}.employee-photo{width:100px;height:100px;flex-basis:100px}}
.employee-request-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;border-left:5px solid var(--accent)}
.employee-request-panel h2,.employee-request-panel p{margin-top:0}.employee-request-panel p{margin-bottom:0}
.employee-request-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.wizard-step{flex:1;font-size:11px;color:#68736b;border:0;border-bottom:3px solid #e6eae3;padding:0 0 9px;background:transparent;text-align:left}.wizard-step:hover{color:#27382e;background:#f7f9f5}.wizard-step.active{font-weight:700}
@media(max-width:700px){.employee-request-panel{align-items:stretch;flex-direction:column}.employee-request-panel .button{width:100%;text-align:center;padding:14px}}
@media(max-width:700px){.employee-request-actions{display:grid;grid-template-columns:1fr}.wizard-step{min-width:110px;font-size:10px;text-align:center}}
.sidebar a.sub{display:none}.employee-home{max-width:1050px;margin:0 auto;text-align:center}.employee-home-welcome{display:flex;align-items:center;justify-content:center;gap:18px;background:#294438;color:#fff;border-radius:14px;padding:24px;margin-bottom:18px}.employee-home-welcome p,.employee-home-welcome h1,.employee-home-welcome span{margin:0}.employee-home-welcome p{color:#dce7e0}.employee-home-welcome h1{font-size:27px;margin:3px 0}.employee-home-welcome span{color:#dfe4a2;font-size:12px}.employee-home-photo{width:72px;height:72px;border-radius:50%;object-fit:cover;border:3px solid #ffffff70;display:grid;place-items:center;background:#edf0df;color:#294438;font-size:20px;font-weight:700}.employee-home-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.employee-home-stats button{border:1px solid #dfe6e1;background:#fff;color:#1d2923;border-radius:12px;padding:17px;text-align:center;min-height:104px}.employee-home-stats button:hover{background:#f6f8f5;border-color:#bcc9c0}.employee-home-stats span,.employee-home-stats small{display:block;color:#68766e;font-size:11px}.employee-home-stats strong{display:block;font-size:20px;margin:7px 0}.employee-home-actions{background:#fbfcfa}.employee-home-actions h2{text-align:center}.employee-home-buttons{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.employee-home-buttons .button{min-width:170px}.requests-status small{display:block}
@media(max-width:760px){.employee-home{max-width:560px}.employee-home-welcome{padding:19px;flex-direction:column}.employee-home-photo{width:64px;height:64px}.employee-home-stats{grid-template-columns:1fr 1fr;gap:8px}.employee-home-stats button{min-height:94px;padding:13px}.employee-home-stats strong{font-size:18px}.employee-home-buttons{display:grid;grid-template-columns:1fr}.employee-home-buttons .button{width:100%;min-width:0;padding:14px}.employee-home-actions{text-align:center}}
.sidebar a.request-alert{background:#ff0015!important;color:#fff!important;font-weight:700;border:2px solid #fff;animation:requestAlertPulse .8s step-end infinite;box-shadow:0 0 0 4px #ff001533}.request-alert-badge{margin-left:auto;min-width:66px;height:25px;padding:0 7px;border-radius:6px;display:grid;place-items:center;background:#fff;color:#d40012;font-size:10px;letter-spacing:.3px;white-space:nowrap}.sidebar a.request-alert svg{color:#fff}@keyframes requestAlertPulse{0%,100%{background:#ff0015;box-shadow:0 0 0 3px #ff001555}50%{background:#9f000d;box-shadow:0 0 0 7px #ff001525}}@media(prefers-reduced-motion:reduce){.sidebar a.request-alert{animation:none;background:#ff0015!important}}
.button.alarm-action{background:#d71920;color:#fff;border-color:#a90f15;font-weight:800;box-shadow:0 5px 16px #d7192038}.button.alarm-action:hover{background:#ae1117;color:#fff}.alarm-object-results{margin-top:20px;display:grid;gap:10px}.alarm-object-choice{display:grid;gap:4px;width:100%;padding:15px;border:2px solid #dce5df;border-radius:11px;background:#fff;text-align:left;color:var(--ink)}.alarm-object-choice:hover,.alarm-object-choice:focus{border-color:#2f6a4c;background:#f1f8f3}.alarm-object-choice strong{font-size:16px}.alarm-object-choice span,.alarm-object-choice small,.alarm-object-choice em{display:block}.alarm-object-choice span{color:#526158}.alarm-object-choice small{color:#6d7b72}.alarm-object-choice em{color:#24583e;font-style:normal;font-weight:700}@media(max-width:760px){.button.alarm-action{order:-1;font-size:15px;min-height:52px}.alarm-object-choice{text-align:center}}

.report-open-link{appearance:none;border:0;background:transparent;padding:0;text-align:left;cursor:pointer;font:inherit;color:inherit}.report-open-link strong,.report-open-link small{display:block}.report-open-link:hover strong{text-decoration:underline}.report-preview .report-foot{gap:12px;flex-wrap:wrap}

/* v1.2.36 report layout fixes */
.report-attachments{break-inside:auto}.report-attachment-image{margin:14px 0 20px;break-inside:avoid}.report-attachment-image img{display:block;width:auto;max-width:100%;max-height:225mm;height:auto;margin:0 auto;object-fit:contain}.report-attachment-image figcaption{text-align:center;font-size:9px;color:#677363;margin-top:6px}.standard-findings{margin-bottom:4px}
@media print{@page{size:A4 portrait;margin:0}html,body{width:210mm!important;margin:0!important;padding:0!important}#print-root{display:block!important;width:210mm!important;margin:0 auto!important;padding:0!important}#print-root>.a4{width:210mm!important;min-height:297mm!important;margin:0 auto!important;padding:15mm!important;box-sizing:border-box!important;box-shadow:none!important;transform:none!important}.report-head img{width:165px!important;max-height:55px!important}.report-attachment-image img{max-width:180mm!important;max-height:235mm!important;margin:0 auto!important}}

/* Rapportage-inbox: compact, gecentreerd en op één regel */
.automation-inbox-card .table-scroll{overflow-x:auto;margin-inline:auto}.automation-inbox-card .data-table{table-layout:auto;width:100%;white-space:nowrap}.automation-inbox-card .data-table th,.automation-inbox-card .data-table td{text-align:center;vertical-align:middle}.automation-inbox-card .data-table th:first-child,.automation-inbox-card .data-table td:first-child{text-align:left}.automation-inbox-card .inbox-actions{justify-content:center;flex-wrap:nowrap}.automation-inbox-card .data-table td:nth-child(5){white-space:nowrap;max-width:460px;overflow:hidden;text-overflow:ellipsis}.automation-inbox-card .badge.green{background:#e5f4ea;color:#267048;font-weight:700}.automation-inbox-card .badge.red{background:#fbe7e7;color:#b42323;font-weight:700}
/* v1.2.84 medewerker live weer */
.pf-weather-card{max-width:1050px;margin:0 auto 18px;padding:22px 26px;border-radius:16px;color:#fff;background:linear-gradient(120deg,#102b35,#1d5261 55%,#6f8d91);box-shadow:0 10px 30px #0d20181a;position:relative;overflow:hidden}.pf-weather-card:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 20%,#ffffff2e,transparent 25%),linear-gradient(0deg,#071b1a45,transparent);pointer-events:none}.weather-title,.pf-weather-card #pf-live-weather{position:relative;z-index:1}.weather-title{display:flex;align-items:center;justify-content:space-between}.weather-title span{font-size:10px;letter-spacing:.14em;color:#dce8df}.weather-title h2{margin:3px 0 8px;font-size:22px}.weather-refresh{border:1px solid #ffffff66;background:#ffffff1c;color:#fff;border-radius:50%;width:38px;height:38px;font-size:20px;cursor:pointer}.pf-weather-card #pf-live-weather{display:grid;grid-template-columns:1.1fr 1fr;gap:24px;align-items:end}.weather-main{display:flex;align-items:center;gap:14px}.weather-icon{font-size:52px}.weather-main strong{display:block;font-size:46px;line-height:1}.weather-main span,.weather-main b{display:block;margin-top:5px}.weather-main b{font-size:14px}.weather-details{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.weather-details div{border-left:1px solid #ffffff4a;padding-left:12px}.weather-details span,.weather-details b{display:block}.weather-details span{font-size:11px;color:#dce8df}.weather-details b{font-size:14px;margin-top:4px}.pf-weather-card small{grid-column:1/-1;text-align:right;color:#e6eee9;margin-top:4px}.weather-loading,.weather-fallback{padding:18px 0}.weather-fallback span{display:block;margin-top:5px;color:#e6eee9}
@media(max-width:760px){.pf-weather-card{margin:0 0 14px;padding:18px;border-radius:14px}.pf-weather-card #pf-live-weather{grid-template-columns:1fr;gap:14px}.weather-title h2{font-size:20px}.weather-icon{font-size:44px}.weather-main strong{font-size:40px}.weather-details{grid-template-columns:repeat(3,1fr)}.weather-details div{padding-left:8px}.weather-details b{font-size:12px}.pf-weather-card small{text-align:left;font-size:10px}}
/* v1.2.89 compact medewerkerslijst */
.employee-list-wrap{width:100%;overflow-x:auto}.employee-list{width:100%;min-width:1280px;border-collapse:collapse}.employee-list th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#68756f;text-align:left;padding:10px 9px;border-bottom:1px solid #dfe5e1;white-space:nowrap}.employee-list td{padding:10px 9px;border-bottom:1px solid #edf0ee;vertical-align:middle;white-space:nowrap}.employee-list tbody tr:hover{background:#fafbf9}.employee-list td strong{display:block}.employee-list td small{display:block;color:#748079;margin-top:2px}.employee-list-photo{width:44px;height:44px;border-radius:50%;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;font-weight:700;background:#e8eddf;color:#203b32}.employee-row-actions{display:flex;gap:6px;align-items:center;white-space:nowrap}.employee-toolbar{justify-content:center;margin-bottom:12px}
@media(max-width:760px){.employee-list{min-width:1180px}.employee-list-wrap{margin-left:-8px;width:calc(100% + 16px)}}

/* v1.2.91 vaste originele huisstijl + dienstbevestiging */
.brand{background:#fff;overflow:hidden}.brand img{content:url("report-logo.png");width:100%;height:auto;object-fit:contain;filter:none!important;opacity:1!important}
.welcome{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:28px;align-items:center;background:#25352b;padding:24px 28px}.welcome>.eyebrow,.welcome>h2,.welcome>p{grid-column:1}.welcome>.eyebrow{align-self:end}.welcome>h2{margin-top:-12px}.welcome>p{align-self:start}.welcome-weather{grid-column:2;grid-row:1/4;border-left:1px solid #ffffff2b;padding-left:28px;min-width:0}.welcome-weather .weather-title{display:flex;justify-content:space-between;align-items:start}.welcome-weather .weather-title span{font-size:9px;letter-spacing:.14em;color:#dce38d}.welcome-weather .weather-title h2{font-size:19px;margin:3px 0 8px;color:#fff}.welcome-weather #pf-live-weather{display:grid;grid-template-columns:1fr 1.25fr;gap:12px;align-items:center}.welcome-weather .weather-main{display:flex;gap:10px;align-items:center}.welcome-weather .weather-icon{font-size:36px}.welcome-weather .weather-main strong{font-size:30px;color:#fff}.welcome-weather .weather-main span,.welcome-weather .weather-main b{display:block;color:#d7e0da;font-size:11px}.welcome-weather .weather-details{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.welcome-weather .weather-details div{border-left:1px solid #ffffff35;padding-left:8px}.welcome-weather .weather-details span,.welcome-weather .weather-details b{display:block;font-size:10px;color:#d7e0da}.welcome-weather .weather-details b{color:#fff;margin-top:3px}.welcome-weather #pf-live-weather>small{grid-column:1/-1;text-align:right;color:#aebbb3;font-size:9px}.weather-refresh{border:1px solid #ffffff55;background:#ffffff12;color:#fff;border-radius:50%;width:32px;height:32px}.shift.response-Wacht-op-acceptatie{background:#fbe7e7!important;border-left-color:#c84c4c!important;color:#8e3030!important}.shift.response-Geaccepteerd{background:#e5f4ea!important;border-left-color:#3f8b5e!important;color:#286542!important}.shift.response-Afgewezen{background:#f7dede!important;border-left-color:#a92f2f!important;color:#852323!important;box-shadow:inset 0 0 0 1px #e7aaaa}.legend .wait-key{background:#c84c4c}.legend .accepted-key{background:#3f8b5e}.legend .rejected-key{background:#a92f2f}
@media(max-width:900px){.welcome{grid-template-columns:1fr}.welcome>.eyebrow,.welcome>h2,.welcome>p,.welcome-weather{grid-column:1}.welcome-weather{grid-row:auto;border-left:0;border-top:1px solid #ffffff2b;padding:18px 0 0}.welcome-weather #pf-live-weather{grid-template-columns:1fr}}

/* v1.2.92 logo definitief volledig zichtbaar */
.sidebar .brand{height:86px;min-height:86px;padding:10px 12px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:8px;overflow:hidden}
.sidebar .brand img{content:url("logo.png")!important;display:block!important;width:100%!important;height:64px!important;max-width:100%!important;max-height:64px!important;object-fit:contain!important;object-position:center!important;filter:none!important;transform:none!important;clip-path:none!important;margin:0 auto!important}
.roster .shift.response-Wacht-op-acceptatie span:last-child:after{content:" · Wacht op medewerker";font-weight:700}
.roster .shift.response-Afgewezen span:last-child:after{content:" · Geweigerd";font-weight:700}

.employee-live-weather{background:#203b2e;color:#fff;border-radius:14px;padding:22px 24px;margin:18px 0;box-shadow:0 8px 24px rgba(17,32,25,.08)}
.employee-live-weather .weather-title{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}
.employee-live-weather .weather-title span{font-size:11px;letter-spacing:.14em;color:#e7e600;font-weight:800}
.employee-live-weather .weather-title h2{margin:4px 0 0;color:#fff;font-size:22px}
.employee-live-weather .weather-refresh{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;border-radius:8px;padding:8px 11px;cursor:pointer}
.employee-live-weather .weather-main{display:flex;align-items:center;gap:14px}
.employee-live-weather .weather-icon{font-size:38px}
.employee-live-weather .weather-main strong{display:block;font-size:30px}
.employee-live-weather .weather-main span,.employee-live-weather .weather-main b{display:block;font-size:13px;font-weight:500}
.employee-live-weather .weather-details{display:flex;gap:28px;margin-top:14px;flex-wrap:wrap}
.employee-live-weather .weather-details span,.employee-live-weather .weather-details b{display:block;font-size:12px}
.employee-live-weather .weather-details span{opacity:.72}
.chat-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px}.chat-people{padding:12px}.chat-person{width:100%;border:0;background:transparent;padding:12px;text-align:left;border-radius:9px;display:flex;justify-content:space-between;cursor:pointer}.chat-person.active{background:#eef2e9;font-weight:700}.chat-panel{min-height:520px;display:flex;flex-direction:column}.chat-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e5e9e6;padding-bottom:14px}.live-dot{color:#39845a;font-size:12px;font-weight:800}.chat-stream{flex:1;max-height:520px;overflow:auto;padding:18px 4px;display:flex;flex-direction:column;gap:10px}.chat-msg{max-width:72%;padding:11px 13px;border-radius:12px;background:#f0f2f0;white-space:pre-wrap}.chat-msg.mine{align-self:flex-end;background:#e8eb00;color:#111}.chat-msg.theirs{align-self:flex-start}.chat-msg small{display:block;margin-top:6px;opacity:.65;font-size:10px}.chat-compose{display:flex;gap:10px;border-top:1px solid #e5e9e6;padding-top:14px}.chat-compose textarea{flex:1;min-height:68px;resize:vertical}@media(max-width:760px){.chat-layout{grid-template-columns:1fr}.chat-people{max-height:180px;overflow:auto}.chat-msg{max-width:88%}.chat-compose{flex-direction:column}}
.wizard-steps .wizard-step{appearance:none;-webkit-appearance:none;border:0;border-bottom:3px solid #e3e8e2;background:transparent;color:#7b847e;text-align:left;padding:12px 0 10px;cursor:pointer;font:inherit;min-width:0}
.wizard-steps .wizard-step:hover{color:#181d1c;border-bottom-color:#aab23a;background:#fafbe9}
.wizard-steps .wizard-step.active{color:#181d1c;border-bottom-color:var(--yellow);font-weight:700}
.wizard-steps .wizard-step.done{color:#536158;border-bottom-color:#bfc79b}
/* v1.3.00 professioneel klantportaal */
body.client-pro{--cpblue:#126ef7;background:#f4f7fb}.client-pro .sidebar{display:none}.client-pro .app-shell{display:block}.client-pro .topbar{height:48px;padding:0 28px}.client-pro .topbar .breadcrumb,.client-pro .topbar .menu-toggle{display:none}.client-pro .main{max-width:none;padding:26px 30px 55px}.client-topnav{height:82px;background:#000;color:#fff;display:flex;align-items:stretch;padding:0 30px;gap:32px;box-shadow:0 2px 12px #09233c22}.client-brand{display:flex;align-items:center;gap:12px;min-width:285px}.client-brand img{width:180px;height:58px;object-fit:contain;background:#fff;border-radius:7px;padding:5px 9px}.client-brand span{font-size:11px;letter-spacing:1.5px;font-weight:800}.client-navlinks{display:flex;align-items:stretch;flex:1;justify-content:center;gap:8px}.client-navlinks a{min-width:108px;padding:12px 14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:7px;font-size:13px;font-weight:600}.client-navlinks a:first-letter{font-size:19px}.client-navlinks a.active,.client-navlinks a:hover{background:#126ef7}.client-company{display:flex;flex-direction:column;justify-content:center;text-align:right;min-width:180px}.client-company small{opacity:.7}.client-dashboard{max-width:1700px;margin:auto}.cp-filterbar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(260px,1.25fr) minmax(430px,2fr) minmax(180px,1fr);gap:18px;align-items:end;margin-bottom:22px}.cp-filterbar label,.cp-quick>span{display:block;font-size:12px;font-weight:700;color:#25364c}.cp-filterbar select,.cp-filterbar input{width:100%;height:42px;border:1px solid #d5dee9;border-radius:7px;background:#fff;padding:0 12px;margin-top:7px}.cp-date{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.cp-quick>div{display:flex;gap:7px;margin-top:7px}.cp-quick button{height:42px;border:1px solid #d5dee9;background:#fff;border-radius:7px;padding:0 13px;white-space:nowrap}.cp-quick button.active{background:#126ef7;color:#fff;border-color:#126ef7}.cp-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:18px}.cp-kpis>div{background:#fff;border:1px solid #dfe6ef;border-radius:11px;padding:18px 20px;box-shadow:0 2px 6px #17304b08}.cp-kpis span,.cp-kpis small{display:block;color:#62738a}.cp-kpis span{font-weight:700;color:#1b2c42}.cp-kpis strong{display:block;font-size:29px;margin:7px 0}.cp-chartgrid{display:grid;grid-template-columns:1.55fr 1fr 1fr;gap:16px;margin-bottom:18px}.cp-panel{background:#fff;border:1px solid #dfe6ef;border-radius:11px;padding:20px;box-shadow:0 2px 6px #17304b08}.cp-panel h2{font-size:16px;color:#162b45}.cp-bars{height:210px;display:flex;align-items:flex-end;gap:4px;border-left:1px solid #dce4ed;border-bottom:1px solid #dce4ed;padding:12px 8px 0}.cp-barcol{height:100%;flex:1;min-width:3px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}.cp-barcol i{display:block;width:75%;min-height:3px;background:linear-gradient(#126ef7,#5aa0ff);border-radius:3px 3px 0 0}.cp-barcol small{height:18px;color:#718197;font-size:9px}.cp-donutwrap{display:flex;align-items:center;justify-content:center;gap:24px;min-height:210px}.cp-donut{width:160px;height:160px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto}.cp-donut>div{width:88px;height:88px;border-radius:50%;background:#fff;display:grid;place-items:center;align-content:center}.cp-donut strong{font-size:27px}.cp-donut small{color:#728196}.cp-legend{flex:1}.cp-legend>div{display:grid;grid-template-columns:13px 1fr auto;gap:8px;align-items:center;margin:9px 0;font-size:12px}.cp-legend i{width:12px;height:12px;border-radius:3px}.cp-objectbars button{border:0;background:transparent;width:100%;display:grid;grid-template-columns:minmax(100px,1.2fr) 1.7fr 30px;gap:10px;align-items:center;text-align:left;padding:7px 0}.cp-objectbars button:hover span{text-decoration:underline}.cp-objectbars i{height:14px;background:#eef3f8;border-radius:2px;overflow:hidden}.cp-objectbars b{display:block;height:100%;background:#287df2}.cp-latest{padding:20px}.cp-latest .data-table th{background:#edf3f9;color:#667990}.cp-latest .data-table td{vertical-align:middle}.cp-typebadge{display:inline-block;background:#fff3d7;border:1px solid #f3d79d;color:#855a00;padding:4px 8px;border-radius:6px;font-size:11px}
@media(max-width:1200px){.cp-filterbar{grid-template-columns:1fr 1fr}.cp-kpis{grid-template-columns:repeat(3,1fr)}.cp-chartgrid{grid-template-columns:1fr 1fr}.cp-chartgrid .cp-panel:first-child{grid-column:1/-1}.client-navlinks a{min-width:85px}.client-company{display:none}}
@media(max-width:760px){.client-topnav{height:auto;padding:10px 12px;display:block}.client-brand{min-width:0;margin-bottom:8px}.client-brand img{width:150px;height:48px}.client-navlinks{overflow-x:auto;justify-content:flex-start}.client-navlinks a{min-width:88px;font-size:11px}.client-pro .main{padding:16px 10px}.client-pro .topbar{display:none}.cp-filterbar{grid-template-columns:1fr}.cp-quick>div{overflow-x:auto}.cp-kpis{grid-template-columns:1fr 1fr}.cp-chartgrid{grid-template-columns:1fr}.cp-chartgrid .cp-panel:first-child{grid-column:auto}.cp-donutwrap{flex-direction:column}.cp-latest{overflow:hidden}}
.billing-full{padding:0 0 40px}.billing-top{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border-bottom:1px solid #e4e9e6;padding:14px 0;margin-bottom:18px}.billing-workspace{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);gap:24px;align-items:start}.billing-edit{background:#fff;border:1px solid #e3e8e5;border-radius:14px;padding:20px}.billing-lines input{min-width:92px;width:100%;padding:7px;border:1px solid #d9dfdc;border-radius:7px}.invoice-preview{position:sticky;top:82px}.invoice-paper{background:#fff;box-shadow:0 8px 30px rgba(0,0,0,.12);padding:38px;min-height:720px;color:#18221e}.invoice-head,.invoice-addresses,.invoice-meta{display:flex;justify-content:space-between;gap:24px}.invoice-head{border-bottom:4px solid #e7ef00;padding-bottom:18px}.invoice-head img{width:150px;height:55px;object-fit:contain;object-position:left center}.invoice-title{font-size:28px;font-weight:800}.invoice-addresses{margin:30px 0;line-height:1.6}.invoice-meta{font-size:12px;padding:12px;background:#f5f7f6}.invoice-table{width:100%;border-collapse:collapse;margin-top:24px;font-size:12px}.invoice-table th,.invoice-table td{padding:10px 6px;border-bottom:1px solid #e6eae8;text-align:left}.invoice-table small{display:block;color:#6b7671;margin-top:3px}.invoice-totals{margin:24px 0 0 auto;max-width:270px;display:grid;gap:8px}.invoice-totals span,.invoice-totals strong{display:flex;justify-content:space-between}.invoice-totals strong{font-size:18px;border-top:2px solid #18221e;padding-top:10px}.invoice-footer{margin-top:45px;border-top:1px solid #ddd;padding-top:14px;font-size:11px}.tariff-row{display:grid;grid-template-columns:1fr 130px;gap:14px;align-items:end;margin-bottom:10px}@media(max-width:1100px){.billing-workspace{grid-template-columns:1fr}.invoice-preview{position:static}}@media print{body *{visibility:hidden}.invoice-paper,.invoice-paper *{visibility:visible}.invoice-paper{position:absolute;left:0;top:0;width:100%;box-shadow:none}}

/* v1.3.12: PF Security-logo permanent zichtbaar; hover verandert de logokaart niet. */
.sidebar a.brand,.sidebar a.brand:hover,.sidebar a.brand:focus,.sidebar a.brand:active{background:#fff!important;color:inherit!important}
.sidebar .brand img,.sidebar .brand:hover img,.sidebar .brand:focus img{content:url("report-logo.png")!important;display:block!important;width:100%!important;height:64px!important;max-width:100%!important;max-height:64px!important;object-fit:contain!important;object-position:center!important;filter:none!important;opacity:1!important;visibility:visible!important;transform:none!important;clip-path:none!important}

/* v1.3.13 volledige A4 factuurpreview */
.billing-edit-only{grid-template-columns:1fr}.invoice-full-stage{padding:28px;display:flex;flex-direction:column;gap:28px;justify-content:flex-start;align-items:center;background:#eef1ef;min-height:calc(100vh - 160px)}.invoice-a4{width:210mm;min-height:297mm;box-sizing:border-box;padding:18mm 16mm;margin:0 auto;background:#fff}.invoice-a4 .invoice-head img{width:180px;height:72px;object-fit:contain;object-position:left center;display:block}.invoice-footer h4{margin:0 0 8px;font-size:13px}.invoice-footer p{margin:6px 0;line-height:1.55}.invoice-companyline{margin-top:18px;padding-top:10px;border-top:1px solid #e1e5e3;color:#68736e;font-size:10px}@media(max-width:950px){.invoice-full-stage{padding:8px;overflow:auto}.invoice-a4{width:210mm;transform-origin:top left}}@media print{.sidebar,.topbar,.billing-top{display:none!important}.workspace,.main,#main{margin:0!important;padding:0!important}.invoice-full-stage{padding:0;background:#fff}.invoice-a4{width:210mm;min-height:297mm;box-shadow:none;margin:0}}
/* v1.3.14 offerte module */
.offer-preview-gallery{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}.offer-preview-gallery figure{margin:0}.offer-preview-gallery img{width:100%;height:190px;object-fit:cover;border-radius:6px}.offer-preview-gallery figcaption{font-size:12px;color:#68717a;margin-top:5px}.invoice-a4 footer{margin-top:35px;padding-top:14px;border-top:1px solid #d9dde1;font-size:11px;color:#68717a}@media(max-width:800px){.offer-preview-gallery{grid-template-columns:1fr}}

/* v1.3.16 — klantportaal mobiel gecentreerd */
@media(max-width:760px){
  body.client-pro{overflow-x:hidden}
  .client-pro .app-shell,.client-pro .workspace,.client-pro .main,.client-dashboard{width:100%;max-width:100%;margin-left:auto;margin-right:auto}
  .client-pro .main{padding:14px 12px 40px}
  .client-topnav{padding:12px;display:flex;flex-direction:column;align-items:center;text-align:center}
  .client-brand{width:100%;min-width:0;margin:0 0 10px;justify-content:center;flex-direction:column;gap:6px}
  .client-brand img{display:block;width:min(220px,72vw);height:58px;margin:0 auto;object-fit:contain}
  .client-brand span{width:100%;text-align:center}
  .client-navlinks{width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;overflow:visible;justify-content:center}
  .client-navlinks a{min-width:0;width:100%;padding:9px 3px;font-size:10px;text-align:center}
  .client-company{display:none}
  .cp-filterbar,.cp-kpis,.cp-chartgrid{width:100%;margin-left:auto;margin-right:auto}
  .cp-filterbar{grid-template-columns:1fr;gap:12px}
  .cp-date{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
  .cp-quick>div{display:flex;overflow-x:auto;justify-content:flex-start;padding-bottom:3px}
  .cp-kpis{grid-template-columns:1fr 1fr;gap:10px}
  .cp-kpis>div,.cp-panel{min-width:0;text-align:center}
  .cp-chartgrid{grid-template-columns:1fr;gap:12px}
  .cp-chartgrid .cp-panel:first-child{grid-column:auto}
  .cp-donutwrap{align-items:center}
  .cp-latest{width:100%;padding:14px;overflow-x:auto}
}
@media(max-width:480px){
  .client-pro .main{padding-left:10px;padding-right:10px}
  .client-navlinks{grid-template-columns:repeat(3,minmax(0,1fr))}
  .client-navlinks a{font-size:10px}
  .cp-kpis{grid-template-columns:1fr}
  .cp-date{grid-template-columns:1fr;gap:6px;text-align:center}
  .cp-date>span{display:block}
}

/* v1.3.17 — Facturatie submenu + duidelijke Facturen/Offertes navigatie */
.sidebar a.billing-submenu{display:flex!important;margin:-1px 0 5px 31px!important;padding:8px 12px!important;border-left:2px solid var(--yellow);border-radius:0 7px 7px 0;font-size:12px;color:#d8dedb;background:#ffffff08}
.sidebar a.billing-submenu:hover{background:#ffffff12!important;color:#fff!important}
.sidebar a.billing-submenu.active{background:#fff!important;color:#171b19!important;font-weight:700}
.submenu-mark{color:var(--yellow);font-weight:800}.sidebar a.billing-submenu.active .submenu-mark{color:#171b19}
.billing-section-tabs{display:flex;gap:8px;margin:-8px 0 22px;padding:5px;background:#ecefed;border-radius:10px;width:max-content;max-width:100%}
.billing-section-tabs a{padding:9px 18px;border-radius:7px;font-weight:700;font-size:13px}
.billing-section-tabs a.active{background:#000;color:#fff}
.billing-section-tabs a:not(.active){background:#fff;border:1px solid #dce2dd}
@media(max-width:700px){.billing-section-tabs{width:100%}.billing-section-tabs a{flex:1;text-align:center}.sidebar a.billing-submenu{margin-left:28px!important}}

/* v1.3.18 — professionele offerte-opdrachtgeverselectie */
.offer-client-picker-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.offer-client-picker-head h3{margin:0 0 5px}.offer-client-results{display:grid;gap:8px;max-height:480px;overflow:auto;margin-top:12px}.offer-client-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;text-align:left;padding:14px 16px;border:1px solid #dfe5e1;border-radius:12px;background:#fff;cursor:pointer}.offer-client-row:hover{border-color:#111;background:#fafafa}.offer-client-row span{display:flex;flex-direction:column;gap:4px}.offer-client-row b{color:#111}.offer-existing-search{padding:14px;border:1px solid #e5e8e5;border-radius:12px;background:#fafbfa;margin:14px 0 18px}.offer-existing-hit{display:block;width:100%;border:0;border-top:1px solid #e3e5e3;background:transparent;padding:9px 0;text-align:left;cursor:pointer}.offer-existing-hit:first-of-type{margin-top:8px}.offer-existing-hit:hover{text-decoration:underline}@media(max-width:700px){.offer-client-picker-head,.offer-client-row{flex-direction:column;align-items:stretch}.offer-client-row>span:last-child{align-items:flex-start}}
/* v1.3.19 offerte status */
.offer-status-card{border-left:4px solid #e5df00;margin-top:18px;line-height:1.7}.offer-status-card b{color:#111}
/* v1.3.21 professionele offertebuilder */
.offer-builder-section{margin:18px 0 26px;padding:18px;border:1px solid #e1e5e2;border-radius:12px;background:#fbfcfb}.offer-article{margin:12px 0;padding:16px;border:1px solid #dfe4e1;border-radius:10px;background:#fff}.offer-article-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.offer-cover{display:flex;flex-direction:column;min-height:297mm;box-sizing:border-box}.offer-cover-logos{display:flex;justify-content:space-between;align-items:flex-start;gap:30px}.offer-cover-logos img{width:auto;object-fit:contain}.offer-cover-logos .pf-logo{max-width:230px;max-height:85px}.offer-cover-logos .client-logo{width:230px;height:85px;max-width:230px;max-height:85px;object-fit:contain}.offer-cover-title{margin:auto 0}.offer-cover-title>span{font-size:15px;font-weight:700;letter-spacing:.18em;color:#777}.offer-cover-title h1{font-size:38px;margin:12px 0}.offer-cover-title p{font-size:20px}.offer-cover-meta{border-top:5px solid #e5df00;padding-top:22px;display:flex;justify-content:space-between;gap:30px}.offer-cover-meta>div{display:flex;flex-direction:column;gap:5px}.offer-preview-article{margin:28px 0}.offer-preview-article img{max-width:100%;max-height:330px;object-fit:contain;display:block;margin:14px 0}@media(max-width:700px){.offer-article-head,.offer-cover-meta,.offer-cover-logos{flex-direction:column;align-items:flex-start}}

/* v1.3.22: dialogs always centered in the visible viewport */
dialog[open]{position:fixed;inset:0;margin:auto;max-height:90vh}
dialog.large[open]{max-height:90vh}
dialog .dialog-body{max-height:calc(90vh - 72px);overflow:auto}
.offer-logo-upload{display:grid;gap:8px}.offer-logo-upload input[type=file]{padding:8px;background:#fff}.offer-logo-preview{height:112px;border:1px dashed #cfd6cf;border-radius:9px;background:#fafbf9;display:grid;place-items:center;overflow:hidden}.offer-logo-preview img{width:100%;height:100%;object-fit:contain;padding:10px}.offer-logo-preview span{color:var(--muted);font-size:12px}
@media(max-width:700px){dialog[open],dialog.large[open]{width:calc(100% - 16px);max-width:calc(100% - 16px);max-height:92vh;margin:auto}.dialog-body{max-height:calc(92vh - 66px)!important}.offer-logo-preview{height:100px}}

/* v1.3.23 offerte paginering, watermark en status */
.offer-status{display:inline-flex;align-items:center;padding:7px 11px;border-radius:8px;font-weight:700;font-size:12px;white-space:nowrap}.offer-status.accepted{background:#dcfce7;color:#166534}.offer-status.pending{background:#ffedd5;color:#9a3412}.offer-status.rejected{background:#fee2e2;color:#b91c1c}.offer-status.concept{background:#fef3c7;color:#854d0e}
.offer-watermarked{position:relative;isolation:isolate;overflow:visible}.offer-watermark{position:absolute;inset:25mm 18mm;display:grid;place-items:center;pointer-events:none;z-index:-1;opacity:.025}.offer-watermark img{width:58%;max-height:120mm;object-fit:contain;filter:none!important}.offer-preview-article{break-inside:avoid;page-break-inside:avoid;overflow:hidden}.offer-preview-article h2{break-after:avoid;page-break-after:avoid}.offer-preview-article img{break-inside:avoid;page-break-inside:avoid}.offer-page-footer{margin-top:28px;padding-top:10px;border-top:1px solid #d8ddda;font-size:10px;color:#69736d;text-align:center}.invoice-a4{position:relative}.invoice-a4>footer.offer-page-footer{break-inside:avoid;page-break-inside:avoid}
@media print{.offer-preview-article{break-inside:avoid!important;page-break-inside:avoid!important}.offer-watermark{position:fixed;inset:30mm 20mm;opacity:.025}.offer-page-footer{position:fixed;left:16mm;right:16mm;bottom:8mm;background:#fff}.invoice-a4.offer-watermarked{padding-bottom:22mm}}
/* v1.3.24 offerte reset/status */
.button.danger[data-action="offer-reset-all"]{border-color:#dc2626;color:#b91c1c;background:#fff}.button.danger[data-action="offer-reset-all"]:hover{background:#fee2e2}
/* v1.3.24 offerte reset/status */
.button.danger[data-action="offer-reset-all"]{border-color:#dc2626;color:#b91c1c;background:#fff}.button.danger[data-action="offer-reset-all"]:hover{background:#fee2e2}

.client-doc-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.client-doc-tabs a{padding:10px 16px;border:1px solid #dfe4e1;border-radius:8px;text-decoration:none;color:#111;background:#fff;font-weight:700}.client-doc-tabs a.active{background:#000;color:#fff;border-color:#000}.cp-doc-status{display:inline-block;padding:6px 10px;border-radius:999px;background:#eef1f2;font-weight:700}.cp-doc-status.ok{background:#dcf7e4;color:#167a36}.cp-doc-status.wait{background:#fff0d5;color:#9b5a00}.cp-doc-status.bad{background:#ffe0e0;color:#b51e1e}@media(max-width:760px){.client-doc-tabs{justify-content:center}.client-doc-card .table-wrap{overflow-x:auto}}

/* v1.3.28 offerte A4: pagina's onder elkaar + complete cover */
.offer-cover{position:relative;page-break-after:always;break-after:page}.offer-cover-parties{display:grid;grid-template-columns:1fr 1fr;gap:22mm;margin-top:24mm;padding-top:8mm;border-top:1px solid #d8ddda}.offer-cover-parties section{display:flex;flex-direction:column;gap:4px;line-height:1.45}.offer-cover-parties small,.offer-cover-meta small{font-size:10px;letter-spacing:.12em;color:#6b746f}.offer-cover-parties strong{font-size:14px;margin:3px 0}.offer-cover-footer{margin-top:auto!important;padding-top:10px!important;border-top:1px solid #d8ddda!important;font-size:10px!important;color:#69736d!important;text-align:center}.invoice-full-stage>.invoice-a4{flex:0 0 auto;margin:0 auto}.invoice-full-stage>.invoice-a4+ .invoice-a4{margin-top:0}@media(max-width:800px){.offer-cover-parties{grid-template-columns:1fr;gap:18px;margin-top:28px}}@media print{.invoice-full-stage{display:block!important}.invoice-full-stage>.invoice-a4{margin:0 auto!important;page-break-after:always;break-after:page}.invoice-full-stage>.invoice-a4:last-child{page-break-after:auto;break-after:auto}.offer-cover-footer{position:absolute!important;left:16mm;right:16mm;bottom:10mm;margin:0!important;background:#fff}}

/* v1.3.28 - professionele ruimte in offerte-adresblok */
.invoice-parties{align-items:flex-start!important;gap:18mm!important;margin:22px 0 28px!important}
.invoice-parties>div{line-height:1.55!important;min-width:0}
.invoice-parties>div:first-child{display:grid!important;grid-template-columns:1fr!important;row-gap:3px!important}
.invoice-parties>div:first-child small{display:block!important;margin:0 0 7px!important;letter-spacing:.12em!important;color:#6b746f!important}
.invoice-parties>div:first-child strong{display:block!important;margin:0 0 5px!important;font-size:15px!important;line-height:1.35!important}
.invoice-parties>div:nth-child(2){display:grid!important;grid-template-columns:1fr!important;row-gap:5px!important}
.invoice-parties>div:nth-child(2) small{display:block!important;margin:7px 0 1px!important;letter-spacing:.1em!important;color:#6b746f!important}
.invoice-parties>div:nth-child(2) small:first-child{margin-top:0!important}
.offer-watermarked>.invoice-parties+h2{margin-top:30px!important}

/* v1.3.29 - klantlogo visueel gelijkwaardig aan PF Security-logo */
.offer-cover-logos .pf-logo,.offer-cover-logos .client-logo{width:230px;height:85px;max-width:230px;max-height:85px;object-fit:contain;object-position:center}

/* v1.3.30 professionele offertebuilder */
.offer-legacy-fixed{display:none!important}.offer-fixed-intro{margin:22px 0;padding:20px;border:1px solid #e1e5e2;border-radius:12px;background:#fff}.offer-addbar{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 22px;padding:14px;background:#f6f8f6;border:1px dashed #cdd4cf;border-radius:10px}.offer-modern-builder .offer-article{box-shadow:0 1px 3px #0000000d}.offer-modern-builder .offer-article-head strong{font-size:15px}

.offer-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.offer-template-card{appearance:none;text-align:left;border:1px solid #d9dfdb;background:#fff;border-radius:10px;padding:16px;cursor:pointer;display:flex;flex-direction:column;gap:6px}.offer-template-card:hover{border-color:#d9d500;box-shadow:0 2px 8px #00000012}.offer-template-card span{font-size:12px;color:#66716a}.offer-cost-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.offer-cost-summary>div{border:1px solid #e0e4e1;border-radius:9px;padding:12px;background:#fafbfa;display:flex;flex-direction:column;gap:5px}.offer-cost-summary span{font-size:12px;color:#66716a}.offer-cost-summary strong{font-size:17px}.offer-cost-summary .holiday{background:#fff8e8}.offer-cost-summary .total{background:#f4f7f4;border-width:2px}@media(max-width:700px){.offer-template-grid,.offer-cost-summary{grid-template-columns:1fr}}

/* v1.3.33 - compacte offertedatumregels */
.offer-date-lines{display:flex!important;flex-direction:column!important;gap:8px!important;min-width:250px!important}
.offer-date-lines>div{display:grid!important;grid-template-columns:112px 1fr!important;align-items:baseline!important;column-gap:18px!important;line-height:1.45!important}
.offer-date-lines small{display:block!important;margin:0!important;letter-spacing:.1em!important;color:#6b746f!important;white-space:nowrap!important}
.offer-date-lines span{display:block!important;color:#111!important;white-space:nowrap!important}
@media(max-width:700px){.offer-date-lines{min-width:0!important}.offer-date-lines>div{grid-template-columns:105px 1fr!important;column-gap:12px!important}}

/* v1.3.35 - offerte tekstvelden handmatig in hoogte verstelbaar */
.billing-edit textarea,
.offer-fixed-intro textarea,
.offer-modern-builder textarea,
.offer-article textarea {
  resize: vertical !important;
  min-height: 120px;
  max-height: 75vh;
  overflow: auto;
}
#off-intro { min-height: 180px; }
.offer-modern-builder textarea,
.offer-article textarea { min-height: 150px; }
/* v1.3.36 offerte-artikelen: rijke teksteditor */
.offer-rich-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 0;padding:8px;border:1px solid #d9dedb;border-bottom:0;border-radius:8px 8px 0 0;background:#f6f8f6}
.offer-rich-editor{min-height:180px;max-height:650px;overflow:auto;resize:vertical;padding:12px;border:1px solid #d9dedb;border-radius:0 0 8px 8px;background:#fffdf0;line-height:1.55;white-space:normal;outline:none}
.offer-rich-editor:focus{border-color:#b7b100;box-shadow:0 0 0 2px rgba(229,223,0,.18)}
.offer-rich-editor strong,.offer-article-body strong{font-weight:700;color:#111}.offer-rich-editor ul,.offer-rich-editor ol,.offer-article-body ul,.offer-article-body ol{padding-left:24px}
.offer-article-body{line-height:1.55}.offer-article-body p{margin:0 0 10px}
.offer-cost-preview{margin:18px 0 8px}.offer-cost-preview table{width:100%;border-collapse:collapse}.offer-cost-preview td{padding:8px 10px;border-bottom:1px solid #e3e7e4;vertical-align:top}.offer-cost-preview td:last-child{text-align:right;white-space:nowrap}.offer-cost-preview tr:last-child td{border-top:2px solid #111;border-bottom:0;padding-top:11px}.offer-template-card .actions{margin-top:10px;display:flex;gap:6px;flex-wrap:wrap}

/* v1.3.40 offertebediening altijd bereikbaar */
.billing-full>.billing-top{position:sticky!important;top:0!important;z-index:80!important;box-shadow:0 6px 18px rgba(0,0,0,.08);padding-left:10px;padding-right:10px}
.offer-cost-grid input{pointer-events:auto!important;opacity:1!important}

/* v1.3.43 - vaste offerte-actiebalken en duidelijk cijferwerk */
.billing-full > .billing-top,
.invoice-full-overlay > .invoice-full-toolbar{
  position:sticky!important;
  top:0!important;
  z-index:999!important;
  background:#fff!important;
  box-shadow:0 6px 18px rgba(0,0,0,.10)!important;
}
.invoice-full-overlay > .invoice-full-toolbar{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 16px;
  border-bottom:1px solid #e1e6e3;
}
/* Bedragen, uren, data en documentcijfers in de offerte extra leesbaar */
.offer-cost-summary strong,
.offer-cost-preview td:last-child,
.offer-cost-preview tr:last-child td,
.offer-cover-meta strong,
.offer-cover-meta span,
.offer-cover-meta small + strong,
.invoice-a4 .invoice-head h1{
  color:#000!important;
  font-weight:800!important;
}
.offer-cost-preview td:last-child{font-variant-numeric:tabular-nums}
.offer-cost-summary strong{font-variant-numeric:tabular-nums;color:#000!important}

/* v1.3.52 - live operationeel dashboard en beveiligingsstatus */
.dashboard-health-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;margin:18px 0}.health-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 14px}.health-kpis>div{border:1px solid #e1e5e2;border-radius:9px;padding:12px;background:#fafbfa}.health-kpis span{display:block;font-size:12px;color:#69736d}.health-kpis strong{display:block;font-size:24px;color:#111;margin-top:5px}.security-live-dot{font-size:11px;font-weight:800;color:#167a36;letter-spacing:.08em}.security-check{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0ee}.security-check>b{width:26px;height:26px;border-radius:50%;display:grid;place-items:center}.security-check.ok>b{background:#dcf7e4;color:#167a36}.security-check.warn>b{background:#fff0d5;color:#9b5a00}.security-check span{display:flex;flex-direction:column}.security-check small{color:#69736d;margin-top:2px}@media(max-width:900px){.dashboard-health-grid{grid-template-columns:1fr}.health-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.health-kpis{grid-template-columns:1fr}}

/* v1.3.55 — volledig responsieve mobiele app: portrait + landscape */
html,body{width:100%;max-width:100%;min-height:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}
body{min-height:100vh;min-height:100dvh}
.app-shell,.workspace,#main,.main{max-width:100%;min-width:0}
@media(max-width:900px){
  .app-shell{display:block;width:100%;min-height:100vh;min-height:100dvh}
  .workspace{width:100%;min-height:100vh;min-height:100dvh}
  .topbar{width:100%;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
  .main{width:100%;max-width:none;margin:0;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));padding-bottom:max(40px,env(safe-area-inset-bottom))}
  .sidebar{height:100vh;height:100dvh;padding-left:max(12px,env(safe-area-inset-left));padding-bottom:max(20px,env(safe-area-inset-bottom))}
  img,video,canvas,svg{max-width:100%}
  .card,.welcome,.page-heading,.dashboard-grid,.dashboard-health-grid,.form-grid,.content-fields,.toolbar,.actions{max-width:100%;min-width:0}
  .toolbar,.actions{flex-wrap:wrap}
  input,select,textarea{max-width:100%;font-size:16px}
  dialog[open],dialog.large[open],.payroll-dialog[open]{max-height:calc(100dvh - 16px);overflow:hidden}
  .dialog-body{max-height:calc(100dvh - 82px)!important;overflow:auto;-webkit-overflow-scrolling:touch}
}
@media(max-width:580px){
  .main{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}
  .card{width:100%;margin-left:0;margin-right:0}
  .page-heading,.page-heading .actions{width:100%}
  .page-heading .actions>.button{flex:1 1 145px;min-width:0}
  .stats,.quick-links,.employee-home,.cp-filterbar,.cp-kpis,.cp-chartgrid{width:100%;max-width:none}
}
@media(max-width:900px) and (orientation:landscape){
  .topbar{height:54px}
  .main{padding-top:12px;padding-bottom:max(20px,env(safe-area-inset-bottom))}
  .sidebar{width:min(300px,72vw);left:min(-310px,-72vw)}
  .menu-open .sidebar{left:0}
  .stats{grid-template-columns:repeat(4,minmax(0,1fr))}
  .dashboard-health-grid{grid-template-columns:1fr 1fr}
  .dialog-body{max-height:calc(100dvh - 70px)!important}
  .client-pro .main{padding-top:10px}
  .client-topnav{padding-top:max(8px,env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  .client-navlinks{grid-template-columns:repeat(5,minmax(0,1fr))}
  .cp-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:700px) and (orientation:landscape){
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-health-grid{grid-template-columns:1fr}
}

/* v1.3.62 klant-huisstijl: uitsluitend role=client */
body.pf-client-branded{background:var(--client-bg)!important;color:var(--client-text)!important}
body.pf-client-branded .sidebar{background:var(--client-secondary)!important}
body.pf-client-branded .sidebar .nav-item.active,body.pf-client-branded .sidebar a.active,
body.pf-client-branded .button.primary,body.pf-client-branded button.primary{background:var(--client-primary)!important;border-color:var(--client-primary)!important;color:#fff!important}
body.pf-client-branded .card{border-top-color:var(--client-accent)!important}
body.pf-client-branded .main a:not(.button){color:var(--client-primary)}
body.pf-client-branded input:focus,body.pf-client-branded select:focus,body.pf-client-branded textarea:focus{border-color:var(--client-primary)!important;outline-color:var(--client-accent)!important}

/* v1.3.67 duidelijke status ochtendmail */
.digest-status{display:inline-flex;align-items:center;gap:8px;min-width:174px;justify-content:flex-start;padding:8px 11px;border-radius:999px;border:1px solid transparent;font-size:12px;font-weight:800;line-height:1;white-space:nowrap;cursor:pointer;box-shadow:none}
.digest-status .digest-dot{width:9px;height:9px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px rgba(255,255,255,.55)}
.digest-status-on{background:#e8f7ed!important;color:#176b36!important;border-color:#a9dbb8!important}
.digest-status-off{background:#fdecec!important;color:#a32626!important;border-color:#efb4b4!important}
.digest-status:hover{filter:brightness(.97);transform:translateY(-1px)}
.digest-status.is-disabled{cursor:default;opacity:.75;transform:none}
@media(max-width:760px){.digest-status{min-width:0;width:100%;justify-content:center;padding:9px 10px}}

.second-screen-button{
 display:inline-grid;place-items:center;width:34px;height:34px;padding:0;
 border:1px solid #dce2dd;border-radius:8px;background:#fff;color:#18201c;
 font-size:24px;font-weight:500;line-height:1;cursor:pointer;
}
.second-screen-button:hover{background:#f1f4ed;border-color:#cbd4ce}
@media(max-width:580px){
 .second-screen-button{width:32px;height:32px;font-size:22px}
}

/* v1.3.88 PDF-viewer binnen PF Security Connect */
.pf-pdf-viewer{display:flex;flex-direction:column;gap:10px;width:min(1180px,92vw)}
.pf-pdf-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pf-pdf-frame{display:block;width:100%;height:76vh;min-height:560px;border:1px solid #d8dfda;border-radius:10px;background:#f4f6f5}
.modal:has(.pf-pdf-viewer){width:min(1240px,96vw);max-width:none}
@media(max-width:760px){
 .pf-pdf-viewer{width:100%}
 .pf-pdf-frame{height:72vh;min-height:430px}
}

/* v1.3.89: opslaan in klantcontact-wizard altijd bereikbaar */
dialog .wizard-actions{
 position:sticky;
 bottom:-24px;
 z-index:4;
 background:#fff;
 padding:16px 0 8px;
 box-shadow:0 -10px 18px rgba(255,255,255,.96);
}

/* v1.3.97 route + drag planning */
.roster-draggable[draggable="true"]{cursor:grab}.roster-draggable.is-dragging{opacity:.45;cursor:grabbing}.roster-drop-cell.drag-over{outline:3px dashed #e6b800;outline-offset:-4px;background:#fff9cf!important}.route-km-box{display:flex;flex-direction:column;gap:6px;margin-top:8px}.route-km-box .button{width:max-content;max-width:100%}.route-km-box small{line-height:1.35}

/* v1.3.99: compact inklapbare huisstijl */
.client-theme-details{border:1px solid #e1e5df;border-radius:10px;background:#fff}.client-theme-details>summary{cursor:pointer;padding:14px 16px;list-style:none;display:flex;align-items:center;gap:4px}.client-theme-details>summary::-webkit-details-marker{display:none}.client-theme-details>summary:after{content:'▾';margin-left:auto}.client-theme-details[open]>summary:after{content:'▴'}.client-theme-body{padding:0 16px 16px}.roster-draggable.is-dragging{opacity:.55}.roster-drop-cell.drag-over{outline:2px dashed currentColor;outline-offset:-3px}

/* v1.4.01 automatische woon-werkroute in CAO-kolom */
.route-summary{background:#fff;border:1px solid #dfe5dc;border-radius:12px;padding:12px 14px;margin:10px 0 14px;display:grid;gap:5px}.route-summary strong{font-size:16px}.route-summary small{display:block;color:#68736c}.route-summary b{font-size:17px}.route-km-box{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:7px}.route-km-box small{flex:1;min-width:220px}

/* v1.4.13: opdrachtgever direct klikbaar + handmatig schaalbare overeenkomsteditor */
.client-name-link,.client-code-link{display:block;border:0;background:none;padding:0;margin:0;text-align:left;color:inherit;cursor:pointer;font:inherit}
.client-name-link{font-weight:700;text-decoration:none}
.client-name-link:hover,.client-name-link:focus{color:#687000;text-decoration:underline;text-underline-offset:3px}
.client-code-link{font-size:11px;color:var(--muted);margin-top:2px}
.client-code-link:hover,.client-code-link:focus{text-decoration:underline}
dialog.agreement-dialog{width:min(1240px,94vw);max-width:96vw;min-width:760px;min-height:520px;max-height:94vh;resize:both;overflow:auto}
dialog.agreement-dialog .dialog-body{max-height:none;height:calc(100% - 66px);overflow:auto}
@media(max-width:900px){dialog.agreement-dialog{width:calc(100% - 16px);max-width:calc(100% - 16px);min-width:0;min-height:0;max-height:92vh;resize:none}dialog.agreement-dialog .dialog-body{height:auto;max-height:calc(92vh - 66px)}}
/* v1.4.17 KMF klantinformatieblad */
.kmf-dialog{width:min(1180px,96vw)!important;max-width:96vw!important}.kmf-toolbar{display:flex;gap:8px;justify-content:flex-end;position:sticky;top:0;background:var(--surface,#fff);padding:8px 0;z-index:2}.kmf-preview{background:#e8ecea;padding:24px;overflow:auto}.kmf-sheet{width:min(210mm,100%);min-height:297mm;margin:0 auto;background:#fff;color:#17211e;padding:14mm;box-shadow:0 4px 20px #0002}.kmf-head{display:flex;justify-content:space-between;gap:20px;border-bottom:3px solid #173f35;padding-bottom:14px}.kmf-head img{max-width:160px;max-height:72px;object-fit:contain}.kmf-brand{font-weight:800;letter-spacing:.08em}.kmf-head h1{font-size:25px;margin:5px 0}.kmf-head p{margin:0;color:#65706c}.kmf-sheet section{margin-top:18px}.kmf-sheet h2{font-size:14px;text-transform:uppercase;border-bottom:1px solid #d5dcda;padding-bottom:6px}.kmf-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 22px}.kmf-grid>div{display:flex;flex-direction:column;border-bottom:1px solid #edf0ef;padding:6px 0}.kmf-grid .wide{grid-column:1/-1}.kmf-grid b{font-size:10px;text-transform:uppercase;color:#68736f}.kmf-grid span,.kmf-notes{white-space:pre-wrap}.kmf-warning{background:#f2f4f3;padding:9px;border-radius:6px;font-size:12px}.kmf-notes{min-height:50px;border:1px solid #e3e8e6;border-radius:6px;padding:9px}.kmf-sheet footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #d5dcda;margin-top:20px;padding-top:8px;font-size:10px;color:#6d7673}@media(max-width:700px){.kmf-preview{padding:8px}.kmf-sheet{padding:18px;min-height:auto}.kmf-grid{grid-template-columns:1fr}.kmf-grid .wide{grid-column:auto}.kmf-head{flex-direction:column}.kmf-sheet footer{flex-direction:column}}

/* v1.4.21: rooster opent als volledig werkscherm */
.roster-only .sidebar,.roster-only .topbar,.roster-only .demo-banner,.roster-only .mobile-overlay{display:none!important}.roster-only .app-shell{display:block!important}.roster-only .workspace{width:100vw;max-width:none!important}.roster-only .main{width:100vw;max-width:none!important;padding:10px!important}.roster-only .roster-scroll{max-height:calc(100vh - 190px)!important}.roster-only .page-heading{margin-top:0}
/* PF Chat v1.4.33 - mobile dashboard accordion */
.mobile-chat-overview{display:none}
@media(max-width:780px){
 .mobile-chat-overview{display:block;margin:0 0 14px;border:1px solid #dfe5e2;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.04)}
 .mobile-chat-toggle{width:100%;border:0;background:#fff;padding:14px 15px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;font:inherit;color:#17231f}
 .mobile-chat-toggle>span{display:flex;align-items:center;gap:7px}
 .mobile-chat-badge{font-size:12px;font-weight:600;color:#66736e;white-space:nowrap}.mobile-chat-badge.has-unread{background:#173f35;color:#fff;border-radius:999px;padding:4px 8px}
 .mobile-chat-chevron{font-size:18px}.mobile-chat-body{border-top:1px solid #edf0ef;padding:4px 10px 10px}.mobile-chat-body[hidden]{display:none}
 .mobile-chat-row{width:100%;border:0;border-bottom:1px solid #edf0ef;background:#fff;padding:11px 5px;display:flex;justify-content:space-between;gap:12px;text-align:left;color:inherit}.mobile-chat-row span{min-width:0;display:flex;flex-direction:column;gap:3px}.mobile-chat-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#69736f}.mobile-chat-row time{font-size:11px;color:#7b8581;white-space:nowrap}.mobile-chat-empty{padding:10px 5px}.mobile-chat-all{width:100%;margin-top:8px}
}

/* PF Chat v1.4.38 - snelle sync, foto's en groepslogo */
.chat-photo{display:block;max-width:min(420px,100%);max-height:420px;object-fit:cover;border-radius:12px;margin:0 0 8px}
.chat-photo-button{display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding:9px 12px;border:1px solid #d8dedb;border-radius:10px;background:#fff;font-weight:600}
.chat-group-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:8px}
.chat-group-avatar.placeholder{display:inline-flex;align-items:center;justify-content:center;background:#eef1ef}
.chat-group-logo-preview{width:72px;height:72px;border-radius:14px;object-fit:cover;display:block;margin:8px 0}
@media(max-width:700px){.chat-photo{max-height:320px}.chat-compose{position:sticky;bottom:0;background:#fff;padding-bottom:max(8px,env(safe-area-inset-bottom))}}

/* v1.4.39 PF Chat viewport: invoerveld altijd zichtbaar */
body:has(.chat-layout){overflow:hidden}
.chat-layout{height:calc(100dvh - 245px);min-height:430px;align-items:stretch}
.chat-people{height:100%;overflow:auto}
.chat-panel{min-height:0;height:100%;overflow:hidden;padding-bottom:10px}
.chat-stream{min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain}
.chat-compose{flex:0 0 auto;background:#fff;position:sticky;bottom:0;z-index:4;padding-bottom:max(8px,env(safe-area-inset-bottom))}
@media(max-width:760px){body:has(.chat-layout){overflow:auto}.chat-layout{height:calc(100dvh - 150px);min-height:520px;grid-template-rows:auto minmax(0,1fr);gap:8px}.chat-people{max-height:110px;height:auto}.chat-panel{height:100%;min-height:0}.chat-stream{min-height:160px}.chat-compose{display:grid;grid-template-columns:1fr auto;gap:8px}.chat-compose textarea{grid-column:1/-1;min-height:52px;max-height:96px;resize:none}.chat-compose .button.primary{min-height:44px}}


/* v1.4.40 chat foto's + open diensten */
.chat-photo-open{display:block;border:0;background:transparent;padding:0;cursor:zoom-in;max-width:100%}
.chat-photo-viewer{position:fixed;inset:0;z-index:1000000;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;padding:54px 18px 18px}
.chat-photo-viewer img{max-width:96vw;max-height:90dvh;object-fit:contain;border-radius:10px}
.chat-photo-close{position:fixed;right:18px;top:14px;width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:#111;font-size:32px;line-height:1;cursor:pointer;box-shadow:0 3px 16px #0006}
.chat-shift-card{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding:12px;border-radius:10px;background:#fff;border:1px solid #dfe5e1;color:#17211e;min-width:min(360px,70vw)}
.chat-shift-card.status-accepted{border-color:#77a88a;background:#f2faf5}.chat-shift-card.status-withdrawn{opacity:.7}.shift-claimed{color:#276b46}
@media(max-width:760px){.chat-shift-card{min-width:0;width:100%}.chat-photo-close{right:12px;top:max(12px,env(safe-area-inset-top))}}
/* v1.4.41 – luxe open-dienstkaart in PF Chat */
.chat-shift-card{width:min(560px,100%);min-width:0;padding:0;overflow:hidden;border-radius:16px;border:1px solid #d7e1dc;background:#fff;box-shadow:0 8px 24px rgba(18,43,34,.10)}
.chat-shift-top{display:flex;gap:12px;align-items:center;padding:16px 18px;background:linear-gradient(135deg,#183c32,#275d4d);color:#fff}.chat-shift-top small{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;opacity:.78}.chat-shift-top strong{display:block;font-size:18px;margin-top:2px}.chat-shift-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.14);font-size:21px}
.chat-shift-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;padding:16px 18px}.chat-shift-details>div{display:flex;flex-direction:column;gap:3px}.chat-shift-details .wide{grid-column:1/-1;padding-top:8px;border-top:1px solid #edf1ef}.chat-shift-details small{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#6b7b75;font-weight:700}.chat-shift-details b,.chat-shift-details span{font-size:14px;line-height:1.4}
.chat-shift-nav{margin:0 18px 14px;border:0;background:#eef5f2;color:#174c3c;border-radius:10px;padding:10px 12px;font-weight:750;cursor:pointer;text-align:left}.chat-shift-nav:hover{background:#e1eee9}
.chat-shift-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 18px 18px;border-top:1px solid #edf1ef}.chat-shift-accept,.chat-shift-reject{border:0;border-radius:11px;padding:13px 14px;color:#fff;font-weight:850;cursor:pointer;min-height:46px}.chat-shift-accept{background:#198754}.chat-shift-accept:hover{background:#146c43}.chat-shift-reject{background:#c9343a}.chat-shift-reject:hover{background:#a9252b}.chat-shift-accept:disabled,.chat-shift-reject:disabled{opacity:.6;cursor:wait}
.chat-shift-filled{display:flex;flex-direction:column;gap:4px;padding:15px 18px;background:#edf9f1;color:#1e6640;border-top:1px solid #cfe9d8}.chat-shift-filled strong{font-size:15px}.chat-shift-filled small{margin-top:5px;color:#4f685b}.chat-shift-rejected,.chat-shift-closed{padding:14px 18px;border-top:1px solid #eee;font-weight:750}.chat-shift-rejected{background:#fff3f3;color:#9f2930}.chat-shift-closed{background:#f4f5f5;color:#66716d}
@media(max-width:760px){.chat-shift-card{width:100%;border-radius:14px}.chat-shift-details{grid-template-columns:1fr}.chat-shift-details .wide{grid-column:auto}.chat-shift-actions{grid-template-columns:1fr}.chat-shift-accept,.chat-shift-reject{width:100%;min-height:50px;font-size:14px}.chat-shift-nav{width:calc(100% - 36px)}}


/* v1.4.42 – PF Chat luxe interface */
.chat-layout{grid-template-columns:minmax(245px,310px) minmax(0,1fr);gap:16px;background:linear-gradient(180deg,#f6f8f7,#eef3f0);padding:14px;border:1px solid #dfe8e3;border-radius:22px;box-shadow:0 16px 40px rgba(22,55,44,.08)}
.chat-people,.chat-panel{border:0!important;border-radius:18px!important;box-shadow:0 8px 26px rgba(22,55,44,.07)!important;background:rgba(255,255,255,.97)!important}
.chat-people{padding:12px!important}.chat-people h3{margin:4px 8px 12px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#73817b}
.chat-person{width:100%;display:flex;align-items:center;gap:11px;border:0;background:transparent;padding:10px;border-radius:13px;text-align:left;color:#1b2a25;cursor:pointer;transition:.15s ease;margin:2px 0}
.chat-person:hover{background:#f0f5f2;transform:translateY(-1px)}.chat-person.active{background:linear-gradient(135deg,#173f35,#245b4b);color:#fff;box-shadow:0 8px 18px rgba(23,63,53,.18)}
.chat-person-avatar,.chat-group-avatar{flex:0 0 42px;width:42px;height:42px;border-radius:13px!important;display:grid!important;place-items:center;background:#e5eee9;color:#173f35;font-weight:850;font-size:13px;margin:0!important;object-fit:cover}.chat-person.active .chat-person-avatar,.chat-person.active .chat-group-avatar.placeholder{background:rgba(255,255,255,.16);color:#fff}
.chat-person-meta{display:flex;flex-direction:column;min-width:0;flex:1}.chat-person-meta strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-person-meta small{font-size:11px;color:#78847f;margin-top:2px}.chat-person.active .chat-person-meta small{color:rgba(255,255,255,.72)}.chat-person-arrow{font-size:24px;opacity:.45}
.chat-panel{padding:0!important;display:flex;flex-direction:column}.chat-head{padding:16px 18px!important;border-bottom:1px solid #e8eeeb;background:linear-gradient(180deg,#fff,#fbfcfb);border-radius:18px 18px 0 0}.chat-head h2{margin:1px 0 0;font-size:19px}.chat-kicker{font-size:10px;font-weight:850;letter-spacing:.12em;color:#7a8983}.live-dot{background:#e9f7ef;color:#18864f;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:850}
.chat-stream{padding:18px!important;background:radial-gradient(circle at top left,#f8fbf9,#f2f6f4 70%)}.chat-msg{max-width:min(72%,680px);padding:11px 13px!important;border-radius:16px!important;box-shadow:0 4px 14px rgba(18,43,34,.06);margin-bottom:10px!important}.chat-msg.mine{margin-left:auto;background:#e3f2eb!important;border-bottom-right-radius:5px!important}.chat-msg.theirs{background:#fff!important;border-bottom-left-radius:5px!important}.chat-msg>small{display:block;margin-top:6px;font-size:10px;color:#7a8782}
.chat-compose{padding:12px 14px!important;border-top:1px solid #e5ece8;box-shadow:0 -8px 22px rgba(22,55,44,.04);border-radius:0 0 18px 18px}.chat-compose textarea{border-radius:13px!important;background:#f8faf9!important;border:1px solid #dbe5e0!important;padding:12px!important}.chat-standard-select{min-height:42px;border:1px solid #d8e3de;border-radius:11px;background:#fff;padding:8px 10px;color:#24453a;font-weight:700;max-width:250px}.chat-standard-settings{margin:18px 0;padding:16px;border:1px solid #dfe7e3;border-radius:14px;background:#f8faf9}.chat-standard-settings h3{margin-top:0}.chat-standard-settings label{display:block;margin:11px 0;font-weight:700}.chat-standard-settings textarea{display:block;width:100%;margin-top:5px;min-height:62px}
@media(max-width:760px){.chat-layout{display:flex!important;flex-direction:column;padding:8px;gap:8px;border-radius:15px}.chat-people{display:flex;overflow-x:auto;max-height:none!important;padding:7px!important}.chat-people h3{display:none}.chat-person{min-width:190px;max-width:230px}.chat-panel{border-radius:15px!important}.chat-head{padding:11px 13px!important}.chat-stream{padding:10px!important}.chat-msg{max-width:88%}.chat-compose{padding:8px!important}.chat-standard-select{grid-column:1/-1;max-width:none;width:100%}}

/* v1.4.43 – harde open-dienst status/snelheid */
.chat-shift-card.compact-filled{max-width:520px;padding:0;border:1px solid #cfe8d8;background:#f2fbf5;box-shadow:0 8px 24px rgba(18,32,25,.08)}
.chat-shift-card.compact-filled .chat-shift-filled{padding:16px 18px;margin:0;border-radius:12px;background:#effaf2;color:#175b36}
.chat-shift-card.compact-filled .chat-shift-filled strong{font-size:15px}

/* v1.4.45 PF Chat - planner/beheer bericht verwijderen */
.chat-msg{position:relative}
.chat-message-delete{margin-top:6px;border:0;background:transparent;color:#9b1c1c;font-size:11px;font-weight:700;cursor:pointer;padding:3px 6px;border-radius:7px;opacity:.72}
.chat-message-delete:hover{background:#fff0f0;opacity:1}
@media(max-width:700px){.chat-message-delete{font-size:12px;padding:7px 9px}}

/* v1.4.46: open diensten volledig leesbaar op mobiel */
.chat-msg.has-shift{max-width:min(100%,760px);width:min(100%,760px)}
.mobile-chat-row small{white-space:normal;overflow:visible;text-overflow:clip;display:block;line-height:1.4;margin-top:4px}
@media(max-width:760px){.chat-msg.has-shift{max-width:100%!important;width:100%!important;margin-left:0!important;margin-right:0!important}.chat-msg.has-shift .chat-shift-card{width:100%!important;max-width:none!important}.chat-shift-details b,.chat-shift-details span{overflow-wrap:anywhere}.mobile-chat-row{align-items:flex-start}.mobile-chat-row span{min-width:0;flex:1}}

/* v1.4.49 – stabiele mobiele chat + volledige open-dienstinformatie */
.mobile-shift-preview{display:flex;flex-direction:column;gap:3px;white-space:normal}.mobile-shift-preview>b{font-size:13px}.mobile-shift-preview>span{display:block;line-height:1.35}
@media(max-width:760px){.chat-layout{height:calc(100svh - 145px)!important;min-height:480px}.chat-panel{min-height:0!important}.chat-stream{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important}.chat-compose{position:sticky!important;bottom:0!important}.mobile-chat-row small{max-height:none!important}.mobile-shift-preview{font-size:12px}}
/* v1.4.50 – luxe Open diensten beheer */
.open-shifts-dialog{width:min(1080px,94vw)!important;max-width:1080px!important}.open-shifts-dialog .modal-body{padding:0!important}.open-admin-shell{padding:22px;background:#f4f7f5}.open-admin-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}.open-admin-summary>div{background:#173f35;color:#fff;border-radius:16px;padding:16px 18px;display:flex;flex-direction:column}.open-admin-summary strong{font-size:25px}.open-admin-summary span{font-size:12px;opacity:.8}.open-admin-help{background:#fff;border:1px solid #dfe7e3;border-radius:12px;padding:12px 14px;margin-bottom:14px;color:#56645e}.open-admin-list{display:grid;gap:14px}.open-admin-card{background:#fff;border:1px solid #dfe7e3;border-radius:18px;overflow:hidden;box-shadow:0 8px 24px rgba(23,63,53,.07)}.open-admin-card-head{padding:16px 18px;background:#173f35;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:14px}.open-admin-card-head h3{margin:2px 0 0;font-size:18px}.open-admin-kicker{font-size:10px;font-weight:800;letter-spacing:.12em;opacity:.72}.open-admin-status{font-size:12px;font-weight:800;padding:7px 10px;border-radius:999px;background:#e7f3ee;color:#173f35}.open-admin-status.open{background:#eef000;color:#17231f}.open-admin-grid{padding:16px 18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;border-bottom:1px solid #edf1ef}.open-admin-grid>div{display:flex;flex-direction:column;gap:3px}.open-admin-grid .wide{grid-column:1/-1}.open-admin-grid small,.open-admin-share label{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#7b8882;font-weight:700}.open-admin-share{padding:14px 18px;display:flex;align-items:end;justify-content:space-between;gap:16px}.open-admin-share label{display:flex;flex-direction:column;gap:5px;min-width:220px}.open-admin-share select{min-height:40px}.open-admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.open-admin-shared{padding:0 18px 15px;font-size:12px;color:#27745d;font-weight:700}.open-admin-reopen{margin-top:18px;background:#fff;border:1px solid #dfe7e3;border-radius:14px;padding:12px 14px}.open-admin-reopen summary{font-weight:800;cursor:pointer}.open-admin-closed{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #edf1ef}.open-admin-closed span{display:flex;flex-direction:column}.open-admin-closed small{color:#6d7974;margin-top:2px}
@media(max-width:760px){.open-shifts-dialog{width:96vw!important;max-height:92svh!important}.open-admin-shell{padding:12px}.open-admin-summary{grid-template-columns:1fr 1fr 1fr;gap:6px}.open-admin-summary>div{padding:11px 9px;border-radius:12px}.open-admin-summary strong{font-size:20px}.open-admin-summary span{font-size:10px}.open-admin-card-head{padding:14px}.open-admin-grid{grid-template-columns:1fr 1fr;padding:14px;gap:11px}.open-admin-share{align-items:stretch;flex-direction:column;padding:14px}.open-admin-share label{min-width:0}.open-admin-actions{display:grid;grid-template-columns:1fr}.open-admin-actions .button{width:100%;min-height:44px}.open-admin-closed{align-items:stretch;flex-direction:column}.open-admin-closed .button{width:100%}}

/* v1.4.51 – één open-dienstweergave desktop/mobiel + stabiele mobiele viewport */
.chat-shift-available{display:flex;flex-direction:column;gap:4px;padding:14px 18px;border-top:1px solid #cfe8d8;background:#edf9f1;color:#17643e}.chat-shift-available strong{font-size:13px}.chat-shift-available span{font-size:12px;line-height:1.4}
@media(max-width:760px){
 body:has(.chat-layout){overflow:auto!important}
 .chat-layout{height:auto!important;min-height:0!important;max-height:none!important}
 .chat-panel{height:auto!important;min-height:620px!important;max-height:none!important}
 .chat-stream{height:min(58vh,620px)!important;min-height:340px!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
 .chat-compose{position:relative!important;bottom:auto!important}
 .chat-msg.has-shift,.chat-msg.has-shift.mine,.chat-msg.has-shift.theirs{width:100%!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;padding:0!important;background:transparent!important;box-shadow:none!important}
 .chat-msg.has-shift>.chat-shift-card{width:100%!important;max-width:100%!important;margin:0!important}
 .chat-shift-top{padding:14px 15px}.chat-shift-details{padding:14px 15px;gap:10px}.chat-shift-nav{margin:0 15px 12px;width:calc(100% - 30px)}
 .chat-shift-actions{padding:12px 15px 15px;display:flex!important;flex-direction:column!important}.chat-shift-actions button{width:100%!important}
}

/* v1.4.52 – nieuwste chat direct zichtbaar + live sync */
.chat-head-actions{display:flex;align-items:center;gap:8px}.chat-latest-button{border:1px solid #dce6e1;background:#fff;color:#173b2f;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800;cursor:pointer}.chat-latest-button:hover{background:#f0f6f3}.chat-stream{scroll-behavior:auto}
@media(max-width:760px){.chat-latest-button{padding:7px 10px;font-size:11px}.chat-head-actions{gap:6px}}

/* v1.4.64 - extra pagina verwijderen altijd zichtbaar */
.pfp-page-actions{display:flex!important;gap:8px!important;flex-wrap:wrap!important;align-items:center!important}.button.pfp-delete-page{display:inline-flex!important;visibility:visible!important;opacity:1!important;background:#b42318!important;color:#fff!important;border:1px solid #b42318!important;font-weight:700!important}.button.pfp-delete-page:hover{background:#8f1c13!important;color:#fff!important}

/* v1.4.71 - snelle diensteditor met altijd zichtbare opslag */
dialog.service-editor-dialog{width:min(900px,calc(100vw - 26px));max-height:92vh;overflow:hidden}
dialog.service-editor-dialog .dialog-body{padding:0;max-height:calc(92vh - 66px);overflow:hidden}
dialog.service-editor-dialog #service-page-form{display:flex;flex-direction:column;max-height:calc(92vh - 66px);overflow:hidden}
dialog.service-editor-dialog #service-page-form>.form-grid{padding:24px;overflow:auto;-webkit-overflow-scrolling:touch;flex:1;min-height:0}
dialog.service-editor-dialog .service-editor-actions{position:sticky;bottom:0;z-index:5;flex:0 0 auto;justify-content:flex-end;margin:0;padding:14px 24px;background:#fff;border-top:1px solid var(--border);box-shadow:0 -10px 28px rgba(18,34,27,.08)}
dialog.service-editor-dialog .service-editor-actions .button.primary{min-width:150px;font-weight:800}
@media(max-width:580px){dialog.service-editor-dialog{max-height:96dvh}dialog.service-editor-dialog .dialog-body,dialog.service-editor-dialog #service-page-form{max-height:calc(96dvh - 62px)}dialog.service-editor-dialog #service-page-form>.form-grid{padding:16px}dialog.service-editor-dialog .service-editor-actions{padding:12px 16px}.service-editor-actions .button{flex:1}}

/* v1.4.77: keep the management navigation permanently visible while pages scroll.
   The sidebar has its own scroll area for long navigation lists. */
@media (min-width:1101px) {
  body:not(.client-pro):not(.roster-only) .app-shell {
    grid-template-columns:235px minmax(0,1fr);
  }
  body:not(.client-pro):not(.roster-only) .app-shell > .sidebar {
    position:fixed !important;
    inset:0 auto 0 0;
    width:235px;
    height:100vh;
    height:100dvh;
    overflow-y:auto;
    overscroll-behavior:contain;
    z-index:100;
  }
  body:not(.client-pro):not(.roster-only) .app-shell > .workspace {
    grid-column:2;
    min-width:0;
  }
}
