@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-sans/files/ibm-plex-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-sans/files/ibm-plex-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-sans/files/ibm-plex-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans Condensed";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-cond/files/ibm-plex-sans-condensed-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-cond/files/ibm-plex-sans-condensed-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans Condensed";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plex-cond/files/ibm-plex-sans-condensed-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains/files/jetbrains-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains/files/jetbrains-mono-latin-500-normal.woff2) format("woff2")}
html{color-scheme:light}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
:root{
  --bg:#f5f5f6; --surface:#ffffff; --surface-2:#eeeef0; --line:#e0dfe2; --line-strong:#c9c8cc;
  --ink:#1a1a1a; --ink-2:#4a4a4f; --muted:#6b6b6b;
  --red:#dc1428; --red-ink:#b3101f; --red-soft:#fbe9eb; --on-red:#ffffff;
  --code-bg:#f3f3f5; --code-ink:#1f1f24; --c-cmt:#7d7d86; --c-str:#1f7a4d; --c-cmd:#1d4fa3; --c-par:#8a4b00; --c-var:#8a2a7a;
  --ph-bg:#fde4e7; --ph-ink:#a30d1c; --ph-fill-bg:#e2f3e9; --ph-fill-ink:#155e3a;
  --shadow:0 12px 40px rgba(26,26,26,.16);
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --cond:"IBM Plex Sans Condensed","Arial Narrow",system-ui,sans-serif;
  --mono:"JetBrains Mono",Consolas,"Cascadia Mono",ui-monospace,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  color-scheme:dark;
  --bg:#141416; --surface:#1c1c1f; --surface-2:#242428; --line:#2e2e33; --line-strong:#3d3d43;
  --ink:#ededee; --ink-2:#c2c2c7; --muted:#9a9aa1;
  --red:#ff4658; --red-ink:#ff6b7a; --red-soft:#3a1a1e; --on-red:#ffffff;
  --code-bg:#111113; --code-ink:#e6e6e8; --c-cmt:#7f7f88; --c-str:#7fd3a3; --c-cmd:#8db7ff; --c-par:#f0b36b; --c-var:#e59ad6;
  --ph-bg:#4a1c22; --ph-ink:#ffb3bb; --ph-fill-bg:#173a28; --ph-fill-ink:#9ce3b9;
  --shadow:0 12px 40px rgba(0,0,0,.5);
}}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#141416; --surface:#1c1c1f; --surface-2:#242428; --line:#2e2e33; --line-strong:#3d3d43;
  --ink:#ededee; --ink-2:#c2c2c7; --muted:#9a9aa1;
  --red:#ff4658; --red-ink:#ff6b7a; --red-soft:#3a1a1e; --on-red:#ffffff;
  --code-bg:#111113; --code-ink:#e6e6e8; --c-cmt:#7f7f88; --c-str:#7fd3a3; --c-cmd:#8db7ff; --c-par:#f0b36b; --c-var:#e59ad6;
  --ph-bg:#4a1c22; --ph-ink:#ffb3bb; --ph-fill-bg:#173a28; --ph-fill-ink:#9ce3b9;
  --shadow:0 12px 40px rgba(0,0,0,.5);
}
*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font:15px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--red-ink)}
:focus-visible{outline:2px solid var(--red);outline-offset:2px}

.app{display:grid;grid-template-rows:auto 1fr;height:100%}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--surface);border-bottom:1px solid var(--line);
  display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:12px 20px}
.brand{display:flex;flex-direction:column;line-height:1.1}
.brand b{font:700 11px/1 var(--cond);letter-spacing:.22em;color:var(--red)}
.brand span{font:600 19px/1.2 var(--cond);letter-spacing:.01em}
.search{position:relative;max-width:640px;width:100%}
.search input{width:100%;height:42px;border:1px solid var(--line-strong);border-radius:8px;background:var(--bg);padding:0 44px 0 40px;font-size:15px}
.search input:focus{border-color:var(--red);outline:none;box-shadow:0 0 0 3px var(--red-soft)}
.search svg{position:absolute;left:12px;top:12px;width:18px;height:18px;color:var(--muted)}
.search kbd{position:absolute;right:10px;top:10px;font:500 11px/20px var(--mono);padding:0 6px;border:1px solid var(--line-strong);border-radius:4px;color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:7px;border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;font-weight:500;font-size:14px;white-space:nowrap}
.btn:hover{border-color:var(--ink-2)}
.btn.primary{background:var(--red);border-color:var(--red);color:var(--on-red)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{border-color:transparent;background:transparent}
.btn.ghost:hover{background:var(--surface-2)}
.btn.danger{color:var(--red-ink)}
.btn[disabled]{opacity:.5;cursor:not-allowed}

.main{display:grid;grid-template-columns:220px 360px minmax(0,1fr);min-height:0}
.cats{border-right:1px solid var(--line);padding:18px 12px;overflow:auto}
.cats h3{font:600 11px/1 var(--cond);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 8px 10px}
.cat{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:left;border:0;background:none;padding:7px 10px;border-radius:6px;cursor:pointer;color:var(--ink-2);font-size:14px}
.cat:hover{background:var(--surface-2)}
.cat.on{background:var(--red-soft);color:var(--red-ink);font-weight:600}
.cat .n{font:500 12px/1.6 var(--mono);color:var(--muted);font-variant-numeric:tabular-nums}
.cat.on .n{color:var(--red-ink)}
.status{margin:18px 8px 0;font-size:12px;color:var(--muted)}

.list{border-right:1px solid var(--line);overflow:auto;background:var(--surface)}
.list-head{padding:12px 16px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:1}
.item{display:block;width:100%;text-align:left;border:0;background:none;border-bottom:1px solid var(--line);padding:12px 16px 13px;cursor:pointer;position:relative}
.item:hover{background:var(--surface-2)}
.item.on{background:var(--red-soft)}
.item.on::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--red)}
.item .t{font-weight:600;font-size:14px;line-height:1.35;display:block}
.item .m{display:block;font-size:12px;color:var(--muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item .s{display:block;font-size:12.5px;color:var(--ink-2);margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
mark{background:#ffe38a;color:#1a1a1a;border-radius:2px;padding:0 1px}
.empty{padding:28px 16px;color:var(--muted);font-size:14px}

.view{overflow:auto;padding:28px 40px 60px}
.art{max-width:860px}
.back{display:none}
.eyebrow{font:600 12px/1 var(--cond);letter-spacing:.14em;text-transform:uppercase;color:var(--red-ink)}
.art h1{font:600 30px/1.15 var(--cond);margin:8px 0 10px;text-wrap:balance}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font:500 12px/1 var(--sans);padding:5px 8px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);border:0;cursor:pointer}
.tag:hover{background:var(--line)}
.meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:14px 0 22px;padding-bottom:16px;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.meta .sp{flex:1}
.actions{display:flex;gap:6px;flex-wrap:wrap}
.confirm{display:flex;gap:8px;align-items:center;background:var(--red-soft);color:var(--red-ink);padding:6px 10px;border-radius:7px;font-size:13px}

.ph-panel{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:14px 16px;margin:0 0 22px}
.ph-panel h4{margin:0 0 4px;font:600 13px/1.2 var(--sans)}
.ph-panel p{margin:0 0 10px;font-size:12.5px;color:var(--muted)}
.ph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.ph-grid label{display:flex;flex-direction:column;gap:3px;font:500 11.5px/1.2 var(--mono);color:var(--ph-ink)}
.ph-grid input{height:34px;border:1px solid var(--line-strong);border-radius:6px;padding:0 10px;background:var(--bg);font:14px var(--sans);color:var(--ink)}

.md{font-size:15px;max-width:74ch}
.md p{margin:0 0 12px}
.md h3{font:600 17px/1.3 var(--cond);margin:22px 0 8px}
.md ul,.md ol{margin:0 0 14px;padding-left:22px}
.md li{margin:3px 0}
.md code{font:500 .86em/1.4 var(--mono);background:var(--code-bg);padding:1px 5px;border-radius:4px;color:var(--code-ink)}
.md blockquote{margin:0 0 16px;padding:10px 14px;border-left:3px solid var(--red);background:var(--red-soft);border-radius:0 6px 6px 0}
.md blockquote::before{content:"Praktijk";display:block;font:600 11px/1 var(--cond);letter-spacing:.14em;text-transform:uppercase;color:var(--red-ink);margin-bottom:6px}
.md blockquote p{margin:0}
.md img{display:block;max-width:100%;height:auto;border:1px solid var(--line);border-radius:6px;margin:6px 0 4px}
.md figure{margin:10px 0 18px}
.md figcaption{font-size:12px;color:var(--muted)}
.tbl{overflow-x:auto;margin:0 0 16px;max-width:100%}
.md table{border-collapse:collapse;font-size:13.5px;min-width:100%}
.md th{text-align:left;background:var(--ink);color:var(--bg);font-weight:600;padding:7px 10px}
.md td{border-bottom:1px solid var(--line);padding:7px 10px;vertical-align:top}
.code{position:relative;margin:4px 0 16px;border-radius:8px;background:var(--code-bg);border:1px solid var(--line)}
.code .lang{position:absolute;left:12px;top:8px;font:500 10.5px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.code pre{margin:0;padding:30px 14px 14px;overflow-x:auto;font:13px/1.6 var(--mono);color:var(--code-ink);tab-size:2}
.code .copy{position:absolute;right:8px;top:6px;height:26px;padding:0 10px;font-size:12px;border-radius:5px;border:1px solid var(--line-strong);background:var(--surface);cursor:pointer}
.code .copy.ok{color:var(--c-str);border-color:var(--c-str)}
.k-cmt{color:var(--c-cmt);font-style:italic}.k-str{color:var(--c-str)}.k-cmd{color:var(--c-cmd)}.k-par{color:var(--c-par)}.k-var{color:var(--c-var)}
.ph{background:var(--ph-bg);color:var(--ph-ink);border-radius:3px;padding:0 2px}
.ph.filled{background:var(--ph-fill-bg);color:var(--ph-fill-ink)}

.welcome{max-width:640px}
.welcome h1{font:600 30px/1.15 var(--cond);margin:0 0 10px}
.welcome p{color:var(--ink-2)}
.welcome ul{padding-left:20px;color:var(--ink-2)}
.notice{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:16px 18px;max-width:620px}

/* Editor */
.drawer-bg{position:fixed;inset:0;background:rgba(10,10,12,.45);z-index:20}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(980px,100%);background:var(--surface);z-index:21;box-shadow:var(--shadow);display:grid;grid-template-rows:auto 1fr auto;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.drawer header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line)}
.drawer header h2{margin:0;font:600 20px/1.2 var(--cond)}
.drawer .body{overflow:auto;padding:18px 20px;display:grid;gap:14px;align-content:start}
.drawer footer{display:flex;gap:8px;justify-content:flex-end;align-items:center;padding:12px 20px;border-top:1px solid var(--line)}
.drawer footer .err{margin-right:auto;color:var(--red-ink);font-size:13px}
.f{display:grid;gap:5px}
.f>span{font:600 12px/1 var(--sans);color:var(--ink-2)}
.f input,.f select,.f textarea{border:1px solid var(--line-strong);border-radius:7px;background:var(--bg);padding:8px 10px}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--red);outline:none}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.edit-split{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-height:380px}
.edit-split textarea{font:13px/1.55 var(--mono);min-height:420px;resize:vertical;width:100%}
.preview{border:1px solid var(--line);border-radius:7px;padding:14px;overflow:auto;max-height:560px;background:var(--bg)}
.toolbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.hint{font-size:12px;color:var(--muted)}
.hint code{font:500 11.5px var(--mono);background:var(--surface-2);padding:0 4px;border-radius:3px}
.tabs{display:none}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:9px 16px;border-radius:8px;font-size:13.5px;z-index:40}

@media (max-width:1100px){
  .main{grid-template-columns:320px minmax(0,1fr);grid-template-rows:auto 1fr}
  .cats{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--line);padding:10px 16px;display:flex;gap:6px;overflow-x:auto;background:var(--surface)}
  .cats h3,.status{display:none}
  .cat{width:auto;white-space:nowrap;gap:8px;border:1px solid var(--line);border-radius:999px;padding:5px 12px}
  .view{padding:24px 28px 60px}
}
@media (max-width:760px){
  .top{grid-template-columns:1fr auto;padding:10px 16px;gap:10px}
  .search{grid-column:1/-1;grid-row:2;max-width:none}
  .search kbd{display:none}
  .main{grid-template-columns:minmax(0,1fr)}
  .list{border-right:0}
  .main.reading .list{display:none}
  .main:not(.reading) .view{display:none}
  .back{display:inline-flex;margin:0 0 14px -8px}
  .view{padding:16px 16px 60px}
  .art h1{font-size:25px}
  .row2,.edit-split{grid-template-columns:1fr}
  .tabs{display:flex;gap:6px}
  .edit-split[data-tab="edit"] .preview,.edit-split[data-tab="preview"] textarea{display:none}
  .drawer .body{padding:14px 16px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* Zelfgehoste uitbreidingen */
.mt{margin-top:14px}
.side-links{display:grid;gap:2px;margin:18px 0 0;padding-top:12px;border-top:1px solid var(--line)}
.linkbtn{display:block;text-align:left;border:0;background:none;padding:6px 10px;border-radius:6px;color:var(--ink-2);font-size:13px;text-decoration:none;cursor:pointer}
.linkbtn:hover{background:var(--surface-2);color:var(--ink)}
.hist{list-style:none;padding:0;margin:18px 0 0;border-top:1px solid var(--line)}
.hist-row{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:baseline;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:11px 6px;cursor:pointer}
.hist-row:hover{background:var(--surface-2)}
.hv{font:500 12.5px var(--mono);color:var(--muted);font-variant-numeric:tabular-nums}
.ha{font-weight:500}
.hm{font-size:12.5px;color:var(--muted)}
.rev-banner{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:14px 0 18px;font-size:13.5px}
.trash{list-style:none;padding:0;margin:16px 0 0;border-top:1px solid var(--line)}
.trash li{display:flex;gap:12px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:12px 4px}
.trash li div{display:grid;gap:2px}
.toast-btn{margin-left:10px;background:none;border:1px solid currentColor;color:inherit;border-radius:5px;padding:2px 8px;cursor:pointer;font-size:12.5px}
.drawer footer .who{flex-direction:row;display:flex;align-items:center;gap:8px;margin-right:auto}
.drawer footer .who input{width:180px;height:34px}
@media (max-width:1100px){.side-links{display:flex;border-top:0;margin:0;padding:0;gap:6px}.side-links .linkbtn{white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:5px 12px}}
@media (max-width:760px){.drawer footer{flex-wrap:wrap}.drawer footer .who{width:100%}.drawer footer .who input{flex:1;width:auto}}
