/* MplusKASSA huisstijl: https://www.mpluskassa.nl/ — lokaal, zonder externe fonts of scripts. */
:root{--orange:#e94e1b;--teal:#b93c15;--dark:#1d1d1b;--bg:#f5f4f1;--border:#e6e4df;--muted:#6f6c67;--blue:#8b939a;--soft:#fff0e9;--button:#c94116}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--dark);font:14px/1.5 "Segoe UI",Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}button:disabled{opacity:.45;cursor:default}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#fff;border-right:1px solid var(--border);padding:32px 22px 24px;display:flex;flex-direction:column;z-index:2}.brand{display:flex;flex-direction:column;align-items:flex-start;gap:12px;text-decoration:none;color:var(--dark)}.brand-logo{display:block;width:200px;max-width:100%;height:auto}.brand-sub{display:block;padding-left:1px;font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:600;color:var(--muted)}.nav-caption{font-size:10px;letter-spacing:1.7px;font-weight:700;color:var(--muted);margin:46px 12px 14px}nav{display:grid;gap:8px}nav button{display:flex;align-items:center;gap:12px;padding:14px 12px;background:transparent;border:1px solid transparent;border-radius:12px;text-align:left;color:#5f5c57;font-size:13px}nav button:hover{background:#f7f6f3}nav button.active{color:#a83410;background:var(--soft);font-weight:700;border-color:#f9d9cb}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--border);padding-top:20px;font-size:12px;font-weight:600}.sidebar-bottom div{font-size:10px;color:var(--muted);font-weight:400;margin-top:5px}.dot{display:inline-block;background:var(--orange);width:7px;height:7px;border-radius:50%;margin-right:7px}
main{margin-left:248px;padding:34px 34px 22px;max-width:1920px}header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:750;color:#a83410;display:flex;align-items:center;gap:8px}.eyebrow:before{content:"";width:7px;height:7px;border:2px solid var(--orange)}h1{font:800 34px/1.15 Arial,Helvetica,sans-serif;letter-spacing:-1.1px;margin:10px 0 9px}header p{margin:0;color:var(--muted);font-size:12px}.header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.primary,.secondary,.danger{padding:11px 18px;border-radius:999px;font-size:12px;font-weight:700;min-height:42px;white-space:nowrap}.primary{background:var(--button);border:1px solid var(--button);color:#fff}.primary:hover{background:#ad3511;border-color:#ad3511}.secondary{background:#fff;border:1px solid #d6d3cd;color:var(--dark)}.secondary:hover{background:#f4f2ee;border-color:#aaa59c}.text-button{border:0;background:none;color:#a83410;padding:10px 5px;font-size:12px;font-weight:600}.text-button:hover{text-decoration:underline}.app-state{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:6px;font-size:11px;color:var(--muted)}.status{font-size:11px;color:var(--muted);margin-bottom:18px;line-height:1.6}
.filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;background:#fff;border:1px solid var(--border);border-radius:18px;padding:20px;margin-bottom:22px}.filters label{display:grid;gap:7px;flex:1;min-width:135px;font-size:10px;font-weight:650;color:var(--muted);letter-spacing:.2px}input,select{padding:10px 11px;border:1px solid #dcd9d2;background:#fff;border-radius:8px;color:var(--dark);min-height:40px;min-width:0;width:100%}input:hover,select:hover{border-color:#aaa59c}input:focus,select:focus{border-color:var(--orange)}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.metrics article{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:18px;background:#fff;padding:22px 20px}.metrics article:before{content:"";position:absolute;top:0;left:20px;right:20px;height:3px;background:#d8d4cc}.metrics article:first-child:before{background:var(--orange)}.metrics article:first-child{background:#fffaf7;border-color:#f1c7b6}.metrics span{font-size:11px;color:var(--muted);font-weight:600}.metrics strong{display:block;font:800 clamp(23px,2vw,31px)/1.2 Arial,Helvetica,sans-serif;letter-spacing:-.9px;white-space:nowrap;margin:12px 0 10px}.metrics small{font-size:10px;color:var(--muted)}
.overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.price-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.card{min-width:0;background:#fff;border:1px solid var(--border);border-radius:18px;padding:23px;box-shadow:0 3px 12px #1d1d1b03}.price-grid .card{padding:20px}.wide{grid-column:span 2}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}h2{font:750 17px/1.35 Arial,Helvetica,sans-serif;letter-spacing:-.3px;margin:0}h2+p{font-size:11px;color:var(--muted);margin:7px 0 0}.pill{border:1px solid #f2c5b3;border-radius:999px;background:#fff4ef;color:#a83410;padding:5px 11px;font-size:10px;font-weight:600;white-space:nowrap}.price-note{margin:14px 2px 24px;font-size:10px;line-height:1.8;color:var(--muted)}.trend{height:218px}.trend svg{height:100%;width:100%;overflow:visible}.trend svg text{fill:var(--muted)}.bar-row{margin:18px 0}.bar-label{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px;font-size:12px}.bar-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-label strong{font-weight:700;white-space:nowrap}.bar-track{height:8px;border-radius:99px;background:#f0eeea}.bar-fill{height:100%;border-radius:99px;min-width:0;background:var(--orange)}.bar-sub{font-size:10px;color:var(--muted);margin-top:6px;line-height:1.6}.chart-note{font-size:10px;color:var(--muted);line-height:1.8;margin-top:18px}.no-data{padding:25px 0;font-size:12px;color:var(--muted)}.bpe-summary{display:block;padding:18px 20px;margin-top:22px;background:#f6f4f0;border-radius:12px;border-left:3px solid var(--orange)}.bpe-summary span{font-size:11px;color:#a83410;font-weight:600}.bpe-summary strong{display:block;font:800 25px/1.3 Arial,Helvetica,sans-serif;margin:7px 0;color:var(--dark)}.bpe-summary small{font-size:10px;color:var(--muted)}.quarter-card{margin-top:24px}.quarter-card .trend{height:260px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}th,td{text-align:right;padding:14px 12px;border-bottom:1px solid #efede9}th{font-size:11px;font-weight:650;background:#f6f4f0;color:#625f59}th:first-child,td:first-child,th:nth-child(2),td:nth-child(2){text-align:left}thead tr:first-child th[colspan]{text-align:center;color:#a83410}tbody tr:hover{background:#fff6f1}tfoot{font-weight:700}.table-foot{margin-top:16px;font-size:11px;color:var(--muted)}.search{max-width:250px}.info{display:grid;gap:8px;border-radius:14px;background:#eeece7;padding:20px 22px;margin-top:24px;font-size:11px;color:#66625b;line-height:1.8}.info strong{font-size:12px;color:var(--dark)}.selection-empty{padding:24px;text-align:center;color:var(--muted)}
.empty{position:relative;text-align:center;padding:64px 24px;min-height:440px;border:1px solid var(--border);border-radius:22px;background:#fff;overflow:hidden}.empty:before{content:"";display:block;width:42px;height:42px;border:7px solid var(--orange);border-radius:6px;transform:rotate(-7deg);margin:0 auto 25px}.empty-icon{display:none}.empty h2{font-size:30px;font-weight:800;letter-spacing:-.7px}.empty p{font-size:14px;color:var(--muted);line-height:1.9}.empty-steps{display:flex;justify-content:center;gap:18px;margin:28px 0 0;font-size:11px;color:#a83410;font-weight:600}.empty-steps span{background:#fff3ed;padding:9px 14px;border-radius:999px}.empty .muted{font-size:11px}footer{display:flex;justify-content:space-between;gap:18px;margin-top:28px;font-size:10px;color:var(--muted);line-height:1.8}
dialog{border:1px solid var(--border);border-radius:20px;padding:28px;width:480px;max-width:95vw;color:var(--dark);box-shadow:0 24px 80px #1d1d1b33}dialog::backdrop{background:#1d1d1b77;backdrop-filter:blur(3px)}dialog p{font-size:12px;color:var(--muted);line-height:1.8}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:15px}dialog label{display:grid;gap:8px;margin:16px 0;font-size:12px;color:var(--muted)}.dialog-actions,.week-inputs{display:flex;gap:12px}.week-inputs label{flex:1}.checkbox{display:flex!important;align-items:center;gap:10px}.checkbox input{width:17px;min-height:17px;accent-color:var(--orange)}#settings-status,#request-error{min-height:18px;color:#a83410}.update-progress{display:flex;align-items:center;gap:15px;background:#fff0e9;border:1px solid #f4d1c2;border-radius:12px;padding:16px 20px;margin-bottom:16px;color:#a83410}.update-progress progress{flex:1;accent-color:var(--orange);height:9px}.update-progress span{font-size:12px}.danger-zone{border-top:1px solid var(--border);padding-top:18px;margin-top:24px}.danger-zone h3{font-size:14px;color:#a53535}.danger{background:#a53535;border:1px solid #a53535;color:#fff}.danger:hover{background:#8c2929}#clear-error{color:#a53535}
@media(min-width:1700px){.price-grid{gap:20px}.metrics strong{font-size:34px}}
@media(max-width:1450px){.price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics strong{font-size:25px}.header-actions{max-width:440px}main{padding:28px 24px}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){.sidebar{width:214px;padding:28px 18px}.brand-logo{width:176px}main{margin-left:214px;padding:24px 20px}header{align-items:flex-start;flex-direction:column}.header-actions{justify-content:flex-start;max-width:none}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.filters label{min-width:140px}}
@media(max-width:800px){.sidebar{position:static;width:100%;padding:20px;border-right:0;border-bottom:1px solid var(--border)}.brand{flex-direction:row;align-items:center;justify-content:space-between}.brand-logo{width:185px}.brand-sub{font-size:9px}.nav-caption,.sidebar-bottom{display:none}nav{display:flex;overflow:auto;gap:6px;margin-top:20px}nav button{padding:10px 12px;white-space:nowrap;font-size:12px}main{margin-left:0;padding:24px 16px}h1{font-size:30px}.overview-grid{grid-template-columns:1fr}.wide{grid-column:auto}.card-head{flex-wrap:wrap}.empty-steps{flex-direction:column;gap:10px;max-width:280px;margin-left:auto;margin-right:auto}.empty{padding:45px 20px}.filters{padding:16px}.quarter-card .trend{height:220px}footer{flex-direction:column;gap:5px}}
@media(max-width:520px){.price-grid{grid-template-columns:1fr}.metrics{gap:10px}.metrics article{padding:18px 14px}.metrics strong{font-size:22px}.metrics span{font-size:10px}.filters label{min-width:125px}.app-state{align-items:flex-start}.header-actions{gap:6px}.primary,.secondary{font-size:11px;padding:10px 14px}.card{padding:20px}.update-progress{flex-wrap:wrap}.update-progress progress{min-width:100px}.dialog-actions{flex-wrap:wrap}.empty h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{.sidebar,.filters,.header-actions,.app-state,footer,.info{display:none}main{margin:0;padding:0}body{background:#fff}.card,.metrics{break-inside:avoid}.card{box-shadow:none}.metrics strong{font-size:24px}}

.loading-state{min-height:440px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#fff;border:1px solid var(--border);border-radius:22px;padding:48px 24px;gap:12px}.loading-spinner{display:block;width:48px;height:48px;border:4px solid #f4ddd3;border-top-color:var(--orange);border-radius:50%;animation:dashboard-loading .85s linear infinite;margin-bottom:14px}.loading-state h2{font-size:24px}.loading-state p{max-width:540px;margin:0;color:var(--muted);line-height:1.8}.loading-state button{margin-top:12px}@keyframes dashboard-loading{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loading-spinner{animation-duration:2s}}
.login-page{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:min(440px,100%);padding:36px;background:white;border-radius:20px;border:1px solid #e8e6e2}.login-card h1{font-size:32px}.login-card label,dialog label{display:grid;gap:8px;margin:16px 0}.login-error{color:#a12212}.tenant-bar{display:flex;align-items:end;gap:18px;margin:0 0 20px;padding:18px;background:white;border-radius:14px;border:1px solid #e8e6e2;flex-wrap:wrap}.tenant-bar label{display:grid;gap:6px;min-width:220px}.management{width:min(960px,94vw);max-width:960px}.manage-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.manage-grid form{border:1px solid #e8e6e2;padding:20px;border-radius:12px}.manage-grid small{display:block;color:#6f6c67;margin:8px 0 16px}.manage-grid .check{display:flex;align-items:center;gap:8px}.manage-grid .check input{width:auto}#admin-message:empty{display:none}#admin-message{padding:12px;background:#fff0e9;border-radius:8px}@media(max-width:700px){.manage-grid{grid-template-columns:1fr}.tenant-bar{align-items:stretch}.tenant-bar>*{width:100%}}
.account-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
