:root{--bg:#f5f6f8;--panel:#fff;--text:#1c2430;--muted:#667085;--line:#dfe3e8;--red:#d8262f;--red-dark:#a81720;--green:#087f5b;--amber:#b54708;--nav:#191d24;--shadow:0 1px 2px rgba(16,24,40,.05)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}body{margin:0}.topbar{background:var(--nav);color:#fff;display:flex;align-items:center;gap:24px;padding:0 24px;min-height:64px;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800;white-space:nowrap}.brandmark{background:var(--red);padding:7px 9px;border-radius:8px}.topbar nav{display:flex;align-items:center;gap:4px;flex:1;overflow:auto}.topbar nav a,.topbar .user a{color:#e6e8eb;text-decoration:none;padding:10px 9px;border-radius:7px;white-space:nowrap}.topbar nav a:hover{background:#2a303a}.user{font-size:13px;white-space:nowrap;color:#cbd0d8}.container{max-width:1500px;margin:0 auto;padding:28px}.pagehead{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}h1{font-size:28px;margin:0}h2{font-size:18px;margin:0 0 14px}p{line-height:1.55}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.card{padding:20px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:4px}.card:hover{border-color:#b8bec7}.kpi{font-size:31px;font-weight:800}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.panel{padding:20px;margin-bottom:18px}.statrow{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}button,.button{appearance:none;border:0;background:var(--red);color:#fff;border-radius:8px;padding:9px 13px;font:inherit;font-weight:650;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;line-height:1.2}button:hover,.button:hover{background:var(--red-dark)}[data-pwa-install][hidden]{display:none!important}button.secondary,.button.secondary{background:#eef0f3;color:#252a32;border:1px solid #d9dde3}button.secondary:hover,.button.secondary:hover{background:#e1e4e9}.danger{background:#8b1520}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.actions.vertical{flex-direction:column;align-items:stretch}.actions.vertical form,.actions.vertical button{width:100%}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}.search,.reportpicker,.inlineform{display:flex;gap:8px;align-items:end;flex-wrap:wrap}input,select,textarea{width:100%;border:1px solid #cdd3da;border-radius:8px;background:#fff;padding:9px 10px;font:inherit;color:inherit}input:focus,select:focus,textarea:focus{outline:2px solid rgba(216,38,47,.18);border-color:var(--red)}.search input{width:320px}.reportpicker select{min-width:420px}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#5b6471;background:#f9fafb;position:sticky;top:0}tr:last-child td{border-bottom:0}tr:hover td{background:#fcfcfd}td a{color:#a81720;font-weight:600;text-decoration:none}.nowrap{white-space:nowrap}.empty{padding:32px!important;text-align:center!important;color:var(--muted)}.muted{color:var(--muted)}.badge{display:inline-flex;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:650;background:#eef0f3}.badge.good{background:#d8f3e8;color:#086646}.badge.bad{background:#fde2e4;color:#a81720}.badge.neutral{background:#fff1d6;color:#915d00}.formgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px}.formgrid label,.inlineform label,.authcard label{font-size:13px;font-weight:650;display:flex;flex-direction:column;gap:6px}.formgrid .wide{grid-column:1/-1}.check{min-height:40px;display:flex;align-items:center;gap:8px;font-weight:500}.check input{width:auto}.pagination{padding:14px 0;color:var(--muted);font-size:14px}.pagination a{margin-left:12px}.authcard{max-width:440px;margin:60px auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px}.authcard form{display:grid;gap:16px}.flash{padding:12px 14px;border-radius:9px;margin-bottom:16px;background:#d8f3e8;color:#086646;border:1px solid #b9e8d5}.flash.bad,.warning.dangerbox{background:#fde2e4;color:#86141d;border-color:#f6c4c8}.warning{padding:14px 16px;border-radius:10px;margin-bottom:18px;background:#fff1d6;border:1px solid #f1d499;color:#7a5000}.compactlist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.compactlist a{display:flex;flex-direction:column;padding:10px;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:inherit}.compactlist a:hover{border-color:#b8bec7}.compactlist small{color:var(--muted);margin-top:3px}.config{display:grid;grid-template-columns:180px 1fr;gap:8px}.config dt{font-weight:700}.config dd{margin:0}.labels{display:grid;grid-template-columns:repeat(3,1fr);gap:8mm;background:white;padding:8mm}.label{border:1px dashed #aaa;min-height:32mm;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5mm}.label strong{font-size:16pt}.label span{font-size:11pt;margin-top:2mm}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}ul{line-height:1.8}@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.formgrid{grid-template-columns:repeat(2,1fr)}.compactlist{grid-template-columns:repeat(2,1fr)}.topbar{align-items:flex-start;flex-wrap:wrap;padding:12px 16px;gap:8px}.topbar nav{order:3;width:100%}.user{margin-left:auto}.container{padding:18px}}@media(max-width:650px){.cards,.formgrid,.compactlist{grid-template-columns:1fr}.container{padding:12px}.search input,.reportpicker select{width:100%;min-width:0}.toolbar{align-items:stretch}.toolbar>form{width:100%}.topbar{position:static}.labels{grid-template-columns:1fr}.pagehead h1{font-size:23px}}@media print{body{background:#fff}.topbar,.noprint,.toolbar,.actions,.pagehead{display:none!important}.container{max-width:none;padding:0}.panel,.tablewrap{border:0;box-shadow:none}.panel{padding:0}.tablewrap{overflow:visible}table{font-size:10pt}th{position:static;background:#eee!important}.labels{padding:0;gap:4mm}.label{break-inside:avoid}.report h2{font-size:16pt;margin-bottom:10mm}}
.mt8{margin-top:8px}
.logoutform{display:inline-flex;margin-left:8px}.linkbutton{background:transparent!important;color:#e6e8eb!important;padding:8px 6px!important;font-size:13px}.linkbutton:hover{text-decoration:underline}.user{display:flex;align-items:center}
.group-assignment .group-number{width:82px;min-width:82px;text-align:center;font-variant-numeric:tabular-nums;padding:7px 8px}.group-assignment td,.group-assignment th{vertical-align:middle}.group-save{margin-top:14px}.range-number{width:110px;max-width:100%;font-variant-numeric:tabular-nums}.group-assignment tbody tr:focus-within td{background:#fff8f8}@media(max-width:650px){.group-assignment{min-width:920px}.group-save button{width:100%}}

/* Beheeruitbreidingen */
.group-assignment input.group-number{min-width:7.5rem;max-width:9rem}.range-number{min-width:7rem}.range-mode{min-width:9rem}.cleanup-options{display:grid;gap:10px;margin-bottom:18px}.cleanup-options .check{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fafbfc}.mt8{margin-top:8px}

/* Microsoft Entra ID */
.entra-login{text-align:center}.entra-login>p{text-align:left}.microsoft-button{width:100%;min-height:48px;font-size:16px;gap:10px;background:#2f2f2f}.microsoft-button:hover{background:#111}.breakglass-link{font-size:12px;text-align:center!important;margin:20px 0 0}.breakglass-link a{color:var(--muted)}


/* Consistente bewerkingsschermen */
.entity-form{display:block}.record-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.record-actions-bottom{margin-top:4px;margin-bottom:0}.record-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.record-column{display:grid;gap:18px;min-width:0}.record-section{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:18px;margin:0}.record-section h2{font-size:16px;margin:0 0 14px;padding-bottom:9px;border-bottom:1px solid var(--line)}.record-section-body{padding-top:14px}.record-row{display:grid;gap:12px;margin-bottom:12px;align-items:end}.record-row:last-child{margin-bottom:0}.record-row-1{grid-template-columns:1fr}.record-row-2{grid-template-columns:repeat(2,minmax(0,1fr))}.record-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.record-row-4{grid-template-columns:repeat(4,minmax(0,1fr))}.record-row-5{grid-template-columns:repeat(5,minmax(0,1fr))}.record-row-6{grid-template-columns:repeat(6,minmax(0,1fr))}.record-field{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:13px;font-weight:650}.record-field>span:first-child{min-height:18px}.record-field textarea{resize:vertical;min-height:92px}.record-field.field-narrow{max-width:180px}.record-field.field-compact{max-width:220px}.record-check{min-height:40px;display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #cdd3da;border-radius:8px;background:#fff;font-weight:500}.record-check input{width:auto;margin:0;flex:0 0 auto}.record-bool{align-self:end}.record-bool .record-check{min-height:40px;height:40px}.record-top{margin-bottom:18px}.record-build-ranges{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:2px 0 0}.record-build-ranges-label{font-size:13px;font-weight:700;color:var(--muted);margin-right:2px}.build-range-chip{display:inline-flex;align-items:center;border:1px solid #d9dde3;background:#f8f9fb;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700;color:#3c4553}.record-section-collapsed{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);margin:18px 0;padding:0}.record-section-collapsed summary{cursor:pointer;font-weight:750;padding:15px 18px}.record-section-collapsed[open] summary{border-bottom:1px solid var(--line)}.record-section-collapsed .record-section-body{padding:18px}.entity-form input:disabled,.entity-form select:disabled,.entity-form textarea:disabled{background:#f3f4f6;color:#5e6672;opacity:1}.entity-form input[readonly]{background:#f3f4f6;color:#5e6672}.entity-form .danger{margin-left:auto}
@media(max-width:1000px){.record-layout{grid-template-columns:1fr}.record-row-4{grid-template-columns:repeat(2,minmax(0,1fr))}.record-row-5,.record-row-6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.record-row-2,.record-row-3,.record-row-4,.record-row-5,.record-row-6{grid-template-columns:1fr}.record-field.field-narrow,.record-field.field-compact{max-width:none}.record-actions{align-items:stretch}.record-actions>.actions{width:100%}.record-actions>.actions>*{flex:1}.record-section{padding:14px}}


body.desktop-first{background:#f5f6f8 url('jvw-vlag-donkerrood-970.webp') center top / cover no-repeat;position:relative;}
body.desktop-first::before{content:'';position:fixed;inset:0;background:rgba(245,246,248,.86);pointer-events:none;z-index:0;}
.topbar,.container{position:relative;z-index:1}
.brandmark{display:none}
.brandlogo{height:42px;width:auto;display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25));}
.topbar{background:rgba(25,29,36,.94);backdrop-filter:blur(2px);}
.container{max-width:1760px;padding:18px 22px 22px;}
.pagehead{margin-bottom:12px}
h1{font-size:25px}
.panel,.record-section{background:rgba(255,255,255,.96)}
.record-top .record-section{margin-bottom:10px}
.record-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.record-column,.record-section-body{display:grid;gap:12px}
.record-section{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:0;box-shadow:var(--shadow)}
.record-section h2{margin:0 0 10px;font-size:16px}
.record-row{display:grid;gap:10px;align-items:end}
.record-row-1{grid-template-columns:1fr}.record-row-2{grid-template-columns:repeat(2,minmax(0,1fr))}.record-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.record-row-4{grid-template-columns:repeat(4,minmax(0,1fr))}.record-row-5{grid-template-columns:repeat(5,minmax(0,1fr))}.record-row-6{grid-template-columns:repeat(6,minmax(0,1fr))}
.record-field{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:650}
.record-field>span{font-size:12px;color:#48505c;font-weight:700}
.record-field input,.record-field select,.record-field textarea{padding:8px 10px;border-radius:8px}
.record-field textarea{min-height:96px;resize:vertical}
.record-bool .record-check{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 2px}
.record-bool .record-check input{width:auto;margin:0;order:0}
.record-bool .record-check span{font-size:13px;color:var(--text);font-weight:600}
.field-narrow{max-width:180px}.field-compact{max-width:none}
.record-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;flex-wrap:wrap}
.record-actions-bottom{margin-top:12px}
.record-build-ranges.vertical{display:flex;flex-direction:column;gap:4px;padding-top:2px}
.record-build-ranges-label{font-size:12px;color:#667085;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.build-range-list{display:grid;gap:2px}
.build-range-line{font-size:13px;font-weight:700;color:#344054}
.volunteer-edit-form .record-top .record-section .record-row-2{grid-template-columns:minmax(0,220px) minmax(0,220px)}
.volunteer-edit-form .record-section:not(.record-section-collapsed)+.record-section{margin-top:0}
.volunteer-edit-form .record-row-6{grid-template-columns:repeat(6,minmax(0,1fr))}
.volunteer-edit-form .record-row-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.volunteer-edit-form .record-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.volunteer-edit-form .record-row textarea{min-height:88px}
.volunteer-edit-form .record-section h2{font-size:15px}
.volunteer-edit-form .record-layout{gap:12px}
.volunteer-edit-form details.record-section{margin-top:10px}
.logoutform{display:inline;margin-left:8px}.linkbutton{background:transparent;border:0;color:#e6e8eb;padding:0;cursor:pointer;font:inherit}
@media (max-width: 1200px){
  .container{padding:16px}
  .record-layout,.volunteer-edit-form .record-layout{grid-template-columns:1fr}
  .record-row-6,.record-row-5,.record-row-4,.record-row-3,.record-row-2{grid-template-columns:1fr 1fr}
}
@media (max-width: 800px){
  .record-row-6,.record-row-5,.record-row-4,.record-row-3,.record-row-2{grid-template-columns:1fr}
}


/* Vrijwilligerslijst en compacte desktop-bewerking */
.sortable-th a{display:block;color:#344054;text-decoration:none;white-space:nowrap}.sortable-th a:hover{color:var(--red-dark);text-decoration:underline}.volunteer-name-link{font-weight:750;color:var(--red-dark);text-decoration:none}.volunteer-name-link:hover{text-decoration:underline}.volunteer-table td,.volunteer-table th{vertical-align:middle}.volunteer-sort-panel{padding:12px 14px;margin-bottom:14px}.volunteer-sort-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.sort-level{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(120px,.85fr);gap:8px}.sort-level label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700}.sort-level select{padding:7px 8px}.sort-actions{margin-top:10px}.inline-delete-form{margin:0}.compact-button{padding:6px 9px;font-size:13px}

.volunteer-edit-form{font-size:13px}.volunteer-edit-form .record-actions{margin-bottom:8px}.volunteer-main-grid{display:grid;grid-template-columns:minmax(230px,.7fr) minmax(540px,1.7fr) minmax(460px,1.25fr);gap:10px;align-items:stretch;margin-bottom:10px}.volunteer-slot>.record-section{height:100%}.volunteer-slot-jvw .record-section-body,.volunteer-slot-jvw.record-column{gap:6px}.volunteer-slot-jvw .record-row{margin-bottom:5px}.volunteer-slot-jvw .record-row-2{grid-template-columns:1fr 1fr}.volunteer-slot-jvw .record-build-ranges{padding-top:0}.volunteer-slot-jvw .build-range-list{gap:1px}.volunteer-slot-jvw .build-range-line{line-height:1.25}.volunteer-slot-person .record-row{margin-bottom:6px}.volunteer-slot-attendance .record-row-6{grid-template-columns:repeat(6,minmax(0,1fr))}.volunteer-slot-attendance .record-row{margin-bottom:0}.volunteer-safety-row{margin-bottom:10px}.volunteer-safety-row .record-section{padding:9px 12px}.volunteer-safety-row .record-row{margin-bottom:5px}.volunteer-safety-row .record-row-4{grid-template-columns:repeat(4,minmax(0,1fr))}.volunteer-row2{gap:10px}.volunteer-row2 .record-section{height:100%}.volunteer-edit-form .record-section{padding:10px 12px;border-radius:10px}.volunteer-edit-form .record-section h2{font-size:14px;margin-bottom:7px;padding-bottom:6px}.volunteer-edit-form .record-row{gap:7px;margin-bottom:6px}.volunteer-edit-form .record-field{gap:3px}.volunteer-edit-form .record-field>span{font-size:11px;min-height:15px}.volunteer-edit-form input,.volunteer-edit-form select{min-height:33px;padding:5px 8px}.volunteer-edit-form .record-check{min-height:33px;height:33px;padding:4px 7px}.volunteer-edit-form .record-field textarea{min-height:58px;height:58px;padding:6px 8px}.volunteer-row2 .record-column:last-child .record-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.volunteer-edit-form details.record-section{margin-top:8px}.volunteer-edit-form details.record-section summary{padding:8px 12px;font-size:12px}.volunteer-edit-form .record-actions-bottom{display:none}.volunteer-edit-form+.record-actions-bottom{display:none}
@media(max-width:1450px){.volunteer-sort-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1250px){.volunteer-main-grid{grid-template-columns:1fr}.volunteer-slot-attendance .record-row-6{grid-template-columns:repeat(6,minmax(0,1fr))}.volunteer-sort-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.volunteer-sort-grid,.sort-level{grid-template-columns:1fr}.volunteer-slot-attendance .record-row-6{grid-template-columns:repeat(6,minmax(0,1fr))}}


.autosave-status{display:inline-flex;align-items:center;min-height:34px;padding:6px 9px;border-radius:7px;font-size:12px;font-weight:700;background:#eef0f3;color:#5b6471;white-space:nowrap}
.autosave-status[data-state="saving"]{background:#fff1d6;color:#915d00}
.autosave-status[data-state="saved"]{background:#d8f3e8;color:#086646}
.autosave-status[data-state="error"]{background:#fde2e4;color:#a81720;white-space:normal;max-width:420px}

/* Beheerbare WYSIWYG-formulierindelingen */
.custom-record-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;align-items:start}.custom-layout-span-12{grid-column:span 12}.custom-layout-span-6{grid-column:span 6}.custom-layout-span-4{grid-column:span 4}.custom-record-layout>.custom-layout-span-12>.record-section,.custom-record-layout>.custom-layout-span-6>.record-section,.custom-record-layout>.custom-layout-span-4>.record-section{height:100%}.custom-record-layout .record-section-collapsed{margin:0}
.layout-editor-status{display:flex;justify-content:space-between;gap:24px;align-items:center}.layout-editor-status>div{max-width:850px}.layout-editor-tabs{display:flex;gap:6px;margin:0 0 14px}.layout-editor-tabs a{padding:9px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);text-decoration:none;font-weight:700}.layout-editor-tabs a.active{background:var(--nav);border-color:var(--nav);color:#fff}.layout-editor-help{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:11px 14px;font-size:13px}.layout-editor-help strong{margin-right:8px}.layout-editor-form{margin-bottom:18px}.layout-editor-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:12px;padding:12px 14px;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:10px;position:sticky;top:72px;z-index:8}.layout-editor-dirty .layout-editor-toolbar{border-color:#e2a83b;box-shadow:0 0 0 2px rgba(226,168,59,.12)}.layout-editor-canvas{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;align-items:start;padding:12px;border:1px dashed #b8bec7;border-radius:12px;background:rgba(248,249,251,.9);min-height:220px}.layout-editor-section{border:1px solid #cfd5dd;border-radius:10px;background:#fff;box-shadow:var(--shadow);padding:10px;min-width:0}.layout-editor-section.is-dragging{opacity:.45}.layout-editor-span-12{grid-column:span 12}.layout-editor-span-6{grid-column:span 6}.layout-editor-span-4{grid-column:span 4}.layout-editor-section-head{display:grid;grid-template-columns:38px minmax(180px,1fr) 110px auto auto;gap:8px;align-items:end;padding-bottom:9px;margin-bottom:9px;border-bottom:1px solid var(--line)}.layout-drag-handle{width:36px;height:36px;padding:0;background:#eef0f3;color:#252a32;border:1px solid #d9dde3;cursor:grab;font-size:18px}.layout-drag-handle:active{cursor:grabbing}.layout-title-control,.layout-width-control{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:750;color:#5b6471}.layout-title-control input,.layout-width-control select{padding:6px 8px;min-height:34px}.layout-collapse-control{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;min-height:34px;white-space:nowrap}.layout-collapse-control input{width:auto}.layout-section-actions{display:flex;gap:5px;align-items:center}.layout-editor-rows{display:grid;gap:7px}.layout-editor-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:stretch}.layout-editor-row-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:6px;min-height:52px;padding:7px;border:1px dashed #cdd3da;border-radius:8px;background:#f8f9fb}.layout-editor-row-fields:empty::before{content:'Sleep velden naar deze rij';display:flex;align-items:center;color:#98a2b3;font-size:12px;grid-column:1/-1}.layout-editor-field{min-width:0;border:1px solid #d9dde3;border-radius:7px;background:#fff;padding:7px 8px;cursor:grab;box-shadow:0 1px 1px rgba(16,24,40,.03)}.layout-editor-field:active{cursor:grabbing}.layout-editor-field.is-dragging{opacity:.35}.layout-editor-field span{display:block;font-size:12px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layout-editor-field code{display:block;color:#98a2b3;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.layout-editor-row .row-remove{align-self:center}.layout-editor-section>[data-add-layout-row]{margin-top:7px}.compact-button{min-height:30px}.layout-editor-form .compact-button{padding:5px 8px;font-size:12px}
@media(max-width:1300px){.custom-layout-span-4{grid-column:span 6}.layout-editor-span-4{grid-column:span 6}.layout-editor-section-head{grid-template-columns:36px minmax(160px,1fr) 100px auto}.layout-section-actions{grid-column:2/-1}.layout-editor-row-fields{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}}
@media(max-width:900px){.custom-layout-span-6,.custom-layout-span-4{grid-column:span 12}.layout-editor-span-6,.layout-editor-span-4{grid-column:span 12}.layout-editor-status,.layout-editor-toolbar{align-items:stretch;flex-direction:column}.layout-editor-toolbar{position:static}.layout-editor-row-fields{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}}

/* Flexibele formuliereditor en Excel-achtige lijsten */
.custom-record-layout{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}
.custom-layout-section{flex:0 0 calc(var(--section-width,100%) - 6px);max-width:calc(var(--section-width,100%) - 6px);min-width:240px}
.custom-layout-section>.record-section{height:100%}
.layout-editor-canvas{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}
.layout-editor-section{flex:0 0 calc(var(--section-width,100%) - 6px);max-width:calc(var(--section-width,100%) - 6px);min-width:260px}
.layout-editor-section-head{grid-template-columns:32px minmax(180px,1fr) 105px auto auto;cursor:grab}
.layout-editor-section-head:active{cursor:grabbing}.layout-editor-section-head input,.layout-editor-section-head button{cursor:auto}
.layout-width-control input{padding:6px 8px;min-height:34px}
.layout-editor-field{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:6px;align-items:center;padding:6px}
.field-drag-handle{cursor:grab;font-size:17px;text-align:center;color:#667085}.field-drag-handle:active{cursor:grabbing}
.layout-field-title{display:grid;gap:2px;min-width:0}.layout-field-title input{min-height:30px;padding:5px 7px;font-size:12px;font-weight:700}.layout-field-title code{font-size:9px;color:#98a2b3;overflow:hidden;text-overflow:ellipsis}
.field-title-clear{padding:5px 7px;font-size:10px;white-space:nowrap}
.layout-editor-help span{white-space:nowrap}

.table-head-cell{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:max-content}.table-head-cell>a{flex:1}
.entity-overview-table th[draggable="true"]{cursor:grab}.entity-overview-table th.is-dragging-column{opacity:.45}
.entity-overview-table td,.entity-overview-table th{vertical-align:middle}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#fff8f8}
.one-line-cell{white-space:nowrap;max-width:420px;overflow:hidden;text-overflow:ellipsis}
.overview-name-link{font-weight:750;color:var(--red-dark);text-decoration:none}.overview-name-link:hover{text-decoration:underline}
.list-inline-control{min-width:72px;max-width:180px;padding:5px 7px;border-radius:6px}.list-inline-group{max-width:90px}.list-inline-control.is-saving{opacity:.6}.list-inline-control.is-saved{box-shadow:0 0 0 2px rgba(8,127,91,.22)}.list-inline-control.is-error{box-shadow:0 0 0 2px rgba(168,23,32,.3)}
.list-actions-col{width:1%;white-space:nowrap}

.excel-filter{position:relative}.excel-filter>summary{list-style:none;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:1px solid #d0d5dd;border-radius:5px;background:#fff;cursor:pointer;color:#475467}.excel-filter>summary::-webkit-details-marker{display:none}.excel-filter[open]>summary{background:#eef0f3}
.excel-filter-popover{position:absolute;right:0;top:30px;width:330px;z-index:40;background:#fff;border:1px solid #cfd5dd;border-radius:9px;box-shadow:0 12px 30px rgba(16,24,40,.18);padding:10px;text-transform:none;letter-spacing:0;font-size:13px;color:var(--text)}
.excel-filter-popover>a{display:block;padding:7px 8px;border-radius:6px;color:var(--text);text-decoration:none}.excel-filter-popover>a:hover{background:#f2f4f7}.excel-filter-popover hr{border:0;border-top:1px solid var(--line);margin:7px 0}
.filter-option-search{padding:7px 8px;margin-bottom:6px}.filter-select-all{display:flex;gap:7px;align-items:center;padding:5px 3px;font-weight:700}.filter-select-all input{width:auto}
.filter-option-list{max-height:250px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;border:1px solid var(--line);border-radius:6px;padding:5px}.filter-option-list label{display:flex;align-items:flex-start;gap:7px;padding:4px 3px;font-weight:500;line-height:1.2}.filter-option-list input{width:auto;margin-top:1px}.filter-actions{margin-top:8px}

.sort-dialog{border:0;border-radius:12px;padding:0;box-shadow:0 20px 50px rgba(16,24,40,.25);width:min(880px,92vw)}.sort-dialog::backdrop{background:rgba(16,24,40,.35)}.sort-dialog form{padding:16px}.sort-dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.sort-dialog-head h2{margin:0}.sort-dialog-levels{display:grid;gap:8px}.sort-dialog-level{display:grid;grid-template-columns:130px 1fr 180px;gap:8px;align-items:center}.sort-dialog-level>span{font-weight:700}.sort-dialog-actions{justify-content:flex-end;margin-top:16px}

.duplicate-table td,.duplicate-table th{vertical-align:middle}.compact-check{min-height:auto;white-space:nowrap}.duplicate-ignore-form{margin:0}

@media(max-width:1000px){.custom-layout-section,.layout-editor-section{flex-basis:100%;max-width:100%}.sort-dialog-level{grid-template-columns:1fr}.excel-filter-popover{right:auto;left:0}}
.sort-level-toolbar{display:flex;gap:8px;margin-bottom:10px}.sort-dialog-level[hidden]{display:none}
.list-view-hint{margin:0 0 8px;font-size:12px}

/* Correcties lijsten, WYSIWYG-layout en sorteerpopups */
.filter-select-all,.filter-option-list label{display:grid!important;grid-template-columns:18px minmax(0,1fr);align-items:center!important;column-gap:8px;line-height:1.25}
.filter-select-all input,.filter-option-list label input[type="checkbox"]{width:16px!important;height:16px!important;min-width:16px!important;margin:0!important;justify-self:start}
.filter-select-all span,.filter-option-list label span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.entity-overview-table th[data-col-key="group"],.entity-overview-table td[data-col-key="group"]{width:1%;min-width:82px;max-width:105px;white-space:nowrap}
.entity-overview-table .list-inline-group{width:72px!important;min-width:72px!important;max-width:72px!important}
.entity-overview-table td[data-col-key="name"],.entity-overview-table th[data-col-key="name"]{white-space:nowrap}
.overview-name-link{white-space:nowrap}
.column-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:18px;min-width:18px;height:24px;border-radius:4px;color:#667085;cursor:grab;user-select:none;font-weight:800;letter-spacing:-3px}
.column-drag-handle:hover{background:#eef0f3;color:#252a32}.column-drag-handle:active{cursor:grabbing}


.sort-modal[hidden]{display:none!important}.sort-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(16,24,40,.38)}
.sort-modal-card{width:min(880px,94vw);max-height:90vh;overflow:auto;background:#fff;border:1px solid #d0d5dd;border-radius:12px;box-shadow:0 22px 56px rgba(16,24,40,.28);padding:16px}
body.modal-open{overflow:hidden}
.sort-modal .sort-dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.sort-modal .sort-dialog-head h2{margin:0}

.custom-record-layout,.layout-editor-canvas{display:flex!important;flex-wrap:wrap;gap:12px;align-items:flex-start}
.custom-layout-section,.layout-editor-section{flex:0 0 calc(var(--section-span,100) * 1% - 8px)!important;max-width:calc(var(--section-span,100) * 1% - 8px)!important;min-width:120px!important;width:auto!important}
.custom-layout-section>.record-section{height:100%}
.layout-editor-section{align-self:flex-start}
@media(max-width:1000px){.custom-layout-section,.layout-editor-section{flex-basis:100%!important;max-width:100%!important}}

.group-assignment .group-inline-text{min-width:130px;padding:6px 7px}.group-assignment .group-build-select{min-width:76px;padding:6px 7px}.group-assignment .group-number{width:72px!important;min-width:72px!important;max-width:72px!important}

/* Compacte lijsten en Kinderen-submenu */
.custom-record-layout,.layout-editor-canvas{display:grid!important;grid-template-columns:repeat(100,minmax(0,1fr))!important;gap:12px!important;align-items:start!important}
.custom-layout-section,.layout-editor-section{min-width:0!important;max-width:none!important;width:auto!important;flex:none!important}
.custom-layout-section>.record-section{height:100%}
@media(max-width:1000px){.custom-layout-section,.layout-editor-section{grid-column:1/-1!important}}

.mainnav{overflow:visible!important}.nav-parent{position:relative;display:flex;align-items:center}.nav-parent>a{display:block}.nav-hover-submenu{display:none;position:absolute;left:0;top:100%;min-width:190px;padding:6px;background:#262b33;border:1px solid #3a414b;border-radius:0 0 8px 8px;box-shadow:0 10px 22px rgba(0,0,0,.2);z-index:100}.nav-hover-submenu a{display:block!important;padding:8px 10px!important}.nav-parent:hover .nav-hover-submenu,.nav-parent:focus-within .nav-hover-submenu{display:block}.children-subnav{position:sticky;top:64px;z-index:18;display:flex;gap:6px;padding:7px 22px;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);box-shadow:0 1px 2px rgba(16,24,40,.04)}.children-subnav a{padding:6px 10px;border-radius:6px;text-decoration:none;color:var(--text);font-size:13px;font-weight:700}.children-subnav a:hover{background:#eef0f3}

.entity-overview-wrap{overflow:visible!important}.entity-overview-table{width:100%;table-layout:fixed;font-size:12px}.entity-overview-table th,.entity-overview-table td{padding:7px 5px}.entity-overview-table .table-head-cell{gap:2px;min-width:0}.entity-overview-table .table-head-cell>a,.plain-column-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.column-drag-handle{width:12px!important;min-width:12px!important;font-size:11px;letter-spacing:-3px}.excel-filter>summary{width:20px;height:22px}.excel-filter-popover{width:310px}.excel-filter-popover.open-right{left:0!important;right:auto!important}.excel-filter-popover.open-left{right:0!important;left:auto!important}.entity-overview-table .col-group{width:88px}.entity-overview-table .col-build{width:72px}.entity-overview-table .col-name{width:170px}.entity-overview-table .col-type{width:170px}.entity-overview-table .col-pref1,.entity-overview-table .col-pref2{width:92px}.entity-overview-table .col-age{width:44px;text-align:center}.entity-overview-table .col-together{width:135px}.entity-overview-table .col-notes{width:auto;max-width:180px}.entity-overview-table .list-actions-col,.entity-overview-table td[data-col-key="actions"]{width:88px}.entity-overview-table .compact-button{padding:6px 7px;font-size:11px}.entity-overview-table .list-inline-control{max-width:100%;width:100%;min-width:0}.entity-overview-table .list-inline-group{width:64px!important;min-width:64px!important;max-width:64px!important}.one-line-cell{white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}.overview-name-link{white-space:nowrap!important}


.particulars-wrap{overflow:visible}.particulars-table{table-layout:fixed}.particulars-table th:nth-child(1){width:82px}.particulars-table th:nth-child(2){width:72px}.particulars-table th:nth-child(3){width:230px}.particulars-table th:nth-child(4){width:70px}.particulars-medications{min-height:38px;max-height:100px;resize:vertical;padding:7px 8px}.autosave-status[data-state="saving"]{background:#fff1d6;color:#915d00}.autosave-status[data-state="saved"]{background:#d8f3e8;color:#086646}.autosave-status[data-state="error"]{background:#fde2e4;color:#a81720}
/* Correctie 100-koloms raster: geen 99 afzonderlijke kolomgaps; ruimte zit in sectie-padding. */
.custom-record-layout,.layout-editor-canvas{column-gap:0!important;row-gap:12px!important}
.custom-layout-section,.layout-editor-section{padding-left:6px!important;padding-right:6px!important}


/* oudere layout/popover/submenu stabiliteitsregels */
.custom-record-layout,.layout-editor-canvas{display:flex!important;flex-wrap:wrap!important;align-items:flex-start!important;gap:0!important;grid-template-columns:none!important}
.custom-layout-section,.layout-editor-section{box-sizing:border-box!important;flex:0 0 var(--section-width,100%)!important;max-width:var(--section-width,100%)!important;width:var(--section-width,100%)!important;min-width:0!important;padding:6px!important;grid-column:auto!important}
.custom-layout-section>.record-section{height:100%}
.layout-editor-section-head{display:grid!important;grid-template-columns:30px minmax(120px,1fr) 86px!important;gap:7px!important;align-items:end!important}
.layout-collapse-control{grid-column:2/3}.layout-section-actions{grid-column:1/-1;display:flex;gap:5px;flex-wrap:wrap}.layout-editor-section-head .layout-title-control,.layout-editor-section-head .layout-width-control{min-width:0}.layout-editor-section-head input{min-width:0}
@media(max-width:1000px){.custom-layout-section,.layout-editor-section{flex-basis:100%!important;max-width:100%!important;width:100%!important}}

/* Groep moet leesbaar blijven. */
.entity-overview-table th[data-col-key="group"],.entity-overview-table td[data-col-key="group"],.entity-overview-table .col-group{width:118px!important;min-width:118px!important;max-width:118px!important;white-space:nowrap!important}
.entity-overview-table .list-inline-group{width:92px!important;min-width:92px!important;max-width:92px!important}

/* Filtermenu's staan buiten de tabel in een eigen toplaag. */
.filter-popover-backdrop{position:fixed;inset:0;z-index:5998;background:rgba(245,246,248,.72);backdrop-filter:blur(1px)}
.excel-filter-popover.filter-portal-open{z-index:5999!important;background:#fff!important;opacity:1!important;border:1px solid #cfd5dd!important;box-shadow:0 18px 48px rgba(16,24,40,.28)!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
body.filter-menu-open{overflow:hidden}

/* Hoofdmenu/submenu altijd boven de pagina en zonder muisgat. */
.topbar{z-index:4000!important;overflow:visible!important}.mainnav{overflow:visible!important}.nav-parent{position:relative!important;padding-bottom:8px!important;margin-bottom:-8px!important}.nav-hover-submenu{top:calc(100% - 4px)!important;z-index:4100!important;pointer-events:auto!important;background:#262b33!important}.nav-hover-submenu::before{content:'';position:absolute;left:0;right:0;top:-10px;height:10px}.nav-hover-submenu a{pointer-events:auto!important}
.children-subnav{z-index:3900!important}

/* Sorteervenster volledig afgedekt, geen doorschijnende achterliggende controls. */
.sort-modal{z-index:6000!important;background:rgba(245,246,248,.94)!important}.sort-modal-card{background:#fff!important;opacity:1!important}

.custom-layout-section .record-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))!important}
.layout-editor-section .layout-editor-row-fields{grid-template-columns:repeat(auto-fit,minmax(105px,1fr))!important}

/* 9.4.0 - stabiele niet-sticky navigatie, formulierkolommen en indelingslijsten */
.topbar{position:relative!important;top:auto!important;z-index:40!important;}
.entity-subnav,.children-subnav{position:relative!important;top:auto!important;z-index:20!important;display:flex;gap:6px;padding:7px 22px;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);box-shadow:0 1px 2px rgba(16,24,40,.04)}
.entity-subnav a,.children-subnav a{padding:6px 10px;border-radius:6px;text-decoration:none;color:var(--text);font-size:13px;font-weight:700}.entity-subnav a:hover,.children-subnav a:hover{background:#eef0f3}

/* Nieuwe WYSIWYG-layout: expliciete layoutrijen met kolommen. */
.custom-layout-bands{display:grid;gap:12px;width:100%}
.custom-layout-band{display:flex;align-items:flex-start;width:100%;gap:0}
.custom-layout-column{box-sizing:border-box;flex:0 0 auto;min-width:0;padding:0 6px;display:grid;gap:12px}
.custom-layout-column:first-child{padding-left:0}.custom-layout-column:last-child{padding-right:0}
.custom-layout-column>.record-section{margin:0;width:100%}
@media(max-width:1000px){.custom-layout-band{display:block}.custom-layout-column{width:100%!important;padding:0;margin-bottom:12px}}

.layout-editor-canvas{display:grid!important;grid-template-columns:none!important;gap:14px!important;padding:12px;border:1px dashed #b8bec7;border-radius:12px;background:rgba(248,249,251,.92);min-height:220px}
.layout-editor-band{border:1px solid #c5ccd5;border-radius:11px;background:#f2f4f7;padding:10px;box-shadow:0 1px 2px rgba(16,24,40,.05)}
.layout-editor-band-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}
.layout-editor-columns{display:flex;align-items:flex-start;gap:0;width:100%;min-height:150px}
.layout-editor-column{box-sizing:border-box;flex:0 0 auto;min-width:0;padding:5px;border:1px dashed #98a2b3;border-radius:9px;background:#fff}
.layout-editor-column.is-dragging{opacity:.5}
.layout-editor-column-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:5px 5px 8px;border-bottom:1px solid #e4e7ec;margin-bottom:8px}
.layout-editor-column-head label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700}.layout-editor-column-head input{width:70px!important;padding:5px 6px!important}
.column-layout-handle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid #d0d5dd;border-radius:6px;background:#f8f9fb;cursor:grab;font-weight:800}.column-layout-handle:active{cursor:grabbing}
.layout-editor-column-sections{display:grid;gap:9px;min-height:80px;padding:3px}
.layout-editor-section{width:100%!important;max-width:none!important;min-width:0!important;flex:none!important;padding:8px!important;margin:0!important;border:1px solid #d9dee5;border-radius:8px;background:#fff;box-shadow:none}
.layout-editor-section.is-dragging{opacity:.4}
.layout-editor-section-head{display:grid!important;grid-template-columns:34px minmax(160px,1fr) auto!important;gap:7px!important;align-items:end!important;padding-bottom:7px!important;margin-bottom:7px!important}
.layout-editor-section-head .layout-collapse-control{grid-column:auto!important}.layout-section-actions{grid-column:1/-1!important}
.layout-editor-row-fields{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))!important}
@media(max-width:1000px){.layout-editor-columns{display:block}.layout-editor-column{width:100%!important;margin-bottom:10px}}

/* Overzicht-/indelingstabellen */
.entity-overview-table .table-head-cell>a,.entity-overview-table .plain-column-title,.assignment-overview-table .table-head-cell>a,.assignment-overview-table .plain-column-title{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.15!important;display:block}
.entity-overview-table .col-group,.assignment-overview-table .col-group{width:96px!important;min-width:96px!important;max-width:96px!important}
.entity-overview-table .col-build,.assignment-overview-table .col-build{width:78px!important;min-width:78px!important;max-width:78px!important}
.multi-line-cell{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.3;word-break:break-word}
.assignment-overview-table{table-layout:auto!important;min-width:1100px}.assignment-overview-table th,.assignment-overview-table td{vertical-align:middle}
.assignment-overview-table .col-name{min-width:180px}.assignment-overview-table .col-notes{min-width:220px;max-width:360px}
.assignment-stats{margin-top:16px}
tbody tr[data-row-keyboard-item]:focus{outline:2px solid rgba(216,38,47,.35);outline-offset:-2px}

/* CSP-veilige vrije kolombreedtes voor WYSIWYG (geen inline style nodig) */
.layout-width-10{width:10%!important;flex-basis:10%!important;max-width:10%!important}
.layout-width-11{width:11%!important;flex-basis:11%!important;max-width:11%!important}
.layout-width-12{width:12%!important;flex-basis:12%!important;max-width:12%!important}
.layout-width-13{width:13%!important;flex-basis:13%!important;max-width:13%!important}
.layout-width-14{width:14%!important;flex-basis:14%!important;max-width:14%!important}
.layout-width-15{width:15%!important;flex-basis:15%!important;max-width:15%!important}
.layout-width-16{width:16%!important;flex-basis:16%!important;max-width:16%!important}
.layout-width-17{width:17%!important;flex-basis:17%!important;max-width:17%!important}
.layout-width-18{width:18%!important;flex-basis:18%!important;max-width:18%!important}
.layout-width-19{width:19%!important;flex-basis:19%!important;max-width:19%!important}
.layout-width-20{width:20%!important;flex-basis:20%!important;max-width:20%!important}
.layout-width-21{width:21%!important;flex-basis:21%!important;max-width:21%!important}
.layout-width-22{width:22%!important;flex-basis:22%!important;max-width:22%!important}
.layout-width-23{width:23%!important;flex-basis:23%!important;max-width:23%!important}
.layout-width-24{width:24%!important;flex-basis:24%!important;max-width:24%!important}
.layout-width-25{width:25%!important;flex-basis:25%!important;max-width:25%!important}
.layout-width-26{width:26%!important;flex-basis:26%!important;max-width:26%!important}
.layout-width-27{width:27%!important;flex-basis:27%!important;max-width:27%!important}
.layout-width-28{width:28%!important;flex-basis:28%!important;max-width:28%!important}
.layout-width-29{width:29%!important;flex-basis:29%!important;max-width:29%!important}
.layout-width-30{width:30%!important;flex-basis:30%!important;max-width:30%!important}
.layout-width-31{width:31%!important;flex-basis:31%!important;max-width:31%!important}
.layout-width-32{width:32%!important;flex-basis:32%!important;max-width:32%!important}
.layout-width-33{width:33%!important;flex-basis:33%!important;max-width:33%!important}
.layout-width-34{width:34%!important;flex-basis:34%!important;max-width:34%!important}
.layout-width-35{width:35%!important;flex-basis:35%!important;max-width:35%!important}
.layout-width-36{width:36%!important;flex-basis:36%!important;max-width:36%!important}
.layout-width-37{width:37%!important;flex-basis:37%!important;max-width:37%!important}
.layout-width-38{width:38%!important;flex-basis:38%!important;max-width:38%!important}
.layout-width-39{width:39%!important;flex-basis:39%!important;max-width:39%!important}
.layout-width-40{width:40%!important;flex-basis:40%!important;max-width:40%!important}
.layout-width-41{width:41%!important;flex-basis:41%!important;max-width:41%!important}
.layout-width-42{width:42%!important;flex-basis:42%!important;max-width:42%!important}
.layout-width-43{width:43%!important;flex-basis:43%!important;max-width:43%!important}
.layout-width-44{width:44%!important;flex-basis:44%!important;max-width:44%!important}
.layout-width-45{width:45%!important;flex-basis:45%!important;max-width:45%!important}
.layout-width-46{width:46%!important;flex-basis:46%!important;max-width:46%!important}
.layout-width-47{width:47%!important;flex-basis:47%!important;max-width:47%!important}
.layout-width-48{width:48%!important;flex-basis:48%!important;max-width:48%!important}
.layout-width-49{width:49%!important;flex-basis:49%!important;max-width:49%!important}
.layout-width-50{width:50%!important;flex-basis:50%!important;max-width:50%!important}
.layout-width-51{width:51%!important;flex-basis:51%!important;max-width:51%!important}
.layout-width-52{width:52%!important;flex-basis:52%!important;max-width:52%!important}
.layout-width-53{width:53%!important;flex-basis:53%!important;max-width:53%!important}
.layout-width-54{width:54%!important;flex-basis:54%!important;max-width:54%!important}
.layout-width-55{width:55%!important;flex-basis:55%!important;max-width:55%!important}
.layout-width-56{width:56%!important;flex-basis:56%!important;max-width:56%!important}
.layout-width-57{width:57%!important;flex-basis:57%!important;max-width:57%!important}
.layout-width-58{width:58%!important;flex-basis:58%!important;max-width:58%!important}
.layout-width-59{width:59%!important;flex-basis:59%!important;max-width:59%!important}
.layout-width-60{width:60%!important;flex-basis:60%!important;max-width:60%!important}
.layout-width-61{width:61%!important;flex-basis:61%!important;max-width:61%!important}
.layout-width-62{width:62%!important;flex-basis:62%!important;max-width:62%!important}
.layout-width-63{width:63%!important;flex-basis:63%!important;max-width:63%!important}
.layout-width-64{width:64%!important;flex-basis:64%!important;max-width:64%!important}
.layout-width-65{width:65%!important;flex-basis:65%!important;max-width:65%!important}
.layout-width-66{width:66%!important;flex-basis:66%!important;max-width:66%!important}
.layout-width-67{width:67%!important;flex-basis:67%!important;max-width:67%!important}
.layout-width-68{width:68%!important;flex-basis:68%!important;max-width:68%!important}
.layout-width-69{width:69%!important;flex-basis:69%!important;max-width:69%!important}
.layout-width-70{width:70%!important;flex-basis:70%!important;max-width:70%!important}
.layout-width-71{width:71%!important;flex-basis:71%!important;max-width:71%!important}
.layout-width-72{width:72%!important;flex-basis:72%!important;max-width:72%!important}
.layout-width-73{width:73%!important;flex-basis:73%!important;max-width:73%!important}
.layout-width-74{width:74%!important;flex-basis:74%!important;max-width:74%!important}
.layout-width-75{width:75%!important;flex-basis:75%!important;max-width:75%!important}
.layout-width-76{width:76%!important;flex-basis:76%!important;max-width:76%!important}
.layout-width-77{width:77%!important;flex-basis:77%!important;max-width:77%!important}
.layout-width-78{width:78%!important;flex-basis:78%!important;max-width:78%!important}
.layout-width-79{width:79%!important;flex-basis:79%!important;max-width:79%!important}
.layout-width-80{width:80%!important;flex-basis:80%!important;max-width:80%!important}
.layout-width-81{width:81%!important;flex-basis:81%!important;max-width:81%!important}
.layout-width-82{width:82%!important;flex-basis:82%!important;max-width:82%!important}
.layout-width-83{width:83%!important;flex-basis:83%!important;max-width:83%!important}
.layout-width-84{width:84%!important;flex-basis:84%!important;max-width:84%!important}
.layout-width-85{width:85%!important;flex-basis:85%!important;max-width:85%!important}
.layout-width-86{width:86%!important;flex-basis:86%!important;max-width:86%!important}
.layout-width-87{width:87%!important;flex-basis:87%!important;max-width:87%!important}
.layout-width-88{width:88%!important;flex-basis:88%!important;max-width:88%!important}
.layout-width-89{width:89%!important;flex-basis:89%!important;max-width:89%!important}
.layout-width-90{width:90%!important;flex-basis:90%!important;max-width:90%!important}
.layout-width-91{width:91%!important;flex-basis:91%!important;max-width:91%!important}
.layout-width-92{width:92%!important;flex-basis:92%!important;max-width:92%!important}
.layout-width-93{width:93%!important;flex-basis:93%!important;max-width:93%!important}
.layout-width-94{width:94%!important;flex-basis:94%!important;max-width:94%!important}
.layout-width-95{width:95%!important;flex-basis:95%!important;max-width:95%!important}
.layout-width-96{width:96%!important;flex-basis:96%!important;max-width:96%!important}
.layout-width-97{width:97%!important;flex-basis:97%!important;max-width:97%!important}
.layout-width-98{width:98%!important;flex-basis:98%!important;max-width:98%!important}
.layout-width-99{width:99%!important;flex-basis:99%!important;max-width:99%!important}
.layout-width-100{width:100%!important;flex-basis:100%!important;max-width:100%!important}
@media(max-width:1000px){.custom-layout-column[class*="layout-width-"],.layout-editor-column[class*="layout-width-"]{width:100%!important;flex-basis:100%!important;max-width:100%!important}}

/* 9.5.0 - compactere naamregel en Site-vinkveld in Kinderenoverzicht */
.volunteer-edit-form .record-row-3:has(> .field-narrow){grid-template-columns:minmax(0,1fr) minmax(120px,180px) minmax(0,1fr)}
.volunteer-edit-form .record-row-3:has(> .field-narrow)>.field-narrow{max-width:none;width:100%}
.list-checkbox-wrap{display:flex;align-items:center;justify-content:center;min-height:32px;cursor:pointer}
.list-inline-checkbox{width:18px!important;height:18px!important;min-width:18px;margin:0;accent-color:var(--red);cursor:pointer}
.list-inline-checkbox:disabled{cursor:default;opacity:.75}
.entity-overview-table .col-site{width:62px;min-width:62px;max-width:62px;text-align:center}
.entity-overview-table th.col-site .table-head-cell{justify-content:center}
@media(max-width:650px){.volunteer-edit-form .record-row-3:has(> .field-narrow){grid-template-columns:1fr}.volunteer-edit-form .record-row-3:has(> .field-narrow)>.field-narrow{max-width:none}}

/* 9.6.0 - zoeken in bewerkingsschermen, kaartmarkering en verwijderbare WYSIWYG-velden */
.edit-record-search{padding:12px 14px;margin-bottom:14px}.edit-record-search .search{align-items:center}.edit-record-search .search input{width:min(520px,100%)}.edit-search-results{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.edit-search-results a{display:flex;flex-direction:column;min-width:220px;max-width:360px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);text-decoration:none}.edit-search-results a:hover{border-color:#b8bec7;background:#fafbfc}.edit-search-results small{color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.child-internal-notes textarea{transition:background-color .15s ease,border-color .15s ease}.child-internal-notes-yellow textarea{background:#fff4a8!important;border-color:#d8b900!important}.child-internal-notes-red textarea{background:#ffd1d5!important;border-color:#d8262f!important}
.layout-hidden-fields{padding:12px 14px}.layout-hidden-fields>p{margin:4px 0 10px}.layout-hidden-field-list{display:flex;gap:7px;flex-wrap:wrap}.layout-editor-field{grid-template-columns:24px minmax(0,1fr) auto auto!important}.field-remove{padding:5px 7px!important;font-size:10px!important;white-space:nowrap}
@media(max-width:700px){.layout-editor-field{grid-template-columns:24px minmax(0,1fr)!important}.layout-editor-field .field-title-clear,.layout-editor-field .field-remove{grid-column:2}.edit-search-results a{max-width:none;width:100%}}


/* 9.6.2 - vrijwilligersvoorkeuren op één regel */
table.entity-overview-table[data-reorder-table="volunteers"] .col-pref1,
table.entity-overview-table[data-reorder-table="volunteers"] .col-pref2{width:128px!important;min-width:128px!important;max-width:128px!important;white-space:nowrap!important}
table.entity-overview-table[data-reorder-table="volunteers"] th.col-pref1 .table-head-cell>a,
table.entity-overview-table[data-reorder-table="volunteers"] th.col-pref2 .table-head-cell>a,
table.entity-overview-table[data-reorder-table="volunteers"] th.col-pref1 .plain-column-title,
table.entity-overview-table[data-reorder-table="volunteers"] th.col-pref2 .plain-column-title{white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}
table.entity-overview-table[data-reorder-table="volunteers"] td.col-pref1,
table.entity-overview-table[data-reorder-table="volunteers"] td.col-pref2{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

/* 9.6.3 - compacte veldverwijderknop en overzichten Post/EHBO */
.layout-editor-field{grid-template-columns:24px minmax(0,1fr) auto 32px!important}
.layout-editor-field .field-remove.icon-button{width:32px!important;min-width:32px!important;height:32px!important;min-height:32px!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:15px!important;line-height:1!important;white-space:nowrap!important}
@media(max-width:700px){.layout-editor-field{grid-template-columns:24px minmax(0,1fr) 32px!important}.layout-editor-field .field-title-clear{grid-column:2}.layout-editor-field .field-remove{grid-column:3;grid-row:1 / span 2}}

.volunteer-type-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}.volunteer-type-toolbar .search{flex:1}.volunteer-type-wrap{overflow:auto}.volunteer-type-table{width:100%;table-layout:fixed}.volunteer-type-table th:nth-child(1){width:220px}.volunteer-type-table th:nth-child(2){width:75px}.volunteer-type-table th:nth-child(3){width:auto}.volunteer-type-table th:nth-child(4){width:680px}.volunteer-type-table td{vertical-align:top}.volunteer-type-age{text-align:center}.volunteer-type-notes{white-space:pre-wrap;overflow-wrap:anywhere}.attendance-overview-grid{display:grid;grid-template-columns:repeat(6,minmax(94px,1fr));gap:6px}.attendance-overview-grid label{display:grid;gap:3px;font-size:10px;font-weight:750;color:#667085}.attendance-overview-grid select{min-width:0;width:100%;padding:5px 6px;font-size:11px}.attendance-overview-grid strong{font-size:11px;color:var(--text);font-weight:600}.inline-save-hint{margin-top:8px}
@media(max-width:1100px){.volunteer-type-table{min-width:980px}.volunteer-type-toolbar{align-items:stretch;flex-direction:column}}

/* 9.7.0 - consistente type-ahead dropdowns */

/* 9.7.3: volledig inlogscherm, logo en bulkselectie */
html,body{min-height:100%}
body.desktop-first{min-height:100vh}
.auth-page{min-height:100vh}
.login-stack{width:min(440px,100%);margin:26px auto 60px;display:grid;justify-items:center;gap:16px}
.login-stack .authcard{width:100%;max-width:none;margin:0}
.login-logo-link{display:inline-flex;align-items:center;justify-content:center;border-radius:14px;padding:4px;text-decoration:none}
.login-logo-link:focus-visible{outline:3px solid rgba(216,38,47,.35);outline-offset:4px}
.login-logo-link img{display:block;width:132px;height:auto;filter:drop-shadow(0 2px 4px rgba(16,24,40,.22))}
.bulk-selection-bar{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin:0 0 10px}
.bulk-selection-bar button:disabled{opacity:.5;cursor:not-allowed}
.select-row-col{width:44px!important;min-width:44px!important;max-width:44px!important;text-align:center!important;padding-left:8px!important;padding-right:8px!important}
.row-select-label{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;cursor:pointer}
.row-select-label input{width:18px;height:18px;margin:0;cursor:pointer}
@media(max-width:650px){.login-stack{margin-top:16px}.bulk-selection-bar{justify-content:space-between;align-items:stretch}.bulk-selection-bar button{flex:1}}

/* 9.7.4 - onbewerkte achtergrond op het inlogscherm */
body.auth-page{background:#f5f6f8 url('jvw-vlag-donkerrood-970.webp') center center / cover no-repeat!important;background-attachment:scroll!important;}
body.auth-page::before{display:none!important;content:none!important;}
body.auth-page .container{background:transparent;}
/* Broncontrole synchronisatie */
.diagnostic-link{appearance:none;background:transparent!important;border:0!important;color:var(--red-dark)!important;padding:0!important;font:inherit!important;font-weight:700!important;text-decoration:underline;cursor:pointer;display:inline!important}.diagnostic-link:hover{color:var(--red)!important;background:transparent!important}.diagnostic-link:focus-visible{outline:2px solid rgba(216,38,47,.28);outline-offset:3px;border-radius:3px}

.sync-toolbar{margin:12px 0}.sync-error-row td{background:#fff4f4}.diagnostic-link{font:inherit}
.report tr.age-minor td{background:#f8caca}.report tr.age-adult td{background:#fff0a8}.report tr.age-minor:hover td{background:#f4bcbc}.report tr.age-adult:hover td{background:#fbe895}
/* 9.7.18: rapporten gegroepeerd in drie compacte keuzelijsten */
.report-selection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.report-choice{display:block}.report-choice label{display:grid;gap:6px;font-size:13px;font-weight:700}.report-choice select{min-width:0;width:100%}@media(max-width:900px){.report-selection-grid{grid-template-columns:1fr}}
.label-settings-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 18px;margin:14px 0 16px}.label-settings-grid label{font-size:13px;font-weight:700;display:grid;gap:6px}.input-with-unit{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px}.input-with-unit span{color:var(--muted);font-weight:600}.label-summary{margin-top:16px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#f9fafb}.label-legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:14px;align-items:center;font-size:13px}.label-legend>span{display:flex;align-items:center;gap:7px}.legend-role{background:#4a4a4a;color:#fff;padding:3px 6px;border-radius:2px}.legend-build{padding:3px 6px;border-radius:2px}.legend-build.ob{background:#fff017}.legend-build.mb{background:#8bcf59}.legend-build.bb{background:#ffa62b}.legend-age{background:#ff73b8;padding:3px 6px;border-radius:2px}@media(max-width:900px){.label-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.label-settings-grid{grid-template-columns:1fr}}

/* 9.7.19: instelbaar A4-rapport vrijwilligersetiketten */
/* 9.7.20: uitleg etiketmaten en gedeelde 3x7-indeling */
.label-settings-help{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(320px,1.05fr);gap:22px;align-items:center;margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fafafa}.label-settings-diagram{display:flex;justify-content:center}.measure-page{position:relative;width:300px;height:210px;border:2px solid #333;background:#fff}.measure-label{position:absolute;left:65px;top:52px;width:150px;height:75px;border:2px solid #555;background:#e9ecef}.measure-width{position:absolute;left:28px;top:25px;font-weight:700}.measure-height{position:absolute;right:-64px;top:27px;transform:rotate(90deg);font-weight:700}.measure-top{position:absolute;left:8px;top:18px;font-size:12px;font-weight:700}.measure-side{position:absolute;left:8px;top:88px;font-size:12px;font-weight:700;transform:rotate(-90deg);transform-origin:left top}.measure-horizontal{position:absolute;left:105px;top:35px;font-size:12px;font-weight:700}.measure-vertical{position:absolute;left:16px;top:132px;font-size:12px;font-weight:700}.measure-count-x{position:absolute;left:91px;bottom:10px;font-size:12px;font-weight:700}.measure-count-y{position:absolute;right:-22px;top:88px;font-size:12px;font-weight:700;transform:rotate(90deg)}.label-settings-defs{display:grid;grid-template-columns:max-content 1fr;gap:7px 12px;margin:0}.label-settings-defs dt{font-weight:800}.label-settings-defs dd{margin:0;color:var(--muted)}@media(max-width:900px){.label-settings-help{grid-template-columns:1fr}.measure-page{transform:scale(.95)}}

/* 9.7.22 - voorstel groepsindeling kinderen */
.proposal-stats{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;margin:14px 0 16px}.proposal-stats>div{border:1px solid #d9dee7;border-radius:10px;padding:10px 12px;background:#fafbfc}.proposal-stats span{display:block;font-size:.82rem;color:#5c6573}.proposal-stats strong{display:block;font-size:1.3rem;margin-top:2px}.group-proposal-table td{vertical-align:top}.group-proposal-table details summary{cursor:pointer;font-weight:600}.group-proposal-table details[open] summary{margin-bottom:5px}@media(max-width:900px){.proposal-stats{grid-template-columns:repeat(2,minmax(120px,1fr))}}

/* 9.7.22 - rapport indelen kinderen per school/schoolgroep/leerkracht */
.school-class-heading{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(110px,.7fr) minmax(180px,1.4fr) auto;gap:18px;align-items:baseline;margin-bottom:12px;font-size:1rem}.school-class-heading span{color:#4b5563}.school-class-heading span strong{color:inherit;margin-left:6px}.school-class-report table th:nth-child(5),.school-class-report table td:nth-child(5){min-width:320px}@media(max-width:800px){.school-class-heading{grid-template-columns:1fr 1fr}.school-class-report table th:nth-child(5),.school-class-report table td:nth-child(5){min-width:220px}}

/* 10.0.0 - actiecentrum, systeemstatus, synchronisatiepreview en wijzigingshistorie */
.action-center{margin-top:16px}.action-center-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.action-item{display:grid;grid-template-columns:54px minmax(0,1fr);gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);text-decoration:none}.action-item:hover{background:#fafbfc;border-color:#bfc6d0}.action-count{display:flex;align-items:center;justify-content:center;min-width:46px;min-height:46px;border-radius:999px;background:#f1f3f5;font-size:1.1rem;font-weight:800}.action-item small{display:block;margin-top:3px;color:var(--muted);line-height:1.3}.action-good .action-count{background:#eaf6ed}.action-bad .action-count{background:#fdebec}.action-neutral .action-count{background:#fff6d9}
.health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.health-card{margin:0}.health-card h2{margin:0;font-size:1rem}.health-card p:last-child{margin-bottom:0}
.sync-preview{margin:16px 0}.sync-preview-grid{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:10px;margin:14px 0}.sync-preview-grid>div{padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#fafbfc}.sync-preview-grid span{display:block;font-size:.78rem;color:var(--muted)}.sync-preview-grid strong{display:block;margin-top:2px;font-size:1.2rem}.sync-preview-form{display:inline-flex;margin:0 6px 6px 0}
.undo-flash{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.undo-flash form{margin:0}.record-history{margin-top:16px}.record-history details summary{cursor:pointer;font-weight:700}.history-list{display:grid;gap:7px;margin-top:10px}.history-list>div{display:grid;grid-template-columns:145px 150px minmax(0,1fr);gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.history-list>div:last-child{border-bottom:0}.history-list small{color:var(--muted)}
@media(max-width:850px){.action-center-grid,.health-grid{grid-template-columns:1fr}.sync-preview-grid{grid-template-columns:repeat(2,minmax(110px,1fr))}.history-list>div{grid-template-columns:1fr;gap:2px}}
@media(max-width:480px){.sync-preview-grid{grid-template-columns:1fr}.action-item{grid-template-columns:46px minmax(0,1fr)}}

/* 11.0.0 - visueel groepenbord voor hoofdleiding en leiding */
.topbar nav a.active-direct{background:#343b46;color:#fff}
.group-board-intro{margin-bottom:14px}.group-board-intro h2{margin-bottom:5px}.group-board-shell{margin-bottom:28px}.group-board-shell>.warning{margin-bottom:14px}
.group-board-shell{position:relative}.group-board-shell>.group-board-savebar{position:sticky;bottom:0;z-index:12}
.group-board-shell .group-board-savebar form{margin:0}
.group-board-shell [hidden]{display:none!important}
.group-board-shell button:disabled{opacity:.5;cursor:not-allowed}
.group-board-shell.is-dirty .group-board-savebar{border-color:#e2a83b;box-shadow:0 -5px 20px rgba(16,24,40,.08)}
.group-board-shell.is-dragging .group-board-note,.group-board-shell.is-dragging .group-board-unassigned{transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}
.group-board-shell.is-dragging .group-board-note{border-style:dashed}
.group-board-shell.is-dragging .group-board-note.drag-over,.group-board-shell.is-dragging .group-board-unassigned.drag-over{outline:3px solid rgba(45,104,230,.24);outline-offset:2px;transform:translateY(-1px)}
.group-board-main{min-width:0}.group-board-shell{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:18px;align-items:start}
.group-board-build-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.group-board-build-tabs button{min-width:62px}.group-board-build-tabs button.active,.group-board-role-tabs button.active{background:#27313e;color:#fff;border-color:#27313e}
.group-board-grid{display:grid;grid-template-columns:repeat(3,minmax(245px,1fr));gap:14px;align-items:start}.group-board-empty-build{grid-column:1/-1;padding:34px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #cfd5dd;border-radius:12px}
.group-board-note{--note-bg:#fff0a8;--note-border:#dec460;position:relative;overflow:hidden;padding:17px 18px 15px;border:1px solid var(--note-border);border-radius:5px 5px 12px 5px;background:linear-gradient(145deg,rgba(255,255,255,.24),transparent 44%),var(--note-bg);box-shadow:0 8px 20px rgba(16,24,40,.10);transform:rotate(-.18deg);min-height:260px}
.group-board-note:nth-child(even){transform:rotate(.16deg)}.group-board-note::after{content:'';position:absolute;right:0;bottom:0;width:24px;height:24px;background:linear-gradient(315deg,rgba(0,0,0,.06) 0 48%,rgba(255,255,255,.24) 50% 100%);pointer-events:none}
.group-board-note.status-complete{--note-bg:#dff4ad;--note-border:#b8db6b}.group-board-note.status-partial{--note-bg:#ffe49a;--note-border:#e7bd52}.group-board-note.status-empty{--note-bg:#ffc6c8;--note-border:#e79a9f}
.group-board-note>header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px}.group-board-note>header h2{margin:0;font-size:22px;letter-spacing:-.02em}.group-board-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;background:rgba(255,255,255,.66);border:1px solid rgba(0,0,0,.08);white-space:nowrap}.status-complete .group-board-status{color:#146b3a}.status-partial .group-board-status{color:#8a5700}.status-empty .group-board-status{color:#9a2630}
.group-board-role{margin:0 0 12px}.group-board-role h3{font-size:13px;margin:0 0 6px}.group-board-role-list{display:grid;gap:6px;min-height:43px}.group-board-role-placeholder{display:none;align-items:center;justify-content:center;min-height:43px;border:1px dashed rgba(70,77,88,.34);border-radius:8px;color:#737b87;font-size:12px;font-weight:650;background:rgba(255,255,255,.18)}.group-board-role-list:not(:has(.group-board-person)) .group-board-role-placeholder{display:flex}.group-board-note>footer{margin-top:14px;padding-top:10px;border-top:1px solid rgba(0,0,0,.10);font-size:13px}
.group-board-person{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;align-items:start;padding:8px 9px;border:1px solid rgba(86,94,106,.20);border-radius:8px;background:rgba(255,255,255,.86);box-shadow:0 1px 2px rgba(16,24,40,.05);user-select:none}.group-board-person[draggable="true"]{cursor:grab}.group-board-person[draggable="true"]:active{cursor:grabbing}.group-board-person.is-dragging{opacity:.35}.group-board-person.preference-match{box-shadow:inset 3px 0 0 #2f6fe4,0 1px 2px rgba(16,24,40,.05)}.group-board-grip{font-size:19px;line-height:1;color:#7c8491;letter-spacing:-5px;padding-top:2px}.group-board-person-copy{display:grid;gap:1px;min-width:0}.group-board-person-copy strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-board-person-copy small{font-size:11px;line-height:1.3;color:#606a78;white-space:normal;overflow-wrap:anywhere}.group-board-person.role-head{border-left:4px solid #2f6fe4}.group-board-person.role-leader{border-left:4px solid #8855c8}
.group-board-unassigned{position:sticky;top:82px;margin:0;max-height:calc(100vh - 105px);overflow:hidden;display:flex;flex-direction:column;padding:16px}.group-board-unassigned-head{display:flex;justify-content:space-between;gap:10px;align-items:start}.group-board-unassigned-head h2{margin-bottom:3px}.group-board-unassigned-head p{margin:0}.group-board-role-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:12px 0 10px}.group-board-role-tabs button{font-size:11px;padding:7px 6px}.group-board-unassigned-priority{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;margin:0 0 10px;font-size:11px;font-weight:700;color:#4d5662}.group-board-unassigned-priority select{min-width:0;padding:7px 28px 7px 8px;font-size:12px}.group-board-unassigned-list{display:grid;gap:7px;overflow:auto;padding:2px;min-height:90px}.group-board-unassigned .group-board-person{background:#fff}.group-board-unassigned .group-board-person-copy strong{font-size:13px}.group-board-drop-empty{display:flex;align-items:center;justify-content:center;min-height:84px;padding:14px;border:1px dashed #cfd5dd;border-radius:9px;color:var(--muted);text-align:center}
.group-board-savebar{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 16px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.97);box-shadow:0 -2px 10px rgba(16,24,40,.04);backdrop-filter:blur(7px)}.group-board-savebar>div{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.group-board-savebar button{min-width:145px}.group-board-savebar strong{font-size:13px}.group-board-savebar .muted{font-size:12px}
@media(max-width:1250px){.group-board-grid{grid-template-columns:repeat(2,minmax(280px,1fr))}}
@media(max-width:1180px){.group-board-shell{grid-template-columns:1fr}.group-board-unassigned{position:static;max-height:none}.group-board-unassigned-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:430px}.group-board-savebar{grid-column:1}}
@media(max-width:800px){.group-board-grid{grid-template-columns:1fr}.group-board-unassigned-list{grid-template-columns:1fr}.group-board-savebar{align-items:stretch;flex-direction:column}.group-board-savebar form,.group-board-savebar button{width:100%}.group-board-note,.group-board-note:nth-child(even){transform:none}}

.group-board-invalid{margin:-4px 0 10px;padding:7px 8px;border-radius:7px;background:rgba(255,255,255,.66);color:#8a2730;font-size:11px;font-weight:700}.group-board-note[data-drop-disabled="1"]{outline:1px dashed rgba(154,38,48,.35)}

.group-board-note .group-board-unassigned-only{display:none}.group-board-unassigned .group-board-unassigned-only{display:block}

/* 11.1.0 - extra filters en aanwezigheid op het groepenbord */
.group-board-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.group-board-toolbar .group-board-build-tabs{margin-bottom:0}
.group-board-occupancy-filter{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.group-board-occupancy-filter button{font-size:12px;padding:8px 10px}
.group-board-occupancy-filter button.active{background:#27313e;color:#fff;border-color:#27313e}
.group-board-attendance{display:flex;flex-wrap:wrap;gap:5px 8px;margin-top:5px;padding-top:5px;border-top:1px solid rgba(86,94,106,.12)}
.group-board-attendance label{display:inline-flex;align-items:center;gap:3px;font-size:10px;color:#515b68;cursor:default;white-space:nowrap}
.group-board-attendance input{width:13px;height:13px;margin:0;appearance:none;-webkit-appearance:none;border:1.5px solid #8b9098;background:#fff;border-radius:4px;opacity:1;filter:none}
.group-board-attendance input:checked{border-color:#8b9098;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:11px 11px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.2 4.8 9 10 2.8' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.group-board-attendance input:disabled{opacity:1;filter:none}
@media(max-width:900px){.group-board-toolbar{display:grid;grid-template-columns:1fr}.group-board-occupancy-filter{justify-content:flex-start}}

/* 11.2.0 - sterker onderscheid leiding/hoofdleiding en totaaloverzicht groepen */
.group-board-person.role-head{border-left:5px solid #0068ff}
.group-board-person.role-leader{border-left:5px solid #a100ff}
.group-board-total{display:grid;gap:18px;margin-bottom:28px}
.group-board-total-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}
.group-board-total-actions p{margin:0}
.group-board-total-build{border:1px solid var(--line);border-radius:12px;background:#f9fafb;padding:14px;overflow:hidden}
.group-board-total-build-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.group-board-total-build-head h2{font-size:21px;margin:0}.group-board-total-build-head .muted{font-size:12px}
.group-board-total-summary{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.group-board-total-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:12px;align-items:start}
.group-board-note-total,.group-board-note-total:nth-child(even){min-height:0;padding:12px 13px 11px;transform:none;box-shadow:0 4px 12px rgba(16,24,40,.09)}
.group-board-note-total>header{margin-bottom:9px}.group-board-note-total>header h2{font-size:18px}.group-board-note-total .group-board-status{font-size:10px;padding:4px 7px}
.group-board-note-total .group-board-role{margin-bottom:8px}.group-board-note-total .group-board-role h3{font-size:11px;margin-bottom:4px}
.group-board-note-total .group-board-role-list{gap:4px;min-height:34px}.group-board-note-total .group-board-role-placeholder{min-height:34px;font-size:10px}
.group-board-note-total .group-board-person{grid-template-columns:1fr;padding:6px 7px;gap:0}.group-board-note-total .group-board-grip{display:none}
.group-board-note-total .group-board-person-copy strong{font-size:12px}.group-board-note-total .group-board-person-copy small{font-size:9.5px;line-height:1.25}
.group-board-note-total .group-board-attendance{gap:3px 5px;margin-top:4px;padding-top:4px}.group-board-note-total .group-board-attendance label{font-size:8.5px;gap:2px}.group-board-note-total .group-board-attendance input{width:11px;height:11px}
.group-board-note-total>footer{margin-top:8px;padding-top:7px;font-size:11px}
@media(max-width:700px){.group-board-total-grid{grid-template-columns:1fr}.group-board-total-build-head{align-items:flex-start;flex-direction:column}.group-board-total-summary{justify-content:flex-start}}
@media print{.topbar,.entity-subnav,.pagehead,.group-board-total-actions{display:none!important}.container{max-width:none;padding:0}.group-board-total{gap:8px}.group-board-total-build{break-inside:avoid;padding:8px}.group-board-total-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.group-board-note-total{break-inside:avoid;box-shadow:none}}


/* 11.3.0 - bouwfilter totaaloverzicht */
.group-board-total-actions>div{display:grid;gap:9px}
.group-board-total-filters{display:flex;gap:7px;flex-wrap:wrap}
.group-board-total-filters button.active{background:#27313e;color:#fff;border-color:#27313e}


/* 11.4.0 - groepsinformatie en groepsopmerkingen op het groepenbord. */
.group-board-schools{margin:0 0 12px;padding:8px 9px;border-radius:8px;background:rgba(255,255,255,.42);border:1px solid rgba(70,77,88,.12)}
.group-board-schools h3,.group-board-group-note h3{font-size:12px;margin:0 0 5px}
.group-board-school-list{display:grid;gap:3px}.group-board-school-row{display:flex;justify-content:space-between;gap:8px;font-size:10.5px;line-height:1.3;color:#515b68}.group-board-school-row span{min-width:0;overflow-wrap:anywhere}.group-board-school-row strong{font-size:10px;color:#252b33;flex:0 0 auto}.group-board-school-empty{font-size:11px;color:#747d89}
.group-board-group-note{margin:10px 0 0}.group-board-group-note textarea{width:100%;min-height:58px;resize:vertical;padding:7px 8px;border:1px solid rgba(70,77,88,.28);border-radius:7px;background:rgba(255,255,255,.78);font:inherit;font-size:11px;line-height:1.35;color:#202630}.group-board-group-note textarea:focus{outline:2px solid rgba(39,103,230,.22);border-color:#2767e6}.group-board-group-note-readonly{padding:6px 7px;border-radius:7px;background:rgba(255,255,255,.42);font-size:10.5px;line-height:1.35;color:#343c47;white-space:normal;overflow-wrap:anywhere}.group-board-group-note-readonly.is-empty{color:#747d89;font-style:italic}
.group-board-note-total .group-board-schools{margin-bottom:8px;padding:6px 7px}.group-board-note-total .group-board-schools h3,.group-board-note-total .group-board-group-note h3{font-size:9.5px;margin-bottom:3px}.group-board-note-total .group-board-school-row{font-size:8.5px;gap:5px}.group-board-note-total .group-board-school-row strong{font-size:8.5px}.group-board-note-total .group-board-group-note{margin-top:7px}.group-board-note-total .group-board-group-note-readonly{font-size:8.5px;padding:5px 6px}

/* 11.4.1 - compacte groepssamenvatting onderaan de post-its */
.group-board-meta{margin-top:10px;padding-top:7px;border-top:1px solid rgba(0,0,0,.10);display:flex;align-items:baseline;gap:5px 7px;flex-wrap:wrap;font-size:10px;line-height:1.2}
.group-board-child-count{font-size:10.5px;white-space:nowrap;color:#252b33}
.group-board-meta-separator{color:rgba(37,43,51,.48)}
.group-board-school-inline{display:flex;flex:1 1 180px;min-width:0;gap:3px 7px;flex-wrap:wrap;color:#515b68}
.group-board-school-chip{white-space:normal;overflow-wrap:anywhere}.group-board-school-chip b{font-size:9px;color:#252b33}
.group-board-note-total .group-board-meta{margin-top:6px;padding-top:5px;gap:3px 5px;font-size:8px;line-height:1.15}
.group-board-note-total .group-board-child-count{font-size:8.5px}.group-board-note-total .group-board-school-inline{flex-basis:130px;gap:2px 5px}.group-board-note-total .group-board-school-chip b{font-size:7.5px}

/* 11.4.1 - afgeronde aanwezigheid-vakjes: grijze outline, zwart vinkje */
.group-board-attendance input,.group-board-attendance input:checked{border-color:#8b9098;border-radius:4px}

/* 11.5.0 - groepenbord gebruikt dezelfde informatielaag als Leiding - Stickers tbv indelen */
.group-board-label-card{display:grid;gap:5px;min-width:0}
.group-board-label-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}
.group-board-label-head strong{font-size:13px;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.2}
.group-board-label-head b{font-size:11px;flex:0 0 auto}
.group-board-label-meta{display:flex;align-items:center;gap:5px;min-width:0}
.group-board-label-role{font-size:10.5px;font-weight:800;line-height:1.15}
.group-board-label-role.is-head{background:#4a4a4a;color:#fff;padding:3px 6px;border-radius:2px}
.group-board-label-age{display:inline-flex;align-items:center;justify-content:center;min-width:21px;min-height:19px;padding:2px 5px;border-radius:2px;font-size:10.5px;font-weight:800}
.group-board-label-age.has-internal-notes{background:#ff73b8}
.group-board-label-meta .group-board-attendance{margin:0 0 0 auto;padding:0;border-top:0;gap:3px}
.group-board-label-meta .group-board-attendance label{display:grid;grid-template-rows:auto auto;gap:1px;justify-items:center;font-size:7px;line-height:1;color:#525a65}
.group-board-label-meta .group-board-attendance input{width:12px;height:12px}
.group-board-label-preferences{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.group-board-label-pref{display:inline-block;padding:3px 6px;border-radius:2px;font-size:9.5px;line-height:1.15;background:rgba(255,255,255,.55)}
.group-board-label-pref.ob{background:#fff017;font-weight:800;color:#222}
.group-board-label-pref.mb{background:#8bcf59;font-weight:800;color:#17330b}
.group-board-label-pref.bb{background:#ffa62b;font-weight:800;color:#3d2100}
.group-board-label-pref.is-empty{font-style:italic;color:#69717d}
.group-board-label-together{font-size:9.5px;line-height:1.25;color:#303740}
.group-board-label-notes{font-size:9px;line-height:1.25;color:#5c4040;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}
.group-board-note-total .group-board-label-card{gap:3px}.group-board-note-total .group-board-label-head strong{font-size:10px}.group-board-note-total .group-board-label-head b{font-size:8.5px}
.group-board-note-total .group-board-label-role{font-size:8px}.group-board-note-total .group-board-label-role.is-head{padding:2px 4px}.group-board-note-total .group-board-label-age{font-size:8px;min-width:17px;min-height:15px;padding:1px 3px}
.group-board-note-total .group-board-label-meta{gap:3px}.group-board-note-total .group-board-label-meta .group-board-attendance{gap:2px}.group-board-note-total .group-board-label-meta .group-board-attendance label{font-size:6px}.group-board-note-total .group-board-label-meta .group-board-attendance input{width:9px;height:9px}
.group-board-note-total .group-board-label-preferences{gap:3px}.group-board-note-total .group-board-label-pref{font-size:7.5px;padding:2px 4px}.group-board-note-total .group-board-label-together{font-size:7.5px}.group-board-note-total .group-board-label-notes{font-size:7px;-webkit-line-clamp:2}

/* 11.7.1 - rapport aanmeldingen per week + HC-verdeling */
.registration-chart-panel{overflow:hidden}
.registration-chart-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:12px;flex-wrap:wrap}
.registration-chart-heading h2{margin-bottom:4px}
.registration-month-legend{display:flex;gap:8px 14px;flex-wrap:wrap;justify-content:flex-end;font-size:12px;color:var(--muted)}
.registration-month-legend span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.registration-month-legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.registration-chart-scroll{overflow-x:auto;padding:30px 4px 8px}
.registration-chart{height:292px;display:flex;align-items:stretch;gap:2px;min-width:max-content;padding:0 4px 2px}
.registration-week{position:relative;width:24px;min-width:24px;height:292px}
.registration-plot{position:absolute;left:0;right:0;top:0;height:222px;border-bottom:1px solid #cfd4dc}
.registration-bar{position:absolute;left:50%;bottom:0;transform:translateX(-50%);display:block;width:15px;height:var(--bar-h,0px);min-height:0;border-radius:3px 3px 0 0;flex:none}
.registration-count{position:absolute;left:50%;bottom:calc(var(--bar-h,0px) + 3px);transform:translateX(-50%);font-size:9px;line-height:1;color:#222;white-space:nowrap;font-variant-numeric:tabular-nums}
.registration-axis-label{position:absolute;top:228px;left:50%;transform:translateX(-50%);font-size:9px;line-height:1;color:#59616d;white-space:nowrap;font-weight:700}
.registration-month-axis-label{position:absolute;top:248px;left:0;font-size:10px;line-height:1.15;font-weight:800;color:#252a31;white-space:nowrap;text-transform:none}
.registration-week.april-may-transition::before{content:'';position:absolute;left:-2px;top:0;height:222px;border-left:3px solid #111;z-index:4}
.transition-label{position:absolute;top:-23px;left:-12px;font-size:11px;font-weight:800;color:#111;white-space:nowrap;background:#fff;padding:1px 4px;border-radius:3px;z-index:5}
.chart-note{margin-top:8px}
.registration-month.month-1,.registration-week.month-1 .registration-bar{background:#5277c7}
.registration-month.month-2,.registration-week.month-2 .registration-bar{background:#7b61a8}
.registration-month.month-3,.registration-week.month-3 .registration-bar{background:#4f9a75}
.registration-month.month-4,.registration-week.month-4 .registration-bar{background:#d0a326}
.registration-month.month-5,.registration-week.month-5 .registration-bar{background:#d9674a}
.registration-month.month-6,.registration-week.month-6 .registration-bar{background:#4c91a8}
.registration-month.month-7,.registration-week.month-7 .registration-bar{background:#9c6a9b}
.registration-month.month-8,.registration-week.month-8 .registration-bar{background:#d0833e}
.registration-month.month-9,.registration-week.month-9 .registration-bar{background:#4d8c88}
.registration-month.month-10,.registration-week.month-10 .registration-bar{background:#b65c72}
.registration-month.month-11,.registration-week.month-11 .registration-bar{background:#68778f}
.registration-month.month-12,.registration-week.month-12 .registration-bar{background:#8d6c62}
.hc-distribution-grid{align-items:start}
.distribution-cell{min-width:190px;display:flex;align-items:center;gap:8px}
.distribution-bar{display:inline-block;height:10px;max-width:120px;min-width:2px;border-radius:999px;background:var(--red)}
@media(max-width:800px){.registration-week{width:21px;min-width:21px}.registration-bar{width:12px}.registration-month-axis-label{font-size:9px}.distribution-cell{min-width:140px}}

/* 11.7.1 - compacte naam/leeftijd op groepenborden */
.group-board-label-age-inline{font-size:.92em;font-weight:800;white-space:nowrap}.group-board-label-age-inline.has-internal-notes{background:#ff73b8;border-radius:3px;padding:1px 3px}


/* 11.7.3 - groepenbord: groepsnummer uit persoonskaart; aanwezigheid rechtsboven naast naam */
.group-board-label-head{align-items:flex-start}
.group-board-label-head .group-board-attendance{margin:0;padding:0;border-top:0;gap:3px;flex:0 0 auto;flex-wrap:nowrap}
.group-board-label-head .group-board-attendance label{display:grid;grid-template-rows:auto auto;gap:1px;justify-items:center;font-size:7px;line-height:1;color:#525a65}
.group-board-label-head .group-board-attendance input{width:12px;height:12px}
.group-board-note-total .group-board-label-head .group-board-attendance{gap:2px;margin:0;padding:0;border:0}
.group-board-note-total .group-board-label-head .group-board-attendance label{font-size:6px}
.group-board-note-total .group-board-label-head .group-board-attendance input{width:9px;height:9px}

/* 11.8.5 - robuuste weekgrafiek: SVG-staven + week- en maandlabels */
.registration-chart{height:318px}
.registration-week{width:30px;min-width:30px;height:318px}
.registration-plot{height:214px}
.registration-week-svg{display:block;width:100%;height:214px;overflow:visible}
.registration-bar-rect{shape-rendering:geometricPrecision}
.registration-count-svg{fill:#111;font-size:8px;font-weight:800;font-family:inherit;font-variant-numeric:tabular-nums}
.registration-axis-label{top:220px;font-size:9px;color:#4d5560}
.registration-month-tick{position:absolute;top:235px;left:50%;transform:translateX(-50%);font-size:8px;line-height:1;color:#69717c;white-space:nowrap;text-transform:lowercase}
.registration-month-axis-label{top:253px;font-size:10px}
.registration-week.april-may-transition::before{height:214px}
.registration-week.month-1 .registration-bar-rect{fill:#5277c7}
.registration-week.month-2 .registration-bar-rect{fill:#7b61a8}
.registration-week.month-3 .registration-bar-rect{fill:#4f9a75}
.registration-week.month-4 .registration-bar-rect{fill:#d0a326}
.registration-week.month-5 .registration-bar-rect{fill:#d9674a}
.registration-week.month-6 .registration-bar-rect{fill:#4c91a8}
.registration-week.month-7 .registration-bar-rect{fill:#9c6a9b}
.registration-week.month-8 .registration-bar-rect{fill:#d0833e}
.registration-week.month-9 .registration-bar-rect{fill:#4d8c88}
.registration-week.month-10 .registration-bar-rect{fill:#b65c72}
.registration-week.month-11 .registration-bar-rect{fill:#68778f}
.registration-week.month-12 .registration-bar-rect{fill:#8d6c62}
@media(max-width:800px){.registration-week{width:27px;min-width:27px}.registration-count-svg{font-size:7.5px}.registration-month-tick{font-size:7.5px}}

/* 11.8.5 - mogelijke indelingsvoorkeur alleen markeren, niet automatisch toepassen */
.proposal-preference-name{font-weight:900;color:#9a3d00;background:#fff0d8;border-radius:3px;padding:1px 3px}

/* 11.8.6 - weekgrafiek: compacte maandlabels en exacte 1-mei-positie */
.registration-chart{height:306px}
.registration-week{height:306px}
.registration-month-tick{display:none}
.registration-month-axis-label{top:238px;left:50%;transform:translateX(-50%);font-size:9px;line-height:1;font-weight:800;color:#252a31;white-space:nowrap;text-transform:lowercase}
.registration-year-axis-label{position:absolute;top:252px;left:50%;transform:translateX(-50%);font-size:8px;line-height:1;color:#737b86;white-space:nowrap;font-variant-numeric:tabular-nums}
.registration-week.april-may-transition::before{display:none}
.may-first-marker{position:absolute;top:0;height:214px;border-left:3px solid #111;z-index:4;pointer-events:none}
.transition-label{top:-23px;transform:translateX(-50%);left:auto}
.may-offset-0{left:0%}.may-offset-1{left:14.2857%}.may-offset-2{left:28.5714%}.may-offset-3{left:42.8571%}.may-offset-4{left:57.1429%}.may-offset-5{left:71.4286%}.may-offset-6{left:85.7143%}
@media(max-width:800px){.registration-month-axis-label{font-size:8px}.registration-year-axis-label{font-size:7px}}
.proposal-child-list{margin:0;padding-left:1.15rem;display:grid;gap:4px}.proposal-child-list li{padding-left:2px}.proposal-child-name{font-weight:700}.proposal-child-meta{display:block;color:#667085;font-size:.82rem;line-height:1.25}.proposal-logic-modal{width:min(760px,94vw)}.proposal-logic-list{margin:0;padding-left:1.25rem;display:grid;gap:8px;line-height:1.4}.proposal-logic-list code{background:#f2f4f7;border-radius:4px;padding:1px 4px}

/* 11.9.3 - inklapbare groepspreview en handmatige groepsinvoer */
.proposal-group-preview{border:1px solid #d9dee7;border-radius:10px;overflow:hidden;background:#fff}
.proposal-group-header,.proposal-group-summary,.proposal-group-body{display:grid;grid-template-columns:minmax(92px,.75fr) minmax(80px,.65fr) minmax(80px,.55fr) minmax(260px,2.7fr) minmax(320px,3.2fr);column-gap:16px;align-items:start}
.proposal-group-header{padding:10px 12px;background:#f7f8fa;border-bottom:1px solid #d9dee7;font-size:.76rem;font-weight:800;text-transform:uppercase;color:#4f5b6b}
.proposal-group-details{border-bottom:1px solid #e6e9ef}
.proposal-group-details:last-child{border-bottom:0}
.proposal-group-summary{position:relative;padding:12px 34px 12px 12px;cursor:pointer;list-style:none;min-height:44px}
.proposal-group-summary::-webkit-details-marker{display:none}
.proposal-group-summary::after{content:'▾';position:absolute;right:13px;top:12px;font-size:1rem;color:#667085;transition:transform .15s ease}
.proposal-group-details:not([open]) .proposal-group-summary::after{transform:rotate(-90deg)}
.proposal-group-details[open] .proposal-group-summary{background:#fbfcfd;border-bottom:1px solid #eef0f4}
.proposal-group-summary:hover{background:#f7f9fb}
.proposal-collapsed-meta{color:#667085;font-size:.88rem}
.proposal-group-details[open] .proposal-collapsed-meta{color:#8a94a3}
.proposal-group-body{padding:12px;background:#fff}
.proposal-group-classes{line-height:1.5}
.proposal-group-empty{padding:16px}
.proposal-child-meta strong{font-weight:650;color:#4d5968}
.proposal-manual-group{width:78px;min-width:78px}
.proposal-manual-help{margin:10px 0}
@media(max-width:1000px){
  .proposal-group-header{display:none}
  .proposal-group-summary{grid-template-columns:72px 58px 64px 1fr 1fr;column-gap:10px}
  .proposal-group-body{grid-template-columns:1fr 1.5fr;gap:14px}
  .proposal-group-body-spacer{display:none}
  .proposal-group-classes::before{content:'Klas / leerkracht';display:block;font-size:.76rem;font-weight:800;text-transform:uppercase;color:#667085;margin-bottom:5px}
  .proposal-group-body>div:last-child::before{content:'Kinderen';display:block;font-size:.76rem;font-weight:800;text-transform:uppercase;color:#667085;margin-bottom:5px}
}
@media(max-width:700px){
  .proposal-group-summary{grid-template-columns:58px 48px 52px 1fr;padding-right:32px}
  .proposal-group-summary>span:nth-child(5){display:none}
  .proposal-group-body{grid-template-columns:1fr}
  .proposal-child-meta{line-height:1.35}
}

/* 11.9.6 - globale naar-bovenknop */
.scroll-to-top{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:35;width:52px;height:52px;min-width:52px;padding:0;border:3px solid #30343a;border-radius:50%;background:rgba(255,255,255,.14);color:#30343a;box-shadow:0 2px 8px rgba(16,24,40,.12);backdrop-filter:blur(2px);display:inline-flex;align-items:center;justify-content:center;line-height:1;opacity:.92}
.scroll-to-top:hover{background:rgba(255,255,255,.5);color:#111;border-color:#111;opacity:1}
.scroll-to-top:focus-visible{outline:3px solid rgba(216,38,47,.28);outline-offset:3px}
.scroll-to-top[hidden]{display:none!important}
.scroll-to-top span{position:relative;display:block;width:24px;height:28px;font-size:0;color:currentColor;transform:translateY(-1px)}
.scroll-to-top span::before{content:'';position:absolute;left:9px;top:10px;width:6px;height:17px;border-radius:1px;background:currentColor}
.scroll-to-top span::after{content:'';position:absolute;left:1px;top:1px;width:22px;height:14px;background:currentColor;clip-path:polygon(50% 0,100% 100%,0 100%)}
@media(max-width:650px){.scroll-to-top{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:46px;height:46px;min-width:46px;font-size:29px}}
@media print{.scroll-to-top{display:none!important}}



/* 11.9.12 - optionele groepering van niet-ingedeelde groepsleiding op 'wil samen met'. */
.group-board-unassigned-grouping{display:flex;align-items:center;gap:7px;margin:0 0 10px;padding:7px 8px;border:1px solid rgba(70,77,88,.18);border-radius:8px;background:#f7f9fc;font-size:11px;font-weight:700;color:#4d5662;cursor:pointer}
.group-board-unassigned-grouping input{width:15px;height:15px;margin:0;flex:0 0 auto}
.group-board-unassigned .group-board-person.together-member{border-color:#8cb0e9;background:#f3f7ff;box-shadow:inset 0 0 0 1px rgba(47,111,228,.08),0 1px 2px rgba(16,24,40,.05)}
.group-board-unassigned .group-board-person.together-start{position:relative;margin-top:17px}
.group-board-unassigned .group-board-person.together-start::before{content:attr(data-together-label);position:absolute;left:2px;top:-16px;font-size:9px;line-height:12px;font-weight:800;letter-spacing:.01em;color:#285ca8;text-transform:uppercase}
.group-board-unassigned-list.is-together-grouped .group-board-person.together-member+ .group-board-person.together-member{margin-top:-3px}
@media(max-width:1180px){.group-board-unassigned-list.is-together-grouped{grid-template-columns:1fr}}


/* 11.9.13 - roltekst, naamzoeker en resterende samenwens bovenaan op het Groepenbord. */
.group-board-unassigned-search{display:grid;gap:4px;margin:0 0 10px;font-size:11px;font-weight:700;color:#4d5662}
.group-board-unassigned-search input{width:100%;min-width:0;padding:7px 9px;border:1px solid rgba(70,77,88,.24);border-radius:8px;background:#fff;color:inherit;font:inherit;font-weight:500}
.group-board-unassigned-search input:focus{outline:2px solid rgba(39,103,230,.18);border-color:#2767e6}
.group-board-label-meta{min-height:18px}
.group-board-note-total .group-board-label-meta{min-height:0}

/* 11.9.30 - moduletoegang per gebruiker */
.module-access-fieldset{border:1px solid #d7dce3;border-radius:10px;padding:14px 16px;margin:4px 0 0;min-width:0}
.module-access-fieldset legend{font-weight:700;padding:0 6px}
.module-access-grid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:10px 18px;margin:4px 0 8px}
.module-access-grid .check{margin:0}
@media(max-width:760px){.module-access-grid{grid-template-columns:1fr}}


/* 11.9.32 - resizable kolommen in de drie hoofd-overzichten. */
.entity-overview-table[data-reorder-table] th[data-col-key]{position:relative}
.entity-overview-table[data-reorder-table] .column-resize-handle{position:absolute;z-index:6;top:0;right:-5px;width:10px;height:100%;cursor:col-resize;touch-action:none;user-select:none;background:transparent}
.entity-overview-table[data-reorder-table] .column-resize-handle::after{content:"";position:absolute;top:18%;bottom:18%;left:4px;width:1px;background:transparent}
.entity-overview-table[data-reorder-table] th:hover>.column-resize-handle::after,.entity-overview-table[data-reorder-table] .column-resize-handle.is-resizing::after{background:#98a2b3}
html.is-resizing-table-column,html.is-resizing-table-column *{cursor:col-resize!important;user-select:none!important}
.entity-overview-wrap.has-custom-column-widths{overflow-x:auto!important;overflow-y:visible!important}
.entity-overview-table .col-registration_date{width:118px!important;min-width:118px!important;max-width:118px!important;white-space:nowrap!important}

/* 12.0.0 · productiviteitsuitbreidingen */
.topbar-global-search{display:flex;align-items:center;gap:6px;margin-left:auto}.topbar-global-search input{width:190px;min-width:150px;padding:7px 9px;border-radius:7px;border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.96);color:#222}.topbar-global-search .linkbutton{color:#fff}
.saved-views-bar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;border:1px solid #e1e1e1;border-radius:10px;background:#fafafa}.saved-views-bar label{display:flex;flex-direction:column;gap:4px;font-size:.88rem}.saved-view-picker select{min-width:230px}.saved-view-save{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.saved-view-save input[name="name"]{min-width:190px}
.global-search-page input{min-width:min(540px,70vw)}.global-search-group h2{display:flex;align-items:center;gap:8px}.global-search-results{display:grid;gap:8px}.global-search-result{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid #e4e4e4;border-radius:9px;text-decoration:none;color:inherit;background:#fff}.global-search-result:hover{border-color:#9c2632;background:#fffafa}.global-search-result span{font-size:.9rem;color:#666}
.sync-diff-simulator{margin:14px 0;border-top:1px solid #e4e4e4;padding-top:10px}.sync-diff-simulator>summary{cursor:pointer;padding:6px 0}.sync-field-diff{display:grid;grid-template-columns:minmax(110px,180px) minmax(90px,1fr) 18px minmax(90px,1fr);gap:6px;align-items:start;padding:3px 0;border-bottom:1px dotted #eee}.sync-field-diff:last-child{border-bottom:0}.sync-field-diff span{overflow-wrap:anywhere}
.record-timeline{position:relative;margin:10px 0 24px;padding-left:28px}.record-timeline:before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:#ddd}.timeline-event{position:relative;margin-bottom:14px}.timeline-dot{position:absolute;left:-24px;top:16px;width:12px;height:12px;border-radius:50%;background:#80121e;border:2px solid #fff;box-shadow:0 0 0 2px #80121e}.timeline-card{padding:12px 14px;border:1px solid #e2e2e2;border-radius:10px;background:#fff}.timeline-head{display:flex;justify-content:space-between;gap:14px;margin-bottom:6px}.timeline-head span{color:#666;font-size:.86rem}.timeline-card ul{margin:6px 0 0;padding-left:20px}.timeline-preview-list{display:grid;gap:6px}.timeline-preview-event{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid #eee}.timeline-preview-event span{color:#666;font-size:.88rem;text-align:right}
.year-switch-steps{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.year-switch-steps .cleanup-options{margin:12px 0}.backup-verify-result{border-left:4px solid #2e7d32}

/* 12.1.0 - out-of-the-box beheerfuncties */
.page-inline-title{display:inline-block;margin-right:10px;vertical-align:middle}
.group-card-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px}
.group-card-summary .panel{margin:0;padding:16px;display:flex;flex-direction:column;gap:5px}
.group-card-summary .panel>span{font-size:1.55rem;font-weight:800}
.group-card-note{border-left:4px solid var(--amber)}
.group-card-attendance{display:grid;grid-template-columns:repeat(6,minmax(85px,1fr));gap:8px}
.group-card-attendance>div{border:1px solid var(--line);border-radius:9px;padding:10px;display:flex;flex-direction:column;gap:4px;background:#fafbfc}
.group-card-attendance span{font-size:.82rem;color:var(--muted)}
.start-check-list{display:grid;gap:8px}
.start-check-item{display:grid;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:10px;border:1px solid var(--line);border-radius:9px;color:inherit;text-decoration:none}
.start-check-item:hover{border-color:#b8bec7;background:#fafbfc}
.start-check-item strong,.start-check-item small{display:block}.start-check-item small{margin-top:2px;color:var(--muted)}
.participation-years{display:flex;gap:6px;flex-wrap:wrap}.participation-year{font-variant-numeric:tabular-nums}
.import-lock-banner{position:relative;border-width:2px}
.compact-button{padding:6px 10px;font-size:.86rem}
@media print{.group-card-summary{grid-template-columns:repeat(5,1fr)}.group-card-summary .panel{border:1px solid #ddd;padding:8px}.group-card-attendance{grid-template-columns:repeat(6,1fr)}}

/* 12.1.6 - sorteerbare kolommen in meerjarige vrijwilligersadministratie. */
.table-sort-button{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;padding:0;margin:0;display:inline-flex;align-items:center;gap:5px;cursor:pointer;text-align:left;box-shadow:none}
.table-sort-button:hover,.table-sort-button:focus-visible{color:var(--red-dark);text-decoration:underline;background:transparent}
.table-sort-button:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:3px}
.table-sort-button span[aria-hidden="true"]{font-size:.82em;color:var(--muted);text-decoration:none}

/* 12.1.8 - live filter historische vrijwilligers. */
[data-history-row][hidden],[data-history-empty-row][hidden]{display:none!important}


/* 12.1.9 - zelfstandig scrollbare historische vrijwilligerslijst. */
.history-volunteer-scroll{max-height:clamp(340px,60vh,700px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.history-volunteer-scroll thead th{top:0;z-index:2}
@media(max-width:650px){.history-volunteer-scroll{max-height:68vh}}

/* 12.1.10 - mobiele globale zoekresultaten. */
.global-search-result-mobile{display:none}


/* 12.3.0 Aanwezigheidsmodule */
.attendance-module-grid{align-items:start}.attendance-tablewrap{max-height:68vh;overflow:auto}.attendance-tablewrap thead th{position:sticky;top:0;z-index:2;background:var(--panel,#fff)}.attendance-days-grid{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:.35rem}.attendance-days-grid label{display:grid;gap:.15rem;min-width:130px}.attendance-tablewrap select{min-width:120px}.attendance-tablewrap textarea{min-width:160px}


/* 12.3.2 - automatisch opslaan aanwezigheid groepsleiding. */
.attendance-volunteer-action{min-width:110px}.attendance-autosave-status{display:block;margin-top:5px;font-size:10px;line-height:1.25;color:var(--muted)}.attendance-autosave-status[data-state="saved"]{color:#287a3d}.attendance-autosave-status[data-state="error"]{color:#a61b1b}

/* 12.3.9 - JVW-easteregg globale zoekfunctie. */
body.jvw-easteregg-open{overflow:hidden}
.jvw-easteregg{position:fixed;inset:0;z-index:12000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(16,24,40,.88);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.jvw-easteregg-logo{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;border-radius:22%;box-shadow:none;animation:jvw-easteregg-pop .28s ease-out,jvw-easteregg-pulse 2.4s ease-in-out .35s infinite}
.jvw-easteregg-logo:hover,.jvw-easteregg-logo:focus-visible{background:transparent;transform:scale(1.025);box-shadow:none}
.jvw-easteregg-logo:focus-visible{outline:3px solid #fff;outline-offset:8px}
.jvw-easteregg-logo img{display:block;width:min(360px,72vw);height:auto;border-radius:20%;filter:drop-shadow(0 18px 36px rgba(0,0,0,.45));user-select:none;-webkit-user-drag:none}
@keyframes jvw-easteregg-pop{from{opacity:0;transform:scale(.78) rotate(-4deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes jvw-easteregg-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}
@media(prefers-reduced-motion:reduce){.jvw-easteregg-logo{animation:none}}

/* 12.4.0 - gebruikersbeheer: paginatoegang per module */
.page-access-fieldset{margin-top:8px}
.page-access-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:12px}
.page-access-group{border:1px solid var(--border,#d7dce2);border-radius:10px;padding:12px;background:rgba(255,255,255,.55)}
.page-access-group h3{margin:0 0 10px;font-size:1rem}
.page-access-group .module-access-grid{display:grid;grid-template-columns:1fr;gap:7px}
