:root{
  color-scheme:light;
  --bg:#eef4fb;
  --bg-soft:#f8fbff;
  --surface:#ffffff;
  --surface-strong:#f8fbff;
  --surface-muted:#eef5ff;
  --text:#102033;
  --text-soft:#30445f;
  --muted:#64748b;
  --border:#d8e3ef;
  --border-strong:#bdd0e6;
  --primary:#2563eb;
  --primary-dark:#1d4ed8;
  --primary-soft:#e8f1ff;
  --admin-soft:#edf5ff;
  --admin-soft-strong:#e5f0ff;
  --admin-border:#b8d2f2;
  --teal:#0f766e;
  --teal-soft:#dff7f3;
  --warning:#b45309;
  --warning-soft:#fff3cf;
  --danger:#b91c1c;
  --danger-soft:#fee2e2;
  --success:#15803d;
  --success-soft:#dcfce7;
  --shadow:0 18px 46px rgba(15,40,75,.10);
  --shadow-soft:0 8px 24px rgba(15,40,75,.07);
  --radius:18px;
  --radius-sm:12px;
  --content:1220px;
}
*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  color:var(--text);
  font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:16px;
  line-height:1.5;
  background:
    radial-gradient(circle at 8% 4%,rgba(37,99,235,.15),transparent 26rem),
    radial-gradient(circle at 94% 18%,rgba(15,118,110,.13),transparent 30rem),
    radial-gradient(circle at 50% 110%,rgba(180,83,9,.08),transparent 34rem),
    linear-gradient(135deg,var(--bg),var(--bg-soft));
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(37,99,235,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(37,99,235,.045) 1px,transparent 1px);
  background-size:38px 38px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.82),transparent 78%);
}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:none;color:var(--primary-dark)}
img{max-width:100%;height:auto}
code{display:inline-block;background:#eef2ff;border:1px solid #dbe3ff;border-radius:8px;padding:.08rem .36rem;font-size:.92em;color:#1e3a8a}
:focus-visible{outline:3px solid rgba(37,99,235,.35);outline-offset:2px}
.icon{width:1.15em;height:1.15em;display:inline-block;vertical-align:-.2em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.button-icon{width:1.05em;height:1.05em}.help-tip{display:inline-flex;align-items:center;justify-content:center;margin-left:.28rem;color:var(--primary);vertical-align:middle;cursor:help}.help-tip .icon{width:1rem;height:1rem}.help-text,.info-note{display:flex;gap:.55rem;align-items:flex-start;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;border-radius:14px;padding:.72rem .85rem;margin:.75rem 0;font-size:.94rem}.help-text .icon,.info-note .icon{margin-top:.12rem;flex:0 0 auto}textarea[disabled],input[disabled],select[disabled]{background:#f1f5f9;color:#64748b;cursor:not-allowed}
.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;z-index:100;background:#fff;border:2px solid var(--primary);border-radius:10px;padding:.6rem .8rem}

.topbar{
  position:sticky;
  top:0;
  z-index:40;
  display:flex;
  align-items:center;
  gap:.8rem;
  padding:.72rem clamp(.9rem,2.5vw,2rem);
  background:rgba(255,255,255,.88);
  border-bottom:1px solid rgba(216,227,239,.86);
  box-shadow:0 10px 24px rgba(15,40,75,.06);
  backdrop-filter:blur(14px);
}
.brand{display:inline-flex;align-items:center;gap:.65rem;color:var(--text);font-weight:900;font-size:1.13rem;white-space:nowrap}
.brand:hover{color:var(--text)}
.brand-mark{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:14px;background:linear-gradient(135deg,var(--primary),#38bdf8);color:#fff;box-shadow:0 12px 24px rgba(37,99,235,.24)}
.brand-text{letter-spacing:-.02em}.brand-subtitle{display:block;font-size:.72rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);line-height:1}
.main-nav{display:flex;align-items:center;gap:.28rem;flex:1;min-width:0;flex-wrap:wrap}
.main-nav a{display:inline-flex;align-items:center;gap:.38rem;color:#23364f;font-size:.92rem;font-weight:750;padding:.52rem .63rem;border-radius:999px;white-space:nowrap;transition:background .16s ease,color .16s ease,transform .16s ease}
.main-nav a:hover{background:var(--primary-soft);color:var(--primary-dark);transform:translateY(-1px)}
.main-nav a.active{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 9px 18px rgba(37,99,235,.22)}
.logout{margin-left:auto;display:flex}.logout button{white-space:nowrap;background:#eef2f7;color:#1e293b;box-shadow:none}.logout button:hover{background:#e2e8f0;color:#0f172a}
.menu-toggle{display:none;background:#eef2f7;color:#1e293b;box-shadow:none;align-items:center;gap:.45rem}.menu-toggle .icon{width:1.25rem;height:1.25rem}

.contextbar{position:sticky;top:66px;z-index:30;background:rgba(248,251,255,.88);border-bottom:1px solid rgba(216,227,239,.85);backdrop-filter:blur(12px);padding:.65rem clamp(.9rem,2.5vw,2rem)}
.context-form{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;max-width:var(--content);margin:0 auto}
.context-form label{margin:0;font-size:.82rem;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.04em}.schoolyear-display{display:inline-flex;align-items:center;justify-content:center;min-width:118px;font-weight:900;color:#173b70;background:#fff;border:1px solid #cfe0ff;border-radius:999px;padding:.46rem .82rem;box-shadow:0 4px 12px rgba(31,95,191,.08)}
.context-form input[list]{width:min(440px,100%);min-width:300px;max-width:440px;padding:.52rem .65rem;border-radius:999px;background:#fff}.context-form .smallbtn{padding:.48rem .72rem;border-radius:999px;box-shadow:none}

.impersonation-banner{display:flex;align-items:center;justify-content:center;gap:.9rem;flex-wrap:wrap;background:var(--warning-soft);color:#713f12;border-bottom:1px solid #f6d58b;padding:.72rem 1rem;font-weight:650}.impersonation-banner form{margin:0}.impersonation-banner button{background:#713f12;box-shadow:none;padding:.48rem .72rem}
.container{width:min(100% - 2rem,var(--content));margin:1.55rem auto 0}.footer{color:var(--muted);text-align:center;font-size:.86rem;padding:2rem 1rem 2.4rem}

.container>h1:first-child,.page-title{font-size:clamp(1.8rem,4vw,2.75rem);line-height:1.08;margin:.2rem 0 .2rem;letter-spacing:-.04em}.container>h1:first-child+p,.page-title+p{margin-top:.25rem}.muted{color:var(--muted)}.eyebrow{margin:0 0 .4rem;text-transform:uppercase;letter-spacing:.1em;color:var(--primary);font-size:.78rem;font-weight:900}.section-title{display:flex;align-items:center;gap:.55rem;margin:1.4rem 0 .65rem;font-size:1.35rem}.danger-text{color:var(--danger)}
.card{position:relative;background:rgba(255,255,255,.94);border:1px solid rgba(216,227,239,.9);border-radius:var(--radius);padding:1.15rem;box-shadow:var(--shadow-soft)}
.card+.card,.card+table,.card+.table-wrap,table+.card,.table-wrap+.card{margin-top:1rem}.card h1,.card h2,.card h3{margin-top:0;line-height:1.16;letter-spacing:-.02em}.card h1{font-size:clamp(2.1rem,4vw,3.4rem)}.card h2{font-size:1.35rem}.card h3{font-size:1.08rem}.card p:last-child{margin-bottom:0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}.totals{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;margin:.85rem 0}.pill,.badge{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.32rem .7rem;font-size:.87rem;font-weight:850;background:var(--primary-soft);color:#173b70;border:1px solid #cfe0ff}.badge.success,.status-done,.status-goedgekeurd{background:var(--success-soft);color:var(--success);border-color:#bbf7d0}.badge.warning,.status-open,.status-aangevraagd{background:var(--warning-soft);color:var(--warning);border-color:#f6d58b}.badge.danger,.status-geweigerd{background:var(--danger-soft);color:var(--danger);border-color:#fecaca}

.dashboard-hero{overflow:hidden;min-height:170px;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(232,241,255,.92));box-shadow:var(--shadow)}.dashboard-hero::after{content:"";position:absolute;right:-4rem;bottom:-5rem;width:18rem;height:18rem;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.16),transparent 65%)}.dashboard-hero .icon{width:5rem;height:5rem;color:rgba(37,99,235,.22)}
.dashboard-grid{align-items:stretch}.dashboard-grid .card{min-height:155px;display:flex;flex-direction:column;justify-content:space-between;gap:.85rem;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;overflow:hidden}.dashboard-grid .card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#b9cdee}.module-card{color:var(--text)}.module-card h2{display:flex;align-items:center;gap:.6rem;margin-bottom:.2rem}.module-card .module-icon{width:2.35rem;height:2.35rem;border-radius:14px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);box-shadow:inset 0 0 0 1px #d5e5ff}.module-card .module-icon .icon{width:1.35rem;height:1.35rem}.module-card img{position:absolute;right:.7rem;bottom:.4rem;width:70px;max-height:70px;object-fit:contain;opacity:.10;filter:saturate(.75)}.module-card:hover img{opacity:.18}

button,.btn,input[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:0;border-radius:13px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:white;padding:.68rem .98rem;min-height:42px;cursor:pointer;font:inherit;font-weight:850;text-align:center;box-shadow:0 10px 18px rgba(37,99,235,.20);transition:filter .16s ease,transform .16s ease,background .16s ease}.btn:hover,button:hover,input[type=submit]:hover{filter:brightness(1.04);transform:translateY(-1px)}button:disabled,.btn.disabled,.oauth-btn.disabled{opacity:.62;cursor:not-allowed;filter:none;transform:none}.secondary,button.secondary,.btn.secondary{background:#475569;color:#fff;box-shadow:0 8px 16px rgba(71,85,105,.18)}.danger,button.danger,.btn.danger{background:var(--danger);color:#fff;box-shadow:0 8px 16px rgba(185,28,28,.18)}.wide{width:100%;max-width:520px}.smallbtn{min-height:34px;padding:.42rem .7rem;font-size:.92rem}
.actions{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap}.actions.nowrap{}.inline-form{display:inline-flex;gap:.38rem;align-items:center;margin:0}.hidden-form{display:none}

form{max-width:100%}label{display:block;margin:.78rem 0 .28rem;font-weight:850;color:var(--text-soft)}input,select,textarea{width:100%;max-width:560px;border:1px solid var(--border);border-radius:13px;background:#fff;color:var(--text);padding:.68rem .75rem;font:inherit;box-shadow:inset 0 1px 2px rgba(15,40,75,.03);transition:border-color .16s ease,box-shadow .16s ease}textarea{min-height:110px;resize:vertical}input[type=checkbox],input[type=radio]{width:auto;max-width:none;box-shadow:none}input[type=time]{max-width:8.5rem}input:focus,select:focus,textarea:focus{outline:0;border-color:#91b6ef;box-shadow:0 0 0 4px rgba(37,99,235,.13)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.9rem 1rem;align-items:end}.form-row>*{min-width:0}.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.4rem .9rem}.checkline{display:flex;gap:.55rem;align-items:center;margin:.2rem 0;font-weight:650}.form-table td:first-child{width:240px;font-weight:750;color:var(--text-soft)}

.table-wrap,.scroll-x{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:16px}.table-wrap table,.scroll-x table{margin:0}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-soft);margin:1rem 0}th,td{padding:.72rem .8rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}tr:last-child td{border-bottom:0}th{background:linear-gradient(180deg,#eef5ff,#e7f0fc);color:#14315a;font-weight:900;font-size:.88rem;white-space:nowrap}tbody tr:hover td{background:#fbfdff}.compact-table th,.compact-table td{padding:.46rem .52rem}.compact-table input[type=time],form[data-work-schedule] input[type=time]{padding:.35rem .4rem;text-align:center}.nowrap{white-space:nowrap}.date-col{min-width:122px;white-space:nowrap}.status-select{min-width:142px;max-width:190px;padding:.45rem .55rem}.calendar-copy{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem}
.two-week-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.two-week-grid h3{margin:.2rem 0 .7rem}.settings-panel,.settings-card fieldset{border:1px solid var(--border);border-radius:16px;padding:1rem;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 8px 18px rgba(15,40,75,.04)}.settings-card fieldset{margin:1rem 0}.settings-card legend{font-weight:900;color:#173b70;padding:0 .45rem}.print-only{display:none}

.flash{display:flex;align-items:flex-start;gap:.55rem;padding:.86rem 1rem;border-radius:15px;margin-bottom:1rem;border:1px solid transparent;font-weight:650}.flash::before{content:"";width:.65rem;height:.65rem;border-radius:999px;margin-top:.42rem;flex:0 0 auto}.flash.success{background:var(--success-soft);color:var(--success);border-color:#bbf7d0}.flash.success::before{background:var(--success)}.flash.error{background:var(--danger-soft);color:var(--danger);border-color:#fecaca}.flash.error::before{background:var(--danger)}.flash.info{background:#dbeafe;color:#1e3a8a;border-color:#bfdbfe}.flash.info::before{background:#1e3a8a}.flash.warning{background:var(--warning-soft);color:#713f12;border-color:#f6d58b}.flash.warning::before{background:#b45309}

.login-shell{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:1.2rem;align-items:stretch;margin-top:2rem}.login-hero{min-height:440px;overflow:hidden;display:flex;align-items:flex-start;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(230,241,255,.94));box-shadow:var(--shadow)}.login-hero::after{content:"";position:absolute;inset:auto -10% -22% 22%;height:56%;border-radius:50%;background:radial-gradient(circle,rgba(37,99,235,.18),transparent 67%)}.hero-copy{position:relative;z-index:1;max-width:620px}.hero-copy p{font-size:1.05rem}.hero-image{position:absolute;right:2rem;bottom:1.2rem;width:min(280px,45%);filter:drop-shadow(0 22px 22px rgba(15,40,75,.18));opacity:.9}.login-card{align-self:center}.login-divider{display:flex;align-items:center;gap:1rem;color:var(--muted);margin:1.2rem 0}.login-divider::before,.login-divider::after{content:"";height:1px;background:var(--border);flex:1}.oauth-grid{display:grid;gap:.65rem}.oauth-btn{display:flex;align-items:center;gap:.7rem;justify-content:center;padding:.75rem;border-radius:13px;border:1px solid var(--border);background:#fff;color:var(--text);font-weight:850;box-shadow:0 6px 14px rgba(15,40,75,.05)}.oauth-btn:hover{border-color:#b7c8e4;background:#f8fbff}.oauth-btn img{width:28px;max-height:28px;object-fit:contain}.google-signin-wrap{max-width:100%;overflow:hidden}.google-signin-wrap iframe{max-width:100%}.google-signin-wrap [role="button"]{width:auto!important;max-width:none!important;min-width:min-content!important}

@media (max-width:1100px){.main-nav a{padding:.48rem .52rem;font-size:.88rem}.main-nav .nav-label{display:none}.contextbar{top:62px}}
@media (max-width:860px){.topbar{flex-wrap:wrap}.brand-subtitle{display:none}.menu-toggle{display:inline-flex;margin-left:auto}.main-nav{display:none;width:100%;order:4;flex:0 0 100%;padding-top:.5rem;overflow-x:auto;flex-wrap:nowrap}.main-nav.open{display:flex}.main-nav a{flex:0 0 auto}.main-nav .nav-label{display:inline}.logout{margin-left:0;order:3}.contextbar{position:static}.context-form{align-items:flex-end}.context-form input[list]{min-width:0;width:100%;max-width:100%}.login-shell{grid-template-columns:1fr}.login-hero{min-height:320px}.hero-image{width:180px;opacity:.55}.two-week-grid{grid-template-columns:1fr}.actions.nowrap{}.inline-form{flex-wrap:wrap}.grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}}
@media (max-width:560px){body{font-size:15px}.container{width:min(100% - 1rem,var(--content));margin-top:1rem}.topbar{padding:.65rem .75rem}.brand-mark{width:34px;height:34px}.contextbar{padding:.62rem .75rem}.context-form{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem}.context-form label{grid-column:1/-1}.context-form input[list]{grid-column:1/-1}.context-form .schoolyear-display{min-width:0}.context-form button:not(.smallbtn){grid-column:auto}.card{border-radius:15px;padding:.95rem}.dashboard-hero{min-height:unset}.dashboard-hero .icon{display:none}.form-row{grid-template-columns:1fr}button,.btn,input[type=submit]{width:auto;min-height:44px}.wide{width:100%}table{font-size:.92rem}th,td{padding:.58rem .62rem}.login-hero{min-height:250px}.hero-image{display:none}.date-col{min-width:106px}.footer{padding-bottom:1.4rem}}
@media print{body{background:#fff}.topbar,.contextbar,.footer,.actions,.btn,button,.menu-toggle,.impersonation-banner{display:none!important}.container{width:100%;max-width:none;margin:0}.card,table{box-shadow:none}.print-only{display:block}.screen-only{display:none}}
.subsection-card{margin-top:1rem;padding:1rem;border:1px solid var(--border);border-radius:16px;background:rgba(248,250,252,.85)}
.subsection-card h3{margin-top:0}

.section-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap;margin-bottom:.8rem}.section-head h2{margin-bottom:.15rem}.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.25rem .62rem;font-size:.84rem;font-weight:850;border:1px solid var(--border);background:#eef2f7;color:#334155}.status-goedgekeurd{background:var(--success-soft);color:var(--success);border-color:#bbf7d0}.status-aangevraagd,.status-aanvraag,.status-requested{background:var(--warning-soft);color:var(--warning);border-color:#f6d58b}.status-afgekeurd{background:var(--danger-soft);color:var(--danger);border-color:#fecaca}.row-overtime td{background:#f0fdf4}.row-overtime:hover td{background:#e8faee}.row-compensation td{background:#fff7dd}.row-compensation:hover td{background:#fff1bd}.row-rejected td{background:#fee2e2}.row-rejected:hover td{background:#fecaca}.row-requested td{box-shadow:inset 3px 0 0 var(--warning)}.action-approve{background:var(--success);box-shadow:0 8px 16px rgba(21,128,61,.18)}.hidden-cell{display:none!important}.compact-check{margin:0;white-space:nowrap}.compact-check input{margin:0}.policy-maximum-cell input{min-width:100px}.route-profile .card .btn .icon{margin-right:.15rem}

/* v14 statuskleuren op volledige tabelcel */
td.status-cell{font-weight:750}
td.status-cell.status-goedgekeurd{color:var(--success)}
td.status-cell.status-aangevraagd,td.status-cell.status-aanvraag,td.status-cell.status-requested{background:var(--warning-soft);color:var(--warning)}
td.status-cell.status-afgekeurd,td.status-cell.status-geweigerd{background:var(--danger-soft);color:var(--danger)}
td.status-cell .status-badge{background:transparent;border-color:transparent;padding-left:0;padding-right:0;color:inherit}
.route-expenses h1 .icon{width:1.4em;height:1.4em;vertical-align:-.25em;margin-right:.25rem;color:var(--primary)}

/* v15: statuskleur op de volledige rij, behalve bij overuren/compensatie waar typekleur voorgaat */
tr.row-status-goedgekeurd:not(.row-overtime):not(.row-compensation) td{background:var(--success-soft)}
tr.row-status-goedgekeurd:not(.row-overtime):not(.row-compensation):hover td{background:#d7f7df}
tr.row-status-aangevraagd:not(.row-overtime):not(.row-compensation) td,
tr.row-status-aanvraag:not(.row-overtime):not(.row-compensation) td,
tr.row-status-requested:not(.row-overtime):not(.row-compensation) td{background:var(--warning-soft)}
tr.row-status-aangevraagd:not(.row-overtime):not(.row-compensation):hover td,
tr.row-status-aanvraag:not(.row-overtime):not(.row-compensation):hover td,
tr.row-status-requested:not(.row-overtime):not(.row-compensation):hover td{background:#fff1bd}
tr.row-status-afgekeurd:not(.row-overtime):not(.row-compensation) td,
tr.row-status-geweigerd:not(.row-overtime):not(.row-compensation) td{background:var(--danger-soft)}
tr.row-status-afgekeurd:not(.row-overtime):not(.row-compensation):hover td,
tr.row-status-geweigerd:not(.row-overtime):not(.row-compensation):hover td{background:#fecaca}
tr.row-status-goedgekeurd td.status-cell{color:var(--success)}
tr.row-status-aangevraagd td.status-cell,
tr.row-status-aanvraag td.status-cell,
tr.row-status-requested td.status-cell{color:var(--warning)}
tr.row-status-afgekeurd td.status-cell,
tr.row-status-geweigerd td.status-cell{color:var(--danger)}
td.actions:empty::before{content:'\00a0'}

.footer{display:flex;gap:1rem;align-items:center;justify-content:center;flex-wrap:wrap}
.footer a{display:inline-flex;align-items:center;gap:.35rem;color:inherit;text-decoration:none}
.footer-made-by{display:inline-flex;align-items:center;gap:.45rem}
.footer-brand-link{display:inline-flex!important;flex-direction:column;align-items:center;justify-content:center;gap:.12rem;line-height:1;background:transparent;border:0;border-radius:0;padding:0;box-shadow:none}
.footer-logo-crop{display:block;width:52px;height:38px;overflow:hidden;position:relative}
.footer-logo{display:block;width:52px;height:52px;object-fit:contain;object-position:center top;vertical-align:middle}
.footer-brand-name{display:block;color:var(--text);font-size:.88rem;font-weight:850;line-height:1.15;letter-spacing:.01em;white-space:nowrap}
.superadmin-card{border:1px solid rgba(37,99,235,.22);box-shadow:0 12px 30px rgba(37,99,235,.10)}
.compact-table td input[aria-label="Bevestiging"]{min-width:210px}
.status-sent{background:#dcfce7;color:#166534;font-weight:700}
.status-failed{background:#fee2e2;color:#991b1b;font-weight:700}
.status-queued{background:#fef9c3;color:#854d0e;font-weight:700}

/* v19: CLBapp logo en meldingen bij huidige scrollpositie */
.brand-logo{display:block;width:172px;max-width:34vw;height:46px;object-fit:contain;object-position:left center}
.brand .brand-subtitle{margin-left:-.15rem;align-self:flex-end;margin-bottom:.45rem}
.flash-stack{position:fixed;right:1rem;top:calc(4.5rem + env(safe-area-inset-top,0px));z-index:200;display:grid;gap:.65rem;width:min(420px,calc(100vw - 2rem));pointer-events:none}.flash-stack .flash{margin:0;box-shadow:0 18px 46px rgba(15,40,75,.16);pointer-events:auto;animation:clbappFlashIn .18s ease-out}
@keyframes clbappFlashIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media (max-width:560px){.brand-logo{width:132px;height:38px}.flash-stack{left:.75rem;right:.75rem;top:auto;bottom:1rem;width:auto}.brand .brand-subtitle{display:none}}

/* v20 ondersteuning */
.support-hero{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;overflow:hidden}.support-hero>.icon{width:4.5rem;height:4.5rem;color:var(--primary);opacity:.18}.support-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.support-card h2,.faq-card h2{display:flex;align-items:center;gap:.55rem}.support-card h2 .icon,.faq-card h2 .icon{color:var(--primary)}.video-placeholder-list{display:grid;gap:.65rem}.video-placeholder{display:grid;grid-template-columns:auto 1fr;gap:.3rem .65rem;align-items:center;border:1px dashed var(--border);border-radius:14px;padding:.75rem;background:#f8fbff}.video-placeholder .icon{grid-row:1/3;color:var(--primary)}.video-placeholder small{color:var(--muted)}.support-form textarea{resize:vertical}.faq-list{display:grid;gap:.6rem}.faq-list details{border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden}.faq-list summary{cursor:pointer;font-weight:850;color:#173b70;padding:.82rem 1rem;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:'+';float:right;color:var(--primary);font-weight:900}.faq-list details[open] summary::after{content:'-'}.faq-list details p{padding:0 1rem 1rem;margin:0;color:var(--text)}.small{font-size:.9rem}.action-send .icon{margin-right:.25rem}@media(max-width:760px){.support-grid{grid-template-columns:1fr}.support-hero>.icon{display:none}}

.admin-dashboard { margin-bottom: 1rem; }
.admin-overview-grid { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); margin-bottom: 1rem; }
.dashboard-alert-card { text-decoration: none; color: inherit; border-left: 4px solid rgba(37, 99, 235, .35); }
.dashboard-alert-card.attention { border-left-color: rgba(220, 38, 38, .55); }
.dashboard-alert-card h3 { display: flex; gap: .5rem; align-items: center; margin-bottom: .35rem; }
.dashboard-alert-card .metric { font-size: 2rem; font-weight: 800; margin: .2rem 0; color: var(--primary, #2563eb); }
.dashboard-detail-grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }

button.is-submitting,
input[type="submit"].is-submitting {
  opacity: .7;
  cursor: wait;
}
.soft-card {
  box-shadow: none;
  border-color: rgba(37, 99, 235, .12);
  background: rgba(248, 250, 252, .85);
}
.compact-grid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

/* v23: dashboard beheerblokken ruimer weergeven */
.admin-dashboard .dashboard-detail-grid{grid-template-columns:1fr}
.admin-dashboard .dashboard-detail-grid .card{min-width:0}
.admin-dashboard .dashboard-detail-grid table{min-width:760px}
.admin-dashboard .dashboard-detail-grid th,.admin-dashboard .dashboard-detail-grid td{vertical-align:top}
@media (max-width:860px){.admin-dashboard .dashboard-detail-grid table{min-width:680px}}

/* v24: cachemeldingen en stabiele knoppen bij submit */
.cache-refresh-state{display:inline-block;margin-left:.35rem;font-weight:700;color:var(--primary)}
button.is-submitting,input[type="submit"].is-submitting{white-space:nowrap}
.dashboard-detail-grid .compact-table th:nth-child(1),.dashboard-detail-grid .compact-table td:nth-child(1){min-width:180px}
.dashboard-detail-grid .compact-table th:nth-child(2),.dashboard-detail-grid .compact-table td:nth-child(2){min-width:170px}
.dashboard-detail-grid .compact-table th:nth-child(3),.dashboard-detail-grid .compact-table td:nth-child(3){min-width:120px}

.legal-document h1,
.legal-document h2 { margin-top: 0.75rem; }
.legal-document ul { margin-top: 0.35rem; margin-bottom: 1rem; }
.legal-document li { margin-bottom: 0.35rem; }
.legal-login-links { margin-top: 1rem; display: flex; gap: .5rem; flex-wrap: wrap; justify-content: center; color: var(--muted); font-size: .9rem; }
.legal-login-links a { color: var(--primary); font-weight: 600; }
.legal-dashboard-card { margin-top: 1rem; }
.legal-dashboard-card p:last-child { display:flex; gap:.75rem; flex-wrap:wrap; }

/* v28: visuele verlofkalender en cache-acties */
.info-note .btn{margin-left:auto;flex:0 0 auto}
.visual-leave-picker{margin:1rem 0;border:1px solid var(--border);border-radius:18px;padding:1rem;background:#f8fbff}
.leave-calendar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:.85rem;margin-top:.8rem}
.leave-month{background:#fff;border:1px solid var(--border);border-radius:16px;padding:.8rem;box-shadow:var(--shadow-soft)}
.leave-month h4{margin:0 0 .6rem;color:#173b70;text-transform:capitalize}
.leave-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;align-items:center}
.leave-day-name{font-size:.75rem;text-align:center;font-weight:900;color:var(--muted);text-transform:uppercase}
.leave-day{min-height:34px;padding:.3rem;border-radius:10px;background:#f8fafc;color:var(--text);box-shadow:none;border:1px solid #e2e8f0;font-weight:800}
.leave-day:hover{background:#eaf2ff;transform:none}
.leave-day.is-weekend{color:#94a3b8;background:#f1f5f9}
.leave-day.is-blocked,.leave-day:disabled{color:#94a3b8;background:#f1f5f9;border-color:#e2e8f0;cursor:not-allowed;opacity:.72}
.leave-day.is-approved{background:#dcfce7;color:#166534;border-color:#86efac;opacity:1}
.leave-day.is-pending{background:#ffedd5;color:#9a3412;border-color:#fdba74;opacity:1}
.leave-day.is-draft{background:#fee2e2;color:#991b1b;border-color:#fca5a5;opacity:1}
.leave-day.is-selected{background:var(--primary);color:#fff;border-color:var(--primary-dark);opacity:1}
.leave-day.is-range-anchor{box-shadow:0 0 0 3px rgba(37,99,235,.22)}
.leave-calendar-legend{display:flex;flex-wrap:wrap;gap:.55rem 1rem;margin:.65rem 0;color:var(--muted);font-size:.9rem;font-weight:700}
.leave-calendar-legend span{display:inline-flex;align-items:center;gap:.35rem}
.leave-calendar-legend i{width:14px;height:14px;border-radius:4px;border:1px solid #cbd5e1;display:inline-block}
.legend-selected{background:var(--primary);border-color:var(--primary-dark)!important}.legend-approved{background:#dcfce7;border-color:#86efac!important}.legend-pending{background:#ffedd5;border-color:#fdba74!important}.legend-draft{background:#fee2e2;border-color:#fca5a5!important}.legend-blocked{background:#f1f5f9;border-color:#e2e8f0!important}
.leave-selected-summary{padding:.65rem .8rem;border-radius:13px;background:#fff;border:1px dashed #bfdbfe;color:#1e3a8a;font-weight:750}
select[name="vestiging"]{width:auto;max-width:none;min-width:14rem}
.dashboard-detail-grid .dashboard-attention-wide table{min-width:720px}
@media(max-width:760px){.info-note .btn{margin-left:0}.leave-calendar-grid{grid-template-columns:1fr}select[name="vestiging"]{min-width:0;max-width:100%}}

.setup-steps{margin:.5rem 0 1rem 1.2rem;color:var(--muted);font-size:.92rem}.setup-steps li{margin:.25rem 0}.calendar-settings-grid{align-items:start}.calendar-settings-grid .subsection-card{height:100%}
.plain-fieldset{border:0;padding:0;margin:0;min-width:0}
.is-disabled-form{opacity:.92}
.warning-note{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.copy-row{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap}.copy-row code{flex:1;min-width:260px;word-break:break-all}

/* v32: achtergrondverwerking agenda */
.calendar-job{margin-top:1rem;padding:.9rem;border:1px solid var(--border);border-radius:14px;background:#f8fbff}
.calendar-job-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.55rem}
.calendar-progress{height:12px;border-radius:999px;background:#e2e8f0;overflow:hidden;border:1px solid #cbd5e1}
.calendar-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),#38bdf8);transition:width .25s ease}
.calendar-job-details{margin:.55rem 0 0 1.1rem;color:var(--danger);font-size:.86rem}

.admin-only-note{font-size:.88rem;color:var(--muted);margin-top:-.35rem;margin-bottom:1rem}.profile-section-spacer{margin-top:1.25rem}.settings-card fieldset .subsection-card{margin-top:.85rem}
.row-transfer td{background:#eef6ff;font-weight:700}.row-transfer:hover td{background:#dfefff}.row-expired td{background:#f3f4f6;color:#475569}.row-expired:hover td{background:#e5e7eb}.overtime-calculation tr.calc-balance td{font-weight:900;border-top:2px solid var(--border)}.overtime-calculation tr.calc-expired td{color:#7f1d1d}.overtime-calculation tr.calc-previous td{font-weight:700}

.role-color-sample {
  display: inline-block;
  width: 1.2rem;
  height: 1.2rem;
  border: 1px solid #94a3b8;
  border-radius: 4px;
  vertical-align: middle;
  margin-right: .35rem;
}
.presence-legend {
  margin: 0 0 1rem 0;
  padding: .75rem 1rem;
  background: #f8fafc;
  border: 1px solid #dbe3ef;
  border-radius: 12px;
}
.presence-role-legend {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  margin: .25rem .75rem .25rem 0;
  white-space: nowrap;
}

/* v43: overzichtelijke tabbladen instellingen */
.settings-tabs{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0 1.15rem}.settings-tabs button{border:1px solid var(--border);background:#fff;color:var(--text);box-shadow:none}.settings-tabs button.is-active{background:var(--primary);border-color:var(--primary);color:#fff}.settings-tab-panel[hidden]{display:none!important}.settings-tab-panel{animation:fadeIn .15s ease}.settings-panel h4{margin:.25rem 0 .45rem}
@keyframes fadeIn{from{opacity:.65;transform:translateY(2px)}to{opacity:1;transform:none}}

/* v46: navigatie, dashboard en instellingen */
.grouped-nav{align-items:stretch;gap:.55rem}
.nav-group{display:flex;align-items:center;gap:.35rem;padding:.18rem .2rem;border-radius:18px;background:rgba(248,251,255,.62);border:1px solid transparent}
.nav-group.has-active{background:#eef6ff;border-color:#cfe0ff;box-shadow:inset 4px 0 0 var(--primary)}
.nav-group-links{display:flex;align-items:center;gap:.18rem;flex-wrap:wrap}
.grouped-nav a{position:relative;border:1px solid transparent}
.grouped-nav a.active{background:#fff;color:var(--primary-dark);border-color:#a9c7ff;box-shadow:0 9px 18px rgba(37,99,235,.18), inset 0 -3px 0 var(--primary)}
.grouped-nav a.active .icon{stroke-width:2.4}
.dashboard-section{margin:1.1rem 0}
.compact-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin:.25rem 0 .75rem}.compact-section-head h2{margin:.1rem 0}.compact-section-head p:last-child{margin-bottom:0}
.dashboard-work-grid,.dashboard-admin-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.dashboard-admin-section{margin-top:1.45rem;padding-top:.4rem;border-top:1px dashed var(--border)}
.dashboard-action-card{min-height:145px;background:rgba(255,255,255,.96)}
.dashboard-action-card img{display:none}.dashboard-card-metric{font-size:1.06rem;font-weight:900;color:#173b70;margin:.2rem 0}.dashboard-card-action{display:flex;gap:.45rem;align-items:center;margin-top:auto;color:var(--primary);font-weight:850}.dashboard-card-action .icon{width:1rem;height:1rem}.admin-module-card .module-icon{background:#ecfeff;color:var(--teal);box-shadow:inset 0 0 0 1px #b6f1ec}
.settings-search-card{margin:.85rem 0 0}.settings-search-card label{margin-top:0}.settings-search-row{display:flex;align-items:center;gap:.65rem;background:#fff;border:1px solid var(--border);border-radius:15px;padding:.55rem .8rem}.settings-search-row .icon{color:var(--primary)}.settings-search-row input{border:0;background:transparent;box-shadow:none;padding:.25rem 0;width:100%;outline:0}.settings-search-empty{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:14px;padding:.75rem .9rem;margin:.75rem 0}
.settings-tabs{position:sticky;top:128px;z-index:24;background:rgba(248,251,255,.92);backdrop-filter:blur(12px);padding:.65rem 0;margin:.85rem 0 1.15rem;border-bottom:1px solid rgba(216,227,239,.85)}
.settings-tabs button{border-radius:999px}.settings-tabs button.is-active{box-shadow:0 8px 16px rgba(37,99,235,.18)}
.settings-tab-panel .card,.settings-tab-panel fieldset,.settings-tab-panel details{scroll-margin-top:180px}
.team-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:1rem;margin:1rem 0}.team-settings-card{border-top:5px solid var(--team-color);overflow:hidden}.team-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.team-color-preview{display:flex;align-items:center;gap:.45rem;min-width:190px;border:1px solid color-mix(in srgb,var(--team-color),#94a3b8 35%);background:linear-gradient(90deg,var(--team-color),rgba(255,255,255,.9));border-radius:13px;padding:.55rem .7rem;font-weight:850;color:#0f172a}.team-card-sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.85rem}.team-card-section{border:1px solid var(--border);border-radius:15px;background:#f8fbff;padding:.85rem;margin-top:.85rem}.team-card-section h3{margin-bottom:.35rem}.team-modules-section .settings-panel{box-shadow:none;border:0;background:transparent;padding:0}.team-color-form input[type=color]{width:3.1rem;height:2.55rem;padding:.12rem;border-radius:10px}.team-notification-details summary{cursor:pointer;font-weight:900;color:#173b70}.team-notification-details[open] summary{margin-bottom:.55rem}.compact-form-row{grid-template-columns:minmax(170px,1fr) auto}.compact-danger-zone{background:#fff7f7;border-color:#fecaca}.compact-danger-zone h3{color:var(--danger)}
@media (max-width:1100px){.nav-group{padding:.15rem}.settings-tabs{top:118px}}
@media (max-width:860px){.grouped-nav{display:none;position:fixed;left:1rem;right:1rem;top:74px;max-height:calc(100vh - 96px);overflow:auto;width:auto;order:unset;flex:unset;padding:.8rem;background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);flex-direction:column}.grouped-nav.open{display:flex}.nav-group{display:block;width:100%;background:#f8fbff;border-color:var(--border);padding:.55rem}.nav-group+.nav-group{margin-top:.45rem}.nav-group-links{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.nav-group-links a{justify-content:flex-start;border-radius:13px}.settings-tabs{top:0}.team-card-grid{grid-template-columns:1fr}.team-card-head{display:block}.team-color-preview{margin-top:.65rem;min-width:0}.compact-form-row{grid-template-columns:1fr}}
@media (max-width:560px){.nav-group-links{grid-template-columns:1fr}.settings-search-card{padding:.85rem}.dashboard-work-grid,.dashboard-admin-grid{grid-template-columns:1fr}.compact-section-head{display:block}.settings-tabs{overflow-x:auto;flex-wrap:nowrap}.settings-tabs button{flex:0 0 auto}.team-card-section{padding:.75rem}.settings-tab-panel .scroll-x table{min-width:680px}}

/* v47: tabellen, aanvraagacties en mobiele weergave */
.bulk-actions-sticky{
  position:sticky;
  top:calc(66px + 3.2rem);
  z-index:18;
  display:flex;
  gap:.55rem;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  padding:.45rem;
  margin:-.45rem;
  border-radius:14px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(216,227,239,.72);
  box-shadow:0 10px 24px rgba(15,40,75,.08);
  backdrop-filter:blur(12px);
}
.bulk-check-wrap{display:inline-flex;align-items:center;gap:.42rem;font-weight:800;color:#173b70;cursor:pointer;white-space:nowrap}
.bulk-check-wrap input[type="checkbox"], .responsive-table input[type="checkbox"]{width:1.25rem;height:1.25rem;min-width:1.25rem;accent-color:var(--primary);cursor:pointer}
.check-all-label{font-size:.84rem}
.status-badge{line-height:1.2;text-align:left;max-width:100%}
.status-badge.status-concept{background:#eef2f7;color:#334155;border-color:#cbd5e1}
.status-badge.status-vergrendeld{background:#e0e7ff;color:#3730a3;border-color:#c7d2fe}
.status-badge.status-vervallen,.status-badge.status-verlopen{background:#f1f5f9;color:#475569;border-color:#cbd5e1;text-decoration:line-through;text-decoration-thickness:1px}
.action-menu{position:relative;display:inline-block;text-align:left}
.action-menu>summary{list-style:none;cursor:pointer;user-select:none}
.action-menu>summary::-webkit-details-marker{display:none}
.action-menu[open]>summary{background:#e2e8f0;color:#0f172a;box-shadow:none}
.action-menu-list{position:absolute;right:0;top:calc(100% + .35rem);z-index:35;min-width:210px;display:grid;gap:.35rem;padding:.55rem;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 18px 46px rgba(15,40,75,.18)}
.action-menu-list form,.action-menu-list .inline-form{display:block;width:100%;margin:0}.action-menu-list button,.action-menu-list .btn{width:100%;justify-content:flex-start;box-shadow:none}.action-menu-list .muted.small{display:block;padding:.45rem .55rem}
.clb-modal-backdrop{position:fixed;inset:0;z-index:500;display:grid;place-items:center;padding:1rem;background:rgba(15,23,42,.52);backdrop-filter:blur(4px)}
.clb-modal-backdrop[hidden]{display:none!important}.has-open-modal{overflow:hidden}.clb-modal{width:min(520px,100%);background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:0 26px 80px rgba(15,23,42,.26);padding:1.15rem}.clb-modal h2{margin:.1rem 0 .35rem;letter-spacing:-.02em}.clb-modal textarea{resize:vertical}.modal-actions{justify-content:flex-end;margin-top:1rem}.empty-state{display:grid;gap:.2rem;place-items:start;margin:1rem 0;padding:1rem 1.1rem;border:1px dashed var(--border-strong);border-radius:16px;background:rgba(248,250,252,.92);color:var(--text-soft)}.empty-state strong{color:var(--text)}.empty-state span{color:var(--muted)}

@media (max-width:720px){
  .bulk-actions-sticky{top:.5rem;justify-content:stretch}.bulk-actions-sticky form,.bulk-actions-sticky button{width:100%}
  .scroll-x:has(table.responsive-table),.table-wrap:has(table.responsive-table){overflow:visible;border-radius:0}
  table.responsive-table{display:block;border:0;background:transparent;box-shadow:none;border-radius:0;margin:1rem 0}
  table.responsive-table tbody,table.responsive-table tr,table.responsive-table td{display:block;width:100%}
  table.responsive-table tr.responsive-table-header,table.responsive-table tr:has(th){display:none!important}
  table.responsive-table tr:not(.responsive-table-header){position:relative;margin:.85rem 0;padding:.2rem 0;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow-soft);overflow:hidden}
  table.responsive-table tr:not(.responsive-table-header):hover td{background:transparent}
  table.responsive-table td{display:grid;grid-template-columns:minmax(112px,42%) 1fr;gap:.55rem;align-items:start;border:0;border-bottom:1px solid rgba(216,227,239,.72);padding:.7rem .85rem;background:transparent!important}
  table.responsive-table td:last-child{border-bottom:0}
  table.responsive-table td::before{content:attr(data-label);font-weight:900;color:#173b70;font-size:.83rem;line-height:1.25}
  table.responsive-table td.actions{display:block;padding:.8rem .85rem;background:#f8fbff!important}
  table.responsive-table td.actions::before{display:block;margin-bottom:.45rem}
  table.responsive-table td.actions .action-menu{display:block;width:100%}
  table.responsive-table td.actions .action-menu>summary{width:100%;justify-content:center}
  .action-menu-list{position:static;min-width:0;width:100%;margin-top:.45rem;box-shadow:none;background:#fff}
  table.responsive-table .inline-form{display:block;margin:.2rem 0}table.responsive-table button,table.responsive-table .btn{width:100%;justify-content:center}
  table.responsive-table .date-col{min-width:0;white-space:normal}.status-badge{justify-content:center}
}

/* v48: modulespecifieke UX */
.visual-leave-picker-compact .leave-month.is-extra-month{display:none}
.visual-leave-picker-compact.show-all-months .leave-month.is-extra-month{display:block}
.visual-leave-picker-compact .leave-calendar-grid{grid-template-columns:repeat(auto-fit,minmax(255px,1fr))}
.visual-leave-picker-compact .leave-selected-summary{display:flex;flex-direction:column;gap:.2rem}
.visual-leave-picker-compact .leave-selected-summary strong{color:var(--primary-dark)}
.visual-leave-picker-compact .leave-selected-summary span{color:var(--muted);font-size:.9rem;font-weight:600}
.module-tabs{margin-top:1rem}
.module-tab-list,.module-subtabs{display:flex;flex-wrap:wrap;gap:.45rem;margin:.75rem 0 1rem;padding:.35rem;border:1px solid var(--border);background:#f8fafc;border-radius:16px}
.module-tab,.module-subtab{border:0;background:transparent;color:#334155;font-weight:800;border-radius:12px;padding:.65rem .9rem;box-shadow:none}
.module-tab:hover,.module-subtab:hover{background:#eaf2ff;transform:none}
.module-tab.is-active,.module-subtab.is-active{background:var(--primary);color:#fff}
.module-tab-panel[hidden],.week-panel[hidden]{display:none!important}
.overtime-formula-card .calculation-details{margin-top:1rem}
.overtime-formula-card .calculation-details summary{cursor:pointer;font-weight:800;color:var(--primary-dark)}
.overtime-formula{display:flex;align-items:stretch;gap:.55rem;flex-wrap:wrap;margin:1rem 0}
.formula-part{min-width:138px;display:flex;flex-direction:column;justify-content:center;gap:.2rem;padding:.8rem .95rem;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow-soft)}
.formula-part strong{font-size:1.25rem;color:#173b70}.formula-part small{font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.035em}.formula-op{display:flex;align-items:center;font-weight:900;font-size:1.35rem;color:#64748b}.formula-part.balance{background:#eff6ff;border-color:#bfdbfe}.formula-part.negative{background:#fff7ed;border-color:#fed7aa}.formula-part.positive{background:#f0fdf4;border-color:#bbf7d0}
.overtime-entry-card.is-compensation-mode{border-color:#fed7aa;background:linear-gradient(180deg,#fff,#fff7ed)}
.overtime-entry-card.is-overtime-mode{border-color:#bbf7d0;background:linear-gradient(180deg,#fff,#f8fffb)}
.day-card-grid,.exchange-flow-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:1rem;margin-top:.9rem}
.day-card,.exchange-flow-card{border:1px solid var(--border);border-radius:18px;background:#fff;padding:1rem;box-shadow:var(--shadow-soft)}
.day-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem;margin-bottom:.75rem}.day-card-head strong{color:#173b70}.day-card-details{display:grid;gap:.55rem;margin:0}.day-card-details div{display:flex;justify-content:space-between;gap:.8rem;border-bottom:1px dashed #e2e8f0;padding-bottom:.45rem}.day-card-details dt{font-weight:800;color:var(--muted)}.day-card-details dd{margin:0;text-align:right;font-weight:700}
.remote-block-summary .block-meter{display:flex;gap:.45rem;flex-wrap:wrap;margin:.8rem 0}.block-chip{display:inline-flex;align-items:center;justify-content:center;min-width:78px;padding:.45rem .65rem;border-radius:999px;font-weight:800;border:1px solid var(--border);font-size:.85rem}.block-chip.is-free{background:#dcfce7;color:#166534;border-color:#86efac}.block-chip.is-used{background:#e2e8f0;color:#475569}.block-choice-panel{padding:.75rem;border:1px dashed #bfdbfe;border-radius:16px;background:#f8fbff;margin:.5rem 0 1rem}.block-choice-buttons{display:flex;gap:.45rem;flex-wrap:wrap}.block-choice-buttons .is-active{background:var(--primary);color:#fff}
.exchange-flow-card{position:relative}.exchange-select{display:inline-flex;gap:.4rem;align-items:center;font-weight:800;color:var(--muted);margin-bottom:.45rem}.exchange-person{margin-bottom:.55rem}.exchange-flow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.7rem}.exchange-flow span{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:.8rem;font-weight:850;color:#173b70}.exchange-flow small{display:block;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;margin-bottom:.2rem}.exchange-flow b{font-size:1.5rem;color:var(--primary)}
.expense-total-grid .card p{font-size:1.05rem;font-weight:850;color:#173b70}.expense-submit-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.7rem;margin:1rem 0}.expense-submit-summary div{border:1px solid var(--border);border-radius:16px;padding:.85rem;background:#f8fafc}.expense-submit-summary strong{display:block;color:#173b70;font-size:1.2rem}.expense-submit-summary small{color:var(--muted);font-weight:800}.expense-attachment-preview{padding:1rem;border:1px dashed var(--border);border-radius:16px;background:#f8fafc}
.week-planner{margin:1rem 0}.week-day-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.week-day-card{border:1px solid var(--border);border-radius:18px;background:#fff;padding:1rem;box-shadow:var(--shadow-soft)}.week-day-card .pill input{width:80px;border:0;background:transparent;font-weight:900;color:inherit;padding:0}.week-day-parts{display:grid;gap:.7rem}.week-day-parts fieldset{border:1px solid #e2e8f0;border-radius:14px;padding:.75rem;margin:0;background:#f8fafc}.week-day-parts legend{font-weight:900;color:#173b70;padding:0 .25rem}.week-day-parts label{display:grid;grid-template-columns:60px 1fr;align-items:center;gap:.5rem;font-size:.88rem;font-weight:800;color:var(--muted);margin:.35rem 0}.week-day-parts input[type=time]{min-width:0;width:100%}.sticky-week-total{position:sticky;bottom:.75rem;z-index:4;background:rgba(255,255,255,.96);border:1px solid var(--border);border-radius:16px;padding:.7rem;box-shadow:var(--shadow-soft)}
@media(max-width:760px){.overtime-formula{display:grid;grid-template-columns:1fr}.formula-op{justify-content:center}.exchange-flow{grid-template-columns:1fr}.exchange-flow b{transform:rotate(90deg);justify-content:center;display:flex}.module-tab-list,.module-subtabs{position:sticky;top:.5rem;z-index:5}.week-day-grid,.day-card-grid,.exchange-flow-list{grid-template-columns:1fr}.sticky-week-total{bottom:0;border-radius:14px 14px 0 0}}

/* v49: modals, detailpanelen en verdere toegankelijkheid */
.menu-backdrop{position:fixed;inset:0;z-index:39;background:rgba(15,23,42,.35);border:0;padding:0;box-shadow:none}.menu-backdrop[hidden]{display:none!important}.menu-open{overflow:hidden}
.user-combobox{position:relative;min-width:min(420px,100%)}.user-combobox input[type=search]{width:100%}.user-combobox-list{position:absolute;z-index:70;left:0;right:0;top:calc(100% + .35rem);display:grid;gap:.25rem;max-height:330px;overflow:auto;padding:.45rem;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:0 18px 46px rgba(15,40,75,.18)}.user-combobox-list[hidden]{display:none!important}.user-combobox-list button{display:grid;gap:.1rem;text-align:left;background:#fff;color:var(--text);border:1px solid transparent;border-radius:12px;box-shadow:none;padding:.65rem .75rem}.user-combobox-list button[hidden]{display:none!important}.user-combobox-list button:hover,.user-combobox-list button:focus{background:#eef6ff;border-color:#bfdbfe;transform:none}.user-combobox-list small,.user-combobox-list span{color:var(--muted);font-size:.82rem}.user-combobox-list strong{color:#173b70}
.danger-zone,.compact-danger-zone,.danger-zone-inline{border:1px solid #fecaca!important;background:#fff7f7!important;border-radius:16px;padding:.85rem;margin-top:1rem}.danger-zone h3,.danger-zone h4{color:#991b1b;margin-top:0}.danger-zone-inline{display:inline-block;margin:.2rem 0;padding:.35rem}.clb-modal .danger{background:var(--danger);color:#fff}.clb-modal [data-modal-message]{white-space:pre-wrap}.clb-modal :focus-visible{outline:3px solid #93c5fd;outline-offset:3px}
.user-management-layout{display:grid;grid-template-columns:minmax(240px,330px) minmax(0,1fr);gap:1rem;align-items:start}.user-list-panel{position:sticky;top:190px;align-self:start;border:1px solid var(--border);border-radius:18px;background:#f8fbff;padding:.85rem}.user-list{display:grid;gap:.35rem;max-height:620px;overflow:auto;margin-top:.65rem}.user-list-item{display:grid;gap:.08rem;text-align:left;border:1px solid transparent;background:#fff;color:var(--text);border-radius:14px;padding:.7rem .8rem;box-shadow:none}.user-list-item:hover,.user-list-item:focus,.user-list-item.is-active{background:#eef6ff;border-color:#bfdbfe;transform:none}.user-list-item strong{color:#173b70}.user-list-item span,.user-list-item small{color:var(--muted);font-size:.82rem}.user-detail-card[hidden]{display:none!important}.user-detail-card{border:1px solid var(--border);border-radius:18px;background:#fff;padding:1rem;box-shadow:var(--shadow-soft)}.user-role-badges{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.user-detail-form fieldset{margin-top:.8rem}.user-detail-panel .danger-zone{margin-top:1rem}.compact-empty{margin:.35rem 0}.form-field-card-list{display:grid;gap:.65rem;margin-top:.7rem}.form-field-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid var(--border);border-radius:16px;background:#fff;padding:.85rem;box-shadow:var(--shadow-soft)}.form-field-card strong{display:block;color:#173b70;margin-bottom:.25rem}.form-field-card .actions{flex-wrap:wrap;justify-content:flex-end}.registration-card-list{display:grid;gap:.75rem}.registration-detail-card{border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:var(--shadow-soft);overflow:hidden}.registration-detail-card summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;padding:.9rem 1rem;list-style:none}.registration-detail-card summary::-webkit-details-marker{display:none}.registration-detail-card summary small{display:block;color:var(--muted);font-weight:700}.registration-detail-list{display:grid;gap:.45rem;margin:0;padding:0 1rem 1rem}.registration-detail-list div{display:grid;grid-template-columns:minmax(120px,30%) 1fr;gap:.8rem;border-top:1px dashed #e2e8f0;padding:.6rem 0}.registration-detail-list dt{font-weight:900;color:#173b70}.registration-detail-list dd{margin:0}.registration-detail-card .actions{padding:0 1rem 1rem}.inline-validation-box{border:1px solid #bfdbfe;background:#eff6ff;border-radius:16px;padding:.8rem 1rem;margin:.85rem 0;color:#173b70}.inline-validation-box ul{margin:.4rem 0 0 1.15rem}.inline-validation-box li{margin:.2rem 0}.week-day-card.has-conflict{border-color:#fca5a5;background:#fff7f7}.employment-timeline{position:relative;display:grid;gap:.9rem;margin:1rem 0}.employment-timeline:before{content:"";position:absolute;left:13px;top:.2rem;bottom:.2rem;width:2px;background:#bfdbfe}.employment-timeline-item{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);gap:.6rem}.timeline-dot{width:14px;height:14px;margin-top:1.15rem;border-radius:999px;background:var(--primary);box-shadow:0 0 0 4px #dbeafe;z-index:1}.employment-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;border:1px solid var(--border);border-radius:18px;background:#fff;padding:1rem;box-shadow:var(--shadow-soft)}.employment-card strong{color:#173b70}.dashboard-block-action{margin-top:.75rem}.profile-tabs .module-tab-panel>.card:first-child{margin-top:0}.status-concept{background:#f1f5f9;color:#334155;border-color:#cbd5e1}.status-aangevraagd{background:#ffedd5;color:#9a3412;border-color:#fdba74}.status-goedgekeurd{background:#dcfce7;color:#166534;border-color:#86efac}.status-afgekeurd{background:#fee2e2;color:#991b1b;border-color:#fca5a5}.status-vergrendeld{background:#e5e7eb;color:#374151;border-color:#cbd5e1}
@media(max-width:860px){.user-management-layout{grid-template-columns:1fr}.user-list-panel{position:static}.user-detail-card{padding:.85rem}.employment-card{display:grid}.form-field-card{display:grid}.registration-detail-card summary{align-items:flex-start}.registration-detail-list div{grid-template-columns:1fr}.user-combobox{min-width:0;width:100%}}

/* v50 gerichte correcties */
.bulk-check-wrap{width:35px;min-width:35px;max-width:35px;text-align:center}
.team-card-grid{grid-template-columns:1fr!important}
.employment-card .status-badge{margin-left:.55rem}
.form-builder-details>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-weight:900}
.form-builder-inner{margin-top:1rem}
.leave-month[hidden]{display:none!important}
.visual-leave-picker .actions button[disabled]{opacity:.45;cursor:not-allowed}
.nav-group{margin-right:.35rem}
@media(max-width:760px){.bulk-check-wrap{width:35px!important;min-width:35px!important}.leave-selected-summary span{word-break:break-word}}

/* v51: hoofdnavigatie zonder zichtbare groepering en duidelijkere contextbalk */
.main-nav.grouped-nav{gap:.25rem}
.grouped-nav > a{display:inline-flex;align-items:center;gap:.38rem}
.context-selected-user{display:inline-flex;align-items:center;gap:.25rem;padding:.42rem .7rem;border-radius:999px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:.88rem;font-weight:800}
.role-mode-select{min-width:170px;border-radius:999px;padding:.5rem .75rem;background:#fff;border:1px solid #cfe0ff;font-weight:800;color:#173b70}
.table-search-row{display:flex;align-items:center;gap:.6rem;margin:.75rem 0 1rem;padding:.55rem .75rem;border:1px solid var(--border);background:#fff;border-radius:15px;max-width:520px}
.table-search-row .icon{color:var(--primary);flex:0 0 auto}.table-search-row input{border:0;background:transparent;box-shadow:none;padding:.2rem 0;width:100%;outline:0}.table-search-empty{margin-top:.8rem}
@media (max-width:860px){.grouped-nav.open{display:flex}.grouped-nav > a{width:100%;justify-content:flex-start;border-radius:13px}.context-selected-user{grid-column:1/-1}.role-mode-select{grid-column:1/-1;width:100%}}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* v52: gerichte correcties navigatie, kalender, facturatie en knelpuntdagen */
.main-nav{gap:.28rem}
.role-mode-select{min-width:150px;max-width:max-content}
@media (max-width:860px){.role-mode-select{width:auto;max-width:100%;grid-column:auto}}
.contextbar .role-mode-select{width:auto!important}
.billing-cost-input{max-width:110px;min-width:90px}
.settings-two-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:1rem;align-items:start}
@media(max-width:920px){.settings-two-columns{grid-template-columns:1fr}}
.team-color-preview-form{align-items:center;gap:.8rem;flex-wrap:wrap}.team-color-preview.inline-preview{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .7rem;border:1px solid var(--border);border-radius:999px;background:#fff}
.team-card-grid{grid-template-columns:1fr!important}
table th.bulk-check-wrap,table td.bulk-check-wrap{width:35px!important;min-width:35px!important;max-width:35px!important;display:table-cell!important;text-align:center!important;padding-left:.35rem!important;padding-right:.35rem!important}
table th.bulk-check-wrap input,table td.bulk-check-wrap input{margin:auto}.bulk-check-wrap{white-space:normal}
.leave-calendar-nav-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.65rem;align-items:center;margin-top:.8rem}.leave-calendar-nav-row .leave-calendar-grid{margin-top:0}.leave-calendar-nav-row .calendar-arrow{min-width:42px;min-height:42px;border-radius:999px;font-size:1.55rem;line-height:1;padding:.35rem .7rem}.visual-leave-picker-compact .leave-calendar-grid{grid-template-columns:repeat(2,minmax(255px,1fr))}.leave-selected-summary span{white-space:normal;overflow:visible;text-overflow:clip;word-break:break-word}.bottleneck-summary-card small{display:block;color:var(--muted);font-weight:700;margin-top:.25rem}
@media(max-width:760px){.leave-calendar-nav-row{grid-template-columns:1fr;}.visual-leave-picker-compact .leave-calendar-grid{grid-template-columns:1fr}.leave-calendar-nav-row .calendar-arrow{width:100%}}
.action-menu-list{z-index:300}.no-action-menu .inline-form{display:inline-flex;margin:.1rem}.no-action-menu button{width:auto!important}.preset-location-table .actions{overflow:visible}

/* v55: readonly distance when preset route is selected */
input.is-readonly,
input[aria-disabled="true"] {
  background: #f3f4f6;
  color: #4b5563;
  cursor: not-allowed;
}

/* v56: OpenRouteService adresvalidatie voor presettrajecten */
.address-input-row{display:flex;gap:.4rem;align-items:center;min-width:260px}
.address-input-row input{min-width:220px;width:100%}
.address-input-row .smallbtn{white-space:nowrap}
.clb-address-modal{max-width:min(720px,94vw)}
.address-result-list{display:grid;gap:.45rem;margin:.8rem 0;max-height:55vh;overflow:auto}
.address-result-button{display:block;width:100%;text-align:left;border:1px solid var(--border);background:#fff;color:var(--text);border-radius:14px;padding:.75rem .9rem;box-shadow:none;font-weight:750;line-height:1.35}
.address-result-button:hover,.address-result-button:focus{background:#eef6ff;border-color:#bfdbfe;transform:none}
.preset-location-form{display:grid;gap:.85rem}
@media(max-width:760px){.address-input-row{display:grid;grid-template-columns:1fr}.address-input-row .smallbtn{width:100%}}


/* v61: compactere presettrajectentabel */
.preset-location-table{min-width:1120px;table-layout:auto}
.preset-location-table col.preset-title-col{width:260px}
.preset-location-table col.preset-km-col{width:125px}
.preset-location-table col.preset-active-col{width:74px}
.preset-location-table col.preset-actions-col{width:190px}
.preset-location-table .preset-title-cell input{min-width:240px;width:100%}
.preset-location-table td>input[name="van_locatie"],
.preset-location-table td>input[name="naar_locatie"]{min-width:300px;width:100%}
.preset-location-table td>input[name="km"]{min-width:105px;width:100%}

/* v62: teamkleuren, werkroosterhulpen, stabiele overurentabel en compact superadminbeheer */
.team-colored-row>td{background-image:linear-gradient(color-mix(in srgb,var(--team-row-color) 8%,transparent),color-mix(in srgb,var(--team-row-color) 8%,transparent))}
.team-color-dot{display:inline-block;width:.72rem;height:.72rem;border-radius:999px;margin-right:.42rem;vertical-align:middle;border:1px solid rgba(15,23,42,.15)}
.schedule-day-tools{display:flex;gap:.18rem;margin-top:.25rem;flex-wrap:wrap}
.microbtn{min-width:0!important;min-height:22px!important;padding:.08rem .28rem!important;font-size:.68rem!important;line-height:1.1;border-radius:6px}
.overtime-history-table .overtime-actions-cell{min-width:132px;vertical-align:top;white-space:normal}.overtime-actions-cell .inline-form{display:inline-flex;margin:.1rem}.overtime-history-table{table-layout:auto}
.superadmin-billing-scroll{max-width:100%;overflow-x:auto}.superadmin-billing-table{min-width:880px;font-size:.88rem}.superadmin-billing-table .smallbtn{padding:.28rem .45rem;min-height:30px;font-size:.76rem}.superadmin-billing-table input{min-width:78px}
.bottleneck-calendar-form .leave-calendar-grid{grid-template-columns:repeat(2,minmax(250px,1fr))}
@media(max-width:760px){.bottleneck-calendar-form .leave-calendar-grid{grid-template-columns:1fr}}


/* v62.1: exacte verlofuren, stabiel overurenoverzicht en foutopvang */
.overtime-history-table th,.overtime-history-table td{vertical-align:top}
.overtime-history-table .ot-col-date{width:132px}
.overtime-history-table .ot-col-duration{width:92px}
.overtime-history-table .ot-col-type{width:190px}
.overtime-history-table .ot-col-agenda{width:125px}
.overtime-history-table .ot-col-code{width:105px}
.overtime-history-table .ot-col-status{width:125px}
.overtime-history-table .ot-col-actions{width:170px}
.overtime-row-actions{display:flex;align-items:flex-start;gap:.3rem;flex-wrap:wrap;min-width:145px}
.overtime-row-actions .inline-form{display:inline-flex!important;margin:0!important}
.alert.warning{border-color:#fbbf24;background:#fffbeb;color:#854d0e}
.is-disabled-form fieldset[disabled]{opacity:.72}
@media(max-width:760px){.overtime-row-actions{min-width:0}.overtime-history-table .ot-col-actions{width:auto}}


/* v64: compactere overurensamenvatting, versiebadge en knelpuntkalender gelijk aan verlofkalender */
.brand{position:relative;display:inline-flex;align-items:center;gap:.25rem}.brand-version{font-size:.62rem;line-height:1;font-weight:800;color:#64748b;align-self:flex-end;margin:0 0 .42rem -.18rem;letter-spacing:.01em}
.overtime-summary-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin-bottom:.9rem}.overtime-summary-grid .card{padding:.75rem .85rem;border-radius:14px;min-height:0}.overtime-summary-grid .card h3{font-size:.92rem;line-height:1.15;margin-bottom:.35rem}.overtime-summary-grid .card p{font-size:1rem;margin:.15rem 0 .45rem}.overtime-summary-grid .card small{font-size:.76rem;line-height:1.35}.overtime-summary-grid .card.highlight{box-shadow:0 8px 18px rgba(37,99,235,.10)}
.bottleneck-visual-picker .leave-calendar-grid{grid-template-columns:repeat(2,minmax(255px,1fr));margin-top:0}.bottleneck-visual-picker .leave-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;align-items:center}.bottleneck-visual-picker .leave-selected-summary{display:flex;flex-direction:column;gap:.2rem;margin:.65rem 0}.bottleneck-visual-picker .leave-selected-summary strong{color:var(--primary-dark)}.bottleneck-visual-picker .leave-selected-summary span{color:var(--muted);font-size:.9rem;font-weight:600;white-space:normal;word-break:break-word}
@media(max-width:760px){.overtime-summary-grid{grid-template-columns:1fr 1fr}.brand-version{font-size:.58rem}.bottleneck-visual-picker .leave-calendar-grid{grid-template-columns:1fr}}
@media(max-width:480px){.overtime-summary-grid{grid-template-columns:1fr}}

/* v65: knelpuntdagenoverzicht verhuisd naar Stats en zoek-empty-state pas na zoekterm. */
.settings-single-overview{grid-template-columns:minmax(0,1fr)}
#employee-overview-table td{vertical-align:top}

/* v66: extra controle verlofuren per concrete datum, import tewerkstellingen en feedbackcontrole. */

.old-schoolyear-inline{font-size:.92rem;color:var(--muted);margin:.45rem 0 1rem;line-height:1.5}.old-schoolyear-inline .icon{width:1rem;height:1rem;color:var(--primary);vertical-align:-.15rem;margin-right:.25rem}.old-schoolyear-inline a{font-weight:800;color:var(--primary)}

/* v73: actie-menu bij ingevuld verlof laat de tabelrij meegroeien in plaats van verticaal af te knippen */
.leave-history-table .action-menu-list{
  position:static;
  right:auto;
  top:auto;
  min-width:180px;
  width:max-content;
  max-width:100%;
  margin-top:.4rem;
}
.leave-history-table td.actions{vertical-align:top}


/* v77: profielmeldingen verwijderd; gebruikerszoekfilter en verlof-teamacties gecorrigeerd */
.user-list-item[hidden]{display:none!important}
.leave-team-requests-table .action-menu-list{
  position:static;
  right:auto;
  top:auto;
  min-width:180px;
  width:max-content;
  max-width:100%;
  margin-top:.4rem;
}
.leave-team-requests-table td.actions{vertical-align:top}


/* v80: alle actie-menu's in tabellen groeien mee met hun tabelrij.
   Hiermee worden uitgeklapte acties nergens nog door een scroll-/tabelcontainer verticaal afgesneden. */
table .action-menu-list{
  position:static;
  right:auto;
  top:auto;
  min-width:180px;
  width:max-content;
  max-width:100%;
  margin-top:.4rem;
}
table .action-menu-list{white-space:normal}
table td.actions .action-menu, table .table-actions .action-menu{vertical-align:top}

/* v85: compacte videohandleidingen op Ondersteuning */
.support-manual{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.support-manual>div{min-width:0}
.support-manual p{margin-bottom:0}
.support-videos{margin-bottom:1rem}
.video-guide-group{margin-top:1rem}
.video-guide-group:first-of-type{margin-top:.65rem}
.video-guide-group h3{margin:0 0 .65rem;color:var(--text)}
.video-guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:.7rem}
.video-guide-link{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:.75rem;min-height:68px;padding:.55rem .7rem;border:1px solid var(--border);border-radius:14px;background:#fff;color:var(--text);text-decoration:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.video-guide-link:hover,.video-guide-link:focus-visible{transform:translateY(-1px);border-color:var(--primary);box-shadow:0 8px 22px rgba(15,39,71,.08);text-decoration:none}
.video-guide-thumb{display:grid;place-items:center;width:58px;height:46px;border-radius:10px;background:linear-gradient(135deg,#edf4ff,#f7fbff);border:1px solid #d9e7fb;color:var(--primary)}
.video-guide-thumb .icon{width:1.55rem;height:1.55rem}
.video-guide-copy{display:grid;gap:.15rem;min-width:0}
.video-guide-copy strong{line-height:1.2}
.video-guide-copy small{color:var(--muted)}
.video-guide-arrow{font-size:1.5rem;line-height:1;color:var(--muted)}
@media(max-width:760px){.support-manual{align-items:flex-start;flex-direction:column}.video-guide-grid{grid-template-columns:1fr}}

/* v87: supporttickets, flexibele werkroostercycli, verlofdetails en aanwezigheidskleuren */
.support-changelog{padding:.75rem 1rem}.compact-changelog>summary{cursor:pointer;display:flex;align-items:center;gap:.45rem;list-style:none}.compact-changelog>summary::-webkit-details-marker{display:none}.compact-changelog>summary:after{content:'+';margin-left:auto;font-weight:900;color:var(--muted)}.compact-changelog[open]>summary:after{content:'−'}.changelog-list{display:grid;gap:.65rem;margin-top:.8rem;max-height:420px;overflow:auto}.changelog-release{padding:.65rem .75rem;border:1px solid var(--border);border-radius:12px;background:#fff}.changelog-release>strong{margin-right:.5rem}.changelog-release ul{margin:.45rem 0 0 1.15rem;padding:0}.changelog-release li{margin:.2rem 0}
.support-ticket-filters{margin:.4rem 0 1rem}.support-ticket-list{display:grid;gap:.65rem}.support-ticket{border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden}.support-ticket>summary{cursor:pointer;display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;padding:.75rem .85rem;list-style:none}.support-ticket>summary::-webkit-details-marker{display:none}.support-ticket[open]>summary{border-bottom:1px solid var(--border);background:#f8fafc}.ticket-number{font-weight:900;color:var(--primary)}.support-ticket-body{padding:.85rem;display:grid;gap:.8rem}.ticket-meta{display:flex;flex-wrap:wrap;gap:.45rem 1rem;font-size:.9rem}.ticket-question{white-space:normal;padding:.75rem;border-left:4px solid var(--primary);background:#f8fafc;border-radius:8px}.support-ticket-admin-form,.support-time{margin:0}.support-time h4{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.grow{flex:1 1 280px}
.schedule-cycle-grid{display:grid;gap:.85rem}.schedule-cycle-week{margin:0}.schedule-week-table input[type=time]{min-width:7.1rem}.compact-section-head{margin-bottom:.55rem}.schedule-day-tools{display:inline-flex;gap:.25rem;margin-left:.4rem}.microbtn{padding:.12rem .34rem;min-height:0;line-height:1.2;font-size:.8rem}.calculation-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.55rem;margin:.8rem 0}.calculation-detail-grid>div{display:grid;gap:.2rem;padding:.55rem .65rem;border:1px solid var(--border);border-radius:10px;background:#fff}.calculation-detail-grid span{color:var(--muted)}
.presence-code{font-weight:800;text-align:center;border-radius:5px}.presence-code-x{color:#111827}.presence-code-v{color:#991b1b;background:#fee2e2}.presence-code-c{color:#92400e;background:#fef3c7}.presence-code-tw{color:#1e3a8a;background:#dbeafe}.presence-code-z{color:#6b21a8;background:#f3e8ff}.presence-code-v-c,.presence-code-v-c-tw,.presence-code-c-tw{font-weight:900;background:#e0f2fe;color:#0c4a6e}
@media(max-width:760px){.support-ticket>summary{align-items:flex-start}.schedule-week-table{min-width:720px}.calculation-detail-grid{grid-template-columns:1fr}}


/* v89: routeformulieren en modals */
button[hidden],.btn[hidden],input[hidden],.clb-modal [hidden]{display:none!important}
.expense-mission-meta-grid{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(260px,1.35fr) minmax(190px,1fr);gap:.9rem 1rem;align-items:end}
.expense-mission-route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 1rem;align-items:end}
.expense-mission-extra-grid{display:grid;grid-template-columns:minmax(320px,1.05fr) minmax(180px,.55fr) minmax(260px,1fr);gap:.9rem 1rem;align-items:end}
.expense-distance-control{display:grid;grid-template-columns:minmax(120px,180px) minmax(190px,max-content);gap:.55rem;align-items:center}
.expense-distance-control input{max-width:180px}.expense-distance-help{display:block;margin-top:.35rem;line-height:1.35}
.expense-route-help{margin:.35rem 0 .1rem}.expense-mission-table{min-width:980px}.expense-mission-table td{vertical-align:top}.expense-mission-table .route-cell{min-width:260px;max-width:360px}.expense-mission-table .route-cell strong,.expense-mission-table .route-cell span{display:block}.expense-mission-table .route-arrow{color:var(--muted);margin:.15rem 0}.expense-mission-table .desc-cell{min-width:180px;white-space:normal}.expense-mission-table .actions{white-space:nowrap}
@media (max-width:900px){.expense-mission-meta-grid,.expense-mission-extra-grid{grid-template-columns:1fr 1fr}.expense-mission-extra-grid .expense-description-field{grid-column:1/-1}}
@media (max-width:650px){.expense-mission-meta-grid,.expense-mission-route-grid,.expense-mission-extra-grid{grid-template-columns:1fr}.expense-mission-extra-grid .expense-description-field{grid-column:auto}.expense-distance-control{grid-template-columns:1fr}.expense-distance-control input{max-width:none}.expense-distance-control button{justify-self:start}}

/* v91: externe/e-mailtickets */
.support-import-details{border:1px solid var(--border);border-radius:14px;background:#fff;overflow:hidden}.support-import-details>summary{cursor:pointer;padding:.85rem 1rem;list-style:none;display:flex;gap:.55rem;align-items:center;flex-wrap:wrap}.support-import-details>summary::-webkit-details-marker{display:none}.support-import-details>summary::after{content:'+';margin-left:auto;color:var(--primary);font-weight:900}.support-import-details[open]>summary{border-bottom:1px solid var(--border);background:#f8fafc}.support-import-details[open]>summary::after{content:'-'}.support-import-body{padding:1rem}.support-external-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.support-external-grid .grow{grid-column:span 2}@media(max-width:760px){.support-external-grid .grow{grid-column:span 1}}


/* v94: superadmin kan de duur van een bestaande overurenregistratie compact corrigeren */
.overtime-duration-editor{display:inline-block;margin:0}.overtime-duration-editor>summary{cursor:pointer;list-style:none;white-space:nowrap}.overtime-duration-editor>summary::-webkit-details-marker{display:none}.overtime-duration-form{display:grid!important;grid-template-columns:78px auto;gap:.3rem;align-items:center;margin-top:.35rem!important;padding:.45rem;border:1px solid var(--border);border-radius:10px;background:#fff;min-width:205px}.overtime-duration-form input[name=duur]{min-width:0;width:78px;padding:.35rem .45rem}.overtime-duration-form small{grid-column:1/-1;white-space:normal}.overtime-history-table .ot-col-actions{width:210px}

/* v95: bewijsstukken en parkeerkosten bij reisonkosten */
.expense-mission-table{min-width:1320px}
.expense-mission-table tr.has-warning>td{background:#fffaf0}
.validation-warning{color:#9a3412;font-weight:800;white-space:normal}
.expense-proof-cell{min-width:245px;white-space:normal}
.expense-proof-cell>a{display:inline-block;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.expense-proof-edit{margin-top:.45rem;border-top:1px solid var(--border);padding-top:.4rem}
.expense-proof-edit>summary{cursor:pointer;color:var(--primary);font-weight:800;font-size:.82rem}
.expense-proof-edit .compact-form{display:grid;gap:.45rem;margin-top:.55rem;min-width:230px}
.expense-proof-edit label{font-size:.78rem;font-weight:800}
.expense-proof-edit input{margin-top:.2rem;min-width:0;width:100%}
.expense-submit-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:650px){.expense-submit-summary{grid-template-columns:1fr}}
.status-badge.status-ingediend{background:var(--success-soft);color:var(--success);border-color:#bbf7d0}
.status-badge.status-geannuleerd{background:var(--danger-soft);color:var(--danger);border-color:#fecaca}


/* v126: beheerdersgedeelten herkenbaar, werkrooster-uitleg en footerbranding */
.admin-only-section,.admin-only-page-shell{position:relative;border:1px solid var(--admin-border);background:linear-gradient(145deg,rgba(237,245,255,.96),rgba(229,240,255,.88));box-shadow:0 8px 24px rgba(37,99,235,.07)}
.admin-only-section{padding-top:2.6rem}
.admin-only-section.card{background:linear-gradient(145deg,rgba(237,245,255,.96),rgba(229,240,255,.88))}
.admin-only-page-shell{border-radius:var(--radius);padding:3rem 1rem 1rem;margin-bottom:1rem}
.admin-only-section::before,.admin-only-page-shell::before{content:'Enkel voor beheerders';position:absolute;top:.65rem;right:.8rem;z-index:2;padding:.18rem .48rem;border-radius:999px;background:rgba(255,255,255,.82);border:1px solid rgba(37,99,235,.22);color:#315b8e;font-size:.72rem;font-weight:800;letter-spacing:.02em;line-height:1.35}
.admin-only-subsection{border-radius:16px;padding:2.5rem .9rem .9rem;margin-top:1rem}
.dashboard-admin-section{border-radius:var(--radius);padding:3rem 1rem 1rem;margin-top:1rem}
.dashboard-admin-section .admin-module-card{background:rgba(255,255,255,.78);border-color:rgba(37,99,235,.18)}
.admin-dashboard .card{background:rgba(255,255,255,.78)}
.work-schedule-deviation-copy{display:inline-flex;flex-direction:column;gap:.12rem;min-width:0}
.work-schedule-deviation-copy strong,.work-schedule-deviation-copy small{display:block;line-height:1.35}
.footer-made-by .footer-logo{border-radius:0}
@media (max-width:560px){.admin-only-section{padding-top:2.8rem}.admin-only-page-shell{padding-top:3.1rem}.admin-only-section::before,.admin-only-page-shell::before{top:.55rem;right:.6rem}.footer-made-by{width:100%;justify-content:center}.footer-logo-crop{width:48px;height:35px}.footer-logo{width:48px;height:48px}.footer-brand-name{font-size:.84rem}}
@media print{.admin-only-section::before,.admin-only-page-shell::before{display:none}.admin-only-section,.admin-only-page-shell{background:#fff;border-color:#ddd;box-shadow:none;padding-top:1rem}}

/* v128: aanwezigheidsoverzicht met multiteamselectie + consistente HD-legenda */
.presence-period-summary{margin:.25rem 0 .65rem;color:var(--text-soft);font-size:.9rem}
.presence-table-wrap{width:100%;overflow-x:auto}
.presence-report-table{width:max-content;min-width:100%;table-layout:auto;margin:.6rem 0;border-radius:10px}
.presence-report-table th,.presence-report-table td{padding:.34rem .38rem;text-align:center;vertical-align:middle;white-space:nowrap;font-size:.78rem}
.presence-report-table .presence-name,.presence-report-table .presence-team{text-align:left;position:sticky;z-index:1}
.presence-report-table .presence-name{left:0;min-width:150px;font-weight:800}
.presence-report-table .presence-team{left:150px;min-width:110px}
.presence-date-head{min-width:43px;line-height:1.05}
.presence-date-head span,.presence-date-head small{display:block}.presence-date-head small{margin-top:.15rem;color:var(--muted);font-size:.66rem;text-transform:uppercase}
.presence-code-vm,.presence-code-nm{color:#075985;background:#e0f2fe}
.presence-code-w{color:#854d0e;background:#fef9c3}
.presence-code-hd{color:#5b21b6;background:#ede9fe}
.presence-code-neutral{color:#94a3b8;background:#f8fafc}
.presence-code-legend{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .9rem;margin-top:.7rem;font-size:.8rem}
.presence-code-legend>span{display:inline-flex;align-items:center;gap:.28rem}.presence-code-legend .presence-code{display:inline-grid;place-items:center;min-width:2rem;padding:.13rem .28rem}
.presence-legend-note{max-width:1050px;margin-top:.55rem}
.presence-role-legend{display:inline-flex;align-items:center;gap:.28rem;margin-right:.5rem}.role-color-sample{display:inline-block;width:.75rem;height:.75rem;border:1px solid rgba(15,23,42,.18);border-radius:3px}

@media print{
  .presence-report-page{page:presence-landscape;background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .presence-report-page .container{width:100%;max-width:none;margin:0;padding:0}
  .presence-report-page h1{font-size:16pt;margin:0 0 2mm}
  .presence-report-page>main>p{margin:1.5mm 0;font-size:8.5pt}
  .presence-report-page .presence-legend,.presence-report-page .presence-period-summary{font-size:7.5pt;margin:1.5mm 0}
  .presence-report-page .presence-table-wrap{overflow:visible}
  .presence-report-page .presence-report-table{width:100%;min-width:0;margin:2mm 0;border-collapse:collapse;border-radius:0;box-shadow:none;page-break-inside:auto}
  .presence-report-page .presence-report-table th,.presence-report-page .presence-report-table td{padding:1.15mm 1.2mm;font-size:6.8pt;line-height:1.05;border:1px solid #cbd5e1;position:static!important;min-width:0!important}
  .presence-report-page .presence-report-table .presence-name{width:31mm;max-width:31mm;white-space:normal;text-align:left}
  .presence-report-page .presence-report-table .presence-team{width:24mm;max-width:24mm;white-space:normal;text-align:left}
  .presence-report-page .presence-date-head{width:auto}.presence-report-page .presence-date-head small{font-size:5.8pt}
  .presence-report-page .presence-report-table tr{page-break-inside:avoid}
  .presence-report-page .presence-code-legend{font-size:6.7pt;gap:1.2mm 3mm;margin-top:2mm}
  .presence-report-page .presence-code-legend .presence-code{min-width:5mm;padding:.3mm .7mm}
  .presence-report-page .presence-legend-note{font-size:6.7pt;margin-top:1.5mm}
}
@page presence-landscape{size:A4 landscape;margin:8mm}

/* v132: ticketfocus na opslaan */
.support-ticket{scroll-margin-top:165px}
.support-ticket-focused{border-color:#91b6ef;box-shadow:0 0 0 3px rgba(37,99,235,.10)}
@media(max-width:860px){.support-ticket{scroll-margin-top:20px}}

/* v133: impersonatie rechtstreeks bij de gebruikerskeuze in de contextbalk */
.context-impersonation-toggle{display:inline-flex!important;align-items:center;gap:.42rem;margin:0;padding:.42rem .7rem;border:1px solid #cfe0ff;border-radius:999px;background:#fff;color:#173b70!important;font-size:.82rem!important;font-weight:850!important;text-transform:none!important;letter-spacing:0!important;white-space:nowrap;cursor:pointer}
.context-impersonation-toggle input{width:auto;margin:0;accent-color:#1f5fbf}
.context-impersonation-toggle:has(input:checked){background:#eaf2ff;border-color:#8fb7ef}
@media(max-width:560px){.context-impersonation-toggle{grid-column:1/-1;width:max-content}}
