:root{--paper:#f7f7f7;--ink:#0f0f0f;--blue:#0025ff;--blue-hover:#0020d6;--white:#fff;--border:#0f0f0f1f;--ink-muted:#0f0f0f8c;--font-display:"neue-haas-grotesk-display", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-text:"neue-haas-grotesk-text", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:"letter-gothic-std", "Space Mono", ui-monospace, monospace;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fs-h1:32px;--fs-h2:24px;--fs-h3:18px;--fs-body:15px;--fs-caption:13px;--fs-label:11px;--lh-heading:1.1;--lh-body:1.5;--ls-heading:-.02em;--ls-label:.14em;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--radius-none:0px;--radius-xs:2px;--radius-sm:4px;--radius-pill:999px;--ease-out:cubic-bezier(.22, 1, .36, 1);--dur-fast:.15s;--dur-base:.3s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--terracotta:var(--blue);--terracotta-light:#0f0f0f0d;--terracotta-hover:var(--blue-hover);--sidebar-bg:var(--white);--sidebar-text:var(--ink);--bg:var(--paper);--text:var(--ink);--text-muted:var(--ink-muted);--radius:var(--radius-xs);--shadow:none}body{font-family:var(--font-text);font-size:var(--fs-body);background:var(--bg);color:var(--text);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:var(--ls-heading);line-height:var(--lh-heading);color:var(--ink)}.mono-label{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-muted)}.app{min-height:100vh;display:flex}.sidebar{background:var(--white);border-right:1px solid var(--border);z-index:100;flex-direction:column;width:220px;min-width:0;transition:width .2s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.sidebar.collapsed{width:64px}.sidebar-logo{border-bottom:1px solid var(--border);padding:24px 20px 20px;position:relative}.sidebar.collapsed .sidebar-logo{flex-direction:column;align-items:center;padding:24px 0 16px;display:flex}.sidebar-toggle{color:var(--ink-muted);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;align-items:center;padding:4px;display:flex;position:absolute;top:8px;right:8px}.sidebar-toggle:hover{color:var(--ink);background:#0f0f0f0a}.sidebar.collapsed .sidebar-toggle{margin-top:8px;position:static}.sidebar.collapsed .nav-item{justify-content:center;padding:9px 0}.sidebar-logo h1{color:var(--ink);font-size:18px;font-weight:var(--fw-bold)}.sidebar-logo p{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-muted);margin-top:4px}.sidebar-nav{flex:1;padding:12px 0;overflow-y:auto}.nav-label{font-family:var(--font-mono);color:var(--ink-muted);font-size:10px;font-weight:var(--fw-regular);text-transform:uppercase;letter-spacing:var(--ls-label);padding:12px 20px 4px}.nav-item{color:var(--ink);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border-left:2px solid #0000;align-items:center;gap:10px;padding:9px 20px;font-size:14px;display:flex}.nav-item:hover{background:#0f0f0f0a}.nav-item.active{border-left-color:var(--blue);color:var(--blue);font-weight:var(--fw-medium);background:0 0}.nav-item svg{opacity:.55;flex-shrink:0}.nav-item.active svg{opacity:1;color:var(--blue)}.main{flex-direction:column;flex:1;min-height:100vh;margin-left:220px;transition:margin-left .2s;display:flex}.main.collapsed{margin-left:64px}.page-header{background:var(--paper);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:24px 32px 20px;display:flex}.page-header h2{font-size:var(--fs-h1);font-weight:var(--fw-semibold)}.page-content{flex:1;padding:28px 32px}.btn{border-radius:var(--radius-pill);font-family:var(--font-text);font-size:14px;font-weight:var(--fw-medium);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);border:1px solid #0000;align-items:center;gap:6px;padding:8px 18px;display:inline-flex}.btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.btn-primary{background:var(--blue);color:var(--white)}.btn-primary:hover{background:var(--blue-hover)}.btn-ghost{color:var(--ink);border:1px solid var(--ink);background:0 0}.btn-ghost:hover{background:#0f0f0f0d}.btn-sm{padding:5px 12px;font-size:12px}.btn-danger{color:#b42318;background:0 0;border:1px solid #b42318}.btn-danger:hover{background:#b423180f}.btn-secondary{color:var(--ink);border:1px solid var(--ink);background:0 0}.btn-secondary:hover{background:#0f0f0f0d}.card{background:var(--white);border-radius:var(--radius-xs);border:1px solid var(--border)}.kanban-board{align-items:flex-start;gap:16px;padding-bottom:16px;display:flex;overflow-x:auto}.kanban-column{border:1px solid var(--border);border-radius:var(--radius-xs);background:0 0;flex-shrink:0;width:240px;min-width:240px;padding:12px}.kanban-column-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.kanban-column-title{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;font-weight:var(--fw-regular);color:var(--ink-muted)}.kanban-column-count{font-family:var(--font-mono);color:var(--ink-muted);border:1px solid var(--border);border-radius:var(--radius-pill);background:0 0;padding:1px 8px;font-size:11px}.kanban-cards{flex-direction:column;gap:8px;min-height:40px;display:flex}.kanban-card{background:var(--white);border-radius:var(--radius-xs);border:1px solid var(--border);cursor:grab;transition:border-color var(--dur-fast) var(--ease-out);padding:12px}.kanban-card:hover{border-color:#0f0f0f59}.kanban-card-title{font-size:13px;font-weight:var(--fw-semibold);margin-bottom:6px}.kanban-card-meta{color:var(--ink-muted);flex-direction:column;gap:2px;font-size:11px;display:flex}.kanban-card-value{font-family:var(--font-mono);color:var(--blue);margin-top:6px;font-size:12px}.status-label,.status-badge-pill{border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;font-weight:var(--fw-regular);border:1px solid;padding:2px 10px;display:inline-block;background:0 0!important}.status-Onboarding{color:#8a6d00}.status-Actief{color:#0a6b45}.status-On-hold{color:var(--ink-muted)}.status-Afgerond{color:#5b21b6}.status-Lead{color:var(--ink-muted)}.status-Contact{color:var(--blue)}.status-Pitch{color:#8a6d00}.status-Offerte{color:#9a3412}.status-Won{color:#0a6b45}.status-Verloren{color:#b42318}.modal-overlay{z-index:1000;background:#0f0f0f73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--white);border-radius:var(--radius-sm);border:1px solid var(--border);width:100%;max-width:480px;max-height:90vh;padding:28px;overflow-y:auto}.modal h3{font-size:var(--fs-h3);font-weight:var(--fw-semibold);margin-bottom:20px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.form-group{margin-bottom:16px}.form-group label{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-muted);margin-bottom:6px;display:block}.form-control{border:1px solid var(--border);border-radius:var(--radius-xs);width:100%;font-family:var(--font-text);color:var(--ink);background:var(--white);transition:border-color var(--dur-fast) var(--ease-out);outline:none;padding:9px 12px;font-size:14px}.form-control:focus{border-color:var(--blue)}textarea.form-control{resize:vertical;min-height:80px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;font-weight:var(--fw-regular);color:var(--ink-muted);border-bottom:1px solid var(--border);background:var(--white);padding:10px 14px}td{border-bottom:1px solid var(--border);vertical-align:middle;background:var(--white);padding:11px 14px}tr:last-child td{border-bottom:none}tr:hover td{background:#f2f2f2}.inline-edit{border-radius:var(--radius-xs);font-family:var(--font-text);cursor:pointer;background:0 0;border:1px solid #0000;width:100%;padding:3px 6px;font-size:14px}.inline-edit:hover{border-color:var(--border);background:#f2f2f2}.inline-edit:focus{border-color:var(--blue);background:var(--white);cursor:text;outline:none}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:28px;display:grid}.stat-card{background:var(--white);border-radius:var(--radius-xs);border:1px solid var(--border);padding:20px}.stat-card .stat-label{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;font-weight:var(--fw-regular);color:var(--ink-muted)}.stat-card .stat-value{font-family:var(--font-display);font-size:var(--fs-h1);font-weight:var(--fw-semibold);letter-spacing:var(--ls-heading);color:var(--ink);margin-top:8px}.stat-card .stat-sub{color:var(--ink-muted);margin-top:2px;font-size:12px}.persoon-badge{border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;background:0 0;border:1px solid;align-items:center;padding:2px 10px;display:inline-flex}.persoon-Stijn{color:var(--blue)}.persoon-Naut{color:var(--ink)}.add-card-btn{border:1px dashed var(--border);border-radius:var(--radius-xs);cursor:pointer;color:var(--ink-muted);width:100%;transition:border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;align-items:center;gap:6px;margin-top:6px;padding:8px;font-size:13px;display:flex}.add-card-btn:hover{border-color:var(--blue);color:var(--blue)}.loading{text-align:center;color:var(--ink-muted);padding:60px;font-size:15px}.empty{text-align:center;color:var(--ink-muted);padding:48px}.empty p{margin-top:8px;font-size:14px}.goedemorgen{background:var(--ink);color:var(--white);border-radius:var(--radius-sm);margin-bottom:28px;padding:24px 28px}.goedemorgen h3{font-size:var(--fs-h2);font-weight:var(--fw-semibold);color:var(--white);margin-bottom:4px}.goedemorgen p{opacity:.7;font-size:14px}.goedemorgen-items{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.goedemorgen-item{border-radius:var(--radius-xs);background:0 0;border:1px solid #ffffff40;min-width:160px;padding:10px 14px;font-size:13px}.goedemorgen-item strong{font-family:var(--font-mono);letter-spacing:var(--ls-label);opacity:.65;text-transform:uppercase;font-size:10px;font-weight:var(--fw-regular);margin-bottom:4px;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#0f0f0f40;border-radius:3px}.modal-lg{max-width:560px}.form-grid-2{grid-template-columns:1fr 1fr;gap:0 12px;display:grid}.opdrachten-lijst{flex-direction:column;gap:12px;display:flex}.opdracht-blok{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-xs);overflow:hidden}.opdracht-header{background:var(--white);cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border);transition:background var(--dur-fast) var(--ease-out);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.opdracht-header:hover{background:#f2f2f2}.opdracht-naam{font-family:var(--font-display);font-size:15px;font-weight:var(--fw-semibold);letter-spacing:var(--ls-heading);color:var(--ink)}.badge-count{font-family:var(--font-mono);color:var(--ink-muted);border:1px solid var(--border);border-radius:var(--radius-pill);background:0 0;padding:1px 8px;font-size:11px}.subtaken-lijst{flex-direction:column;display:flex}.subtaken-leeg{color:var(--ink-muted);padding:14px 20px;font-size:13px;font-style:italic}.subtaak-rij{border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);justify-content:space-between;align-items:center;gap:16px;padding:11px 20px;display:flex}.subtaak-rij:last-child{border-bottom:none}.subtaak-rij:hover{background:#f2f2f2}.subtaak-titel{font-size:14px;font-weight:var(--fw-medium);flex-direction:column;flex:1;gap:2px;display:flex}.subtaak-omschrijving{color:var(--ink-muted);font-size:12px;font-weight:var(--fw-regular)}.subtaak-meta{flex-shrink:0;align-items:center;gap:8px;display:flex}.uren-badge{font-family:var(--font-mono);color:var(--blue);border:1px solid var(--blue);border-radius:var(--radius-pill);background:0 0;align-items:center;gap:3px;padding:2px 8px;font-size:11px;display:inline-flex}.deadline-badge{font-family:var(--font-mono);color:var(--ink-muted);align-items:center;gap:3px;font-size:11px;display:inline-flex}.deadline-badge.laat{color:#b42318}.icon-btn{padding:5px 7px!important}.todo-tabel{overflow:hidden}.todo-tabel-header{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-label);font-weight:var(--fw-regular);color:var(--ink-muted);text-transform:uppercase;background:var(--white);border-bottom:1px solid var(--border);grid-template-columns:2fr 1.5fr 1fr 100px 70px;gap:12px;padding:10px 20px;display:grid}.todo-tabel-rij{border-bottom:1px solid var(--border);transition:background var(--dur-fast) var(--ease-out);grid-template-columns:2fr 1.5fr 1fr 100px 70px;align-items:center;gap:12px;padding:12px 20px;display:grid}.todo-tabel-rij:last-child{border-bottom:none}.todo-tabel-rij:hover{background:#f2f2f2}.todo-taak-titel{font-size:14px;font-weight:var(--fw-medium)}.todo-taak-sub{color:var(--ink-muted);margin-top:2px;font-size:11px}.todo-context{color:var(--ink-muted);flex-wrap:wrap;align-items:center;gap:4px;font-size:12px;display:flex}.status-select{appearance:none;border:1px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;width:100%;color:var(--ink);outline:none;padding:3px 10px;background:0 0!important}.status-select:hover{border-color:#0f0f0f59}.status-select:focus{border-color:var(--blue)}.uren-input{border:1px solid var(--border);border-radius:var(--radius-xs);width:60px;font-family:var(--font-mono);color:var(--ink);background:var(--white);text-align:right;outline:none;padding:4px 6px;font-size:13px}.uren-input:focus{border-color:var(--blue)}.uren-input::placeholder{color:#0f0f0f4d}
