/* ═══════════════════════════════════════════════════════════════
   iFocus Tijdregistratie – Stijlen
   ═══════════════════════════════════════════════════════════════

   INHOUDSOPGAVE:
   1.  BASIS           – reset, variabelen, body, header
   2.  SCHERMEN        – screen layout
   3.  COLLEGA         – naam lijst, dag navigatie, acties, log
   4.  WIZARD          – overlay, project zoeken, tijd, km, keuze
   5.  MANAGER BASIS   – tabs, navigatie, knoppen, export
   6.  WEEKOVERZICHT   – tabel stijlen
   7.  UREN            – uren overzicht met voortgangsbalk
   8.  KM RAPPORT      – tarieven, dag accordion, km tabel
   9.  BEHEER          – medewerkers en projecten beheren
   10. LOGIN           – inlogscherm
   11. DETAIL POPUP    – dagdetail, statistieken, bewerken
═══════════════════════════════════════════════════════════════ */

/* ══ 1. BASIS ═══════════════════════════════════════════════════ */
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{--green:#93C320;--blue:#202262;--bg:#FCFFF6;--white:#fff;--light:#f0f4e8;--gray:#6b7280;--border:#e2e8d5;--red:#dc2626;--orange:#d97706}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--blue);min-height:100vh}
header{background:var(--white);border-bottom:2.5px solid var(--green);padding:12px 20px;display:flex;align-items:center}
header img{height:38px}
/* ══ 2. SCHERMEN ════════════════════════════════════════════ */
.screen{max-width:520px;margin:0 auto;padding:20px 16px 80px;display:none}
.screen.active{display:block}
.mgr-screen{max-width:1050px;margin:0 auto;padding:20px 16px 80px;display:none}
.mgr-screen.active{display:block}
h2{font-size:21px;font-weight:700;color:var(--blue);margin-bottom:4px}
.sub{font-size:14px;color:var(--gray);margin-bottom:20px}
/* ══ 3. COLLEGA ════════════════════════════════════════════ */
.emp-grid{display:flex;flex-direction:column;gap:9px;margin-bottom:28px}
.emp-btn{background:var(--white);border:1.5px solid var(--border);border-radius:13px;padding:16px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;text-align:left;transition:border-color .15s,background .15s}
.emp-btn:active{background:var(--light);border-color:var(--green)}
.emp-name{font-size:17px;font-weight:600;color:var(--blue)}
.emp-status{font-size:12px;font-weight:500;padding:4px 11px;border-radius:20px;white-space:nowrap}
.s-none{background:#f1f5e8;color:var(--gray)}.s-onderweg{background:#dbeafe;color:#1d4ed8}
.s-locatie{background:#dcfce7;color:#15803d}.s-pauze{background:#fef9c3;color:#854d0e}.s-klaar{background:#f0fdf4;color:#166534}
.day-nav{display:flex;align-items:center;justify-content:space-between;background:var(--white);border:1.5px solid var(--border);border-radius:12px;padding:10px 14px;margin-bottom:16px}
.day-nav button{background:none;border:none;cursor:pointer;font-size:24px;color:var(--blue);padding:0 6px;line-height:1}
.day-nav button:disabled{color:#ccc;cursor:default}
.day-nav-label{font-size:15px;font-weight:600;color:var(--blue);text-align:center}
.day-nav-sub{font-size:12px;color:var(--gray);text-align:center}.action-grid{display:flex;flex-direction:column;gap:11px}
.action-btn{border-radius:15px;padding:20px;font-size:17px;font-weight:600;cursor:pointer;border:none;text-align:left;line-height:1.3;transition:opacity .15s,transform .1s;width:100%}
.action-btn:active{transform:scale(0.97);opacity:.85}
.btn-v{background:#dbeafe;color:#1e3a8a}.btn-l{background:#dcfce7;color:#14532d}
.btn-ps{background:#fef9c3;color:#713f12}.btn-pe{background:#ecfccb;color:#365314}.btn-af{background:#f0fdf4;color:#14532d}
.action-desc{font-size:13px;font-weight:400;opacity:.75;margin-top:3px}
.log-box{background:var(--white);border:1px solid var(--border);border-radius:13px;padding:14px 16px;margin-bottom:16px}
.log-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--gray);margin-bottom:10px}
.log-row{display:flex;justify-content:space-between;align-items:flex-start;padding:7px 0;font-size:14px;border-bottom:1px solid var(--border);gap:8px}
.log-row:last-child{border-bottom:none}
.log-sub{font-size:12px;color:var(--gray);margin-top:2px}
.log-time{font-family:monospace;font-size:13px;color:var(--gray);white-space:nowrap;flex-shrink:0}
.done-box{text-align:center;padding:40px 20px}
.done-icon{width:68px;height:68px;background:var(--green);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.back-btn{background:none;border:none;cursor:pointer;font-size:14px;color:var(--gray);padding:0 0 16px;display:flex;align-items:center;gap:6px}
.mgr-link{text-align:center;margin-top:24px}
.mgr-link button{background:none;border:none;color:var(--gray);font-size:13px;cursor:pointer;text-decoration:underline}
/* ══ 4. WIZARD ═════════════════════════════════════════════ */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center;z-index:100}
.overlay.hidden{display:none}
#picker-overlay{z-index:300}
.picker-card{background:var(--white);border-radius:22px 22px 0 0;padding:24px 20px 44px;width:100%;max-width:520px;max-height:92vh;overflow-y:auto}
.picker-title{font-size:17px;font-weight:700;color:var(--blue);margin-bottom:4px}
.picker-sub{font-size:13px;color:var(--gray);margin-bottom:22px}
.proj-search{width:100%;font-size:18px;font-weight:500;color:var(--blue);border:2.5px solid var(--green);border-radius:13px;padding:14px 16px;background:var(--bg);outline:none;margin-bottom:12px}
.proj-results{display:flex;flex-direction:column;gap:7px;max-height:300px;overflow-y:auto}
.proj-result-btn{background:var(--white);border:1.5px solid var(--border);border-radius:11px;padding:14px 16px;font-size:15px;font-weight:500;color:var(--blue);cursor:pointer;text-align:left}
.proj-result-btn:active{background:var(--light);border-color:var(--green)}
.proj-highlight{color:var(--green);font-weight:700}
.proj-none{font-size:14px;color:var(--gray);text-align:center;padding:20px}
.proj-selected-box{background:var(--light);border:2px solid var(--green);border-radius:11px;padding:12px 16px;font-size:14px;color:var(--blue);margin-bottom:16px}
.time-adj{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:28px}
.adj-btn{width:68px;height:68px;border-radius:50%;border:2px solid var(--border);background:var(--white);font-size:32px;font-weight:300;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--blue);-webkit-user-select:none;user-select:none;flex-shrink:0}
.adj-btn:active{background:var(--light);border-color:var(--green)}
.time-display{font-size:52px;font-weight:700;color:var(--blue);font-family:monospace;text-align:center;min-width:148px;letter-spacing:2px}
.km-block{margin-bottom:20px}
.km-hint{font-size:12px;color:var(--gray);margin-bottom:10px}
.km-input{width:100%;font-size:32px;font-weight:700;color:var(--blue);border:2.5px solid var(--border);border-radius:13px;padding:14px 16px;background:var(--bg);outline:none;text-align:center;font-family:monospace}
.km-input:focus{border-color:var(--green)}
.choice-grid{display:flex;flex-direction:column;gap:12px}
.choice-btn{border-radius:15px;padding:20px;font-size:16px;font-weight:600;cursor:pointer;border:none;text-align:left;transition:opacity .15s,transform .1s}
.choice-btn:active{transform:scale(0.97)}
.choice-einde{background:#f0fdf4;color:#14532d}.choice-eerder{background:#fff7ed;color:#7c2d12}.choice-extra{background:#dbeafe;color:#1e3a8a}
.choice-desc{font-size:13px;font-weight:400;opacity:.8;margin-top:3px}
.confirm-btn{width:100%;background:var(--blue);color:white;border:none;border-radius:15px;padding:18px;font-size:17px;font-weight:700;cursor:pointer;margin-top:4px}
.confirm-btn:active{background:#2a2d7a}
.skip-btn{width:100%;background:none;border:1.5px solid var(--border);color:var(--gray);border-radius:15px;padding:14px;font-size:15px;cursor:pointer;margin-top:10px}
/* ══ 5. MANAGER BASIS ══════════════════════════════════════ */
.week-nav{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.week-nav button{background:var(--white);border:1.5px solid var(--border);border-radius:8px;padding:8px 16px;cursor:pointer;font-size:14px;color:var(--blue)}
.week-nav button:hover{border-color:var(--green)}
.week-label{font-size:16px;font-weight:700;color:var(--blue)}
.mgr-tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}
.mgr-tab{background:var(--white);border:1.5px solid var(--border);border-radius:8px;padding:8px 18px;cursor:pointer;font-size:14px;font-weight:500;color:var(--gray)}
.mgr-tab.active{background:var(--blue);color:white;border-color:var(--blue)}
.tab-content{display:none}.tab-content.active{display:block}
/* ══ 6. WEEKOVERZICHT ══════════════════════════════════════ */
.week-table-wrap{overflow-x:auto;margin-bottom:24px;border-radius:10px;border:1px solid var(--border)}
table{width:100%;border-collapse:collapse;font-size:12px;min-width:720px}
th{background:var(--blue);color:white;padding:10px;text-align:left;font-weight:600;white-space:nowrap}
th:first-child{position:sticky;left:0;z-index:2}
td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}
td:first-child{position:sticky;left:0;background:var(--white);z-index:1;border-right:1px solid var(--border)}
tr:hover td{background:var(--light)}
tr:hover td:first-child{background:var(--light)}
.td-name{font-weight:600;color:var(--blue);white-space:nowrap;font-size:13px}
.td-cell{font-size:11px;color:var(--gray);line-height:2;cursor:pointer}
.td-cell:hover{text-decoration:underline}
.td-empty{color:#ccc;font-size:12px}
.td-total{font-weight:700;font-size:13px;white-space:nowrap}
.totals-row td{background:#f0f4e8!important;font-weight:700;border-top:2px solid var(--green)}
.exact-toggle{display:inline-block;margin-left:6px;cursor:pointer;font-size:14px;opacity:.5;user-select:none;vertical-align:middle;filter:grayscale(1)}
.exact-toggle:hover{opacity:.8}
.exact-toggle.is-processed{opacity:1;filter:none}
tr.row-processed td{color:#94a3b8}
tr.row-processed .td-name{color:#64748b}
/* ══ 9. BEHEER ═════════════════════════════════════════════ */
.section{background:var(--white);border:1px solid var(--border);border-radius:13px;padding:16px;margin-bottom:20px}
.section-title{font-size:13px;font-weight:700;color:var(--blue);margin-bottom:12px;text-transform:uppercase;letter-spacing:.06em}
.emp-manage{margin-bottom:12px}
.emp-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:8px}
@media(max-width:480px){.emp-cards-grid{grid-template-columns:1fr}}
.emp-card{background:var(--white);border:1.5px solid var(--border);border-radius:12px;padding:14px 16px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.emp-card:hover{border-color:var(--green);box-shadow:0 2px 8px rgba(147,195,32,.15)}
.emp-card-name{font-size:14px;font-weight:600;color:var(--blue);margin-bottom:4px;line-height:1.3}
.emp-card-loc{font-size:12px;color:var(--gray)}
.emp-card-loc-empty{color:#ccc}
.ep-locatie-row{display:flex;align-items:center;gap:12px;padding:12px 0 16px;border-bottom:1px solid var(--border);margin-bottom:4px}
.ep-field-label{font-size:13px;font-weight:600;color:var(--blue);flex-shrink:0;min-width:80px}
.ep-field-inp{flex:1;border:1.5px solid var(--border);border-radius:8px;padding:8px 12px;font-size:14px;color:var(--blue);background:var(--bg);outline:none}
.ep-field-inp:focus{border-color:var(--green)}
.ep-filters{display:flex;gap:8px;margin-bottom:20px}
.ep-filter-btn{flex:1;padding:8px 0;border:1.5px solid var(--border);border-radius:8px;font-size:13px;font-weight:600;color:var(--blue);background:var(--bg);cursor:pointer}
.ep-filter-btn.active{border-color:var(--green);background:var(--light);color:var(--green)}
.ep-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--gray);margin:20px 0 10px}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.ep-gedrag-box{background:var(--light);border:1px solid var(--border);border-radius:10px;overflow:hidden}
.ep-stat-row{padding:10px 14px;font-size:13px;color:var(--blue)}
.ep-details{padding:10px 14px;font-size:13px;color:var(--blue);border-top:1px solid var(--border)}
.ep-details:first-child{border-top:none}
.ep-details summary{cursor:pointer;font-weight:600;list-style:none}
.ep-details summary::before{content:'▸ ';font-size:11px}
.ep-details[open] summary::before{content:'▾ '}
.ep-detail-list{margin:8px 0 0 0;padding:0 0 0 16px;font-size:12px;color:var(--gray);line-height:1.8}
.ep-proj-list{background:var(--light);border:1px solid var(--border);border-radius:10px;overflow:hidden}
.ep-proj-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;color:var(--blue);border-bottom:1px solid var(--border)}
.ep-proj-row:last-child{border-bottom:none}
.ep-proj-row-link{cursor:pointer;transition:background .15s}
.ep-proj-row-link:hover{background:var(--light)}
.ep-proj-arrow{color:var(--gray);font-size:14px;transition:transform .15s}
.ep-proj-row-link:hover .ep-proj-arrow{transform:translateX(3px);color:var(--green)}
.ep-proj-days{font-weight:700;font-size:13px}
.ep-delete-btn{width:100%;padding:10px;border:1.5px solid #fca5a5;border-radius:8px;background:#fff5f5;color:#dc2626;font-size:13px;font-weight:600;cursor:pointer}
.ep-delete-btn:hover{background:#fee2e2}
.add-row{display:flex;gap:8px;margin-bottom:16px}
.add-row input{flex:1;border:1.5px solid var(--border);border-radius:8px;padding:10px 14px;font-size:15px;color:var(--blue);background:var(--bg);outline:none}
.add-row input:focus{border-color:var(--green)}
.add-row button:not(.emp-type-btn){background:var(--green);color:white;border:none;border-radius:8px;padding:10px 20px;font-size:15px;font-weight:600;cursor:pointer}
.export-btn{background:var(--green);color:white;border:none;border-radius:10px;padding:10px 22px;font-size:14px;font-weight:600;cursor:pointer}
.export-btn:hover{background:#7aaa1a}
/* ══ 10. LOGIN ═════════════════════════════════════════════ */
.login-box{max-width:360px;margin:60px auto;background:var(--white);border:1px solid var(--border);border-radius:16px;padding:32px 28px}
.login-box h2{margin-bottom:20px}
.login-box input{width:100%;border:1.5px solid var(--border);border-radius:8px;padding:10px 14px;font-size:15px;margin-bottom:12px;color:var(--blue);background:var(--bg);outline:none}
.login-box input:focus{border-color:var(--green)}
.login-box button{width:100%;background:var(--blue);color:white;border:none;border-radius:8px;padding:12px;font-size:15px;font-weight:600;cursor:pointer}
.err{color:var(--red);font-size:13px;margin-top:-6px;margin-bottom:10px}
/* ══ 11. DETAIL POPUP ══════════════════════════════════════ */
.detail-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}
.detail-overlay.hidden{display:none}
.detail-card{background:var(--white);border-radius:16px;padding:24px;width:100%;max-width:540px;max-height:90vh;overflow-y:auto}
.detail-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}
.detail-title{font-size:16px;font-weight:700;color:var(--blue)}
.close-btn{background:none;border:none;cursor:pointer;font-size:24px;color:var(--gray);padding:0;line-height:1}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.stat-card{background:var(--light);border-radius:10px;padding:12px}
.stat-label{font-size:11px;color:var(--gray);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.stat-val{font-size:20px;font-weight:700;color:var(--blue)}
.stat-sub{font-size:11px;color:var(--gray);margin-top:3px;line-height:1.5}
.edit-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}
.edit-row:last-child{border-bottom:none}
.edit-row input[type=time]{border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:13px;color:var(--blue);background:var(--bg);width:90px}
.edit-row input[type=number]{border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:13px;color:var(--blue);background:var(--bg);width:80px}
.edit-row input:focus{border-color:var(--green);outline:none}
.edit-del{background:none;border:none;cursor:pointer;color:var(--red);font-size:16px;padding:0 4px}
.edit-save-btn{width:100%;background:var(--green);color:white;border:none;border-radius:10px;padding:12px;font-size:15px;font-weight:600;cursor:pointer;margin-top:12px}
.c-green{color:#15803d;font-weight:700;font-family:inherit}.c-red{color:var(--red);font-weight:700;font-family:inherit}.c-orange{color:var(--orange);font-weight:700;font-family:inherit}
/* ══ 12. MANAGER DAG EDIT ═══════════════════════════════════ */
.detail-edit-btn{display:inline-flex;align-items:center;gap:5px;background:var(--light);border:1.5px solid var(--border);border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600;color:var(--blue);cursor:pointer;margin-top:8px;transition:border-color .15s,background .15s}
.detail-edit-btn:hover{border-color:var(--green);background:var(--white)}
.mgr-edit-card{max-width:580px}
.mgr-step-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}
.mgr-step-row:last-child{border-bottom:none}
.mgr-step-label{flex:1;font-weight:500;color:var(--blue);font-size:13px}
.mgr-step-pencil{background:none;border:none;cursor:pointer;font-size:14px;padding:0 4px;color:var(--gray)}
.mgr-step-pencil.active{color:var(--green)}
.mgr-step-trash{background:none;border:none;cursor:pointer;font-size:14px;padding:0 4px;color:var(--red)}
.mgr-step-trash:disabled{color:#ccc;cursor:default}
.mgr-step-panel{display:none;background:var(--light);border-radius:10px;padding:12px 14px;margin:4px 0 8px;border:1px solid var(--border)}
.mgr-step-panel.open{display:block}
.mgr-panel-field{margin-bottom:10px}
.mgr-panel-field:last-child{margin-bottom:0}
.mgr-panel-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--gray);margin-bottom:4px}
.mgr-panel-field select,.mgr-panel-field input[type=text]{width:100%;border:1px solid var(--border);border-radius:6px;padding:7px 10px;font-size:13px;color:var(--blue);background:var(--white);outline:none}
.mgr-panel-field select:focus,.mgr-panel-field input:focus{border-color:var(--green)}
.mgr-add-step-btn{width:100%;background:none;border:1.5px dashed var(--border);border-radius:10px;padding:10px;font-size:13px;color:var(--gray);cursor:pointer;margin-top:8px;transition:border-color .15s,color .15s}
.mgr-add-step-btn:hover{border-color:var(--green);color:var(--green)}
.mgr-edit-footer{display:flex;gap:10px;margin-top:16px}
.mgr-cancel-btn{flex:1;background:none;border:1.5px solid var(--border);border-radius:10px;padding:11px;font-size:14px;font-weight:600;color:var(--gray);cursor:pointer}
.mgr-save-btn{flex:2;background:var(--green);border:none;border-radius:10px;padding:11px;font-size:14px;font-weight:600;color:white;cursor:pointer}
/* uren overzicht */
/* ══ 7. UREN ═══════════════════════════════════════════════ */
.uren-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--white);border:1px solid var(--border);border-radius:10px;margin-bottom:8px;flex-wrap:wrap;gap:8px}
.uren-naam{font-size:14px;font-weight:600;color:var(--blue);min-width:160px}
.uren-bar-wrap{flex:1;min-width:120px;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin:0 12px}
.uren-bar{height:100%;border-radius:4px}
.uren-val{font-size:13px;font-weight:700;white-space:nowrap;min-width:90px;text-align:right}
.uren-saldo{font-size:12px;white-space:nowrap;min-width:100px;text-align:right}
/* km rapport */
/* ══ 8. KM RAPPORT ═════════════════════════════════════════ */
.tarief-box{background:var(--white);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:20px;display:flex;gap:20px;flex-wrap:wrap;align-items:center}
.tarief-item{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:var(--blue)}
.tarief-item input{border:1.5px solid var(--border);border-radius:8px;padding:6px 10px;font-size:14px;color:var(--blue);background:var(--bg);width:70px;text-align:center;outline:none}
.tarief-item input:focus{border-color:var(--green)}
.tarief-save{background:var(--blue);color:white;border:none;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer}
/* km dag accordion */
.km-dag-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--white);border:1px solid var(--border);border-radius:10px;cursor:pointer;margin-bottom:4px;transition:background .15s}
.km-dag-header:hover{background:var(--light)}
.km-dag-header.open{border-radius:10px 10px 0 0;border-bottom:none}
.km-dag-title{font-size:14px;font-weight:600;color:var(--blue)}
.km-dag-meta{font-size:12px;color:var(--gray);text-align:right}
.km-dag-arrow{font-size:16px;color:var(--gray);transition:transform .2s}
.km-dag-arrow.open{transform:rotate(90deg)}
.km-dag-body{display:none;border:1px solid var(--border);border-top:none;border-radius:0 0 10px 10px;margin-bottom:8px;overflow:hidden}
.km-dag-body.open{display:block}
.km-dag-table{width:100%;border-collapse:collapse;font-size:13px}
.km-dag-table th{background:var(--light);padding:8px 12px;text-align:left;font-weight:600;font-size:12px;color:var(--gray)}
.km-dag-table td{padding:9px 12px;border-top:1px solid var(--border)}
.km-dag-table tr:hover td{background:#f8fdf2;cursor:pointer}
.uren-dag-label-row td{background:#f8fafc;font-weight:600;font-size:12px;color:var(--gray);padding:6px 12px;border-top:1px solid var(--border)}
/* ══ 11b. KM INLINE EDIT ═══════════════════════════════════════ */
.log-title-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.km-log-btn{position:relative;background:var(--light);border:1.5px solid var(--border);border-radius:8px;padding:3px 8px;font-size:14px;cursor:pointer;line-height:1;color:var(--blue)}
.km-log-btn:hover{border-color:var(--green);background:#e8f0d8}
.km-badge-dot{position:absolute;top:-4px;right:-4px;width:9px;height:9px;background:#f97316;border-radius:50%;border:1.5px solid var(--white);display:block}
.km-popup-row{padding:14px 16px;border-bottom:1px solid var(--border)}
.km-popup-row:last-child{border-bottom:none}
.km-popup-label{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:600;color:var(--blue);margin-bottom:10px}
.km-popup-fields{display:flex;gap:10px}
.km-popup-field{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
.km-field-icon{font-size:16px;flex-shrink:0}
.km-popup-field input{flex:1;border:1px solid var(--border);border-radius:8px;padding:0 10px;font-size:14px;color:var(--blue);background:var(--bg);outline:none;min-width:0;height:44px}
.km-popup-field input:focus{border-color:var(--green);background:var(--white)}
/* ══ 12. PLANNING ═══════════════════════════════════════════════ */

/* Collega planning knop */
.planning-btn {
  width: 100%;
  background: var(--white);
  border: 1.5px solid var(--green);
  color: var(--green);
  border-radius: 13px;
  padding: 16px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  margin-top: 12px;
  transition: background .15s;
}
.planning-btn:active { background: var(--light); }

/* Collega planning week-navigatie */
.my-plan-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.my-plan-nav button {
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: 8px;
  padding: 7px 14px;
  cursor: pointer;
  font-size: 13px;
  color: var(--blue);
}
.my-plan-nav button:hover:not(:disabled) { border-color: var(--green); }
.my-plan-nav button:disabled { opacity: 0.35; cursor: default; }
.my-plan-nav span {
  font-size: 13px;
  font-weight: 600;
  color: var(--blue);
  text-align: center;
  flex: 1;
}

/* Collega planning weergave */
.plan-dag {
  margin-bottom: 16px;
  border-radius: 13px;
  overflow: hidden;
  border: 1px solid var(--border);
}
.plan-dag-header {
  background: var(--blue);
  color: white;
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 600;
}
.plan-dag-header.today { background: var(--green); }
.plan-dag-body { background: var(--white); }
.plan-dag-leeg {
  padding: 12px 16px;
  font-size: 13px;
  color: var(--gray);
  font-style: italic;
}
.plan-item {
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
}
.plan-item:last-child { border-bottom: none; }
.plan-item-naam {
  font-size: 16px;
  font-weight: 600;
  color: var(--blue);
  margin-bottom: 4px;
}
.plan-item-uren {
  display: inline-block;
  background: var(--green);
  color: white;
  font-size: 12px;
  font-weight: 700;
  padding: 2px 10px;
  border-radius: 20px;
  margin-bottom: 6px;
}
.plan-item-collega {
  font-size: 13px;
  color: var(--gray);
}
.plan-item-collega span {
  display: inline-block;
  background: var(--light);
  border-radius: 20px;
  padding: 2px 10px;
  margin: 2px 4px 2px 0;
  font-size: 12px;
  color: var(--blue);
  font-weight: 500;
}

/* Manager planning invoer */
.planning-dag-blok {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 13px;
  margin-bottom: 16px;
  overflow: hidden;
}
.planning-dag-titel {
  background: var(--blue);
  color: white;
  padding: 12px 16px;
  font-size: 15px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.planning-dag-titel.today { background: var(--green); }
.plan-add-proj-btn {
  background: rgba(255,255,255,0.2);
  border: 1.5px solid rgba(255,255,255,0.6);
  color: white;
  border-radius: 8px;
  padding: 4px 12px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.plan-add-proj-btn:hover { background: rgba(255,255,255,0.35); }
.planning-proj-item {
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
}
.planning-proj-item:last-child { border-bottom: none; }
.planning-proj-naam {
  font-size: 15px;
  font-weight: 600;
  color: var(--blue);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.plan-del-proj {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--red);
  font-size: 16px;
  padding: 0;
}
.planning-collega-rij {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}
.planning-collega-naam {
  font-size: 14px;
  font-weight: 500;
  color: var(--blue);
  min-width: 160px;
  flex: 1;
}
.plan-uren-inp {
  border: 1.5px solid var(--border);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 14px;
  font-weight: 700;
  color: var(--blue);
  width: 70px;
  text-align: center;
  background: var(--bg);
  outline: none;
}
.plan-uren-inp:focus { border-color: var(--green); }
.plan-del-emp {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--red);
  font-size: 16px;
  padding: 0 4px;
}
.plan-add-emp-btn {
  background: var(--light);
  border: 1.5px solid var(--border);
  color: var(--blue);
  border-radius: 8px;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  margin-top: 4px;
}
.plan-add-emp-btn:hover { border-color: var(--green); }
.plan-save-btn {
  width: 100%;
  background: var(--green);
  color: white;
  border: none;
  border-radius: 10px;
  padding: 12px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  margin-top: 8px;
  margin-bottom: 20px;
}
.plan-save-btn:hover { background: #7aaa1a; }
.plan-saved-msg {
  text-align: center;
  font-size: 13px;
  color: #15803d;
  margin-bottom: 12px;
  display: none;
}

/* Project keuze overlay */
.proj-keuze-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  z-index: 300;
}
.proj-keuze-overlay.hidden { display: none; }
.proj-keuze-card {
  background: var(--white);
  border-radius: 22px 22px 0 0;
  padding: 24px 20px 44px;
  width: 100%;
  max-width: 600px;
  max-height: 85vh;
  overflow-y: auto;
}
.proj-keuze-title {
  font-size: 17px;
  font-weight: 700;
  color: var(--blue);
  margin-bottom: 16px;
}

/* ══ 13. PLANNING MATRIX ════════════════════════════════════════ */
.plan-matrix-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--border);margin-bottom:16px}
.plan-matrix{width:100%;border-collapse:collapse;font-size:12px;min-width:600px}
.plan-matrix th{background:var(--blue);color:white;padding:8px 10px;text-align:center;font-weight:600;white-space:nowrap;min-width:90px}
.plan-matrix td{padding:4px 6px;border-bottom:1px solid var(--border);vertical-align:middle}
.proj-col{min-width:200px;text-align:left!important}
.proj-name-cell{font-weight:700;color:var(--blue);font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:4px;padding:8px 8px}
.emp-name-cell{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:4px 8px;font-size:12px;color:var(--gray)}
.proj-row td{background:var(--light)}
.plan-uur-inp{width:62px;border:1.5px solid var(--border);border-radius:6px;padding:5px 6px;font-size:13px;font-weight:600;color:var(--blue);text-align:center;background:var(--bg);outline:none}
.plan-uur-inp:focus{border-color:var(--green)}
.plan-uur-inp.heeft-uren{background:#dcfce7;border-color:#86efac;color:#14532d}
.plan-meting-inp{display:block;width:62px;margin:0 auto;border:1.5px solid var(--border);border-radius:5px;padding:3px 5px;font-size:11px;color:var(--blue);background:var(--bg);text-align:center;outline:none}
.plan-meting-inp:focus{border-color:var(--green)}
.plan-add-proj-select{border:1.5px solid var(--border);border-radius:8px;padding:7px 12px;font-size:13px;color:var(--blue);background:var(--bg);cursor:pointer;outline:none}
.plan-add-proj-select:focus{border-color:var(--green)}
.plan-del-row{background:none;border:none;cursor:pointer;color:var(--red);font-size:14px;padding:0 2px;flex-shrink:0}
/* ══ 14. PROJECT PASPOORT ════════════════════════════════════════ */
.proj-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:8px}
.proj-card{background:var(--white);border:1.5px solid var(--border);border-radius:12px;padding:14px 16px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.proj-card:hover{border-color:var(--green);box-shadow:0 2px 8px rgba(147,195,32,.15)}
.proj-card-name{font-size:14px;font-weight:600;color:var(--blue);margin-bottom:4px;line-height:1.3}
.proj-card-num{font-size:12px;color:var(--gray);margin-bottom:6px;font-family:monospace}
.proj-card-status{font-size:11px;font-weight:700}
.passport-fields{margin-bottom:16px}
.passport-meting-row{border:1px solid var(--border);border-radius:10px;margin-bottom:8px;overflow:hidden}
.passport-meting-header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:var(--light);cursor:pointer;font-size:13px;font-weight:600;color:var(--blue);gap:8px}
.passport-meting-header:hover{background:#e8f0d8}
.passport-meting-body{display:none;padding:12px 14px;background:var(--white);font-size:13px}
.passport-meting-body.open{display:block}
.passport-meting-body table{min-width:0!important;width:100%!important}
.passport-verg{font-size:12px;font-weight:700;padding:4px 0}
.tab-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}

/* ── Picker overlay (collega/project toevoegen) ── */
.picker-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}
.picker-head .picker-title{font-weight:700;font-size:15px;color:var(--blue)}
.picker-head .close-btn{background:none;border:none;font-size:22px;color:var(--gray);cursor:pointer;line-height:1;padding:0}
.picker-search{width:100%;border:1.5px solid var(--border);border-radius:10px;padding:10px 14px;font-size:14px;color:var(--blue);background:var(--bg);outline:none;font-family:inherit}
.picker-search:focus{border-color:var(--green)}
.picker-list{max-height:50vh;overflow-y:auto;padding:4px 8px 8px}
.picker-list-item{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;margin:3px 0;border:1.5px solid var(--border);border-radius:10px;font-size:14px;color:var(--blue);background:var(--white);cursor:pointer;transition:all .12s}
.picker-list-item:hover{border-color:var(--green)}
.picker-list-item.selected{border-color:var(--green);background:#f0fdf4}
.picker-list-item .check{width:20px;height:20px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:12px;color:white;flex-shrink:0;margin-left:8px}
.picker-list-item.selected .check{background:var(--green);border-color:var(--green)}
.picker-list-empty{padding:20px;text-align:center;color:var(--gray);font-size:13px}
.picker-zzp{font-size:11px;color:var(--gray);margin-left:6px}
.picker-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--border);background:var(--bg)}
.picker-count{font-size:13px;color:var(--gray)}
.picker-confirm{background:var(--green);color:white;border:none;border-radius:10px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer}
.picker-confirm:disabled{background:var(--border);cursor:not-allowed}
.plan-add-row-btn{background:var(--bg);border:1.5px dashed var(--border);border-radius:10px;padding:8px 14px;font-size:13px;color:var(--blue);cursor:pointer;font-family:inherit}
.plan-add-row-btn:hover{border-color:var(--green);border-style:solid}

