:root{--ink:#1b1b1d;--muted:#6b6b70;--bg:#f4f4f5;--panel:#fff;--line:#dedee2;--brand:#d51048;--brand2:#b80d3e;--brand-soft:#fde6ed;--shadow:0 12px 35px rgba(22,22,24,.09);--danger:#8e2434}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(145deg,#123a35,#2b655c)}.auth-card{width:min(420px,100%);background:#fff;border-radius:24px;padding:32px;box-shadow:0 30px 90px rgba(0,0,0,.25)}.auth-card h1{margin:12px 0 4px}.auth-card p{margin:0 0 22px;color:var(--muted)}.logo-mark{width:54px;height:54px;border-radius:16px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:900;font-size:20px}.auth-card label,.form-panel label{display:block;font-size:13px;font-weight:750;color:var(--muted);margin:13px 0}.auth-card input,.form-panel input,.form-panel select,.filters input,.filters select,.toolbar select,.import-grid select,.import-grid input,textarea{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:11px;padding:12px;background:#fbfdfc;color:var(--ink)}button,.button{border:0;border-radius:11px;padding:11px 15px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.primary{background:var(--brand);color:#fff}.primary:hover{background:var(--brand2)}.secondary{background:#e5eeeb;color:var(--ink)}.ghost{background:rgba(255,255,255,.13);color:#fff}.hint{margin-top:18px;padding:12px;border-radius:12px;background:#edf3f1;font-size:12px}.topbar{position:sticky;top:0;z-index:30;background:var(--brand);color:#fff;padding:16px max(18px,calc((100vw - 1240px)/2));display:flex;justify-content:space-between;align-items:center}.brand{font-size:22px;font-weight:900}.subtitle{font-size:12px;opacity:.75}.userbox{display:flex;align-items:center;gap:12px;font-size:13px}.shell{max-width:1240px;margin:auto;padding:20px}.tabs{display:flex;gap:8px;overflow:auto;margin-bottom:18px}.tab{background:transparent;color:var(--muted);white-space:nowrap}.tab.active{background:var(--brand);color:#fff}.view{display:none}.view.active{display:block}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow);margin-bottom:18px}.panel h2{margin:0 0 5px}.panel p{margin:0;color:var(--muted)}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:1fr 1fr}.grid.compact{gap:10px}.panel-head,.dossier-head,.toolbar,.filters{display:flex;align-items:center;justify-content:space-between;gap:12px}.filters{justify-content:flex-start;flex-wrap:wrap;margin:18px 0}.filters>*{max-width:250px;margin:0}.toolbar{justify-content:flex-start;flex-wrap:wrap;margin:14px 0}.inline{display:flex;align-items:center;gap:8px}.inline input{width:auto}.list{display:grid;gap:10px;margin-top:14px}.list-item{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:14px;background:#fcfefd}.list-title{font-weight:850}.list-meta{font-size:12px;color:var(--muted);margin-top:3px}.status-pill{padding:7px 10px;border-radius:999px;background:#dce9e6;font-size:12px;font-weight:850;white-space:nowrap}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check-grid label{display:flex;align-items:center;gap:8px;margin:0;padding:9px;border:1px solid var(--line);border-radius:10px}.check-grid input{width:auto;margin:0}fieldset{border:1px solid var(--line);border-radius:12px;padding:12px;margin:14px 0}legend{font-weight:800;font-size:13px}.location-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.location-card{border:2px solid transparent;border-radius:15px;padding:15px;background:#fff;box-shadow:var(--shadow);cursor:pointer;position:relative}.location-card:hover{transform:translateY(-1px)}.location-card input[type=checkbox]{position:absolute;right:12px;top:12px;width:18px;height:18px}.location-card .code{font-size:18px;font-weight:900;padding-right:28px}.location-card .meta{font-size:12px;color:var(--muted);margin-top:5px}.location-card .status{margin-top:13px;font-size:12px;font-weight:900}.status-not_started{background:#eef0f1;border-color:#cdd2d4}.status-lmra_done{background:#e4f1fb;border-color:#9cc9e5}.status-precheck_done{background:#dcecff;border-color:#77aee5}.status-in_progress{background:#fff0d5;border-color:#eab85a}.status-installation_done{background:#eee5fa;border-color:#b69add}.status-postcheck_done{background:#ddf4f1;border-color:#78c9bf}.status-work_blocked{background:#ffd9d9;border-color:#c83e3e}.status-released{background:#e7f0ff;border-color:#739bd1}.status-complete{background:#ddf3e5;border-color:#75ba8d}.status-ready_complete{background:#cce9d7;border-color:#3d9360}.status-ready_attention{background:#fff0d5;border-color:#d49a32}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:var(--muted);font-weight:850}.empty{text-align:center;padding:70px 20px}.import-preview{margin-top:18px}.preview-table{width:100%;border-collapse:collapse;font-size:13px}.preview-table th,.preview-table td{padding:9px;border-bottom:1px solid var(--line);text-align:left}.error-box{padding:12px;background:#ffe1e1;border:1px solid #e49b9b;border-radius:12px;margin:10px 0}.ok-box{padding:12px;background:#ddf3e5;border:1px solid #8dc7a2;border-radius:12px;margin:10px 0}.toast{position:fixed;right:20px;bottom:20px;background:#172a27;color:#fff;padding:13px 16px;border-radius:12px;z-index:60;box-shadow:var(--shadow)}textarea{min-height:120px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.stat strong{font-size:28px;display:block}.stat span{font-size:12px;color:var(--muted)}@media(max-width:900px){.grid.two{grid-template-columns:1fr}.location-grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.shell{padding:12px}.panel{padding:16px}.location-grid{grid-template-columns:1fr}.panel-head,.dossier-head{align-items:flex-start;flex-direction:column}.filters>*{max-width:none;width:100%}.userbox span{display:none}.check-grid{grid-template-columns:1fr}}

.login-status{min-height:1.4em;margin-top:.75rem;font-size:.95rem}.login-status.error{color:#b42318}.login-status.working{color:#315c55}button:disabled{opacity:.65;cursor:wait}

/* Zorg dat het HTML hidden-attribuut altijd wint van component-stijlen. */
[hidden] { display: none !important; }

.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.list-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.assigned-badge,.unassigned-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;margin-top:9px}.assigned-badge{background:#d7eee5;color:#205b43;border:1px solid #8dc7aa}.unassigned-badge{background:#f2e6cf;color:#795416;border:1px solid #ddbd7d}.info-box{margin-top:16px;padding:14px;border-radius:12px;background:#edf3f1;border:1px solid var(--line);font-size:13px;color:var(--muted)}.location-card .card-actions{display:flex;gap:8px;margin-top:12px}.location-card .card-actions button{padding:7px 10px;font-size:11px}.location-card.is-assigned{box-shadow:0 0 0 3px rgba(61,147,96,.12),var(--shadow)}

/* v0.3.7 modale bewerkvensters */
.app-dialog{border:0;padding:0;background:transparent;max-width:none;max-height:none}.app-dialog::backdrop{background:rgba(8,30,27,.62);backdrop-filter:blur(3px)}.dialog-card{width:min(560px,calc(100vw - 28px));max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:22px;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.3)}.dialog-card label{display:block;font-size:13px;font-weight:750;color:var(--muted);margin:13px 0}.dialog-card input,.dialog-card select{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:11px;padding:12px;background:#fbfdfc;color:var(--ink)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}.dialog-head h2{margin:2px 0 0}.icon-button{width:38px;height:38px;padding:0;border-radius:50%;background:#e5eeeb;color:var(--ink);font-size:24px;line-height:1}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.switch-row{display:flex!important;align-items:center;gap:10px}.switch-row input{width:18px!important;height:18px;margin:0!important}.optional{font-weight:500;color:var(--muted)}.form-status{min-height:1.4em;margin-top:8px;font-size:13px}.form-status.error{color:#b42318}.form-status.working{color:#315c55}

/* v0.3.9 werkregistratie */
.danger-button{background:#a33131;color:#fff}.danger-button:hover{background:#852727}.dossier-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dossier-status{border:1px solid rgba(24,48,45,.14)}.progress-panel{padding-bottom:18px}.progress-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px}.progress-summary span{font-weight:900;color:var(--brand)}.progress-bar{height:10px;background:#e1ebe8;border-radius:999px;overflow:hidden}.progress-bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--brand),#4d9b85);border-radius:inherit;transition:width .25s ease}.workflow-stepper{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:16px}.workflow-step{display:flex;align-items:center;justify-content:flex-start;gap:10px;text-align:left;padding:11px;background:#f4f7f6;color:var(--ink);border:1px solid var(--line);min-width:0}.workflow-step strong,.workflow-step small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workflow-step small{font-size:10px;color:var(--muted);margin-top:2px}.workflow-step .step-number{flex:0 0 30px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#dce7e3;font-weight:950}.workflow-step.active{border-color:var(--brand);box-shadow:0 0 0 2px rgba(18,58,53,.1);background:#fff}.workflow-step.completed{background:#e1f2e8;border-color:#8ac2a0}.workflow-step.completed .step-number{background:#2f855a;color:#fff}.workflow-step.locked{opacity:.52;cursor:not-allowed}.workflow-panel{padding:0;overflow:hidden}.step-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:22px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#f9fbfa)}.step-heading h2{margin:3px 0 6px}.step-heading p{max-width:760px}.step-completed-info{margin:16px 22px 0;padding:11px 13px;background:#e1f2e8;border:1px solid #9ccab0;border-radius:11px;font-size:12px;font-weight:750}.question-list{display:grid;gap:13px;padding:22px}.question-card{border:1px solid var(--line);border-radius:15px;padding:16px;background:#fff}.question-card.question-answered,.question-card.question-complete{border-color:#9bc9b1;background:#fbfefc}.question-head{display:flex;gap:12px;align-items:flex-start}.question-number{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:9px;background:#e5eeeb;font-size:12px;font-weight:950}.question-head h3{font-size:15px;margin:1px 0 4px}.question-head p{font-size:11px;margin:0;color:var(--muted)}.answer-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0 10px 42px}.answer-button{background:#edf2f0;color:var(--ink);border:1px solid var(--line);padding:9px 12px}.answer-button.selected{box-shadow:0 0 0 2px rgba(18,58,53,.12);border-color:var(--brand);background:#dfece8}.answer-button.answer-no.selected{border-color:#a33131;background:#f9dddd;color:#792222}.answer-button.answer-na.selected{border-color:#8b774d;background:#f4eedf}.question-comment{display:block;margin:10px 0 0 42px;color:var(--muted);font-size:12px;font-weight:750}.question-comment textarea{min-height:76px;margin-top:6px}.required-comment{color:#8c3c24}.conditional-evidence{margin:13px 0 0 42px;padding:13px;border:1px solid #e3aa8c;background:#fff4ed;border-radius:12px}.conditional-evidence>strong{display:block;font-size:12px;color:#8c3c24;margin-bottom:9px}.photo-component{margin:14px 0 0 42px}.conditional-evidence .photo-component{margin-left:0}.photo-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}.photo-card{position:relative;margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#f5f8f7}.photo-card img{width:100%;height:130px;display:block;object-fit:cover}.photo-card figcaption{padding:8px;display:grid;gap:2px}.photo-card figcaption strong{font-size:11px}.photo-card figcaption span{font-size:9px;color:var(--muted)}.photo-delete{position:absolute;right:6px;top:6px;width:30px;height:30px;padding:0;border-radius:50%;background:rgba(125,26,26,.9);color:#fff;font-size:20px}.photo-add{font-size:12px}.validation-box{margin:0 22px 18px;padding:14px;border-radius:12px;background:#ffe7e2;border:1px solid #e4a18e;color:#712d22}.validation-box ul{margin:8px 0 0;padding-left:20px}.validation-box li{margin:4px 0}.step-actions{display:flex;justify-content:flex-end;padding:0 22px 22px}.finalized-box{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px;background:#dff1e6;border:1px solid #8fc2a3;border-radius:12px}.finalized-box span{font-size:12px;color:var(--muted)}.mini-progress{height:5px;background:rgba(24,48,45,.11);border-radius:999px;overflow:hidden;margin-top:10px}.mini-progress span{display:block;height:100%;background:var(--brand)}.mini-progress-text{font-size:9px;color:var(--muted);margin-top:3px}.table-scroll{overflow:auto}.auth-card button.primary{width:100%;margin-top:6px}

@media(max-width:1000px){.workflow-stepper{grid-template-columns:repeat(3,minmax(0,1fr))}.photo-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.workflow-stepper{display:flex;overflow:auto;padding-bottom:3px}.workflow-step{min-width:160px}.photo-list{grid-template-columns:repeat(2,minmax(0,1fr))}.answer-buttons,.question-comment,.photo-component,.conditional-evidence{margin-left:0}.step-heading{flex-direction:column}.dossier-head-actions{width:100%;justify-content:space-between}.photo-card img{height:150px}}
@media(max-width:430px){.photo-list{grid-template-columns:1fr}.answer-button{flex:1}.question-list{padding:14px}.step-heading{padding:17px}.step-actions{padding:0 14px 17px}.validation-box{margin:0 14px 16px}.photo-card img{height:210px}}

/* v0.3.10 toewijzing, zoekrangschikking en procesvolgorde */
.workflow-stepper{grid-template-columns:repeat(4,minmax(0,1fr))}
.assignment-toolbar{align-items:flex-end;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f7faf9}
.assignment-toolbar .select-all{padding:0 6px 11px 0}
.assignment-select{display:grid;gap:6px;min-width:245px;font-size:12px;font-weight:850;color:var(--ink)}
.assignment-select span{display:block}
.assignment-select small{font-weight:600;color:var(--muted)}
.assignment-select select{margin:0;background:#fff;border:2px solid #9bb9b2}
.installer-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;margin-top:7px;background:#e4e9f7;color:#334b7b;border:1px solid #a7b7dc}
.location-card.search-match{box-shadow:0 0 0 4px rgba(18,58,53,.2),var(--shadow);transform:translateY(-1px)}
.search-hint{margin:-7px 0 16px!important;padding:9px 12px;border-radius:10px;background:#e8f0ed;color:#315c55!important;font-size:12px}
.workflow-section{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin:5px 0 -2px;padding:10px 3px 7px;border-bottom:2px solid #dce7e3;color:var(--brand)}
.workflow-section strong{font-size:15px}.workflow-section span{font-size:11px;color:var(--muted);text-align:right}
.question-card.question-locked{background:#f4f6f5;opacity:.78}
.prerequisite-message{margin:12px 0 0 42px;padding:9px 11px;border-radius:10px;background:#fff3d8;border:1px solid #e2c27a;color:#74551d;font-size:12px;font-weight:750}
.optional-evidence{margin:13px 0 0 42px;padding:13px;border:1px dashed #9bb9b2;background:#f8fbfa;border-radius:12px}.optional-evidence>strong{display:block;font-size:12px;color:#315c55;margin-bottom:9px}.optional-evidence .photo-component{margin-left:0}
.step-enter{animation:stepEnter .25s ease both}@keyframes stepEnter{from{opacity:.2;transform:translateX(14px)}to{opacity:1;transform:none}}
@media(max-width:700px){.assignment-toolbar{align-items:stretch}.assignment-select{min-width:100%;width:100%}.workflow-section{align-items:flex-start;flex-direction:column}.workflow-section span{text-align:left}.prerequisite-message,.optional-evidence{margin-left:0}}

/* v0.3.11 camera, selectie, groepering en mediareeksen */
.answer-button.selected{background:#123a35!important;color:#fff!important;border-color:#123a35!important;box-shadow:0 0 0 4px rgba(18,58,53,.22)!important;transform:translateY(-1px);font-weight:950}
.answer-button.selected::before{content:'✓';display:inline-grid;place-items:center;width:20px;height:20px;margin-right:7px;border-radius:50%;background:#fff;color:#123a35;font-weight:1000}
.answer-button.answer-no.selected,.answer-button.answer-stop_work.selected{background:#9d2929!important;border-color:#9d2929!important;color:#fff!important;box-shadow:0 0 0 4px rgba(157,41,41,.2)!important}
.answer-button.answer-resolved.selected{background:#356d5a!important;border-color:#356d5a!important}
.answer-button.answer-notify_continue.selected{background:#9a641a!important;border-color:#9a641a!important}
.dossier-filters{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}
.dossier-group{grid-column:1/-1;margin:8px 0 22px}.dossier-group-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;margin-bottom:12px;border-radius:12px;background:#e8f0ed;border:1px solid #bdcec8}.dossier-group-head h3{margin:0;color:#123a35}.dossier-group-head span{font-size:12px;font-weight:850;color:#4f6862}
.sequence-note{padding:10px 12px;border-radius:10px;background:#edf3f1;color:#47605a;font-size:12px}.media-sequence-start{margin-top:8px}
.camera-dialog{width:100%;height:100%;margin:0;max-width:none;max-height:none}.camera-dialog::backdrop{background:#06110f}.camera-card{width:100vw;min-height:100vh;background:#071512;color:#fff;padding:calc(14px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.camera-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.camera-head h2{margin:3px 0 5px;color:#fff}.camera-head p{margin:0;color:#c9d9d4}.camera-head .eyebrow{color:#8fd5bd}.camera-head .icon-button{background:#19332d;color:#fff}.camera-stage{position:relative;flex:1;min-height:300px;display:grid;place-items:center;border-radius:18px;overflow:hidden;background:#000}.camera-stage video,.camera-stage img{width:100%;height:100%;max-height:68vh;object-fit:contain;background:#000}.camera-warning{padding:12px 14px;border-radius:12px;background:#643d16;border:1px solid #bd7e35;color:#fff0d5}.camera-status{min-height:24px;color:#c9d9d4;font-size:13px}.camera-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.camera-actions button{min-height:50px}.camera-main-action{min-width:180px;font-size:16px}.camera-countdown{position:absolute;font-size:80px;font-weight:1000;text-shadow:0 4px 18px #000}.camera-card .secondary{background:#dce7e3;color:#123a35}
@media(max-width:700px){.camera-card{padding-left:8px;padding-right:8px}.camera-stage{min-height:52vh}.camera-actions button{flex:1}.camera-main-action{min-width:100%}}


/* v0.3.12 Mijn-Voordeur.nl-huisstijl */
.auth-shell{background:linear-gradient(145deg,#f7f7f8 0%,#ffffff 48%,#fde6ed 100%)}
.auth-card{border:1px solid #e8e8eb;box-shadow:0 26px 80px rgba(35,20,25,.16)}
.company-logo{display:block;max-width:100%;height:auto;object-fit:contain}
.company-logo-login{width:min(100%,360px);max-height:76px;object-position:left center;margin:0 0 20px}
.topbar{background:#fff;color:var(--ink);border-bottom:4px solid var(--brand);box-shadow:0 5px 20px rgba(20,20,22,.08);padding-top:10px;padding-bottom:10px}
.topbar-brand{display:flex;align-items:center;gap:16px;min-width:0}
.company-logo-header{width:260px;max-height:54px;object-position:left center}
.topbar .brand{color:var(--brand);font-size:20px}
.topbar .subtitle{color:var(--muted);opacity:1}
.topbar .ghost{background:#f0f0f2;color:var(--ink)}
.primary,.tab.active{background:var(--brand);color:#fff}
.primary:hover{background:var(--brand2)}
.logo-mark{background:var(--brand)}
.progress-summary span,.workflow-section{color:var(--brand)}
.progress-bar span,.mini-progress span{background:linear-gradient(90deg,var(--brand),#ef5680)}
.workflow-step.active{border-color:var(--brand);box-shadow:0 0 0 3px rgba(213,16,72,.13)}
.answer-button.selected{background:var(--brand)!important;border-color:var(--brand)!important;box-shadow:0 0 0 4px rgba(213,16,72,.18)!important}
.answer-button.selected::before{color:var(--brand)!important}
.location-card.search-match{box-shadow:0 0 0 4px rgba(213,16,72,.17),var(--shadow)}
.camera-card{background:#171719}
.camera-head .eyebrow{color:#ff8eae}
.camera-head .icon-button{background:#38383d}
.camera-card .secondary{background:#efeff1;color:#1b1b1d}
.auth-card input:focus,.form-panel input:focus,.form-panel select:focus,.filters input:focus,.filters select:focus,.toolbar select:focus,textarea:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px rgba(213,16,72,.13)}
@media(max-width:760px){
  .company-logo-header{width:190px;max-height:44px}
  .topbar-brand .brand,.topbar-brand .subtitle{display:none}
}
@media(max-width:430px){
  .company-logo-header{width:155px}
  .company-logo-login{max-height:62px;margin-bottom:16px}
}

/* v0.3.13 proces, draairichting, camerabegeleiding en projectexport */
.topbar{display:grid;grid-template-columns:minmax(240px,1fr) auto minmax(240px,1fr);align-items:center;gap:18px}
.topbar-brand{justify-self:start}.topbar-center{text-align:center;justify-self:center;min-width:170px}.topbar-center .brand{font-size:23px;line-height:1.05}.topbar-center .subtitle{margin-top:4px;font-weight:750}.userbox{justify-self:end}
.dossier-head #dossierMeta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:9px}.dossier-head #dossierMeta span{display:inline-flex;gap:4px;padding:6px 9px;border-radius:9px;background:#f4f4f5;border:1px solid #e4e4e7;font-size:12px;color:var(--muted)}.dossier-head #dossierMeta strong{color:var(--ink)}
.location-structure{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:8px}.location-structure span{padding:6px;border-radius:8px;background:rgba(255,255,255,.58);font-size:10px;color:var(--muted)}.location-structure strong{display:block;color:var(--ink);margin-bottom:2px}
.answer-button.answer-yes.selected,.answer-button.answer-ok.selected{background:#2f8b57!important;border-color:#2f8b57!important;box-shadow:0 0 0 4px rgba(47,139,87,.2)!important}.answer-button.answer-yes.selected::before,.answer-button.answer-ok.selected::before{color:#2f8b57!important}
.answer-button.answer-no.selected,.answer-button.answer-stop_work.selected{background:#b52e39!important;border-color:#b52e39!important;box-shadow:0 0 0 4px rgba(181,46,57,.2)!important}.answer-button.answer-no.selected::before,.answer-button.answer-stop_work.selected::before{color:#b52e39!important}
.answer-button.answer-resolved.selected{background:#31765d!important;border-color:#31765d!important;box-shadow:0 0 0 4px rgba(49,118,93,.18)!important}.answer-button.answer-resolved.selected::before{color:#31765d!important}
.answer-button.answer-notify_continue.selected{background:#a86b16!important;border-color:#a86b16!important;box-shadow:0 0 0 4px rgba(168,107,22,.2)!important}.answer-button.answer-notify_continue.selected::before{color:#a86b16!important}
.answer-button.answer-na.selected{background:#66676c!important;border-color:#66676c!important}.answer-button.answer-na.selected::before{color:#66676c!important}
.subquestion-card{margin-left:42px;border-left:5px solid #aebdb8;background:#fafcfb}.subquestion-card .question-number{background:#dce7e3;color:#315c55}
.sequence-review{grid-column:1/-1;border:1px solid var(--line);border-radius:16px;padding:17px;background:#fafafa}.sequence-review-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.sequence-review-head>div{display:grid;gap:3px}.sequence-review-head span{font-size:12px;color:var(--muted)}.sequence-review-head .status-pill{color:var(--ink)}.sequence-review-head .review-complete{background:#dff1e6;color:#246a45}.sequence-review-groups{display:grid;grid-template-columns:1fr 1fr;gap:18px}.sequence-review-groups h4{margin:0 0 9px;color:var(--brand)}.sequence-review-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.sequence-review-tile{position:relative;min-width:0;border:1px solid var(--line);border-radius:11px;padding:7px;background:#fff;text-align:center}.sequence-review-tile>strong{display:block;font-size:10px;margin:2px 0 6px}.sequence-review-tile img{width:100%;height:85px;object-fit:cover;border-radius:7px}.sequence-side-icon{font-size:13px;color:var(--brand)}.sequence-check{position:absolute;right:3px;top:3px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#36a35f;color:#fff;font-weight:950}.sequence-placeholder{height:85px;border:2px dashed #bfc2c5;border-radius:7px;display:grid;place-items:center;background:#f3f3f4}.sequence-placeholder span{display:block;border:2px solid #777;border-radius:4px}.sequence-placeholder.portrait span{width:24px;height:48px}.sequence-placeholder.landscape span{width:48px;height:28px}.sequence-review-tile em{font-size:9px;color:#9b313d}
.export-options{margin:18px 0}.export-options label,.export-check{font-size:13px;font-weight:800;color:var(--muted)}.export-options select{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:11px;padding:12px;background:#fff}.export-check{display:flex!important;align-items:center;gap:9px;margin:0 0 18px!important}.export-check input{width:18px!important;height:18px;margin:0!important}.form-status.success{color:#246a45;background:#e4f4ea;border:1px solid #a5d2b5;padding:10px;border-radius:9px;margin-top:12px}

/* Begeleide bewijsfotoreeks */
.camera-dialog{background:#f7f7f8}.camera-dialog::backdrop{background:rgba(15,15,17,.92)}.camera-card{width:100vw;min-height:100vh;background:#f7f7f8;color:var(--ink);padding:10px max(12px,env(safe-area-inset-left)) max(12px,env(safe-area-inset-bottom));gap:10px}.camera-topbar{display:flex;align-items:flex-start;justify-content:center;position:relative;min-height:76px}.camera-topbar .icon-button{position:absolute;right:0;top:2px;background:#ececef;color:#222}.camera-sequence-nav{display:flex;align-items:flex-start;justify-content:center;gap:16px;width:min(960px,calc(100% - 60px))}.camera-nav-group{display:flex;align-items:center;gap:8px}.camera-nav-group>span{font-size:11px;font-weight:950;color:var(--brand);margin-right:2px}.camera-nav-divider{width:1px;height:50px;background:#d2d2d6}.camera-nav-step{padding:0;background:transparent;color:#666;display:grid;gap:3px;place-items:center;min-width:48px}.camera-nav-step b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#ddd;color:#333;font-size:12px}.camera-nav-step small{font-size:9px}.camera-nav-step.active b{background:var(--brand);color:#fff;box-shadow:0 0 0 4px rgba(213,16,72,.12)}.camera-nav-step.done b{background:#43a85f;color:#fff}.camera-nav-step.done b::after{content:'✓';position:absolute}.camera-nav-step.done b{font-size:0;position:relative}.camera-layout{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:14px;flex:1;min-height:0}.camera-guide-panel{border:1px solid #ddd;border-radius:16px;background:#fff;padding:20px;display:flex;flex-direction:column;gap:10px;overflow:auto}.camera-side-badge{align-self:flex-start;padding:5px 10px;border-radius:999px;font-size:11px;font-weight:950}.camera-side-badge.outside{background:var(--brand);color:#fff}.camera-side-badge.inside{background:#ededf0;color:#36363a}.camera-step-count{color:var(--brand);font-weight:850;font-size:13px}.camera-guide-panel h2{margin:0;font-size:25px}.camera-guide-panel p{margin:0;color:#555;line-height:1.55}.camera-guide-icons{display:grid;grid-template-columns:105px 1fr;gap:10px;margin-top:6px}.orientation-icon,.door-guide-card{border:1px solid #ddd;border-radius:12px;padding:11px;display:grid;place-items:center;gap:7px;text-align:center;background:#fff}.orientation-icon>span{display:block;border:3px solid #222;border-radius:6px}.orientation-icon.portrait>span{width:34px;height:63px}.orientation-icon.landscape>span{width:65px;height:37px}.orientation-icon strong,.door-guide-card strong{font-size:10px}.door-guide{position:relative;width:76px;height:104px;border:4px solid #777;background:#f0efed;overflow:hidden}.door-leaf{position:absolute;inset:6px;background:#ddd}.door-number{position:absolute;z-index:3;left:-1px;top:34px;font-size:9px;font-weight:950;background:#fff;padding:2px;border:1px solid #555}.door-guide.inside .door-number{display:none}.guide-highlight{position:absolute;z-index:2;left:2px;right:2px;background:rgba(213,16,72,.65);border:2px solid var(--brand)}.zone-total .guide-highlight{top:2px;bottom:2px}.zone-top .guide-highlight{top:2px;height:33%}.zone-middle .guide-highlight{top:33%;height:34%}.zone-bottom .guide-highlight{bottom:2px;height:33%}.camera-tip{padding:12px;border-radius:10px;background:#fde6ed;color:#6f1731;font-size:11px;line-height:1.45}.camera-reference-image{width:100%;height:150px;object-fit:cover;border-radius:11px;border:1px solid #ddd;margin-top:auto}.camera-main-panel{display:flex;flex-direction:column;min-width:0;gap:8px}.camera-stage{position:relative;flex:1;min-height:400px;max-height:none;border-radius:15px;background:#111;overflow:hidden}.camera-stage video,.camera-stage>img{width:100%;height:100%;max-height:none;object-fit:cover}.camera-stage.portrait-frame video,.camera-stage.portrait-frame>img{object-fit:cover}.camera-guide-frame{position:absolute;inset:7%;pointer-events:none;display:grid;place-items:center}.camera-guide-frame span{display:block;border:4px solid rgba(255,255,255,.95);box-shadow:0 0 0 1px rgba(0,0,0,.4),0 2px 12px rgba(0,0,0,.35)}.camera-stage.portrait-frame .camera-guide-frame span{height:90%;aspect-ratio:.67}.camera-stage.landscape-frame .camera-guide-frame span{width:88%;height:34%}.camera-stage.landscape-frame.zone-top .camera-guide-frame{align-items:start;padding-top:5%}.camera-stage.landscape-frame.zone-middle .camera-guide-frame{align-items:center}.camera-stage.landscape-frame.zone-bottom .camera-guide-frame{align-items:end;padding-bottom:5%}.camera-overlay-text{position:absolute;top:12px;left:50%;transform:translateX(-50%);background:rgba(25,25,27,.82);color:#fff;padding:7px 12px;border-radius:999px;font-size:11px;text-align:center;max-width:90%}.camera-status{min-height:22px;color:#555;text-align:center;font-size:12px}.camera-actions{min-height:58px}.camera-shutter{width:64px;height:64px;border-radius:50%;padding:5px;background:#fff;border:4px solid #fff;box-shadow:0 0 0 3px #666}.camera-shutter span{display:block;width:100%;height:100%;border-radius:50%;background:var(--brand)}.camera-actions .primary{min-width:230px}.camera-review-strip{display:flex;gap:7px;overflow:auto;padding:7px 0 2px}.camera-review-item{position:relative;flex:0 0 92px;padding:6px;background:#fff;border:2px solid #ddd;color:#333;display:grid;gap:4px}.camera-review-item.active{border-color:var(--brand);box-shadow:0 0 0 2px rgba(213,16,72,.12)}.camera-review-item img{width:78px;height:50px;object-fit:cover;border-radius:5px}.camera-review-item small{font-size:8px}.camera-review-item b{position:absolute;right:2px;top:2px;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;background:#3da65c;color:#fff}.review-empty{display:block;margin:auto;border:2px solid #888;border-radius:4px}.review-empty.portrait{width:26px;height:50px}.review-empty.landscape{width:58px;height:35px}.camera-warning{background:#fff2d9;color:#754b08;border-color:#e4b968}
@media(max-width:900px){
  .topbar{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
  .company-logo-header{width:210px}
  .camera-layout{grid-template-columns:250px minmax(0,1fr)}
  .camera-guide-panel{padding:14px}
  .sequence-review-groups{grid-template-columns:1fr}
}
@media(max-width:700px){.topbar{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;padding-left:10px;padding-right:10px}.company-logo-header{width:135px}.topbar-center .brand{font-size:17px}.topbar-center .subtitle{font-size:10px}.userbox span{display:none}.camera-card{padding:5px}.camera-topbar{min-height:64px}.camera-sequence-nav{justify-content:flex-start;overflow:auto;width:calc(100% - 48px);padding-bottom:4px}.camera-nav-group>span{display:none}.camera-nav-divider{height:42px}.camera-nav-step{min-width:43px}.camera-layout{display:flex;flex-direction:column}.camera-guide-panel{flex:0 0 auto;padding:11px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}.camera-guide-panel h2{font-size:18px}.camera-guide-panel p{grid-column:2/4;font-size:11px}.camera-guide-icons{grid-column:1/4;display:flex;margin:0}.orientation-icon,.door-guide-card{padding:7px;display:flex;flex:1}.camera-tip{grid-column:1/4;padding:8px}.camera-reference-image{display:none!important}.camera-stage{min-height:54vh}.camera-review-strip{display:none}.camera-actions button{flex:0 1 auto}.camera-actions .primary{min-width:0;flex:1}.camera-shutter{flex:0 0 64px!important}.sequence-review-grid{grid-template-columns:repeat(4,minmax(65px,1fr))}.subquestion-card{margin-left:0}.location-structure{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.company-logo-header{width:105px}.topbar-center .brand{font-size:15px}.topbar-center .subtitle{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.camera-guide-panel{grid-template-columns:auto 1fr}.camera-side-badge,.camera-step-count{font-size:9px}.camera-guide-panel h2{font-size:16px}.camera-guide-icons,.camera-tip{grid-column:1/3}.camera-stage{min-height:58vh}.sequence-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.location-structure{grid-template-columns:1fr}}

/* v0.3.14: opdrachtgever, zes processtappen en vereenvoudigde mobiele camera */
.field-help{margin:0 0 10px!important;font-size:12px;color:var(--muted);line-height:1.45}
.workflow-stepper{grid-template-columns:repeat(6,minmax(0,1fr))}

/* Merkblok exact midden op het scherm; beide regels onderling links uitgelijnd.
   De drie headerdelen krijgen vaste gridkolommen, zodat gebruiker en uitlogknop
   niet in de middelste kolom terechtkomen. */
.topbar{position:sticky;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.topbar-brand{grid-column:1;justify-self:start;min-width:0}
.topbar-center{grid-column:2;position:static;transform:none;justify-self:center;text-align:left;min-width:0;width:max-content}
.topbar-center .brand,.topbar-center .subtitle{text-align:left}
.userbox{grid-column:3;justify-self:end;min-width:0}

/* Antwoordkleuren worden per vraag semantisch bepaald. */
.answer-button.selected.semantic-positive{background:#2f8b57!important;border-color:#2f8b57!important;color:#fff!important;box-shadow:0 0 0 4px rgba(47,139,87,.2)!important}
.answer-button.selected.semantic-positive::before{color:#2f8b57!important}
.answer-button.selected.semantic-negative{background:#b52e39!important;border-color:#b52e39!important;color:#fff!important;box-shadow:0 0 0 4px rgba(181,46,57,.2)!important}
.answer-button.selected.semantic-negative::before{color:#b52e39!important}
.answer-button.selected.semantic-warning{background:#a86b16!important;border-color:#a86b16!important;color:#fff!important;box-shadow:0 0 0 4px rgba(168,107,22,.2)!important}
.answer-button.selected.semantic-warning::before{color:#a86b16!important}
.answer-button.selected.semantic-neutral{background:#66676c!important;border-color:#66676c!important;color:#fff!important;box-shadow:0 0 0 4px rgba(102,103,108,.18)!important}
.answer-button.selected.semantic-neutral::before{color:#66676c!important}

/* Eén controleblok per fotostap, met vier beelden. */
.sequence-review{max-width:100%}
.sequence-review-grid{grid-template-columns:repeat(4,minmax(0,1fr))}

/* Camera: vier foto's per zijde, instructie buiten het camerabeeld, geen hulpkader. */
.camera-dialog{background:#f2f2f4}
.camera-card{display:flex;flex-direction:column;min-height:100dvh;padding:0 12px max(12px,env(safe-area-inset-bottom));background:#f2f2f4}
.camera-topbar{flex:0 0 auto;min-height:96px;margin:0 -12px 10px;padding:10px 56px 8px;background:var(--brand);color:#fff;align-items:center}
.camera-topbar-content{display:grid;justify-items:center;gap:8px;width:100%}
.camera-topbar-content>strong{font-size:17px}
.camera-topbar .icon-button{right:12px;top:12px;background:rgba(255,255,255,.18);color:#fff}
.camera-sequence-nav{width:auto;max-width:100%;gap:20px;justify-content:center;overflow:visible}
.camera-nav-step{color:#fff;min-width:48px}
.camera-nav-step b{background:rgba(255,255,255,.28);color:#fff;border:1px solid rgba(255,255,255,.48)}
.camera-nav-step small{color:#fff;opacity:.94}
.camera-nav-step.active b{background:#fff;color:var(--brand);box-shadow:0 0 0 4px rgba(255,255,255,.18)}
.camera-nav-step.done b{background:#2f8b57;border-color:#2f8b57;color:#fff}
.camera-layout{flex:1;grid-template-columns:minmax(255px,320px) minmax(0,1fr);min-height:0}
.camera-guide-panel{padding:16px;gap:12px;overflow:visible;align-self:start}
.camera-guide-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}
.camera-side-badge{align-self:auto}
.camera-visual-instruction{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.orientation-icon,.door-guide-card{min-height:145px;padding:12px}
.orientation-icon>span{border-color:#252529}
.camera-instruction-copy{display:grid;gap:5px}
.camera-guide-panel h2{font-size:20px;margin:0}
.camera-guide-panel p{font-size:12px;line-height:1.4}
.camera-tip{padding:9px 11px;margin-top:3px}
.door-guide{width:82px;height:116px;border:5px solid #7b7b80;background:#ececef}
.door-leaf{inset:6px;background:#d8d8dc}
.guide-highlight{left:1px;right:1px}
.camera-main-panel{min-height:0}
.camera-stage{min-height:420px;background:#e4e4e7;border-radius:13px}
.camera-stage video,.camera-stage>img{display:block;width:100%;height:100%;object-fit:cover}
.camera-status{padding:2px 6px}
.camera-actions{display:flex;align-items:center;justify-content:center;gap:10px}

@media(max-width:900px){
  .workflow-stepper{display:flex;overflow:auto;padding-bottom:4px}.workflow-step{min-width:150px}
  .camera-layout{grid-template-columns:235px minmax(0,1fr)}
}
@media(max-width:700px){
  .topbar{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);min-height:68px}
  .topbar-center{max-width:120px}
  .topbar-center .brand{font-size:17px}.topbar-center .subtitle{font-size:10px;max-width:120px;white-space:normal;line-height:1.15}
  .camera-card{padding:0 7px max(8px,env(safe-area-inset-bottom))}
  .camera-topbar{margin:0 -7px 7px;padding:8px 48px 7px;min-height:88px}
  .camera-topbar .icon-button{right:8px;top:9px}
  .camera-topbar-content{gap:5px}.camera-topbar-content>strong{font-size:15px}
  .camera-sequence-nav{width:100%;gap:10px;justify-content:space-evenly;padding:0;overflow:visible}
  .camera-nav-step{min-width:52px}.camera-nav-step b{width:28px;height:28px}.camera-nav-step small{font-size:9px}
  .camera-layout{display:flex;flex-direction:column;gap:7px}
  .camera-guide-panel{display:grid;grid-template-columns:1fr;gap:7px;padding:9px;border-radius:12px}
  .camera-guide-meta{grid-column:1}
  .camera-visual-instruction{grid-template-columns:1fr 1fr;gap:8px}
  .orientation-icon,.door-guide-card{min-height:105px;padding:7px;display:grid}
  .orientation-icon.portrait>span{width:27px;height:50px}.orientation-icon.landscape>span{width:54px;height:31px}
  .door-guide{width:57px;height:78px;border-width:4px}.door-leaf{inset:4px}
  .camera-instruction-copy{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:9px;row-gap:2px}
  .camera-guide-panel h2{font-size:15px;white-space:nowrap}.camera-guide-panel p{font-size:10px;line-height:1.3}
  .camera-tip{grid-column:1/-1;padding:7px;font-size:10px}
  .camera-stage{min-height:50dvh;border-radius:10px}
  .camera-review-strip{display:none!important}
  .camera-actions .primary{min-width:0;flex:1}
}
@media(max-width:430px){
  .company-logo-header{width:105px}
  .topbar-center{max-width:105px}
  .topbar-center .brand{font-size:15px}.topbar-center .subtitle{font-size:9px;max-width:105px}
  .userbox .ghost{padding:9px 8px;font-size:10px}
  .camera-topbar{min-height:84px}.camera-sequence-nav{gap:3px}.camera-nav-step{min-width:47px}
  .camera-guide-meta{font-size:10px}.camera-side-badge,.camera-step-count{font-size:9px}
  .camera-visual-instruction{gap:6px}
  .orientation-icon,.door-guide-card{min-height:96px}
  .camera-stage{min-height:49dvh}
  .sequence-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* v0.3.16: tweeregelige processtappen en camera pas openen na instructie */
.workflow-step{min-height:66px;align-items:center}
.workflow-step>span:last-child{min-width:0;flex:1}
.workflow-step strong{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.15;min-height:2.3em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}
.workflow-step small{white-space:nowrap}
.camera-main-panel:has(.camera-stage[hidden]){justify-content:flex-start}
.camera-open-button{align-self:center;min-width:210px;margin:8px auto 0}
.camera-visual-instruction.single-guide{grid-template-columns:minmax(120px,220px);justify-content:start}
.camera-side-badge.generic{background:#ededf0;color:#36363a}
@media(max-width:900px){.workflow-step{min-width:178px}}
@media(max-width:700px){
  .workflow-step{min-width:178px;min-height:72px}
  .workflow-step strong{font-size:12px}
  .camera-visual-instruction.single-guide{grid-template-columns:minmax(105px,160px)}
  .camera-open-button{width:100%;margin-top:4px}
}


/* v0.3.17: nette foto-instructie in staande én liggende telefoonstand. */
.photo-add.primary{background:var(--brand);color:#fff}
.photo-add.primary:hover{background:var(--brand2)}

/* Smalle, staande schermen: alle instructieonderdelen bewust onder elkaar. */
@media (max-width:700px) and (orientation:portrait){
  .camera-card{
    min-height:100dvh;
    height:auto;
    overflow-y:auto;
    padding:0 10px max(14px,env(safe-area-inset-bottom));
  }
  .camera-topbar{
    margin:0 -10px 12px;
    padding:12px 54px 10px;
  }
  .camera-layout{
    display:flex;
    flex-direction:column;
    gap:12px;
    min-height:0;
    width:100%;
  }
  .camera-guide-panel{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    width:100%;
    min-width:0;
    padding:16px;
    overflow:visible;
  }
  .camera-guide-meta{
    display:flex;
    width:100%;
  }
  .camera-visual-instruction{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:stretch;
    gap:12px;
    width:100%;
    min-width:0;
  }
  .camera-visual-instruction.single-guide{
    grid-template-columns:minmax(120px,170px);
    justify-content:start;
  }
  .orientation-icon,.door-guide-card{
    display:grid;
    width:100%;
    min-width:0;
    min-height:150px;
    padding:12px;
  }
  .camera-instruction-copy{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:7px;
    width:100%;
    min-width:0;
  }
  .camera-guide-panel h2{
    width:100%;
    min-width:0;
    margin:0;
    font-size:21px;
    line-height:1.25;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    overflow-wrap:break-word;
  }
  .camera-guide-panel p{
    grid-column:auto;
    width:100%;
    min-width:0;
    margin:0;
    font-size:14px;
    line-height:1.45;
    overflow-wrap:break-word;
  }
  .camera-tip{
    grid-column:auto;
    width:100%;
    font-size:13px;
    line-height:1.4;
  }
  .camera-main-panel{
    flex:0 0 auto;
    width:100%;
    min-width:0;
  }
  .camera-main-panel:has(.camera-stage[hidden]){
    min-height:0;
  }
  .camera-status{
    min-height:0;
    padding:2px 8px;
    font-size:14px;
    line-height:1.35;
  }
  .camera-actions{
    width:100%;
    min-height:0;
  }
  .camera-open-button{
    width:100%;
    min-width:0;
    margin:4px 0 0;
    padding:17px 18px;
    font-size:18px;
  }
  .camera-stage{
    min-height:52dvh;
  }
}

/* Telefoon liggend: instructie links, actie/camera rechts en nergens tekstklem. */
@media (orientation:landscape) and (max-height:620px){
  .camera-card{
    min-height:100dvh;
    height:100dvh;
    overflow:hidden;
  }
  .camera-topbar{
    min-height:66px;
    margin-bottom:7px;
    padding-top:6px;
    padding-bottom:6px;
  }
  .camera-layout{
    display:grid;
    grid-template-columns:minmax(250px,32vw) minmax(0,1fr);
    gap:14px;
    min-height:0;
  }
  .camera-guide-panel{
    min-width:0;
    padding:14px;
    overflow:auto;
  }
  .camera-visual-instruction.single-guide{
    grid-template-columns:minmax(110px,150px);
  }
  .orientation-icon,.door-guide-card{
    min-height:120px;
  }
  .camera-instruction-copy{
    display:flex;
    flex-direction:column;
    gap:6px;
    min-width:0;
  }
  .camera-guide-panel h2{
    font-size:20px;
    line-height:1.2;
    white-space:normal;
    overflow-wrap:break-word;
  }
  .camera-guide-panel p{
    grid-column:auto;
    font-size:13px;
    line-height:1.4;
    overflow-wrap:break-word;
  }
  .camera-main-panel{
    min-height:0;
    justify-content:flex-start;
  }
  .camera-open-button{
    width:min(100%,320px);
    min-width:0;
    padding:15px 20px;
    font-size:17px;
  }
  .camera-stage{
    min-height:0;
    height:100%;
  }
}


/* v0.3.18: exclusieve rollen, monteurfilters en locatie-export */
fieldset[hidden]{display:none!important}
.quick-filter-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0 8px;position:relative;z-index:8}
.quick-filter{position:relative;min-width:0}
.quick-filter-trigger{width:100%;min-height:64px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:10px 36px 10px 13px;background:#fff;border:1px solid var(--line);color:var(--ink);position:relative;text-align:left;box-shadow:0 4px 14px rgba(22,22,24,.05)}
.quick-filter-trigger:after{content:'⌄';position:absolute;right:13px;top:50%;transform:translateY(-50%);font-size:20px;color:var(--brand)}
.quick-filter-trigger span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.quick-filter-trigger b{font-size:14px;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quick-filter-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:220px;max-height:310px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:13px;padding:7px;box-shadow:0 20px 45px rgba(22,22,24,.18);z-index:20}
.quick-filter-option{display:block;width:100%;padding:10px 11px;border-radius:9px;background:#fff;color:var(--ink);font-weight:650;text-align:left}
.quick-filter-option:hover,.quick-filter-option.selected{background:var(--brand-soft);color:var(--brand)}
.work-result-count{margin:8px 0 14px;font-weight:850;color:var(--muted)}
.installer-work-stats{margin:14px 0 4px}
.export-type{margin:18px 0;border:1px solid var(--line);border-radius:13px;padding:14px}
.export-type-options{display:flex;gap:18px;flex-wrap:wrap}
.export-type-options label{display:flex;align-items:center;gap:8px;margin:0;color:var(--ink);font-weight:750}
.export-type-options input{width:auto;margin:0}
#exportLocationRow{display:block;font-size:13px;font-weight:750;color:var(--muted);margin:0 0 18px}
#exportLocationRow select{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:11px;padding:12px;background:#fff}
@media(max-width:760px){
  .quick-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .quick-filter-trigger{min-height:60px;padding:9px 30px 9px 10px}
  .quick-filter-menu{position:fixed;left:12px;right:12px;top:auto;bottom:calc(12px + env(safe-area-inset-bottom));max-height:55dvh;min-width:0;z-index:80}
}
.export-location-list{display:grid;gap:.55rem;margin:.45rem 0 1rem}.export-location-tools{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.export-location-tools span{margin-left:auto;font-weight:700}.export-location-option{display:flex;gap:.65rem;align-items:flex-start;padding:.75rem;border:1px solid #ddd;border-radius:10px;background:#fff}.export-location-option input{margin-top:.2rem}.field-label{font-weight:700;margin-top:.75rem}.return-locations{margin-top:1rem}.client-location-export{margin-top:.6rem}

/* v0.3.21 */
.finalized-action-block{display:grid;gap:12px;width:100%}.finalized-action-block .finalized-box,.finalized-action-block .return-locations{width:100%;margin:0}.finalized-action-block .return-locations{min-height:46px}.step-actions:has(.finalized-action-block){display:block}.client-overview .status{display:none}


/* v0.3.22: apart samenvattingsblok en selectieblok voor monteurs */
.installer-summary-panel{margin-bottom:18px}
.installer-summary-panel .installer-work-stats{margin:16px 0 0}
.work-selection-panel{position:relative}
@media(max-width:600px){.installer-summary-panel,.work-selection-panel{margin-bottom:14px}.installer-summary-panel .stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

.project-dashboard-grid{display:grid;gap:18px}.project-dashboard-card{background:#fff;border:1px solid #e2e2e5;border-radius:16px;padding:20px}.compact-project-stats{margin:16px 0}.project-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-contact-grid>div{background:#f7f7f8;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:5px}.project-contact-grid .wide{grid-column:1/-1}.project-contact-grid span{line-height:1.45}.navigation-link{display:inline-flex;margin-top:14px}.project-contact-card{margin-bottom:16px}.project-contact-card .project-dashboard-card{box-shadow:none}@media(max-width:700px){.project-contact-grid{grid-template-columns:1fr}.project-contact-grid .wide{grid-column:auto}.project-dashboard-card{padding:16px}.compact-project-stats{grid-template-columns:repeat(3,1fr)}}

/* v0.3.24 beheer-dashboard en aandachtspunten */
.admin-total-stats{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:18px}.attention-total{font:inherit;text-align:left;cursor:pointer}.attention-total:hover{border-color:var(--brand)}.attention-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.attention-summary button{padding:7px 10px;background:#f4f4f5;color:var(--ink);border:1px solid var(--line)}.attention-summary button:hover{border-color:var(--brand);color:var(--brand)}.attention-panel{scroll-margin-top:100px}.attention-list{display:grid;gap:12px;margin-top:16px}.attention-card{border:1px solid var(--line);border-radius:14px;padding:15px;background:#fff;display:grid;gap:10px}.attention-card p{color:var(--ink)}.attention-type{justify-self:start;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:850}.attention-type.opmerking{background:#eef0f1}.attention-type.opleverpunt{background:#fff0d5}.attention-type.schade{background:#ffe1e1}.attention-photos{display:flex;gap:8px;flex-wrap:wrap}.attention-photos a{color:var(--brand);font-weight:800;text-decoration:underline}.open-attention-dossier{justify-self:start}@media(max-width:1100px){.admin-total-stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.admin-total-stats{grid-template-columns:repeat(2,1fr)}.attention-summary{align-items:stretch}.attention-summary strong{width:100%}.attention-summary button{flex:1 1 calc(50% - 8px)}}

/* v0.3.26: opdrachtgever-export, blijvende dossierstatus en PWA-installatie */
.install-app-button{width:100%;margin-top:10px}.compact-project-stats.four-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.attention-stat{background:#fff5e7;border-color:#eccb91}.client-project-export{margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fafafa;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.client-export-copy{display:flex;flex-direction:column;gap:4px}.client-export-copy span{font-size:12px;color:var(--muted);line-height:1.45}.client-project-export .form-status,.client-export-downloads{grid-column:1/-1}.client-export-downloads{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding-top:4px}.client-export-downloads p{flex:1 1 100%;font-size:12px;line-height:1.45}.details-saved-status{display:inline-flex;align-items:center;min-height:43px;padding:10px 13px;border-radius:11px;background:#e2f3e8;border:1px solid #96caaa;color:#236044;font-size:12px;font-weight:850}@media(max-width:700px){.compact-project-stats.four-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.client-project-export{grid-template-columns:1fr}.client-project-export>button{width:100%}.client-export-downloads{display:grid;grid-template-columns:1fr}.client-export-downloads button{width:100%}.details-saved-status{width:100%;justify-content:center;text-align:center}}

/* v0.4.1 - offline-first status en gebruikersfilter */
.sync-status-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px max(18px, calc((100vw - 1240px) / 2));
  background: #e8f5ec;
  border-bottom: 1px solid #b9dcc4;
  color: #185c2d;
  min-height: 52px;
}
.sync-status-bar > div { display: flex; flex-direction: column; min-width: 0; }
.sync-status-bar strong { font-size: .95rem; line-height: 1.25; }
.sync-status-bar span { font-size: .78rem; line-height: 1.3; color: inherit; opacity: .82; }
.sync-status-bar.offline { background: #fff4df; border-bottom-color: #edcf91; color: #7d4b00; }
.sync-status-bar.syncing { background: #eaf2ff; border-bottom-color: #b8cbed; color: #174b87; }
.sync-status-bar.error { background: #fff0f2; border-bottom-color: #e5b5bd; color: #8c1d2d; }
.sync-status-bar button { flex: 0 0 auto; min-height: 36px; padding: 7px 12px; }
.status-pill.offline-pending { background: #fff2d8; color: #7c4a00; border-color: #e6c47c; }
.user-list-head { align-items: flex-end; }
.compact-filter { width: min(260px, 100%); margin: 0; }
.compact-filter select { margin-top: 4px; }

@media (max-width: 720px) {
  .sync-status-bar { padding: 9px 14px; gap: 10px; align-items: flex-start; }
  .sync-status-bar button { align-self: center; white-space: nowrap; }
  .user-list-head { align-items: stretch; flex-direction: column; }
  .compact-filter { width: 100%; }
}

/* v0.4.1 - opdrachtgeverexport, compacte dossierweergave en open aandachtspunten */
.client-export-section{margin-bottom:18px}
.client-export-controls{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:12px;align-items:end;max-width:820px}
.client-export-controls label{margin:0}
.client-export-controls button{min-height:45px}
.client-dossier-content{display:grid;gap:16px;margin-top:16px}
.client-dossier-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.client-dossier-summary>div{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:10px;background:#f7f7f8;border:1px solid #e6e6e8;min-width:0}
.client-dossier-summary strong{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.client-dossier-summary span{font-size:13px;font-weight:750;overflow-wrap:anywhere}
.client-dossier-section{padding:18px}
.client-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px}
.client-section-head h2{margin:0}
.client-section-head span{font-size:11px;color:var(--muted);font-weight:750;text-align:right}
.client-answer-table{border:1px solid var(--line);border-radius:11px;overflow:hidden}
.client-answer-header,.client-answer-row{display:grid;grid-template-columns:minmax(0,1fr) 110px;column-gap:12px;align-items:center;padding:8px 11px}
.client-answer-header{background:#f0f2f2;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.client-answer-header strong:last-child{text-align:center}
.client-answer-row{border-top:1px solid var(--line);font-size:12px;line-height:1.35}
.client-answer-question{min-width:0}
.client-answer-value{text-align:center;font-weight:900;padding:5px 8px;border-radius:8px;background:#eef1f0}
.client-answer-value.semantic-positive{background:#e2f3e8;color:#236044}
.client-answer-value.semantic-negative{background:#fde4e4;color:#8a2626}
.client-answer-value.semantic-warning{background:#fff0d6;color:#7d4b00}
.client-answer-comment{grid-column:1/-1;margin-top:6px;padding:7px 9px;border-left:3px solid #d8a149;background:#fff8e9;color:#5c4520}
.client-proof-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.client-proof-photo{margin:0;min-width:0}
.client-proof-photo img,.client-photo-placeholder{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;border:1px solid var(--line);background:#e7eef3;display:grid;place-items:center;color:#5a6c7c;font-size:12px;text-align:center}
.client-proof-photo figcaption{font-size:11px;font-weight:750;line-height:1.35;margin-top:6px;color:var(--ink)}
.finalization-blocked{width:100%;padding:15px;border:1px solid #d9a44d;border-radius:12px;background:#fff7e7;color:#6b4710}
.finalization-blocked strong{display:block;margin-bottom:5px}
.finalization-blocked p{margin:4px 0 10px;color:inherit}
.finalization-blocked button{margin-top:4px}
#userMobilePhoneField[hidden],#userEditMobilePhoneField[hidden]{display:none!important}
@media(max-width:900px){.client-dossier-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.client-dossier-summary>div:last-child{grid-column:1/-1}}
@media(max-width:700px){
  .client-export-controls{grid-template-columns:1fr}.client-export-controls button{width:100%}
  .client-dossier-summary{grid-template-columns:1fr}.client-dossier-summary>div:last-child{grid-column:auto}
  .client-answer-header,.client-answer-row{grid-template-columns:minmax(0,1fr) 82px;padding:8px 9px;column-gap:8px}
  .client-proof-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .client-proof-photo figcaption{font-size:10px}
}

/* v0.4.2: vaste monteurweergave */
.readonly-field{display:flex;align-items:center;min-height:44px;padding:10px 12px;border:1px solid #d9d9dd;border-radius:9px;background:#f6f6f7;font-weight:700;color:#222}

/* v0.4.2a: dossiergegevens exact uitlijnen */
#dossierDetailsForm .grid.two > label{display:flex;flex-direction:column}
#dossierInstallerStatic,#dossierInstaller,#dossierDate{height:44px;min-height:44px;margin-top:6px}
#dossierInstallerStatic{flex:0 0 44px}

/* v0.4.3: veilige verwijderacties in beheer */
.list-actions .danger-button{padding:9px 12px}

.attention-type.werkblokkade{background:#ffd9d9;color:#7d1825}.blocking-card{border-color:#d86b75;background:#fff8f8}.attention-actions{display:flex;gap:9px;flex-wrap:wrap}.dossier-management-callout{display:grid;gap:10px}.management-alert{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px;border-radius:12px}.management-alert.blocking{background:#ffe3e3;border:1px solid #d66b75}.management-alert.attention{background:#fff3df;border:1px solid #dfb46a}.dialog-copy{margin:0 0 12px;color:var(--muted)}@media(max-width:700px){.management-alert{grid-template-columns:1fr}.management-alert button{width:100%}}

/* v0.4.6: gebruikersrol, accountstatus en rechts uitgelijnde acties */
.user-list-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:18px}
.user-list-details{min-width:0}
.user-role-status{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;font-size:13px;font-weight:850;line-height:1.35}
.user-role-separator{color:var(--muted)}
.user-account-status.is-active{color:#237a45}
.user-account-status.is-inactive{color:#b42331}
.user-contact-meta{overflow-wrap:anywhere}
.user-list-actions{justify-self:end;justify-content:flex-end;flex-wrap:wrap;margin-left:auto}
.user-list-actions button{min-width:118px}
@media(max-width:620px){.user-list-item{grid-template-columns:1fr;align-items:start;row-gap:13px}.user-list-actions{width:100%;justify-self:stretch;justify-content:flex-end}.user-list-actions button{min-width:112px}}


/* v0.4.7: passkeys en aangescherpte beheerweergave */
.passkey-login-button,.password-login-button,.install-app-button{width:100%;margin-top:10px}
.passkey-help{margin-top:9px;font-size:12px;line-height:1.4;color:var(--muted);text-align:center}
.auth-separator{display:flex;align-items:center;gap:10px;margin:18px 0 4px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.auth-separator::before,.auth-separator::after{content:"";height:1px;background:var(--line);flex:1}
.auth-separator span{white-space:nowrap}
.userbox{gap:7px}
.userbox .ghost{white-space:nowrap}
.passkey-user-meta{margin-top:6px;font-weight:750}
.management-list-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:18px}
.management-list-details{min-width:0}
.management-list-actions{justify-self:end;justify-content:flex-end;margin-left:auto;align-self:center}
.management-list-actions button{min-width:112px}
.team-leader-line{margin-top:7px;font-size:13px;line-height:1.4}
.team-members-block{margin-top:8px;font-size:13px}
.team-members-block>strong{display:block;margin-bottom:3px}
.team-member-list{margin:3px 0 0;padding-left:20px;color:var(--muted);font-size:12px;line-height:1.55}
.attention-total{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.attention-total strong,.attention-total span{width:100%}
.passkey-admin-fieldset{margin-top:18px}
.passkey-list{display:grid;gap:9px;margin-top:10px}
.passkey-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fbfdfc}
.passkey-card>div{display:grid;gap:4px;min-width:0}
.passkey-card strong{font-size:14px}
.passkey-card small{display:block;color:var(--muted);font-size:11px;line-height:1.4}
.passkey-card.is-revoked{background:#f4f4f5;opacity:.78}
.passkey-state{justify-self:start;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:900}
.passkey-state.is-active{background:#dff2e6;color:#22633f}
.passkey-state.is-revoked{background:#f6dede;color:#8e2434}
.passkey-card .danger-button{align-self:center;min-width:96px}
.passkey-current-list{margin-top:20px}
.passkey-current-list h3{margin:0 0 8px;font-size:15px}
#passkeySecureWarning{margin:12px 0}
@media(max-width:720px){
  .management-list-item{grid-template-columns:1fr;row-gap:13px}
  .management-list-actions{width:100%;justify-self:stretch;justify-content:flex-end}
  .passkey-card{grid-template-columns:1fr}
  .passkey-card .danger-button{justify-self:end}
}
@media(max-width:430px){
  .userbox{gap:4px}
  .userbox .ghost{padding:8px 7px;font-size:9px}
}

/* v0.4.8: wachtwoordbeleid en tijdelijke wachtwoorden */
.inline-field-actions{display:flex;justify-content:flex-end;margin-top:-4px}
.inline-field-actions .secondary{width:auto}
.password-policy-help{margin-top:-6px}
#temporaryPasswordValue{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:800;letter-spacing:.03em}
/* v0.4.9: bewerkingsformulier blijft volledig zichtbaar onder de vaste bovenbalk */
#locationForm{scroll-margin-top:96px}


/* v0.4.10: locatiecorrectie, opdrachtgeveroverzicht en projectweergave */
.tabs{width:100%;background:#fff;border:1px solid var(--line);border-radius:18px;padding:8px;box-shadow:var(--shadow)}
.location-project-field select{margin-top:12px}
.project-status-block{display:grid;justify-items:center;gap:5px;min-width:118px}
.project-location-count{font-size:11px;font-weight:850;color:var(--muted);white-space:nowrap}
.project-status-pill{border:1px solid transparent}
.project-status-preparation{background:#e7eef7;color:#38526d;border-color:#aebfd2}
.project-status-active{background:#d9f1e2;color:#21623d;border-color:#82bc98}
.project-status-paused{background:#fff0cf;color:#80571a;border-color:#d7aa51}
.project-status-completed{background:#f6dddd;color:#7f2d37;border-color:#d3969e}
.status-client_pending{background:#f0f1f3;border-color:#cfd3d8}
.client-location-locked{cursor:default;box-shadow:none;opacity:.92}.client-location-locked:hover{transform:none}
.location-correction-action{background:#f7e8cd;color:#744b10;border:1px solid #d8b16e}
.location-correction-badge{display:inline-flex;margin-top:8px;padding:5px 9px;border-radius:999px;background:#e9e5fa;border:1px solid #b9ace4;color:#51427c;font-size:10px;font-weight:900}
.location-correction-route{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.35fr);align-items:end;gap:12px;margin:12px 0}
.location-correction-route>div:first-child{display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f7f7f8}
.location-correction-route span{font-size:12px;color:var(--muted)}.location-correction-arrow{font-size:24px;font-weight:950;padding-bottom:12px}
.location-correction-history{display:grid;gap:6px;padding:12px 14px;margin-bottom:12px;border:1px solid #b9ace4;border-radius:12px;background:#f3f0fd}
.location-correction-history>strong{color:#51427c}.location-correction-history>span{font-size:12px;line-height:1.45}.location-correction-history small{color:var(--muted)}
@media(max-width:700px){.location-correction-route{grid-template-columns:1fr}.location-correction-arrow{transform:rotate(90deg);justify-self:center;padding:0}.project-list-actions{align-items:flex-end;flex-wrap:wrap}.project-status-block{justify-items:end}}


/* v0.4.11: projectcontacten, dashboardzoekbalk en uitlijning */
.team-member-count{background:#d9f1e2;color:#21623d;border:1px solid #82bc98}
.dashboard-project-search{display:flex;align-items:end;gap:14px;margin:0 0 18px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}
.dashboard-project-search label{display:grid;gap:8px;flex:1;font-size:13px;font-weight:850;color:var(--muted)}
.dashboard-project-search input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:11px;padding:11px 13px;background:#fbfdfc;color:var(--ink)}
.dashboard-project-search input:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 3px rgba(213,16,72,.13)}
.dashboard-project-search>span{font-size:12px;font-weight:800;color:var(--muted);white-space:nowrap;padding-bottom:12px}
.dashboard-search-empty{text-align:center}
.admin-project-contact-grid{margin:16px 0}
.project-crew-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:6px}
.project-crew-team{display:grid;gap:6px;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff}
.project-crew-team>strong{font-size:13px;color:var(--ink)}
.project-crew-team span,.project-crew-team div{font-size:12px;line-height:1.45;color:var(--muted)}
.project-crew-team b{color:var(--ink)}
.project-crew-members{margin:4px 0 0;padding-left:19px;line-height:1.55}
.project-crew-empty{display:block;margin-top:3px}
.dossier-title-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dossier-title-line h2{margin:0}
.dossier-head-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-left:auto;flex-wrap:wrap}
.location-card .card-actions{justify-content:flex-end}
.client-export-controls{max-width:none;width:100%;align-items:end}
.client-export-controls label{display:grid;gap:10px;margin:0;font-size:13px;font-weight:850;color:var(--muted)}
.client-export-controls label select{margin:0;min-height:45px}
.client-export-controls button{height:45px;min-height:45px;justify-self:end;align-self:end}
@media(max-width:760px){.project-crew-groups{grid-template-columns:1fr}.dashboard-project-search{align-items:stretch;flex-direction:column}.dashboard-project-search>span{padding:0}.dossier-head-actions{width:100%;justify-content:flex-end}.client-export-controls button{width:100%}}


/* Veilige selectieruimte op locatiekaarten */
.location-card .location-select-hitbox{position:absolute;right:2px;top:2px;width:48px;height:48px;display:grid;place-items:center;z-index:3;border-radius:13px;cursor:pointer}
.location-card .location-select-hitbox:hover{background:rgba(49,92,85,.08)}
.location-card .location-select-hitbox:focus-within{outline:3px solid rgba(213,16,72,.18);outline-offset:-3px}
.location-card .location-select-hitbox input[type=checkbox]{position:static;width:20px;height:20px;margin:0;accent-color:#2f6fbe;cursor:pointer}
.location-card:has(.location-select-hitbox) .code{padding-right:48px}

/* v0.4.15: mijn projecten, projectinstructie en beheeruitbreidingen */
.my-project-list{display:grid;gap:18px}.my-project-card{border:1px solid #dfe3e8;border-radius:18px;background:#fff;padding:20px;box-shadow:0 6px 18px rgba(20,34,52,.06)}.my-project-main{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:22px;align-items:stretch}.my-project-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.my-project-title-row h2{margin:.15rem 0}.my-project-address{margin:.25rem 0 1.1rem;color:#4f5966}.project-progress-label{display:flex;justify-content:space-between;gap:16px;font-size:.9rem;margin-bottom:7px}.project-progress{height:8px;border-radius:999px;background:#e8edf3;overflow:hidden}.project-progress span{display:block;height:100%;background:#1769c2;border-radius:inherit}.my-project-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.my-project-map,.project-map{min-height:190px;border-radius:14px;overflow:hidden;background:#eef2f5;border:1px solid #dfe3e8}.my-project-map iframe,.project-map iframe{width:100%;height:100%;min-height:190px;border:0}.project-info-dialog .dialog-card{max-width:760px}.project-info-address{display:grid;grid-template-columns:1fr auto;gap:6px 16px;align-items:center;margin:14px 0}.project-info-address strong,.project-info-address span{grid-column:1}.project-info-address .button{grid-column:2;grid-row:1/3}.project-instruction-text{white-space:pre-wrap;line-height:1.55}.project-contact-persons{display:grid;gap:10px}.project-contact-person{border:1px solid #e1e5ea;border-radius:10px;padding:10px 12px}.project-contact-person>strong{display:block}.project-contact-person>span{display:block;color:#59636f;font-size:.88rem;margin-top:4px}.contact-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}.contact-actions a{font-weight:700;color:#1769c2}.contact-editor{display:grid;gap:10px}.contact-editor-row{display:grid;grid-template-columns:1fr 1.25fr 1fr 1.4fr auto;gap:8px;align-items:end}.contact-editor-row input{min-width:0}.project-edit-actions{display:flex;align-items:center}.action-spacer{flex:1}.progress-overview-grid{display:grid;gap:18px;margin-top:20px}.progress-overview-panel{padding:18px}.progress-table{width:100%;border-collapse:collapse;font-size:.86rem}.progress-table th,.progress-table td{padding:9px 10px;border-bottom:1px solid #e4e7eb;text-align:left;white-space:nowrap}.progress-table th{color:#5c6570;font-size:.78rem;text-transform:uppercase}.notification-list{margin-top:18px}.notification-item{align-items:center}.system-status-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.external-reference{margin-top:8px;padding:8px 10px;border-radius:8px;background:#eef5ff;color:#264b75;font-size:.86rem}.tabs{overflow-x:auto}.tabs .tab{white-space:nowrap}
@media(max-width:820px){.my-project-main{grid-template-columns:1fr}.my-project-map{min-height:150px}.contact-editor-row{grid-template-columns:1fr 1fr}.contact-editor-row .remove-contact{grid-column:2;justify-self:end}.project-info-address{grid-template-columns:1fr}.project-info-address .button{grid-column:1;grid-row:auto;width:100%}.progress-table{font-size:.78rem}}
@media(max-width:560px){.my-project-card{padding:14px}.my-project-title-row{display:block}.my-project-actions>*{flex:1 1 100%;text-align:center}.contact-editor-row{grid-template-columns:1fr}.contact-editor-row .remove-contact{grid-column:1}.project-progress-label{font-size:.82rem}.topbar{position:sticky;top:0;z-index:20}}

/* v0.4.15: vereenvoudigde beheerstructuur en gecontroleerde projectverwijdering */
.tabs{overflow:visible;flex-wrap:wrap;align-items:center}
.tabs::-webkit-scrollbar{display:none}
.system-overview-panel{margin-bottom:18px}
.system-overview-panel .form-actions{margin-top:10px}
.dossier-notification-panel{margin-bottom:18px}
.notification-summary-actions{grid-template-columns:repeat(4,minmax(0,1fr))}
.notification-summary-button{width:100%;text-align:left;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:16px;padding:18px;display:block}
.notification-summary-button:hover{border-color:#bfc4ca;background:#fafbfc}
.notification-summary-button.active{border-color:var(--brand);box-shadow:0 0 0 3px rgba(213,16,72,.12);background:var(--brand-soft)}
.notification-summary-button strong{font-size:28px;display:block}
.notification-summary-button span{font-size:12px;color:var(--muted);display:block;margin-top:2px}
.project-archive-panel{margin-top:18px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fafbfb}
.project-archive-panel h3{margin:0 0 4px}
.project-archive-panel p{margin:0;color:var(--muted)}
.archive-checklist{display:grid;gap:8px;margin:14px 0}
.archive-check{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:11px;border:1px solid var(--line);background:#fff}
.archive-check>span{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;font-weight:900;flex:0 0 25px}
.archive-check.ok>span{background:#dff1e6;color:#24704a}
.archive-check.blocked>span{background:#ffe3e3;color:#9c2d38}
.archive-check strong,.archive-check small{display:block}
.archive-check small{margin-top:2px;color:var(--muted);font-size:11px;line-height:1.35}
.archive-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.archive-meta>div{padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.archive-meta strong,.archive-meta span{display:block}
.archive-meta span{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.35}
.archive-actions{justify-content:flex-end;flex-wrap:wrap}
.warning-box{padding:14px;border:1px solid #e3a06d;background:#fff3e8;border-radius:12px;color:#6f3a17}
.warning-box p{margin:7px 0 0;color:inherit}
@media(max-width:900px){.notification-summary-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-meta{grid-template-columns:1fr}}
@media(max-width:600px){.tabs{gap:5px}.tab{padding:9px 10px;font-size:12px}.notification-summary-actions{grid-template-columns:1fr 1fr}.archive-actions>*{width:100%}}

/* v0.4.15 – rustig contactpersonenformulier, rapportinstellingen bij export en verdeelde navigatie */
.tabs{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(108px,1fr));
  gap:8px;
  overflow:visible;
  align-items:stretch;
}
.tabs .tab{
  width:100%;
  min-width:0;
  text-align:center;
  white-space:normal;
}
.contact-editor-fieldset{padding:16px}
.contact-editor-fieldset>.field-help{margin:0 0 14px}
.contact-editor{display:grid;gap:16px}
.contact-editor-row{
  display:flex;
  flex-direction:column;
  gap:0;
  padding:18px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.contact-editor-row-head{display:block;margin:0 0 10px;text-align:left}
.contact-editor-row-head strong{display:block;font-size:15px;color:var(--ink)}
.contact-editor-fields{display:grid;gap:0;width:100%}
.contact-editor-row label{display:block;width:100%;margin:12px 0 0!important;color:var(--ink)}
.contact-editor-row label:first-child{margin-top:0!important}
.contact-editor-row input{display:block;width:100%;min-width:0;max-width:none;margin-top:7px}
.contact-editor-actions{display:flex;justify-content:flex-end;align-items:center;margin-top:18px;padding-top:4px}
.contact-editor-actions .remove-contact{background:#fff;color:#a62533;border:1px solid #c94b57;min-width:170px}
.contact-editor-actions .remove-contact:hover{background:#fff0f1}
.add-contact-button{width:100%;margin-top:14px;min-height:48px}
.report-settings{margin:4px 0 18px;padding:16px}
.report-settings.disabled{opacity:.66}
.report-settings-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}
.report-settings-row label{display:block;font-size:13px;font-weight:800;color:var(--muted);margin:0}
.report-settings-row select{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:11px;padding:12px;background:#fff;color:var(--ink)}
.report-settings-row button{min-height:43px}
@media(max-width:760px){
  .tabs{grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px}
  .tabs .tab{font-size:12px;padding:9px 7px}
  .report-settings-row{grid-template-columns:1fr}
  .report-settings-row button{width:100%}
  .contact-editor-row{padding:14px}
}

/* v0.4.16 – contactpersonen volledig verticaal en rustiger opgebouwd */
.contact-editor-row .danger-button{box-shadow:none}

/* v0.4.17 – bewuste locatieacties, dossierfilters en overzichtelijke ploegcontacten */
.location-card{cursor:default}
.location-card:hover{transform:none}
.location-card .card-actions{display:flex;justify-content:flex-start;gap:10px;flex-wrap:wrap;margin-top:14px}
.location-card .card-actions button{min-height:40px;padding:9px 13px;font-size:12px}
.location-card .card-actions .open-location-dossier{flex:1 1 180px}
.location-card .card-actions .edit-location,.location-card .card-actions .client-location-export{flex:0 1 auto}
.location-card button,.location-card a,.location-card input,.location-card label{cursor:pointer}

.client-project-filter{width:100%;text-align:left;appearance:none;color:var(--ink);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.client-project-filter:hover{border-color:var(--brand);box-shadow:0 0 0 3px rgba(213,16,72,.1);transform:translateY(-1px)}
.client-project-filter:focus-visible{outline:0;border-color:var(--brand);box-shadow:0 0 0 4px rgba(213,16,72,.16)}

.filters select.filter-active,.filters input.filter-active,.quick-filter-trigger.filter-active{
  border-color:var(--brand)!important;
  background:#fff8fa!important;
  box-shadow:0 0 0 3px rgba(213,16,72,.13)!important;
}
.filter-clear-row{display:flex;justify-content:flex-start;margin:-6px 0 18px}
.filter-clear-button{width:250px;min-height:45px;border:1px solid var(--brand);background:#fff;color:var(--brand);box-shadow:none}
.filter-clear-button:hover{background:var(--brand-soft)}

.crew-role-section{display:grid;gap:7px;margin-top:5px}
.crew-role-section>b{font-size:12px;color:var(--ink)}
.crew-contact-table{display:grid;width:100%;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}
.crew-contact-head,.crew-contact-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,.75fr);gap:12px;align-items:center;padding:7px 9px}
.crew-contact-head{background:#f7f7f8;color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.03em}
.crew-contact-row{font-size:12px;color:var(--ink);border-top:1px solid #ececef}
.crew-contact-row>a,.crew-contact-row span:last-child a{color:var(--ink);font-weight:750;text-decoration:none}
.crew-contact-row span:last-child{text-align:left;font-variant-numeric:tabular-nums}
.crew-phone-empty{color:var(--muted)}

@media(max-width:600px){
  .filter-clear-button{width:100%}
  .crew-contact-head,.crew-contact-row{grid-template-columns:minmax(0,1fr) minmax(118px,.85fr);gap:8px}
  .location-card .card-actions>*{flex:1 1 100%!important}
}

/* v0.4.18 – bevestigingen, rustige statistieken, dossierkop en stabiele filters */
.project-create-status{margin:10px 0 14px}
.compact-project-stats .stat,
.admin-total-stats .stat{
  display:flex;
  min-height:76px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:3px;
}
.compact-project-stats .stat strong,
.admin-total-stats .stat strong{line-height:1}
.compact-project-stats .stat span,
.admin-total-stats .stat span{display:block;line-height:1.25;text-align:center}

.dossier-head{align-items:flex-start}
.dossier-head>div:first-child{min-width:0;flex:1 1 auto}
.dossier-head-actions{
  display:grid;
  grid-template-columns:250px;
  justify-content:end;
  align-content:start;
  gap:10px;
  margin-left:auto;
}
.dossier-head-actions button{
  width:250px;
  min-height:44px;
  justify-content:center;
  text-align:center;
}
.dossier-head #dossierMeta{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  width:100%;
  margin-top:10px;
}
.dossier-head #dossierMeta span{
  display:flex;
  min-width:0;
  align-items:center;
  gap:4px;
  width:100%;
  padding:7px 9px;
  border-radius:9px;
  background:#f4f4f5;
  border:1px solid #e4e4e7;
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.dossier-head #dossierMeta span strong{flex:0 0 auto;color:var(--ink)}
.dossier-head #dossierMeta .meta-team{grid-column:span 2}

.photo-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.photo-actions .sequence-note{margin:0}
.photo-file-add{font-size:12px}

.work-selection-panel,
#advancedWorkFilters,
#workLocationList{overflow-anchor:none}

@media(max-width:900px){
  .dossier-head #dossierMeta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dossier-head #dossierMeta .meta-team{grid-column:span 2}
}
@media(max-width:700px){
  .dossier-head-actions{grid-template-columns:1fr;width:100%;margin-left:0}
  .dossier-head-actions button{width:100%}
  .dossier-head #dossierMeta{grid-template-columns:1fr}
  .dossier-head #dossierMeta .meta-team{grid-column:auto}
}

/* v0.4.19 – dashboardkoppelingen, compacte locatie-invoer en uitgebreide bulkfilters */
.admin-dashboard-dossier-filter{font:inherit;color:inherit;text-align:center;cursor:pointer;width:100%}
.admin-dashboard-dossier-filter:hover{border-color:var(--brand);box-shadow:0 0 0 3px rgba(213,16,72,.08)}
.manual-location-info{width:100%}.manual-location-form{width:100%}.manual-location-fields{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px 14px}.manual-location-fields label{margin:0}.manual-location-fields .location-project-field{grid-column:span 2}.manual-location-form .grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.manual-location-form .form-actions{justify-content:flex-end}
.admin-location-filters>*{max-width:none}.admin-location-filters .clear-filter-button{min-height:43px}.location-group{grid-column:1/-1}.location-group>h3{display:flex;justify-content:space-between;align-items:center;margin:18px 0 10px}.location-group>h3 span{font-size:12px;color:var(--muted)}
.archive-meta>div{min-height:88px;display:flex;flex-direction:column;justify-content:center;text-align:center}.archive-meta strong{line-height:1.25;overflow-wrap:anywhere}
@media(max-width:1100px){.manual-location-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.manual-location-fields .location-project-field{grid-column:span 2}.manual-location-form .grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.manual-location-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.manual-location-fields .location-project-field{grid-column:1/-1}.manual-location-form .grid.four{grid-template-columns:1fr}.admin-dashboard-dossier-filter{min-height:96px}}
@media(max-width:460px){.manual-location-fields{grid-template-columns:1fr}}

/* GRIP v0.4.20 – Oplevering */
.delivery-stats{margin:18px 0}.delivery-stats .stat{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:96px;text-align:center}.delivery-filters{grid-template-columns:minmax(180px,1.1fr) minmax(190px,1fr) minmax(220px,1.4fr) auto}.delivery-selection-toolbar{justify-content:space-between;align-items:center;margin:14px 0}.delivery-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:18px}.delivery-card{position:relative}.delivery-card .delivery-select-hitbox{position:absolute;top:12px;right:12px;z-index:2;padding:8px}.delivery-card .delivery-select-hitbox input{width:22px;height:22px}.delivery-status-button{width:100%;margin-top:10px;border-radius:8px;font-weight:700;text-align:center}.delivery-status-not_ready{background:#eef0f2;color:#4b525a;border-color:#cfd4da}.delivery-status-ready{background:#e8f1ff;color:#1458a4;border-color:#9fc2ee}.delivery-status-ready_attention{background:#fff2d7;color:#875600;border-color:#e5bd68}.delivery-status-delivered{background:#e7f6ec;color:#176b35;border-color:#8ac69d}.delivery-status-reopened{background:#fde8e8;color:#a11d28;border-color:#df9298}.delivery-history-item{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,.8fr) auto;gap:16px;align-items:center}.delivery-history-meta{display:flex;flex-direction:column;gap:3px}.delivery-history-actions{display:flex;justify-content:flex-end}.location-card .delivery-card-action{width:100%}
@media(max-width:850px){.delivery-filters{grid-template-columns:1fr}.delivery-history-item{grid-template-columns:1fr}.delivery-history-actions{justify-content:flex-start}.delivery-selection-toolbar{align-items:flex-start;flex-direction:column}.delivery-actions>*{flex:1 1 100%}}

/* GRIP v0.4.21 – compacte beheerfilters, projecttoewijzing en opleverregels */
.tabs.admin-tabs{
  grid-template-columns:repeat(9,minmax(0,1fr));
  gap:8px;
}
.tabs.admin-tabs .tab{min-height:43px}

.project-card-action-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(112px,1fr));
  gap:8px;
  min-width:240px;
}
.project-card-action-grid button{width:100%;min-width:0}
.project-card-action-grid .assign-project-locations{grid-column:1/-1}

.manual-location-form .manual-location-intro{margin:0 0 10px}
.manual-location-form .manual-location-info{margin:0 0 18px}
.manual-location-fields{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px 14px;
}
.manual-location-fields .location-project-field{grid-column:span 2}
.manual-location-fields .location-code-field{grid-column:1}
.manual-location-form .form-actions{justify-content:flex-end}

.admin-location-filters{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  align-items:stretch;
}
.admin-location-filters>*{
  width:100%;
  max-width:none;
  min-width:0;
  min-height:44px;
  margin:0;
}
.admin-location-filters .admin-location-search{grid-column:span 2}
.admin-location-filters .clear-filter-button{height:44px}

.delivery-filters{
  display:grid;
  grid-template-columns:minmax(320px,2fr) minmax(190px,1fr) minmax(240px,1.5fr) auto;
  gap:12px;
}
.delivery-filters>*{width:100%;max-width:none;min-width:0;margin:0}
.delivery-location-list{display:grid;gap:9px;margin-top:10px}
.delivery-location-row{
  display:grid;
  grid-template-columns:34px minmax(160px,1.05fr) minmax(230px,1.35fr) minmax(170px,1fr) minmax(175px,1.05fr) auto;
  gap:12px;
  align-items:center;
  min-height:62px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-left-width:5px;
  border-radius:12px;
  background:#fff;
}
.delivery-row-select{display:grid;place-items:center;margin:0}
.delivery-row-select input{width:20px;height:20px;margin:0;accent-color:var(--brand)}
.delivery-row-location,.delivery-row-structure,.delivery-row-reports{min-width:0}
.delivery-row-location{display:flex;flex-direction:column;gap:3px}
.delivery-row-location strong{font-size:14px}
.delivery-row-location small{color:var(--muted);overflow-wrap:anywhere}
.delivery-row-structure{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;font-size:12px}
.delivery-row-structure span{overflow-wrap:anywhere}
.delivery-status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 10px;border:1px solid currentColor;border-radius:9px;font-size:12px;font-weight:850;text-align:center}
.delivery-row-reports{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.delivery-report-reference{padding:6px 8px;border:1px solid #9fb4ca;background:#edf5fd;color:#204f78;border-radius:8px;font-size:11px;font-weight:850}
.delivery-report-reference:hover{border-color:var(--brand);color:var(--brand)}
.delivery-report-empty{color:var(--muted);font-size:12px}
.delivery-row-actions{display:flex;justify-content:flex-end}
.delivery-row-actions button{white-space:nowrap;min-height:38px}
.view-success-notice{margin:10px 0 14px}

@media(max-width:1150px){
  .tabs.admin-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}
  .delivery-location-row{grid-template-columns:34px minmax(150px,1fr) minmax(200px,1.3fr) minmax(160px,1fr) minmax(160px,1fr)}
  .delivery-row-actions{grid-column:2/-1;justify-content:flex-end}
}
@media(max-width:900px){
  .tabs.admin-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-location-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-location-filters .admin-location-search{grid-column:span 2}
  .delivery-filters{grid-template-columns:1fr 1fr}
  .delivery-filters #deliveryProjectFilter,.delivery-filters #deliverySearch{grid-column:1/-1}
  .delivery-location-row{grid-template-columns:34px minmax(140px,1fr) minmax(190px,1.3fr)}
  .delivery-row-status,.delivery-row-reports{grid-column:auto}
  .delivery-row-actions{grid-column:2/-1}
}
@media(max-width:700px){
  .manual-location-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .manual-location-fields .location-project-field{grid-column:span 2}
  .manual-location-fields .location-code-field{grid-column:1}
  .project-card-action-grid{width:100%;min-width:0}
  .project-list-actions{width:100%;align-items:stretch}
  .delivery-location-row{grid-template-columns:30px minmax(0,1fr);align-items:start}
  .delivery-row-structure,.delivery-row-status,.delivery-row-reports,.delivery-row-actions{grid-column:2}
  .delivery-row-structure{grid-template-columns:1fr 1fr 1fr}
  .delivery-row-actions{justify-content:stretch}
  .delivery-row-actions button{width:100%}
}
@media(max-width:520px){
  .tabs.admin-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-location-filters{grid-template-columns:1fr}
  .admin-location-filters .admin-location-search{grid-column:auto}
  .manual-location-fields{grid-template-columns:1fr}
  .manual-location-fields .location-project-field,.manual-location-fields .location-code-field{grid-column:auto}
  .delivery-filters{grid-template-columns:1fr}
  .delivery-filters #deliveryProjectFilter,.delivery-filters #deliverySearch{grid-column:auto}
  .delivery-row-structure{grid-template-columns:1fr}
}
.delivery-row-structure span{display:flex;flex-direction:column;gap:2px}
.delivery-row-structure small{color:var(--muted);font-size:10px;font-weight:800}

/* GRIP v0.4.22 – dossierregistratie, externe opleverreferentie en actiepunten */
.dossier-external-reference-panel,
.dossier-status-override-panel,
.action-points-panel{scroll-margin-top:105px}
.external-reference-fields{grid-template-columns:repeat(4,minmax(0,1fr))}
.external-reference-fields label{margin:0}
#externalReferenceReadOnlyBadge{background:#edf0f2;color:#555b61}
.status-comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.status-comparison-grid>div{display:flex;flex-direction:column;gap:5px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:#f8faf9}
.status-comparison-grid strong{font-size:11px;text-transform:uppercase;letter-spacing:.055em;color:var(--muted)}
.status-comparison-grid span{font-weight:900}
#manualStatusBadge{background:#fff0d5;color:#795416;border:1px solid #ddbd7d}
.action-point-create-form{padding:16px;margin:16px 0 18px;border:1px solid var(--line);border-radius:14px;background:#f8faf9}
.action-point-create-form>.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.action-point-create-form label{margin:8px 0}
.action-point-switches{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;padding-bottom:4px}
.action-point-switches .switch-row{flex:1 1 190px;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fff}
.action-point-list{display:grid;gap:12px;margin-top:14px}
.action-point-card{padding:16px;border:1px solid var(--line);border-left:5px solid #82908d;border-radius:14px;background:#fff}
.action-point-card.blocking{border-left-color:#b42318;box-shadow:0 0 0 3px rgba(180,35,24,.08)}
.action-point-card.action-point-in_progress{border-left-color:#d49a32}
.action-point-card.action-point-reported_done{border-left-color:#4b79a8;background:#f7fbff}
.action-point-card.action-point-closed{border-left-color:#3d9360;background:#f7fbf8;opacity:.86}
.action-point-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.action-point-head h3{margin:3px 0 0;font-size:16px}
.action-point-type{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--brand)}
.action-point-card>p{margin:10px 0;color:var(--ink);white-space:pre-wrap}
.action-point-meta{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.action-point-meta span{padding:5px 8px;border-radius:999px;background:#eef2f1;color:#4f5755;font-size:11px;font-weight:750}
.action-point-completion{display:grid;gap:4px;margin-top:10px;padding:10px 12px;border-radius:10px;background:#edf5fd;font-size:12px}
.action-point-evidence{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.action-point-evidence img{width:92px;height:72px;object-fit:cover;border-radius:9px;border:1px solid var(--line)}
.action-point-complete{width:min(100%,480px);padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:#fafbfb}
.action-point-complete summary{cursor:pointer;font-weight:850}
.action-point-complete textarea,.action-point-complete input{width:100%;margin:9px 0 0}
.action-point-complete button{margin-top:9px}
.delivery-row-external{display:flex;flex-direction:column;gap:4px;min-width:0}
.delivery-row-external strong{font-size:11px;color:var(--muted)}
.delivery-row-external span{font-size:12px;overflow-wrap:anywhere}
.delivery-action-count{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:4px 7px;border-radius:999px;background:#fff0d5;color:#795416;border:1px solid #ddbd7d;font-size:10px;font-weight:900}
.edit-delivery-external-reference{white-space:normal;text-align:center}

@media(max-width:1050px){
  .external-reference-fields,.action-point-create-form>.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .external-reference-fields,.action-point-create-form>.grid.four,.status-comparison-grid{grid-template-columns:1fr}
  .action-point-head{flex-direction:column}
  .action-point-head .status-pill{white-space:normal}
  .action-point-switches{display:grid;grid-template-columns:1fr}
}
.delivery-external-reference{display:flex;align-items:center;gap:6px;flex-wrap:wrap;width:100%;margin-top:4px}
.delivery-external-summary{font-size:11px;color:#4f5755;overflow-wrap:anywhere}
.open-action-count{display:inline-flex;width:max-content;margin-top:3px;padding:3px 7px;border-radius:999px;background:#fff0d5;color:#795416;border:1px solid #ddbd7d;font-size:10px;font-weight:900}


/* GRIP v0.4.24 – actiepunten, contextnavigatie en gelijkmatige menuruimte */
.tabs.admin-tabs{
  display:flex;
  grid-template-columns:none;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  column-gap:18px;
  row-gap:8px;
  overflow:visible;
}
.tabs.admin-tabs .tab{
  flex:0 0 auto;
  width:auto;
  min-height:43px;
  padding-left:14px;
  padding-right:14px;
  white-space:nowrap;
}

.delivery-status-ready{
  background:#fff0d5;
  color:#875600;
  border-color:#e5bd68;
}
.delivery-status-delivered{
  background:#e7f6ec;
  color:#176b35;
  border-color:#8ac69d;
}

.action-point-primary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.action-point-primary-grid label,
.action-point-full-field,
.action-point-options-grid label{margin:0}
.action-point-primary-grid select,
.action-point-full-field input,
.action-point-full-field textarea,
.action-point-options-grid input{width:100%}
.action-point-full-field{display:block;margin-top:12px}
.action-point-options-grid{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(210px,1fr) minmax(210px,1fr);
  gap:12px;
  align-items:end;
  margin-top:12px;
}
.action-point-options-grid .switch-row,
.external-action-switches .switch-row{
  min-height:46px;
  margin:0;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
}
.external-action-switches{
  display:grid;
  grid-template-columns:repeat(2,minmax(220px,1fr));
  gap:12px;
  margin-top:12px;
}

.open-location-actionpoints,
.delivery-action-point-link{
  display:inline-flex;
  width:max-content;
  max-width:100%;
  min-height:30px;
  margin-top:7px;
  padding:5px 9px;
  border:1px solid #ddbd7d;
  border-radius:999px;
  background:#fff0d5;
  color:#795416;
  font-size:11px;
  font-weight:900;
  line-height:1.2;
  text-align:center;
  white-space:normal;
}
.open-location-actionpoints.blocking,
.delivery-action-point-link.blocking{
  border-color:#d48686;
  background:#fde8e8;
  color:#9b202b;
}
.open-location-actionpoints:hover,
.delivery-action-point-link:hover{
  border-color:var(--brand);
  color:var(--brand);
}
.delivery-action-point-link:not(.has-open){
  border-color:#cfd4d2;
  background:#f4f6f5;
  color:#66706d;
  cursor:default;
}

.dossier-head-actions{align-self:stretch}
.dossier-head-actions button{min-height:44px}

@media(max-width:1050px){
  .action-point-primary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .action-point-options-grid{grid-template-columns:1fr 1fr}
  .action-point-options-grid>label:first-child{grid-column:1/-1}
}
@media(max-width:700px){
  .tabs.admin-tabs{justify-content:flex-start;column-gap:10px;row-gap:8px}
  .action-point-primary-grid,
  .action-point-options-grid,
  .external-action-switches{grid-template-columns:1fr}
  .action-point-options-grid>label:first-child{grid-column:auto}
}

/* GRIP v0.4.24 – projectopbouw en locatietoewijzing */
.project-create-panel{width:100%}
.project-create-layout{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:28px;
  align-items:start;
}
.project-create-main,
.project-create-side{min-width:0}
.project-create-main>.grid:first-child label,
.project-create-side>label:first-child{margin-top:0}
.project-create-side .contact-editor-fieldset{margin-bottom:14px}
.project-create-actions{display:flex;justify-content:flex-end;margin-top:14px}
.project-create-actions .primary{min-width:170px}

.project-card-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.project-card-grid .project-list-item{
  height:100%;
  grid-template-columns:minmax(0,.9fr) minmax(300px,1.1fr);
  gap:14px;
  align-items:center;
}
.project-card-grid .project-list-actions{
  display:grid;
  grid-template-columns:minmax(104px,.6fr) minmax(230px,1.4fr);
  gap:10px;
  align-items:center;
  width:100%;
  margin:0;
}
.project-card-grid .project-status-block{min-width:0}
.project-card-grid .project-card-action-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  min-width:0;
  width:100%;
}
.project-card-grid .project-card-action-grid button{
  min-height:40px;
  padding:9px 10px;
  white-space:normal;
  line-height:1.15;
}
.project-card-grid .add-project-locations,
.project-card-grid .assign-project-team{grid-column:auto}

.project-location-entry{scroll-margin-top:140px}
.project-import-panel,
.manual-location-form{scroll-margin-top:140px}
.location-assignment-panel{scroll-margin-top:140px}

@media(max-width:1120px){
  .project-card-grid{grid-template-columns:1fr}
  .project-card-grid .project-list-item{grid-template-columns:minmax(0,1fr) minmax(360px,.95fr)}
}
@media(max-width:900px){
  .project-create-layout{grid-template-columns:1fr;gap:8px}
  .project-card-grid .project-list-item{grid-template-columns:1fr;align-items:stretch}
  .project-card-grid .project-list-actions{grid-template-columns:minmax(110px,.5fr) minmax(0,1.5fr)}
}
@media(max-width:600px){
  .project-card-grid .project-list-actions{grid-template-columns:1fr}
  .project-card-grid .project-status-block{justify-items:start}
  .project-card-grid .project-card-action-grid{grid-template-columns:1fr}
  .project-create-actions .primary{width:100%}
}

/* GRIP v0.4.24 – projectgebonden deurlocatiebeheer */
.project-location-overview-panel .panel-head{align-items:flex-end}
.project-location-filter-label{display:flex;flex-direction:column;gap:6px;min-width:min(100%,330px);margin:0;color:var(--muted);font-size:13px;font-weight:750}
.project-location-filter-label select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:11px;padding:10px 12px;background:#fbfdfc;color:var(--ink)}
.project-location-grid .card-actions{justify-content:stretch}
.project-location-grid .card-actions .edit-location{width:100%;flex:1 1 100%}
.project-location-overview-panel,
.project-location-grid{scroll-margin-top:140px}
@media(max-width:700px){
  .project-location-overview-panel .panel-head{align-items:stretch}
  .project-location-filter-label{width:100%;min-width:0}
}

/* GRIP v0.4.24 – menubalk blijft op desktop op één regel */
@media(min-width:901px){
  .tabs.admin-tabs{flex-wrap:nowrap;column-gap:0}
  .tabs.admin-tabs .tab{padding:10px 9px;font-size:13px}
}

/* GRIP v0.4.25 – gescheiden projectbeheer en compact projectformulier */
.project-subnav{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  margin:0 0 18px;
  padding:8px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow);
}
.project-subtab{
  flex:1 1 0;
  min-height:44px;
  border-radius:11px;
  background:#eef3f1;
  color:var(--ink);
}
.project-subtab.active{background:var(--brand);color:#fff}
.project-subview{width:100%}

.project-create-fields{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:4px 16px;
  align-items:start;
}
.project-create-fields>label{min-width:0}
.project-create-fields .project-instruction-field{grid-column:1/-1}
.project-create-fields textarea{min-height:86px}
.project-create-contacts{margin-top:16px}
.project-create-panel .contact-editor{gap:10px}
.project-create-panel .contact-editor-row{
  display:grid;
  grid-template-columns:max-content minmax(0,1fr) auto;
  gap:12px;
  align-items:end;
  padding:12px;
}
.project-create-panel .contact-editor-row-head{
  margin:0;
  align-self:center;
  min-width:118px;
}
.project-create-panel .contact-editor-fields{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  min-width:0;
}
.project-create-panel .contact-editor-row label{margin:0!important;min-width:0}
.project-create-panel .contact-editor-row input{margin-top:6px}
.project-create-panel .contact-editor-actions{
  margin:0;
  padding:0;
  align-self:end;
}
.project-create-panel .contact-editor-actions .remove-contact{min-width:125px;min-height:44px}
.project-create-panel .add-contact-button{width:auto;min-width:240px}

.project-card-grid{grid-template-columns:1fr;gap:12px}
.project-card-grid .project-list-item{
  width:100%;
  grid-template-columns:minmax(260px,1fr) minmax(560px,1.45fr);
  gap:22px;
  align-items:center;
}
.project-card-grid .project-list-actions{
  display:grid;
  grid-template-columns:minmax(145px,.45fr) minmax(400px,1.55fr);
  gap:14px;
  align-items:center;
  width:100%;
  margin:0;
}
.project-card-grid .project-card-action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.project-card-grid .project-card-action-grid button{min-height:42px}

@media(max-width:1050px){
  .project-create-panel .contact-editor-row{grid-template-columns:1fr auto}
  .project-create-panel .contact-editor-row-head{grid-column:1/-1;min-width:0}
  .project-create-panel .contact-editor-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .project-card-grid .project-list-item{grid-template-columns:1fr;align-items:stretch}
  .project-card-grid .project-list-actions{grid-template-columns:minmax(145px,.4fr) minmax(0,1.6fr)}
}
@media(max-width:760px){
  .project-create-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .project-create-fields .project-instruction-field{grid-column:1/-1}
  .project-card-grid .project-list-actions{grid-template-columns:1fr}
  .project-card-grid .project-status-block{justify-items:start}
}
@media(max-width:600px){
  .project-subnav{display:grid;grid-template-columns:1fr;gap:6px}
  .project-create-fields{grid-template-columns:1fr}
  .project-create-fields .project-instruction-field{grid-column:auto}
  .project-create-panel .contact-editor-row{grid-template-columns:1fr}
  .project-create-panel .contact-editor-row-head{grid-column:auto}
  .project-create-panel .contact-editor-fields{grid-template-columns:1fr}
  .project-create-panel .contact-editor-actions{width:100%}
  .project-create-panel .contact-editor-actions .remove-contact,
  .project-create-panel .add-contact-button{width:100%;min-width:0}
}

/* GRIP v0.4.26 – projectaccenten, contextnavigatie en locatiedossiers */
.project-create-actions{
  justify-content:space-between;
  align-items:center;
  gap:14px;
}
.project-create-actions .primary{min-width:170px}
.project-create-actions .add-contact-button{margin-left:auto}

.project-card-grid .project-list-item{
  overflow:hidden;
  grid-template-columns:minmax(260px,1fr) minmax(560px,1.45fr);
}
.project-card-grid .project-card-heading{
  grid-column:1/-1;
  margin:-14px -14px 0;
  padding:13px 16px 12px;
  background:linear-gradient(90deg,var(--brand-soft),#fff 78%);
  border-left:5px solid var(--brand);
  border-bottom:1px solid #efc7d3;
}
.project-card-grid .project-card-heading .list-title{
  font-size:18px;
  font-weight:950;
  line-height:1.25;
}
.project-card-grid .project-status-pill{
  min-height:39px;
  padding:9px 14px;
  font-size:13px;
  font-weight:900;
}
.project-status-montage_started{background:#fff0d5;color:#815715;border-color:#deb461}

.project-location-overview-panel #projectLocationList{margin-top:18px}
.project-location-grid .edit-location{
  background:var(--brand)!important;
  color:#fff!important;
}
.project-location-grid .edit-location:hover{background:var(--brand2)!important}
.project-location-grid .assigned-badge,
.project-location-grid .unassigned-badge,
.project-location-grid .installer-badge,
.project-location-grid .location-dossier-status-link{
  min-height:31px;
  padding:6px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:900;
  line-height:1.2;
  width:max-content;
  max-width:100%;
  text-align:left;
  white-space:normal;
}
.location-assignment-link,
.location-dossier-status-link{
  cursor:pointer;
  text-decoration:none;
}
.location-assignment-link:hover,
.location-dossier-status-link:hover{
  box-shadow:0 0 0 2px rgba(213,16,72,.13);
}
.location-dossier-status-link{margin-top:9px}

.dossier-subnav{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  margin:0 0 18px;
  padding:8px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow);
}
.dossier-subtab{
  flex:1 1 0;
  min-height:44px;
  border-radius:11px;
  background:#eef3f1;
  color:var(--ink);
}
.dossier-subtab.active{background:var(--brand);color:#fff}
.direct-dossier-chooser{
  width:min(780px,100%);
  margin:24px auto 0;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;
  gap:12px;
  align-items:end;
  text-align:left;
}
.direct-dossier-chooser label{margin:0;font-size:13px;font-weight:750;color:var(--muted)}
.direct-dossier-chooser select{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:11px;padding:12px;background:#fbfdfc;color:var(--ink)}
.direct-dossier-chooser button{min-height:44px}

@media(max-width:1050px){
  .project-card-grid .project-list-item{grid-template-columns:1fr}
}
@media(max-width:700px){
  .project-create-actions{align-items:stretch;flex-direction:column}
  .project-create-actions .primary,
  .project-create-actions .add-contact-button{width:100%;margin:0}
  .dossier-subnav{display:grid;grid-template-columns:1fr;gap:6px}
  .direct-dossier-chooser{grid-template-columns:1fr}
  .direct-dossier-chooser button{width:100%}
}

/* GRIP v0.4.29 – facturatie, oplevermomenten en klikbare dossierstatus */
.project-status-fully_delivered{background:#e7f6ec;color:#176b35;border-color:#8ac69d}
.location-card .location-dossier-status-link{
  display:inline-flex;align-items:center;justify-content:flex-start;min-height:31px;padding:6px 10px;
  border-radius:999px;font-size:11px;font-weight:900;line-height:1.2;width:max-content;max-width:100%;
  white-space:normal;text-align:left;border:1px solid #cfd4da;background:#eef0f2;color:#4b525a;
}
.location-card .location-dossier-status-link.status-in_progress,
.location-card .location-dossier-status-link.status-lmra_done,
.location-card .location-dossier-status-link.status-precheck_done,
.location-card .location-dossier-status-link.status-installation_done,
.location-card .location-dossier-status-link.status-postcheck_done{background:#e8f1ff;color:#1458a4;border-color:#9fc2ee}
.location-card .location-dossier-status-link.status-ready_complete{background:#e7f6ec;color:#176b35;border-color:#8ac69d}
.location-card .location-dossier-status-link.status-ready_attention{background:#fff0d5;color:#875600;border-color:#e5bd68}
.invoice-stats{margin:16px 0}.invoice-stats .stat{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:90px;text-align:center}
.invoice-filters{grid-template-columns:minmax(220px,420px) auto;align-items:end}.invoice-selection-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:16px 0}
.invoice-location-list{display:grid;gap:8px}.invoice-location-row{display:grid;grid-template-columns:34px minmax(220px,1.5fr) minmax(160px,.8fr) minmax(210px,1fr);gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:#fff}.invoice-location-row label{margin:0}.invoice-location-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--brand)}.invoice-location-row>div{display:flex;flex-direction:column;gap:3px}.invoice-location-row small{color:var(--muted)}
.invoice-status-pill{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:900}.invoice-status-pill.available{background:#e7f6ec;color:#176b35;border:1px solid #8ac69d}.invoice-status-pill.pending{background:#fff0d5;color:#875600;border:1px solid #e5bd68}.invoice-status-pill.invoiced{background:#e8f1ff;color:#1458a4;border:1px solid #9fc2ee}.invoice-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:16px}.invoice-history-item{display:grid;grid-template-columns:minmax(220px,1fr) minmax(190px,.7fr) auto;gap:14px;align-items:center}
.invoice-import-controls{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(280px,1.2fr) auto;gap:12px;align-items:end}.invoice-import-controls label{margin:0}.invoice-import-controls button{min-height:42px}
@media(max-width:850px){.invoice-location-row{grid-template-columns:32px 1fr}.invoice-location-row>div{grid-column:2}.invoice-selection-toolbar{align-items:flex-start;flex-direction:column}.invoice-history-item,.invoice-import-controls{grid-template-columns:1fr}.invoice-actions>*{flex:1 1 100%}}
@media(max-width:560px){.invoice-filters{grid-template-columns:1fr}.invoice-location-row{padding:10px}.invoice-status-pill{width:100%;justify-content:center}}

/* GRIP v0.4.29 – Factuurspecificaties onder Locatiedossiers en LAN-testmodus */
.invoice-admin-stats{margin:16px 0}
.invoice-admin-stats .stat{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:88px;text-align:center}
.invoice-admin-filters{display:grid;grid-template-columns:minmax(190px,1fr) minmax(190px,1fr) minmax(180px,.9fr) minmax(160px,.8fr) minmax(260px,1.4fr) auto;gap:10px;align-items:end}
.invoice-admin-list{display:grid;gap:16px;margin-top:14px}
.invoice-admin-group{display:grid;gap:9px}
.invoice-admin-group h3{margin:8px 0 2px;font-size:16px}
.invoice-admin-row,.invoice-admin-specification{border:1px solid var(--line);border-radius:12px;background:#fff}
.invoice-admin-row{display:grid;grid-template-columns:minmax(230px,1.25fr) minmax(170px,.9fr) minmax(150px,.7fr) minmax(180px,.8fr) auto;gap:12px;align-items:center;padding:12px 14px}
.invoice-admin-row>div,.invoice-admin-spec-head>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.invoice-admin-row small,.invoice-admin-specification small{color:var(--muted)}
.invoice-admin-spec-head{display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(220px,1fr) minmax(170px,.8fr) minmax(190px,.8fr) auto;gap:12px;align-items:center;padding:12px 14px}
.invoice-admin-specification details{border-top:1px solid var(--line);padding:10px 14px}
.invoice-admin-specification summary{cursor:pointer;font-weight:800;color:var(--text)}
.invoice-admin-specification ul{display:grid;gap:5px;margin:10px 0 0;padding-left:18px}
.invoice-admin-location-link{border:0;background:transparent;padding:0;color:var(--brand);font-weight:800;text-align:left;cursor:pointer}
.invoice-admin-location-link:hover{text-decoration:underline}
.invoice-admin-spec-actions{align-items:flex-end}
@media(max-width:1180px){.invoice-admin-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.invoice-admin-row,.invoice-admin-spec-head{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-admin-row>div:last-child,.invoice-admin-spec-head>div:last-child{grid-column:1/-1;align-items:stretch}.invoice-admin-spec-actions button{width:100%}}
@media(max-width:700px){.invoice-admin-filters{grid-template-columns:1fr}.invoice-admin-row,.invoice-admin-spec-head{grid-template-columns:1fr}.invoice-admin-row>div:last-child,.invoice-admin-spec-head>div:last-child{grid-column:auto}.invoice-admin-row button,.invoice-admin-spec-actions button{width:100%}}


/* GRIP v0.4.29 – Facturatiecontrole, dossiercontext en oplevering */
.invoice-admin-filters{
  display:grid;
  grid-template-columns:minmax(210px,1.15fr) minmax(210px,1.15fr) minmax(200px,1fr) minmax(180px,.9fr) auto;
  gap:14px;
  align-items:end;
  margin:18px 0 14px;
}
.invoice-admin-stats{margin:0 0 18px}
.invoice-admin-stat{width:100%;color:var(--ink);cursor:default}
.invoice-import-controls{grid-template-columns:minmax(220px,.75fr) minmax(360px,1.35fr) auto;column-gap:28px;row-gap:14px;align-items:end;margin-top:22px}
.invoice-import-controls label{display:grid;gap:7px;margin:0}
.invoice-import-controls label>span{font-weight:750;color:var(--ink)}
.invoice-import-controls input{margin-top:0}
.invoice-import-controls button{min-height:46px;margin-left:4px}
.delivery-filters{grid-template-columns:minmax(300px,1.65fr) minmax(270px,1.2fr) minmax(230px,1.2fr) auto}
@media(max-width:1180px){.invoice-admin-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-admin-filters .clear-filter-button{grid-column:2}.invoice-import-controls{grid-template-columns:minmax(200px,.8fr) minmax(300px,1.2fr);}.invoice-import-controls button{grid-column:1/-1;justify-self:end;margin-left:0}}
@media(max-width:700px){.invoice-admin-filters,.invoice-import-controls{grid-template-columns:1fr}.invoice-admin-filters .clear-filter-button,.invoice-import-controls button{grid-column:auto;width:100%;justify-self:stretch}.delivery-filters{grid-template-columns:1fr}}

/* GRIP v0.4.30 – mobiel locatieoverzicht, actiepuntcontrole en interne fotovoorvertoning */
.installer-location-picker{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}
.installer-location-picker label{display:grid;gap:7px;margin:0;font-size:13px;font-weight:850;color:var(--muted)}
.installer-location-picker select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:#fff;color:var(--ink)}
.installer-selected-location{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:13px 14px;border:2px solid var(--brand);border-radius:13px;background:var(--brand-soft)}
.installer-selected-location>div{display:grid;gap:2px;min-width:0}.installer-selected-location>div span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--brand)}
.installer-selected-location>div strong{font-size:19px}.installer-selected-location>div small{color:var(--muted);overflow-wrap:anywhere}
.installer-selected-location .status-pill{white-space:normal;text-align:center}.installer-selected-location button{min-height:43px}
.context-target{animation:grip-context-pulse 2.5s ease both;scroll-margin-top:105px}
@keyframes grip-context-pulse{0%,100%{box-shadow:var(--shadow)}15%,65%{box-shadow:0 0 0 4px rgba(213,16,72,.22),var(--shadow)}}
.action-point-review{display:grid;gap:7px;margin-top:12px;padding:12px;border:1px dashed #b9c1c7;border-radius:11px;background:#f8fafb}
.action-point-review>strong{font-size:13px}.action-point-review>span{font-size:12px;color:var(--muted)}
.action-point-review-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.action-point-review-actions input{width:100%}
.action-point-evidence-button,.photo-preview-button,.sequence-photo-preview,.media-preview-link{border:0;background:transparent;padding:0;color:var(--brand);cursor:pointer}
.action-point-evidence-button{display:grid;gap:4px;text-align:left}.action-point-evidence-button img{display:block}.action-point-evidence-button span{font-size:10px;font-weight:750;color:var(--muted);max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.attention-photos .media-preview-link{font-weight:800;text-decoration:underline;padding:2px 0}
.photo-preview-button{display:block;width:100%}.photo-preview-button img{display:block;width:100%}
.media-preview-dialog{padding:0;border:0;background:transparent}.media-preview-dialog::backdrop{background:rgba(10,12,14,.82)}
.media-preview-card{width:min(1000px,calc(100vw - 28px));max-width:none;background:#fff}.media-preview-card img{display:block;max-width:100%;max-height:76vh;margin:10px auto 0;border-radius:12px;object-fit:contain;background:#111}.media-preview-card .list-meta{text-align:center;margin-top:10px}
.my-project-list{gap:12px}.my-project-card{padding:14px}.my-project-main{grid-template-columns:minmax(0,1fr) 190px;gap:14px}.my-project-map,.my-project-map iframe{min-height:135px}.my-project-actions{margin-top:12px}.project-progress-label{margin-top:4px}
@media(max-width:700px){
  .tabs.installer-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;overflow:visible}
  .tabs.installer-tabs .tab{width:100%;min-height:46px;white-space:normal;text-align:center;padding:9px 8px}
  .installer-selected-location{grid-template-columns:1fr}.installer-selected-location .status-pill{width:100%;justify-content:center}.installer-selected-location button{width:100%}
  .action-point-review-actions{grid-template-columns:1fr}.action-point-review-actions button{width:100%}
  .my-project-main{grid-template-columns:1fr}.my-project-map{min-height:110px}.my-project-map iframe{min-height:110px}
  .media-preview-card{padding:14px}.media-preview-card img{max-height:72vh}
}

/* GRIP v0.4.31 – interfaceverfijningen, iOS en auditcontext */
.project-import-panel .import-actions{display:flex;justify-content:flex-end;margin-top:2px}
.admin-location-result-count{margin:-2px 0 12px;font-size:13px;font-weight:900;color:var(--muted)}
.project-export-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:12px;align-items:stretch;margin-top:16px}
.project-export-actions>button{width:100%;min-width:0;min-height:48px;line-height:1.3;text-align:center;white-space:normal}
@media(max-width:900px){.project-export-actions{grid-template-columns:1fr}}
.location-notifications{display:grid;gap:7px;margin-top:10px;padding:10px;border:1px solid #efbfd0;border-radius:11px;background:#fff7fa}
.location-notifications>strong{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--brand)}
.location-notification-link{display:grid;gap:2px;width:100%;padding:8px 10px;border:1px solid #efbfd0;border-radius:9px;background:#fff;color:var(--ink);text-align:left;cursor:pointer}
.location-notification-link:hover{border-color:var(--brand);box-shadow:0 0 0 2px rgba(213,16,72,.08)}
.location-notification-link span{font-size:12px;font-weight:900}.location-notification-link small{font-size:10px;color:var(--muted)}
.location-notification-link.blocking{background:#fff0f0;border-color:#e77b7b}.location-notification-link.blocking span{color:#9d1d1d}
.location-status-block{display:grid;gap:3px;margin-top:10px}.location-status-block .status{margin-top:0}.location-status-block>small{font-size:10px;color:var(--muted)}

/* De filters en telblokken van Facturatiecontrole volgen exact hetzelfde vierkolomsraster. */
.invoice-admin-filters{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.invoice-admin-filters .clear-filter-button{grid-column:1/-1;justify-self:end;width:auto}
.invoice-admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}

/* Mijn locaties toont vanaf v0.4.31 vijf kerncijfers. */
.installer-work-stats{grid-template-columns:repeat(5,minmax(0,1fr))}

@media(max-width:900px){
  .invoice-admin-filters,.invoice-admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .invoice-admin-filters .clear-filter-button{grid-column:1/-1}
  .installer-work-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  /* iOS Safari zoomt invoervelden kleiner dan 16px automatisch in. */
  input,select,textarea{font-size:16px!important;min-width:0;max-width:100%}
  html,body{max-width:100%;overflow-x:hidden}
  .shell,.panel,.view,main,section,form{min-width:0;max-width:100%}
  .invoice-admin-filters,.invoice-admin-stats,.installer-work-stats{grid-template-columns:1fr}
  .invoice-admin-filters .clear-filter-button{grid-column:auto;width:100%;justify-self:stretch}
}

/* GRIP v0.4.33 – projectgebonden facturatie met GRIP-nummers */
.invoice-project-choice{display:grid;gap:7px;margin:0;min-width:0}
.invoice-project-choice>span{font-weight:750;color:var(--ink)}
.invoice-project-choice select{width:100%}
.invoice-project-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:14px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--soft,#f7f8fa)}
.invoice-project-summary span{color:var(--muted)}
.invoice-rule-box{margin-top:16px}
.invoice-history-groups{display:grid;gap:18px}
.invoice-history-project{display:grid;gap:10px}
.invoice-history-project h3{margin:0;font-size:16px}
.invoice-history-card{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.invoice-history-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px}
.invoice-history-head>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.invoice-history-head small{color:var(--muted)}
.invoice-history-card details{border-top:1px solid var(--line);padding:10px 14px}
.invoice-history-card summary{cursor:pointer;font-weight:800}
.invoice-history-card ul{display:grid;gap:6px;margin:10px 0 0;padding-left:18px}
.invoice-history-card li span{color:var(--muted);font-size:12px}
.invoice-history-location-link{border:0;background:transparent;padding:0;color:var(--brand);font-weight:800;cursor:pointer}
.invoice-history-location-link:hover{text-decoration:underline}
.invoice-admin-spec-head{grid-template-columns:minmax(220px,1.1fr) minmax(220px,1fr) minmax(170px,.8fr) minmax(210px,.9fr)}
.invoice-import-controls{grid-template-columns:repeat(2,minmax(220px,1fr)) auto}
@media(max-width:850px){.invoice-history-head{align-items:flex-start;flex-direction:column}.invoice-admin-spec-head,.invoice-import-controls{grid-template-columns:1fr}}

/* GRIP v0.4.34 – selectieaccent, importuitlijning en samengestelde meldingenstatus */
.import-confirm-actions{display:flex;justify-content:flex-end;margin-top:12px}
.admin-location-result-count{display:flex;align-items:baseline;gap:8px;width:max-content;max-width:100%;margin:0 0 14px;padding:9px 13px;border:1px solid #efbfd0;border-radius:11px;background:#fff7fa;color:var(--ink)}
.admin-location-result-count strong{font-size:22px;line-height:1;color:var(--brand)}
.admin-location-result-count span{font-size:14px;font-weight:900;color:var(--ink)}
.status-delivered{background:#e7f6ec;border-color:#3d9360}
.dossier-open-message-badge{border:1px solid #ddbd7d;background:#fff0d5;color:#795416;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:900}
.dossier-open-message-badge.blocking{border-color:#d48686;background:#fde8e8;color:#9b202b}
.unified-message-list{display:grid;gap:8px;margin:14px 0 18px;padding:12px;border:1px solid #efbfd0;border-radius:13px;background:#fff7fa}
.unified-message-list[hidden]{display:none}
.unified-message-list>strong{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--brand)}
.unified-message-link{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;width:100%;padding:10px 12px;border:1px solid #efbfd0;border-radius:10px;background:#fff;color:var(--ink);text-align:left}
.unified-message-link:hover{border-color:var(--brand);box-shadow:0 0 0 2px rgba(213,16,72,.08)}
.unified-message-link span{font-weight:900}.unified-message-link small{grid-column:1/-1;color:var(--muted);font-size:11px}.unified-message-link b{font-size:10px;text-transform:uppercase;color:var(--brand)}
.unified-message-link.blocking{border-color:#e77b7b;background:#fff0f0}.unified-message-link.blocking span,.unified-message-link.blocking b{color:#9d1d1d}
@media(max-width:600px){.import-confirm-actions button,.admin-location-result-count{width:100%}.admin-location-result-count{justify-content:center}.unified-message-link{grid-template-columns:1fr}.unified-message-link b{grid-column:1}}

/* GRIP v0.4.35 – mobiele leesbaarheid, horizontale foto’s en actuele data */
.data-refresh-bar{
  display:flex;align-items:center;justify-content:flex-end;gap:10px;
  max-width:1240px;margin:8px auto 0;padding:0 20px;
  color:#4b4b52;font-size:12px;
}
.data-refresh-bar button{min-height:34px;padding:7px 11px;font-size:12px}
.project-message-link,.project-list-message{
  display:inline-flex;align-items:center;width:max-content;max-width:100%;
  margin-top:8px;padding:7px 10px;border:1px solid #d49a32;border-radius:9px;
  background:#fff4dc;color:#714800;font-size:12px;font-weight:900;
}
.project-message-link:hover,.project-list-message:hover{border-color:var(--brand);color:var(--brand)}
.project-message-empty,.project-list-message-empty{display:block;margin-top:8px;color:#59636f;font-size:12px}
.my-project-title{margin:2px 0 6px;line-height:1.12}
.my-project-status-row{display:flex;align-items:center;margin-bottom:6px}
.my-project-map-toggle{margin-top:10px;width:100%}
.my-project-map[hidden]{display:none}
.location-card .meta,.location-structure span,.mini-progress-text{
  color:#3b3b40;
}
.location-card .meta strong,.location-structure strong{color:#161619}
.location-structure span{background:rgba(255,255,255,.78);border:1px solid rgba(27,27,29,.08)}
.camera-stage.landscape-frame{aspect-ratio:16/9;min-height:0}
.camera-stage.landscape-frame video,.camera-stage.landscape-frame img{aspect-ratio:16/9;object-fit:contain}
.orientation-icon.landscape strong::after{content:' verplicht'}

@media(max-width:700px){
  .topbar{
    padding-top:calc(10px + env(safe-area-inset-top));
    padding-left:max(12px,env(safe-area-inset-left));
    padding-right:max(12px,env(safe-area-inset-right));
  }
  .shell{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));padding-bottom:calc(14px + env(safe-area-inset-bottom))}
  .data-refresh-bar{padding:0 max(10px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left));justify-content:space-between}
  .tabs.installer-tabs{gap:5px;margin-bottom:10px}
  .tabs.installer-tabs .tab{min-height:40px;padding:7px 6px;font-size:13px}
  .my-projects-panel{padding:10px}
  .my-project-list{gap:10px}
  .my-project-card{padding:12px;border-radius:14px}
  .my-project-main{display:block}
  .my-project-title{font-size:24px;margin:2px 0 4px}
  .my-project-status-row{margin-bottom:4px}
  .my-project-address{margin:2px 0 8px;font-size:14px;line-height:1.35}
  .project-message-link,.project-message-empty{margin-top:4px;margin-bottom:8px}
  .project-progress-label{margin:3px 0 5px;align-items:flex-end;font-size:12px}
  .project-progress-label strong{text-align:right}
  .my-project-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}
  .my-project-actions .primary{grid-column:1/-1}
  .my-project-actions>*{min-height:40px;padding:8px 9px;font-size:13px}
  .my-project-map-toggle{min-height:38px;padding:8px 9px;font-size:13px}
  .my-project-map,.my-project-map iframe{min-height:96px;max-height:130px}
  .location-card{padding:14px}
  .location-card .meta{font-size:13px;line-height:1.4}
  .location-structure span{font-size:12px;line-height:1.3;padding:7px}
}


/* GRIP v0.4.36 – dossiernavigatie, meldingen en invoercomfort */
.progress-panel-bottom{margin-top:18px;padding:18px}.progress-panel-bottom .workflow-stepper{margin-top:0}
.dossier-messages-anchor{scroll-margin-top:150px}
.external-reference-summary{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:13px 15px;margin-bottom:14px;border:1px solid var(--line);border-radius:12px;background:#f7faf9}.external-reference-summary>div{display:grid;gap:4px}.external-reference-summary span,.external-reference-summary small{color:var(--muted)}
.external-photo-input{margin-top:12px}.unified-message-item{scroll-margin-top:150px}
.project-import-panel .import-actions{margin-top:18px}.import-confirm-actions{display:flex;justify-content:flex-end;margin-top:18px}
.client-project-export-dialog .dialog-card{max-width:680px}.client-project-export-button{background:#edf2f0;color:var(--ink)}
.location-notification-summary{width:100%;text-align:left}
@media(max-width:720px){.progress-panel-bottom{padding:14px}.progress-panel-bottom .workflow-stepper{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* GRIP v0.4.39 – compacte meldingen, facturatie als hoofdroute en herstelworkflow */
.message-row-details{border:1px solid #dfe3e6;border-radius:12px;background:#fff;overflow:hidden;margin:.7rem 0}
.message-row-details.blocking{border-color:#d51048;background:#fff8fa}
.message-row-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;cursor:pointer;list-style:none}
.message-row-summary::-webkit-details-marker{display:none}
.message-row-summary>span:first-child{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.message-row-summary strong{color:var(--ink);font-size:.98rem}
.message-row-summary small{color:#5b646c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:58ch}
.message-row-summary::after{content:'▾';font-weight:800;color:#6d747b;margin-left:auto}
.message-row-details[open]>.message-row-summary::after{content:'▴'}
.message-row-body{border-top:1px solid #e5e8ea;padding:1rem;background:#fafbfb}
.message-row-body>p{margin:.1rem 0 1rem;white-space:pre-wrap}
.dossier-external-reference-panel .message-row-details{margin-bottom:0}
.client-project-export-button{background:var(--brand)!important;color:#fff!important;border-color:var(--brand)!important;margin-top:1.35rem}
.project-card-actions{padding-top:.2rem}
.installer-message-stat.has-messages{background:#fde8ee;border-color:#e6a6ba;color:#821236}
.installer-message-stat{cursor:pointer}
.workflow-blocked-navigation{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;border:1px solid #d51048;background:#fff1f5;padding:.85rem 1rem;border-radius:12px;margin:0 0 1rem}
.workflow-blocked-navigation strong{color:#a20838}.workflow-blocked-navigation span{flex:1;min-width:220px;color:#5e263a}
@media (max-width:700px){.message-row-summary{align-items:flex-start}.message-row-summary small{max-width:52vw}.message-row-summary .status-pill{font-size:.72rem}.workflow-blocked-navigation{align-items:stretch}.workflow-blocked-navigation button{width:100%}}

/* GRIP v0.4.39 – ondoorzichtige facturatienummers en informatieve facturatietellers */
.grip-number-input{display:flex;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:#fbfdfc;min-height:46px}
.grip-number-input>span{flex:0 0 auto;padding-left:12px;font-weight:900;color:var(--ink);letter-spacing:.02em}
.invoice-import-controls .grip-number-input input{border:0;border-radius:0;margin:0;padding-left:4px;background:transparent;box-shadow:none;min-width:0}
.invoice-import-controls label>small{font-size:11px;color:var(--muted);font-weight:500}
.invoice-admin-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:88px;text-align:center}

/* GRIP v0.4.39 – compacte dossiersecties en uitgelijnde beheerfilters */
.panel-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.compact-toggle-button,.compact-add-button{white-space:nowrap}
.collapsible-editor{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.compact-empty-message{margin:8px 0 0;color:var(--muted);font-size:13px}
.compact-message-panel .unified-message-list{display:grid;gap:8px}
.compact-message-panel .message-row-details{margin:0}
.compact-message-panel .panel-head{align-items:center}

.dossier-details-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.dossier-details-summary>div{display:flex;flex-direction:column;gap:5px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f8faf9;min-width:0}
.dossier-details-summary strong{font-size:11px;text-transform:uppercase;letter-spacing:.045em;color:var(--muted)}
.dossier-details-summary span{font-weight:800;overflow-wrap:anywhere}
.compact-status-comparison{margin-bottom:0}
.compact-manage-panel .collapsible-editor .form-actions{margin-bottom:0}

.workflow-accordion{display:grid;gap:12px}
.workflow-accordion-item{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 4px 14px rgba(23,42,40,.045)}
.workflow-accordion-item.blocking{border-color:#d51048;background:#fff9fa}
.workflow-accordion-item.expanded{border-color:rgba(213,16,72,.45);box-shadow:0 0 0 2px rgba(213,16,72,.07)}
.workflow-accordion-summary{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:14px 16px;border:0;border-radius:0;background:#fff;color:var(--ink);text-align:left}
.workflow-accordion-item.blocking>.workflow-accordion-summary{background:#fff4f6}
.workflow-accordion-summary:hover{background:#f7faf9}
.workflow-accordion-summary:disabled{opacity:.58;cursor:not-allowed}
.workflow-accordion-summary .step-number{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#e1ebe8;font-weight:950}
.workflow-accordion-item.expanded .workflow-accordion-summary .step-number{background:var(--brand);color:#fff}
.workflow-accordion-title{display:flex;flex-direction:column;gap:3px;min-width:0}
.workflow-accordion-title strong{font-size:15px}
.workflow-accordion-title small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.accordion-chevron{font-size:18px;color:var(--muted)}
.workflow-accordion-body{border-top:1px solid var(--line)}
.workflow-accordion-body .step-heading{border-bottom:1px solid var(--line)}

.project-list-item.newly-created-project{animation:newProjectHighlight 3.2s ease both}
@keyframes newProjectHighlight{0%,35%{box-shadow:0 0 0 4px rgba(213,16,72,.2);border-color:var(--brand);background:#fff7fa}100%{box-shadow:none}}

.invoice-import-controls{grid-template-columns:repeat(2,minmax(0,1fr)) auto;gap:14px;align-items:start}
.invoice-import-controls label{min-width:0}
.invoice-import-controls label>input,.invoice-import-controls .grip-number-input{height:46px;min-height:46px}
.invoice-import-controls>button{height:46px;min-height:46px;margin:29px 0 0 0;align-self:start}
.invoice-admin-filters,.invoice-admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.invoice-admin-filters>select,.invoice-admin-stats>.stat{width:100%;min-width:0}
.delivery-filters{grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:14px}
.delivery-filters>select,.delivery-filters>input{width:100%;min-width:0}

@media(max-width:900px){
  .dossier-details-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .invoice-admin-filters,.invoice-admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .delivery-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .delivery-filters #deliverySearch{grid-column:1/-1}
  .delivery-filters .clear-filter-button{grid-column:1/-1;justify-self:end}
}
@media(max-width:700px){
  .panel-head-actions{width:100%;justify-content:flex-start}
  .panel-head-actions .compact-add-button,.panel-head-actions .compact-toggle-button{flex:1 1 auto}
  .dossier-details-summary{grid-template-columns:1fr}
  .workflow-accordion-summary{grid-template-columns:auto minmax(0,1fr) auto;padding:12px}
  .workflow-accordion-summary .status-pill{grid-column:2;justify-self:start}
  .workflow-accordion-summary .accordion-chevron{grid-column:3;grid-row:1/3}
  .invoice-import-controls,.invoice-admin-filters,.invoice-admin-stats,.delivery-filters{grid-template-columns:1fr}
  .invoice-import-controls>button{width:100%;margin-top:0}
  .delivery-filters #deliverySearch,.delivery-filters .clear-filter-button{grid-column:auto;width:100%;justify-self:stretch}
}


/* GRIP v0.4.42 – projectgerichte monteursweergave en compacte registratie */
.compact-project-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}
.compact-project-summary>div{display:flex;align-items:baseline;gap:7px;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#f7f9f8}
.compact-project-summary strong{font-size:20px;line-height:1;color:var(--ink)}
.compact-project-summary span{font-size:12px;color:var(--muted);line-height:1.2}
.compact-project-summary .has-messages{background:#fff1f5;border-color:#e7a6ba}
.my-project-client{margin:2px 0 5px;color:var(--ink);font-size:13px}

.installer-project-choice{display:grid;gap:6px;margin:0 0 10px;max-width:100%}
.installer-project-choice>span{font-size:12px;font-weight:800;color:var(--muted)}
.installer-project-choice select{width:100%}
.compact-installer-summary{margin:0 0 10px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:#f8faf9}
.compact-summary-title{font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.045em;color:var(--muted);margin-bottom:6px}
.installer-project-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.installer-project-stats>div,.installer-project-stats>button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-width:0;min-height:48px;padding:6px 8px;border:0;border-left:2px solid #dfe6e3;background:transparent;text-align:left;border-radius:0;color:var(--ink)}
.installer-project-stats strong{font-size:19px;line-height:1}
.installer-project-stats span{display:block;font-size:11px;line-height:1.15;color:var(--muted)}
.installer-project-stats button{cursor:pointer}
.installer-project-stats button.has-messages{background:#fff1f5;border-left-color:var(--brand);border-radius:8px}
.installer-location-filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:8px}
.installer-location-filters>select:not([hidden]){display:block;width:100%;min-width:0}

/* Eén meldingenblok; formulier en details zijn standaard compact. */
.compact-message-panel{scroll-margin-top:150px}
.compact-message-panel .collapsible-editor{scroll-margin-top:150px}
.compact-message-panel .message-row-summary{min-height:56px}
.external-reference-fields[hidden]{display:none!important}

/* Dossiergegevens bestaan alleen als dialoog; geen dubbel zichtbaar kaartblok. */
#dossierDetailsDialog .dialog-card{max-width:760px}
.dossier-head #dossierMeta{display:flex;flex-wrap:wrap;gap:5px 16px}
.dossier-head #dossierMeta>span{color:var(--muted)}
.dossier-head #dossierMeta strong{color:var(--ink)}

/* De stapnavigatie is compact; geen afzonderlijke numerieke voortgangsbalk. */
.workflow-nav-panel{padding:10px 12px}
.workflow-nav-panel .workflow-stepper{margin:0}
.progress-panel-bottom{padding:10px 12px}

/* Facturatie monteur: twee compacte kerncijfers. */
.invoice-stats{grid-template-columns:repeat(2,minmax(0,1fr));max-width:650px}
.invoice-stats .stat{min-height:68px;padding:10px 12px}

/* Projectinformatie heeft één navigatieroute. */
.project-info-dialog .project-info-address{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.project-info-dialog .project-info-address strong{width:100%}

@media(max-width:720px){
  .compact-project-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .compact-project-summary>div{padding:7px 8px}
  .compact-project-summary strong{font-size:18px}
  .installer-project-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .installer-project-stats>div,.installer-project-stats>button{min-height:42px;padding:5px 7px}
  .installer-project-stats strong{font-size:17px}
  .installer-project-stats span{display:block!important;width:100%;margin:0!important;white-space:normal}
  .installer-location-filters{grid-template-columns:1fr}
  .my-project-actions{grid-template-columns:1fr 1fr}
  .my-project-actions .primary{grid-column:auto}
  .invoice-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* GRIP v0.4.44 – compacte werkregistratie, consistente kaarten en uitlijning */

/* Filters gebruiken de volledige beschikbare breedte in één consequent raster. */
.dossier-filters{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  align-items:stretch;
  width:100%;
}
.dossier-filters>*{
  width:100%;
  min-width:0;
  max-width:none;
  min-height:44px;
  margin:0;
}
.dossier-filters input,.dossier-filters select{margin-top:0}

/* De locatiekop bevat alle kerngegevens; de actieknoppen starten naast de gegevensrijen. */
.dossier-head{display:block}
.dossier-head-main{min-width:0;width:100%}
.dossier-head-body{
  display:grid;
  grid-template-columns:minmax(0,1fr) 250px;
  gap:16px;
  align-items:start;
  margin-top:12px;
}
.dossier-head #dossierMeta,
.dossier-head .dossier-meta-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  width:100%;
  margin:0;
}
.dossier-head #dossierMeta>span{
  display:flex;
  align-items:center;
  gap:5px;
  min-width:0;
  width:100%;
  min-height:38px;
  padding:8px 10px;
  border:1px solid #e2e4e7;
  border-radius:9px;
  background:#f4f5f5;
  color:#4d545b;
  font-size:12px;
  line-height:1.3;
  white-space:normal;
  overflow-wrap:anywhere;
}
.dossier-head #dossierMeta>span strong{flex:0 0 auto;color:var(--ink)}
.dossier-head-actions{
  display:grid;
  grid-template-columns:1fr;
  align-content:start;
  gap:8px;
  width:250px;
  margin:0;
}
.dossier-head-actions button{width:100%;min-height:38px;padding:8px 12px}
.dossier-status-button{border:1px solid rgba(24,48,45,.16)}
.dossier-status-button:disabled{opacity:1;cursor:default}
.dossier-status-button.manual-status{
  background:#68478f;
  border-color:#50326f;
  color:#fff;
  box-shadow:0 0 0 3px rgba(104,71,143,.12);
}
.installer-back-to-locations{margin:0 0 10px;min-height:40px}
.installer-dossier-head .dossier-title-line{margin-bottom:4px}
.installer-dossier-head .dossier-head-body{display:block;margin-top:4px}
.installer-dossier-head #dossierMeta{display:block!important}
.installer-dossier-head #dossierMeta>span{display:inline-flex;width:auto;min-height:0;padding:0;border:0;background:transparent;font-size:13px}

/* Handmatige meldingacties blijven compact; bronregistratie is nooit een volle breedteknop. */
.compact-message-actions{align-items:center}
.compact-message-actions .compact-message-action{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0;
  min-height:38px;
  padding:8px 12px;
}
.external-reference-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  align-items:start;
}
.external-reference-fields>label{margin-top:0}

/* Alle uitklapindicatoren zijn duidelijker en hebben een groter klik-/zichtvlak. */
.accordion-chevron{
  display:grid;
  place-items:center;
  min-width:36px;
  min-height:36px;
  font-size:24px;
  line-height:1;
  color:#555e66;
}
.message-row-summary::after{
  display:grid;
  place-items:center;
  min-width:34px;
  min-height:34px;
  font-size:24px;
  line-height:1;
}
.installer-location-more>summary{list-style:none}
.installer-location-more>summary::-webkit-details-marker{display:none}

/* Compacte deurlocatiekaarten voor monteurs. */
.installer-location-card{
  padding:12px;
  border:1px solid var(--line);
  box-shadow:0 5px 16px rgba(22,22,24,.06);
  cursor:default;
}
.installer-location-card-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:start;
}
.installer-location-card-head .code{padding:0;font-size:16px;line-height:1.2}
.installer-project-name{margin-top:3px!important;font-size:12px!important}
.installer-location-card-head>.status{margin:0;align-self:start;text-align:right}
.installer-location-structure{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  margin-top:9px;
}
.installer-location-structure>span{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
  padding:7px 8px;
  border:1px solid rgba(27,27,29,.08);
  border-radius:8px;
  background:#f7f9f8;
  color:#444b51;
  font-size:11px;
  overflow-wrap:anywhere;
}
.installer-location-structure strong{font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink)}
.installer-location-card .installer-primary-action{margin-top:10px}
.installer-location-card .installer-primary-action>*{width:100%;min-height:40px}
.installer-location-more{margin-top:8px;border-top:1px solid #e5e8e7}
.installer-location-more>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:40px;
  color:#495159;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}
.installer-location-more-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px 12px;
  padding:2px 0 8px;
}
.installer-location-more-grid>span{font-size:12px;color:#4b535a;overflow-wrap:anywhere}
.installer-location-more-grid strong{color:var(--ink)}

/* Nieuwe-projectformulier: elke rij heeft exact gelijk uitgelijnde kolommen. */
.project-create-fields{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px 14px;
  align-items:start;
}
.project-create-fields>label{min-width:0;margin:0}
.project-create-fields>label>input,
.project-create-fields>label>select{min-height:44px}
.project-create-fields .navigation-address-field .field-help{
  display:block;
  margin:6px 2px 0;
  min-height:1.3em;
  font-size:11px;
  font-weight:500;
  color:var(--muted);
}
.project-create-fields .project-instruction-field{grid-column:1/-1;margin-top:2px}

/* Mobiele projectkaarten: rust en gelijke teksthiërarchie. */
.my-projects-panel>.panel-head{margin-bottom:16px}
.my-projects-panel .compact-project-summary{margin-top:4px;margin-bottom:18px}
.my-project-client{margin:2px 0 10px}
.my-project-status-row{margin:0 0 10px}
.project-message-empty,
.project-progress-label>span{
  color:var(--muted);
  font-size:.9rem;
  font-weight:400;
  line-height:1.35;
}
.project-message-empty{margin:8px 0}

/* Facturatie en oplevering: filters en onderliggende cijfers delen dezelfde kolommen. */
.invoice-admin-filters,.invoice-admin-stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  width:100%;
}
.invoice-admin-filters>select,.invoice-admin-stats>.stat{width:100%;min-width:0;max-width:none}
.invoice-admin-filters .clear-filter-button{grid-column:1/-1;justify-self:end;width:auto}
.delivery-filters{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  width:100%;
}
.delivery-filters>select,.delivery-filters>input{width:100%;min-width:0;max-width:none}
.delivery-filters .clear-filter-button{grid-column:1/-1;justify-self:end;width:auto}

/* De GRIP-dialogen voor status en beslissingen volgen dezelfde compacte vorm. */
.dossier-status-dialog-card{width:min(760px,calc(100vw - 28px))}
#gripDecisionDialog .dialog-card,#messageWithdrawDialog .dialog-card{width:min(600px,calc(100vw - 28px))}

@media(max-width:980px){
  .dossier-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dossier-head-body{grid-template-columns:minmax(0,1fr) 220px}
  .dossier-head-actions{width:220px}
  .dossier-head #dossierMeta{grid-template-columns:repeat(2,minmax(0,1fr))}
  .project-create-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .project-create-fields .project-instruction-field{grid-column:1/-1}
  .invoice-admin-filters,.invoice-admin-stats,.delivery-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .delivery-filters #deliverySearch{grid-column:1/-1}
}

@media(max-width:700px){
  .dossier-filters{grid-template-columns:1fr}
  .dossier-head-body{grid-template-columns:1fr;gap:10px}
  .dossier-head #dossierMeta{grid-template-columns:1fr}
  .dossier-head-actions{width:100%;grid-template-columns:1fr}
  .dossier-head-actions button{width:100%}
  .installer-dossier-head{padding:12px 14px}
  .installer-back-to-locations{width:100%;margin-bottom:9px}
  .installer-dossier-head .dossier-title-line h2{font-size:20px;line-height:1.2}
  .external-reference-fields{grid-template-columns:1fr}
  .installer-location-structure{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
  .installer-location-structure>span{padding:6px 5px;font-size:10px}
  .installer-location-more-grid{grid-template-columns:1fr}
  .project-create-fields{grid-template-columns:1fr}
  .project-create-fields .project-instruction-field{grid-column:auto}
  .my-projects-panel>.panel-head{margin-bottom:18px}
  .my-projects-panel .compact-project-summary{margin-top:6px;margin-bottom:18px}
  .my-project-client{margin-bottom:12px}
  .my-project-status-row{margin-bottom:12px}
  .project-message-empty,.project-progress-label>span{font-size:13px}
  .invoice-admin-filters,.invoice-admin-stats,.delivery-filters{grid-template-columns:1fr}
  .invoice-admin-filters .clear-filter-button,.delivery-filters .clear-filter-button,.delivery-filters #deliverySearch{grid-column:auto;width:100%;justify-self:stretch}
  .compact-message-actions .compact-message-action{flex:1 1 auto!important}
}
/* Foto-oriëntatie is begeleiding, geen afgedwongen voorwaarde. */
.orientation-icon.landscape strong::after{content:''}

/* Manurenstaten en interne serverregistraties. */
.hours-filters { display:flex; flex-wrap:wrap; gap:16px; align-items:end; margin:18px 0; }
.hours-filters label { flex:1 1 190px; min-width:0; margin:0; }
.hours-filters > button { margin-bottom:0; }
.hours-table-scroll { width:100%; overflow-x:auto; margin:18px 0; }
.hours-table { width:100%; border-collapse:collapse; font-size:14px; }
.hours-table th, .hours-table td { padding:12px 10px; border-bottom:1px solid var(--line,#e4e4e7); text-align:left; vertical-align:top; }
.hours-table th { color:#56565f; background:#f9f5f6; white-space:nowrap; }
.hours-table td { min-width:95px; }
.hours-table td:first-child { min-width:145px; }
.hours-table small { font-size:12px; color:#666; }
.hours-table .hours-number { text-align:center; min-width:58px; }
.workday-hours-choice { min-width:168px; margin:0; }
.hours-excluded td { color:#73737b; background:#fafafa; }
.hours-manual-entry summary { cursor:pointer; font-weight:700; padding:12px 0; }
.installer-workday-panel { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; align-items:center; padding:14px 16px; margin:14px 0; background:#f7f7f8; border-radius:12px; }
.installer-workday-panel p, .installer-workday-panel .form-actions { margin:6px 0 0; }
@media(max-width:640px) { .hours-filters { gap:12px; } .hours-filters > button { flex:1 1 150px; } .hours-table { font-size:13px; } }

/* GRIP 1.0 – camerabeeld behoudt altijd de echte beeldverhouding. */
.camera-stage{overflow:hidden;background:#111}
.camera-stage video,.camera-stage>img{width:100%;height:100%;object-fit:contain!important;background:#111}
.camera-stage.portrait-frame{aspect-ratio:3/4;min-height:0;max-height:68dvh;margin-inline:auto;width:min(100%,510px)}
.camera-stage.portrait-frame video,.camera-stage.portrait-frame img{aspect-ratio:3/4}
.camera-stage.landscape-frame{aspect-ratio:16/9;min-height:0;width:100%}
.camera-stage.auto-frame{aspect-ratio:auto;min-height:58dvh;width:100%}
.orientation-icon.auto>span{width:54px;height:40px;border-style:dashed}
.sequence-review-top{padding:16px 16px 0;scroll-margin-top:120px}
.sequence-review-top .sequence-review{margin:0}
.sequence-step-actions{padding-top:12px;padding-bottom:4px}
.sequence-retake-details{margin:12px 16px 16px;border:1px solid var(--line);border-radius:12px;background:#fafbfb}
.sequence-retake-details>summary{padding:12px 14px;cursor:pointer;font-weight:850;color:var(--brand)}
.sequence-retake-details>.question-list{padding:0 14px 14px}

/* Herstelfoto's gebruiken de volwaardige camerastroom en compacte voorbeelden. */
.solution-photo-section{display:grid;gap:12px;margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fafbfb}
.solution-photo-section p{margin:4px 0 0;font-size:12px;color:var(--muted)}
.solution-camera-button{width:min(100%,320px);gap:8px}
.solution-photo-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}
.solution-photo-preview figure{position:relative;margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.solution-photo-preview img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}
.solution-photo-preview figcaption{padding:6px;font-size:10px;font-weight:750}
.solution-photo-remove{position:absolute;right:5px;top:5px;width:28px;height:28px;padding:0;border-radius:50%;background:rgba(20,20,22,.78);color:#fff}

/* Meldingskop: titel, badges en chevron hebben ieder een eigen rij/kolom. */
.message-row-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 12px}
.message-row-copy{grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}
.message-statuses{grid-column:1/-1;grid-row:2;display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.message-row-summary::after{grid-column:2;grid-row:1;align-self:center;margin:0}
.message-status-badge{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border:1px solid #bfc8c5;border-radius:999px;background:#eef2f1;color:#303735;font-size:11px;font-weight:900;white-space:normal}
.message-status-badge.open{background:#eef2f1;color:#37413e}
.message-status-badge.closed{background:#e5f4ea;border-color:#9dceb0;color:#176b35}
.message-status-badge.blocking{background:#fde7ed;border-color:#e3a3b5;color:#99123b}
.message-status-badge.reported{background:#e8f1ff;border-color:#9fc2ee;color:#1458a4}
.message-row-details.reported-solution{border-color:#77aee5;box-shadow:0 0 0 3px rgba(20,88,164,.08)}
.action-point-resolution{display:grid;gap:4px;margin-top:10px;padding:10px 12px;border-radius:10px;background:#eaf5ed;font-size:12px}
.action-point-resolution small,.action-point-completion small{color:var(--muted)}

/* Compacte facturatiestatus in de bestaande deurlocatiekaart. */
.location-invoice-compact{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:9px;padding-top:9px;border-top:1px solid rgba(27,27,29,.12)}
.location-invoice-label{font-size:11px;font-weight:900;color:var(--muted)}
.location-invoice-compact .invoice-status-pill{margin:0}
.location-grip-link{padding:4px 7px;border:0;background:transparent;color:var(--brand);font-size:11px;font-weight:900;text-decoration:underline}

/* Facturatiestatussen en uitklapbare groepen. */
.invoice-status-pill.changes{background:#fff0df;color:#8b4a00;border:1px solid #e9b46f}
.invoice-status-pill.blocked{background:#fde7ed;color:#99123b;border:1px solid #e3a3b5}
.invoice-status-pill.approved{background:#e5f4ea;color:#176b35;border:1px solid #9dceb0}
.invoice-admin-group{display:grid;gap:10px;margin:0;border:0}
.invoice-admin-group>summary{list-style:none}.invoice-admin-group>summary::-webkit-details-marker{display:none}
.invoice-status-group-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:48px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:#f7f8f8;cursor:pointer}
.invoice-status-group-header.fixed{grid-template-columns:minmax(0,1fr) auto;cursor:default}
.invoice-status-group-label{display:inline-flex;width:max-content;max-width:100%;padding:6px 11px;border-radius:999px;background:#eef2f1;font-size:13px;font-weight:950}
.invoice-status-group-label.available{background:#eef0f1;color:#50565b}.invoice-status-group-label.pending{background:#fff0d5;color:#875600}.invoice-status-group-label.changes{background:#fff0df;color:#8b4a00}.invoice-status-group-label.blocked{background:#fde7ed;color:#99123b}.invoice-status-group-label.approved{background:#e5f4ea;color:#176b35}.invoice-status-group-label.invoiced{background:#e8f1ff;color:#1458a4}
.invoice-group-chevron{font-size:18px;color:var(--muted);transition:transform .18s ease}.invoice-admin-group[open] .invoice-group-chevron{transform:rotate(180deg)}
.invoice-status-group-body{display:grid;gap:9px}
.invoice-review-note{display:grid;gap:4px;margin:0 14px 10px;padding:10px 12px;border-radius:10px;background:#f2f4f4;font-size:12px}.invoice-review-note small{color:var(--muted)}
.invoice-waiting-copy,.invoice-blocked-copy{margin:0 14px 10px!important;padding:9px 11px;border-radius:9px;font-size:12px!important}
.invoice-waiting-copy{background:#fff7e8;color:#704800}.invoice-blocked-copy{background:#fff0f4;color:#8d1036}
.invoice-document-actions,.invoice-admin-review-actions,.invoice-admin-action-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.invoice-document-actions{padding:0 14px 10px}.invoice-admin-action-row{justify-content:space-between;padding:0}.invoice-admin-review-actions{padding:0 14px 10px}.invoice-document-actions.admin{padding:0 14px 10px;margin-left:auto}
.invoice-document-actions button:disabled,.invoice-admin-review-actions button:disabled{opacity:.45;cursor:not-allowed}

@media(max-width:700px){
  .message-row-summary small{max-width:100%;white-space:normal;overflow:visible}
  .message-statuses{align-items:flex-start}
  .invoice-status-group-header{grid-template-columns:minmax(0,1fr) auto auto}
  .invoice-admin-action-row,.invoice-document-actions,.invoice-admin-review-actions{align-items:stretch}
  .invoice-document-actions button,.invoice-admin-review-actions button{flex:1 1 140px}
  .invoice-document-actions.admin{margin-left:0}
  .camera-stage.portrait-frame{max-height:66dvh}
}

/* Camera hotfix: uitleg vooraf, daarna beeld over het volledige venster. */
#cameraDialog.camera-immersive {
  position:fixed; inset:0; margin:0; padding:0; border:0;
  width:100vw; height:100vh; height:100dvh;
  max-width:none; max-height:none; overflow:hidden; background:#000;
}
#cameraDialog [hidden] { display:none!important; }
#cameraDialog.camera-immersive .camera-card,
#cameraDialog.camera-immersive .camera-layout,
#cameraDialog.camera-immersive .camera-main-panel {
  position:absolute; inset:0; display:block; width:100%; height:100%;
  min-height:0; padding:0; margin:0; border:0; gap:0; background:#000;
}
#cameraDialog.camera-immersive .camera-guide-panel,
#cameraDialog.camera-immersive .camera-topbar-content,
#cameraDialog.camera-immersive .camera-review-strip { display:none; }
#cameraDialog.camera-immersive .camera-stage {
  display:block; position:absolute; inset:0; width:100%; height:100%;
  min-height:0; max-height:none; margin:0; border:0; border-radius:0;
  aspect-ratio:auto; background:#000;
}
#cameraDialog.camera-immersive .camera-stage video,
#cameraDialog.camera-immersive .camera-stage > img {
  position:absolute; inset:0; display:block; width:100%; height:100%;
  min-width:0; min-height:0; max-width:100%; max-height:none;
  aspect-ratio:auto; object-fit:contain!important; background:#000;
}
#cameraDialog.camera-immersive .camera-topbar {
  position:absolute; inset:auto; top:max(12px,env(safe-area-inset-top));
  right:max(12px,env(safe-area-inset-right)); width:44px; height:44px;
  min-height:0; margin:0; padding:0; z-index:4;
}
#cameraDialog.camera-immersive #cameraClose {
  position:static; width:44px; height:44px; background:rgba(0,0,0,.65);
  color:#fff; border:1px solid rgba(255,255,255,.5);
}
#cameraDialog.camera-immersive .camera-status {
  position:absolute; left:max(12px,env(safe-area-inset-left));
  right:max(12px,env(safe-area-inset-right));
  bottom:calc(108px + env(safe-area-inset-bottom)); z-index:3;
  margin:0; padding:8px 12px; min-height:0; color:#fff;
  background:rgba(0,0,0,.65); border-radius:12px; pointer-events:none;
}
#cameraDialog.camera-immersive .camera-actions {
  position:absolute; bottom:max(12px,env(safe-area-inset-bottom));
  left:max(12px,env(safe-area-inset-left)); right:max(12px,env(safe-area-inset-right));
  z-index:3; display:flex; flex-wrap:nowrap; gap:12px; align-items:center;
  justify-content:center; min-height:76px; margin:0; padding:8px;
  background:rgba(0,0,0,.5); border-radius:16px;
}
#cameraDialog.camera-immersive .camera-actions button { min-width:0; min-height:48px; }
#cameraDialog.camera-immersive .camera-shutter { flex:0 0 64px; width:64px; height:64px; }
#cameraDialog.camera-immersive #cameraRetake,
#cameraDialog.camera-immersive #cameraUse { flex:0 1 260px; }

/* Oriëntatie blijft in tekst uitgelegd; de kleur geeft direct visuele feedback. */
.camera-status[data-orientation]::before {
  content:""; display:inline-block; width:12px; height:12px;
  margin-right:8px; border-radius:50%; vertical-align:-1px;
  box-shadow:0 0 0 2px rgba(255,255,255,.25);
}
.camera-status[data-orientation="good"]::before { background:#4ade80; }
.camera-status[data-orientation="bad"]::before { background:#ff5964; }
