/* Contentmaker: plat en rustig (2027) */
:root{
  --bg:#f4f5f7;
  --vlak:#ffffff;
  --vlak-2:#fafafb;
  --lijn:#e6e7eb;
  --lijn-2:#d7d9df;
  --inkt:#101217;
  --inkt-2:#3a3e48;
  --zacht:#727785;
  --accent:#5b5bf7;
  --accent-2:#4646e0;
  --accent-zacht:#ececfe;
  --idee:#f59e0b; --idee-z:#fff4e0;
  --concept:#0ea5e9; --concept-z:#e3f5fd;
  --klaar:#10b981; --klaar-z:#e3f7ef;
  --rood:#e5484d; --rood-z:#fdecec;
  --r:14px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.5;color:var(--inkt);background:var(--bg);-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
[hidden]{display:none!important}
.zacht{color:var(--zacht)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Knoppen */
.knop{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 16px;border-radius:12px;border:0;font-weight:600;font-size:14px;transition:background .15s,color .15s}
.knop-vol{background:var(--accent);color:#fff}
.knop-vol:hover{background:var(--accent-2)}
.knop-gevaar{background:var(--rood)!important;color:#fff}
.knop-tekst{background:transparent;color:var(--inkt-2)}
.knop-tekst:hover{background:rgba(16,18,23,.06)}
.knop-breed{width:100%}
.knop-klein{height:34px;padding:0 10px;font-size:13px}
.knop svg{width:18px;height:18px}
.icoonknop{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;border:0;background:transparent;color:var(--inkt-2);transition:background .15s}
.icoonknop:hover{background:rgba(16,18,23,.06)}
.icoonknop[aria-pressed=true]{background:var(--accent-zacht);color:var(--accent)}

/* Merk */
.merk{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;letter-spacing:-.01em}
.merk-blok{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--accent);color:#fff;font-size:15px;font-weight:700}

/* Inloggen */
body.los{display:grid;place-items:center;min-height:100vh;padding:24px}
.inlog{width:100%;max-width:400px}
.inlog-kaart{background:var(--vlak);border:1px solid var(--lijn);border-radius:20px;padding:36px}
.inlog h1{font-size:28px;letter-spacing:-.02em;margin:28px 0 6px}
.inlog p{margin:0 0 24px}
.formulier{display:grid;gap:16px}
.formulier label{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--inkt-2)}
.formulier input{height:46px;border:1px solid var(--lijn-2);border-radius:12px;padding:0 14px;background:var(--vlak);font-weight:400;font-size:15px}
.formulier input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-zacht)}
.formulier .knop{height:48px;margin-top:6px}
.hint{font-size:13px;color:var(--zacht);margin:-6px 0 0!important}
.melding{background:var(--rood-z);color:#a3242a;border-radius:12px;padding:12px 14px;font-size:14px;font-weight:500}

/* Schil: drie kolommen */
.schil{display:grid;grid-template-columns:272px 360px minmax(0,1fr);height:100vh;height:100dvh}

/* Zijbalk */
.zij{background:var(--vlak);border-right:1px solid var(--lijn);display:flex;flex-direction:column;gap:14px;padding:18px 14px;overflow-y:auto}
.zij-kop{padding:4px 6px 8px}
.zoek{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:12px;background:var(--bg);color:var(--zacht)}
.zoek svg{width:17px;height:17px}
.zoek input{flex:1;border:0;background:transparent;outline:none;min-width:0;color:var(--inkt)}
.boom{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.boom-item{display:flex;align-items:center;gap:10px;width:100%;height:36px;padding:0 10px;border:0;border-radius:10px;background:transparent;text-align:left;color:var(--inkt-2);font-weight:500}
.boom-item span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.boom-item em{font-style:normal;font-size:12px;color:var(--zacht);font-weight:500}
.boom-item svg{width:17px;height:17px;color:var(--zacht)}
.boom-item:hover{background:var(--bg)}
.boom-item.actief{background:var(--accent-zacht);color:var(--accent-2)}
.boom-item.actief svg,.boom-item.actief em{color:var(--accent)}
.boom-cat{margin-top:10px;display:flex;flex-direction:column;gap:2px}
.boom-item.cat{font-weight:600;color:var(--inkt)}
.boom-item.map{padding-left:30px;height:34px}
.stip{width:10px;height:10px;border-radius:3px;flex:0 0 10px;display:inline-block}
.boom-plus{align-self:flex-start;margin-left:30px;border:0;background:transparent;color:var(--zacht);font-size:13px;font-weight:500;padding:4px 10px;border-radius:8px}
.boom-plus:hover{color:var(--accent);background:var(--accent-zacht)}
.zij-voet{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 6px 0;border-top:1px solid var(--lijn);font-size:13px;color:var(--zacht)}
.gebruiker{font-weight:600;color:var(--inkt-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Lijst */
.lijst{background:var(--vlak-2);border-right:1px solid var(--lijn);display:flex;flex-direction:column;min-width:0;overflow:hidden}
.lijst-kop{display:flex;align-items:flex-start;gap:10px;padding:22px 18px 10px}
.lijst-titel{flex:1;min-width:0}
.kruimel{display:block;font-size:12px;font-weight:600;color:var(--zacht);text-transform:uppercase;letter-spacing:.06em}
.lijst-titel h1{margin:2px 0 0;font-size:22px;letter-spacing:-.02em;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lijst-acties{display:flex;gap:2px}
.filters{display:flex;gap:6px;padding:4px 18px 14px;overflow-x:auto;scrollbar-width:none}
.filters::-webkit-scrollbar{display:none}
.filters button{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:8px;border:1px solid var(--lijn);background:var(--vlak);font-size:13px;font-weight:500;color:var(--inkt-2);white-space:nowrap}
.filters button em{font-style:normal;color:var(--zacht);font-size:12px}
.filters button[aria-checked=true]{background:var(--inkt);border-color:var(--inkt);color:#fff}
.filters button[aria-checked=true] em{color:rgba(255,255,255,.65)}
.status-stip{width:8px;height:8px;border-radius:50%;display:inline-block}
.status-stip.s-idee{background:var(--idee)}
.status-stip.s-concept{background:var(--concept)}
.status-stip.s-klaar{background:var(--klaar)}
.kaarten{flex:1;overflow-y:auto;padding:0 12px 24px;display:flex;flex-direction:column;gap:8px}
.kaart{display:flex;flex-direction:column;gap:6px;text-align:left;width:100%;padding:14px 16px;border-radius:var(--r);border:1px solid var(--lijn);background:var(--vlak);transition:border-color .15s}
.kaart:hover{border-color:var(--lijn-2)}
.kaart.actief{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-zacht)}
.kaart strong{font-size:15px;font-weight:600;line-height:1.35;letter-spacing:-.005em}
.fragment{font-size:13px;color:var(--zacht);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kaart-boven{display:flex;align-items:center;justify-content:space-between;gap:8px}
.plek{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--zacht);min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.plek .stip{width:8px;height:8px;flex-basis:8px}
.label{font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px;letter-spacing:.01em}
.label.s-idee{background:var(--idee-z);color:#a76800}
.label.s-concept{background:var(--concept-z);color:#0b7bad}
.label.s-klaar{background:var(--klaar-z);color:#0a8a5f}
.kaart-onder{display:flex;justify-content:space-between;font-size:12px;color:var(--zacht);margin-top:2px}
.kaart{cursor:pointer}
.kaart:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button.label{display:inline-flex;align-items:center;gap:3px;border:0;cursor:pointer;font-family:inherit;line-height:1.4;transition:filter .15s}
button.label svg{width:12px;height:12px;stroke-width:2.4;opacity:.7}
button.label:hover{filter:brightness(.95)}
.status-kiezer{position:fixed;z-index:60;min-width:160px;background:var(--vlak);border:1px solid var(--lijn);border-radius:12px;padding:5px;box-shadow:0 18px 40px -20px rgba(16,18,23,.35)}
.status-kiezer button{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;padding:8px 10px;border-radius:8px;font-size:14px;color:var(--inkt-2);text-align:left}
.status-kiezer button:hover{background:var(--bg)}
.status-kiezer button[aria-checked=true]{font-weight:600;color:var(--inkt)}
.status-kiezer button[aria-checked=true]::after{content:"✓";margin-left:auto;color:var(--accent)}
.lijst-acties .knop-klein{height:34px;padding:0 12px;gap:6px}
.lijst-acties .knop-klein svg{width:16px;height:16px}
.leeg{padding:40px 24px;text-align:center;color:var(--zacht)}

/* Editor */
.editor{background:var(--vlak);display:flex;flex-direction:column;min-width:0;overflow:hidden}
.editor-leeg{margin:auto;text-align:center;padding:40px;max-width:360px}
.editor-leeg h2{font-size:19px;letter-spacing:-.01em;margin:18px 0 6px}
.editor-leeg p{margin:0}
.leeg-icoon{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:18px;background:var(--accent-zacht);color:var(--accent)}
.leeg-icoon svg{width:28px;height:28px}
.editor-werk{display:flex;flex-direction:column;height:100%;overflow:hidden}
.editor-balk{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--lijn)}
.segment{display:inline-flex;padding:3px;border-radius:11px;background:var(--bg);gap:2px}
.segment button{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:0;border-radius:8px;background:transparent;font-size:13px;font-weight:500;color:var(--inkt-2)}
.segment button[aria-checked=true]{background:var(--vlak);color:var(--inkt);box-shadow:0 0 0 1px var(--lijn)}
.opslag{font-size:12px;color:var(--zacht);white-space:nowrap}
.opslag[data-soort=ok]::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--klaar);margin-right:6px;vertical-align:middle}
.opslag[data-soort=bezig]{color:var(--inkt-2)}
.opslag[data-soort=fout]{color:var(--rood)}
.balk-acties{margin-left:auto;display:flex;gap:2px}
.menu-wrap{position:relative}
.uitklap{position:absolute;right:0;top:44px;z-index:20;min-width:210px;background:var(--vlak);border:1px solid var(--lijn);border-radius:14px;padding:6px;box-shadow:0 18px 40px -20px rgba(16,18,23,.35)}
.uitklap button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:9px 12px;border-radius:9px;font-size:14px;color:var(--inkt-2)}
.uitklap button:hover{background:var(--bg)}
.uitklap .gevaar{color:var(--rood)}
.uitklap hr{border:0;border-top:1px solid var(--lijn);margin:6px 0}

.schrijfvlak{flex:1;overflow-y:auto;padding:40px 24px 24px}
.schrijfvlak>*{max-width:740px;margin-left:auto;margin-right:auto;display:block}
.titel-veld{width:100%;border:0;outline:none;font-size:clamp(26px,3vw,36px);font-weight:700;letter-spacing:-.025em;line-height:1.2;padding:0;background:transparent}
.titel-veld::placeholder{color:#c4c7cf}
.opmaak{display:flex!important;flex-wrap:wrap;gap:4px;margin-top:18px!important;margin-bottom:6px!important;padding-bottom:12px;border-bottom:1px dashed var(--lijn)}
.opmaak button{min-width:34px;height:32px;padding:0 8px;border:1px solid var(--lijn);border-radius:8px;background:var(--vlak);font-size:13px;font-weight:600;color:var(--inkt-2)}
.opmaak button:hover{border-color:var(--lijn-2);background:var(--bg)}
.tekst-veld{width:100%;min-height:320px;border:0;outline:none;resize:none;font-size:17px;line-height:1.75;padding:12px 0 40px;background:transparent;color:var(--inkt)}
.tekst-veld::placeholder{color:#c4c7cf}
.voorbeeld{font-size:17px;line-height:1.75;padding-top:8px;padding-bottom:40px}
.voorbeeld h1{font-size:34px;letter-spacing:-.025em;line-height:1.2;margin:0 0 20px}
.voorbeeld h2{font-size:24px;letter-spacing:-.015em;margin:32px 0 10px}
.voorbeeld h3,.voorbeeld h4{font-size:19px;margin:24px 0 8px}
.voorbeeld p{margin:0 0 16px}
.voorbeeld a{color:var(--accent-2)}
.voorbeeld blockquote{margin:0 0 16px;padding:4px 0 4px 18px;border-left:3px solid var(--accent);color:var(--inkt-2)}
.voorbeeld ul,.voorbeeld ol{margin:0 0 16px;padding-left:22px}

.seo{border-top:1px solid var(--lijn);padding:14px 24px 18px;background:var(--vlak-2)}
.seo>*{max-width:740px;margin-left:auto;margin-right:auto}
.tellers{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--zacht);margin-bottom:12px}
.tellers b{color:var(--inkt);font-weight:600}
.vink{font-style:normal;font-size:11px;font-weight:600;padding:2px 7px;border-radius:6px;margin-left:6px}
.vink.ja{background:var(--klaar-z);color:#0a8a5f}
.vink.nee{background:var(--bg);color:var(--zacht)}
.seo-velden{display:grid;grid-template-columns:1fr 2fr;gap:12px}
.seo-velden label{display:grid;gap:6px;font-size:12px;font-weight:600;color:var(--inkt-2);align-content:start}
.seo-velden input,.seo-velden textarea{width:100%;border:1px solid var(--lijn);border-radius:10px;padding:9px 12px;background:var(--vlak);font-weight:400;font-size:14px;resize:vertical}
.seo-velden input:focus,.seo-velden textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-zacht)}
.teller{float:right;font-weight:500;color:var(--zacht)}
.teller[data-soort=ok]{color:#0a8a5f}
.teller[data-soort=let]{color:#a76800}

/* Venster */
.venster{border:0;border-radius:18px;padding:0;width:min(420px,calc(100vw - 32px));box-shadow:0 30px 60px -20px rgba(16,18,23,.4)}
.venster::backdrop{background:rgba(16,18,23,.35)}
.venster form{padding:24px;display:grid;gap:14px}
.venster h2{margin:0;font-size:19px;letter-spacing:-.01em}
.venster p{margin:-6px 0 0;font-size:14px}
.venster input,.venster select{width:100%;height:44px;border:1px solid var(--lijn-2);border-radius:12px;padding:0 12px;background:var(--vlak)}
.venster input:focus,.venster select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-zacht)}
.venster-knoppen{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--inkt);color:#fff;padding:11px 18px;border-radius:12px;font-size:14px;font-weight:500;z-index:100}
.sluier{position:fixed;inset:0;background:rgba(16,18,23,.35);z-index:40}
.alleen-mobiel{display:none}

/* Tablet en mobiel */
@media (max-width:1180px){
  .schil{grid-template-columns:240px 300px minmax(0,1fr)}
}
@media (max-width:900px){
  .schil{grid-template-columns:minmax(0,1fr)}
  .alleen-mobiel{display:inline-grid}
  .zij{position:fixed;inset:0 auto 0 0;width:280px;z-index:50;transform:translateX(-100%);transition:transform .25s ease}
  .schil.menu-open .zij{transform:none}
  .schil[data-weergave=lijst] .editor{display:none}
  .schil[data-weergave=editor] .lijst{display:none}
  .lijst{border-right:0}
  .editor-balk{padding:10px 12px;gap:8px}
  .segment button{padding:0 9px}
  .opslag{display:none}
  .schrijfvlak{padding:24px 18px}
  .seo{padding:12px 18px 16px}
  .seo-velden{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
