/* ==========================================================
   DVT v27 - eenheid / polish zonder functies te verwijderen
   Centrale eindlaag: gelijke maten, cards, knoppen, velden en tabellen.
   ========================================================== */
:root{
  --dvt-unity-page-max:1280px;
  --dvt-unity-page-top:28px;
  --dvt-unity-page-x:36px;
  --dvt-unity-page-bottom:40px;
  --dvt-unity-gap:16px;
  --dvt-unity-card-pad:20px;
  --dvt-unity-radius:22px;
  --dvt-unity-radius-sm:14px;
  --dvt-unity-border:rgba(148,163,184,.24);
  --dvt-unity-shadow:0 14px 34px rgba(21,44,68,.08);
  --dvt-unity-text:#111827;
  --dvt-unity-muted:#64748b;
  --dvt-unity-primary:#445b70;
  --dvt-unity-primary-2:#6b8092;
  --dvt-unity-field-h:44px;
  --dvt-unity-btn-h:42px;
  --dvt-font-body:'Geist',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --dvt-font-heading:'Geist',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

html,body{
  margin:0!important;
  padding:0!important;
  color:var(--dvt-unity-text)!important;
  font-family:var(--dvt-font-body)!important;
  letter-spacing:-.012em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:geometricPrecision;
  overflow-x:hidden!important;
  box-sizing:border-box!important;
}
*,*::before,*::after{box-sizing:border-box!important;}
button,input,select,textarea,a,label,table{font-family:var(--dvt-font-body)!important;}

/* Eén vaste pagina-start op alle beheerpagina's */
.dash-card,
.wrap,
.page-wrap,
.reports-wrap,
.rapportages-wrap,
.planning-wrap,
.documents-wrap,
.documenten-wrap,
.users-wrap,
.gebruikers-wrap,
.locations-wrap,
.locaties-wrap,
.admin-wrap,
.content-wrap,
.builder-wrap,
.formulieren-wrap{
  width:100%!important;
  max-width:var(--dvt-unity-page-max)!important;
  margin:0 auto!important;
  padding:var(--dvt-unity-page-top) var(--dvt-unity-page-x) var(--dvt-unity-page-bottom)!important;
}
.dashboard-wrap{
  width:100%!important;
  max-width:var(--dvt-unity-page-max)!important;
  margin:0 auto!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:var(--dvt-unity-gap)!important;
}
.wrap > *:first-child,
.page-wrap > *:first-child,
.dashboard-wrap > *:first-child,
.reports-wrap > *:first-child,
.rapportages-wrap > *:first-child,
.planning-wrap > *:first-child,
.documents-wrap > *:first-child,
.documenten-wrap > *:first-child,
.users-wrap > *:first-child,
.gebruikers-wrap > *:first-child,
.locations-wrap > *:first-child,
.locaties-wrap > *:first-child,
.admin-wrap > *:first-child,
.content-wrap > *:first-child,
.builder-wrap > *:first-child,
.formulieren-wrap > *:first-child{margin-top:0!important;}

/* Geen zichtbare extra wrapperlaag; alleen echte cards blijven wit */
.page-card,.content-card,.list-card,.table-card,.table-wrap,.upload-card,.settings-card,.admin-card,.card-shell,.page-shell{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.card,.panel,.stat-card,.tool-card,.files-card,.left-panel,.right-panel,.report,.report-card,.object-card,.user-card,.planning-card,.section-card,.customer-card,.drawing-item,.log-item,.file-row,.metric{
  background:#fff!important;
  border:1px solid var(--dvt-unity-border)!important;
  border-radius:var(--dvt-unity-radius)!important;
  box-shadow:var(--dvt-unity-shadow)!important;
  color:var(--dvt-unity-text)!important;
}
.card,.panel,.left-panel,.right-panel,.tool-card,.files-card,.stat-card,.planning-card,.section-card,.user-card,.object-card{
  padding:var(--dvt-unity-card-pad)!important;
  margin:0!important;
}
.card + .card,.panel + .panel,.files-card + .files-card,.tool-card + .tool-card{margin-top:var(--dvt-unity-gap)!important;}

/* Rasters en onderlinge afstanden */
.grid,.layout,.tools,.dash-panels,.activity-grid,.stats,.topline,.dash-grid,.stats-grid,.stat-grid,.reports-stats,.rapportages-stats,.summary-grid,.cards-grid,.month-grid,.metrics{
  gap:var(--dvt-unity-gap)!important;
}
.stats,.topline,.dash-grid,.stats-grid,.stat-grid,.reports-stats,.rapportages-stats,.summary-grid,.cards-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  margin:0 0 var(--dvt-unity-gap)!important;
  width:100%!important;
}
.tools{display:grid!important;grid-template-columns:1fr 1fr!important;margin:0 0 var(--dvt-unity-gap)!important;width:100%!important;}
.dash-panels{display:grid!important;grid-template-columns:1.35fr 1fr!important;margin:0!important;width:100%!important;align-items:stretch!important;}
.activity-grid{display:grid!important;grid-template-columns:1.35fr 1fr!important;margin:0!important;width:100%!important;align-items:stretch!important;}
.month-grid{display:grid!important;margin:0 0 var(--dvt-unity-gap)!important;width:100%!important;}
.filterbar,.top-actions,.row-actions,.detail-actions,.form-actions,.actions,.section-head-actions{
  gap:12px!important;
  align-items:center!important;
  flex-wrap:wrap!important;
}

/* Typografie overal gelijk */
h1,h2,h3,h4,.title,.page-title,.detail-title,.section-title,.tool-title,.card-title,.brand-title,.obj{
  font-family:var(--dvt-font-heading)!important;
  color:var(--dvt-unity-text)!important;
  letter-spacing:-.03em!important;
  line-height:1.1!important;
  font-weight:800!important;
}
.title,.page-title,.detail-title,h1,.obj{font-size:28px!important;}
.section-title,.tool-title,.card h2,h2{font-size:20px!important;}
.customer-name,.item-title,.metric-value,.file-name{font-size:17px!important;font-weight:800!important;color:var(--dvt-unity-text)!important;}
p,td,li,.message,.notice,.empty,.flash{font-size:14px!important;line-height:1.45!important;color:var(--dvt-unity-text)!important;}
.meta,.muted,.page-sub,.subtitle,.detail-meta,.customer-meta,.item-meta,.hint,.small,small,th,.stat-title,.files-head,.empty-activity{
  color:var(--dvt-unity-muted)!important;
  font-size:13px!important;
  line-height:1.45!important;
  font-weight:500!important;
}

/* Knoppen: gelijke hoogte, radius en gedrag */
.btn,.button,.back,.login-button,.session-users-btn,.session-logout-btn,.session-admin-text-btn.admin-btn,.tab,.nav-item,button.primary,input[type='submit']{
  min-height:var(--dvt-unity-btn-h)!important;
  height:auto!important;
  padding:0 18px!important;
  border-radius:var(--dvt-unity-radius-sm)!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  font-size:13px!important;
  font-weight:800!important;
  line-height:1!important;
  text-align:center!important;
  text-decoration:none!important;
  white-space:normal!important;
  cursor:pointer!important;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease!important;
}
.btn:not(.secondary):not(.soft):not(.danger),.btn.dark,.btn.primary,.login-button,.session-logout-btn,button.primary,input[type='submit']{
  background:linear-gradient(180deg,var(--dvt-unity-primary) 0%,var(--dvt-unity-primary-2) 100%)!important;
  border:1px solid var(--dvt-unity-primary)!important;
  color:#fff!important;
  box-shadow:0 12px 26px rgba(68,91,112,.16)!important;
}
.btn.secondary,.btn.soft,.back,.session-users-btn,.session-admin-text-btn.admin-btn,.tab:not(.active),.nav-item:not(.active){
  background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)!important;
  border:1px solid rgba(148,163,184,.42)!important;
  color:var(--dvt-unity-text)!important;
  box-shadow:0 10px 22px rgba(15,23,42,.07)!important;
}
.btn.danger{background:#fff1f2!important;color:#be123c!important;border-color:#fecdd3!important;}
.btn:hover,.button:hover,.back:hover,.login-button:hover,.session-users-btn:hover,.session-logout-btn:hover,.session-admin-text-btn.admin-btn:hover,.tab:hover,.nav-item:hover{transform:translateY(-1px)!important;box-shadow:0 16px 30px rgba(68,91,112,.14)!important;}
.filter.active,.chip.active,.month.active,.tab.active,.nav-item.active,.active.btn,.pill.active,.badge.active{background:#0D8DFF!important;border-color:#0D8DFF!important;color:#fff!important;}
.mini-form .btn,.mini-form .btn.small,.mini-form .btn.secondary.small{width:100%!important;min-width:0!important;}

/* Velden en dropdowns */
.input,.textarea,.select,.search,.login-field,input[type='text'],input[type='email'],input[type='password'],input[type='number'],input[type='date'],input[type='time'],select,textarea{
  min-height:var(--dvt-unity-field-h)!important;
  border:1px solid rgba(148,163,184,.36)!important;
  border-radius:14px!important;
  background:#fff!important;
  color:var(--dvt-unity-text)!important;
  font-size:14px!important;
  font-weight:500!important;
  padding:0 14px!important;
  box-shadow:inset 0 1px 2px rgba(15,23,42,.02)!important;
  max-width:100%!important;
}
textarea,.textarea{height:auto!important;min-height:92px!important;padding:12px 14px!important;line-height:1.45!important;}
.input:focus,.textarea:focus,.select:focus,.search:focus,.login-field:focus,input:focus,select:focus,textarea:focus{
  outline:none!important;
  border-color:#5fa3c7!important;
  box-shadow:0 0 0 4px rgba(95,163,199,.14)!important;
}
label,.field label,.login-label,.label{font-size:13px!important;font-weight:700!important;color:#334155!important;}
.field{gap:8px!important;margin-bottom:14px!important;}

/* Tabellen en lijsten strakker en gelijk */
table{width:100%!important;border-collapse:separate!important;border-spacing:0 10px!important;}
th{text-transform:uppercase!important;letter-spacing:.06em!important;border-bottom:none!important;}
tbody tr{background:transparent!important;box-shadow:none!important;}
tbody td{background:#fff!important;border-top:1px solid rgba(148,163,184,.18)!important;border-bottom:1px solid rgba(148,163,184,.18)!important;padding:14px 12px!important;vertical-align:top!important;}
tbody td:first-child{border-left:1px solid rgba(148,163,184,.18)!important;border-top-left-radius:16px!important;border-bottom-left-radius:16px!important;}
tbody td:last-child{border-right:1px solid rgba(148,163,184,.18)!important;border-top-right-radius:16px!important;border-bottom-right-radius:16px!important;}

/* Pills/statussen */
.pill,.badge,.role,.status,.mini-pill,.object-badge,.user-chip{
  border-radius:999px!important;
  min-height:30px!important;
  padding:6px 10px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:12px!important;
  font-weight:800!important;
}
.status.on{background:#dcfce7!important;color:#166534!important;}
.status.off{background:#fee2e2!important;color:#991b1b!important;}

/* Links en normale content niet blauw maken, tenzij het echt een actieve knop is */
a:not(.btn):not(.button):not(.active),a:link:not(.btn):not(.button):not(.active),a:visited:not(.btn):not(.button):not(.active),.name,.report .name,.report-title,.report-name,.rapport-title,.rapport-name,.item-title,.list-title,.card-title,.customer,.customer-name,.stat b,.stat-value,.edit-link{
  color:var(--dvt-unity-text)!important;
}

/* Specifieke pagina-balans */
.users-wrap .top,.wrap > .top:first-child:empty{display:none!important;}
.left-stack{gap:var(--dvt-unity-gap)!important;}
.left-panel .left-list,.left-list{gap:12px!important;}
.customer-card,.report-item,.drawing-item,.log-item{padding:16px!important;}
.panel-head,.card-header,.table-header,.page-header{padding:0 0 14px!important;margin:0 0 14px!important;}
.files-head,.file-row{padding:14px 18px!important;}
img[data-dvt-logo],img.logo,img.login-logo,img.site-logo,img.object-logo{filter:none!important;-webkit-filter:none!important;mix-blend-mode:normal!important;}

@media(max-width:1180px){
  .layout,.grid,.dash-panels,.activity-grid{grid-template-columns:1fr!important;}
}
@media(max-width:1050px){
  :root{--dvt-unity-page-top:22px;--dvt-unity-page-x:18px;--dvt-unity-page-bottom:34px;}
  .stats,.topline,.dash-grid,.stats-grid,.stat-grid,.reports-stats,.rapportages-stats,.summary-grid,.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .tools{grid-template-columns:1fr!important;}
}
@media(max-width:680px){
  .stats,.topline,.dash-grid,.stats-grid,.stat-grid,.reports-stats,.rapportages-stats,.summary-grid,.cards-grid,.month-grid{grid-template-columns:1fr!important;}
  .btn,.button,.back,.session-users-btn,.session-logout-btn,.session-admin-text-btn.admin-btn,.top-actions .btn,.row-actions .btn,.item-actions .btn{width:100%!important;}
  .title,.page-title,.detail-title,h1,.obj{font-size:24px!important;}
  .section-title,.tool-title,.card h2,h2{font-size:18px!important;}
}

/* ==========================================================
   DVT v28 - veld/kaart gelijkheid + tekst-overflow correctie
   Geen functies verwijderd of toegevoegd; alleen layout-polish.
   ========================================================== */
:root{
  --dvt-unity-card-min:128px;
}

/* Belangrijk: alle containers mogen krimpen binnen hun kolom.
   Dit voorkomt dat e-mailadressen, lange knoppen of formuliertekst buiten vakken vallen. */
.wrap,
.page-wrap,
.dashboard-wrap,
.reports-wrap,
.rapportages-wrap,
.planning-wrap,
.documents-wrap,
.documenten-wrap,
.users-wrap,
.gebruikers-wrap,
.locations-wrap,
.locaties-wrap,
.admin-wrap,
.content-wrap,
.builder-wrap,
.formulieren-wrap,
.card,
.panel,
.stat,
.stat-card,
.tool-card,
.files-card,
.file-row,
.report,
.report-card,
.object-card,
.user-card,
.planning-card,
.section-card,
.customer-card,
.mobile-item,
.table,
table,
tr,
th,
td,
form,
.field,
.row,
.row-actions,
.actions,
.top-actions,
.filterbar,
.left-stack,
.right-panel,
.left-panel{
  min-width:0!important;
  max-width:100%!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}

/* Tekst mag nooit buiten het vlak lopen */
.card *,
.panel *,
.stat *,
.tool-card *,
.files-card *,
.file-row *,
.report *,
.object-card *,
.user-card *,
.customer-card *,
.mobile-item *,
td *,
th *{
  max-width:100%!important;
  min-width:0!important;
  overflow-wrap:anywhere!important;
}

/* Knoppen: niet meer keihard gefixeerd op 42px, want lange Nederlandse teksten liepen eruit. */
.btn,
.button,
.back,
.login-button,
.session-users-btn,
.session-logout-btn,
.session-admin-text-btn.admin-btn,
.tab,
.nav-item,
button.primary,
input[type='submit']{
  height:auto!important;
  min-height:var(--dvt-unity-btn-h)!important;
  line-height:1.18!important;
  white-space:normal!important;
  text-wrap:balance;
  padding:10px 18px!important;
  max-width:100%!important;
}
.btn.small,
.button.small,
.small.btn,
button.small{
  min-height:40px!important;
  height:auto!important;
  padding:9px 14px!important;
  line-height:1.16!important;
}
.row-actions .btn,
.actions .btn,
.top-actions .btn,
.mini-form .btn{
  flex:1 1 auto!important;
}

/* Velden blijven binnen hun vak en krijgen overal dezelfde breedte. */
.field,
.mini-form,
form.mini-form{
  width:100%!important;
}
.input,
.textarea,
.select,
.search,
.login-field,
input[type='text'],
input[type='email'],
input[type='password'],
input[type='number'],
input[type='date'],
input[type='time'],
select,
textarea{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  text-overflow:ellipsis!important;
}
select{
  padding-right:34px!important;
}
label,
.hint,
.meta,
.muted,
.secret,
.backup,
.customer,
.name,
.file-name,
.report-name,
.report-title,
.item-title{
  overflow-wrap:anywhere!important;
}

/* Kaarten in rasters worden gelijker in hoogte zonder inhoud te verbergen. */
.stats,
.topline,
.dash-grid,
.stats-grid,
.stat-grid,
.reports-stats,
.rapportages-stats,
.summary-grid,
.cards-grid,
.tools,
.dash-panels,
.activity-grid{
  align-items:stretch!important;
}
.stats > *,
.topline > *,
.dash-grid > *,
.stats-grid > *,
.stat-grid > *,
.reports-stats > *,
.rapportages-stats > *,
.summary-grid > *,
.cards-grid > *,
.tools > *,
.dash-panels > *,
.activity-grid > *{
  height:100%!important;
}
.stat,
.stat-card,
.metric,
.tool-card,
.card,
.panel{
  min-height:auto!important;
}
.stat,
.stat-card,
.metric{
  min-height:96px!important;
}

/* Topstatistieken: niet hard 4 kolommen, maar automatisch gelijke vakken per rij. */
.topline,
.stats,
.stats-grid,
.stat-grid,
.reports-stats,
.rapportages-stats,
.summary-grid,
.cards-grid{
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important;
}

/* Gebruikersbeheer: rechter tabel veroorzaakte overloop bij lange e-mail/knoppen. */
.users-wrap .grid,
.gebruikers-wrap .grid,
.wrap > .grid{
  grid-template-columns:minmax(320px,400px) minmax(0,1fr)!important;
}
.mini-form{
  min-width:0!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
}
.mini-form .row-actions{
  width:100%!important;
}
.mini-form .row-actions .btn,
.mini-form button,
.mini-form .btn{
  width:100%!important;
}

/* Tabellen: vaste layout voorkomt dat één kolom alle ruimte opeist. */
table,
.table{
  table-layout:fixed!important;
}
th,
td{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
td .hint,
td strong,
td span,
td a,
td label{
  max-width:100%!important;
}

/* De beheer-kolom in gebruikers krijgt genoeg ruimte, andere tekst mag netjes breken. */
table th:last-child,
table td:last-child{
  width:260px!important;
}
.users-wrap table th:last-child,
.users-wrap table td:last-child,
.gebruikers-wrap table th:last-child,
.gebruikers-wrap table td:last-child,
.wrap table th:last-child,
.wrap table td:last-child{
  width:280px!important;
}

/* File/document/tekeningen-rijen: naam links, acties rechts, zonder overlappen. */
.file-row,
.files-head,
.report,
.report-item,
.drawing-item,
.log-item{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
}
.file-row > *,
.files-head > *,
.report > *,
.report-item > *,
.drawing-item > *,
.log-item > *{
  min-width:0!important;
}
.file-row .row-actions,
.report .actions,
.report-item .actions,
.drawing-item .actions,
.log-item .actions{
  flex:0 0 auto!important;
}
.file-name,
.report-name,
.report-title{
  flex:1 1 auto!important;
}

/* Badges/pills mogen afbreken wanneer de ruimte klein is. */
.badge,
.pill,
.role,
.status,
.mini-pill,
.object-badge,
.user-chip{
  height:auto!important;
  white-space:normal!important;
  line-height:1.15!important;
  text-align:center!important;
}

/* Mobiel/tablet: voorkom horizontale scroll en maak tabellen kaartachtig. */
@media(max-width:1100px){
  .users-wrap .grid,
  .gebruikers-wrap .grid,
  .wrap > .grid{
    grid-template-columns:1fr!important;
  }
  table,
  .table{
    table-layout:auto!important;
  }
}
@media(max-width:820px){
  table:not(.keep-table),
  table:not(.keep-table) thead,
  table:not(.keep-table) tbody,
  table:not(.keep-table) tr,
  table:not(.keep-table) th,
  table:not(.keep-table) td{
    display:block!important;
    width:100%!important;
  }
  table:not(.keep-table) thead{
    display:none!important;
  }
  table:not(.keep-table){
    border-spacing:0!important;
  }
  table:not(.keep-table) tr{
    background:#fff!important;
    border:1px solid rgba(148,163,184,.22)!important;
    border-radius:18px!important;
    box-shadow:0 10px 24px rgba(15,23,42,.06)!important;
    margin:0 0 12px!important;
    overflow:hidden!important;
  }
  table:not(.keep-table) td{
    border:0!important;
    border-bottom:1px solid rgba(148,163,184,.14)!important;
    border-radius:0!important;
    padding:12px 14px!important;
  }
  table:not(.keep-table) td:last-child{
    border-bottom:0!important;
  }
  .file-row,
  .files-head,
  .report,
  .report-item,
  .drawing-item,
  .log-item{
    align-items:stretch!important;
    flex-direction:column!important;
  }
  .file-row .row-actions,
  .report .actions,
  .report-item .actions,
  .drawing-item .actions,
  .log-item .actions{
    width:100%!important;
  }
}
@media(max-width:560px){
  :root{
    --dvt-unity-page-x:14px;
    --dvt-unity-gap:12px;
    --dvt-unity-card-pad:16px;
  }
  .btn,
  .button,
  .back,
  .tab,
  .nav-item,
  button.primary,
  input[type='submit']{
    width:100%!important;
  }
  .row-actions,
  .actions,
  .top-actions,
  .filterbar{
    width:100%!important;
  }
}


/* ===== DVT v29 final alignment + overflow polish ===== */
.dash-panels,
.activity-grid,
.tools,
.stats,
.topline,
.dash-grid,
.stats-grid,
.stat-grid,
.reports-stats,
.rapportages-stats,
.summary-grid,
.cards-grid,
.month-grid,
.metrics,
.grid,
.layout{
  align-items:stretch!important;
}

.dash-panels > *,
.activity-grid > *,
.tools > *,
.stats > *,
.topline > *,
.dash-grid > *,
.stats-grid > *,
.stat-grid > *,
.reports-stats > *,
.rapportages-stats > *,
.summary-grid > *,
.cards-grid > *,
.month-grid > *,
.metrics > *,
.grid > *,
.layout > *{
  min-width:0!important;
  align-self:stretch!important;
}

.panel,
.card,
.tool-card,
.files-card,
.report-card,
.object-card,
.user-card,
.planning-card,
.section-card,
.customer-card,
.metric,
.stat-card{
  display:flex!important;
  flex-direction:column!important;
  height:100%!important;
  min-width:0!important;
  overflow:hidden!important;
}

.panel-head,
.card-header,
.files-head,
.section-head{
  flex:0 0 auto!important;
}

.activity-list,
.report-list,
.list,
.table-wrap,
.table-card,
.log-list,
.file-list,
.files-list{
  flex:1 1 auto!important;
  min-width:0!important;
}

.empty-activity,
.empty,
.notice,
.flash,
.msg,
.item-title,
.card-title,
.file-name,
.report-name,
.report-title,
.customer-name,
.activity-main strong,
.activity-main span,
.panel-head h1,
.panel-head h2,
.panel-head h3,
.btn,
.button,
.back,
.tab,
.nav-item,
button,
a.btn,
label,
th,
td{
  min-width:0!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}

input,
select,
textarea,
.form-select,
.custom-select,
.location-select,
.search{
  min-width:0!important;
  max-width:100%!important;
}

@media(max-width:1180px){
  .activity-grid{grid-template-columns:1fr!important;}
}


/* ===== DVT v31: extra harde uitlijning alle grid-kaarten ===== */
.grid,.layout,.tools,.dash-panels,.activity-grid,.stats,.topline,.dash-grid,.stats-grid,.stat-grid,
.reports-stats,.rapportages-stats,.summary-grid,.cards-grid,.month-grid,.metrics{
  align-items:stretch!important;
}
.grid > *,.layout > *,.tools > *,.dash-panels > *,.activity-grid > *,.stats > *,.topline > *,
.dash-grid > *,.stats-grid > *,.stat-grid > *,.reports-stats > *,.rapportages-stats > *,
.summary-grid > *,.cards-grid > *,.month-grid > *,.metrics > *{
  min-width:0!important;
  align-self:stretch!important;
}
.card,.panel,.stat-card,.tool-card,.files-card,.report-card,.object-card,.user-card,.planning-card,.section-card{
  height:100%!important;
  min-width:0!important;
  overflow:hidden!important;
}
.btn,.button,.back,.tab,button,a,td,th,label,.item-title,.file-name,.report-name,.customer-name{
  overflow-wrap:anywhere!important;
}


/* v34: grid-items mogen geen extra sibling-margins meekrijgen */
.grid > *, .layout > *, .tools > *, .dash-panels > *, .activity-grid > *, .stats > *, .topline > *,
.dash-grid > *, .stats-grid > *, .stat-grid > *, .reports-stats > *, .rapportages-stats > *,
.summary-grid > *, .cards-grid > *, .month-grid > *, .metrics > *{
  margin-top:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
}


/* v35: grid-items in dashboard mogen nooit sibling-margin krijgen */
.dashboard-main-grid > *,
.dashboard-main-grid > * + *{
  margin-top:0!important;
  margin-left:0!important;
  margin-right:0!important;
}
.dashboard-main-grid{
  align-items:start!important;
}


/* v36: dashboard onderblokken gelijk aan middenlijn van 4 stat-kaarten */
.dashboard-main-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
}
.dashboard-main-grid > *,
.dashboard-main-grid > * + *{
  margin:0!important;
  min-width:0!important;
}


/* v37: geen dubbele ruimte tussen dashboard stats en panel-grid */
.dashboard-wrap > .dash-grid{
  margin-bottom:0!important;
}
.dashboard-wrap > .dashboard-main-grid{
  margin-top:0!important;
}


/* v38: dashboard statusvak onderkant gelijk met overzichtvak */
.dashboard-panel-overview,
.dashboard-panel-status{
  height:286px!important;
  min-height:286px!important;
  max-height:286px!important;
}
.dashboard-panel-status .status-content{
  height:222px!important;
  min-height:222px!important;
}


/* v43: Locaties linkerpaneel en rechterpaneel exact dezelfde bovenlijn */
.layout > .location-topbar,
.layout > .right-panel,
.layout > .panel,
.layout > .panel + .panel{
  margin-top:0!important;
  align-self:start!important;
}


/* DVT_V163_DESKTOP_KNOPPEN_EEN_KLEUR
   Desktop/webversie: één vaste blauwe actieve knopkleur over de hele site.
   Mobiele klantpagina blijft ongemoeid door min-width en object-share uitsluiting. */
@media (min-width: 769px){
  body:not(.object-share-page) .nav a.active,
  body:not(.object-share-page) .nav a:hover.active,
  body:not(.object-share-page) .tab.active,
  body:not(.object-share-page) .tabs .active,
  body:not(.object-share-page) .btn.dark,
  body:not(.object-share-page) .btn.primary,
  body:not(.object-share-page) button.primary,
  body:not(.object-share-page) .active.btn,
  body:not(.object-share-page) .pill.active,
  body:not(.object-share-page) .badge.active,
  body:not(.object-share-page) .chip.active,
  body:not(.object-share-page) .filter.active,
  body:not(.object-share-page) .filter-chip.active,
  body:not(.object-share-page) .month.active {
    background:#0D8DFF !important;
    background-color:#0D8DFF !important;
    border-color:#0D8DFF !important;
    color:#ffffff !important;
    box-shadow:0 14px 28px rgba(13,141,255,.22) !important;
    text-shadow:none !important;
  }

  body:not(.object-share-page) .nav a.active span,
  body:not(.object-share-page) .nav a.active i,
  body:not(.object-share-page) .tab.active *,
  body:not(.object-share-page) .btn.dark *,
  body:not(.object-share-page) .btn.primary *,
  body:not(.object-share-page) button.primary * {
    color:#ffffff !important;
  }

  body:not(.object-share-page) .tab:not(.active),
  body:not(.object-share-page) .btn.secondary,
  body:not(.object-share-page) .btn.soft,
  body:not(.object-share-page) .btn:not(.dark):not(.primary):not(.danger),
  body:not(.object-share-page) button:not(.primary):not(.danger),
  body:not(.object-share-page) .filter-chip:not(.active),
  body:not(.object-share-page) .chip:not(.active),
  body:not(.object-share-page) .pill:not(.active),
  body:not(.object-share-page) .month:not(.active),
  body:not(.object-share-page) .badge:not(.active) {
    background:#ffffff !important;
    background-color:#ffffff !important;
    border-color:#d7e1ec !important;
    color:#111827 !important;
    box-shadow:none !important;
  }

  body:not(.object-share-page) .tab:not(.active):hover,
  body:not(.object-share-page) .btn.secondary:hover,
  body:not(.object-share-page) .btn.soft:hover,
  body:not(.object-share-page) .btn:not(.dark):not(.primary):not(.danger):hover,
  body:not(.object-share-page) button:not(.primary):not(.danger):hover {
    background:#eef6ff !important;
    border-color:#bfe0ff !important;
    color:#111827 !important;
  }

  body:not(.object-share-page) .btn.danger,
  body:not(.object-share-page) button.danger,
  body:not(.object-share-page) .danger {
    background:#fff1f2 !important;
    border-color:#fecdd3 !important;
    color:#be123c !important;
    box-shadow:none !important;
  }
}


/* DVT_V164_DESKTOP_KNOPPEN_LICHTBLAUW
   Desktop/webversie: alle normale knoppen lichtblauw, verwijderen lichtrood, hover grijs.
   Mobiele klantpagina blijft ongemoeid. */
@media (min-width: 769px){
  body:not(.object-share-page) .btn:not(.danger),
  body:not(.object-share-page) a.btn:not(.danger),
  body:not(.object-share-page) button:not(.danger),
  body:not(.object-share-page) .tab,
  body:not(.object-share-page) .filter-chip,
  body:not(.object-share-page) .chip,
  body:not(.object-share-page) .pill,
  body:not(.object-share-page) .badge,
  body:not(.object-share-page) .month,
  body:not(.object-share-page) .quick-action,
  body:not(.object-share-page) .session-users-btn,
  body:not(.object-share-page) .session-admin-text-btn.admin-btn {
    background:#eef6ff !important;
    background-color:#eef6ff !important;
    border-color:#bfe0ff !important;
    color:#075596 !important;
    box-shadow:none !important;
    text-shadow:none !important;
  }

  body:not(.object-share-page) .btn:not(.danger) *,
  body:not(.object-share-page) a.btn:not(.danger) *,
  body:not(.object-share-page) button:not(.danger) *,
  body:not(.object-share-page) .tab *,
  body:not(.object-share-page) .filter-chip *,
  body:not(.object-share-page) .chip *,
  body:not(.object-share-page) .pill *,
  body:not(.object-share-page) .badge *,
  body:not(.object-share-page) .month *,
  body:not(.object-share-page) .quick-action * {
    color:#075596 !important;
  }

  body:not(.object-share-page) .nav a.active,
  body:not(.object-share-page) .nav a:hover.active,
  body:not(.object-share-page) .tab.active,
  body:not(.object-share-page) .tabs .active,
  body:not(.object-share-page) .btn.dark,
  body:not(.object-share-page) .btn.primary,
  body:not(.object-share-page) button.primary,
  body:not(.object-share-page) .active.btn,
  body:not(.object-share-page) .filter.active,
  body:not(.object-share-page) .filter-chip.active,
  body:not(.object-share-page) .chip.active,
  body:not(.object-share-page) .pill.active,
  body:not(.object-share-page) .badge.active,
  body:not(.object-share-page) .month.active {
    background:#0D8DFF !important;
    background-color:#0D8DFF !important;
    border-color:#0D8DFF !important;
    color:#ffffff !important;
    box-shadow:0 12px 24px rgba(13,141,255,.18) !important;
  }

  body:not(.object-share-page) .nav a.active *,
  body:not(.object-share-page) .tab.active *,
  body:not(.object-share-page) .btn.dark *,
  body:not(.object-share-page) .btn.primary *,
  body:not(.object-share-page) button.primary *,
  body:not(.object-share-page) .active.btn *,
  body:not(.object-share-page) .filter.active *,
  body:not(.object-share-page) .filter-chip.active *,
  body:not(.object-share-page) .chip.active *,
  body:not(.object-share-page) .pill.active *,
  body:not(.object-share-page) .badge.active *,
  body:not(.object-share-page) .month.active * {
    color:#ffffff !important;
  }

  body:not(.object-share-page) .btn.danger,
  body:not(.object-share-page) button.danger,
  body:not(.object-share-page) .danger,
  body:not(.object-share-page) .btn.delete,
  body:not(.object-share-page) button.delete,
  body:not(.object-share-page) [class*="delete"],
  body:not(.object-share-page) [class*="verwijder"] {
    background:#fff1f2 !important;
    background-color:#fff1f2 !important;
    border-color:#fecdd3 !important;
    color:#be123c !important;
    box-shadow:none !important;
  }

  body:not(.object-share-page) .btn.danger *,
  body:not(.object-share-page) button.danger *,
  body:not(.object-share-page) .danger *,
  body:not(.object-share-page) .btn.delete *,
  body:not(.object-share-page) button.delete *,
  body:not(.object-share-page) [class*="delete"] *,
  body:not(.object-share-page) [class*="verwijder"] * {
    color:#be123c !important;
  }

  body:not(.object-share-page) .btn:hover,
  body:not(.object-share-page) a.btn:hover,
  body:not(.object-share-page) button:hover,
  body:not(.object-share-page) .tab:hover,
  body:not(.object-share-page) .filter-chip:hover,
  body:not(.object-share-page) .chip:hover,
  body:not(.object-share-page) .pill:hover,
  body:not(.object-share-page) .badge:hover,
  body:not(.object-share-page) .month:hover,
  body:not(.object-share-page) .quick-action:hover {
    background:#f1f5f9 !important;
    background-color:#f1f5f9 !important;
    border-color:#cbd5e1 !important;
    color:#111827 !important;
    box-shadow:none !important;
    transform:none !important;
  }

  body:not(.object-share-page) .btn:hover *,
  body:not(.object-share-page) a.btn:hover *,
  body:not(.object-share-page) button:hover *,
  body:not(.object-share-page) .tab:hover *,
  body:not(.object-share-page) .filter-chip:hover *,
  body:not(.object-share-page) .chip:hover *,
  body:not(.object-share-page) .pill:hover *,
  body:not(.object-share-page) .badge:hover *,
  body:not(.object-share-page) .month:hover *,
  body:not(.object-share-page) .quick-action:hover * {
    color:#111827 !important;
  }

  body:not(.object-share-page) .nav a:not(.active) {
    background:transparent !important;
    border-color:transparent !important;
    color:#ffffff !important;
  }
  body:not(.object-share-page) .nav a:not(.active) *,
  body:not(.object-share-page) .nav a:not(.active) span,
  body:not(.object-share-page) .nav a:not(.active) i {
    color:#ffffff !important;
  }
  body:not(.object-share-page) .nav a:not(.active):hover {
    background:rgba(255,255,255,.16) !important;
    color:#ffffff !important;
  }
}

