*{box-sizing:border-box}body{margin:0;color:#172940;font:14px system-ui,sans-serif;background:#f3f4f6}header{height:78px;background:white;display:flex;align-items:center;gap:26px;padding:16px 24px;border-bottom:1px solid #dedee4}header strong{font-size:19px}header strong span{color:#74378b}h1{font-size:20px;font-weight:500;border-left:1px solid #ddd;padding-left:24px}header #updated{margin-left:auto;font-size:12px;color:#657184}a{color:#74378b}nav{display:flex;gap:12px;align-items:center;background:white;padding:14px 24px;flex-wrap:wrap}label{display:flex;gap:8px;align-items:center}input[type=range]{accent-color:#74378b;flex:1;min-width:130px}select,button,input[type=file]{padding:9px;border:1px solid #d9dae2;border-radius:6px;background:white;color:#172940}button{cursor:pointer}button:hover{border-color:#74378b}button:disabled{opacity:.5;cursor:wait}main{display:grid;grid-template-columns:minmax(0,2fr) minmax(340px,1fr);height:calc(100vh - 154px)}#map{min-height:460px;position:relative}aside{background:white;padding:20px;overflow:auto}h2{font-size:18px}#details{line-height:1.8;white-space:pre-line}#chart{height:320px}.note{color:#637084;font-size:12px;line-height:1.6}#message:not(:empty){padding:12px 24px;background:#fff3dc}#legend{position:absolute;bottom:22px;left:12px;z-index:800;background:white;padding:12px;border-radius:6px;box-shadow:0 2px 9px #0002;font-size:12px;max-width:240px}#legend i{display:inline-block;width:18px;height:12px;margin-right:6px}.admin{max-width:920px;margin:25px auto;padding:24px;background:white;border-radius:10px}.admin section{padding:16px 0;border-bottom:1px solid #ddd}.admin pre{background:#18212f;color:#e4e9ee;padding:16px;max-height:380px;overflow:auto;white-space:pre-wrap;font-size:12px}.admin li{margin:7px 0}@media(max-width:850px){header{gap:12px;padding:12px}header #updated{display:none}nav{padding:12px}main{grid-template-columns:1fr;height:auto}#map{height:55vh}aside{overflow:visible}.admin{margin:12px}}
/* Vaste desktopindeling: selectie en grafiek verschuiven niet bij een klik. */
body.dashboard{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.dashboard header{flex:0 0 78px}.brand-logo{width:132px;height:66px;object-fit:contain;display:block}.dashboard h1{margin:0;font-size:21px}.dashboard nav{flex:0 0 auto;gap:16px}.timeline{display:flex;align-items:center;gap:10px;flex:1;min-width:250px}.timeline #clock{min-width:105px;white-space:nowrap;font-variant-numeric:tabular-nums}.timeline button{padding:8px 12px}.dashboard main{flex:1;min-height:0;height:auto;grid-template-columns:minmax(0,1fr) 480px}.dashboard #map{min-height:0;height:100%}.dashboard aside{padding:0;display:grid;grid-template-rows:324px minmax(0,1fr);overflow:auto;background:#f4f5f8;gap:12px;border-left:1px solid #e1e4eb}.info-panel,.chart-panel{padding:18px 22px;background:white;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.eyebrow{margin:0 0 4px;color:#7c8796;font-size:10px;text-transform:uppercase;letter-spacing:1.3px}.panel-heading h2{margin:0;font-size:19px}.panel-heading button{font-size:12px}.dashboard #selection-hint{font-size:12px;color:#7b8797;margin:10px 0 12px;height:18px}.dashboard #details{line-height:normal;white-space:normal;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.stat{border:1px solid #e6e8ef;border-radius:8px;padding:12px 9px;min-height:82px;background:#f8f9fc}.stat-label{display:block;color:#68768a;font-size:11px;margin-bottom:8px}.stat-value{display:block;font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.stat-primary{background:#f4edf8;border-color:#dcc9e6}.stat-primary .stat-value{color:#74378b}.stat-warning{background:#fff2e7;border-color:#f4d4b6}.stat-warning .stat-value{color:#b26521}.chart-panel{display:flex;flex-direction:column;min-height:330px}.chart-panel h2{font-size:15px;margin:0 0 8px}.dashboard #chart{height:auto;min-height:220px;flex:1;width:100%}.chart-panel .note{flex:0 0 auto;margin:7px 0 0;font-size:11px}.switch{font-size:12px;white-space:nowrap;cursor:pointer}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch-track{width:34px;height:20px;border-radius:12px;background:#a9b0bc;position:relative;transition:background .15s}.switch-track:before{content:'';width:14px;height:14px;position:absolute;left:3px;top:3px;background:white;border-radius:50%;transition:transform .15s}.switch input:checked+.switch-track{background:#74378b}.switch input:checked+.switch-track:before{transform:translateX(14px)}.switch input:focus-visible+.switch-track{outline:2px solid #74378b;outline-offset:3px}.legend-gradient{height:12px;width:190px;margin:8px 0 5px;background:linear-gradient(to right,#7abe88 0%,#e8d764 50%,#e69b4b 70%,#d34c44 85%,#922b32 100%)}.legend-scale{display:flex;justify-content:space-between;font-size:10px}.legend-caption{font-size:10px;margin-top:6px;color:#637084}
@media(min-width:1600px){.dashboard main{grid-template-columns:minmax(0,1fr) 560px}}
@media(max-width:1100px){.dashboard main{grid-template-columns:minmax(0,1fr) 410px}.dashboard nav{gap:10px;padding:10px 14px}.dashboard #details{gap:6px}.stat{padding:10px 6px}.stat-value{font-size:18px}.info-panel,.chart-panel{padding:16px}}
@media(max-width:780px){body.dashboard{height:auto;min-height:100dvh;overflow:auto}.dashboard header{height:auto;min-height:74px;gap:10px;flex-wrap:wrap}.brand-logo{width:102px;height:52px}.dashboard h1{font-size:17px;padding-left:10px}.dashboard header a{margin-left:auto}.dashboard nav{flex-wrap:wrap}.timeline{order:3;flex-basis:100%}.dashboard main{display:flex;flex-direction:column;flex:none}.dashboard #map{height:52dvh;min-height:320px}.dashboard aside{display:grid;grid-template-rows:324px 370px;overflow:visible;border-left:0}.dashboard #details{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard #legend{bottom:22px}.dashboard .chart-panel{min-height:0}}
.dashboard #message:not(:empty){position:fixed;top:142px;left:64px;max-width:calc(100vw - 100px);z-index:1200;border:1px solid #eadbb8;border-radius:7px;box-shadow:0 2px 10px #0001;padding:10px 14px;font-size:12px}
