:root{--navy:#17365b;--teal:#2aa897;--bg:#f4f7fb;--card:#fff;--muted:#6d7888;--orange:#f5a548;--danger:#c74747;--line:#dfe6ef}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:#1f2d3d}a{color:inherit}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy)}.brandmark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#e8f7f4;color:var(--teal);font-size:20px}.brand small{display:block;color:var(--muted);font-size:11px}.userbox{display:flex;gap:14px;align-items:center;font-size:14px}.userbox a{color:var(--teal)}.app-shell{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 72px)}.sidebar{padding:22px 14px;background:#fff;border-right:1px solid var(--line)}.sidebar a{display:block;padding:12px 14px;border-radius:10px;text-decoration:none;margin-bottom:5px}.sidebar a:hover{background:#eef8f6;color:#167f74}.content{padding:28px;max-width:1200px;width:100%}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:20px}.page-head h1{margin:0;color:var(--navy);font-size:28px}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 4px 14px rgba(23,54,91,.04)}.card h2,.card h3{margin-top:0;color:var(--navy)}.metric{font-size:30px;font-weight:750;color:var(--navy)}.shift{padding:14px 0;border-bottom:1px solid #edf1f6}.shift:last-child{border:0}.pill{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#eaf7f5;color:#197c72}.pill.open{background:#fff1df;color:#a96113}.pill.cancelled{background:#fdeaea;color:#a73333}.btn{display:inline-block;border:0;border-radius:10px;padding:10px 14px;text-decoration:none;font-weight:700;cursor:pointer;background:var(--navy);color:#fff}.btn.teal{background:var(--teal)}.btn.light{background:#edf4fa;color:var(--navy)}.btn.orange{background:var(--orange);color:#51300b}.flash{padding:12px 14px;border-radius:10px;margin-bottom:14px}.flash.success{background:#e5f7f0;color:#17634e}.flash.error{background:#fdebea;color:#8f2e2e}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field label{display:block;font-weight:650;font-size:13px;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1px solid #cad5e1;border-radius:9px;background:#fff;font:inherit}.field.full{grid-column:1/-1}.week-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.week-table th,.week-table td{padding:10px;border-right:1px solid #edf1f6;border-bottom:1px solid #edf1f6;vertical-align:top;min-width:105px}.week-table th{background:#f8fafc;color:var(--navy);font-size:13px}.week-table tr:last-child td{border-bottom:0}.slot{display:block;padding:7px;border-radius:8px;background:#eaf7f5;margin-bottom:5px;font-size:12px}.slot.open{background:#fff1df}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#f5f9fc,#e8f6f3)}.login-card{width:min(430px,100%);background:#fff;padding:30px;border-radius:22px;border:1px solid var(--line);box-shadow:0 16px 45px rgba(23,54,91,.12)}.login-card h1{color:var(--navy);margin-bottom:5px}.login-card .btn{width:100%;margin-top:8px}.login-logo{text-align:center;font-size:36px;color:var(--teal)}@media(max-width:800px){.app-shell{grid-template-columns:1fr}.sidebar{display:flex;overflow:auto;border-right:0;border-bottom:1px solid var(--line);padding:8px;position:sticky;top:72px;z-index:9}.sidebar a{white-space:nowrap;margin:0}.content{padding:18px}.grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.topbar{padding:0 14px}.userbox span{display:none}.week-scroll{overflow:auto}.page-head{flex-direction:column}.brand small{display:none}}

/* Zorgteam Online v0.2 - rooster */
.roster-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.roster-head h1{margin:0;color:var(--navy);font-size:30px}.roster-head p{margin:5px 0 0}.roster-actions{display:flex;gap:8px}.week-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:0 0 14px}.week-nav{display:flex;gap:8px;flex-wrap:wrap}.nav-btn{border:1px solid var(--line);background:#fff;color:var(--navy);text-decoration:none;padding:9px 12px;border-radius:9px;font-size:13px;font-weight:700}.nav-btn:hover,.nav-btn.today{background:#eef8f6;border-color:#bfe6df;color:#177d72}.legend{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:12px;white-space:nowrap}.legend span{display:flex;align-items:center;gap:6px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.dot.zzp{background:#77aee5}.dot.informal{background:#72c47a}.dot.open-dot{background:#f09a4a}.roster-table{border-radius:14px}.roster-table th,.roster-table td{height:84px;padding:8px;min-width:112px}.roster-table th{height:auto;text-align:center;font-weight:700}.roster-table .member-col{min-width:160px;text-align:left}.day-name{text-transform:uppercase;font-size:11px;letter-spacing:.06em;color:var(--muted)}.member-cell{display:flex;align-items:center;gap:9px;min-width:160px}.member-cell small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.avatar{width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:#e9f3fb;color:var(--navy);display:grid;place-items:center;font-weight:800}.open-icon{width:32px;height:32px;flex:0 0 32px;border-radius:10px;background:#fff0e3;color:#d5681b;display:grid;place-items:center;font-weight:900}.roster-table td.is-today,.roster-table th.is-today{background:#f1faf7}.slot{text-decoration:none;color:#23405d;transition:.12s ease;line-height:1.35}.slot:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(23,54,91,.10)}.slot.zzp-slot{background:#e9f3fd;border:1px solid #c3dbf2}.slot.informal-slot{background:#eaf7e9;border:1px solid #c9e8c7}.slot.open{background:#fff0e3;border:1px solid #ffd2ae;color:#9a4a12}.slot em{display:block;font-style:normal;font-size:10px;font-weight:850;color:#e26619;margin-top:3px}.open-row td{background:#fffcf8}.hours-row td{height:auto!important;background:#f8fafc;text-align:center;color:var(--navy)}.hours-row td:first-child{text-align:left}.roster-summary{display:grid;grid-template-columns:180px 180px 1fr;gap:14px;margin-top:15px}.summary-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 4px 14px rgba(23,54,91,.04)}.summary-card>span{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.summary-card>strong{font-size:24px;color:var(--navy)}.summary-card.costs{display:grid;grid-template-columns:1fr auto;gap:7px 24px}.summary-card.costs>span,.summary-card.costs>small{grid-column:1/-1}.summary-card.costs div{display:contents}.summary-card.costs label{color:var(--muted)}.summary-card.costs b{text-align:right}.summary-card.costs .total label,.summary-card.costs .total b{border-top:1px solid var(--line);padding-top:8px;font-weight:800;color:var(--navy)}.summary-card.costs small{color:var(--muted);font-size:10px;margin-top:5px}.back-link{display:inline-block;margin-bottom:8px;color:var(--teal);text-decoration:none;font-weight:700;font-size:13px}.shift-detail{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.shift-detail span{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}
@media(max-width:800px){.roster-head,.week-toolbar{align-items:stretch;flex-direction:column}.week-nav{display:grid;grid-template-columns:1fr 1fr 1fr}.nav-btn{text-align:center;padding:8px 6px;font-size:11px}.legend{overflow:auto}.roster-summary{grid-template-columns:1fr 1fr}.summary-card.costs{grid-column:1/-1}.roster-table th,.roster-table td{min-width:100px}.roster-table .member-col,.member-cell{min-width:130px}.shift-detail{grid-template-columns:1fr}}

/* Zorgteam Online v0.3 - maandrooster met instelbare codes */
.month-scroll{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff}.month-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;background:#fff}.month-table th,.month-table td{border-right:1px solid #e4e9f0;border-bottom:1px solid #e4e9f0;text-align:center;min-width:42px;height:38px;padding:3px;vertical-align:middle}.month-table thead th{position:sticky;top:0;background:#f7f9fc;z-index:2;color:var(--navy)}.month-table th small{display:block;text-transform:uppercase;font-size:9px;color:var(--muted);font-weight:750}.month-table th b{display:block;font-size:12px;margin-top:1px}.month-table .month-member{position:sticky;left:0;z-index:3;min-width:155px;max-width:155px;text-align:left;padding:7px 10px;background:#f7f9fc}.month-table tbody .month-member{z-index:1}.month-table .month-member small{display:block;font-size:9px;color:var(--muted);margin-top:2px}.month-table .weekend{background:#eef1f5}.month-table .unavailable{background:#e6e8eb}.month-table .is-today{box-shadow:inset 0 3px 0 var(--teal)}.dash{font-weight:800;color:#5d6570}.code-badge{display:inline-grid;place-items:center;min-width:23px;height:23px;padding:0 4px;border-radius:6px;margin:1px;font-size:11px;font-weight:850;color:#17365b;background:#e8f1fb;border:1px solid #cddded}.code-x{background:#e8edf6;border-color:#cdd6e6;color:#17365b}.code-o{background:#fff0e3;border-color:#f2cda9;color:#9a5518}.code-i{background:#e9f3fd;border-color:#c4daf1;color:#225f92}.code-z{background:#e7f7f4;border-color:#bfe5df;color:#14796f}.code-a{background:#eaf7e9;border-color:#c9e8c7;color:#397742}.code-p{background:#f1ebfa;border-color:#d9c9ef;color:#67418b}.code-open{background:#fff0e3;border-color:#f4bb8b;color:#c95f12}.month-open td{background:#fffaf4}.month-open .month-member{color:#dd5d14}.code-legend{display:flex;flex-wrap:wrap;gap:7px 12px;justify-content:flex-end;font-size:11px;color:var(--muted)}.code-legend span{display:flex;align-items:center;gap:4px}.code-legend b{color:var(--navy)}.unavailable-key b{font-size:16px}.month-note{margin-top:12px;padding:11px 13px;border-radius:10px;background:#eef8f6;color:#35625c;font-size:12px}.month-head{margin-bottom:12px}@media(max-width:800px){.month-table .month-member{min-width:130px;max-width:130px}.month-table th,.month-table td{min-width:38px}.code-legend{justify-content:flex-start}.month-scroll{max-height:70vh}}


/* Zorgteam Online v0.4 - Teambeheer */
.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}
.page-head h1{margin:0}.page-head p{margin:4px 0 0;color:#6b7280}
.btn.secondary{background:#eef2f3;color:#24313d!important}
.notice{padding:11px 14px;border-radius:9px;background:#e9f8f4;margin-bottom:14px}
.notice.error{background:#fff0ef}
.team-edit{padding:20px;margin-bottom:18px}
.team-edit h2{margin-top:0}
.team-edit .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.team-edit .form-grid label{font-weight:600}
.team-edit .form-grid input,.team-edit .form-grid select{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:10px;border:1px solid #d9e0e3;border-radius:8px;background:#fff}
.role-checks{display:flex;flex-wrap:wrap;gap:10px 18px;margin:10px 0 18px}
.role-checks label{white-space:nowrap}
.actions{display:flex;gap:10px}
.table-wrap{overflow:auto}
.team-table{width:100%;border-collapse:collapse}
.team-table th,.team-table td{padding:12px;border-bottom:1px solid #edf0f2;text-align:left;vertical-align:top}
.team-table small{display:block;color:#7b8790;margin-top:3px}
.role-pill{display:inline-block;padding:4px 7px;border-radius:999px;background:#edf8f5;margin:0 4px 4px 0;font-size:12px}
@media(max-width:700px){.team-edit .form-grid{grid-template-columns:1fr}.team-table{min-width:720px}}


/* Zorgteam Online v0.5 - uitgebreid Teambeheer */
.team-edit{margin-bottom:4px}
.team-edit h2{margin-top:0}
.team-edit h3{margin:20px 0 10px;color:var(--navy)}
.role-checks{display:flex;flex-wrap:wrap;gap:10px 18px}
.role-checks label{display:flex;align-items:center;gap:6px;font-size:14px}
.active-check{display:flex;gap:10px;align-items:flex-start;margin:20px 0;padding:13px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.active-check span{display:block}.active-check small,.field-help{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.team-form-actions{display:flex;gap:8px;margin-top:16px}
.table-wrap{overflow:auto}.team-table{width:100%;border-collapse:collapse;min-width:860px}
.team-table th,.team-table td{padding:12px 10px;text-align:left;border-bottom:1px solid #edf1f6;vertical-align:top}
.team-table th{font-size:12px;color:var(--muted);background:#fafbfd}
.team-table td small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.role-pill{display:inline-block;padding:4px 7px;border-radius:999px;background:#edf8f5;color:#35625c;font-size:11px;margin:0 4px 4px 0}
.status-pill{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700}
.status-active{background:#e5f7f0;color:#17634e}.status-inactive{background:#f0f1f3;color:#727982}
.inactive-row{opacity:.62}.edit-link{font-weight:700;color:var(--teal);text-decoration:none}
@media(max-width:800px){.team-table{min-width:800px}.role-checks{display:grid;grid-template-columns:1fr 1fr}}

/* v0.5.2 roosterherstel */
.practice-slot{cursor:default;text-decoration:none}

/* Zorgteam Online v0.6 - Zorgmomentenbeheer */
.care-moment-edit h2{margin-top:0}
.care-moment-table{width:100%;border-collapse:collapse;min-width:780px}
.care-moment-table th,.care-moment-table td{padding:12px 10px;text-align:left;border-bottom:1px solid #edf1f6;vertical-align:top}
.care-moment-table th{font-size:12px;color:var(--muted);background:#fafbfd}
.care-moment-table td small{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.care-code{display:inline-flex;min-width:30px;height:30px;padding:0 7px;border-radius:8px;align-items:center;justify-content:center;font-weight:800;color:#26343f;border:1px solid rgba(0,0,0,.05)}
.field input[type="color"]{height:42px;padding:4px;cursor:pointer}

/* Zorgteam Online v0.7 - Profielen & zorgteam */
.settings-card h2{margin-top:0}
.client-summary{margin-top:18px;padding:14px;border-radius:10px;background:#f7fafb;border:1px solid var(--line)}
.client-summary b,.client-summary span{display:block}.client-summary span{margin-top:4px;color:var(--muted);font-size:13px}
.zzp-only{position:relative}

/* v0.7.3 - gekoppelde cliënt in bovenbalk */
.topbar-brand-row{display:flex;align-items:center;gap:22px;min-width:0}
.active-client{font-size:13px;color:#53616d;white-space:nowrap;padding-left:18px;border-left:1px solid #d9e1e5}
.active-client b{color:#273846}
@media(max-width:820px){
  .topbar-brand-row{gap:10px}
  .active-client{font-size:11px;padding-left:10px;max-width:42vw;overflow:hidden;text-overflow:ellipsis}
}
@media(max-width:600px){
  .active-client{display:none}
}

/* v0.8 - interactief maandrooster */
.month-edit-cell{position:relative}
.month-edit-cell .code-badge{text-decoration:none}
.cell-add{display:inline-flex;width:18px;height:18px;align-items:center;justify-content:center;border-radius:50%;font-size:14px;font-weight:800;text-decoration:none;color:var(--teal);background:#edf8f5;margin:2px;opacity:.22}
.month-edit-cell:hover .cell-add,.cell-add:focus{opacity:1}
.moment-picker{display:flex;flex-wrap:wrap;gap:9px 14px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafcfc}
.moment-picker label{display:flex;align-items:center;gap:6px;cursor:pointer}
.roster-entry-form .danger{margin-left:auto;background:#fff0ef;color:#a63d38;border:1px solid #efcbc8}
@media(max-width:700px){.cell-add{opacity:.8}.moment-picker{display:grid;grid-template-columns:1fr 1fr}}

/* v0.9 - benodigde diensten / bezetting */
.requirements-table{width:100%;border-collapse:collapse;min-width:760px}
.requirements-table th,.requirements-table td{padding:10px;border-bottom:1px solid #edf1f6;text-align:center}
.requirements-table th:first-child,.requirements-table td:first-child{text-align:left;min-width:220px}
.requirements-table td:first-child{display:flex;align-items:center;gap:8px}
.requirements-table input[type="number"]{width:58px;padding:8px;text-align:center;border:1px solid var(--line);border-radius:8px}
.coverage-row td{height:30px;text-align:center;background:#fafbfd}
.coverage-row .month-member{text-align:left}
.coverage-short{background:#fff8e8!important}.coverage-over{background:#fff0ef!important}
.coverage-mark{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:999px;font-size:10px;font-weight:800}
.coverage-mark.short{background:#ffe8a3;color:#795c00}.coverage-mark.over{background:#ffd8d4;color:#9a332d}

/* v0.9.1 - onbeperkte bezetting */
.requirement-cell{display:flex;align-items:center;justify-content:center;gap:6px}
.unlimited-toggle{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.unlimited-toggle input{display:none}
.unlimited-toggle span{display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--line);background:#fff;color:#6b7780;font-weight:800;font-size:17px}
.unlimited-toggle input:checked + span{background:#e8f7f3;color:#177761;border-color:#aadfd1}
.req-count:disabled{opacity:.35;background:#f4f5f6}

/* v1.0 - Mijn instellingen + agenda */
.personal-settings-card h2{margin-top:0}
.calendar-scope-note{padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafcfc}
.calendar-link-card h3{margin-top:0}
.calendar-url-row{display:flex;gap:8px;align-items:center}
.calendar-url-row input{flex:1;min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:#f8fafb;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
@media(max-width:650px){.calendar-url-row{align-items:stretch;flex-direction:column}}

/* v1.0.2 - agenda beheer vanuit Team */
.team-calendar-card h2{margin-top:0}
.team-calendar-card{border-top:3px solid var(--teal)}

/* v1.1 - duidelijke roostercontrole */
.roster-check-row td{height:42px;padding:4px 3px!important}
.roster-check-row .month-member{padding:8px 10px!important}
.roster-check-cell{display:flex;flex-wrap:wrap;gap:3px;align-items:center;justify-content:center;min-width:38px}
.roster-check-badge{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:2px 5px;border-radius:6px;font-size:10px;font-weight:800;line-height:1;white-space:nowrap}
.roster-check-badge.short{background:#fff0c2;color:#745700;border:1px solid #efd67d}
.roster-check-badge.over{background:#ffe1de;color:#9b332c;border:1px solid #efb7b2}
.roster-check-badge.ok{background:#e5f7f0;color:#17634e;border:1px solid #b9e6d7;min-width:22px}
.roster-check-badge.none{background:transparent;color:#adb5bd;border:0}
.coverage-has-issues{background:#fffaf3!important}
.coverage-complete{background:#fbfdfc!important}
.inline-check{display:inline-flex;padding:2px 5px;border-radius:5px;font-size:11px;font-weight:800}
.inline-check.short{background:#fff0c2;color:#745700}
.inline-check.over{background:#ffe1de;color:#9b332c}
.inline-check.ok{background:#e5f7f0;color:#17634e}

/* v1.1.2 - Maandrooster schermfix
   Alleen CSS: bestaande roosterlogica en telling blijven onaangeroerd. */
.month-scroll{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-gutter:stable both-edges;
}
.month-table{
  width:max-content;
  min-width:100%;
  table-layout:fixed;
}
.month-table th,
.month-table td{
  min-width:34px;
  width:34px;
  max-width:34px;
  padding:2px;
  height:36px;
  box-sizing:border-box;
}
.month-table .month-member{
  min-width:118px;
  width:118px;
  max-width:118px;
  left:0;
  z-index:4;
  box-shadow:2px 0 0 rgba(20,35,50,.05);
}
.month-table thead .month-member{
  z-index:6;
}
.month-table th small{font-size:8px}
.month-table th b{font-size:11px}
.month-table .code-badge{
  min-width:20px;
  height:20px;
  padding:0 4px;
  font-size:9px;
  line-height:20px;
}
.month-table .cell-add{
  width:15px;
  height:15px;
  font-size:11px;
  margin:1px;
}
.roster-check-badge{
  min-height:19px;
  padding:2px 3px;
  font-size:9px;
}
.roster-check-cell{gap:2px}

/* Op brede schermen benutten we de beschikbare ruimte wat ruimer. */
@media(min-width:1400px){
  .month-table th,
  .month-table td{
    min-width:38px;
    width:38px;
    max-width:38px;
  }
  .month-table .month-member{
    min-width:130px;
    width:130px;
    max-width:130px;
  }
}

/* Op laptops blijft het rooster leesbaar; horizontaal scrollen blijft mogelijk. */
@media(max-width:1100px){
  .content{min-width:0}
  .month-scroll{max-height:72vh}
  .month-table th,
  .month-table td{
    min-width:31px;
    width:31px;
    max-width:31px;
  }
  .month-table .month-member{
    min-width:108px;
    width:108px;
    max-width:108px;
    padding-left:7px;
    padding-right:7px;
  }
}

/* v1.1.3 - inklapbare zijbalk */
.sidebar{
  position:relative;
  transition:width .18s ease, min-width .18s ease, padding .18s ease;
}
.content{
  min-width:0;
  transition:width .18s ease;
}
.sidebar-toggle{
  position:absolute;
  top:10px;
  right:8px;
  width:28px;
  height:28px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:8px;
  background:rgba(255,255,255,.08);
  color:#fff;
  cursor:pointer;
  font-size:22px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:10;
}
.sidebar-toggle:hover{background:rgba(255,255,255,.16)}

.app-shell.sidebar-collapsed{
  grid-template-columns:48px minmax(0,1fr);
}
.app-shell.sidebar-collapsed .sidebar{
  width:48px;
  min-width:48px;
  padding-left:6px;
  padding-right:6px;
  overflow:hidden;
}
.app-shell.sidebar-collapsed .sidebar > a{
  opacity:0;
  pointer-events:none;
  white-space:nowrap;
}
.app-shell.sidebar-collapsed .sidebar-toggle{
  right:9px;
}

/* Het maandrooster krijgt direct de vrijgekomen breedte. */
.app-shell.sidebar-collapsed .month-scroll{
  max-width:100%;
}

/* Mobiel houdt de bestaande navigatie-opzet. */
@media(max-width:700px){
  .sidebar-toggle{display:none}
  .app-shell.sidebar-collapsed{grid-template-columns:1fr}
}

/* v1.1.4 - zichtbare zijbalkknop */
.sidebar{overflow:visible!important}
.sidebar-toggle{
  display:flex!important;
  position:absolute!important;
  top:14px!important;
  right:-16px!important;
  width:32px!important;
  height:32px!important;
  border:1px solid #cbd8d4!important;
  border-radius:50%!important;
  background:#ffffff!important;
  color:#176b5b!important;
  box-shadow:0 2px 8px rgba(0,0,0,.16)!important;
  font-size:24px!important;
  font-weight:700!important;
  z-index:100!important;
}
.sidebar-toggle:hover{background:#edf8f4!important}
.app-shell.sidebar-collapsed .sidebar{overflow:visible!important}
.app-shell.sidebar-collapsed .sidebar-toggle{
  right:-16px!important;
}
@media(max-width:700px){
  .sidebar-toggle{display:none!important}
}

/* v1.1.5 - hoofdscherm volledig breed bij ingeklapte zijbalk */
.app-shell.sidebar-collapsed .content{
  max-width:none!important;
  width:auto!important;
  min-width:0!important;
  padding-left:18px!important;
  padding-right:18px!important;
}

.app-shell.sidebar-collapsed{
  width:100%!important;
  max-width:none!important;
}

.app-shell.sidebar-collapsed .month-scroll{
  width:100%!important;
  max-width:none!important;
}

.app-shell.sidebar-collapsed .month-table{
  min-width:100%!important;
}

/* Op laptops benutten we de extra ruimte ook echt voor de dagkolommen. */
@media(min-width:900px){
  .app-shell.sidebar-collapsed .month-table th,
  .app-shell.sidebar-collapsed .month-table td{
    min-width:33px;
    width:33px;
    max-width:33px;
  }
  .app-shell.sidebar-collapsed .month-table .month-member{
    min-width:112px;
    width:112px;
    max-width:112px;
  }
}

/* v1.2 - rooster publiceren + intern berichten */
.publication-status{display:inline-flex;margin-top:6px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:750}
.publication-status.concept{background:#fff2c9;color:#795c00;border:1px solid #ead27d}
.publication-status.published{background:#e4f7ef;color:#17634e;border:1px solid #b9e5d5}
.inline-form{display:inline-flex;margin:0}
.unpublished-roster-card{max-width:680px}
.sidebar a{position:relative}
.sidebar-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;margin-left:7px;border-radius:999px;background:#d94f45;color:#fff;font-size:10px;font-weight:800}
.message-tabs{display:flex;gap:8px;margin-bottom:14px}
.message-tabs a{padding:8px 12px;border-radius:9px;text-decoration:none;color:var(--navy);background:#f2f5f7}
.message-tabs a.active{background:#e4f5f0;color:#17634e;font-weight:800}
.message-compose{max-width:760px}
.message-compose .field{margin-bottom:14px}
.message-list{padding:0;overflow:hidden}
.message-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid #edf1f3;text-decoration:none;color:inherit}
.message-row:last-child{border-bottom:0}
.message-row.unread{background:#f1faf7}
.message-row small,.dashboard-message-row small{display:block;color:var(--muted);margin-top:4px}
.message-type{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}
.message-type.system{background:#e9eefb;color:#344e86}
.message-type.user{background:#e7f6ef;color:#17634e}
.message-detail{max-width:820px}
.message-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.message-detail-head h2{margin:8px 0 0}
.message-body{padding:16px;border-radius:10px;background:#f8fafb;line-height:1.55}
.dashboard-message-head{display:flex;justify-content:space-between;align-items:center;gap:20px}
.dashboard-message-head h2{margin-bottom:2px}
.dashboard-message-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-top:1px solid #edf1f3;text-decoration:none;color:inherit}
.dashboard-message-row.unread b{color:#17634e}
.unread-dot{width:9px;height:9px;border-radius:50%;background:#1f9278;flex:0 0 9px}

/* v1.3 - meerdere zorgteams */
.topbar-actions{display:flex;align-items:center;gap:12px;margin-left:auto}
.team-switch-form select{max-width:210px;padding:7px 28px 7px 10px;border:1px solid #d3dfdf;border-radius:9px;background:#fff;color:var(--navy);font-size:12px;font-weight:700}
.care-team-list{display:grid;gap:9px}
.care-team-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;border:1px solid var(--line);border-radius:10px}
.care-team-item.current{background:#edf8f5;border-color:#b9e1d7}
.care-team-item small{display:block;color:var(--muted);margin-top:3px}
.care-team-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.care-team-actions form{margin:0}
@media(max-width:800px){.topbar-actions{gap:5px}.team-switch-form select{max-width:145px}.care-team-item{align-items:flex-start;flex-direction:column}}

/* v1.3.1 - rollen per zorgteam + superadmin + versienummer */
.app-version{margin-top:10px;font-size:11px;color:var(--muted);font-weight:700}
.welcome-version{font-size:11px;color:var(--muted);font-weight:700;vertical-align:middle}
.superadmin-badge{display:inline-flex;padding:2px 6px;border-radius:999px;background:#eee7ff;color:#6544a5;font-size:9px;font-style:normal;font-weight:800;margin-left:4px}
.team-role-note{display:flex;gap:8px;align-items:flex-start;margin:0 0 14px;padding:10px 12px;border-radius:10px;background:#f6f4ff;border:1px solid #e4ddfb;font-size:12px}
.team-role-note b{white-space:nowrap;color:#5b4392}.team-role-note span{color:var(--muted)}
.superadmin-warning{padding:10px 12px;margin-bottom:12px;border-radius:9px;background:#fff6dd;color:#6e5716}
.superadmin-list{display:grid;gap:8px}
.superadmin-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.superadmin-row:last-child{border-bottom:0}
.superadmin-row small{display:block;color:var(--muted);margin-top:3px}
@media(max-width:720px){.superadmin-row{grid-template-columns:1fr}.team-role-note{flex-direction:column}}

/* v1.3.2 - centraal beheer zorgteams & rollen */
.superadmin-edit-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:14px}
.superadmin-edit-head h2{margin:0}.superadmin-edit-head p{margin:4px 0 0}
.superadmin-section h3{margin-top:0}
.team-role-manager{display:grid;gap:10px;margin:16px 0}
.team-role-card{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fafbfc;opacity:.72}
.team-role-card.enabled{background:#f4fbf8;border-color:#cce8df;opacity:1}
.team-role-title{display:flex;justify-content:space-between;gap:14px;align-items:center}
.team-role-title>label:first-child{font-size:14px}
.default-team-radio{font-size:11px;color:var(--muted)}
.team-role-options{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:11px;padding-top:10px;border-top:1px solid #e7ecee}
.team-role-options label{font-size:12px}
.superadmin-help{padding:10px 12px;border-radius:9px;background:#f5f7fa;color:var(--muted);font-size:12px;margin:14px 0}
.superadmin-user-table-wrap{overflow:auto}
.superadmin-user-table{width:100%;border-collapse:collapse;min-width:650px}
.superadmin-user-table th,.superadmin-user-table td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left}
.superadmin-user-table small{display:block;color:var(--muted);margin-top:3px}
.team-edit-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
@media(max-width:720px){
  .superadmin-edit-head,.team-role-title,.team-edit-title-row{align-items:flex-start;flex-direction:column}
  .team-role-options{display:grid;grid-template-columns:1fr 1fr}
}

/* v1.3.3.1 - versieontwikkeling binnen de app */
.sidebar-version{
  display:inline-flex;
  margin-left:5px;
  padding:2px 5px;
  border-radius:999px;
  background:#edf5f3;
  color:#34766a;
  font-size:8px;
  font-weight:800;
  vertical-align:middle;
}
.version-page-head{align-items:flex-start}
.version-current-chip{
  display:inline-flex;
  align-items:center;
  padding:7px 11px;
  border-radius:999px;
  background:#e5f6f1;
  color:#17634e;
  border:1px solid #c3e5dc;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.version-summary-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-bottom:16px;
}
.version-summary-card b{display:block;color:var(--navy);font-size:16px}
.version-summary-card span{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.version-history{display:grid;gap:10px}
.version-release{
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
}
.version-release[open]{border-color:#b9dfd6}
.version-release summary{
  cursor:pointer;
  list-style:none;
  display:grid;
  grid-template-columns:92px minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  padding:14px 16px;
}
.version-release summary::-webkit-details-marker{display:none}
.version-release-number{font-weight:900;color:#238a78}
.version-release-title{font-weight:750;color:var(--navy)}
.version-release-title em{
  display:inline-flex;
  margin-left:7px;
  padding:2px 6px;
  border-radius:999px;
  background:#e5f6f1;
  color:#17634e;
  font-size:9px;
  font-style:normal;
  font-weight:800;
}
.version-release-date{font-size:11px;color:var(--muted)}
.version-release-body{
  border-top:1px solid #edf1f2;
  padding:12px 18px 15px;
}
.version-release-body ul{margin:0;padding-left:20px;color:var(--muted)}
.version-release-body li+li{margin-top:5px}
@media(max-width:700px){
  .version-summary-card{align-items:flex-start;flex-direction:column}
  .version-release summary{grid-template-columns:78px minmax(0,1fr)}
  .version-release-date{grid-column:2}
}

/* v1.3.4 - rooster importeren */
.import-card{max-width:760px}
.import-rules{display:grid;gap:4px;padding:12px 14px;margin:14px 0;border-radius:10px;background:#f5f8f7;color:var(--muted);font-size:12px}
.import-rules b{color:var(--navy)}
.import-stats{grid-template-columns:repeat(4,1fr)}
.import-warning-card{border-color:#efd9a7;background:#fffaf0}
.import-warning-card ul{margin-bottom:0}
.import-preview-wrap{overflow:auto}
.import-preview-table{width:100%;border-collapse:collapse;min-width:680px}
.import-preview-table th,.import-preview-table td{padding:10px 9px;border-bottom:1px solid var(--line);text-align:left}
.import-preview-table tr.duplicate{opacity:.58}
.import-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
@media(max-width:800px){.import-stats{grid-template-columns:1fr 1fr}}

/* v1.3.4.3 - maand leegmaken/herstellen */
.btn.danger-outline{background:#fff;color:#b14f49;border:1px solid #dfb8b4}
.btn.danger-outline:hover{background:#fff5f4}
.btn.danger{background:#b94f48;color:#fff;border-color:#b94f48}
.confirm-modal[hidden]{display:none}
.confirm-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}
.confirm-modal-backdrop{position:absolute;inset:0;background:rgba(16,42,53,.35);backdrop-filter:blur(2px)}
.confirm-modal-card{position:relative;width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 24px 70px rgba(20,50,60,.22)}
.confirm-modal-card h3{margin-top:0}
.confirm-modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:20px}
.confirm-modal-actions form{margin:0}

/* v1.3.5 - dienstovername met goedkeuring */
.claim-mode-card{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(360px,1.2fr);gap:24px;align-items:start}
.claim-mode-card h3{margin:0 0 4px}
.claim-mode-form{display:grid;gap:9px}
.claim-mode-form label{display:grid;grid-template-columns:20px 1fr;column-gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.claim-mode-form label input{grid-row:1/3;margin-top:4px}
.claim-mode-form label b{display:block}
.claim-mode-form label span{font-size:11px;color:var(--muted)}
.claim-mode-form .btn{justify-self:start}
.pending-claims-card h2{margin-top:0}
.claim-request-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;border-top:1px solid var(--line)}
.claim-request-row:first-of-type{border-top:0}
.claim-request-row b,.claim-request-row span{display:block}
.claim-request-row span{font-size:12px;color:var(--muted);margin-top:2px}
.claim-actions{display:flex;gap:8px;flex-wrap:wrap}
.claim-actions form{margin:0}
@media(max-width:800px){.claim-mode-card{grid-template-columns:1fr}.claim-request-row{align-items:flex-start;flex-direction:column}}

/* v1.3.5.1 - instelling dienstovername onder Instellingen */
.settings-claim-mode{max-width:720px;margin-top:14px}

/* v1.3.7 - onboarding nieuw zorgteam */
.onboarding-progress{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.onboarding-progress div{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--muted);font-size:11px;text-align:center}
.onboarding-progress span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef2f3;font-weight:800}
.onboarding-progress .active span,.onboarding-progress .done span{background:#0f766e;color:white}
.onboarding-progress .active small{color:#0f766e;font-weight:800}
.onboarding-card{max-width:1000px}
.wizard-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;margin-top:22px;flex-wrap:wrap}
.manager-block{padding:14px 0;border-top:1px solid var(--line)}
.manager-block:first-of-type{border-top:0}
.manager-block h3{margin:0 0 10px}
.person-row{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.code-row{display:grid;grid-template-columns:160px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.onboarding-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}
.onboarding-summary>div{padding:14px;border:1px solid var(--line);border-radius:10px}
.onboarding-summary small,.onboarding-summary b{display:block}
.onboarding-summary small{color:var(--muted);margin-bottom:4px}
@media(max-width:800px){.onboarding-progress{grid-template-columns:repeat(4,1fr)}.person-row,.code-row,.onboarding-summary{grid-template-columns:1fr}}

/* v1.3.7 - destructieve Superadmin-acties */
.btn.danger{background:#fff;color:#b42318;border:1px solid #f0b4ad}.btn.danger:hover{background:#fff4f2}


/* v1.3.8 - Historie / activiteitengeheugen */
.history-filters{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.history-filter-links{display:flex;gap:8px;flex-wrap:wrap}
.history-list{padding:8px 20px}
.history-row{display:grid;grid-template-columns:16px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}
.history-row:last-child{border-bottom:0}
.history-dot{width:10px;height:10px;border-radius:50%;background:#2aa89b;margin-top:7px}
.history-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.history-details{margin:5px 0;color:var(--text)}
.history-main small{display:block;color:var(--muted);margin-top:5px}
@media(max-width:700px){.history-filters{align-items:stretch}.history-filter-links{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.history-filter-links .btn{white-space:nowrap}}


/* v1.3.8 - Historie / activiteitengeheugen */
.history-filters{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.history-filter-links{display:flex;gap:8px;flex-wrap:wrap}
.history-list{padding:8px 20px}
.history-row{display:grid;grid-template-columns:16px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}
.history-row:last-child{border-bottom:0}
.history-dot{width:10px;height:10px;border-radius:50%;background:#2aa89b;margin-top:7px}
.history-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.history-details{margin:5px 0;color:var(--text)}
.history-main small{display:block;color:var(--muted);margin-top:5px}
@media(max-width:700px){.history-filters{align-items:stretch}.history-filter-links{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.history-filter-links .btn{white-space:nowrap}}


/* v1.3.8.2 - volledige mobiele basis */
.mobile-menu-toggle,
.mobile-menu-backdrop{display:none}

@media(max-width:800px){
  html,body{max-width:100%;overflow-x:hidden}
  body.mobile-nav-open{overflow:hidden}

  .topbar{
    min-height:64px;
    height:auto;
    padding:8px 10px;
    gap:8px;
    align-items:center;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
  }
  .mobile-menu-toggle{
    display:grid;
    place-items:center;
    width:42px;height:42px;
    border:0;border-radius:10px;
    background:#eef8f6;color:var(--navy);
    font-size:24px;line-height:1;
    cursor:pointer;
  }
  .topbar-brand-row{
    min-width:0;
    display:flex;
    align-items:center;
    gap:8px;
    overflow:hidden;
  }
  .brand{min-width:0;gap:7px}
  .brandmark{width:34px;height:34px;flex:0 0 34px;border-radius:10px}
  .brand span:last-child{min-width:0}
  .brand b{
    display:block;
    font-size:12px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .brand small{display:none}
  .active-client{
    min-width:0;
    max-width:42vw;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:11px;
  }
  .topbar-actions{
    display:flex;
    align-items:center;
    gap:6px;
    min-width:0;
  }
  .team-switch-form select{
    max-width:130px;
    min-width:0;
    padding:8px 24px 8px 8px;
    font-size:11px;
  }
  .userbox{gap:6px}
  .userbox span{display:none}
  .userbox a{font-size:11px;white-space:nowrap}

  .app-shell{
    display:block;
    min-height:calc(100vh - 64px);
    position:relative;
  }
  .sidebar{
    display:block;
    position:fixed;
    top:0;bottom:0;left:0;
    width:min(82vw,300px);
    height:100dvh;
    padding:76px 12px 18px;
    background:#fff;
    border-right:1px solid var(--line);
    border-bottom:0;
    overflow-y:auto;
    overflow-x:hidden;
    z-index:40;
    transform:translateX(-105%);
    transition:transform .18s ease;
    box-shadow:12px 0 40px rgba(23,54,91,.14);
  }
  .mobile-menu-open .sidebar{transform:translateX(0)}
  .sidebar-toggle{display:none!important}
  .sidebar a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    white-space:normal;
    padding:11px 12px;
    margin-bottom:4px;
  }
  .sidebar-bottom-link{position:static!important;margin-top:18px}
  .sidebar-section-divider{margin:10px 8px}
  .mobile-menu-backdrop{
    position:fixed;inset:0;
    background:rgba(17,40,57,.38);
    z-index:35;
  }
  .mobile-menu-open .mobile-menu-backdrop{display:block}

  .content{
    width:100%;
    max-width:100%;
    min-width:0;
    padding:16px 12px 28px;
    overflow-x:hidden;
  }
  .page-head,.roster-head{
    width:100%;
    max-width:100%;
    gap:10px;
    margin-bottom:14px;
  }
  .page-head h1,.roster-head h1{font-size:22px;line-height:1.15}
  .page-head p,.roster-head p{margin:4px 0 0;font-size:12px}
  .page-head>.btn,.roster-actions .btn{width:100%;text-align:center}
  .roster-actions{width:100%;flex-wrap:wrap}
  .roster-actions>*{flex:1 1 145px;text-align:center}

  .grid{
    grid-template-columns:1fr!important;
    width:100%;
    max-width:100%;
    gap:10px;
  }
  .grid>*{grid-column:1!important;min-width:0}
  .card{
    width:100%;
    max-width:100%;
    min-width:0;
    padding:14px;
    border-radius:13px;
  }
  .card h2{font-size:19px}
  .card h3{font-size:15px}
  .metric{font-size:26px}

  .form-grid,.person-row,.code-row,.onboarding-summary,.claim-mode-card{
    grid-template-columns:1fr!important;
  }
  .field input,.field select,.field textarea{
    min-height:44px;
    font-size:16px; /* voorkomt automatische iOS-zoom */
  }
  .btn{
    min-height:42px;
    max-width:100%;
  }
  .team-form-actions,.wizard-actions,.import-actions,.confirm-modal-actions,.claim-actions{
    width:100%;
  }
  .team-form-actions .btn,.wizard-actions .btn{
    flex:1 1 140px;
    text-align:center;
  }

  /* brede onderdelen scrollen binnen hun eigen kaart, niet de hele pagina */
  .week-scroll,.month-scroll,.import-preview-wrap,.table-wrap,
  .team-table-wrap,.users-table-wrap,.history-table-wrap{
    width:100%;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  table{max-width:none}
  .week-table,.roster-table{width:max-content;min-width:760px}
  .month-table{min-width:max-content}
  .import-preview-table{min-width:680px}
  .week-table th,.week-table td{min-width:96px}
  .roster-table .member-col,.member-cell{min-width:125px}

  .week-toolbar{gap:10px}
  .week-nav{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
  }
  .nav-btn{font-size:10px;padding:8px 4px}
  .legend{width:100%;overflow-x:auto;padding-bottom:3px}
  .roster-summary{grid-template-columns:1fr!important}
  .summary-card.costs{grid-column:auto}

  .onboarding-progress{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px 3px;
  }
  .onboarding-progress small{font-size:9px}
  .onboarding-progress span{width:25px;height:25px}

  .claim-request-row{
    align-items:stretch;
    flex-direction:column;
  }
  .claim-actions{display:grid;grid-template-columns:1fr 1fr}
  .claim-actions .btn{width:100%}

  .history-list{padding:4px 12px}
  .history-row{gap:8px;padding:13px 0}
  .history-filter-links{
    width:100%;
    overflow-x:auto;
    flex-wrap:nowrap;
  }

  .confirm-modal{padding:12px}
  .confirm-modal-card{padding:17px;border-radius:14px}
}

@media(max-width:480px){
  .topbar{grid-template-columns:auto minmax(0,1fr)}
  .topbar-actions{
    grid-column:1/-1;
    width:100%;
    justify-content:space-between;
    padding-left:50px;
  }
  .active-client{max-width:52vw}
  .team-switch-form{flex:1;min-width:0}
  .team-switch-form select{width:100%;max-width:190px}
  .userbox{margin-left:auto}
  .content{padding:14px 10px 24px}
  .page-head h1,.roster-head h1{font-size:20px}
  .card{padding:13px}
}


/* v1.3.8.3 - cliënt snelacties */
.active-client{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.client-quick-actions{display:inline-flex;align-items:center;gap:5px}
.client-quick-link{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 8px;
  border-radius:999px;
  background:#eef8f6;
  color:#167f74;
  text-decoration:none;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
.client-quick-link:hover{background:#ddf2ed}
@media(max-width:800px){
  .active-client{gap:4px}
  .client-quick-actions{gap:3px}
  .client-quick-link{min-height:26px;padding:4px 7px;font-size:9px}
}


/* v1.3.8.4 - cliëntinformatie mobiel onder de header */
.mobile-client-strip{display:none}
@media(max-width:800px){
  .topbar .active-client{display:none!important}
  .mobile-client-strip{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:9px 12px;
    background:#fff;
    border-bottom:1px solid var(--line);
  }
  .mobile-client-name{
    min-width:0;
    display:flex;
    align-items:baseline;
    gap:6px;
    flex-wrap:wrap;
  }
  .mobile-client-name>span{
    font-size:10px;
    color:var(--muted);
    text-transform:uppercase;
    letter-spacing:.04em;
    font-weight:800;
  }
  .mobile-client-name>b{
    color:var(--navy);
    font-size:13px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:42vw;
  }
  .mobile-client-name>small{
    color:var(--muted);
    font-size:10px;
  }
  .mobile-client-actions{
    display:flex;
    align-items:center;
    gap:5px;
    flex:0 0 auto;
  }
  .mobile-client-actions a{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:5px 8px;
    border-radius:999px;
    background:#eef8f6;
    color:#167f74;
    text-decoration:none;
    font-size:10px;
    font-weight:800;
    white-space:nowrap;
  }
}
@media(max-width:480px){
  .mobile-client-strip{
    align-items:flex-start;
    flex-direction:column;
    gap:7px;
  }
  .mobile-client-name>b{max-width:70vw}
  .mobile-client-actions{width:100%}
  .mobile-client-actions a{flex:1;justify-content:center}
}

/* v1.3.8.9 - bedrag bij maanduren */
.month-amount{margin:2px 0 4px;color:var(--teal);font-size:18px;font-weight:800}


/* v1.3.9.0 - licentiebeheer */
.topbar-license{display:flex;align-items:center;gap:5px;padding:5px 8px;border-radius:9px;background:#edf8f5;color:#17634e;font-size:10px;white-space:nowrap}
.topbar-license small{font-size:9px;color:inherit}
.topbar-license.expired{background:#fff0ee;color:#a33a2b}
.license-summary{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:7px}
.license-summary small{margin:0!important}
.license-pill{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800;background:#f0f1f3;color:#68717a}
.license-pill.active{background:#e5f7f0;color:#17634e}
.license-pill.expired{background:#fff0ee;color:#a33a2b}
.license-form{display:grid;grid-template-columns:150px 150px 120px auto;gap:8px;align-items:end;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.license-form .field label{font-size:10px}
.license-form .field input,.license-form .field select{min-height:38px;padding:7px 9px}
@media(max-width:800px){
  .topbar-license{display:none}
  .license-form{grid-template-columns:1fr 1fr}
  .license-form .btn{grid-column:1/-1}
}
@media(max-width:480px){
  .license-form{grid-template-columns:1fr}
  .license-form .btn{grid-column:auto}
}


/* v1.3.9.1 - ronde profielfoto's */
.profile-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;flex:0 0 38px;background:#e7f3f1;color:var(--teal);font-size:14px;font-weight:800;overflow:hidden}
.profile-avatar.large{width:82px;height:82px;flex-basis:82px;font-size:28px}
.profile-avatar.fallback{border:1px solid #d7e6e3}
.person-with-avatar,.message-person,.message-sender,.profile-photo-editor{display:flex;align-items:center;gap:10px}
.person-with-avatar>span,.message-person>span{min-width:0;display:flex;flex-direction:column}
.profile-photo-editor{align-items:flex-start}
.header-client-person{display:inline-flex!important;align-items:center;gap:6px}
.profile-avatar.header-avatar{width:28px;height:28px;flex-basis:28px}
.profile-avatar.mobile-client-avatar{width:30px;height:30px;flex-basis:30px}
.message-row .message-person{flex:1;min-width:0}
@media(max-width:800px){
  .profile-avatar{width:34px;height:34px;flex-basis:34px}
  .profile-photo-editor{align-items:flex-start}
}


/* v1.3.9.3 - uitgebreid geheugen / historie */
.history-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.history-summary-grid .card{display:flex;flex-direction:column;gap:5px}
.history-summary-grid .card>b{font-size:20px;color:var(--teal)}
.history-search-form{display:grid;grid-template-columns:minmax(240px,2fr) 160px 160px auto;gap:10px;align-items:end}
.history-search-actions{display:flex;gap:7px;align-items:center}
.history-subject{margin-top:5px;font-size:11px;color:#657078}
.history-limit-note{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
@media(max-width:900px){
  .history-search-form{grid-template-columns:1fr 1fr}
  .history-search-wide{grid-column:1/-1}
  .history-search-actions{grid-column:1/-1}
}
@media(max-width:600px){
  .history-summary-grid{grid-template-columns:1fr}
  .history-search-form{grid-template-columns:1fr}
  .history-search-wide,.history-search-actions{grid-column:auto}
}


/* v1.3.9.5 - abonnement- en betaalstatus voorbereiding */
.subscription-summary{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px}
.subscription-summary small{margin:0!important}
.subscription-pill,.payment-pill{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800}
.subscription-pill{background:#e8f3fb;color:#285f86}
.payment-pill{background:#f2f3f5;color:#5f6872}
.subscription-form{display:grid;grid-template-columns:150px 150px 180px 160px auto;gap:8px;align-items:end;margin-top:9px;padding-top:10px;border-top:1px dashed var(--line)}
.subscription-form .field label{font-size:10px}
.subscription-form .field input,.subscription-form .field select{min-height:38px;padding:7px 9px}
@media(max-width:1000px){.subscription-form{grid-template-columns:1fr 1fr}.subscription-form .btn{grid-column:1/-1}}
@media(max-width:520px){.subscription-form{grid-template-columns:1fr}.subscription-form .btn{grid-column:auto}}


/* v1.3.9.6 - Rechtenbeheer */
.permissions-card{padding:0;overflow:hidden}
.permissions-scroll{overflow-x:auto}
.permissions-table{width:100%;border-collapse:collapse;min-width:920px}
.permissions-table th,.permissions-table td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:center;vertical-align:middle}
.permissions-table th:first-child,.permissions-table td:first-child{text-align:left;min-width:300px}
.permissions-table td:first-child small{display:block;color:var(--muted);font-weight:400;margin-top:3px}
.permissions-group td{background:#f5f8fa;color:var(--teal);font-weight:800;text-transform:uppercase;font-size:11px;letter-spacing:.05em}
.permission-check input{width:20px;height:20px;accent-color:var(--teal)}
.permissions-actions{padding:16px;display:flex;justify-content:flex-end}
@media(max-width:800px){.permissions-card{margin-left:-4px;margin-right:-4px}.permissions-actions{position:sticky;left:0;justify-content:stretch}.permissions-actions .btn{width:100%}}


/* v1.3.9.7 - Roosteraar uitgebreide acties */
.team-row-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.team-row-actions form{margin:0}
.team-row-actions .btn{min-height:32px;padding:6px 9px;font-size:11px}
.roster-quick-actions{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.4fr);gap:16px;align-items:end}
.roster-quick-actions h3{margin:0 0 4px}
.roster-quick-actions p{margin:0}
.roster-reassign-form{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:8px;align-items:end}
.roster-quick-buttons{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.roster-quick-buttons form{margin:0}
@media(max-width:800px){
  .roster-quick-actions{grid-template-columns:1fr}
  .roster-reassign-form{grid-template-columns:1fr}
  .roster-reassign-form .btn{width:100%}
  .roster-quick-buttons{grid-column:auto}
  .roster-quick-buttons form,.roster-quick-buttons .btn{width:100%}
}


/* v1.3.9.10 - rustig cliëntportaal */
.client-portal-page{max-width:1180px;margin:0 auto}
.client-eyebrow{display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#3f8f80;margin-bottom:7px}
.client-page-head h1,.client-welcome h1{margin:0}
.client-page-head{align-items:flex-end}
.client-welcome{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px 34px;border-radius:24px;background:linear-gradient(135deg,#eef8f4,#f8fbfa);border:1px solid #d9ece6;margin-bottom:22px}
.client-welcome p{margin:8px 0 0;color:#64726f}
.client-welcome-heart{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:#d9efe8;color:#368979;font-size:30px;flex:0 0 auto}

.client-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}
.client-summary-card{display:flex;flex-direction:column;gap:5px;min-height:142px}
.client-summary-card>span{font-weight:750;color:#687470}
.client-summary-card>strong{font-size:2rem;line-height:1.15;color:#173f3a}
.client-summary-card>small{color:#74807d}
.client-summary-card.primary{background:#eef8f4}
.client-summary-card.next{background:#fbf7eb}

.client-section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}
.client-section-head h2{margin:0 0 3px}
.client-today-list{display:grid;gap:10px}
.client-today-care{display:grid;grid-template-columns:115px 1fr;gap:14px;align-items:center;padding:14px 0;border-top:1px solid #edf1ef}
.client-today-care:first-child{border-top:0}
.client-time-badge{font-weight:800;color:#245d54;background:#eef8f4;border-radius:12px;padding:9px 12px;text-align:center}
.client-today-care b{display:block;margin-bottom:4px}
.client-today-care span{display:block;color:#6e7976}
.client-empty-inline{display:flex;gap:14px;align-items:center;padding:18px 0}
.client-empty-inline>span{font-size:32px;color:#73aa9d}
.client-empty-inline b,.client-empty-inline small{display:block}
.client-empty-inline small{color:#7b8582;margin-top:3px}

.client-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}
.client-quick-card{text-decoration:none;color:inherit;display:flex;gap:14px;align-items:center;transition:transform .15s ease,box-shadow .15s ease}
.client-quick-card:hover{transform:translateY(-2px)}
.client-quick-card>span{font-size:25px;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#eef8f4}
.client-quick-card b,.client-quick-card small{display:block}
.client-quick-card small{color:#75807d;margin-top:3px}

.client-period-nav{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 18px}
.client-week-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.client-week-day{min-height:160px}
.client-week-day.today,.client-agenda-day.today{border:2px solid #8cc8b8}
.client-week-day-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.client-week-day-head b,.client-week-day-head span{display:block}
.client-week-day-head span{color:#78827f;font-size:.9rem;margin-top:2px}
.client-week-day-head em{font-style:normal;font-size:.78rem;font-weight:800;background:#e1f3ed;color:#33796d;border-radius:999px;padding:5px 9px}
.client-week-care{border-top:1px solid #edf1ef;padding:10px 0;display:grid;grid-template-columns:90px 1fr;column-gap:9px}
.client-week-care:first-of-type{border-top:0}
.client-week-care .client-week-time{grid-row:1 / span 2;font-weight:800;color:#37675f}
.client-week-care b,.client-week-care small{display:block}
.client-week-care small{color:#75807d;margin-top:2px}

.client-agenda-list{display:grid;gap:12px}
.client-agenda-day{display:grid;grid-template-columns:92px 1fr;gap:20px}
.client-agenda-date{text-align:center;border-right:1px solid #e6ece9;padding-right:18px}
.client-agenda-date span,.client-agenda-date small{display:block;color:#75807d}
.client-agenda-date strong{display:block;font-size:2rem;color:#285d55;margin:3px 0}
.client-agenda-items{display:grid;gap:4px}
.client-care-row{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:10px 0;border-top:1px solid #edf1ef}
.client-care-row:first-child{border-top:0}
.client-care-time{font-weight:800;color:#37675f}
.client-care-main b,.client-care-main span{display:block}
.client-care-main span{color:#75807d;margin-top:3px}
.client-empty-state{text-align:center;padding:42px 24px}
.client-empty-icon{font-size:38px;color:#73aa9d;margin-bottom:8px}

@media(max-width:800px){
  .client-welcome{padding:22px}
  .client-welcome-heart{width:54px;height:54px;font-size:24px}
  .client-summary-grid,.client-quick-grid,.client-week-grid{grid-template-columns:1fr}
  .client-summary-card{min-height:auto}
  .client-section-head{align-items:flex-start;flex-direction:column}
  .client-today-care{grid-template-columns:1fr}
  .client-time-badge{width:max-content}
  .client-agenda-day{grid-template-columns:65px 1fr;gap:12px}
  .client-agenda-date{padding-right:10px}
  .client-agenda-date strong{font-size:1.55rem}
  .client-care-row{grid-template-columns:1fr}
}


/* v1.3.9.13 - Basisrooster */
.basis-roster-top{grid-template-columns:1.4fr 1fr}
.basis-roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.basis-week-block{border:1px solid #e3ebe8;border-radius:14px;padding:16px;background:#fbfdfc}
.basis-week-block h3{margin:0 0 12px;color:#315f57}
.basis-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 0;border-top:1px solid #e8eeec}
.basis-row:first-of-type{border-top:0}
.basis-row b,.basis-row span{display:block}
.basis-row span{color:#74807d;margin-top:3px}
.basis-row form{margin:0}
.basis-copy-preview .status-pill{white-space:nowrap}
@media(max-width:800px){
  .basis-roster-top,.basis-roster-grid{grid-template-columns:1fr}
  .basis-row{align-items:flex-start}
}


/* v1.3.9.15 - Ingelogd blijven */
.remember-login{display:flex;gap:10px;align-items:flex-start;margin:16px 0 18px;cursor:pointer}
.remember-login input{margin-top:4px;width:18px;height:18px;flex:0 0 auto}
.remember-login span,.remember-login b,.remember-login small{display:block}
.remember-login b{font-size:.95rem}
.remember-login small{margin-top:3px;color:#71807c;line-height:1.35}


/* v1.3.9.16 - Mollie */
.mollie-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.mollie-test-card{display:flex;align-items:center;justify-content:space-between;gap:18px}
.mollie-test-card h2{margin-bottom:4px}
.mollie-test-card form{margin:0}
.mollie-payment-form{display:grid;grid-template-columns:1.3fr .7fr auto;gap:10px;align-items:end;margin:12px 0;padding:12px;border:1px solid #dbeae5;border-radius:12px;background:#f7fbf9}
.mollie-payment-form .field{margin:0}
@media(max-width:800px){
  .mollie-settings-grid{grid-template-columns:1fr}
  .mollie-test-card{align-items:flex-start;flex-direction:column}
  .mollie-payment-form{grid-template-columns:1fr}
}


/* v1.3.9.19 - licentie verlengen via Mollie */
.dashboard-license-card{overflow:hidden}
.dashboard-license-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:14px}
.dashboard-license-head h2{margin:2px 0 4px}
.license-eyebrow{font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#458c79}
.mollie-test-notice{padding:10px 12px;margin:0 0 14px;border-radius:10px;background:#fff8df;border:1px solid #f0df9b;color:#675719}
.license-renew-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.license-renew-option{display:flex;flex-direction:column;justify-content:space-between;gap:14px;padding:15px;border:1px solid #dce9e4;border-radius:13px;background:#fbfdfc}
.license-renew-option b,.license-renew-option span,.license-renew-option small{display:block}
.license-renew-option span{font-size:1.35rem;font-weight:800;margin-top:4px}
.license-renew-option small{color:#71807c;margin-top:3px}
.license-renew-option .btn{width:100%}
.license-renew-help{display:block;margin-top:12px}
@media(max-width:800px){
  .dashboard-license-head{flex-direction:column}
  .license-renew-options{grid-template-columns:1fr}
}

/* v1.3.9.20 */
a.license-renew-option{text-decoration:none;color:inherit}
.license-checkout-confirm{max-width:640px;margin:0 auto}
.license-confirm-amount{font-size:2rem;font-weight:900;margin:16px 0;color:#245c51}


/* v1.3.9.30 - proefaccount / eerste aanschaf */
.login-trial-cta{margin-top:18px;padding-top:16px;border-top:1px solid var(--border,#e3e7e8);display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.trial-public-wrap{max-width:1050px;margin:35px auto;display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:start;padding:0 18px}
.trial-public-hero{padding:24px 6px}.trial-public-hero h1{font-size:42px;line-height:1.05;margin:12px 0}.trial-public-hero>p{font-size:18px;color:#5f6b6d}
.trial-steps{display:grid;gap:12px;margin-top:26px}.trial-steps>div{display:flex;gap:13px;align-items:flex-start}.trial-steps>div>b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e7f5ef;color:#176b55;flex:none}.trial-steps span{display:grid;gap:2px}.trial-steps small{color:#6d7779}
.trial-register-card{position:sticky;top:20px}.trial-register-card form{display:grid;gap:13px}.trial-register-card .btn{margin-top:4px}
.trial-banner{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 18px;margin-bottom:18px;border-radius:14px;background:#eef8f4;border:1px solid #cfe9df}.trial-banner>div{display:grid;gap:3px}
.trial-expired-page{max-width:700px;margin:50px auto}.trial-expired-page .card{padding:28px}.trial-expired-page .btn{margin-right:8px;margin-top:10px}
.license-first-purchase-breakdown{max-width:440px;margin:18px 0;display:grid;gap:8px}.license-first-purchase-breakdown>div{display:flex;justify-content:space-between;gap:18px;padding:10px 12px;border-radius:10px;background:#f5f7f7}
@media(max-width:800px){.trial-public-wrap{grid-template-columns:1fr;margin-top:12px}.trial-public-hero h1{font-size:34px}.trial-register-card{position:static}}


/* v1.3.9.31 - proefbanner en centrale SMTP */
.trial-banner{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;margin:0 0 18px;border-radius:14px;background:#eef8f4;border:1px solid #cce8dd;box-shadow:0 5px 16px rgba(20,78,62,.05)}
.trial-banner>div{display:grid;gap:3px}.trial-banner-label{font-size:.72rem;font-weight:900;letter-spacing:.1em;color:#147258}.trial-banner b{font-size:1.05rem}.trial-banner small{color:#687774}
.trial-smtp-managed{padding:14px 16px;border-radius:12px;background:#eef8f4;border:1px solid #cfe9df}.trial-smtp-managed p{margin-bottom:0;color:#5f6e6a}
.system-smtp-card{max-width:850px}
@media(max-width:700px){.trial-banner{align-items:flex-start;flex-direction:column}.trial-banner .btn{width:100%;text-align:center}}


/* v1.3.9.32 - proefaccounts zichtbaar bij Superadmin */
.care-team-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.trial-admin-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#e6f6ee;border:1px solid #bfe4d3;color:#12664f;font-size:.72rem;font-weight:900;letter-spacing:.045em}
.trial-admin-badge.expired{background:#fff0eb;border-color:#f1c9bd;color:#a1452c}
.trial-admin-info{display:flex;gap:8px 16px;flex-wrap:wrap;margin:8px 0 4px;padding:8px 10px;border-radius:10px;background:#f5faf8;color:#65726f;font-size:.82rem}


/* v1.3.9.33 - SMTP bij proefaccounts volledig vergrendeld */
.trial-smtp-managed{padding:16px 18px;border-radius:12px;background:#eef8f4;border:1px solid #cce8dd}
.trial-smtp-managed>b{display:block;margin-bottom:7px;color:#155f4c;font-size:1.02rem}
.trial-smtp-managed p{margin:4px 0;color:#536762}
.trial-smtp-managed small{display:block;margin-top:8px;color:#74827e}


/* v1.3.9.40 - Superadmin proefcyclus testen */
.trial-test-panel{margin:12px 0;padding:14px;border:1px dashed #bdddcf;border-radius:12px;background:#f7fbf9}
.trial-test-panel>div:first-child{display:grid;gap:3px;margin-bottom:10px}
.trial-test-panel small{color:#65746f}
.trial-test-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.trial-test-actions form{margin:0}
.trial-test-actions .btn{white-space:nowrap}
.trial-test-explainer{max-width:none}
@media(max-width:700px){.trial-test-actions{align-items:stretch;flex-direction:column}.trial-test-actions form,.trial-test-actions .btn{width:100%}}


/* v1.3.9.43 - DEMO maildiagnose */
.trial-mail-test-form{display:flex!important;gap:8px!important;align-items:center!important}
.trial-mail-test-form input[type=email]{min-width:240px;padding:9px 11px;border:1px solid #cfd9d5;border-radius:9px}
.trial-mail-debug{border-left:4px solid #2b8a70}
.trial-mail-debug h3{margin-top:0}
.trial-mail-debug-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}
.trial-mail-debug-grid span{display:grid;gap:3px;padding:9px 11px;background:#f7faf9;border-radius:9px}
.trial-mail-debug-grid .full{grid-column:1/-1}
.trial-mail-debug code{word-break:break-all}
.error-text{color:#a33}
@media(max-width:700px){.trial-mail-test-form{flex-direction:column!important;align-items:stretch!important}.trial-mail-test-form input[type=email]{min-width:0;width:100%}.trial-mail-debug-grid{grid-template-columns:1fr}.trial-mail-debug-grid .full{grid-column:auto}}


/* v1.3.9.44 - proefaccount e-mailadres beheren */
.trial-email-save-form{padding:8px;border:1px solid #d7e5df;border-radius:10px;background:#fff}
.trial-email-save-form input[type=email]{font-weight:600}

/* v1.3.9.45 - los testmailadres */
.trial-test-email-label{display:grid;gap:4px;min-width:280px}
.trial-test-email-label span{font-size:12px;font-weight:700;color:#5f7069}
.day7-test-email{display:none!important}

/* v1.3.9.46 - duidelijke scheidingslijnen linkermenu */
.sidebar-section-divider{
  height:1px!important;
  min-height:1px!important;
  margin:10px 14px!important;
  background:#d9e2df!important;
  border:0!important;
  opacity:1!important;
  pointer-events:none;
}
.sidebar-collapsed .sidebar-section-divider{margin:10px 8px!important}

/* v1.3.9.47 - rolgericht startscherm roosteraar */
.planner-dashboard{display:grid;gap:16px;margin-bottom:20px}
.planner-hero{display:flex;justify-content:space-between;gap:22px;align-items:center;padding:22px 24px;border-radius:16px;background:#eef8f4;border:1px solid #d5e9e1}
.planner-hero h2{margin:3px 0 6px;color:#204f49}
.planner-hero p{margin:0;color:#5f7069;max-width:720px}
.planner-eyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#0f766e}
.planner-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.planner-metric-card{display:grid;gap:3px;padding:17px 18px;background:#fff;border:1px solid #dfe7e4;border-radius:14px;text-decoration:none;color:inherit}
.planner-metric-card:hover{border-color:#8fc7b7}
.planner-metric-card span{font-weight:700;color:#52645e}
.planner-metric-card strong{font-size:30px;line-height:1.1;color:#204f49}
.planner-metric-card small{color:#75847f}
.planner-quick-actions{display:flex;justify-content:space-between;align-items:center;gap:18px}
.planner-quick-actions h3{margin:0 0 3px}
.planner-quick-actions p{margin:0}
.planner-action-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.planner-section-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:10px}
.planner-section-head h3{margin:0}
.planner-section-head p{margin:3px 0 0}
.planner-open-list{display:grid;gap:7px}
.planner-open-list>div{display:flex;justify-content:space-between;gap:15px;padding:10px 12px;border-radius:9px;background:#f7faf9}
.planner-open-list span{color:#64736e}
@media(max-width:900px){.planner-metrics{grid-template-columns:1fr 1fr}.planner-quick-actions,.planner-hero{align-items:flex-start;flex-direction:column}.planner-action-buttons{justify-content:flex-start}}
@media(max-width:560px){.planner-metrics{grid-template-columns:1fr}.planner-open-list>div{flex-direction:column;gap:3px}}

/* v1.3.9.48 - rolkeuze en rolgericht startscherm */
.role-switch-form{display:flex;align-items:center}
.role-switch-form label{display:grid;gap:2px}
.role-switch-form label>span,.role-context-static small{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#73827d}
.role-switch-form select{min-width:130px;padding:8px 30px 8px 10px;border:1px solid #d8e1de;border-radius:10px;background:#fff;font-weight:700;color:#274c46}
.role-context-static{display:grid;gap:1px;padding:5px 9px;border:1px solid #e0e7e4;border-radius:9px;background:#fff}
.role-context-static b{font-size:13px;color:#274c46}
.role-dashboard{display:grid;gap:14px;margin-bottom:18px}
.role-dashboard-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:21px 23px;border:1px solid #dbe9e4;border-radius:16px;background:#f5faf8}
.role-dashboard-hero h2{margin:3px 0 5px;color:#204f49}
.role-dashboard-hero p{margin:0;color:#65746f}
.role-admin-actions{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:850px){.topbar-actions{flex-wrap:wrap}.role-dashboard-hero{align-items:flex-start;flex-direction:column}}

/* v1.3.9.49 - rolkeuze uitlijnen met zorgteamkeuze */
.role-switch-form,.role-switch-label{margin:0;align-self:center}
.role-switch-label{display:flex!important;align-items:center;gap:0!important}
.role-switch-form select{height:42px;margin:0}
.role-context-static{min-height:42px;display:flex;align-items:center;padding:0 12px}

/* v1.3.9.51 - rol- en zorgteamkeuze exact dezelfde hoogte/typografie */
.topbar-actions .role-switch-form,
.topbar-actions .team-switch-form{
  margin:0;
  display:flex;
  align-items:center;
}
.topbar-actions .role-switch-form label{
  margin:0;
  display:flex !important;
  align-items:center;
}
.topbar-actions .role-switch-form select,
.topbar-actions .team-switch-form select{
  box-sizing:border-box !important;
  height:36px !important;
  min-height:36px !important;
  line-height:18px !important;
  padding:8px 30px 8px 10px !important;
  margin:0 !important;
  border:1px solid #d3dfdf !important;
  border-radius:9px !important;
  background-color:#fff !important;
  color:var(--navy) !important;
  font-family:inherit !important;
  font-size:12px !important;
  font-weight:700 !important;
  letter-spacing:normal !important;
}
@media(min-width:801px){
  .topbar-actions .role-switch-form,
  .topbar-actions .team-switch-form{
    width:210px;
    flex:0 0 210px;
  }
  .topbar-actions .role-switch-form label,
  .topbar-actions .role-switch-form select,
  .topbar-actions .team-switch-form select{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }
}

/* v1.3.9.52 - cliëntgegevens en snelacties op één regel */
@media(min-width:801px){
  .topbar .active-client{
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    gap:8px !important;
    min-width:0;
    white-space:nowrap;
  }
  .topbar .header-client-person{
    display:inline-flex !important;
    flex:0 1 auto;
    min-width:0;
    align-items:center;
    white-space:nowrap;
  }
  .topbar .client-quick-actions{
    display:inline-flex !important;
    flex:0 0 auto;
    flex-wrap:nowrap !important;
    align-items:center;
    gap:5px;
    white-space:nowrap;
  }
  .topbar .client-quick-link{
    flex:0 0 auto;
    white-space:nowrap;
  }
}


/* v1.3.9.53 - privé-afspraken in de cliëntagenda */
.private-agenda-form h2,.private-agenda-list-head h2{margin:0}
.private-agenda-form-head,.private-agenda-list-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.private-agenda-form-head p,.private-agenda-list-head p{margin:4px 0 0}
.private-agenda-grid textarea{width:100%;box-sizing:border-box;padding:10px;border:1px solid #d9e0e3;border-radius:8px;font:inherit;resize:vertical}
.private-agenda-defs{display:grid;gap:10px}
.private-agenda-def{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fafcfc}
.private-agenda-def>div:first-child{display:grid;gap:3px}
.private-agenda-def span,.private-agenda-def small{color:var(--muted);font-size:12px}
.private-agenda-actions{display:flex;gap:7px;align-items:center;flex:0 0 auto}
.private-agenda-actions form{margin:0}
.private-appointment-row{border-left:3px solid #8b72b7!important;background:#faf8ff!important}
.private-pill{display:inline-flex;padding:2px 6px;border-radius:999px;background:#eee8f8;color:#644f8e;font-size:9px;font-weight:800;vertical-align:middle;margin-left:5px}
.client-private-today{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.client-private-today h3{margin:0 0 10px}
@media(max-width:700px){
  .private-agenda-def,.private-agenda-form-head{align-items:stretch;flex-direction:column}
  .private-agenda-actions{flex-wrap:wrap}
}

/* v1.3.9.56 */
.private-visibility-check{display:flex!important;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fafcfc;cursor:pointer}
.private-visibility-check input{width:auto!important;margin-top:3px}
.private-visibility-check span{display:grid;gap:3px}
.private-visibility-check small{color:var(--muted);font-weight:400}
.shared-agenda-row td,.month-shared-agenda td{background:#fbf9ff}
.shared-agenda-slot{background:#f1ecfa!important;border-color:#cbbde3!important;color:#574373!important}
.shared-agenda-badge{background:#f1ecfa!important;color:#574373!important;border-color:#cbbde3!important}
.month-shared-agenda .month-member small{display:block;color:var(--muted);font-weight:400}

/* v1.3.9.58 - gedeelde cliëntafspraak ook op Vandaag van zorgverlener */
.shared-client-appointment-dashboard{
  border-left:3px solid #8b72b7;
  background:#faf8ff;
}
.shared-agenda-pill{
  background:#eee8f8!important;
  color:#644f8e!important;
}

/* v1.3.9.60 - berichten */
.message-recipients{margin:10px 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fafcfc}
.message-recipients small{font-size:11px}

/* v1.3.9.63 - geplande uren en kosten lopende maand in cliëntportaal */
.client-month-planned .client-month-planned-amount{
  margin-top:2px;
  font-size:18px;
  line-height:1.15;
  font-weight:800;
  color:var(--teal);
}


/* Rapportage */
.report-important-check{justify-content:flex-start!important}
.report-important-check input[type="checkbox"]{width:auto!important;min-width:16px;height:16px;margin:2px 0 0 0!important;flex:0 0 auto}
.report-important-check span{flex:1}
.dashboard-reporting .reporting-today-grid{margin-top:12px}
.dashboard-reporting .reporting-today-grid>div{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.dashboard-reporting .reporting-today-grid .metric{margin-top:4px}


/* Rechtenbeheer: vaste kopregel en vaste eerste kolom */
.rights-matrix-wrap{overflow:auto;max-height:calc(100vh - 210px);position:relative}
.rights-matrix{border-collapse:separate;border-spacing:0}
.rights-matrix thead th{position:sticky;top:0;z-index:8;background:#f7faf9;box-shadow:0 1px 0 var(--line)}
.rights-matrix th:first-child,
.rights-matrix td:first-child{position:sticky;left:0;z-index:6;background:#fff}
.rights-matrix thead th:first-child{z-index:10;background:#f7faf9}
.rights-matrix tbody tr:hover td:first-child{background:#f8fbfa}


/* v1.3.9.74 - Rechtenbeheer sticky herstel */
.permissions-scroll.rights-matrix-wrap{
  overflow:auto;
  max-height:calc(100vh - 230px);
  position:relative;
}
.permissions-table.rights-matrix{
  border-collapse:separate;
  border-spacing:0;
}
.permissions-table.rights-matrix thead th{
  position:sticky;
  top:0;
  z-index:20;
  background:#f7faf9;
  box-shadow:0 2px 0 var(--line);
}
.permissions-table.rights-matrix th:first-child,
.permissions-table.rights-matrix td:first-child{
  position:sticky;
  left:0;
  z-index:12;
  background:#fff;
}
.permissions-table.rights-matrix thead th:first-child{
  z-index:25;
  background:#f7faf9;
}
.permissions-table.rights-matrix .permissions-group td:first-child{
  background:#f5f8fa;
}


/* v1.3.9.78 - berichten */
.message-recipient-list{display:grid;gap:5px;margin-top:7px}
.message-recipient-line{display:flex;align-items:baseline;justify-content:space-between;gap:18px;padding:3px 0;border-bottom:1px solid rgba(0,0,0,.045)}
.message-recipient-line:last-child{border-bottom:0}
.message-recipient-line small{white-space:nowrap}
.message-detail-actions{justify-content:space-between;align-items:center}
.message-detail-actions form{margin:0}
@media(max-width:650px){
  .message-recipient-line{align-items:flex-start;flex-direction:column;gap:1px}
  .message-detail-actions{align-items:stretch}
  .message-detail-actions form,.message-detail-actions .btn{width:100%}
}


/* v1.3.9.81 - extra gewerkte uren */
.extra-hours-list{display:grid;gap:0}
.extra-hours-row{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}
.extra-hours-row:last-child{border-bottom:0}
.extra-hours-row span:not(.status-pill),.extra-hours-row small{display:block;margin-top:3px}
.extra-review-row{align-items:flex-start}
.extra-review-row>div:first-child{min-width:220px}
.extra-review-row small{display:block;margin-top:4px;color:var(--muted)}
.extra-review-form{display:grid;grid-template-columns:150px 110px 110px minmax(180px,1fr);gap:8px;align-items:end;flex:1}
.extra-review-form .claim-actions{grid-column:1/-1;justify-content:flex-end}
@media(max-width:900px){
  .extra-review-row{display:block}
  .extra-review-form{grid-template-columns:1fr 1fr;margin-top:12px}
  .extra-review-form .field:first-child,.extra-review-form .field:last-of-type{grid-column:1/-1}
}
@media(max-width:560px){
  .extra-hours-row{display:block}
  .extra-hours-row .status-pill{display:inline-block;margin-top:8px}
  .extra-review-form{grid-template-columns:1fr}
  .extra-review-form .field:first-child,.extra-review-form .field:last-of-type,.extra-review-form .claim-actions{grid-column:auto}
}


/* v1.3.9.85 - selectie openbare versiehistorie */
.public-release-select{display:grid;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.public-release-choice{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer;background:#fff}
.public-release-choice:last-child{border-bottom:0}
.public-release-choice:hover{background:#f8fbfa}
.public-release-choice input{width:19px;height:19px;margin-top:2px;accent-color:var(--teal);flex:0 0 auto}
.public-release-choice span{display:block}
.public-release-choice small{display:block;margin-top:3px;color:var(--muted)}

/* v1.3.9.87 beantwoorden berichten */
.message-reply-to{padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#f7faf9;font-weight:600;line-height:1.4}


/* v1.3.9.88 - mobiele/PWA verfijning */
html{-webkit-text-size-adjust:100%}body{min-width:0}.content{min-width:0}.card,.page-head,.form-grid>*{min-width:0}
button,.btn,input,select,textarea{touch-action:manipulation}
@media(max-width:800px){
  .topbar{height:auto;min-height:64px;padding:8px 12px;gap:8px}.topbar-brand-row{min-width:0;flex:1}.brand b{font-size:13px}.brandmark{width:34px;height:34px;border-radius:10px}
  .topbar-actions{gap:6px;min-width:0}.role-switch-form select,.team-switch-form select{max-width:145px;font-size:12px;padding:8px 26px 8px 8px}
  .app-shell{min-height:calc(100dvh - 64px)}.content{padding:14px 12px 28px;max-width:100vw;overflow-x:hidden}
  .page-head h1,.roster-head h1{font-size:24px}.card{padding:15px;border-radius:14px}.metric{font-size:26px}
  .actions,.claim-actions,.message-detail-actions{gap:8px;flex-wrap:wrap}.btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center}
  .field input,.field select,.field textarea{font-size:16px;min-height:44px}
  .week-scroll,.month-scroll,.table-scroll,.permissions-scroll{max-width:100%;-webkit-overflow-scrolling:touch}
  .mobile-client-strip{position:sticky;top:64px;z-index:8}
}
@media(max-width:520px){
  .grid,.form-grid,.roster-summary{grid-template-columns:1fr}.summary-card.costs{grid-column:auto}
  .page-head{gap:10px;margin-bottom:14px}.page-head .actions{width:100%}.page-head .actions .btn{flex:1 1 auto}
  .role-switch-form select,.team-switch-form select{max-width:118px}.userbox{gap:6px}.userbox a{font-size:12px}
  .login-wrap{padding:14px}.login-card{padding:22px 18px;border-radius:18px}
}
@media(display-mode:standalone){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}

/* v1.3.9.89 - mobiele compactheid na praktijktest op iPhone */
@media(max-width:560px){
  /* Vandaag: kerninformatie sneller in beeld, zonder kleinere aanraakdoelen */
  .planner-dashboard{gap:10px;margin-bottom:12px}
  .planner-hero{padding:14px 15px;gap:10px}
  .planner-hero h2{font-size:19px;margin:2px 0 3px}
  .planner-hero p{font-size:12px;line-height:1.4}
  .planner-hero .btn{width:100%}
  .planner-metrics{grid-template-columns:1fr 1fr;gap:8px}
  .planner-metric-card{padding:11px 12px;border-radius:12px;gap:1px}
  .planner-metric-card span{font-size:12px}
  .planner-metric-card strong{font-size:24px}
  .planner-metric-card small{font-size:10px;line-height:1.25}
  .planner-quick-actions{padding:12px;gap:10px}
  .planner-quick-actions>div:first-child p{display:none}
  .planner-action-buttons{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:7px}
  .planner-action-buttons .btn{padding:8px 7px;font-size:11px;min-height:40px}

  /* Algemene dashboardcijfers: op telefoon twee compacte kaarten naast elkaar */
  .content>.grid:first-of-type{grid-template-columns:1fr 1fr!important;gap:8px}
  .content>.grid:first-of-type>*{grid-column:auto!important;padding:12px}
  .content>.grid:first-of-type .metric{font-size:23px}
  .content>.grid:first-of-type h3{font-size:13px;margin-bottom:5px}
  .content>.grid:first-of-type .muted{font-size:10px;line-height:1.3}
  .content>.grid:first-of-type .month-amount{font-size:14px}

  /* Maandrooster: bediening/legenda compacter; tabel zelf bewust ongewijzigd */
  .month-head{margin-bottom:8px}
  .month-head .roster-actions{gap:6px}
  .code-legend{gap:5px 8px;font-size:10px;line-height:1.25}
  .month-note{padding:8px 10px;font-size:10px;line-height:1.4}

  /* Berichten: minder verticale ruimte, knoppen blijven goed aantikbaar */
  .message-head-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;width:100%}
  .message-head-actions form,.message-head-actions .btn{width:100%;margin:0}
  .message-head-actions .btn{padding:8px 9px;font-size:11px}
  .message-tabs{margin-bottom:10px}
  .message-tabs a{flex:1;text-align:center;padding:8px 10px}
  .message-row{padding:11px 12px;gap:9px}
  .message-row small{font-size:10px;line-height:1.3}
  .message-type{font-size:9px;padding:3px 6px}
  .message-detail{padding:13px}
  .message-detail-head{gap:8px;flex-direction:column}
  .message-detail-head h2{font-size:19px;margin:5px 0 0}
  .message-body{padding:12px}

  /* Rapportage: lege dag en beveiligingsuitleg nemen minder ruimte in */
  .report-day-card-empty{padding:13px!important}
  .report-day-card-empty h2{font-size:18px;margin-bottom:7px}
  .report-day-card-empty p{margin:0;font-size:13px}
  .report-security-details{margin-top:10px;border:1px solid var(--line);border-radius:11px;background:#eef8f6}
  .report-security-details summary{cursor:pointer;padding:10px 12px;color:#315f59;font-size:12px;font-weight:800;list-style:none}
  .report-security-details summary::-webkit-details-marker{display:none}
  .report-security-details summary::before{content:'🔒 ';font-weight:400}
  .report-security-details .report-security-copy{padding:0 12px 11px;color:#526864;font-size:11px;line-height:1.45}
}

/* v1.3.9.90 - account verwijderen voor App Store voorbereiding */
.account-delete-card{border-color:#e2b7b7;background:#fffafa}
.account-delete-card h2{color:#8b2c2c}
.account-delete-details{margin:14px 0;padding:12px 14px;border:1px solid #ecd0d0;border-radius:12px;background:#fff}
.account-delete-details summary{cursor:pointer;font-weight:800;color:#7a3434}
.account-delete-details ul{margin:10px 0 0;padding-left:20px;color:var(--muted)}
.account-delete-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-top:18px}
.account-delete-form .btn{min-height:44px}
@media(max-width:760px){.account-delete-form{grid-template-columns:1fr}.account-delete-card{padding:16px}.account-delete-details{font-size:12px}}

/* v1.3.9.91 pushmeldingen */
.push-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 6px}.push-actions{flex-wrap:wrap}.push-settings-card .field-help{display:block;margin-top:10px}


/* v1.3.9.92 automatische, vrijwillige push-opt-in */
.push-optin[hidden]{display:none!important}.push-optin{position:fixed;inset:0;z-index:10000;background:rgba(15,34,43,.48);display:grid;place-items:end center;padding:20px}.push-optin-card{position:relative;width:min(620px,100%);display:grid;grid-template-columns:auto 1fr;gap:18px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.22)}.push-optin-icon{width:52px;height:52px;border-radius:16px;background:#dff4ef;display:grid;place-items:center;font-size:1.55rem}.push-optin-card h2{margin:0 38px 8px 0;font-size:1.35rem}.push-optin-card p{margin:6px 0}.push-optin-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.push-optin-close{position:absolute;right:14px;top:12px;border:0;background:transparent;font-size:1.8rem;line-height:1;color:#65777d;cursor:pointer;padding:4px 8px}@media(min-width:700px){.push-optin{place-items:center}}@media(max-width:520px){.push-optin{padding:10px}.push-optin-card{grid-template-columns:1fr;padding:20px;border-radius:22px}.push-optin-icon{width:46px;height:46px}.push-optin-actions .btn{flex:1 1 100%;text-align:center}.push-optin-card h2{font-size:1.2rem}}
