/* Layout: werkplaats-app — vaste navigatiekolom links, werkvlak rechts; op telefoon wordt de navigatie een scrollbare balk bovenin.
   Signatuur: de 24-uurs "360"-wijzerplaat van vandaag. Afdelingskleuren zijn vijf slots die per bedrijfstype worden toegewezen. */
:root{
  --bg:#F2F5F4; --surface:#FFFFFF; --surface-2:#E8EEEC; --ink:#0F2226; --ink-2:#4B5E62; --ink-3:#7A8B8E; --line:#D4DDDA;
  --accent:#0B6E6A; --accent-ink:#FFFFFF; --accent-soft:#D4EBE8;
  --warn:#9A5B00; --warn-soft:#FBEBD0; --crit:#B9332C; --crit-soft:#F8DEDB; --ok:#2B7A30; --ok-soft:#DCEFDD; --info:#3D5A99; --info-soft:#E1E8F6;
  --d1:#0B6E6A; --d2:#C0561A; --d3:#7A3E8F; --d4:#4F6470; --d5:#8A6D00;
  --f-display:"Unbounded","Arial Black",system-ui,sans-serif;
  --f-body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --r:10px; --navy:#0F2226;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0C1618; --surface:#132123; --surface-2:#1A2C2F; --ink:#E3EEEC; --ink-2:#A3B6B7; --ink-3:#71878A; --line:#263A3D;
  --accent:#43B9B0; --accent-ink:#03201E; --accent-soft:#143B38;
  --warn:#F0A640; --warn-soft:#3A2A10; --crit:#F2726A; --crit-soft:#3E1B19; --ok:#6CC470; --ok-soft:#173420; --info:#8FA8E6; --info-soft:#1C2843;
  --d1:#43B9B0; --d2:#F08C4E; --d3:#C68CD9; --d4:#98ADB8; --d5:#D9BC4A; --navy:#08110F; color-scheme:dark}}
:root[data-theme="dark"]{
  --navy:#08110F; --bg:#0C1618; --surface:#132123; --surface-2:#1A2C2F; --ink:#E3EEEC; --ink-2:#A3B6B7; --ink-3:#71878A; --line:#263A3D;
  --accent:#43B9B0; --accent-ink:#03201E; --accent-soft:#143B38;
  --warn:#F0A640; --warn-soft:#3A2A10; --crit:#F2726A; --crit-soft:#3E1B19; --ok:#6CC470; --ok-soft:#173420; --info:#8FA8E6; --info-soft:#1C2843;
  --d1:#43B9B0; --d2:#F08C4E; --d3:#C68CD9; --d4:#98ADB8; --d5:#D9BC4A; color-scheme:dark}

html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.45}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--surface)}
*{box-sizing:border-box}
[hidden]{display:none!important}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h1,h2,h3{margin:0;text-wrap:balance}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--ink-2)}
.small{font-size:12px}
.app{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100%}
.side{background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:16px;padding-block:20px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:16px;position:sticky;top:0;height:100vh;overflow:auto}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:700;font-size:17px;letter-spacing:-.01em}
.logo small{display:block;font-family:var(--f-body);font-weight:500;font-size:11px;color:var(--ink-2);letter-spacing:.02em}
.loc{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:12px;display:grid;gap:4px}
.loc b{font-size:13px}
.loc select{padding:5px 7px;font-size:12px;font-weight:600}
nav.nav{display:flex;flex-direction:column;gap:2px}
.nav .grp{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);margin:12px 8px 4px}
.nav button{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;text-align:left;border:0;background:none;padding:7px 10px;border-radius:7px;cursor:pointer;color:var(--ink-2);font-weight:500}
.nav button:hover{background:var(--surface-2);color:var(--ink)}
.nav button[aria-current="page"]{background:var(--accent-soft);color:var(--ink);font-weight:600}
.nav .cnt{margin-left:auto;font-size:11px;font-weight:700;min-width:20px;text-align:center;border-radius:99px;padding:1px 6px;background:var(--surface-2);color:var(--ink-2)}
.nav .cnt.crit{background:var(--crit-soft);color:var(--crit)}
.side-foot{margin-top:auto;display:grid;gap:8px;font-size:12px;color:var(--ink-2)}
main{min-width:0;padding-block:24px 64px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.wrap{max-width:1240px;margin:0 auto;display:grid;gap:18px}
.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.head h1{font-family:var(--f-display);font-weight:600;font-size:22px;letter-spacing:-.015em}
.head p{margin:4px 0 0;color:var(--ink-2);max-width:72ch}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);font-weight:600}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);padding:7px 12px;border-radius:8px;cursor:pointer;font-weight:600;font-size:13px;white-space:nowrap}
.btn:hover{border-color:var(--ink-3)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.07)}
.btn.ghost{border-color:transparent;background:none}
.btn.sm{padding:4px 9px;font-size:12px}
.btn.danger{color:var(--crit)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.ai-mark{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-size:10px;font-weight:800;font-family:var(--f-mono)}
.btn.primary .ai-mark{background:var(--accent-ink);color:var(--accent)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;min-width:0}
.card h2{font-size:15px;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px;justify-content:space-between;flex-wrap:wrap}
.card h3{font-size:13px;font-weight:700}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px}
.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;text-align:left;cursor:pointer;display:grid;gap:2px}
.kpi:hover{border-color:var(--ink-3)}
.kpi .v{font-family:var(--f-display);font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}
.kpi .l{font-size:12px;color:var(--ink-2)}
.kpi.crit .v{color:var(--crit)}
.pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;border-radius:99px;padding:2px 8px;white-space:nowrap;background:var(--surface-2);color:var(--ink-2)}
.pill.crit{background:var(--crit-soft);color:var(--crit)}
.pill.warn{background:var(--warn-soft);color:var(--warn)}
.pill.ok{background:var(--ok-soft);color:var(--ok)}
.pill.info{background:var(--info-soft);color:var(--info)}
.pill.acc{background:var(--accent-soft);color:var(--accent)}
.list{display:grid}
.row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.row:first-child{border-top:0}
.row .grow{flex:1;min-width:180px}
.av{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;background:var(--surface-2);color:var(--ink);flex:none}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
table{border-collapse:collapse;width:100%}
th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:700;background:var(--surface)}
tr:last-child td{border-bottom:0}
td.r,th.r{text-align:right}
.roster{min-width:1060px}
.roster th,.roster td{border-right:1px solid var(--line);padding:6px}
.roster th:last-child,.roster td:last-child{border-right:0}
.roster thead th{vertical-align:bottom;text-transform:none;letter-spacing:0;color:var(--ink);font-size:12px}
.roster .dh{display:grid;gap:3px}
.roster .dh b{font-size:13px}
.roster .dh .meta{font-size:11px;color:var(--ink-2);font-weight:500}
.cov{height:4px;border-radius:2px;background:var(--surface-2);overflow:hidden}
.cov i{display:block;height:100%;background:var(--accent)}
.lc{font-size:11px;font-weight:700}
.lc.hi{color:var(--crit)} .lc.ok{color:var(--ok)}
.roster td.emp{position:sticky;left:0;background:var(--surface);z-index:1;min-width:190px;max-width:210px}
.roster th.emp{position:sticky;left:0;z-index:2}
.empcell{display:flex;gap:8px;align-items:flex-start}
.empcell .nm{font-weight:600;font-size:13px;line-height:1.2}
.empcell .sub{font-size:11px;color:var(--ink-2)}
.meter{height:4px;border-radius:2px;background:var(--surface-2);margin-top:4px;position:relative;overflow:hidden;width:120px}
.meter i{position:absolute;inset:0 auto 0 0;background:var(--accent)}
.meter i.over{background:var(--warn)}
.roster td.cell{min-width:128px;cursor:pointer;height:58px}
.roster td.cell:hover{background:var(--surface-2)}
.roster tr.openrow td{background:color-mix(in srgb,var(--surface-2) 55%,var(--surface))}
.sh{--c:var(--d1);display:grid;gap:1px;border-radius:7px;padding:5px 7px;margin-bottom:4px;background:color-mix(in srgb,var(--c) 13%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 30%,transparent);position:relative;cursor:pointer;text-align:left;width:100%}
.sh:last-child{margin-bottom:0}
.sh .tm{font-family:var(--f-mono);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}
.sh .dp{font-size:11px;color:var(--ink-2);display:flex;align-items:center;gap:5px;min-width:0}
.sh .dp span.t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dot{width:7px;height:7px;border-radius:50%;background:var(--c,var(--d1));flex:none;display:inline-block}
.sh.open{background:var(--surface);border:1.5px dashed color-mix(in srgb,var(--c) 60%,var(--line))}
.sh.crit{outline:2px solid var(--crit);outline-offset:-1px}
.sh.warn{outline:2px solid var(--warn);outline-offset:-1px}
.sh .flag{position:absolute;top:-6px;right:-5px;min-width:16px;height:16px;border-radius:8px;font-size:10px;font-weight:800;display:grid;place-items:center;padding:0 4px;color:#fff;background:var(--crit)}
.sh.warn .flag{background:var(--warn);color:var(--surface)}
.sh .tag{font-size:9.5px;font-weight:800;letter-spacing:.05em;color:var(--accent)}
.filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.fchip{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.fchip[aria-pressed="true"]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink-2)}
.cand{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.cand:first-child{border-top:0}
.cand .why{font-size:11.5px;color:var(--ink-2)}
.score{font-family:var(--f-mono);font-weight:600;font-size:12px;display:flex;align-items:center;gap:6px}
.score .bar{width:44px;height:5px;border-radius:3px;background:var(--surface-2);overflow:hidden}
.score .bar i{display:block;height:100%;background:var(--accent)}
.cand.no{opacity:.62}
.opencard{display:grid;gap:8px}
.ohead{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:baseline}
.ohead b{font-size:14px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}
.dialwrap{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:18px;align-items:center}
.dial{width:100%;max-width:300px;aspect-ratio:1}
.dial text{fill:var(--ink-2);font-family:var(--f-mono);font-size:10px}
.who{display:grid;gap:6px;font-size:13px}
.who .w{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
label.f{display:grid;gap:4px;font-size:12px;font-weight:600;color:var(--ink-2)}
input[type=text],input[type=time],input[type=number],input[type=date],select,textarea{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:7px 9px;font-size:13px;width:100%;color:var(--ink)}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.fgrid .full{grid-column:1/-1}
.overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--ink) 45%,transparent);z-index:50;display:grid;place-items:center;padding:20px max(16px,env(safe-area-inset-right,0px)) 20px max(16px,env(safe-area-inset-left,0px))}
.modal{background:var(--surface);border-radius:14px;border:1px solid var(--line);width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto;display:grid;gap:14px;padding:20px}
.modal h2{font-family:var(--f-display);font-weight:600;font-size:18px}
.mhead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.mfoot{display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px}
.issue{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;padding:6px 0}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--surface);padding:10px 16px;border-radius:10px;z-index:60;max-width:min(560px,calc(100vw - 32px));font-weight:500;box-shadow:0 8px 30px rgba(0,0,0,.18)}
.kiosk{display:grid;gap:12px;justify-items:center;text-align:center}
.kiosk .clock{font-family:var(--f-display);font-size:40px;font-weight:600;font-variant-numeric:tabular-nums}
.pin{display:flex;gap:10px}
.pin span{width:14px;height:14px;border-radius:50%;border:2px solid var(--ink-3)}
.pin span.f{background:var(--ink);border-color:var(--ink)}
.pad{display:grid;grid-template-columns:repeat(3,64px);gap:8px}
.pad button{height:52px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);font-size:20px;font-weight:600;cursor:pointer;font-family:var(--f-mono)}
.pad button:active{background:var(--accent-soft)}
.tl{display:grid}
.tl .st{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px;padding:8px 0;align-items:start}
.tl .st i{width:12px;height:12px;border-radius:50%;margin-top:3px;border:2px solid var(--ink-3);background:var(--surface)}
.tl .st.done i{background:var(--ok);border-color:var(--ok)}
.tl .st.next i{border-color:var(--warn);background:var(--warn-soft)}
.phonewrap{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:24px;align-items:start}
.phone{width:100%;max-width:370px;border:9px solid var(--ink);border-radius:36px;background:var(--bg);overflow:hidden;display:flex;flex-direction:column;height:700px}
.pbar{display:flex;justify-content:space-between;padding:10px 18px 6px;font-size:12px;font-weight:700;background:var(--surface)}
.phead{background:var(--surface);padding:6px 16px 12px;border-bottom:1px solid var(--line)}
.phead b{font-family:var(--f-display);font-size:16px;font-weight:600}
.pbody{flex:1;overflow:auto;padding:12px;display:grid;gap:10px;align-content:start}
.ptabs{display:flex;overflow-x:auto;background:var(--surface);border-top:1px solid var(--line)}
.ptabs button{flex:1;border:0;background:none;padding:10px 8px;font-size:11.5px;font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.ptabs button[aria-selected="true"]{color:var(--accent);box-shadow:inset 0 2px 0 var(--accent)}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:6px}
.big{font-family:var(--f-display);font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:6px 11px;font-size:12px;font-weight:600;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.msg{max-width:82%;padding:7px 10px;border-radius:12px;font-size:13px;background:var(--surface);border:1px solid var(--line)}
.msg.me{justify-self:end;background:var(--accent-soft);border-color:transparent}
.msg small{display:block;color:var(--ink-3);font-size:10.5px}
.yes{color:var(--ok);font-weight:700}
.no{color:var(--ink-3)}
.soon{color:var(--warn);font-weight:600}
.newf{color:var(--accent);font-weight:800}
.price{display:grid;gap:6px;border:1px solid var(--line);border-radius:var(--r);padding:16px;background:var(--surface);align-content:start}
.price.hl{border:2px solid var(--accent)}
.price .amt{font-family:var(--f-display);font-size:26px;font-weight:600}
.price ul{margin:4px 0 0;padding-left:18px;display:grid;gap:3px;font-size:13px}
.chart text{fill:var(--ink-2);font-size:10.5px;font-family:var(--f-body)}
.chart .gl{stroke:var(--line);stroke-width:1}
.toggle{width:38px;height:22px;border-radius:11px;background:var(--surface-2);border:1px solid var(--line);position:relative;cursor:pointer;flex:none}
.toggle::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--ink-3);transition:left .15s}
.toggle[aria-checked="true"]{background:var(--accent);border-color:var(--accent)}
.toggle[aria-checked="true"]::after{left:18px;background:var(--accent-ink)}
.intg{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.intg .it{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:var(--surface)}
.note{font-size:12px;color:var(--ink-2);background:var(--surface-2);border-radius:8px;padding:8px 10px}
details summary{cursor:pointer;list-style:none}
details summary::-webkit-details-marker{display:none}
.chev{display:inline-block;transition:transform .15s;color:var(--ink-3)}
details[open] .chev{transform:rotate(90deg)}
.types{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:12px}
.tcard{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:14px;display:grid;gap:8px;text-align:left;cursor:pointer;align-content:start}
.tcard:hover{border-color:var(--ink-3)}
.tcard[aria-pressed="true"]{border:2px solid var(--accent);padding:13px;background:color-mix(in srgb,var(--accent-soft) 40%,var(--surface))}
.tcard .tn{font-family:var(--f-display);font-size:15px;font-weight:600;display:flex;justify-content:space-between;gap:6px;align-items:baseline}
.tcard .tn small{font-family:var(--f-body);font-size:11px;font-weight:700;color:var(--accent)}
.tags{display:flex;flex-wrap:wrap;gap:4px}
.rules{display:grid}
.rule{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:10px 0;border-top:1px solid var(--line)}
.rule:first-child{border-top:0}
.rule .src{font-size:11px;color:var(--ink-3);font-weight:600}
.steps{margin:0;padding-left:20px;display:grid;gap:6px}
.modebar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:10px 14px}
.modebar b{font-size:13px}

/* ===== Weergave A · Apple-stijl ===== */
:root[data-ui="apple"]{--bg:#F5F5F7;--surface:#FFFFFF;--surface-2:#EFEFF4;--ink:#1D1D1F;--ink-2:#6E6E73;--ink-3:#8E8E93;--line:#E5E5EA;--accent:#007AFF;--accent-ink:#FFFFFF;--accent-soft:#E5F0FF;--warn:#B25000;--warn-soft:#FFF1E0;--crit:#D70015;--crit-soft:#FFE5E3;--ok:#248A3D;--ok-soft:#E3F6E7;--info:#0058B0;--info-soft:#E5F0FF;--d1:#007AFF;--d2:#FF9500;--d3:#AF52DE;--d4:#8E8E93;--d5:#34C759;--navy:#1D1D1F;
  --f-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Helvetica,sans-serif;--f-body:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Helvetica,sans-serif;--f-mono:ui-monospace,"SF Mono",Menlo,monospace;--r:12px}
@media (prefers-color-scheme: dark){:root[data-ui="apple"]:not([data-theme="light"]){--bg:#000000;--surface:#1C1C1E;--surface-2:#2C2C2E;--ink:#F5F5F7;--ink-2:#AEAEB2;--ink-3:#8E8E93;--line:#38383A;--accent:#0A84FF;--accent-ink:#FFFFFF;--accent-soft:#0A2A4D;--warn:#FF9F0A;--warn-soft:#3A2A10;--crit:#FF453A;--crit-soft:#3E1B19;--ok:#30D158;--ok-soft:#163A20;--info:#64D2FF;--info-soft:#0A2A4D;--d1:#0A84FF;--d2:#FF9F0A;--d3:#BF5AF2;--d4:#98989D;--d5:#30D158;--navy:#000000;color-scheme:dark}}
:root[data-ui="apple"][data-theme="dark"]{--bg:#000000;--surface:#1C1C1E;--surface-2:#2C2C2E;--ink:#F5F5F7;--ink-2:#AEAEB2;--ink-3:#8E8E93;--line:#38383A;--accent:#0A84FF;--accent-ink:#FFFFFF;--accent-soft:#0A2A4D;--warn:#FF9F0A;--warn-soft:#3A2A10;--crit:#FF453A;--crit-soft:#3E1B19;--ok:#30D158;--ok-soft:#163A20;--info:#64D2FF;--info-soft:#0A2A4D;--d1:#0A84FF;--d2:#FF9F0A;--d3:#BF5AF2;--d4:#98989D;--d5:#30D158;--navy:#000000;color-scheme:dark}
:root[data-ui="apple"] .side{background:var(--surface-2)}
:root[data-ui="apple"] .nav button[aria-current="page"]{background:color-mix(in srgb,var(--ink) 9%,transparent);color:var(--ink)}
:root[data-ui="apple"] .head h1{font-weight:700;letter-spacing:-.02em;font-size:28px}
:root[data-ui="apple"] .kpi .v{font-weight:700;letter-spacing:-.02em}
:root[data-ui="apple"] .card{border-color:var(--line)}
:root[data-ui="apple"] .fchip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
:root[data-ui="apple"] .roster td.cell:hover{background:var(--accent-soft)}

/* ===== Weergave 2 · Material 3 (standaard) ===== */
:root[data-ui="material"]{--bg:#F4FBFA;--surface:#FFFFFF;--surface-2:#E9EFEE;--ink:#161D1D;--ink-2:#3F4948;--ink-3:#6F7979;--line:#DDE4E3;--accent:#006A6A;--accent-ink:#FFFFFF;--accent-soft:#CCE8E7;--warn:#8B5000;--warn-soft:#FFDDB8;--crit:#BA1A1A;--crit-soft:#FFDAD6;--ok:#2E6C3E;--ok-soft:#CDEFD3;--info:#2C628A;--info-soft:#CDE5FF;--d1:#00838F;--d2:#C25E00;--d3:#7B52AE;--d4:#5C6F70;--d5:#6E7A00;--navy:#006A6A;
  --f-display:"Roboto Flex",system-ui,sans-serif;--f-body:"Roboto Flex",system-ui,-apple-system,"Segoe UI",sans-serif;--f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--r:16px}
@media (prefers-color-scheme: dark){:root[data-ui="material"]:not([data-theme="light"]){--bg:#0E1514;--surface:#161D1D;--surface-2:#1F2626;--ink:#DDE4E3;--ink-2:#BEC9C8;--ink-3:#899392;--line:#3F4948;--accent:#4CDADA;--accent-ink:#003737;--accent-soft:#324B4B;--warn:#FFB870;--warn-soft:#4A2800;--crit:#FFB4AB;--crit-soft:#93000A;--ok:#8CD79F;--ok-soft:#0F3A1E;--info:#9ACBFA;--info-soft:#0D3A5C;--d1:#4FD8EB;--d2:#FFB77C;--d3:#D0BCFF;--d4:#A4B4B5;--d5:#D6D46A;--navy:#0E1514;color-scheme:dark}}
:root[data-ui="material"][data-theme="dark"]{--bg:#0E1514;--surface:#161D1D;--surface-2:#1F2626;--ink:#DDE4E3;--ink-2:#BEC9C8;--ink-3:#899392;--line:#3F4948;--accent:#4CDADA;--accent-ink:#003737;--accent-soft:#324B4B;--warn:#FFB870;--warn-soft:#4A2800;--crit:#FFB4AB;--crit-soft:#93000A;--ok:#8CD79F;--ok-soft:#0F3A1E;--info:#9ACBFA;--info-soft:#0D3A5C;--d1:#4FD8EB;--d2:#FFB77C;--d3:#D0BCFF;--d4:#A4B4B5;--d5:#D6D46A;--navy:#0E1514;color-scheme:dark}
:root[data-ui="material"] .side{background:var(--bg);border-right:0;gap:12px}
:root[data-ui="material"] .nav button{min-height:50px;border-radius:25px;padding:0 16px;font-weight:500;color:var(--ink-2)}
:root[data-ui="material"] .nav button:hover{background:color-mix(in srgb,var(--ink) 8%,transparent)}
:root[data-ui="material"] .nav button[aria-current="page"]{background:var(--accent-soft);color:var(--ink);font-weight:700}
:root[data-ui="material"] .nav button[aria-current="page"] .ni{color:var(--ink)}
:root[data-ui="material"] .nav .grp{text-transform:none;letter-spacing:0;font-size:13px;font-weight:600;color:var(--ink-2);margin:14px 16px 4px}
:root[data-ui="material"] .loc{border:0;background:var(--surface-2);border-radius:16px;padding:12px}
:root[data-ui="material"] .card,:root[data-ui="material"] .tcard,:root[data-ui="material"] .uiopt,:root[data-ui="material"] .price{border:0;border-radius:16px;box-shadow:0 1px 2px rgba(0,0,0,.1),0 1px 3px 1px rgba(0,0,0,.05)}
:root[data-ui="material"] .tcard[aria-pressed="true"],:root[data-ui="material"] .uiopt[aria-pressed="true"],:root[data-ui="material"] .price.hl{box-shadow:inset 0 0 0 2px var(--accent)}
:root[data-ui="material"] .kpi{border:0;background:var(--surface-2);border-radius:16px}
:root[data-ui="material"] .kpi .v{font-family:var(--f-body);font-weight:400;font-size:32px}
:root[data-ui="material"] .head h1{font-family:var(--f-body);font-weight:400;font-size:32px;letter-spacing:0}
:root[data-ui="material"] .btn{border-radius:20px;min-height:40px;padding:0 20px;font-weight:500;border-color:var(--ink-3);justify-content:center}
:root[data-ui="material"] .btn.sm{min-height:32px;padding:0 14px}
:root[data-ui="material"] .btn.primary{border-color:var(--accent)}
:root[data-ui="material"] .btn.ghost{border-color:transparent}
:root[data-ui="material"] .fchip{border-radius:8px;min-height:32px;border-color:var(--ink-3)}
:root[data-ui="material"] .fchip[aria-pressed="true"],:root[data-ui="material"] .seg button[aria-pressed="true"]{background:var(--accent-soft);color:var(--ink);border-color:var(--ink-3)}
:root[data-ui="material"] .seg button{min-height:36px}
:root[data-ui="material"] .pill{border-radius:8px}
:root[data-ui="material"] .tablewrap{border-radius:16px;border-color:var(--line)}
:root[data-ui="material"] .modal{border-radius:28px;border:0;padding:24px}
:root[data-ui="material"] .sh{border-radius:8px;border:0;background:color-mix(in srgb,var(--c) 18%,var(--surface))}
:root[data-ui="material"] .sh.open{border:1px dashed var(--ink-3);background:var(--surface)}
:root[data-ui="material"] .modebar{border:0;background:var(--surface-2);border-radius:16px}
:root[data-ui="material"] input[type=text],:root[data-ui="material"] input[type=time],:root[data-ui="material"] input[type=number],:root[data-ui="material"] input[type=date],:root[data-ui="material"] select{border-radius:4px;border-color:var(--ink-3);min-height:40px}

/* ===== Weergave 3 · Fluent 2 ===== */
:root[data-ui="fluent"]{--bg:#F5F5F5;--surface:#FFFFFF;--surface-2:#F0F0F0;--ink:#242424;--ink-2:#616161;--ink-3:#8A8A8A;--line:#E0E0E0;--accent:#0F6CBD;--accent-ink:#FFFFFF;--accent-soft:#EBF3FC;--warn:#BC4B09;--warn-soft:#FDF6F3;--crit:#C50F1F;--crit-soft:#FDF3F4;--ok:#107C10;--ok-soft:#F1FAF1;--info:#0F6CBD;--info-soft:#EBF3FC;--d1:#0F6CBD;--d2:#C43E00;--d3:#7160A8;--d4:#616161;--d5:#498205;--navy:#0F6CBD;
  --f-display:"Segoe UI Variable Display","Segoe UI",-apple-system,system-ui,sans-serif;--f-body:"Segoe UI Variable Text","Segoe UI",-apple-system,system-ui,sans-serif;--f-mono:Consolas,"Cascadia Mono",ui-monospace,monospace;--r:8px}
@media (prefers-color-scheme: dark){:root[data-ui="fluent"]:not([data-theme="light"]){--bg:#1F1F1F;--surface:#292929;--surface-2:#333333;--ink:#FFFFFF;--ink-2:#D6D6D6;--ink-3:#ADADAD;--line:#3D3D3D;--accent:#2886DE;--accent-ink:#FFFFFF;--accent-soft:#0E2E4D;--warn:#F98845;--warn-soft:#4A1E04;--crit:#DC626D;--crit-soft:#3B0509;--ok:#54B054;--ok-soft:#052505;--info:#479EF5;--info-soft:#0E2E4D;--d1:#2886DE;--d2:#D9562B;--d3:#8F7DC7;--d4:#707070;--d5:#5E9C1F;--navy:#0F548C;color-scheme:dark}}
:root[data-ui="fluent"][data-theme="dark"]{--bg:#1F1F1F;--surface:#292929;--surface-2:#333333;--ink:#FFFFFF;--ink-2:#D6D6D6;--ink-3:#ADADAD;--line:#3D3D3D;--accent:#2886DE;--accent-ink:#FFFFFF;--accent-soft:#0E2E4D;--warn:#F98845;--warn-soft:#4A1E04;--crit:#DC626D;--crit-soft:#3B0509;--ok:#54B054;--ok-soft:#052505;--info:#479EF5;--info-soft:#0E2E4D;--d1:#2886DE;--d2:#D9562B;--d3:#8F7DC7;--d4:#707070;--d5:#5E9C1F;--navy:#0F548C;color-scheme:dark}
:root[data-ui="fluent"] body::before{background:var(--navy)}
:root[data-ui="fluent"] .topbar{display:flex}
:root[data-ui="fluent"] .side{top:calc(48px + env(safe-area-inset-top,0px));height:calc(100vh - 48px);background:var(--surface);border-right:1px solid var(--line);gap:10px;padding-block:12px}
:root[data-ui="fluent"] .logo{display:none}
:root[data-ui="fluent"] .nav button{min-height:40px;border-radius:4px;position:relative;color:var(--ink)}
:root[data-ui="fluent"] .nav button[aria-current="page"]{background:var(--surface-2);font-weight:600}
:root[data-ui="fluent"] .nav button[aria-current="page"]::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--accent)}
:root[data-ui="fluent"] .nav .grp{text-transform:none;letter-spacing:0;font-size:12px;font-weight:600;color:var(--ink-2)}
:root[data-ui="fluent"] .loc{border-radius:4px}
:root[data-ui="fluent"] .card,:root[data-ui="fluent"] .kpi,:root[data-ui="fluent"] .tablewrap,:root[data-ui="fluent"] .tcard,:root[data-ui="fluent"] .uiopt,:root[data-ui="fluent"] .price{border:0;border-radius:8px;box-shadow:0 0 2px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.14)}
:root[data-ui="fluent"] .tcard[aria-pressed="true"],:root[data-ui="fluent"] .uiopt[aria-pressed="true"],:root[data-ui="fluent"] .price.hl{box-shadow:0 0 0 2px var(--accent)}
:root[data-ui="fluent"] .head h1{font-family:var(--f-display);font-weight:600;font-size:26px;letter-spacing:0}
:root[data-ui="fluent"] .kpi .v{font-family:var(--f-display);font-weight:600}
:root[data-ui="fluent"] .btn{border-radius:4px;min-height:32px;padding:0 12px;font-weight:600;border-color:var(--line)}
:root[data-ui="fluent"] .fchip,:root[data-ui="fluent"] .seg button,:root[data-ui="fluent"] .pill{border-radius:4px}
:root[data-ui="fluent"] .fchip[aria-pressed="true"],:root[data-ui="fluent"] .seg button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#FFFFFF}
:root[data-ui="fluent"] .sh{background:var(--c);border:0;color:#FFFFFF;border-radius:4px}
:root[data-ui="fluent"] .sh .dp,:root[data-ui="fluent"] .sh .tag{color:rgba(255,255,255,.92)}
:root[data-ui="fluent"] .sh .dot{background:#FFFFFF}
:root[data-ui="fluent"] .sh.open{background:var(--surface);color:var(--ink);border:1px dashed var(--c)}
:root[data-ui="fluent"] .sh.open .dp{color:var(--ink-2)}:root[data-ui="fluent"] .sh.open .dot{background:var(--c)}
:root[data-ui="fluent"] .tlb{background:var(--c);color:#FFFFFF;border-radius:4px}
:root[data-ui="fluent"] .tlb.open{background:var(--surface);color:var(--ink)}
:root[data-ui="fluent"] .modal{border-radius:8px}
:root[data-ui="fluent"] .modebar{border-radius:8px}
:root[data-ui="fluent"] .roster tr.grprow td{background:var(--surface-2);font-weight:600}

/* ===== gedeeld ===== */
.topbar{display:none;position:sticky;top:env(safe-area-inset-top,0px);z-index:25;height:48px;align-items:center;gap:16px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:var(--navy);color:#FFFFFF}
.topbar b{font-size:16px;font-weight:600;white-space:nowrap}
.topbar .tb-org{font-size:13px;opacity:.9;white-space:nowrap}
.tb-search{flex:1 1 160px;max-width:460px;margin:0 auto;display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.94);color:#616161;border-radius:4px;height:32px;padding:0 10px}
.tb-search input{border:0;background:transparent;font:inherit;color:#242424;outline:none;width:100%;padding:0;min-height:0}
.tb-av{width:32px;height:32px;border-radius:50%;background:#FFFFFF;color:#0F6CBD;display:grid;place-items:center;font-size:12px;font-weight:600;flex:none}
.nav .fab{display:none}
:root[data-ui="material"] .nav .fab{display:flex;align-items:center;gap:12px;height:56px;border-radius:16px;border:0;background:var(--accent-soft);color:var(--ink);font:inherit;font-weight:600;padding:0 20px 0 16px;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.18),0 4px 8px rgba(0,0,0,.08);margin:4px 0 8px;align-self:flex-start}
.nav .ni{width:20px;height:20px;display:grid;place-items:center;flex:none;color:var(--ink-2)}
.nav button[aria-current="page"] .ni{color:var(--accent)}
:root[data-ui="apple"] .nav .ni{color:var(--accent)}
.roster tr.grprow td{background:var(--surface-2);padding:8px 10px}
.dayview{display:grid;grid-template-columns:minmax(200px,250px) minmax(0,1fr);gap:16px;align-items:start}
.dlist{display:grid;gap:4px}
.dli{display:grid;gap:2px;text-align:left;border:0;background:none;border-radius:10px;padding:9px 12px;cursor:pointer;font:inherit;color:var(--ink)}
.dli:hover{background:var(--surface-2)}
.dli[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.dli .r1,.dli .r2{display:flex;justify-content:space-between;gap:8px}
.dli .r2{font-size:12px;color:var(--ink-2)}
.dli[aria-pressed="true"] .r2,.dli[aria-pressed="true"] .r2 span{color:inherit}
.st-w{color:var(--warn);font-weight:600}.st-ok{color:var(--ok);font-weight:600}
.tlr{display:flex;border-bottom:1px solid var(--line);min-height:46px}
.tlr.tlh{min-height:0}
.tln{width:200px;flex:none;display:flex;gap:8px;align-items:center;padding:6px 10px 6px 0}
.tln .nm{font-weight:600;font-size:13px;white-space:nowrap}.tln .sub{font-size:11px;color:var(--ink-2)}
.tlt{flex:1;position:relative;min-width:0}
.tlt.hrs{display:grid}.tlt.hrs span{font-size:11px;color:var(--ink-3);border-left:1px solid var(--line);padding:6px 0 6px 4px;font-family:var(--f-mono)}
.tlb{position:absolute;top:8px;bottom:8px;border-radius:8px;border:0;cursor:pointer;font:inherit;font-size:12px;font-weight:600;text-align:left;padding:0 8px;overflow:hidden;white-space:nowrap;background:color-mix(in srgb,var(--c) 18%,var(--surface));color:color-mix(in srgb,var(--c) 75%,var(--ink))}
.tlb.open{background:var(--surface);outline:1.5px dashed var(--c);outline-offset:-1.5px}
.tlb.crit{outline:2px solid var(--crit);outline-offset:-1px}.tlb.warn{outline:2px solid var(--warn);outline-offset:-1px}
@media (max-width:900px){.dayview{grid-template-columns:minmax(0,1fr)}.dlist{grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);overflow-x:auto}.tln{width:130px}.tln .av{display:none}:root[data-ui="material"] .nav .fab{display:none}:root[data-ui="fluent"] .side{top:calc(48px + env(safe-area-inset-top,0px))}.topbar .tb-org{display:none}}

.impbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;background:var(--warn-soft);color:var(--warn);border-radius:var(--r);padding:10px 14px;max-width:1240px;margin:0 auto 14px}
.uiopts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.uiopt{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:12px;display:grid;gap:10px;text-align:left;cursor:pointer;font:inherit;color:inherit}
.uiopt[aria-pressed="true"]{border:2px solid var(--accent);padding:11px}
.uiprev{height:120px;border-radius:10px;overflow:hidden;display:grid}
@media (max-width:900px){.uiopts{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
@media (max-width:1100px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.split{grid-template-columns:minmax(0,1fr)}}
@media (max-width:900px){
  .app{grid-template-columns:minmax(0,1fr)}
  .side{position:sticky;top:env(safe-area-inset-top,0px);height:auto;z-index:20;flex-direction:row;align-items:center;gap:12px;padding-block:10px;padding-right:max(16px,env(safe-area-inset-right,0px));border-right:0;border-bottom:1px solid var(--line);overflow:visible}
  .side{flex-wrap:wrap}
  .side-foot{display:none}
  .side .loc{display:flex;flex-wrap:wrap;gap:6px;border:0;padding:0;max-width:100%}
  .side .loc label,.side .loc .muted{display:none}
  .side .loc{align-items:center}
  .side .loc select{width:auto;max-width:160px}
  nav.nav{flex-direction:row;overflow-x:auto;min-width:0;flex:1 1 100%;padding-bottom:2px}
  :root[data-ui] .side{height:auto;padding-block:10px}
  :root[data-ui="material"] .nav button{min-height:40px;border-radius:20px}
  :root[data-ui="fluent"] .nav button[aria-current="page"]::before{left:10px;right:10px;top:auto;bottom:0;width:auto;height:3px}
  .nav .grp{display:none}
  .nav button{white-space:nowrap;width:auto}
  .logo small{display:none}
  .grid2,.grid3,.dialwrap,.phonewrap{grid-template-columns:minmax(0,1fr)}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fgrid{grid-template-columns:minmax(0,1fr)}
}

/* ===== mobiele tabbalk, zoeken en meer-paneel ===== */
.tabbar{display:none}
@media (max-width:900px){
  .tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);position:fixed;left:0;right:0;bottom:0;z-index:30;padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));background:var(--surface);border-top:1px solid var(--line)}
  body{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .side nav.nav{display:none}
}
.tabbar button{position:relative;border:0;background:none;font:inherit;color:var(--ink-2);display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 2px;min-height:48px;cursor:pointer;font-size:11px;font-weight:600;min-width:0}
.tabbar button span.lb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.tabbar .ti{display:grid;place-items:center;position:relative}
.tabbar .ti svg{width:24px;height:24px}
.tabbar .bd{position:absolute;top:-4px;left:calc(50% + 6px);min-width:16px;height:16px;border-radius:8px;background:var(--crit);color:#FFFFFF;font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 4px}
.tabbar button[aria-current="page"]{color:var(--accent)}
:root[data-ui="apple"] .tabbar{background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-top:.5px solid var(--line)}
:root[data-ui="apple"] .tabbar button{font-size:10px;font-weight:500}
:root[data-ui="material"] .tabbar{background:var(--surface-2);border-top:0;padding-top:12px;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}
:root[data-ui="material"] .tabbar button{gap:4px;font-size:12px;font-weight:500;color:var(--ink-2)}
:root[data-ui="material"] .tabbar .ti{width:64px;height:32px;border-radius:16px}
:root[data-ui="material"] .tabbar button[aria-current="page"]{color:var(--ink);font-weight:700}
:root[data-ui="material"] .tabbar button[aria-current="page"] .ti{background:var(--accent-soft)}
:root[data-ui="fluent"] .tabbar{box-shadow:0 -1px 4px rgba(0,0,0,.08)}
:root[data-ui="fluent"] .tabbar button{font-size:10px}
:root[data-ui="fluent"] .tabbar button[aria-current="page"]::before{content:"";position:absolute;top:-6px;left:28%;right:28%;height:3px;border-radius:0 0 2px 2px;background:var(--accent)}
.overlay:has(.sheet){place-items:end center;padding-bottom:0}
.sheet{width:100%;max-width:560px;max-height:85vh;overflow:auto;background:var(--surface);color:var(--ink);border-radius:calc(var(--r) + 8px) calc(var(--r) + 8px) 0 0;padding:10px 16px calc(20px + env(safe-area-inset-bottom,0px));display:grid;gap:4px}
.sheet .grab{width:36px;height:5px;border-radius:3px;background:var(--line);justify-self:center;margin-bottom:6px}
.sheet .grp{font-size:12px;font-weight:600;color:var(--ink-2);margin:10px 4px 2px}
.sheet .sgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sheet .sgrid button{border:0;background:var(--surface-2);border-radius:var(--r);padding:12px 6px;display:grid;justify-items:center;gap:6px;font:inherit;font-size:12px;font-weight:600;color:var(--ink);cursor:pointer;text-align:center;min-height:72px}
.sheet .sgrid button[aria-current="page"]{background:var(--accent-soft);color:var(--ink)}
.sheet .sgrid svg{color:var(--accent)}
:root[data-ui="material"] .sheet{border-radius:28px 28px 0 0}
:root[data-ui="fluent"] .sheet{border-radius:8px 8px 0 0}
.tb-search{position:relative}
.tb-res{position:absolute;top:38px;left:0;right:0;background:var(--surface);color:var(--ink);border-radius:8px;box-shadow:0 8px 16px rgba(0,0,0,.14),0 0 2px rgba(0,0,0,.12);padding:6px;display:grid;gap:2px;max-height:60vh;overflow:auto;z-index:40}
.tb-res:empty{display:none}
.tb-res .rg{font-size:11px;font-weight:600;color:var(--ink-2);padding:6px 8px 2px}
.tb-res button{display:flex;align-items:center;gap:10px;border:0;background:none;text-align:left;font:inherit;font-size:13px;color:var(--ink);padding:7px 8px;border-radius:4px;cursor:pointer}
.tb-res button:hover,.tb-res button.on{background:var(--surface-2)}
.tb-res button svg{color:var(--accent)}.tb-res .av{width:24px;height:24px;font-size:10px}
.tb-res .none{padding:10px 8px;font-size:13px;color:var(--ink-2)}

/* ===== echte app: gebruiker, weeknavigatie, inlogpagina, afdrukken ===== */
.userchip{display:flex;align-items:center;gap:8px;border:0;background:none;font:inherit;color:var(--ink);padding:6px 0 0;cursor:pointer;text-align:left;min-width:0}
.userchip .av{width:26px;height:26px;font-size:10px;flex:none}
.userchip .un{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.userchip:hover .un{text-decoration:underline}
button.tb-av{border:0;cursor:pointer;font:inherit;font-size:12px;font-weight:600}
.wknav button{min-width:40px;font-variant-numeric:tabular-nums}
.side-foot a.btn{text-decoration:none;justify-content:center}
a.btn{text-decoration:none}
.loginpage{min-height:100vh;display:grid;place-items:start center;background:var(--bg);padding:max(24px,env(safe-area-inset-top)) 16px 32px}
.login{width:100%;max-width:440px;display:grid;gap:16px;margin-top:6vh}
.login-logo{justify-content:center;margin-bottom:4px}
.login-card h1{font-size:26px;margin:0 0 12px}
.login-card h2{margin:0 0 6px}
.login-error{border-color:var(--crit);color:var(--crit);background:var(--crit-soft)}
.demo-login{width:100%;border:0;border-bottom:1px solid var(--line);background:none;font:inherit;color:var(--ink);text-align:left;cursor:pointer;gap:12px}
.demo-login:last-child{border-bottom:0}
.demo-login:hover{background:var(--surface-2)}
@media (max-width:900px){.side .loc .userchip{padding:0}.side .loc .userchip .un{display:none}.demo-login .mono{display:none}}
@media print{.side,.topbar,.tabbar,.actions,.filters,.toast,.impbar{display:none!important}.app{display:block}body{background:#fff}.card{box-shadow:none!important;border:1px solid #ccc!important;break-inside:avoid}}
.side-foot a.btn,a.btn{color:var(--ink)}
a.btn.primary{color:var(--accent-ink)}
@media (max-width:700px){
  table.stack{min-width:0!important;width:100%}
  table.stack thead{display:none}
  table.stack tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px;padding:10px 4px;border-bottom:1px solid var(--line)}
  table.stack td{border:0!important;padding:3px 8px!important;text-align:left!important;white-space:normal!important}
  table.stack td:first-child,table.stack td:last-child{grid-column:1/-1}
  table.stack td[data-l]::before{content:attr(data-l);display:block;font-family:var(--f-body);font-size:11px;font-weight:600;color:var(--ink-2)}
  table.stack select{max-width:100%}
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
