:root {
    --daco-bg: #0c1222;
    --daco-surface: #151d30;
    --daco-surface-2: #1c2740;
    --daco-border: #2a3654;
    --daco-text: #e8eef7;
    --daco-muted: #8b9cb8;
    --daco-accent: #3b82f6;
    --daco-accent-hover: #2563eb;
    --daco-ok: #22c55e;
    --daco-warn: #f59e0b;
    --daco-err: #ef4444;
    --daco-radius: 12px;
    --daco-font: 'DM Sans', system-ui, sans-serif;
    --daco-mono: 'JetBrains Mono', monospace;
}
[data-theme="light"] {
    --daco-bg: #f1f5f9;
    --daco-surface: #fff;
    --daco-surface-2: #f8fafc;
    --daco-border: #cbd5e1;
    --daco-text: #0f172a;
    --daco-muted: #64748b;
}
*,*::before,*::after{box-sizing:border-box}
.body--daco{margin:0;font-family:var(--daco-font);background:var(--daco-bg);color:var(--daco-text);line-height:1.5}
.main--daco{max-width:1400px;margin:0 auto;padding:.75rem 1rem 2rem}
.site-header--daco{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;background:rgba(12,18,34,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--daco-border)}
[data-theme=light] .site-header--daco{background:rgba(255,255,255,.92)}
.site-brand{display:flex;align-items:center;gap:.5rem;font-weight:700;color:var(--daco-text);text-decoration:none}
.site-brand__icon{color:var(--daco-accent)}
.site-nav{display:none;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--daco-surface);border-bottom:1px solid var(--daco-border);padding:.5rem;gap:.15rem}
.site-nav.is-open{display:flex}
.site-nav a{padding:.65rem .85rem;border-radius:8px;color:var(--daco-muted);text-decoration:none;font-size:.9rem;font-weight:500}
.site-nav a.is-active,.site-nav a:hover{background:var(--daco-surface-2);color:var(--daco-text)}
.site-nav .nav-cta{background:var(--daco-accent);color:#fff!important;text-align:center}
.nav-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:none;padding:.5rem;cursor:pointer}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--daco-text)}
@media(min-width:768px){.nav-toggle{display:none}.site-nav{display:flex;flex-direction:row;position:static;background:none;border:none;padding:0;align-items:center}}
.btn,.daco-btn{display:inline-flex;align-items:center;padding:.5rem 1rem;border-radius:8px;font:inherit;font-size:.875rem;font-weight:600;cursor:pointer;border:none;text-decoration:none}
.btn--primary,.daco-btn:not(.daco-btn--ghost){background:var(--daco-accent);color:#fff}
.btn--ghost,.daco-btn--ghost{background:transparent;border:1px solid var(--daco-border);color:var(--daco-text)}
.btn-sm{padding:.35rem .65rem;font-size:.8rem}
.daco-btn{padding:.2rem .45rem;font-size:.68rem;background:#111;color:#fff}
.daco-topbar{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem;padding:1.25rem;background:linear-gradient(145deg,var(--daco-surface),var(--daco-surface-2));border:1px solid var(--daco-border);border-radius:var(--daco-radius)}
.daco-topbar h1{margin:0;font-size:clamp(1.1rem,3vw,1.35rem)}
.daco-topbar__eyebrow{margin:0 0 .2rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--daco-accent);font-weight:600}
.daco-topbar__meta{margin:.35rem 0 0;font-size:.85rem;color:var(--daco-muted)}
.daco-topbar__tools{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.daco-search{flex:1;min-width:180px}
.daco-search input,.daco-select{width:100%;padding:.55rem .75rem;border:1px solid var(--daco-border);border-radius:8px;background:var(--daco-bg);color:var(--daco-text);font:inherit;font-size:.875rem}
.daco-icon-btn{width:40px;height:40px;border-radius:8px;border:1px solid var(--daco-border);background:var(--daco-bg);color:var(--daco-text);cursor:pointer}
@media(min-width:768px){.daco-topbar{flex-direction:row;justify-content:space-between;align-items:flex-start}}
.daco-tabs{display:flex;gap:.35rem;overflow-x:auto;padding-bottom:.5rem;margin-bottom:1rem;-webkit-overflow-scrolling:touch}
.daco-tab{flex-shrink:0;padding:.5rem .85rem;border-radius:999px;font-size:.82rem;font-weight:600;text-decoration:none;color:var(--daco-muted);background:var(--daco-surface);border:1px solid var(--daco-border);display:inline-flex;align-items:center;gap:.35rem}
.daco-tab.is-active{background:var(--daco-accent);border-color:var(--daco-accent);color:#fff}
.daco-tab__badge--err{background:var(--daco-err);color:#fff;font-size:.65rem;padding:.1rem .4rem;border-radius:999px}
.daco-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:1rem}
@media(min-width:640px){.daco-kpis{grid-template-columns:repeat(5,1fr)}}
.daco-kpi{padding:.85rem;background:var(--daco-surface);border:1px solid var(--daco-border);border-radius:10px;text-align:center}
.daco-kpi__val{display:block;font-size:1.5rem;font-weight:700}
.daco-kpi__label{font-size:.7rem;color:var(--daco-muted);text-transform:uppercase}
.daco-kpi--ok .daco-kpi__val{color:var(--daco-ok)}
.daco-kpi--warn .daco-kpi__val{color:var(--daco-warn)}
.daco-kpi--err .daco-kpi__val{color:var(--daco-err)}
.daco-rules{margin-bottom:1rem;padding:.85rem 1rem;background:var(--daco-surface);border:1px solid var(--daco-border);border-radius:var(--daco-radius)}
.daco-rules summary{cursor:pointer;font-weight:600}
.daco-rules__list{margin:0;padding-left:1.2rem;font-size:.85rem;color:var(--daco-muted)}
.daco-legend{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.75rem}
.daco-legend__item{padding:.25rem .5rem;border-radius:6px;font-size:.72rem;font-weight:600;font-family:var(--daco-mono)}
.duty--usm,.daco-legend__item.duty--usm{background:#1e3a5f;color:#93c5fd}
.duty--daco{background:#111;color:#fff}
.duty--amazone{background:#422006;color:#fcd34d}
.duty--off{background:#450a0a;color:#fca5a5}
.duty--other{background:#1e293b;color:#cbd5e1}
.daco-mobile-cards{display:flex;flex-direction:column;gap:.65rem}
.daco-staff-card{padding:1rem;background:var(--daco-surface);border:1px solid var(--daco-border);border-radius:var(--daco-radius)}
.daco-staff-card header{display:flex;justify-content:space-between;margin-bottom:.65rem}
.daco-staff-card__shifts{display:flex;flex-wrap:wrap;gap:.35rem}
.daco-shift-chip{padding:.35rem .5rem;border-radius:8px;font-size:.75rem;border:1px solid var(--daco-border)}
.daco-shift-chip small{display:block;font-size:.65rem;color:var(--daco-muted)}
@media(min-width:900px){.daco-mobile-cards{display:none}}
.daco-grid-wrap--desktop{display:none}
@media(min-width:900px){.daco-grid-wrap--desktop{display:block;overflow:auto;max-height:calc(100vh - 320px);border:1px solid var(--daco-border);border-radius:var(--daco-radius);background:var(--daco-surface)}}
.daco-grid{border-collapse:separate;border-spacing:0;font-size:.75rem;min-width:max-content;width:100%}
.daco-grid th,.daco-grid td{border:1px solid var(--daco-border);padding:.35rem .45rem;white-space:nowrap;vertical-align:middle}
.daco-grid__sticky{position:sticky;z-index:2;background:var(--daco-surface-2)}
.daco-grid__sticky--0{left:0;min-width:2.4rem}
.daco-grid__sticky--1{left:2.4rem;min-width:9rem;max-width:11rem}
.daco-grid__sticky--2{left:11.4rem;min-width:2rem}
.daco-grid__sticky--3{left:13.4rem;min-width:2.5rem}
.daco-grid__sticky--4{left:15.9rem;min-width:3.5rem}
.daco-grid__sticky--5{left:19.4rem;min-width:5rem}
.daco-grid__sticky--6{left:24.4rem;min-width:3rem}
.daco-grid__name{font-weight:500;font-size:.72rem;color:var(--daco-text)}
.daco-staff-card__name{display:block;font-size:.78rem;color:var(--daco-muted);font-weight:400}
.daco-staff-card__period{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 .75rem;font-size:.72rem;color:var(--daco-muted)}
.daco-staff-card__period span{padding:.15rem .4rem;background:var(--daco-surface-2);border-radius:6px}
.daco-staff-card__empty{font-size:.78rem}
.daco-staff-card.is-me{border-color:var(--daco-accent);box-shadow:0 0 0 1px rgba(59,130,246,.35)}
.duty--empty{background:transparent;border-style:dashed;color:var(--daco-muted)}

.my-schedule__period-line{margin:.4rem 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.my-todo{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1.25rem;padding:1rem 1.15rem;border-radius:var(--daco-radius);border:1px solid var(--daco-border);background:var(--daco-surface)}
.my-todo__body{flex:1;min-width:200px}
.my-todo__body strong{display:block;font-size:1rem;margin-bottom:.25rem}
.my-todo__body p{margin:0;font-size:.875rem;color:var(--daco-muted);line-height:1.45}
.my-todo__meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.55rem;font-size:.75rem;color:var(--daco-muted)}
.my-todo__meta span{padding:.15rem .45rem;background:var(--daco-bg);border-radius:6px}
.my-todo--ok{border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.08)}
.my-todo--warn{border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.1)}
.my-todo--muted{opacity:.9}
.my-schedule__kpis{margin-bottom:1.25rem}
.my-schedule__layout{display:grid;gap:1.25rem}
@media(min-width:960px){.my-schedule__layout{grid-template-columns:minmax(0,1.6fr) minmax(240px,.9fr);align-items:start}}
.my-schedule__heading{margin:0 0 .85rem;font-size:1.05rem}
.my-schedule__legend{margin-top:1rem}
.my-schedule__side-block{padding:1rem;background:var(--daco-surface);border:1px solid var(--daco-border);border-radius:var(--daco-radius)}
.my-schedule__side-block h2{margin:0 0 .75rem;font-size:1rem;display:flex;align-items:center;gap:.4rem}
.my-agenda{display:flex;flex-direction:column;gap:1.15rem}
.my-agenda__week{padding:1rem;background:linear-gradient(160deg,var(--daco-surface),var(--daco-surface-2));border:1px solid var(--daco-border);border-radius:var(--daco-radius)}
.my-agenda__week-title{margin:0 0 .75rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--daco-accent);font-weight:600}
.my-agenda__days{display:grid;gap:.55rem;grid-template-columns:1fr}
@media(min-width:640px){.my-agenda__days{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.my-agenda__days{grid-template-columns:repeat(3,1fr)}}
.my-agenda__day{padding:.7rem .8rem;background:var(--daco-bg);border:1px solid var(--daco-border);border-radius:10px}
.my-agenda__day.is-today{border-color:var(--daco-accent);box-shadow:0 0 0 1px rgba(59,130,246,.3)}
.my-agenda__day.is-past{opacity:.72}
.my-agenda__day-head{display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin-bottom:.5rem}
.my-agenda__day-head strong{font-size:.9rem}
.my-agenda__slots{display:flex;flex-direction:column;gap:.35rem}
.my-agenda__slot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .55rem;border-radius:8px;font-size:.8rem;border:1px solid transparent}
.my-agenda__shift{color:var(--daco-muted);font-size:.72rem;text-transform:capitalize}
.my-agenda__duty{font-family:var(--daco-mono);font-weight:600;font-size:.78rem}
.my-agenda__duty--open{font-family:var(--daco-font);font-weight:500;font-style:italic}
.my-agenda__empty{padding:1.25rem;text-align:center;background:var(--daco-surface);border:1px dashed var(--daco-border);border-radius:var(--daco-radius)}
.my-agenda__empty p{margin:0 0 .85rem;color:var(--daco-muted)}
.daco-link-btn{background:none;border:none;color:var(--daco-accent);font:inherit;font-size:.78rem;cursor:pointer;padding:0;text-decoration:underline}
.daco-month-nav{margin-bottom:1rem;padding:.85rem 1rem;background:var(--daco-surface);border:1px solid var(--daco-border);border-radius:var(--daco-radius)}
.daco-month-nav--compact{padding:.5rem .75rem}
.daco-month-nav__year{display:flex;align-items:center;gap:.65rem;margin-bottom:.65rem;font-weight:700;font-size:.95rem}
.daco-month-nav__year-link{font-size:.8rem;font-weight:600;color:var(--daco-accent);text-decoration:none}
.daco-month-nav__months{display:grid;grid-template-columns:repeat(6,1fr);gap:.35rem}
@media(min-width:640px){.daco-month-nav__months{grid-template-columns:repeat(12,1fr)}}
.daco-month-nav__item{display:flex;align-items:center;justify-content:center;gap:.15rem;padding:.45rem .25rem;border-radius:8px;font-size:.78rem;font-weight:600;text-decoration:none;text-transform:uppercase;color:var(--daco-muted);background:var(--daco-surface-2);border:1px solid var(--daco-border)}
.daco-month-nav__item.is-active{background:var(--daco-accent);border-color:var(--daco-accent);color:#fff}
.daco-month-nav__item.is-locked:not(.is-active){border-color:var(--daco-ok)}
.daco-month-nav__item.is-draft:not(.is-active){border-style:dashed}
.daco-month-nav__item.is-disabled{opacity:.35;cursor:not-allowed}
.daco-month-nav__lock{font-size:.65rem}
.daco-lock-banner{margin-bottom:1rem;padding:.85rem 1rem;border-radius:10px;background:rgba(34,197,94,.12);border:1px solid var(--daco-ok);font-size:.875rem}
.daco-lock-banner--admin{background:rgba(245,158,11,.12);border-color:var(--daco-warn)}
.daco-cell-readonly{display:block;padding:.25rem;font-family:var(--daco-mono);font-size:.72rem;min-height:1.4rem}
.badge--published{background:rgba(59,130,246,.2);color:var(--daco-accent)}
.badge--approved{background:rgba(34,197,94,.2);color:var(--daco-ok)}
.admin-periods-intro{margin-bottom:1rem}
.admin-year-block{margin-bottom:2rem;padding:1rem;background:var(--daco-surface);border:1px solid var(--daco-border);border-radius:var(--daco-radius)}
.admin-year-block__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}
.admin-year-block__head h2{margin:0}
.admin-month-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.65rem}
.admin-month-card{padding:.85rem;background:var(--daco-surface-2);border:1px solid var(--daco-border);border-radius:10px}
.admin-month-card--approved{border-left:3px solid var(--daco-ok)}
.admin-month-card--published{border-left:3px solid var(--daco-accent)}
.admin-month-card--draft{border-left:3px solid var(--daco-warn)}
.admin-month-card--empty{opacity:.55}
.admin-month-card h3{margin:0 0 .35rem;font-size:.95rem;text-transform:uppercase}
.admin-month-card__label{margin:0 0 .5rem;font-size:.75rem;color:var(--daco-muted)}
.admin-month-card__actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.65rem}
.admin-period-status{margin-bottom:1rem;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.admin-inline-form{margin:0}
.daco-grid thead th{background:var(--daco-surface-2);font-weight:600;text-align:center}
.daco-grid__day{border-bottom:2px solid var(--daco-accent)}
.daco-grid__week{display:block;font-size:.65rem;color:var(--daco-muted)}
.daco-grid__shift--error{box-shadow:inset 0 -3px 0 var(--daco-err)}
.daco-grid__shift--warn{box-shadow:inset 0 -3px 0 var(--daco-warn)}
.mono{font-family:var(--daco-mono);font-size:.85em}
.is-filtered-out{display:none!important}
.daco-val-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.65rem}
.daco-val-card{padding:.85rem;background:var(--daco-surface);border:1px solid var(--daco-border);border-radius:10px;border-left:4px solid var(--daco-ok)}
.daco-val-card--warn{border-left-color:var(--daco-warn)}
.daco-val-card--error{border-left-color:var(--daco-err)}
.daco-week-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem}
.daco-week-day{padding:.75rem;background:var(--daco-surface);border:1px solid var(--daco-border);border-radius:10px}
.daco-alerts{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}
.daco-alert{padding:.85rem;background:rgba(59,130,246,.12);border:1px solid var(--daco-accent);border-radius:10px;font-size:.875rem}
.daco-modal[hidden]{display:none}
.daco-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-end;justify-content:center}
@media(min-width:640px){.daco-modal{align-items:center}}
.daco-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.6)}
.daco-modal__box{position:relative;width:100%;max-width:440px;padding:1.25rem;background:var(--daco-surface);border-radius:var(--daco-radius) var(--daco-radius) 0 0;border:1px solid var(--daco-border)}
@media(min-width:640px){.daco-modal__box{border-radius:var(--daco-radius);margin:1rem}}
.daco-modal__actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}
.daco-panel{padding:1rem;background:var(--daco-surface);border:1px solid var(--daco-border);border-radius:var(--daco-radius);margin-bottom:1rem}
.badge{display:inline-block;padding:.15rem .45rem;border-radius:999px;font-size:.68rem;font-weight:600;text-transform:uppercase}
.badge--draft{background:var(--daco-warn);color:#000}
.badge--today{background:var(--daco-accent);color:#fff;margin-left:.25rem}
.daco-grid__day.is-today{background:rgba(59,130,246,.22)!important;box-shadow:inset 0 -3px 0 var(--daco-accent)}
.daco-grid__shift.is-today,.daco-grid__cell.is-today{background:rgba(59,130,246,.14)!important}
.daco-grid__cell.is-today{box-shadow:inset 0 0 0 1px rgba(59,130,246,.45)}
.daco-val-card.is-today{box-shadow:0 0 0 2px var(--daco-accent);border-left-color:var(--daco-accent)!important}
.daco-week-day.is-today{border-color:var(--daco-accent)!important;box-shadow:0 0 0 1px rgba(59,130,246,.35)}
.daco-shift-chip.is-today{outline:2px solid var(--daco-accent);outline-offset:1px}
.daco-month-nav__item.is-today-month:not(.is-active){border-color:var(--daco-accent);color:var(--daco-accent)}
.alert{padding:.75rem 1rem;margin:.5rem 1rem;border-radius:8px;font-size:.875rem}
.alert-success{background:rgba(34,197,94,.15);border:1px solid var(--daco-ok)}
.alert-error{background:rgba(239,68,68,.15);border:1px solid var(--daco-err)}
.alert-warning{background:rgba(245,158,11,.15);border:1px solid var(--daco-warn)}
.site-footer--daco{padding:1rem;border-top:1px solid var(--daco-border);font-size:.8rem;color:var(--daco-muted)}
.site-footer__inner{max-width:1400px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem}
.site-footer--daco nav{display:flex;gap:1rem}
.site-footer--daco a{color:var(--daco-muted);text-decoration:none}
.auth-card{max-width:400px;margin:2rem auto;padding:1.5rem;background:var(--daco-surface);border:1px solid var(--daco-border);border-radius:var(--daco-radius)}
.auth-card label{display:block;margin-bottom:.75rem;font-size:.875rem}
.auth-card input{width:100%;padding:.55rem;margin-top:.25rem;border-radius:8px;border:1px solid var(--daco-border);background:var(--daco-bg);color:var(--daco-text)}
.auth-card .btn{margin-top:.5rem;width:100%}
.auth-hint{margin-top:1.25rem;font-size:.78rem;color:var(--daco-muted);line-height:1.5}
.auth-hint code{font-family:var(--daco-mono);font-size:.75rem;background:var(--daco-surface-2);padding:.1rem .35rem;border-radius:4px}
.auth-intro{margin:0 0 1rem;color:var(--daco-muted);font-size:.875rem}
.auth-reset{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--daco-border);font-size:.85rem}
.auth-reset summary{cursor:pointer;color:var(--daco-muted)}
.my-rooster-panel .daco-dashboard__head{align-items:flex-start;gap:1rem}
.my-rooster-list{display:flex;flex-direction:column;gap:.5rem}
.my-rooster-row{display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;background:var(--daco-surface);border:1px solid var(--daco-border);border-radius:10px}
.my-rooster-row.is-today{border-color:var(--daco-accent);box-shadow:0 0 0 1px rgba(56,189,248,.25)}
.my-rooster-row__meta{flex:0 0 140px;display:flex;flex-direction:column;gap:.15rem;font-size:.82rem}
.my-rooster-row__meta strong{font-size:.9rem}
.my-rooster-row__form{flex:1;min-width:0}
.my-rooster-input{font-size:.95rem!important;padding:.45rem .6rem!important}
.my-rooster-readonly{font-family:var(--daco-mono);font-size:.9rem;font-weight:600}
.my-rooster-list--readonly .my-rooster-row{opacity:.95}
.my-rooster-section-title{margin:1.25rem 0 .65rem;font-size:.95rem;font-weight:600}
.my-rooster-past{margin-bottom:1rem;padding:.75rem .85rem;background:var(--daco-surface-2);border:1px solid var(--daco-border);border-radius:10px}
.my-rooster-past summary{cursor:pointer;font-size:.875rem;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:.5rem;list-style:none}
.my-rooster-past summary::-webkit-details-marker{display:none}
.my-rooster-past__count{font-size:.75rem;font-weight:500;color:var(--daco-muted)}
.my-rooster-past__list{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.65rem}
.my-rooster-past__chip{font-size:.72rem;padding:.2rem .45rem;background:var(--daco-surface);border:1px solid var(--daco-border);border-radius:6px;color:var(--daco-muted)}
.my-rooster-past__chip strong{color:var(--daco-text);font-family:var(--daco-mono)}

/* Invullen — dagkaarten + chips */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.my-fill__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}
.my-fill__head h1{margin:.1rem 0 .35rem}
.my-fill__who{margin:0;font-size:.9rem}
.my-fill__who .mono{color:var(--daco-muted)}
.my-fill__period{margin:.35rem 0 0;font-size:.82rem;color:var(--daco-muted)}
.my-fill__progress{margin:0 0 1rem;padding:.9rem 1rem;border-radius:12px;border:1px solid var(--daco-border);background:linear-gradient(180deg,var(--daco-surface-2),var(--daco-surface))}
.my-fill__progress-top{display:flex;align-items:baseline;gap:.45rem;flex-wrap:wrap;margin-bottom:.55rem;font-size:.85rem}
.my-fill__progress-top strong{font-size:1.05rem;font-variant-numeric:tabular-nums}
.my-fill__progress-pct{margin-left:auto;font-family:var(--daco-mono);color:var(--daco-accent);font-weight:600}
.my-fill__progress-bar{height:6px;border-radius:999px;background:var(--daco-bg);overflow:hidden}
.my-fill__progress-bar span{display:block;height:100%;background:var(--daco-accent);border-radius:inherit;transition:width .25s ease}
.my-fill__hint{margin:.55rem 0 0;font-size:.78rem;color:var(--daco-muted)}
.my-fill__days{display:flex;flex-direction:column;gap:.85rem}
.my-fill-day{padding:1rem;border:1px solid var(--daco-border);border-radius:14px;background:var(--daco-surface-2)}
.my-fill-day.is-today{border-color:var(--daco-accent);box-shadow:0 0 0 1px rgba(59,130,246,.28)}
.my-fill-day__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.85rem}
.my-fill-day__head h2{margin:0;font-size:1.05rem}
.my-fill-day__week{display:block;font-size:.75rem;color:var(--daco-muted);margin-top:.15rem}
.my-fill-day__shifts{display:grid;grid-template-columns:1fr;gap:.65rem}
@media(min-width:640px){.my-fill-day__shifts{grid-template-columns:1fr 1fr}}
.my-fill-slot{padding:.75rem;border-radius:12px;border:1px solid var(--daco-border);background:var(--daco-surface);transition:border-color .15s,box-shadow .15s,opacity .15s}
.my-fill-slot.is-empty{border-style:dashed}
.my-fill-slot.is-saving{opacity:.72}
.my-fill-slot.is-saved{border-color:var(--daco-ok);box-shadow:0 0 0 1px rgba(34,197,94,.25)}
.my-fill-slot.is-today-slot{outline:1px solid rgba(59,130,246,.35)}
.my-fill-slot__label{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.45rem;font-size:.8rem;font-weight:600;color:var(--daco-muted);text-transform:uppercase;letter-spacing:.04em}
.my-fill-slot__status{font-size:.85rem;color:var(--daco-ok);min-height:1em}
.my-fill-slot__current{display:inline-flex;align-items:center;min-height:2rem;padding:.3rem .65rem;border-radius:8px;font-family:var(--daco-mono);font-size:.92rem;font-weight:600;margin-bottom:.55rem}
.my-fill-slot__current.duty--empty{background:transparent;border:1px dashed var(--daco-border);color:var(--daco-muted);font-weight:500;font-style:italic;font-family:var(--daco-font)}
.my-fill-slot__chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem}
.my-fill-chip{appearance:none;border:1px solid var(--daco-border);background:var(--daco-bg);color:var(--daco-text);border-radius:999px;padding:.28rem .55rem;font-size:.72rem;font-weight:600;font-family:var(--daco-mono);cursor:pointer;line-height:1.2;transition:transform .1s,border-color .15s,box-shadow .15s}
.my-fill-chip:hover{border-color:var(--daco-accent)}
.my-fill-chip:active{transform:scale(.97)}
.my-fill-chip.is-active{border-color:var(--daco-accent);box-shadow:0 0 0 1px var(--daco-accent)}
.my-fill-slot__more{display:block}
.my-fill-select{width:100%;padding:.45rem .55rem;border-radius:8px;border:1px solid var(--daco-border);background:var(--daco-bg);color:var(--daco-text);font-size:.82rem}
.my-fill-toast{position:fixed;left:50%;bottom:1.25rem;transform:translateX(-50%);z-index:80;padding:.65rem 1rem;border-radius:999px;background:var(--daco-surface);border:1px solid var(--daco-border);box-shadow:0 8px 28px rgba(0,0,0,.35);font-size:.85rem;font-weight:600;max-width:min(90vw,360px);text-align:center}
.my-fill-toast.is-error{border-color:var(--daco-err);color:var(--daco-err)}
@media(max-width:560px){
    .my-fill__head{flex-direction:column}
    .my-fill-chip{padding:.4rem .6rem;font-size:.75rem}
}
.daco-month-nav__item.is-past{opacity:.55}
.daco-month-nav__item.is-current-month:not(.is-active){outline:1px solid var(--daco-accent);outline-offset:1px}
.daco-planning-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:0 0 1rem}
.daco-planning-tabs__item{display:flex;flex-direction:column;gap:.2rem;padding:.75rem .85rem;border-radius:10px;border:1px solid var(--daco-border);background:var(--daco-surface-2);text-decoration:none;color:inherit;transition:border-color .15s,background .15s}
.daco-planning-tabs__item.is-active{border-color:var(--daco-accent);background:rgba(56,189,248,.08)}
.daco-planning-tabs__title{font-weight:600;font-size:.9rem}
.daco-planning-tabs__desc{font-size:.75rem;color:var(--daco-muted);line-height:1.35}
.auth-demo-accounts{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--daco-border)}
.auth-demo-accounts h3{margin:0 0 .65rem;font-size:.9rem}
.auth-demo-table{width:100%;border-collapse:collapse;font-size:.78rem}
.auth-demo-table th,.auth-demo-table td{padding:.4rem .35rem;text-align:left;border-bottom:1px solid var(--daco-border);vertical-align:top}
.auth-demo-table__hint{display:block;font-size:.72rem;color:var(--daco-muted);font-weight:400;margin-top:.15rem}
.auth-demo-table code{font-family:var(--daco-mono);font-size:.72rem}
.daco-dashboard__actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.daco-month-nav__item.is-locked{opacity:.65}
.daco-cell-input{width:100%;min-width:48px;padding:.25rem;border:1px solid transparent;border-radius:4px;background:transparent;color:inherit;font-family:var(--daco-mono);font-size:.72rem}
.daco-cell-input:focus{border-color:var(--daco-accent);background:var(--daco-bg);outline:none}
.daco-grid-wrap--edit{overflow:auto;max-height:70vh}
.muted{color:var(--daco-muted)}
.daco-status{margin-bottom:1rem;padding:.85rem 1rem;border-radius:10px;font-size:.9rem;border:1px solid var(--daco-border)}
.daco-status p{margin:0}
.daco-status a{color:inherit;font-weight:600}
.daco-status__meta{display:block;margin-top:.35rem;font-size:.78rem;color:var(--daco-muted)}
.daco-status--ok{background:rgba(34,197,94,.12);border-color:var(--daco-ok)}
.daco-status--warn{background:rgba(245,158,11,.12);border-color:var(--daco-warn)}
.daco-status--err{background:rgba(239,68,68,.12);border-color:var(--daco-err)}
.daco-panel__intro{margin:0 0 1rem;color:var(--daco-muted);font-size:.875rem}
.daco-workflow{margin-bottom:1.25rem;padding:1rem 1.25rem;background:var(--daco-surface);border:1px solid var(--daco-border);border-radius:var(--daco-radius)}
.daco-workflow h2{margin:0 0 .75rem;font-size:1rem}
.daco-workflow__steps{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:.65rem}
.daco-workflow__steps li{padding:.65rem .85rem;background:var(--daco-surface-2);border-radius:8px;font-size:.875rem}
.daco-workflow__steps li strong{display:block;margin-bottom:.15rem}
.daco-workflow__steps li span{color:var(--daco-muted);font-size:.82rem}
.daco-workflow__steps a{font-size:.82rem;margin-left:.5rem}
.daco-workflow__step--active{border-left:3px solid var(--daco-err)}
.daco-workflow__step--done{border-left:3px solid var(--daco-ok)}
.nav-user{font-size:.82rem;color:var(--daco-muted);padding:0 .5rem;display:none}
@media(min-width:768px){.nav-user{display:inline}}
.daco-dashboard__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}
.daco-dashboard__sub{margin:.35rem 0 0;color:var(--daco-muted);font-size:.9rem}
.daco-dashboard__kpis{margin-bottom:.5rem}
.daco-dashboard__period{margin:0 0 1.25rem;font-size:.82rem}
.daco-dashboard__grid{display:grid;gap:1rem}
@media(min-width:768px){.daco-dashboard__grid{grid-template-columns:1fr 1fr}}
.daco-dashboard__col h2{margin:0 0 .75rem;font-size:1rem}
.daco-dashboard__notifications{display:flex;flex-direction:column;gap:.5rem}
.daco-alert.is-read{opacity:.55}
.daco-my-shifts{display:flex;flex-direction:column;gap:.5rem}
.daco-my-shifts--compact{max-height:320px;overflow:auto}
.daco-shift-card{padding:.85rem;background:var(--daco-surface-2);border:1px solid var(--daco-border);border-radius:10px}
.daco-shift-card strong{display:block}
.daco-shift-card span{font-size:.78rem;color:var(--daco-muted)}
.daco-shift-card__duty{margin:.35rem 0 0;font-family:var(--daco-mono);font-size:.85rem}
.daco-available{margin-top:.65rem;font-size:.78rem}
.daco-available summary{cursor:pointer;font-weight:600;color:var(--daco-accent)}
.daco-available__list{margin:.5rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.45rem}
.daco-available__list li{padding:.45rem .55rem;background:var(--daco-bg);border-radius:6px;line-height:1.35}
.daco-available__list .mono{font-size:.75rem;color:var(--daco-muted);margin-left:.35rem}
.daco-available__phone{display:block;font-size:.75rem;color:var(--daco-accent);text-decoration:none}
.admin-year-create{margin-bottom:1.5rem;padding:1rem;background:var(--daco-surface);border:1px solid var(--daco-border);border-radius:var(--daco-radius)}
.admin-form__row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}
.admin-form__row label{flex:1;min-width:140px}

/* Handhaving — duidelijke actiekaarten */
.daco-handhaving__head{margin-bottom:1rem}
.daco-handhaving__head h2{margin:0 0 .25rem}
.daco-handhaving__kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem}
.daco-handhaving__kpi{display:flex;flex-direction:column;gap:.15rem;padding:.85rem 1rem;border-radius:10px;border:1px solid var(--daco-border);background:var(--daco-surface-2);text-align:center}
.daco-handhaving__kpi strong{font-size:1.5rem;line-height:1.1;font-variant-numeric:tabular-nums}
.daco-handhaving__kpi span{font-size:.75rem;color:var(--daco-muted);text-transform:uppercase;letter-spacing:.04em}
.daco-handhaving__kpi--err{border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.08)}
.daco-handhaving__kpi--err strong{color:var(--daco-err)}
.daco-handhaving__kpi--warn{border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.08)}
.daco-handhaving__kpi--warn strong{color:var(--daco-warn)}
.daco-handhaving__kpi--ok{border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.06)}
.daco-handhaving__kpi--ok strong{color:var(--daco-ok)}
.daco-handhaving__empty{padding:1.25rem;border:1px dashed var(--daco-border);border-radius:10px;text-align:center;margin-bottom:1rem}
.daco-handhaving__section-title{margin:0 0 .65rem;font-size:.95rem}
.daco-handhaving__warns,.daco-handhaving__conflicts{margin:1rem 0;padding:.75rem .85rem;border:1px solid var(--daco-border);border-radius:10px;background:var(--daco-surface-2)}
.daco-handhaving__warns summary,.daco-handhaving__conflicts summary{cursor:pointer;font-weight:600;font-size:.9rem}
.daco-handhaving__warns[open] summary,.daco-handhaving__conflicts[open] summary{margin-bottom:.65rem}
.daco-handhaving__ok-note{margin:1rem 0 0;font-size:.8rem}
.hv-rules{margin:0 0 1rem;padding:1rem 1.1rem;border-radius:12px;border:1px solid var(--daco-border);background:var(--daco-surface-2)}
.hv-rules h3{margin:0 0 .55rem;font-size:.9rem}
.hv-rules ul{margin:0;padding-left:1.1rem;font-size:.84rem;color:var(--daco-muted);display:flex;flex-direction:column;gap:.3rem}
.hv-rules strong{color:var(--daco-text)}
.hv-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1rem}
.hv-filter{appearance:none;border:1px solid var(--daco-border);background:var(--daco-surface-2);color:var(--daco-text);border-radius:999px;padding:.35rem .75rem;font-size:.78rem;font-weight:600;cursor:pointer}
.hv-filter.is-active{border-color:var(--daco-accent);background:rgba(59,130,246,.12);color:var(--daco-accent)}
.hv-day-alerts{margin:0 0 1.1rem;display:flex;flex-direction:column;gap:.5rem}
.hv-day-alert{padding:.75rem .9rem;border-radius:10px;border:1px solid rgba(239,68,68,.35);background:rgba(239,68,68,.08);font-size:.86rem}
.hv-day-alert strong{display:block;margin-bottom:.35rem}
.hv-day-alert ul{margin:0;padding-left:1.1rem;color:var(--daco-muted)}
.hv-cards{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1.1rem}
.hv-card{padding:1rem 1.1rem;border-radius:14px;border:1px solid var(--daco-border);background:var(--daco-surface-2);border-left:4px solid var(--daco-err)}
.hv-card--warn{border-left-color:var(--daco-warn)}
.hv-card.is-today{box-shadow:0 0 0 1px rgba(59,130,246,.45)}
.hv-card.is-filtered-out{display:none!important}
.hv-card__head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;margin-bottom:.75rem}
.hv-card__when{margin:0 0 .25rem;font-size:.8rem;color:var(--daco-muted)}
.hv-card__title{margin:0;font-size:1.15rem;line-height:1.25}
.hv-card__tone{flex-shrink:0;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .45rem;border-radius:999px;background:rgba(239,68,68,.15);color:var(--daco-err)}
.hv-card--warn .hv-card__tone{background:rgba(245,158,11,.18);color:var(--daco-warn)}
.hv-card__meters{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem;margin-bottom:.85rem}
.hv-meter{padding:.55rem .65rem;border-radius:8px;background:var(--daco-surface);border:1px solid var(--daco-border)}
.hv-meter__top{display:flex;justify-content:space-between;gap:.35rem;font-size:.75rem;margin-bottom:.35rem}
.hv-meter__top strong{font-family:var(--daco-mono);font-variant-numeric:tabular-nums}
.hv-meter__bar{height:5px;border-radius:999px;background:var(--daco-bg);overflow:hidden}
.hv-meter__bar span{display:block;height:100%;border-radius:inherit;background:var(--daco-err);transition:width .2s}
.hv-meter.is-ok .hv-meter__bar span{background:var(--daco-ok)}
.hv-meter.is-short .hv-meter__bar span{background:var(--daco-warn)}
.hv-meter.is-empty .hv-meter__bar span{background:var(--daco-err);width:4%!important}
.hv-card__todo{margin:0 0 .9rem;padding:0;list-style:none;display:flex;flex-direction:column;gap:.45rem}
.hv-card__todo li{padding:.55rem .7rem;border-radius:8px;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.2)}
.hv-card--warn .hv-card__todo li{background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.25)}
.hv-card__todo strong{display:block;font-size:.88rem;margin-bottom:.15rem}
.hv-card__todo span{display:block;font-size:.8rem;color:var(--daco-muted);line-height:1.4}
.hv-card__people{margin-bottom:.85rem;padding:.7rem .75rem;border-radius:10px;background:var(--daco-surface);border:1px solid var(--daco-border)}
.hv-card__people-head{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline;margin-bottom:.55rem;font-size:.82rem}
.hv-card__people-head span{color:var(--daco-muted);font-size:.75rem}
.hv-card__people-empty{margin:0;font-size:.82rem;color:var(--daco-muted)}
.hv-card__people-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}
.hv-card__people-list li{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.4rem 0;border-top:1px solid var(--daco-border);font-size:.84rem}
.hv-card__people-list li:first-child{border-top:0;padding-top:0}
.hv-card__meta{display:block;font-size:.75rem;color:var(--daco-muted);margin-top:.1rem}
.hv-card__call{flex-shrink:0;font-size:.78rem;font-weight:600;color:var(--daco-accent);text-decoration:none;padding:.25rem .55rem;border:1px solid rgba(59,130,246,.35);border-radius:999px}
.hv-card__more{margin:.45rem 0 0;font-size:.75rem}
.hv-card__title a,.hv-card__when-link,.hv-day-alert a{color:inherit;text-decoration:none}
.hv-card__title a:hover,.hv-card__when-link:hover{color:var(--daco-accent);text-decoration:underline}
.hv-card__todo-link{display:block;color:inherit;text-decoration:none}
.hv-card__todo-link:hover{background:rgba(59,130,246,.08)}
.hv-card__todo-link em{display:block;margin-top:.3rem;font-style:normal;font-size:.75rem;font-weight:600;color:var(--daco-accent)}
.hv-day-alert a em{font-style:normal;font-size:.75rem;font-weight:600;color:var(--daco-accent);margin-left:.25rem}
.hv-card__people-actions{display:flex;gap:.35rem;flex-shrink:0}
.hv-card__goto{font-size:.78rem;font-weight:600;color:var(--daco-text);text-decoration:none;padding:.25rem .55rem;border:1px solid var(--daco-border);border-radius:999px}
.hv-card__goto:hover{border-color:var(--daco-accent);color:var(--daco-accent)}
.daco-grid__shift.is-column-focus,
th.is-column-focus,
td.is-column-focus{
    background:rgba(59,130,246,.18)!important;
    box-shadow:inset 0 0 0 2px var(--daco-accent);
}
@media(max-width:560px){
    .daco-handhaving__kpis{grid-template-columns:1fr}
    .hv-card__foot .daco-btn{flex:1;text-align:center}
}
