:root{color-scheme:light;--color-bg:#f6f7f9;--color-surface:#ffffff;--color-surface-muted:#f1f5f9;--color-surface-raised:#ffffff;--color-border:#d9dee7;--color-border-strong:#aeb8c6;--color-text:#17202a;--color-muted:#526173;--color-accent:#0f766e;--color-accent-contrast:#ffffff;--color-accent-soft:#e6f6f3;--color-danger:#b91c1c;--color-danger-soft:#fee2e2;--color-warning:#b45309;--color-warning-soft:#ffedd5;--color-success:#15803d;--color-success-soft:#dcfce7;--color-focus:#2563eb;--color-shadow:rgba(15,23,42,0.14);--radius-panel:8px;--radius-control:6px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--font-small:12px;--font-meta:13px}:root[data-theme=dark]{color-scheme:dark;--color-bg:#0b1115;--color-surface:#111a21;--color-surface-muted:#17232c;--color-surface-raised:#15202a;--color-border:#2a3945;--color-border-strong:#476070;--color-text:#e6edf3;--color-muted:#9aa8b5;--color-accent:#2dd4bf;--color-accent-contrast:#061211;--color-accent-soft:rgba(45,212,191,0.12);--color-danger:#f87171;--color-danger-soft:rgba(248,113,113,0.14);--color-warning:#fbbf24;--color-warning-soft:rgba(251,191,36,0.14);--color-success:#4ade80;--color-success-soft:rgba(74,222,128,0.14);--color-focus:#60a5fa;--color-shadow:rgba(0,0,0,0.32)}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit}button,input,select{font:inherit}[aria-disabled=true],button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.62}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.shell{display:grid;grid-gap:var(--space-5);gap:var(--space-5);padding:var(--space-6)}.planner-shell{min-width:1180px}.matching-backlog,.matching-matrix,.panel,.topbar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);box-shadow:0 10px 28px var(--color-shadow)}.matching-section-header h2,.matrix-feedback output,.matrix-toolbar h2,.matrix-toolbar p,.page-heading h2,.page-heading p,.panel h2,.panel p,.topbar h1,.topbar p{margin:0}.matrix-pill small,.matrix-pill span,.matrix-toolbar p,.page-heading p,.panel p,.planning-card small,.planning-card span,.topbar p{color:var(--color-muted)}.address-edit-actions,.cell-badges,.consultant-agenda-summary,.dashboard-actions,.dashboard-row-actions,.filter-actions,.form-actions,.matrix-controls,.matrix-feedback,.period-controls,.toolbar-actions,.topbar-actions,.topbar-controls,.view-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.toolbar-actions,.topbar-actions{margin-left:auto;justify-content:flex-end}.topbar-controls{margin-left:auto;flex:0 0 auto;flex-wrap:nowrap;border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:5px;background:var(--color-surface-muted)}.topbar-controls .global-tenant-switcher{min-width:180px}.panel{padding:var(--space-4)}.grid,.kpi-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.kpi-strip{align-items:stretch}.kpi-card,.sync-status-card{display:grid;grid-gap:var(--space-1);gap:var(--space-1);min-height:92px;border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:var(--space-3);background:var(--color-surface)}.kpi-card span,.sync-status-card span{color:var(--color-muted);font-size:var(--font-meta);font-weight:700}.kpi-card strong,.sync-status-card strong{font-size:24px;line-height:1.1}.dashboard-workbar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:var(--space-4);gap:var(--space-4);align-items:end}.address-edit-form,.matching-backlog,.matching-backlog-filters,.matching-backlog-list,.matrix-pill-address,.page-heading,.planning-form,.sync-loader,.sync-summary{display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.dashboard-demand-filters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(130px,1fr)) auto;grid-column-gap:var(--space-3);column-gap:var(--space-3);grid-row-gap:var(--space-3);row-gap:var(--space-3);align-items:end;margin:var(--space-3) 0 var(--space-4)}.dashboard-demand-filters label,.field,.matching-backlog-filters label,.tenant-switcher{display:grid;grid-gap:5px;gap:5px;color:var(--color-text);font-size:var(--font-meta);font-weight:700}.address-edit-form input,.combobox input,.dashboard-demand-filters input,.dashboard-demand-filters select,.dashboard-edit-form input,.field input,.field select,.matching-backlog-filters input,.matching-backlog-filters select,.tenant-switcher select{width:100%;min-height:38px;border:1px solid var(--color-border-strong);border-radius:var(--radius-control);padding:0 10px;background:var(--color-surface);color:var(--color-text);font-weight:500}.dashboard-demand-filters select,.field select,.matching-backlog-filters select,.tenant-switcher select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,currentColor 0),linear-gradient(135deg,currentColor 50%,transparent 0);background-position:calc(100% - 17px) 50%,calc(100% - 11px) 50%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}.address-edit-form input:focus,.combobox input:focus,.dashboard-demand-filters input:focus,.dashboard-demand-filters select:focus,.dashboard-edit-form input:focus,.field input:focus,.field select:focus,.matching-backlog-filters input:focus,.matching-backlog-filters select:focus,.tenant-switcher select:focus{border-color:var(--color-focus)}.form-section{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));grid-gap:14px;gap:14px;align-items:start;padding-block:4px 18px;border-bottom:1px solid var(--color-border)}.form-section-primary{grid-template-columns:minmax(280px,2fr) minmax(220px,1fr)}.field-wide{min-width:0}.combobox{position:relative;display:flex}.combobox input{padding-right:38px}.combobox>button{position:absolute;top:1px;right:1px;bottom:1px;display:inline-flex;align-items:center;justify-content:center;width:36px;height:auto;border:0;border-left:1px solid var(--color-border);border-radius:0 var(--radius-control) var(--radius-control) 0;background:var(--color-surface-muted);color:var(--color-muted);font-size:0}.combobox-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;max-height:260px;overflow:auto;border:1px solid var(--color-border-strong);border-radius:var(--radius-panel);box-shadow:0 18px 45px var(--color-shadow)}.combobox-menu,.combobox-option{display:grid;background:var(--color-surface)}.combobox-option{grid-gap:2px;gap:2px;border:0;border-bottom:1px solid var(--color-border);padding:10px 12px;color:var(--color-text);text-align:left}.combobox-option:hover,.combobox-option[aria-selected=true]{background:var(--color-accent-soft)}.combobox-empty,.combobox-option small{color:var(--color-muted);font-weight:500}.combobox-empty{padding:var(--space-3)}.button,.icon-button,.theme-toggle{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-control);text-decoration:none}.button,.theme-toggle{min-height:36px;border:1px solid var(--color-accent);padding:0 12px;background:var(--color-accent);color:var(--color-accent-contrast);font-weight:500}.button:hover:not(:disabled),.theme-toggle:hover{filter:brightness(.96)}.button.secondary,.theme-toggle{background:var(--color-surface);color:var(--color-accent)}.button.danger{border-color:var(--color-danger);background:var(--color-danger);color:var(--color-accent-contrast)}.view-tabs .button.is-active{background:var(--color-accent);color:var(--color-accent-contrast)}.theme-toggle{width:38px;min-width:38px;padding:0}.theme-toggle-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.auth-alert{margin:14px 0;border:1px solid var(--color-danger);border-radius:var(--radius-control);padding:var(--space-3);background:var(--color-danger-soft);color:var(--color-danger);font-weight:700}.outlook-status-alert{display:grid;grid-gap:var(--space-1);gap:var(--space-1);margin:var(--space-3) var(--space-4) 0;border:1px solid var(--color-warning);border-radius:var(--radius-control);padding:var(--space-3);background:var(--color-warning-soft);color:var(--color-text)}.outlook-status-alert span{color:var(--color-muted)}.table-wrap{overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-panel)}.table{width:100%;border-collapse:collapse;background:var(--color-surface)}.table td,.table th{border-bottom:1px solid var(--color-border);padding:10px;text-align:left;vertical-align:top}.table th{position:-webkit-sticky;position:sticky;top:0;z-index:1;color:var(--color-muted);font-size:var(--font-meta)}.table th,.table tr:hover td{background:var(--color-surface-muted)}.cell-outlook,.cell-roster,.cell-state,.consultant-agenda-summary span,.priority-badge,.readonly-badge,.status-badge{width:-moz-fit-content;width:fit-content;border-radius:999px;padding:2px 8px;font-size:var(--font-small);font-weight:800}.cell-state,.consultant-agenda-summary .is-clear,.status-badge{background:var(--color-success-soft);color:var(--color-success)}.cell-roster,.status-badge.status-planned{background:var(--color-accent-soft);color:var(--color-accent)}.cell-outlook,.consultant-agenda-summary .has-outlook,.priority-badge,.status-badge.status-draft,.status-badge.status-open{background:var(--color-warning-soft);color:var(--color-warning)}.consultant-agenda-summary .has-conflict,.status-badge.status-conflict{background:var(--color-danger-soft);color:var(--color-danger)}.empty-state{border:1px dashed var(--color-border-strong);border-radius:var(--radius-panel);padding:var(--space-4);color:var(--color-muted);text-align:center}.matching-workbench{display:grid;grid-template-columns:340px minmax(0,1fr);grid-gap:var(--space-4);gap:var(--space-4);align-items:stretch}.matching-backlog{align-content:start;min-height:100vh;overflow:auto;padding:14px}.matching-backlog-list{align-content:start;grid-auto-rows:max-content}.matching-section-header,.matrix-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.dashboard-row-actions{position:relative;flex-wrap:nowrap}.dashboard-edit-details{position:relative}.dashboard-edit-details summary{list-style:none;cursor:pointer}.dashboard-edit-details summary::-webkit-details-marker{display:none}.dashboard-edit-form{position:absolute;top:calc(100% + 8px);right:0;z-index:12;display:grid;width:min(560px,calc(100vw - 48px));grid-template-columns:minmax(160px,1fr) minmax(80px,.5fr) repeat(2,minmax(124px,.8fr));grid-gap:var(--space-2);gap:var(--space-2);align-items:end;border:1px solid var(--color-border-strong);border-radius:var(--radius-panel);padding:var(--space-3);background:var(--color-surface);box-shadow:0 18px 45px var(--color-shadow)}.dashboard-edit-form label{display:grid;grid-gap:5px;gap:5px;color:var(--color-text);font-size:var(--font-meta);font-weight:700}.dashboard-edit-form .button{grid-column:1/-1;justify-self:end}.matrix-pill,.planning-card{display:grid;grid-gap:var(--space-1);gap:var(--space-1);width:100%;max-width:100%;min-width:0;border:1px solid var(--color-border-strong);border-left:4px solid var(--color-accent);border-radius:var(--radius-panel);padding:10px;background:var(--color-surface-raised);color:var(--color-text);text-align:left}.planning-card{align-self:start;cursor:-webkit-grab;cursor:grab}.matrix-pill:hover,.planning-card:hover{box-shadow:0 10px 24px var(--color-shadow)}.matrix-cell.is-keyboard-target,.planning-card.is-selected{box-shadow:inset 0 0 0 2px var(--color-focus)}.matrix-pill.is-dragged,.planning-card.is-dragged{opacity:.42;transform:scale(.98)}.matrix-pill:active,.planning-card:active{cursor:-webkit-grabbing;cursor:grabbing}.planning-card-meta{display:flex;justify-content:space-between;gap:var(--space-2);margin-top:var(--space-1)}.matching-matrix{min-width:0;display:grid;align-content:start;overflow:hidden}.matrix-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto;padding:14px;border-bottom:1px solid var(--color-border)}.matrix-toolbar-heading{min-width:0}.matrix-controls{justify-content:flex-end}.matrix-toolbar output,.sr-live{color:var(--color-accent);font-weight:700}.matrix-feedback{grid-column:1/-1;flex-basis:100%;justify-content:flex-start;min-height:36px;padding-top:var(--space-2)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.matrix-scroll{position:relative;min-width:0;overflow:auto}.matrix-grid{display:grid;width:max-content;isolation:isolate}.matrix-row{display:contents}.matrix-cell,.matrix-consultant,.matrix-heading{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:10px}.matrix-heading{position:-webkit-sticky;position:sticky;top:0;z-index:2;background:var(--color-surface-muted);font-weight:800}.matrix-heading:first-child{left:0;z-index:5}.matrix-consultant{position:-webkit-sticky;position:sticky;left:0;z-index:6;display:grid;min-width:0;grid-gap:var(--space-1);gap:var(--space-1);background:var(--color-surface);box-shadow:1px 0 0 var(--color-border)}.matrix-consultant span{color:var(--color-muted);font-size:var(--font-meta)}.matrix-cell{min-height:128px;min-width:0;overflow:hidden;display:grid;align-content:start;grid-gap:var(--space-2);gap:var(--space-2);border-left:4px solid transparent;background:var(--color-surface)}.matching-workbench.is-dragging .matrix-cell,.matching-workbench.is-placing .matrix-cell{outline:1px dashed color-mix(in srgb,var(--color-accent),transparent 55%);outline-offset:-6px}.matching-workbench.view-year .matrix-pill.local,.matching-workbench.view-year .planning-card{cursor:default}.matching-workbench.view-year .matrix-cell{min-height:82px;background:var(--color-surface-muted)}.matrix-cell.is-drop-target{background:var(--color-accent-soft);box-shadow:inset 0 0 0 2px var(--color-accent)}.matrix-cell.beschikbaar{border-left-color:var(--color-success)}.matrix-cell.bezet{border-left-color:var(--color-warning)}.matrix-cell.conflict{border-left-color:var(--color-danger);background:color-mix(in srgb,var(--color-danger-soft),var(--color-surface) 62%)}.matrix-cell.niet-beschikbaar{border-left-color:var(--color-border-strong);background:var(--color-surface-muted)}.matrix-pill{font-size:var(--font-meta);cursor:-webkit-grab;cursor:grab}.matrix-pill.local{border-left-color:var(--color-accent)}.matrix-pill.graph{display:block;width:min(100%,160px);border-left-color:var(--color-muted);border-radius:var(--radius-control);padding:4px 8px;background:var(--color-surface-muted);cursor:default}.matrix-pill.graph strong{color:var(--color-text);font-size:var(--font-meta);line-height:18px}.matrix-pill.graph small,.matrix-pill.graph strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.matrix-pill.graph small{margin-bottom:2px;color:var(--color-muted);font-size:11px;line-height:14px}.matrix-pill-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2)}.matrix-pill-header strong{min-width:0}.readonly-badge{flex:0 0 auto;background:var(--color-surface-muted);color:var(--color-muted)}.matrix-empty{grid-column:1/-1;border-bottom:1px solid var(--color-border);padding:18px;color:var(--color-muted);text-align:center}.drag-image-card,.drop-preview-card{display:grid;grid-gap:3px;gap:3px;border:1px dashed var(--color-accent);border-radius:var(--radius-panel);padding:10px;background:var(--color-surface);color:var(--color-text);box-shadow:0 10px 28px var(--color-shadow)}.drag-image-card span,.drop-preview-card small,.drop-preview-card span{color:var(--color-muted);font-size:var(--font-meta)}.drag-image-card{position:fixed;top:-1000px;left:-1000px;z-index:9999;width:240px;pointer-events:none}.icon-button{flex:0 0 auto;width:32px;height:32px;border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);line-height:1}.icon-button-svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.icon-button.danger{border-color:var(--color-danger);color:var(--color-danger)}.icon-button.danger:hover:not(:disabled){background:var(--color-danger-soft)}.context-list,.sync-summary{display:grid;grid-gap:var(--space-2);gap:var(--space-2);margin:0}.context-list div,.sync-summary div{display:flex;justify-content:space-between;gap:var(--space-4);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-2)}.context-list dt,.sync-summary dt{color:var(--color-muted)}.context-list dd,.sync-summary dd{margin:0;font-weight:800;text-align:right}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:var(--space-6);background:rgba(15,23,42,.5)}.modal{width:min(440px,100%);border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:18px;background:var(--color-surface);box-shadow:0 24px 60px var(--color-shadow)}.modal h2{margin:0 0 14px}.spinner{width:34px;height:34px;border:4px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}.sync-details{width:100%;margin-bottom:18px;border-collapse:collapse;font-size:14px}.sync-details td,.sync-details th{border-bottom:1px solid var(--color-border);padding:8px 0;text-align:right}.sync-details td:first-child,.sync-details th:first-child{text-align:left}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:1180px){.planner-shell{min-width:0}.matching-workbench{grid-template-columns:minmax(280px,340px) minmax(0,1fr);overflow-x:visible}}@media (max-width:820px){.shell{padding:var(--space-3)}.dashboard-workbar,.matching-section-header,.matrix-toolbar,.topbar{align-items:flex-start;grid-template-columns:1fr;flex-direction:column}.matrix-toolbar{grid-template-columns:1fr}.toolbar-actions,.topbar-actions,.topbar-controls{margin-left:0;justify-content:flex-start}.kpi-strip{grid-auto-flow:column;grid-auto-columns:minmax(170px,1fr);grid-template-columns:none;overflow-x:auto;padding-bottom:var(--space-1)}.dashboard-demand-filters,.form-section,.form-section-primary,.matching-workbench{grid-template-columns:1fr}.matching-backlog{min-height:auto;max-height:none}.dashboard-edit-form{left:0;right:auto;grid-template-columns:1fr}}