/* CRM-aanvulling op de aangeleverde centrale kea.css. */
.crm { background: #f3f7f9; font-size: 15px; }
.crm-top { min-height: 84px; padding: 16px 32px; display: flex; justify-content: space-between; align-items: center; gap: 24px; color: #fff; background: linear-gradient(110deg, #073f70, #0872a9 70%, #2c98b8); }
.crm-brand { font-size: 19px; font-weight: 800; letter-spacing: .6px; }
.crm-brand span { display: block; font: 14px Georgia, serif; letter-spacing: .2px; opacity: .85; }
.crm-account, .crm-actions, .crm-toolbar, .crm-pagination { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.crm-account { font-size: 14px; }
.crm-role { padding: 4px 10px; border: 1px solid #ffffff55; border-radius: 30px; font-size: 12px; }
.crm-logout { background: transparent; border: 0; color: #fff; text-decoration: underline; cursor: pointer; }
.crm-shell { display: flex; min-height: calc(100vh - 134px); }
.crm-sidebar { flex: 0 0 236px; padding: 25px 16px; background: #fff; border-right: 1px solid var(--kea-line); }
.crm-nav-label { padding: 0 12px; font-size: 10px; font-weight: 700; letter-spacing: 1.3px; color: var(--kea-muted); }
.crm-sidebar nav { display: grid; gap: 3px; }
.crm-sidebar nav a { padding: 10px 13px; border-radius: 6px; font-size: 14px; border-left: 3px solid transparent; }
.crm-sidebar nav a:hover { background: #f4f8fa; }
.crm-sidebar nav a[aria-current=page] { color: var(--kea-blue); background: #eaf5fa; border-left-color: var(--kea-green); font-weight: 700; }
.crm-nav-foot { margin: 32px 12px 0; padding-top: 20px; border-top: 1px solid var(--kea-line); color: var(--kea-muted); font-size: 12px; }
.crm-main { width: 100%; min-width: 0; max-width: 1580px; padding: 30px 36px 60px; margin: 0 auto; }
.crm-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.crm-heading h1 { margin: 2px 0 6px; color: var(--kea-blue-dark); font-size: 31px; line-height: 1.15; }
.crm-heading p { margin: 6px 0 0; color: var(--kea-muted); }
.crm-heading .crm-eyebrow { font-size: 10px; font-weight: 700; letter-spacing: 1.7px; color: var(--kea-blue); }
.crm-date { padding-top: 10px; font-size: 13px; color: var(--kea-muted); white-space: nowrap; }
.crm-card { background: #fff; border: 1px solid var(--kea-line); border-radius: 10px; padding: 25px; margin: 0 0 22px; box-shadow: 0 4px 20px #073f7005; }
.crm-card h2 { font-size: 20px; margin: 0 0 17px; color: var(--kea-blue-dark); }
.crm-card h3 { font-size: 16px; margin: 0; }
.crm-card p { overflow-wrap: anywhere; }
.crm-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; margin-bottom: 26px; }
.crm-metric { padding: 22px; border: 1px solid var(--kea-line); border-top: 3px solid var(--kea-green); border-radius: 8px; background: #fff; min-width: 0; }
.crm-metric span { display: block; color: var(--kea-muted); font-size: 13px; }
.crm-metric strong { display: block; color: var(--kea-blue-dark); font-size: 30px; margin: 7px 0; overflow-wrap: anywhere; }
.crm-metric small { color: var(--kea-blue); font-size: 12px; }
.crm-two { display: grid; grid-template-columns: 1.2fr 1fr; gap: 22px; }
.crm-list-item { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 16px 0; border-bottom: 1px solid #edf1f4; }
.crm-list-item:last-child { border-bottom: 0; }
.crm-list-item small { display: block; color: var(--kea-muted); margin-top: 4px; }
.crm-badge { display: inline-block; padding: 4px 10px; border-radius: 16px; background: #edf2f5; color: #526b7d; font-size: 12px; white-space: nowrap; }
.crm-status-actief, .crm-status-voldoende, .crm-status-afgerond, .crm-status-verzonden, .crm-status-gereed { color: #32751b; background: #eef7e8; }
.crm-status-onvoldoende, .crm-status-mislukt, .crm-status-opgeschort { color: #9e3232; background: #fff0ef; }
.crm-status-ingediend, .crm-status-beoordeling, .crm-status-in_behandeling { color: #07628b; background: #e8f5fb; }
.crm-status-aanvullen, .crm-status-onzeker { color: #925b0e; background: #fff4df; }
.crm-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 24px; margin-bottom: 22px; }
.crm-field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 15px; font-size: 13px; font-weight: 700; width: 100%; }
.crm-form-grid .crm-field { margin-bottom: 0; }
.crm-wide { grid-column: 1 / -1; }
.crm input:not([type=checkbox]):not([type=hidden]), .crm select, .crm textarea { width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid #cbdbe5; border-radius: 5px; font: 15px/1.4 Arial, sans-serif; color: var(--kea-text); background: #fff; }
.crm input[type=checkbox] { width: 17px; height: 17px; accent-color: var(--kea-blue); }
.crm input:focus, .crm textarea:focus, .crm select:focus { outline: 2px solid #70b23f; outline-offset: 2px; }
.crm textarea { resize: vertical; }
.crm .btn { min-height: 40px; padding: 9px 17px; font-size: 13px; line-height: 1.3; cursor: pointer; }
.crm button:disabled { opacity: .6; cursor: wait; }
.crm-actions { margin: 14px 0; }
.crm-actions h2 { margin: 0; flex: 1; }
.crm-actions form { margin: 0; }
.crm-toolbar { justify-content: space-between; margin-bottom: 18px; }
.crm-search { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.crm-search label { font-size: 13px; }
.crm-search input { max-width: 320px; }
.crm-table-wrap { overflow: auto; padding: 0; }
.crm-table { width: 100%; border-collapse: collapse; min-width: 560px; }
.crm-table th { padding: 15px 18px; text-align: left; background: #f9fbfc; color: #687c8d; font-size: 12px; font-weight: 700; border-bottom: 1px solid var(--kea-line); }
.crm-table td { padding: 16px 18px; border-bottom: 1px solid #edf1f4; font-size: 14px; vertical-align: top; max-width: 460px; overflow-wrap: anywhere; }
.crm-table tbody tr:hover { background: #fbfdfe; }
.crm-table tr:last-child td { border-bottom: 0; }
.crm-link, .crm-text-button { font-weight: 700; color: var(--kea-blue); }
.crm-text-button { border: 0; padding: 6px 0; background: transparent; cursor: pointer; }
.crm-details { display: grid; grid-template-columns: 210px 1fr; margin: 0; }
.crm-details dt, .crm-details dd { padding: 12px 0; border-bottom: 1px solid #edf1f4; margin: 0; overflow-wrap: anywhere; }
.crm-details dt { color: var(--kea-muted); }
.crm-details dd { white-space: normal; }
.crm-notice, .crm-error { padding: 15px 20px; border-radius: 6px; margin: 0 0 20px; overflow-wrap: anywhere; }
.crm-notice { background: #edf7e7; border: 1px solid #cfe2c1; color: #365b22; }
.crm-error { background: #fff0ed; border: 1px solid #f3cbc4; color: #923c2d; }
.crm-muted { color: var(--kea-muted); font-size: 13px; }
.crm-login { max-width: 490px; margin: 35px auto; padding: 35px; }
.crm-login .btn { width: 100%; }
.crm-welcome { padding: 20px 28px; background: #e9f4f9; border-left: 4px solid var(--kea-green); margin-bottom: 24px; border-radius: 7px; }
.crm-welcome h2 { margin: 0; }
.crm-question-title { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 15px; }
.crm-question-title h3 { flex: 1; }
.crm-code { background: #e8f4fa; color: var(--kea-blue); padding: 5px 9px; border-radius: 5px; font-weight: 700; white-space: nowrap; }
.crm-review { background: #f5f9fb; border-left: 3px solid var(--kea-teal); padding: 18px; margin-top: 20px; }
.crm-choices { border: 1px solid var(--kea-line); border-radius: 5px; padding: 15px; margin-bottom: 20px; }
.crm-choices label { display: flex; gap: 9px; align-items: center; padding: 6px; }
.crm-progress { display: block; color: var(--kea-muted); font-size: 13px; }
.crm-progress progress { display: block; width: 100%; height: 9px; margin-top: 7px; accent-color: var(--kea-green); }
.crm-section-title { font-size: 22px; margin-top: 30px; }
.crm-danger { background: #fff; color: #9c3636; border: 1px solid #dba5a5; padding: 9px 16px; border-radius: 5px; cursor: pointer; }
.crm-check { display: flex; align-items: center; gap: 10px; }
.crm-letter { padding: 25px 0; line-height: 1.8; }
.crm-footer { padding: 16px 32px; color: var(--kea-muted); background: #eaf1f5; font-size: 12px; text-align: right; }
.crm-skip { position: absolute; top: -100px; }
.crm-skip:focus { top: 0; padding: 15px; background: #fff; z-index: 100; }
@media (max-width: 1150px) {
  .crm-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .crm-main { padding: 25px; }
  .crm-sidebar { flex-basis: 205px; }
  .crm-two { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 760px) {
  .crm-top { padding: 15px 20px; flex-wrap: wrap; }
  .crm-shell { display: block; }
  .crm-sidebar { padding: 12px; border-bottom: 1px solid var(--kea-line); }
  .crm-sidebar nav { display: flex; overflow-x: auto; }
  .crm-sidebar nav a { white-space: nowrap; }
  .crm-nav-label, .crm-nav-foot, .crm-date { display: none; }
  .crm-main { padding: 22px 16px; }
  .crm-form-grid { grid-template-columns: 1fr; }
  .crm-heading h1 { font-size: 27px; }
  .crm-card { padding: 19px; }
  .crm-table-wrap { padding: 0; }
  .crm-details { grid-template-columns: 1fr; }
  .crm-details dt { padding-bottom: 0; border: 0; }
  .crm-question-title { flex-wrap: wrap; }
  .crm-question-title h3 { min-width: 70%; }
}
@media print {
  .crm-sidebar, .crm-account, .crm-footer, .crm-no-print, .crm-actions, .crm-skip { display: none !important; }
  .crm-shell { display: block; }
  .crm, .crm-top { background: #fff; color: #222; }
  .crm-top { padding: 0 0 20px; border-bottom: 1px solid #777; }
  .crm-main { max-width: none; padding: 20px 0; }
  .crm-card { box-shadow: none; border: 1px solid #aaa; break-inside: avoid; }
  .crm-report-question { break-inside: auto; }
  .crm-report-question h3 { break-after: avoid; }
  .crm-badge { border: 1px solid #999; background: #fff; color: #222; }
  @page { margin: 15mm; }
}
.crm-certificate { padding: 70px 40px; text-align: center; border: 3px double var(--kea-blue); }
.crm-certificate h1 { font: 48px Georgia, serif; color: var(--kea-blue-dark); }
.crm-certificate h2 { font-size: 30px; margin: 30px 0; }

/* Organisatiedossier */
.crm-client-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;margin-bottom:20px;background:#fff;border:1px solid #d4e2e9;border-radius:12px}
.crm-client-bar h2{margin:0}.crm-client-bar .crm-actions{margin:0}
.crm-dossier-tabs{display:flex;gap:8px;border-bottom:2px solid #d4e2e9;margin:0 0 24px}
.crm-dossier-tabs a{padding:14px 24px;text-decoration:none;font-weight:700;color:#075079;border-radius:8px 8px 0 0}
.crm-dossier-tabs a[aria-current="page"]{color:#fff;background:#0075ad}
.crm-dossier-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start;margin-bottom:24px}
.crm-dossier-section{background:#fff;border:1px solid #d4e2e9;border-radius:12px;overflow:hidden;margin-bottom:18px}
.crm-dossier-grid .crm-dossier-section{margin:0}
.crm-dossier-section summary{padding:20px;cursor:pointer;color:#075079;font-weight:700;font-size:1.05rem}
.crm-dossier-section summary:hover{background:#f0f7fb}
.crm-dossier-count{float:right;background:#e9f3f8;padding:2px 10px;border-radius:20px;font-size:.85rem}
.crm-dossier-body{padding:0 20px 20px}.crm-dossier-record{display:flex;flex-wrap:wrap;gap:8px 18px;padding:14px 0;border-top:1px solid #e4edf2;text-decoration:none;color:#174b68;overflow-wrap:anywhere}
.crm-dossier-record span:first-child{font-weight:600}.crm-dossier-record:hover{text-decoration:underline}
@media(max-width:800px){.crm-dossier-grid{grid-template-columns:1fr}.crm-client-bar{align-items:flex-start;flex-direction:column}.crm-dossier-tabs a{padding:12px 18px}}

.crm-backbar{position:sticky;top:8px;z-index:10;pointer-events:none}.crm-backbar a{pointer-events:auto;background:#fff;box-shadow:0 2px 8px #163f5614}

/* Onvoldoende beoordelingen en herkeuring */
.crm-question-failed{border:2px solid #c3372b;background:#fff7f6}
.crm-question-failed .crm-review{border-left-color:#c3372b;background:#fff0ee}
.crm-review select.crm-judgment-failed{border:2px solid #c3372b;color:#9b241b;background:#fff0ee}
.crm-recheck-panel{border-left:5px solid #c3372b}
.crm-status-herkeuring{background:#fff0ee;color:#9b241b}

.crm-dashboard-metrics{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.crm-billing-lines select,.crm-billing-lines input{padding:9px;border:1px solid #cbdde5;border-radius:6px;width:100%;font:inherit}
.crm-billing-lines td:first-child{min-width:250px}.crm-billing-lines td:nth-child(2){min-width:140px}.crm-billing-lines input{min-width:75px;max-width:100px}
.crm-billing-lines [data-line-price],.crm-billing-lines [data-line-total]{white-space:nowrap}
.crm [hidden]{display:none!important}.crm-billing-lines [data-remove-line]{white-space:nowrap;min-width:90px}
/* Bewerkbare artikelregels in tabelvorm */
.crm-billing-lines{border-collapse:collapse;table-layout:fixed;min-width:900px}
.crm-billing-lines th,.crm-billing-lines td{border:1px solid #cbdde5;padding:0;vertical-align:middle}
.crm-billing-lines th{padding:10px;background:#e9f2f7}
.crm-billing-lines th:first-child{width:38%}.crm-billing-lines th:nth-child(2){width:15%}
.crm-billing-lines th:nth-child(3){width:9%}.crm-billing-lines th:nth-child(4){width:12%}
.crm-billing-lines th:nth-child(5){width:14%}.crm-billing-lines th:last-child{width:12%}
.crm-billing-lines select,.crm-billing-lines input{border:0;border-radius:0;max-width:none;min-width:0;min-height:44px;background:transparent}
.crm-billing-lines input{text-align:right}.crm-billing-lines input:focus,.crm-billing-lines select:focus{outline:2px solid #0878ad;outline-offset:-2px;background:#fff}
.crm-billing-lines [data-line-total]{padding:10px;text-align:right;background:#f3f8fa}
.crm-billing-open{padding:12px;margin:8px 0;border:1px solid #badbcc;border-left:4px solid #43895d;border-radius:6px;background:#f1faf4}
.crm-billing-archived{padding:12px;margin:8px 0;border:1px solid #cdd4de;border-left:4px solid #8390a1;border-radius:6px;background:#eef1f6;color:#526071}

.crm-client-title{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.crm-client-status{display:flex;align-items:center;gap:8px;margin:0}
.crm-client-status label{font-size:.85rem;color:#536b7b}
.crm-client-status select{font:inherit;font-size:.9rem;padding:8px 12px;border:1px solid #b7cdd9;border-radius:6px;background:#fff;color:#075079;min-width:140px}

.crm .crm-billing-table tbody tr:last-child td{border-bottom:1px solid #cbdde5}

/* Gedeelde sorteerindicator: CSS-driehoek zonder speciale tekens. */
.crm-sort-icon{display:inline-block;width:0;height:0;margin-left:7px;vertical-align:middle;border-left:4px solid transparent;border-right:4px solid transparent}
.crm-sort-asc{border-bottom:6px solid currentColor}
.crm-sort-desc{border-top:6px solid currentColor}

/* Uitklapbaar instellingenmenu in de zijbalk. */
.crm-nav-settings { min-width: 0; }
.crm-nav-settings > summary { padding: 10px 13px; border-left: 3px solid transparent; border-radius: 6px; font-size: 14px; cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.crm-nav-settings > summary::-webkit-details-marker { display: none; }
.crm-nav-settings > summary::after { content: ''; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.crm-nav-settings[open] > summary::after { transform: rotate(225deg); }
.crm-nav-settings > summary:hover { background: #f4f8fa; }
.crm-nav-settings > summary:focus-visible { outline: 2px solid var(--kea-blue); outline-offset: -2px; }
.crm-nav-submenu { display: grid; gap: 3px; margin: 3px 0 6px 12px; padding-left: 5px; border-left: 1px solid var(--kea-line); }
@media (max-width: 760px) { .crm-nav-settings { flex: 0 0 auto; } .crm-nav-settings > summary { white-space: nowrap; } }
