@font-face{font-family:'Poppins';font-style:normal;font-weight:400;src:url('../fonts/poppins-400.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;src:url('../fonts/poppins-600.woff2') format('woff2')}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;src:url('../fonts/poppins-700.woff2') format('woff2')}
  :root{
    --blue:#3D61F6; --blue-deep:#2A46C4; --green:#63D991; --green-ink:#1E7A4C;
    --ink:#0E1526; --ink-2:#3A4358; --mute:#69727D; --line:#E3E8F1;
    --ground:#F4F6FA; --card:#FFFFFF;
    --warn:#E8A020; --danger:#E8422C;
    --display:"Avenir Next","Futura",-apple-system,"Segoe UI",sans-serif;
    --body:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
    --poppins:"Poppins",var(--body);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  [hidden]{display:none!important}
  body{background:var(--ground);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.5}
  button{font-family:inherit;cursor:pointer}

  /* ── intro ── */
  .intro{max-width:1280px;margin:0 auto;padding:36px 24px 20px}
  .intro .eyebrow{font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
  .intro h1{font-family:var(--display);font-size:clamp(26px,3.4vw,38px);font-weight:700;letter-spacing:-.01em;text-wrap:balance;margin:6px 0 10px}
  .intro p{max-width:64ch;color:var(--ink-2)}
  .intro .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
  .intro .chip{font-size:12px;padding:5px 12px;border-radius:99px;background:#fff;border:1px solid var(--line);color:var(--ink-2)}
  .intro .chip b{color:var(--ink)}
  .swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}

  /* ── app frame ── */
  .frame{max-width:1280px;margin:20px auto 56px;padding:0 24px}
  .browser{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card);box-shadow:0 24px 60px -30px rgba(14,21,38,.25)}
  .browser-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#EDF0F6;border-bottom:1px solid var(--line)}
  .dot{width:10px;height:10px;border-radius:50%;background:#CBD3E0}
  .urlbar{flex:1;max-width:420px;margin-left:10px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:4px 12px;font-size:12px;color:var(--mute)}
  html,body{height:100%}
  .app-root{min-height:100vh;display:flex}
  .app{display:flex;flex:1;min-height:100vh;position:relative}

  /* ── sidebar ── */
  .side{width:216px;flex:none;background:var(--blue);color:#D6DEFB;display:flex;flex-direction:column;padding:18px 12px 18px 16px;position:relative}
  .side::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--green)}
  .logo{display:flex;align-items:center;gap:10px;padding:4px 10px 18px}
  .logo-mark{width:30px;height:30px;border-radius:9px;background:#fff;display:grid;place-items:center;flex:none}
  .logo-mark svg{display:block}
  .logo-word{font-family:var(--display);font-weight:700;font-size:16px;color:#fff;letter-spacing:.01em}
  .logo-word span{color:var(--green)}
  .nav-label{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#A8B8F5;padding:12px 10px 6px;font-weight:600}
  .nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;color:#D6DEFB;padding:8px 10px;border-radius:8px;font-size:13.5px;font-weight:500}
  .nav-item svg{flex:none;opacity:.8}
  .nav-item:hover{background:rgba(255,255,255,.12);color:#fff}
  .nav-item.active{background:#fff;color:var(--blue-deep)}
  .nav-item.active svg{opacity:1}
  .nav-item .count{margin-left:auto;font-size:11px;background:rgba(255,255,255,.18);border-radius:99px;padding:1px 7px;font-variant-numeric:tabular-nums}
  .nav-item.active .count{background:#E8EDFE;color:var(--blue-deep)}
  .side-foot{margin-top:auto;padding:14px 10px 4px;display:flex;align-items:center;gap:10px;border-top:1px solid rgba(255,255,255,.16)}
  .avatar{width:28px;height:28px;border-radius:50%;background:var(--green);color:var(--ink);display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}
  .side-foot .who{font-size:12px;line-height:1.3;flex:1;min-width:0}
  .side-foot .who b{color:#fff;display:block;font-weight:600}
  .uitlog{flex:none;width:30px;height:30px;border-radius:8px;border:0;background:rgba(255,255,255,.10);color:rgba(255,255,255,.82);display:grid;place-items:center;cursor:pointer;transition:background .15s,color .15s}
  .uitlog:hover{background:rgba(255,255,255,.20);color:#fff}

  /* ── main ── */
  .main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--ground)}
  .topbar{display:flex;align-items:center;gap:14px;padding:14px 24px;background:var(--card);border-bottom:1px solid var(--line)}
  .search{flex:1;max-width:420px;display:flex;align-items:center;gap:8px;background:var(--ground);border:1px solid var(--line);border-radius:9px;padding:7px 12px;color:var(--mute);font-size:13px}
  .kbd{margin-left:auto;font-size:10px;border:1px solid var(--line);background:#fff;border-radius:4px;padding:1px 5px;color:var(--mute)}
  .btn{border:0;border-radius:9px;padding:8px 16px;font-size:13px;font-weight:600}
  .btn-primary{background:var(--blue);color:#fff}
  .btn-primary:hover{background:var(--blue-deep)}
  .btn-ghost{background:#fff;border:1px solid var(--line);color:var(--ink-2)}
  .view{padding:22px 24px;display:none}
  .view.active{display:block}
  .view-head{display:flex;align-items:baseline;gap:12px;margin-bottom:16px;flex-wrap:wrap}
  .view-head h2{font-family:var(--display);font-size:20px;font-weight:700}
  .view-head .sub{color:var(--mute);font-size:13px}
  .view-head .right{margin-left:auto;display:flex;gap:8px;align-items:center}
  .terug{border:0;background:none;color:var(--blue);font-size:13px;font-weight:600;padding:0}
  .terug:hover{text-decoration:underline}

  /* pills & badges */
  .pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;border-radius:99px;padding:3px 10px}
  .pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
  .pill.groen{background:#E4F8ED;color:var(--green-ink)}
  .pill.blauw{background:#E8EDFE;color:var(--blue-deep)}
  .pill.amber{background:#FBF1DC;color:#9A6A0B}
  .pill.rood{background:#FCE7E3;color:#B02E1C}
  .pill.grijs{background:#EEF1F6;color:var(--mute)}
  .tag{font-size:11px;font-weight:600;border-radius:5px;padding:2px 7px}
  .tag.web{background:#E8EDFE;color:var(--blue-deep)}
  .tag.camp{background:#E4F8ED;color:var(--green-ink)}
  .tag.brand{background:#FBF1DC;color:#9A6A0B}
  .tag.lead{background:#F1E9FB;color:#6B3FA0}
  .tag.ext{background:#EEF1F6;color:var(--mute)}
  .num{font-variant-numeric:tabular-nums}
  .netto-v{color:var(--green-ink);font-weight:600}

  /* cards */
  .card{background:var(--card);border:1px solid var(--line);border-radius:12px}
  .card h3{font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.02em;padding:14px 16px 0}

  /* ── dashboard ── */
  .kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}
  @media (max-width:1080px){.kpis{grid-template-columns:repeat(2,1fr)}}
  .kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}
  .kpi .lbl{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:600}
  .kpi .val{font-family:var(--display);font-size:26px;font-weight:700;margin-top:6px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
  .kpi .note{font-size:12px;color:var(--mute);margin-top:2px}
  .kpi .note b{font-weight:600}
  .kpi .note .up{color:var(--green-ink)} .kpi .note .down{color:var(--danger)}
  .dash-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;align-items:start}
  @media (max-width:1080px){.dash-grid{grid-template-columns:1fr}}
  .worklist{list-style:none}
  .worklist li{display:flex;align-items:center;gap:12px;padding:11px 16px;border-top:1px solid var(--line)}
  .worklist li:first-of-type{border-top:0}
  .worklist .onr{font-size:11.5px;color:var(--mute);width:44px;flex:none;font-variant-numeric:tabular-nums}
  .worklist .naam{font-weight:600;font-size:13.5px}
  .worklist .oms{color:var(--mute);font-size:12.5px}
  .worklist .fase{margin-left:auto;flex:none}
  .prog{width:90px;height:5px;border-radius:99px;background:var(--line);overflow:hidden;flex:none}
  .prog i{display:block;height:100%;border-radius:99px;background:var(--blue)}
  .flowstrip{display:flex;align-items:center;gap:0;padding:16px;overflow-x:auto}
  .flow-step{flex:1;min-width:96px;text-align:center;position:relative;padding:10px 6px}
  .flow-step .fs-n{font-family:var(--display);font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
  .flow-step .fs-l{font-size:11px;color:var(--mute);letter-spacing:.06em;text-transform:uppercase;font-weight:600}
  .flow-step + .flow-step::before{content:"";position:absolute;left:0;top:50%;width:1px;height:34px;transform:translateY(-50%);background:var(--line)}
  .todo{list-style:none}
  .todo li{display:flex;gap:10px;align-items:flex-start;padding:10px 16px;border-top:1px solid var(--line);font-size:13px}
  .todo li:first-of-type{border-top:0}
  .cbx{width:15px;height:15px;border:1.5px solid #C4CCDC;border-radius:4px;flex:none;margin-top:2px}
  .todo .van{color:var(--mute);font-size:11.5px;display:block}
  .spark{padding:6px 16px 16px}

  /* ── planbord ── */
  .board-tools{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
  .fchip{font-size:12px;font-weight:600;border-radius:99px;border:1px solid var(--line);background:#fff;color:var(--ink-2);padding:5px 12px}
  .fchip.on{background:var(--ink);border-color:var(--ink);color:#fff}
  .board{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px}
  .col{width:236px;flex:none;background:#EDF0F6;border-radius:12px;padding:10px}
  .col-head{display:flex;align-items:center;gap:8px;padding:2px 6px 10px}
  .col-head b{font-family:var(--display);font-size:12.5px;font-weight:600}
  .col-head .cnt{margin-left:auto;font-size:11px;color:var(--mute);font-variant-numeric:tabular-nums}
  .col-dot{width:8px;height:8px;border-radius:50%;flex:none}
  .kcard{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 11px;margin-bottom:8px;box-shadow:0 1px 2px rgba(14,21,38,.05)}
  .kcard:hover{border-color:#C4CFEA}
  .kcard .t{font-size:12.5px;font-weight:600;line-height:1.35}
  .kcard .meta{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}
  .kcard .ref{font-size:10.5px;color:var(--mute);font-variant-numeric:tabular-nums;background:var(--ground);border:1px solid var(--line);border-radius:4px;padding:1px 5px}
  .addcard{width:100%;border:0;background:none;color:var(--mute);font-size:12px;text-align:left;padding:6px;border-radius:7px}
  .addcard:hover{background:rgba(14,21,38,.05);color:var(--ink)}

  /* ── tabellen ── */
  .tablewrap{overflow-x:auto}
  table.data{width:100%;border-collapse:collapse;font-size:13px;background:var(--card)}
  table.data th{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);text-align:left;font-weight:600;padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap}
  table.data td{padding:12px 16px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}
  table.data tr:last-child td{border-bottom:0}
  table.data tr:hover td{background:#FAFBFE}
  td.r,th.r{text-align:right}
  .cel-naam b{display:block;font-weight:600}
  .cel-naam span{color:var(--mute);font-size:12px}

  /* offertes pipeline header */
  .pipe{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}
  @media (max-width:1080px){.pipe{grid-template-columns:repeat(2,1fr)}}
  .pipe .stage{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;border-top:3px solid var(--line)}
  .pipe .stage.s1{border-top-color:#C4CCDC}
  .pipe .stage.s2{border-top-color:var(--blue)}
  .pipe .stage.s3{border-top-color:var(--warn)}
  .pipe .stage.s4{border-top-color:var(--green)}
  .pipe .stage .n{font-family:var(--display);font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
  .pipe .stage .l{font-size:12px;color:var(--mute)}
  .pipe .stage .v{font-size:12px;font-weight:600;margin-top:2px;font-variant-numeric:tabular-nums}

  /* ── offerte-editor (eigen pagina) ── */
  .editor-grid{display:grid;grid-template-columns:1fr 288px;gap:14px;align-items:start}
  @media (max-width:1080px){.editor-grid{grid-template-columns:1fr}}
  .mrow2{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 16px}
  @media (max-width:700px){.mrow2{grid-template-columns:1fr}}
  .mfield{display:block;font-size:11.5px;font-weight:600;color:var(--mute)}
  .mfield input,.mfield select{display:block;width:100%;margin-top:4px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit;color:var(--ink);background:#fff}
  .mfield input:focus,.mfield select:focus{outline:2px solid var(--blue);outline-offset:0;border-color:var(--blue)}
  .afspraak{margin:0 16px 14px;font-size:12px;background:#E4F8ED;color:var(--green-ink);border-radius:8px;padding:8px 12px;display:none}
  .afspraak.tonen{display:block}

  .leeg{padding:34px 16px;text-align:center;color:var(--mute);font-size:13px}
  .leeg b{display:block;color:var(--ink);font-family:var(--display);font-size:14px;margin-bottom:4px}

  #regels-lijst{padding:14px 16px 2px}
  .eregel{background:#fff;border:1px solid var(--line);border-radius:11px;padding:16px 18px;margin-bottom:12px;box-shadow:0 1px 2px rgba(14,21,38,.05)}
  .eregel.sleep{opacity:.4}
  .eregel.sleep-over{border-color:var(--blue);box-shadow:0 0 0 2px #D9E2FD}
  .grip{cursor:grab;color:#C4CCDC;font-size:15px;letter-spacing:-1px;flex:none;user-select:none;padding:0 2px}
  .grip:hover{color:var(--mute)}
  .grip:active{cursor:grabbing}
  .eregel-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .eregel-top .pnaam{font-weight:600;font-size:13.5px}
  .eregel-top .ref{font-size:10.5px;color:var(--mute);font-variant-numeric:tabular-nums;background:var(--ground);border:1px solid var(--line);border-radius:4px;padding:1px 5px}
  .badge-afspraak{font-size:10.5px;font-weight:700;color:var(--green-ink);background:#E4F8ED;border-radius:5px;padding:2px 8px}
  .opt-toggle{display:flex;align-items:center;gap:5px;font-size:11px;color:#6B3FA0;font-weight:600;margin-left:auto}
  .opt-toggle input{accent-color:#6B3FA0}
  .rx{border:0;background:none;color:#C4CCDC;font-size:13px;padding:2px 6px;border-radius:5px}
  .rx:hover{color:var(--danger);background:#FCE7E3}
  .especs{display:block;width:100%;margin-top:12px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:12.5px;line-height:1.6;font-family:inherit;color:var(--ink-2);resize:vertical;min-height:84px;background:#FAFBFE}
  .especs:focus{outline:2px solid var(--blue);border-color:var(--blue);background:#fff}
  .evelden{display:flex;align-items:flex-end;gap:18px;margin-top:14px;flex-wrap:wrap}
  .evelden label{font-size:10.5px;font-weight:600;color:var(--mute);display:block}
  .evelden input{display:block;margin-top:4px;border:1px solid var(--line);border-radius:7px;padding:8px 10px;font-size:12.5px;width:104px;text-align:right;font-variant-numeric:tabular-nums}
  .evelden input:focus{outline:2px solid var(--blue);border-color:var(--blue)}
  .rnetto{margin-left:auto;text-align:right;font-size:11.5px;color:var(--mute)}
  .rnetto b{display:block;font-size:13.5px;color:var(--green-ink);font-variant-numeric:tabular-nums}
  .toevoegbar{display:flex;gap:10px;padding:6px 16px 16px;flex-wrap:wrap;align-items:center}
  .zoekwrap{position:relative;flex:1;min-width:240px}
  .zoekwrap input{width:100%;border:1px solid var(--line);border-radius:9px;padding:10px 13px;font-size:13px;font-family:inherit;background:#fff}
  .zoekwrap input:focus{outline:2px solid var(--blue);border-color:var(--blue)}
  .suggesties{position:absolute;left:0;right:0;bottom:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px -14px rgba(14,21,38,.35);overflow:hidden;display:none;z-index:6}
  .suggesties.open{display:block}
  .sug{display:flex;justify-content:space-between;gap:12px;padding:10px 13px;font-size:12.5px;cursor:pointer}
  .sug + .sug{border-top:1px solid #F0F3F8}
  .sug:hover,.sug.actief{background:#E8EDFE}
  .sug b{font-weight:600}
  .sug .sp{color:var(--mute);font-variant-numeric:tabular-nums;white-space:nowrap}
  .demo-knop{border:0;background:none;color:var(--mute);font-size:11.5px;text-decoration:underline;margin-left:auto}

  /* ── offerte-header velden ── */
  .hdr-grid{display:flex;flex-direction:column;gap:15px;padding:16px}
  .hdr-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  @media (max-width:700px){.hdr-2{grid-template-columns:1fr}}
  .mfield .opt{font-weight:400;color:var(--mute);text-transform:none;font-size:10.5px;margin-left:4px}
  .hdr-grid .afspraak{margin:9px 0 0}
  .og-veld{margin-top:5px}
  .og-zoekwrap{position:relative}
  .og-zoekwrap input{width:100%;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:13px;font-family:inherit;background:#fff}
  .og-zoekwrap input:focus{outline:2px solid var(--blue);border-color:var(--blue)}
  #og-suggesties{top:calc(100% + 6px);bottom:auto}
  .og-gekozen{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
  .og-chip{display:inline-flex;align-items:center;gap:9px;background:#E8EDFE;color:var(--blue-deep);border-radius:8px;padding:7px 8px 7px 13px;font-size:13px}
  .og-chip b{font-weight:600}
  .og-chip button{border:0;background:rgba(42,70,196,.16);color:var(--blue-deep);width:18px;height:18px;border-radius:5px;font-size:11px;line-height:1;cursor:pointer}
  .og-chip button:hover{background:rgba(42,70,196,.28)}
  .og-tav{font-size:11.5px;font-weight:600;color:var(--mute);display:flex;align-items:center;gap:7px}
  .og-tav select{border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:12.5px;font-family:inherit;color:var(--ink)}
  .og-tav select:focus{outline:2px solid var(--blue);border-color:var(--blue)}
  .tags-veld{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:5px;border:1px solid var(--line);border-radius:8px;padding:7px 9px;background:#fff}
  .tags-veld:focus-within{outline:2px solid var(--blue);border-color:var(--blue)}
  .tag-chip{display:inline-flex;align-items:center;gap:7px;background:var(--ground);border:1px solid var(--line);border-radius:6px;padding:4px 5px 4px 10px;font-size:12px;font-weight:600;color:var(--ink-2)}
  .tag-chip button{border:0;background:none;color:var(--mute);cursor:pointer;font-size:11px;line-height:1;padding:0}
  .tag-chip button:hover{color:var(--danger)}
  .tags-veld input{border:0;outline:0;flex:1;min-width:140px;font-size:12.5px;font-family:inherit;padding:4px 2px;background:none}

  /* ── editor-footer (opslaan onderaan) ── */
  .editor-foot{display:flex;gap:8px;justify-content:flex-end;align-items:center;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
  @media (max-width:560px){.editor-foot{flex-wrap:wrap}.editor-foot .btn{flex:1}}

  /* ── sleepbare planbordkaarten & klikbare opdrachten ── */
  .kcard{cursor:grab}
  .kcard:active{cursor:grabbing}
  .kcard.sleep{opacity:.4}
  .col.sleep-over{outline:2px dashed #B7C4EC;outline-offset:-4px}
  #v-opdrachten tbody tr{cursor:pointer}

  /* ── Raakreclame-logo in de zijbalk ── */
  .brand-logo{width:150px;height:auto;display:block;margin:2px 2px 0}

  /* ── rechterkolom: netto + losse actieknoppen uitgelijnd ── */
  .rechterkolom{position:sticky;top:14px;display:flex;flex-direction:column;gap:14px}
  .acties-blok{display:flex;flex-direction:column;gap:8px}
  .acties-kop{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:600;padding:2px 2px 2px}
  .acties-knoppen{display:flex;flex-direction:column;gap:8px}
  .actie-knop{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 15px;font-size:13px;font-weight:600;color:var(--ink);box-shadow:0 1px 2px rgba(14,21,38,.05)}
  .actie-knop:hover{border-color:#C4CFEA;background:#FAFBFE}
  .actie-knop::after{content:"›";margin-left:auto;color:#C4CCDC;font-size:16px;line-height:1}
  .actie-knop .sub{display:block;font-weight:400;color:var(--mute);font-size:11.5px;margin-top:1px}
  .actie-knop.primair{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 6px 16px -8px rgba(61,97,246,.6)}
  .actie-knop.primair:hover{background:var(--blue-deep)}
  .actie-knop.primair::after{color:rgba(255,255,255,.75)}
  #v-facturen tbody tr,#v-offertes tbody tr{cursor:pointer}

  .totpanel .trow{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:5px 16px}
  .totpanel .trow .num{font-variant-numeric:tabular-nums}
  .totpanel .trow.big{font-family:var(--display);font-weight:700;font-size:15px;border-top:1px solid var(--line);margin-top:6px;padding-top:11px}
  .totpanel .nettoblok{margin:10px 12px 4px;background:#E4F8ED;border-radius:9px;padding:10px 12px}
  .totpanel .nettoblok .nb-l{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--green-ink)}
  .totpanel .nettoblok .nb-v{font-family:var(--display);font-size:20px;font-weight:700;color:var(--green-ink);font-variant-numeric:tabular-nums}
  .totpanel .nettoblok .nb-s{font-size:11.5px;color:var(--green-ink)}
  .totpanel .knoppen{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px}

  /* ── klantvoorbeeld (Poppins, rustig) ── */
  .klantwrap{display:flex;justify-content:center}
  .a4{background:#fff;font-family:var(--poppins);width:100%;max-width:720px}
  .a4-head{position:relative;background:var(--blue);color:#fff;padding:20px 34px 20px 40px;display:flex;justify-content:space-between;gap:20px;align-items:center;border-radius:10px 10px 0 0}
  .a4-head::before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--green);border-radius:10px 0 0 0}
  .a4-payoff{font-weight:600;font-size:12.5px;line-height:1.45;max-width:24ch}
  .a4-payoff em{color:var(--green);font-style:italic}
  .a4-logo{font-weight:700;font-size:24px;letter-spacing:-.02em;line-height:1}
  .a4-logo span{color:var(--green);font-weight:600;font-size:12px;letter-spacing:.02em}
  .a4-body{padding:30px 40px 34px;border:1px solid var(--line);border-top:0;border-radius:0 0 10px 10px;background:#fff}
  .a4-body h1{font-size:21px;font-weight:700;margin:0 0 14px;font-family:var(--poppins)}
  .a4-meta{font-size:12px;color:var(--mute);display:grid;grid-template-columns:110px 1fr;row-gap:3px;margin-bottom:22px}
  .a4-meta b{color:var(--ink);font-weight:600}
  .a4-sec-titel{font-size:12.5px;font-weight:700;margin:22px 0 2px;display:flex;justify-content:space-between;gap:12px}
  .a4-line{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid #EEF1F6;font-size:12.5px}
  .a4-line b{font-weight:600}
  .a4-line .oms{color:var(--mute);font-size:11.5px;margin-top:2px;max-width:52ch;white-space:pre-line}
  .a4-line .num{white-space:nowrap;font-variant-numeric:tabular-nums}
  .a4-opt{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid #EEF1F6;font-size:12.5px;align-items:flex-start;cursor:pointer}
  .a4-opt input{accent-color:var(--green-ink);width:15px;height:15px;margin-top:2px;flex:none;cursor:pointer}
  .a4-opt .ot{font-weight:600}
  .a4-opt .od{color:var(--mute);font-size:11.5px;margin-top:1px;max-width:48ch;white-space:pre-line}
  .a4-opt .op{margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}
  .a4-tot{margin-top:22px;margin-left:auto;max-width:300px;font-size:12.5px}
  .a4-tot .trow{display:flex;justify-content:space-between;gap:20px;padding:4px 0}
  .a4-tot .trow .num{font-variant-numeric:tabular-nums}
  .a4-tot .trow.big{font-weight:700;font-size:14px;border-top:1px solid var(--line);margin-top:6px;padding-top:9px}
  .accept{display:block;width:100%;margin-top:22px;background:var(--green);color:#0E3A22;font-family:var(--poppins);font-weight:700;font-size:13.5px;border:0;border-radius:9px;padding:12px}
  .accept:hover{filter:brightness(.96)}
  .a4-kleinood{text-align:center;color:var(--mute);font-size:10.5px;margin-top:10px}

  /* schets-states */
  .sketch{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  @media (max-width:1080px){.sketch{grid-template-columns:1fr}}
  .sketch .card{padding:16px}
  .sketch h4{font-family:var(--display);font-size:14px;margin-bottom:6px}
  .sketch p{color:var(--mute);font-size:13px;max-width:52ch}
  .sketch ul{margin:10px 0 0 18px;color:var(--ink-2);font-size:13px}
  .sketch li{margin:4px 0}
  .fase2{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);background:#E8EDFE;border-radius:5px;padding:2px 8px;margin-bottom:10px}

  /* toelichting */
  .notes{max-width:1280px;margin:0 auto 64px;padding:0 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
  .note-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}
  .note-card .nr{font-family:var(--display);font-weight:700;color:var(--blue);font-size:13px}
  .note-card h4{font-family:var(--display);font-size:15px;margin:4px 0 6px}
  .note-card p{font-size:13px;color:var(--ink-2)}
  @media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
  .nav-item:focus-visible,.btn:focus-visible,.fchip:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* ══════════ App-uitbreidingen (echte werkende versie) ══════════ */

/* toast */
.toast-host{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:200}
.toast{background:var(--ink);color:#fff;font-size:13px;font-weight:600;padding:11px 16px;border-radius:10px;box-shadow:0 12px 30px -10px rgba(14,21,38,.5);display:flex;align-items:center;gap:9px;opacity:0;transform:translateY(8px);transition:opacity .18s,transform .18s}
.toast.in{opacity:1;transform:none}
.toast.ok::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green)}
.toast.info::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--blue)}
.toast.fout::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--danger)}

/* generieke modal */
.overlay{position:fixed;inset:0;background:rgba(14,21,38,.45);display:none;align-items:flex-start;justify-content:center;padding:44px 20px;z-index:150;overflow:auto}
.overlay.open{display:flex}
.modal{background:#fff;border-radius:14px;width:100%;max-width:520px;box-shadow:0 30px 80px -20px rgba(14,21,38,.45);display:flex;flex-direction:column}
.modal-head{display:flex;align-items:center;gap:12px;padding:16px 22px;border-bottom:1px solid var(--line)}
.modal-head b{font-family:var(--display);font-size:16px}
.modal-head .x{margin-left:auto;border:0;background:none;font-size:16px;color:var(--mute);padding:4px 8px;border-radius:6px;cursor:pointer}
.modal-head .x:hover{background:var(--ground);color:var(--ink)}
.modal-body{padding:20px 22px;display:flex;flex-direction:column;gap:12px}
.modal-foot{display:flex;gap:8px;justify-content:flex-end;padding:14px 22px;border-top:1px solid var(--line)}
.veld-rij{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.veld-rij{grid-template-columns:1fr}}

/* rij-acties (potlood/prullenbak) */
.rij-acts{display:flex;gap:6px;justify-content:flex-end}
.mini{border:1px solid var(--line);background:#fff;border-radius:7px;width:28px;height:28px;display:grid;place-items:center;color:var(--mute);cursor:pointer;font-size:13px}
.mini:hover{border-color:#C4CFEA;color:var(--ink)}
.mini.rood:hover{border-color:#F3C0B7;color:var(--danger);background:#FCE7E3}

/* status-badge klikbaar */
.statusknop{cursor:pointer;border:0;font-family:inherit}

/* + kaart invoer op planbord */
.kaart-invoer{width:100%;border:1px solid var(--blue);border-radius:9px;padding:8px 10px;font-size:12.5px;font-family:inherit;margin-bottom:8px}
.kaart-invoer:focus{outline:2px solid var(--blue)}

/* lege staat */
.leeg-tabel{padding:40px 16px;text-align:center;color:var(--mute);font-size:13px}

/* zoek-resultaat markering */
tr.verborgen{display:none}

/* dashboard todo checkbox werkend */
.todo .cbx{cursor:pointer}
.todo li.af .cbx{background:var(--green);border-color:var(--green)}
.todo li.af span{text-decoration:line-through;color:var(--mute)}

/* + Nieuw menu */
.nieuw-wrap{position:relative}
.nieuw-menu{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px -14px rgba(14,21,38,.35);overflow:hidden;display:none;z-index:30;min-width:190px}
.nieuw-menu.open{display:block}
.nieuw-menu button{display:block;width:100%;text-align:left;border:0;background:none;padding:10px 15px;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer}
.nieuw-menu button+button{border-top:1px solid #F0F3F8}
.nieuw-menu button:hover{background:#E8EDFE;color:var(--blue-deep)}

/* reseed-knop */
.reseed{margin-top:8px;font-size:11px;color:var(--mute);background:none;border:0;text-decoration:underline;cursor:pointer;padding:2px}
.reseed:hover{color:var(--danger)}
.rm-data-uitleg{font-size:12.5px;color:var(--mute);line-height:1.45;margin:2px 0 10px}
.rm-data{display:flex;gap:10px;flex-wrap:wrap}
.rm-data .btn{font-size:13px}

/* ══════════ Layout-correcties ══════════ */
/* zijbalk vult de volledige hoogte */
.side{min-height:100vh}
/* zoekbalk: input erin zonder eigen kader */
.search{color:var(--mute)}
.search svg{flex:none}
.search input{border:0;background:none;outline:none;flex:1;min-width:0;font-family:inherit;font-size:13px;color:var(--ink)}
.search input::placeholder{color:var(--mute)}
.search:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(61,97,246,.12)}
/* topbar blijft bovenaan staan bij scrollen */
.topbar{position:sticky;top:0;z-index:40}

/* ══════════ mail-modal ══════════ */
.modal{max-width:600px}
.mail-veld{display:flex;gap:12px;font-size:13px;padding:2px 0}
.mail-veld .mail-l{width:70px;flex:none;color:var(--mute);font-weight:600}
.mail-preview{border:1px solid var(--line);border-radius:10px;padding:18px 20px;font-family:var(--poppins);font-size:13px;line-height:1.6;color:var(--ink);background:#fff;max-height:340px;overflow:auto}
.mail-preview a{color:var(--blue);font-weight:600}
.mail-preview img{max-width:100%;height:auto}
.mail-hint{font-size:11.5px;color:var(--mute);background:var(--ground);border-radius:8px;padding:9px 12px;line-height:1.5}

/* ══════════ ontwikkeling-knop + roadmap ══════════ */
.dev-knop{margin-top:auto;margin-bottom:6px;width:100%;text-align:left;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:9px;padding:9px 12px;font-size:12.5px;font-weight:600;cursor:pointer}
.dev-knop:hover{background:rgba(255,255,255,.18)}
.side-foot{margin-top:0}
.rm-kop{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin:4px 0 2px}
.rm-kop.rm-klaar{color:var(--green-ink)}
.rm-kop.rm-todo{color:var(--blue)}
.rm-lijst{list-style:none;display:flex;flex-direction:column;gap:6px;margin:6px 0 10px}
.rm-lijst li{font-size:13px;padding:9px 12px;border-radius:8px;display:flex;align-items:flex-start;gap:9px}
.rm-af{background:#E4F8ED;color:var(--green-ink)}
.rm-af::before{content:"✓";font-weight:700}
.rm-open{background:var(--ground);color:var(--ink-2)}
.rm-open::before{content:"○";color:var(--mute)}

/* ══════════ aantekeningen ══════════ */
.notitie-veld{display:block;width:100%;margin-top:5px;border:1px solid var(--line);border-radius:8px;padding:9px 11px;font-size:12.5px;line-height:1.5;font-family:inherit;color:var(--ink);resize:vertical;min-height:66px;background:#fff}
.notitie-veld:focus{outline:2px solid var(--blue);border-color:var(--blue)}
.notitie-badge{color:var(--blue);display:inline-flex;align-items:center;margin-left:2px}
.kcard .meta .notitie-badge{margin-left:auto}

/* ══════════ facturen-tabs (segmented) ══════════ */
.segmented{display:inline-flex;gap:4px;background:#EDF0F6;border-radius:10px;padding:4px;margin-bottom:14px}
.seg{border:0;background:none;padding:7px 16px;border-radius:7px;font-size:13px;font-weight:600;color:var(--mute);white-space:nowrap;cursor:pointer}
.seg.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(14,21,38,.12)}
.bron-badge{font-size:10.5px;font-weight:700;border-radius:5px;padding:2px 8px;background:#F1E9FB;color:#6B3FA0}
.bron-badge.eigen{background:#E8EDFE;color:var(--blue-deep)}
tr.extern td{color:var(--ink-2)}
tr.extern:hover td{background:#FAFBFE}
tr.extern .num:first-child{color:#6B3FA0;font-weight:600}

/* ══════════ relaties uitklapbaar ══════════ */
.rel-rij{cursor:pointer}
.cp-toggle{color:var(--blue);font-weight:600;font-size:12.5px}
.rel-detail td{background:#FAFBFE;padding:10px 16px 14px}
.cp-lijst{display:flex;flex-wrap:wrap;gap:8px}
.cp-chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:99px;padding:4px 12px 4px 4px;font-size:12.5px;font-weight:600;color:var(--ink)}
.cp-av{width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:10px;font-weight:700}
/* contactpersonen-editor in modal */
#m-contacten{display:flex;flex-direction:column;gap:8px;margin-top:5px}
.cp-rij{display:flex;gap:8px;align-items:center}
.cp-rij .cp-inp{flex:1;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit}
.cp-rij .cp-inp:focus{outline:2px solid var(--blue);border-color:var(--blue)}
.cp-add{margin-top:8px;font-size:12.5px;font-weight:600;color:var(--blue);background:#E8EDFE;border:0;border-radius:7px;padding:7px 12px;cursor:pointer}
.cp-add:hover{background:#D9E2FD}

/* ══════════ roadmap suggesties ══════════ */
.rm-kop.rm-idee{color:#9A6A0B}
.rm-suggestie{background:#FBF1DC;color:#8A5A0B}
.rm-suggestie::before{content:"💡";font-size:12px}

.down-v{color:var(--danger)}

/* ══════════ Vaste layout: menu + topbar + tabbladen blijven staan, alleen inhoud scrolt ══════════ */
html,body{height:100%;overflow:hidden}
.app-root{height:100vh;overflow:hidden}
.app{height:100vh;overflow:hidden}
.side{height:100vh;overflow-y:auto}
.main{height:100vh;overflow:hidden}
.topbar{position:static;flex:none}
.view{padding:0}
.view.active{display:flex;flex-direction:column;flex:1;min-height:0;padding:22px 24px}
.view.active > .view-head,
.view.active > .kpis,
.view.active > .segmented,
.view.active > .pipe,
.view.active > .filterbar{flex:none}
.view-scroll{flex:1;min-height:0;overflow:auto}
.view-scroll table.data thead th{position:sticky;top:0;background:var(--card);z-index:2;box-shadow:0 1px 0 var(--line)}
/* deze pagina's scrollen als geheel */
#v-dashboard.active,#v-bank.active,#v-rapportage.active,#v-editor.active{display:block;overflow-y:auto}

/* ══════════ filterbar (status + bron naast elkaar) ══════════ */
.filterbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.filterbar .segmented{margin-bottom:0}
#rel-tabs{margin-bottom:14px}

.sync-info{font-size:12px;color:var(--mute);white-space:nowrap}

/* Ontwikkeling-knop in menu-stijl (zoals de nav-items) */
.dev-knop{margin:auto 0 4px;display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;color:#D6DEFB;padding:8px 10px;border-radius:8px;font-size:13.5px;font-weight:500;box-shadow:none}
.dev-knop:hover{background:rgba(255,255,255,.12);color:#fff}

/* lila pil (Lopende leads) */
.pill.lila{background:#F1E9FB;color:#6B3FA0}

/* ══════════ menu: iconen + inklappen ══════════ */
.nav-item{align-items:center}
.nav-item .ni-ico{flex:none;display:inline-flex;opacity:.85}
.nav-item.active .ni-ico{opacity:1}
.nav-item .ni-txt{flex:1;min-width:0;overflow:hidden;white-space:nowrap}
.logo{justify-content:space-between}
.side-toggle{border:0;background:rgba(255,255,255,.14);color:#fff;width:24px;height:24px;border-radius:7px;font-size:15px;line-height:1;cursor:pointer;flex:none;display:grid;place-items:center}
.side-toggle:hover{background:rgba(255,255,255,.26)}
.side{transition:width .16s ease}

/* ingeklapt: alleen iconen — alleen op desktop (op mobiel wordt het een drawer) */
@media (min-width: 821px){
  .side.ingeklapt{width:66px;padding-left:9px;padding-right:9px}
  .side.ingeklapt .brand-logo,
  .side.ingeklapt .nav-label,
  .side.ingeklapt .ni-txt,
  .side.ingeklapt .count,
  .side.ingeklapt .who,
  .side.ingeklapt .uitlog,
  .side.ingeklapt .reseed{display:none}
  .side.ingeklapt .logo{justify-content:center}
  .side.ingeklapt .nav-item{justify-content:center;padding:10px 0;gap:0}
  .side.ingeklapt .side-foot{justify-content:center;padding:14px 0 4px}
}

/* menu-knop (hamburger) + achtergrond-overlay: alleen op mobiel zichtbaar */
.nav-hamburger{display:none;flex:none;width:38px;height:38px;border:1px solid var(--line);background:#fff;border-radius:9px;color:var(--ink-2);cursor:pointer;place-items:center}
.nav-hamburger:hover{border-color:#C4CFEA}
.nav-backdrop{display:none;position:fixed;inset:0;background:rgba(14,21,38,.42);z-index:125}
.nav-backdrop.open{display:block}

/* ══════════ echte Raak-logo's in klantweergave/portaal ══════════ */
.a4-logo-img{height:30px;width:auto;display:block;flex:none}
.plog-img{height:26px;width:auto;display:block}
@media (max-width:520px){.a4-logo-img{height:24px}}

/* ══════════ Responsive — telefoon & tablet ══════════ */
@media (max-width: 820px){
  /* zijbalk wordt een uitschuifbaar menu (drawer) */
  .nav-hamburger{display:grid}
  .side-toggle{display:none}
  .side{position:fixed;top:0;left:0;bottom:0;width:250px;z-index:130;
        transform:translateX(-100%);transition:transform .2s ease;
        box-shadow:0 0 60px rgba(14,21,38,.4)}
  .side.mobiel-open{transform:none}
  .main{width:100%}

  /* compactere afstanden */
  .view.active{padding:14px 14px}
  .view-head{gap:8px}
  .view-head h2{font-size:18px}
  .topbar{padding:10px 12px;gap:8px}
  .kpis{grid-template-columns:1fr 1fr;gap:10px}
  .kpi .val{font-size:22px}

  /* toolbars laten afbreken i.p.v. horizontaal duwen */
  .filterbar > div{margin-left:0 !important}
  .filterbar{gap:8px}
  .segmented{overflow-x:auto}

  /* editor: rechterkolom onder de regels, knoppen vol breed */
  .rechterkolom{position:static}
  .evelden input{width:100%}
  .evelden span{flex:1;min-width:90px}

  /* klantvoorbeeld / a4 schaalt netjes mee */
  .a4-head{padding:16px 20px 16px 26px}
  .a4-body{padding:22px 22px 26px}
  .a4-meta{grid-template-columns:92px 1fr}

  /* modals bijna schermvullend */
  .overlay{padding:16px 12px}
}

@media (max-width: 520px){
  .kpis{grid-template-columns:1fr}
  .view-head .right{margin-left:0;width:100%}
  .view-head .right .btn{flex:1}
  .a4-opt .od{display:none}
}

/* prettige touch-doelen */
@media (pointer: coarse){
  .nav-item{padding-top:11px;padding-bottom:11px}
  .actie-knop{padding:14px 15px}
  .seg{padding:9px 14px}
}
