/* klant.24x7.nl/v2 — design-systeem (28-10-2026)
   Merk: 24x7-groen #a5c35c op diep antraciet. Licht en donker thema via [data-theme]. */

:root{
  --brand:#a5c35c; --brand-2:#86a83f; --brand-ink:#3f5a17; --brand-soft:rgba(165,195,92,.14);
  --accent:#38bdf8; --violet:#a78bfa; --amber:#f59e0b; --rose:#f43f5e;
  --ok:#22c55e; --warn:#f59e0b; --bad:#ef4444; --info:#38bdf8;

  --bg:#f3f5ef; --bg-2:#e9eee1;
  --card:rgba(255,255,255,.72); --card-solid:#fff; --card-hi:rgba(255,255,255,.9);
  --line:rgba(32,33,28,.08); --line-2:rgba(32,33,28,.14);
  --text:#1b1d16; --text-2:#3a3e33; --muted:#6b7162; --faint:#9aa08f;
  --shadow:0 1px 2px rgba(20,24,10,.04), 0 8px 28px rgba(20,24,10,.06);
  --shadow-hi:0 2px 4px rgba(20,24,10,.05), 0 18px 48px rgba(20,24,10,.12);
  --side:#15160f; --side-2:#1d1f16; --side-text:#d9dccf; --side-muted:#8b9080;
  --mesh-1:rgba(165,195,92,.35); --mesh-2:rgba(56,189,248,.18); --mesh-3:rgba(167,139,250,.16);
  --radius:18px; --radius-sm:12px;
  --chart-grid:rgba(32,33,28,.07); --chart-text:#6b7162;
}
[data-theme="dark"]{
  --bg:#0d0e0a; --bg-2:#121410;
  --card:rgba(27,30,22,.66); --card-solid:#1a1c15; --card-hi:rgba(36,40,30,.85);
  --line:rgba(255,255,255,.07); --line-2:rgba(255,255,255,.13);
  --text:#eef1e6; --text-2:#cdd2c1; --muted:#979d8b; --faint:#6c7262;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 10px 30px rgba(0,0,0,.35);
  --shadow-hi:0 2px 6px rgba(0,0,0,.35), 0 22px 56px rgba(0,0,0,.5);
  --side:#0a0b08; --side-2:#13150f;
  --mesh-1:rgba(165,195,92,.20); --mesh-2:rgba(56,189,248,.10); --mesh-3:rgba(167,139,250,.10);
  --brand-soft:rgba(165,195,92,.16); --brand-ink:#c9e08f;
  --chart-grid:rgba(255,255,255,.06); --chart-text:#979d8b;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%}
body{font-family:'Inter',system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text);
  font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01","tnum"}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
.ico{flex-shrink:0;display:inline-block;vertical-align:middle}
.muted{color:var(--muted)} .faint{color:var(--faint)}
.num{font-variant-numeric:tabular-nums}

/* ---------- achtergrond ---------- */
.bg-mesh{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bg-mesh span{position:absolute;border-radius:50%;filter:blur(90px);opacity:1}
.bg-mesh span:nth-child(1){width:46vw;height:46vw;left:12%;top:-18%;background:var(--mesh-1)}
.bg-mesh span:nth-child(2){width:38vw;height:38vw;right:-10%;top:18%;background:var(--mesh-2);animation-delay:-8s}
.bg-mesh span:nth-child(3){width:34vw;height:34vw;left:30%;bottom:-22%;background:var(--mesh-3);animation-delay:-16s}
@keyframes drift{to{transform:translate(4vw,5vh) scale(1.08)}}
@media (prefers-reduced-motion:reduce){.bg-mesh span{animation:none}*{transition:none!important;animation:none!important}}

/* ---------- app-raamwerk ---------- */
.app{position:relative;z-index:1;display:flex;min-height:100vh}
.side{width:264px;flex-shrink:0;background:linear-gradient(180deg,var(--side) 0%,var(--side-2) 100%);color:var(--side-text);
  display:flex;flex-direction:column;padding:22px 16px 18px;position:sticky;top:0;height:100vh;overflow-y:auto;
  border-right:1px solid rgba(255,255,255,.04)}
.brand{display:flex;flex-direction:column;gap:4px;padding:2px 10px 18px}
.brand img{height:34px;width:auto;align-self:flex-start}
.brand-sub{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--brand);font-weight:700}
.org-switch{padding:0 6px 16px;display:flex;flex-direction:column;gap:6px}
.org-switch label{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--side-muted);font-weight:700}
.org-switch select{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:9px 10px;color:#fff;font-weight:600;cursor:pointer}
.org-switch select option{color:#111}
.org-name{margin:0 6px 14px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);
  font-weight:600;font-size:13px;color:#fff;display:flex;align-items:center;gap:9px;line-height:1.3}
.org-dot{width:8px;height:8px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px rgba(165,195,92,.18);flex-shrink:0}
.nav{display:flex;flex-direction:column;gap:2px}
.nav-groep{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--side-muted);font-weight:700;padding:16px 12px 6px}
.nav a{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:11px;color:var(--side-text);font-weight:500;position:relative;transition:background .15s,color .15s}
.nav a .ico{color:var(--side-muted);transition:color .15s}
.nav a:hover{background:rgba(255,255,255,.05);color:#fff}
.nav a:hover .ico{color:var(--brand)}
.nav a.actief{background:linear-gradient(90deg,rgba(165,195,92,.22),rgba(165,195,92,.06));color:#fff}
.nav a.actief .ico{color:var(--brand)}
.nav a.actief::before{content:"";position:absolute;left:-16px;top:8px;bottom:8px;width:4px;border-radius:0 4px 4px 0;background:var(--brand)}
.nav-badge{margin-left:auto;font-style:normal;background:var(--amber);color:#1b1d16;font-size:11px;font-weight:800;min-width:20px;height:20px;border-radius:10px;display:grid;place-items:center;padding:0 6px}
.side-foot{margin-top:auto;padding-top:16px;display:flex;flex-direction:column;gap:10px}
.side-btn{display:flex;align-items:center;gap:10px;justify-content:center;border:0;cursor:pointer;padding:11px;border-radius:12px;font-weight:700;
  background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#15160f;box-shadow:0 8px 24px rgba(165,195,92,.25);transition:transform .15s,box-shadow .15s}
.side-btn:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(165,195,92,.35)}
.side-link{font-size:12px;color:var(--side-muted);display:flex;align-items:center;gap:6px;justify-content:center}
.side-link:hover{color:#fff}

.main-col{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:16px 32px;
  background:color-mix(in srgb,var(--bg) 70%,transparent);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);
  border-bottom:1px solid var(--line)}
.top-title{flex:1;min-width:0}
.top-title h1{font-size:22px;font-weight:750;letter-spacing:-.02em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-title p{color:var(--muted);font-size:13px;margin-top:2px}
.crumb{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);font-weight:600;margin-bottom:2px}
.crumb:hover{color:var(--brand-2)}
.top-actions{display:flex;align-items:center;gap:8px}
.top-search{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:0 12px;height:40px;color:var(--muted);width:240px;transition:border-color .15s,box-shadow .15s}
.top-search:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.top-search input{border:0;background:transparent;outline:0;width:100%;color:var(--text)}
.icon-btn{position:relative;width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;cursor:pointer;color:var(--text-2);transition:background .15s,transform .15s}
.icon-btn:hover{background:var(--card-hi);transform:translateY(-1px)}
.icon-btn .dot{position:absolute;top:8px;right:9px;width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 3px var(--bg);animation:puls 2s infinite}
[data-theme="light"] .t-moon,[data-theme="dark"] .t-sun{display:none}
.burger{display:none}
.me{position:relative;display:flex;align-items:center;gap:10px;padding:4px 6px 4px 4px;border-radius:14px;cursor:pointer;outline:0}
.me:hover,.me:focus-within{background:var(--card)}
.avatar{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:13px;color:#15160f;
  background:linear-gradient(135deg,var(--brand),#d4e79e)}
.me-txt{display:flex;flex-direction:column;line-height:1.2;max-width:180px}
.me-txt strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me-txt small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:200px;background:var(--card-solid);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-hi);
  padding:6px;display:none;flex-direction:column}
.me:hover .me-menu,.me:focus-within .me-menu{display:flex}
.me::after{content:"";position:absolute;left:0;right:0;top:100%;height:8px}
.me-menu a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;font-size:13px}
.me-menu a:hover{background:var(--brand-soft)}

.content{padding:28px 32px 40px;flex:1;max-width:1600px;width:100%}
.foot{padding:16px 32px 26px;color:var(--faint);font-size:12px}
.foot a:hover{color:var(--brand-2)}
.imp-bar{position:sticky;top:0;z-index:50;background:linear-gradient(90deg,#b45309,#d97706);color:#fff;font-size:13px;padding:8px 16px;display:flex;gap:8px;align-items:center;justify-content:center}
.imp-bar a{background:#fff;color:#b45309;padding:3px 12px;border-radius:999px;font-weight:700;margin-left:8px}

/* ---------- bouwstenen ---------- */
.grid{display:grid;gap:18px}
.g-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-5{grid-template-columns:repeat(5,minmax(0,1fr))}   /* dashboard met de tegel Microsoft 365-status, 13-11-2026 */
.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-hero{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.g-main{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.span-2{grid-column:span 2}
.stack{display:flex;flex-direction:column;gap:18px}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.between{justify-content:space-between}
.mt{margin-top:18px} .mt-s{margin-top:10px} .mb{margin-bottom:18px}

.card{background:var(--card);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);
  border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;position:relative;min-width:0}
.card.pad-0{padding:0}
.card.hover{transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s}
.card.hover:hover{transform:translateY(-3px);box-shadow:var(--shadow-hi)}
.card-h{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.card-h h2{font-size:15px;font-weight:700;letter-spacing:-.01em}
.card-h .sub{color:var(--muted);font-size:12.5px}
.card-h .r{margin-left:auto;display:flex;gap:8px;align-items:center}
.chip-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-2);flex-shrink:0}
[data-theme="dark"] .chip-ico{color:var(--brand)}
.chip-ico.blauw{background:rgba(56,189,248,.14);color:#0ea5e9}
.chip-ico.paars{background:rgba(167,139,250,.16);color:#8b5cf6}
.chip-ico.oranje{background:rgba(245,158,11,.15);color:#d97706}
.chip-ico.rood{background:rgba(239,68,68,.13);color:#dc2626}
.link{color:var(--brand-2);font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:4px}
[data-theme="dark"] .link{color:var(--brand)}
.link:hover{gap:7px}

/* KPI-tegels */
.kpi{display:flex;flex-direction:column;gap:6px;overflow:hidden}
.kpi .k-top{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12.5px;font-weight:600}
.kpi .k-val{font-size:32px;font-weight:800;letter-spacing:-.03em;line-height:1.05}
.kpi .k-val small{font-size:15px;font-weight:700;color:var(--muted);margin-left:3px}
.kpi .k-foot{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:6px}
.kpi .k-spark{position:absolute;right:0;bottom:0;width:55%!important;height:46px!important;opacity:.55;pointer-events:none;z-index:0}
.kpi>*:not(.k-spark){position:relative;z-index:1}
.trend-up{color:var(--ok)} .trend-down{color:var(--bad)}

/* Hero */
.hero{padding:26px 28px;overflow:hidden;
  background:linear-gradient(135deg,rgba(165,195,92,.18),rgba(56,189,248,.06) 60%,transparent),var(--card)}
.hero::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle,rgba(165,195,92,.28),transparent 70%);pointer-events:none}
.hero-hi{font-size:13px;color:var(--muted);font-weight:600}
.hero h2{font-size:28px;font-weight:800;letter-spacing:-.03em;margin:4px 0 6px;line-height:1.15}
.hero p{color:var(--text-2);max-width:560px}
.status-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 13px;border-radius:999px;font-weight:700;font-size:12.5px;margin-top:16px;border:1px solid}
.status-pill i{width:8px;height:8px;border-radius:50%;background:currentColor;animation:puls 2s infinite}
.status-pill.ok{color:#16a34a;background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.25)}
.status-pill.warn{color:#d97706;background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.28)}
.status-pill.bad{color:#dc2626;background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.28)}
@keyframes puls{0%{box-shadow:0 0 0 0 currentColor}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
.hero-acties{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;position:relative;z-index:1}

/* Gezondheidsring */
.health{display:flex;gap:26px;align-items:center}
.ring{position:relative;width:168px;height:168px;flex-shrink:0}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring .r-bg{stroke:var(--line-2)}
.ring .r-fg{transition:stroke-dashoffset 1.6s cubic-bezier(.2,.8,.2,1)}
.ring .r-mid{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring .r-mid b{font-size:44px;font-weight:850;letter-spacing:-.04em;line-height:1}
.ring .r-mid span{font-size:12px;color:var(--muted);font-weight:600;margin-top:2px}
.ring.sm{width:72px;height:72px}
.ring.sm .r-mid b{font-size:18px}
.parts{flex:1;display:flex;flex-direction:column;gap:11px;min-width:0}
.part .p-top{display:flex;justify-content:space-between;font-size:12.5px;font-weight:600;gap:8px}
.part .p-top span:last-child{color:var(--muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar{height:7px;background:var(--line);border-radius:99px;overflow:hidden;margin-top:5px}
.bar i{display:block;height:100%;border-radius:99px;width:0;transition:width 1.4s cubic-bezier(.2,.8,.2,1)}

/* Knoppen */
.btn{display:inline-flex;align-items:center;gap:8px;justify-content:center;padding:10px 16px;border-radius:12px;border:1px solid var(--line-2);
  background:var(--card-hi);font-weight:650;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s;white-space:nowrap;font-size:13.5px}
.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand-2));border-color:transparent;color:#15160f;box-shadow:0 6px 18px rgba(134,168,63,.28)}
.btn-primary:hover{box-shadow:0 10px 26px rgba(134,168,63,.38)}
.btn-ghost{background:transparent}
.btn-danger{color:#dc2626}
.btn-sm{padding:7px 12px;font-size:12.5px;border-radius:10px}
.btn-block{width:100%}
.btn[disabled]{opacity:.55;pointer-events:none}

/* Status-badges */
.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;border:1px solid transparent}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.badge.plain::before{display:none}
.st-nieuw{color:#0284c7;background:rgba(56,189,248,.12);border-color:rgba(56,189,248,.22)}
.st-bezig{color:#7c3aed;background:rgba(167,139,250,.14);border-color:rgba(167,139,250,.25)}
.st-actie{color:#b45309;background:rgba(245,158,11,.15);border-color:rgba(245,158,11,.32)}
.st-klaar{color:#15803d;background:rgba(34,197,94,.11);border-color:rgba(34,197,94,.22)}
.st-down{color:#dc2626;background:rgba(239,68,68,.11);border-color:rgba(239,68,68,.25)}
.st-grijs{color:var(--muted);background:var(--line);border-color:var(--line)}
[data-theme="dark"] .st-nieuw{color:#7dd3fc} [data-theme="dark"] .st-bezig{color:#c4b5fd}
[data-theme="dark"] .st-actie{color:#fcd34d} [data-theme="dark"] .st-klaar{color:#86efac} [data-theme="dark"] .st-down{color:#fca5a5}
.prio-Hoog,.prio-Urgent{color:#dc2626} .prio-Laag{color:var(--muted)}

/* Lijsten */
.list{display:flex;flex-direction:column}
.li{display:flex;align-items:center;gap:14px;padding:13px 4px;border-bottom:1px solid var(--line);min-width:0}
.li:last-child{border-bottom:0}
a.li{border-radius:12px;padding:13px 10px;margin:0 -6px;transition:background .15s}
a.li:hover{background:var(--brand-soft)}
.li-main{flex:1;min-width:0}
.li-t{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.li-s{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.li-r{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0;font-size:12px;color:var(--muted)}
.tk-nr{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:var(--faint);font-weight:600}
.empty{text-align:center;padding:34px 16px;color:var(--muted)}
.empty .ico{color:var(--brand);margin-bottom:8px}

/* Tabellen */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl{width:100%;border-collapse:separate;border-spacing:0}
.tbl th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr{transition:background .12s}
.tbl tbody tr:hover{background:var(--brand-soft)}
.tbl tr[data-href]{cursor:pointer}

/* Segment-tabs / filters */
.tabs{display:inline-flex;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:4px;flex-wrap:wrap}
.tabs a,.tabs button{padding:7px 14px;border-radius:9px;font-weight:600;font-size:13px;color:var(--muted);border:0;background:transparent;cursor:pointer;display:inline-flex;gap:7px;align-items:center}
.tabs a:hover,.tabs button:hover{color:var(--text)}
.tabs .on{background:var(--card-solid);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.08)}
[data-theme="dark"] .tabs .on{background:rgba(255,255,255,.08)}
.tabs .cnt{font-size:11px;background:var(--line);padding:1px 7px;border-radius:99px}
.input,.select,.textarea,.field input,.field select,.field textarea{width:100%;padding:11px 13px;border-radius:12px;border:1px solid var(--line-2);background:var(--card-hi);color:var(--text);outline:0;transition:border-color .15s,box-shadow .15s}
.input:focus,.select:focus,.textarea:focus,.field :is(input,select,textarea):focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.field{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;color:var(--text-2)}
.textarea{min-height:120px;resize:vertical;line-height:1.55}

/* Mini-statistiek */
.mini{display:flex;flex-direction:column;gap:2px;padding:14px;border-radius:14px;background:var(--card-hi);border:1px solid var(--line)}
.mini b{font-size:22px;font-weight:800;letter-spacing:-.02em}
.mini span{font-size:12px;color:var(--muted);font-weight:600}

/* Monitoring */
.dev{display:grid;grid-template-columns:auto minmax(0,1fr) 120px 90px 90px;gap:16px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s}
.dev:hover{background:var(--brand-soft)}
.dev:last-child{border-bottom:0}
.led{width:11px;height:11px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(34,197,94,.15)}
.led.down{background:var(--bad);box-shadow:0 0 0 4px rgba(239,68,68,.18);animation:puls 1.6s infinite;color:var(--bad)}
.led.warn{background:var(--warn);box-shadow:0 0 0 4px rgba(245,158,11,.18)}
.led.grijs{background:var(--faint);box-shadow:0 0 0 4px var(--line)}
.dev-sla{text-align:right;font-weight:750}
.dev-sla small{display:block;font-size:11px;color:var(--muted);font-weight:600}
.spark{width:120px;height:32px}
.uptime-strip{display:flex;gap:3px;height:34px;align-items:stretch}
.uptime-strip i{flex:1;border-radius:3px;background:var(--ok);opacity:.85;transition:transform .12s;position:relative}
.uptime-strip i:hover{transform:scaleY(1.12);opacity:1}
.uptime-strip i.w{background:var(--warn)} .uptime-strip i.b{background:var(--bad)} .uptime-strip i.n{background:var(--line-2)}
.uptime-strip i[data-dag]{cursor:pointer} .uptime-strip i[data-dag]:hover{outline:2px solid var(--text);outline-offset:1px;z-index:1}
.uptime-strip i.gekozen{outline:2px solid var(--text);outline-offset:1px}
.li.gekozen,.hist-rij.gekozen{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}
.meter{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.meter .bar{flex:1;margin:0}

/* Ticket-gesprek */
.thread{display:flex;flex-direction:column;gap:18px}
.msg{display:flex;gap:12px;max-width:86%}
.msg.klant{align-self:flex-end;flex-direction:row-reverse}
.msg .av{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;font-size:12px;font-weight:800;flex-shrink:0;
  background:linear-gradient(135deg,#20211c,#3a3d30);color:var(--brand)}
.msg.klant .av{background:linear-gradient(135deg,var(--brand),#d4e79e);color:#15160f}
.bubble{background:var(--card-hi);border:1px solid var(--line);border-radius:16px;border-top-left-radius:5px;padding:14px 16px;box-shadow:var(--shadow);min-width:0;overflow-wrap:anywhere}
.msg.klant .bubble{border-top-left-radius:16px;border-top-right-radius:5px;background:linear-gradient(135deg,rgba(165,195,92,.16),rgba(165,195,92,.07)),var(--card-hi);border-color:rgba(165,195,92,.3)}
.bubble .b-h{display:flex;gap:10px;align-items:baseline;margin-bottom:6px;font-size:12.5px}
.bubble .b-h strong{font-size:13px}
.bubble .b-h span{color:var(--muted)}
.b-body{line-height:1.6;color:var(--text-2)}
.b-body img{max-width:100%;height:auto;border-radius:10px;margin:6px 0}
.b-body a{color:var(--brand-2);text-decoration:underline}
.b-body p{margin:0 0 .6em} .b-body p:last-child{margin:0}
.b-body blockquote{border-left:3px solid var(--line-2);padding-left:10px;color:var(--muted);margin:8px 0}
.b-body table{max-width:100%}
.sysmsg{align-self:center;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);padding:5px 12px;border-radius:999px}
.reply{position:relative}
.dropzone{border:1.5px dashed var(--line-2);border-radius:12px;padding:10px 12px;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:8px;cursor:pointer;transition:border-color .15s,background .15s}
.dropzone:hover,.dropzone.over{border-color:var(--brand);background:var(--brand-soft)}
.dropzone input{display:none}
/* Feedbackvenster: bijlagen plakken/slepen/kiezen + voorbeeldjes (03-11-2026) */
.fb-drop{width:100%;background:none;text-align:left}
.fb-drop u{color:var(--brand-ink)}
.fb-lijst{display:flex;flex-wrap:wrap;gap:8px;margin-top:-6px}
.fb-item{position:relative;display:flex;align-items:center;gap:8px;max-width:100%;padding:5px 30px 5px 5px;border:1px solid var(--line-2);border-radius:10px;background:var(--card-hi);font-size:12px}
.fb-item img,.fb-ext{width:46px;height:34px;border-radius:7px;flex-shrink:0}
.fb-item img{object-fit:cover;background:var(--line)}
.fb-ext{display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-2);font-size:10px;font-weight:800}
.fb-naam{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}
.fb-weg{position:absolute;top:50%;right:5px;transform:translateY(-50%);width:22px;height:22px;border:0;border-radius:50%;background:none;display:grid;place-items:center;color:var(--muted);font-size:16px;line-height:1;cursor:pointer}
.fb-weg:hover{background:var(--line);color:var(--text)}
/* Eerder ingediende feedback onderaan het venster (03-11-2026) */
.fb-eerder{margin-top:4px;padding-top:14px;border-top:1px solid var(--line-2)}
.fb-eerder-kop{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.fb-eerder-lijst{display:flex;flex-direction:column;gap:6px;max-height:190px;overflow-y:auto}
.fb-eerder-rij{display:flex;align-items:center;gap:10px;font-size:13px}
.fb-eerder-titel{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fb-eerder-rij .faint{font-size:12px;white-space:nowrap}
.filelist{display:flex;gap:6px;flex-wrap:wrap}
.filelist span{font-size:12px;background:var(--line);padding:3px 9px;border-radius:99px}
.meta-dl{display:grid;grid-template-columns:auto 1fr;gap:9px 14px;font-size:13px}
.meta-dl dt{color:var(--muted)}
.meta-dl dd{font-weight:600;text-align:right;min-width:0;overflow-wrap:anywhere}
.alert{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;border:1px solid;font-size:13.5px}
.alert.warn{background:rgba(245,158,11,.1);border-color:rgba(245,158,11,.3);color:var(--text)}
.alert.ok{background:rgba(34,197,94,.09);border-color:rgba(34,197,94,.25)}
.alert.bad{background:rgba(239,68,68,.09);border-color:rgba(239,68,68,.25)}
.alert .ico{margin-top:1px}

/* Team */
.team-leden{display:flex;flex-wrap:wrap;gap:8px}
.lid{display:flex;align-items:center;gap:8px;padding:5px 10px 5px 5px;border-radius:999px;background:var(--card-hi);border:1px solid var(--line);font-size:12.5px;font-weight:600}
.lid i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:800;color:#fff}

/* Modal + toast */
.modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;background:rgba(8,9,6,.5);backdrop-filter:blur(6px);padding:16px}
.modal.open{display:flex;animation:fade .2s}
.modal{align-items:safe center}.modal-card>*{flex-shrink:0}
.modal-card{position:relative;width:min(560px,100%);background:var(--card-solid);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-hi);padding:26px;display:flex;flex-direction:column;gap:14px;animation:pop .25s cubic-bezier(.2,.8,.2,1);max-height:92vh;overflow:auto}
.modal-card h3{font-size:19px;font-weight:800;letter-spacing:-.02em}
.modal-card label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;color:var(--text-2)}
.modal-card input,.modal-card textarea,.modal-card select{width:100%;padding:11px 13px;border-radius:12px;border:1px solid var(--line-2);background:var(--card-hi);outline:0}
.modal-card :is(input,textarea,select):focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.modal-x{position:absolute;top:14px;right:14px;width:34px;height:34px}
.modal-ico{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-2)}
@keyframes fade{from{opacity:0}} @keyframes pop{from{opacity:0;transform:translateY(12px) scale(.97)}}
.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,30px);opacity:0;z-index:200;background:#15160f;color:#fff;padding:12px 18px;border-radius:14px;
  font-weight:600;box-shadow:var(--shadow-hi);transition:all .3s cubic-bezier(.2,.8,.2,1);pointer-events:none;display:flex;gap:8px;align-items:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.ok{border-left:4px solid var(--brand)} .toast.err{border-left:4px solid var(--bad)}

/* Binnenkomst-animatie */
.reveal{animation:rise .6s cubic-bezier(.2,.8,.2,1) both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}}

/* ---------- responsive ---------- */
@media (max-width:1280px){.g-5{grid-template-columns:repeat(3,minmax(0,1fr))}.g-4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-hero,.g-main{grid-template-columns:1fr}}
@media (max-width:1024px){
  .side{position:fixed;left:0;top:0;z-index:60;transform:translateX(-100%);transition:transform .25s}
  .side.open{transform:none}
  .side-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:55;display:none}
  .side-overlay.show{display:block}
  .burger{display:grid}
  .topbar{padding:12px 16px}
  .content{padding:20px 16px 32px}
  .top-search,.me-txt{display:none}
  .g-3,.g-2{grid-template-columns:1fr}
  .g-5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dev{grid-template-columns:auto minmax(0,1fr) 80px}
  .dev .spark-c,.dev .dev-sla.s90{display:none}
}
@media (max-width:640px){
  .g-4,.g-5{grid-template-columns:1fr}
  .health{flex-direction:column;align-items:stretch}.ring{margin:0 auto}
  .msg{max-width:100%}
  .top-title h1{font-size:18px}
  .hero h2{font-size:23px}
}

/* =====================================================================
   Bestaande (v1) pagina's in de nieuwe schil: .legacy
   De v1-inhoud gebruikt eigen klassen (.card, .grid, .table-wrap, table, .button ...).
   Die krijgen hier de nieuwe stijl; de v1-inhoud blijft altijd licht leesbaar (eigen
   inline-kleuren gaan uit van een wit vlak), ook als het donkere thema aan staat.
   ===================================================================== */
.legacy{--groen:#a5c35c;--donker:#20211c;--licht:#f4f6fa;--glas:rgba(255,255,255,.85);--glas-blur:blur(12px);
  --rood:#c00;--rood-soft:#f25050;--oranje:#FFA500;--oranje-soft:#faad39;--geel:#ffff54;--geel-soft:#fcef79}
.legacy-paper{background:#f7f8f4;color:#111;border-radius:22px;padding:26px;border:1px solid rgba(32,33,28,.07);box-shadow:var(--shadow)}
[data-theme="dark"] .legacy-paper{box-shadow:0 20px 60px rgba(0,0,0,.45)}
.legacy-paper .page-header{margin-bottom:22px}
.legacy-paper .page-header h1{font-size:24px;font-weight:800;letter-spacing:-.02em;color:#1b1d16;margin-bottom:4px}
.legacy-paper .page-header p{color:#6b7162}
.legacy-paper .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.legacy-paper .card{background:#fff;border:1px solid rgba(32,33,28,.08);border-left:0;border-radius:16px;box-shadow:0 1px 2px rgba(20,24,10,.04),0 6px 20px rgba(20,24,10,.05);padding:18px;color:#111;backdrop-filter:none;transition:transform .2s,box-shadow .2s}
.legacy-paper a.card:hover,.legacy-paper .card.clickable:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(20,24,10,.1)}
.legacy-paper .card h3{font-size:14px;color:#3a3e33;margin-bottom:8px;font-weight:700}
.legacy-paper .card .big{font-size:28px;font-weight:800;color:#1b1d16;letter-spacing:-.02em}
.legacy-paper .row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.legacy-paper .select,.legacy-paper .input,.legacy-paper .button{border:1px solid #dcdfd5;border-radius:12px;padding:10px 14px;background:#fff;font-size:14px;color:#111}
.legacy-paper .input,.legacy-paper .textarea{display:block;width:100%;max-width:100%}
.legacy-paper .button{cursor:pointer;font-weight:600}
.legacy-paper .button.primary,.legacy-paper .button.success{background:linear-gradient(135deg,#a5c35c,#86a83f);color:#15160f;border:0;box-shadow:0 6px 16px rgba(134,168,63,.28)}
.legacy-paper .muted{color:#6b7162}
.legacy-paper .badge{display:inline-block;padding:4px 9px;border-radius:8px;font-weight:700;font-size:12.5px;border:0}
.legacy-paper .badge::before{display:none}
.legacy-paper .badge.warn{background:#fde7c2;color:#7c4a03}
.legacy-paper .badge.ok{background:#e3f4e8;color:#14532d}
.legacy-paper .table-wrap{background:#fff;border:1px solid rgba(32,33,28,.08);border-radius:16px;overflow:auto}
.legacy-paper table{width:100%;border-collapse:collapse;min-width:900px}
.legacy-paper thead th{background:#fafbf7;color:#4b5043;text-align:left;padding:11px 14px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #eceee6;white-space:nowrap;cursor:pointer}
.legacy-paper tbody td{padding:11px 14px;border-bottom:1px solid #f1f2ec;font-size:13.5px;vertical-align:top}
.legacy-paper tbody tr:hover:not(.hl-yellow):not(.hl-orange):not(.hl-red){background:rgba(165,195,92,.12)}
.legacy-paper .nowrap{white-space:nowrap}
.legacy-paper .hl-red{background:var(--rood-soft)} .legacy-paper .hl-yellow{background:var(--geel-soft)} .legacy-paper .hl-orange{background:var(--oranje-soft)}
.legacy-paper .modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.4);z-index:2000}
.legacy-paper .modal.open{display:flex}
.legacy-paper .modal-card{color:#111;background:#fff}
.legacy-paper .cta{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#3f5a17}
.legacy-paper .cta .chev,.legacy-paper svg.chev{width:14px;height:14px}
.legacy-paper .header-title{display:none}
.legacy-paper .bedrijf-switch{display:none}

/* Zware (v1-)pagina's en apparaten zonder GPU (RDP): geen vervaging achter lagen, statische achtergrond. */
.is-legacy .card,.is-legacy .topbar,.is-legacy .legacy-paper *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.is-legacy .topbar{background:var(--bg)}
.is-legacy .bg-mesh{display:none}
/* E-mailinhoud gaat uit van een wit vlak (zwarte tekst, handtekeningen): in donker thema op een licht 'papiertje' */
[data-theme="dark"] .b-body{background:#f4f6ef;color:#1f2219;border-radius:10px;padding:12px 14px}
[data-theme="dark"] .b-body a{color:#4d6b1f}

/* Klikbare onderdelen: subtiele hover zodat zichtbaar is dat je erop kunt klikken */
a.part-link{display:block;border-radius:10px;padding:4px 6px;margin:0 -6px;transition:background .15s}
a.part-link:hover{background:var(--brand-soft)}
a.part-link .ico{opacity:.45;vertical-align:-1px}
a.mini{transition:background .15s,transform .15s,border-color .15s}
a.mini:hover{background:var(--brand-soft);border-color:rgba(165,195,92,.35);transform:translateY(-1px)}
a.ring{display:block}
.spark-c{position:relative;width:120px;height:44px}.spark-c canvas.spark{position:absolute;inset:0 0 12px 0;width:100%!important;height:32px!important}
.spark-c .faint{position:absolute;left:0;right:0;bottom:0;line-height:1}

/* ---------- Maandrapportage (web) ---------- */
.rap-num{width:30px;height:30px;border-radius:50%;background:var(--brand);color:#15160f;font-weight:800;display:grid;place-items:center;flex-shrink:0}
.rap-zinnen{display:flex;flex-direction:column;gap:6px;font-size:15px;line-height:1.6;color:var(--text-2);max-width:900px}
.rap-tegels{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:16px 0 4px}
.rap-tegel{padding:12px 14px;border-radius:14px;background:var(--card-hi);border:1px solid var(--line);display:flex;flex-direction:column}
.rap-tegel span{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.rap-tegel b{font-size:22px;font-weight:800;letter-spacing:-.02em;margin-top:2px}
.rap-tegel small{font-size:12px;color:var(--faint)}
.rap-2kol{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:22px}
.rap-kop{font-weight:750;font-size:13.5px;margin:18px 0 8px}
.rap-chart{height:230px;position:relative}
.rap-tbl{width:100%;border-collapse:collapse;font-size:13px}
.rap-tbl th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;padding:8px 10px;border-bottom:1px solid var(--line-2)}
.rap-tbl td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
.rap-tbl .r{text-align:right;white-space:nowrap}
.rap-tbl tr[data-href]{cursor:pointer} .rap-tbl tr[data-href]:hover td{background:var(--brand-soft)}
.rap-tbl tr.rap-tot td{border-top:2px solid var(--line-2);font-size:13.5px}
.rap-noot{font-size:11.5px;margin-top:10px}
.rap-let{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:10px;padding:8px 12px;font-size:12.5px;margin-bottom:8px}
.rap-grafieken{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
.rap-donut{height:210px} .rap-donut.rap-donut-groot{height:250px}
.rap-sub{font-size:11px;font-weight:400;margin-top:1px;white-space:nowrap}
.rap-mini{font-size:10px;padding:1px 6px;vertical-align:1px}
.rap-tegel b{white-space:nowrap}
.rap-tegels-sam{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}
.rap-nw{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rap-m{display:flex;align-items:center;gap:7px;font-size:11.5px;line-height:1.5}
.rap-m .l{width:40px;color:var(--muted);flex-shrink:0}
.rap-m .b{flex:1;height:7px;background:var(--line);border-radius:99px;position:relative;overflow:hidden;min-width:40px}
.rap-m .b i{position:absolute;left:0;top:0;bottom:0;border-radius:99px}
.rap-m .b i.pk,.rap-legenda i.pk{background:rgba(139,92,246,.38)}
.rap-m .v{width:74px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums} .rap-m .v em{font-style:normal;color:#8b5cf6}
.rap-legenda{display:flex;gap:14px;justify-content:flex-end;font-size:11.5px;color:var(--muted);margin:-4px 0 6px}
.rap-legenda span{display:inline-flex;align-items:center;gap:5px} .rap-legenda i{width:14px;height:7px;border-radius:99px;display:inline-block}
.rap-tbl .r .rap-sub{text-align:right}
details.inv{border-top:1px solid var(--line);padding:6px 0} details.inv summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:6px 0}
details.inv summary::-webkit-details-marker{display:none}
details.inv summary::before{content:"›";font-weight:800;color:var(--muted);transition:transform .15s;display:inline-block} details.inv[open] summary::before{transform:rotate(90deg)}
@media (max-width:1024px){.rap-2kol{grid-template-columns:1fr}}
.hist-rij:hover{background:var(--brand-soft)} .mb-s{margin-bottom:8px}
[hidden]{display:none!important}

/* X uit het 24x7-logo als watermerk in de welkomstkaart (28-10-2026; vormen uit X-achtergrond-watermerk.svg) */
.x-merk{position:absolute;right:-110px;bottom:-130px;width:440px;height:auto;color:var(--text);opacity:.09;pointer-events:none;z-index:0}
[data-theme="dark"] .x-merk{opacity:.07}
.hero>*:not(.x-merk){position:relative;z-index:1}
@media (max-width:700px){.x-merk{width:300px;right:-90px;bottom:-100px}}
.tbl tr[data-href]{cursor:pointer} .tbl tr[data-href]:hover td{background:var(--brand-soft)}

/* Globale zoekfunctie (topbalk) */
.top-search{position:relative;width:300px}
.zoek-pop{position:absolute;top:calc(100% + 8px);right:0;width:min(520px,92vw);max-height:70vh;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.18);padding:8px;z-index:60;color:var(--text)}
.zoek-pop .zg{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 10px 4px}
.zoek-pop a{display:block;padding:7px 10px;border-radius:9px;color:inherit;text-decoration:none}
.zoek-pop a:hover,.zoek-pop a.akt{background:var(--brand-soft)}
.zoek-pop a b{display:block;font-size:13.5px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zoek-pop a span{display:block;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zoek-pop .alles{border-top:1px solid var(--line);margin-top:6px;font-weight:700;font-size:13px;color:var(--brand-text,var(--text))}
@media (max-width:900px){.top-search{width:170px}}
/* Ticketpagina: informatie rechts scrolt mee met het gesprek (onder de topbalk), lange zijbalk krijgt eigen scroll */
@media (min-width:1281px){.tk-zij{position:sticky;top:96px;align-self:start;max-height:calc(100vh - 112px);overflow-y:auto;scrollbar-width:thin}}

/* Grote schermen (1440p, 4K): alles schaalt mee in plaats van een full-HD-pagina met veel lege ruimte. Alleen op
   het scherm en alleen in de portal (niet in de PDF-export, die meet zijn pagina's zelf). Daarbij mag de inhoud
   breder worden, zodat er naast de schaal ook meer ruimte is. */
@media screen and (min-width:1800px){.v2-app .content{max-width:1880px}}
@media screen and (min-width:2200px){body.v2-app{--z:1.1}}
@media screen and (min-width:2500px){body.v2-app{--z:1.2}}
@media screen and (min-width:2900px){body.v2-app{--z:1.33}}
@media screen and (min-width:3400px){body.v2-app{--z:1.5}.v2-app .content{max-width:2000px}}
/* zoom vergroot ook vh-hoogtes; daarom die terugdelen, anders valt de onderkant van de zijbalk buiten beeld */
@media screen and (min-width:2200px){
  body.v2-app{zoom:var(--z)}
  .v2-app .app{min-height:calc(100vh / var(--z))}
  .v2-app .side{height:calc(100vh / var(--z))}
  .v2-app .tk-zij{max-height:calc(100vh / var(--z) - 112px)}
  .v2-app .modal-card{max-height:calc(92vh / var(--z))}   /* anders hoger dan het scherm: bovenkant onbereikbaar (T-00538) */
  .v2-app .zoek-pop{max-height:calc(70vh / var(--z))}
}

/* Lichte stand (html.v2-licht, gezet in de kop bij rekenen zonder grafische kaart): massieve kaarten in plaats van
   glas, geen vervaagde achtergrond, geen animaties of overgangen. Ziet er bijna hetzelfde uit, maar kost de
   processor niets meer bij scrollen. Handmatig: localStorage v2-licht = aan / uit. */
html.v2-licht .bg-mesh{display:none}
html.v2-licht *,html.v2-licht *::before,html.v2-licht *::after{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;animation:none!important;transition:none!important}
html.v2-licht .card{background:var(--card-solid)}
html.v2-licht .topbar{background:var(--bg)}
html.v2-licht .reveal{opacity:1!important;transform:none!important}

/* Maandrapportage: vaste balk met maand + hoofdstukken (top wordt per pagina gezet op de hoogte van de topbalk) */
.rap-balk{position:sticky;top:72px;z-index:15;display:flex;flex-direction:column;gap:8px;padding:10px 12px;margin-left:-12px;margin-right:-12px;
  background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);border-radius:0 0 14px 14px}
.rap-hfd{display:flex;gap:6px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin;padding-bottom:2px}
.rap-hfd a{padding:5px 11px;font-size:12.5px;white-space:nowrap;flex-shrink:0}
.rap-hfd a.on{background:var(--brand);color:#15160f;border-color:var(--brand)}
.rap-sectie{scroll-margin-top:var(--rap-marge,150px)}
html.v2-licht .rap-balk{background:var(--bg)}
@media (max-width:700px){.rap-pdf-tekst{display:none}}

/* Ticket: vorige/volgende uit de lijst (ticket.php) */
.tk-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tk-nav a[aria-disabled]{opacity:.4;pointer-events:none}
.tk-nav kbd{font:600 11px/1 inherit;padding:2px 6px;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:5px;background:var(--card-hi)}
@media (max-width:700px){.tk-nav-hint{display:none}}


/* ===== Meekijk-modus: "Blur gevoelige data" (Profiel; 13-11-2026) =====
   Alle tekst in de inhoud wordt onleesbaar (kleur weg + vage schaduw, licht voor RDP zonder GPU), net als de klantnaam,
   de ingelogde gebruiker en de zoekresultaten bovenin. Leesbaar blijven alleen de bediening: menu, paginatitel, tabjes,
   knoppen, kolomkoppen, kaarttitels, tegeltitels en labels. Grafieken en afbeeldingen blijven bewust gewoon zichtbaar (alleen tekst). */
body.blur-enabled main.content *:not(:is(.card-h h2, .card-h h3, .tabs a, .tabs button, .btn, button, th, .k-top, label, .chip-ico, svg.ico, .modal-x)):not(:is(.card-h h2, .card-h h3, .tabs a, .tabs button, .btn, button, th, .k-top, label, .chip-ico) *),
body.blur-enabled .top-title p, body.blur-enabled .top-title p *,
body.blur-enabled .me-txt, body.blur-enabled .me-txt *, body.blur-enabled .avatar,
body.blur-enabled .org-name, body.blur-enabled .org-switch select,
body.blur-enabled .zoek-pop, body.blur-enabled .zoek-pop *,
body.blur-enabled .imp-bar strong{
  color:transparent !important; -webkit-text-fill-color:transparent !important; text-shadow:0 0 .55em var(--text) !important; user-select:none;
}
body.blur-enabled main.content :is(.card-h h2, .card-h h3, .tabs a, .tabs button, .btn, button, th, .k-top, label, .chip-ico, svg.ico){
  text-shadow:none !important; -webkit-text-fill-color:currentColor !important;
}
:where(body.blur-enabled main.content) :where(.card-h h2, .card-h h3, label, a.btn){ color:var(--text) }
:where(body.blur-enabled main.content) :where(svg.ico){ color:var(--muted) }
body.blur-enabled main.content ::placeholder{ color:transparent !important; }
