/* Layout en componenten; centrale huisstijlvariabelen staan in theme.css. */
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font:14px/1.5 var(--font);color:var(--ink);background:var(--paper)}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.45;cursor:default}button,a,input,summary{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent)}a{color:var(--brand)}button{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:9px 12px}button:hover{background:var(--soft)}h1,h2,h3,p{margin-top:0}h2{font-size:15px}h3{font-size:15px;margin-top:24px}small{font-size:11px}.app-shell{display:flex;height:100dvh;overflow:hidden}.sidebar{width:var(--sidebar-width);flex-shrink:0;display:flex;flex-direction:column;background:var(--paper);z-index:1001;box-shadow:4px 0 16px #163c4210}.brand{display:flex;align-items:center;gap:12px;padding:25px 24px 16px}.brand-mark{position:relative;width:43px;height:45px;background:var(--brand-dark);border-radius:10px;font:36px/47px Georgia,serif;text-align:center;color:white}.brand-mark span{position:absolute;font:22px var(--font);right:-4px;top:-8px;color:var(--accent)}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2px;color:var(--muted)}h1{font-size:24px;letter-spacing:-1px;line-height:1.25;margin:3px 0 0}.sidebar-body{padding:0 24px 22px;overflow-y:auto;flex:1;scrollbar-width:thin}.intro{color:var(--muted);font-size:13px;margin-bottom:23px}.search-section>label{font-size:12px;font-weight:600}.search-box{display:flex;align-items:center;border:1px solid #c5d3cf;background:#fff;border-radius:9px;margin-top:7px;height:46px}.search-box>span{font-size:27px;margin-left:12px;color:var(--brand)}.search-box input{border:0;background:transparent;min-width:0;width:100%;padding:9px;font-size:13px;outline-offset:0}.search-box button{border:0;background:none;padding:6px 10px;font-size:20px}.subtle{font-size:11px;color:var(--muted);margin-top:6px}.search-results{border:1px solid var(--line);background:#fff;border-radius:8px;max-height:275px;overflow-y:auto;margin-top:7px}.search-result{display:block;border:0;border-bottom:1px solid var(--line);border-radius:0;text-align:left;width:100%;padding:10px;font-size:12px}.search-result small{display:block;color:var(--muted)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:26px 0 9px}.section-heading h2{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:1.1px}.count-pill{font-size:10px;background:#e7efea;border-radius:10px;padding:2px 7px;color:var(--brand)}.layer-list{display:grid;gap:7px}.layer-card{display:grid;grid-template-columns:9px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px;cursor:pointer}.layer-card:has(input:checked){border-color:#aac6be;background:#f6faf6}.swatch{width:8px;height:27px;border-radius:4px;display:inline-block;background:var(--brand)}.swatch.zoning{background:linear-gradient(#c0d885 0 50%,#e7b478 50%)}.layer-name{font-size:13px;font-weight:600;display:block}.layer-description{font-size:10px;color:var(--muted);display:block;margin-top:2px}.layer-state{display:block;font-size:10px;color:var(--brand);margin-top:2px}.layer-state.error{color:#ad3344}.layer-card input{appearance:none;width:29px;height:17px;border-radius:20px;background:#cbd4cf;position:relative;margin:0;cursor:pointer}.layer-card input:after{content:"";position:absolute;width:11px;height:11px;background:white;border-radius:50%;top:3px;left:3px;transition:left .12s}.layer-card input:checked{background:var(--brand)}.layer-card input:checked:after{left:15px}.olb-section{border:1px solid var(--line);border-radius:10px;background:#fff;margin-top:12px}.olb-section summary{display:flex;align-items:center;gap:10px;padding:13px;cursor:pointer;list-style:none}.olb-section summary::-webkit-details-marker{display:none}.olb-section summary strong{font-size:13px}.olb-section summary small{display:block;color:var(--muted);font-size:10px}.chevron{margin-left:auto}.olb-body{padding:0 13px 13px;font-size:12px}.olb-body>p{font-size:11px;color:var(--muted)}.olb-row{display:flex;gap:8px;align-items:center;padding:6px 0}.olb-row input{accent-color:var(--brand)}.olb-row small{margin-left:auto;color:var(--muted)}.notice{border-left:3px solid var(--accent);padding:9px 11px;background:#faf5e9;color:#706045!important;font-size:11px}.olb-body .notice{margin-top:12px}.base-options{display:flex;gap:5px}.base-options button{font-size:11px;padding:9px 10px;flex:1}.base-options .selected{background:var(--brand-dark);color:#fff;border-color:var(--brand-dark)}.label-toggle{margin:16px 0;font-size:12px}.label-toggle input{accent-color:var(--brand)}.label-toggle small{display:block;color:var(--muted);margin-left:21px;margin-top:3px}.source-button{width:100%;text-align:left;font-size:11px;background:transparent}.sidebar-footer{padding:12px 24px;border-top:1px solid var(--line);display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#389680}.map-shell{flex:1;position:relative;min-width:0}.map-shell #map{height:100%;width:100%;background:#e9efea}.map-title{position:absolute;top:22px;left:22px;z-index:900;background:#fffc;backdrop-filter:blur(6px);border-radius:7px;padding:9px 13px;display:flex;align-items:center;gap:9px;font-size:10px;font-weight:700;letter-spacing:1.7px;box-shadow:var(--shadow)}.map-title-detail{font-size:10px;font-weight:400;letter-spacing:0;color:var(--muted);border-left:1px solid #ccd7ce;padding-left:9px}.map-tools{position:absolute;right:22px;top:22px;z-index:900;display:flex;align-items:center;padding:4px;border-radius:10px;background:#fff;box-shadow:var(--shadow);gap:2px}.map-tools button{border:0;min-width:47px;padding:5px 9px;font-size:22px;line-height:1.2;border-radius:6px}.map-tools button small{display:block;font-size:9px;line-height:1.5}.map-tools button.active{background:var(--brand-dark);color:#fff}.tool-separator{height:26px;border-left:1px solid var(--line);margin:0 2px}.leaflet-top.leaflet-right{top:100px;right:13px}.leaflet-control-zoom{border:0!important;box-shadow:var(--shadow)!important}.leaflet-control-zoom a{color:var(--ink)!important}.leaflet-control-attribution{font-size:9px!important;max-width:85%}.leaflet-bottom.leaflet-left{bottom:29px;left:12px}.leaflet-control-scale-line{border-color:var(--ink);font-family:var(--font);font-size:10px}.map-bottom{position:absolute;bottom:0;left:0;right:0;padding:6px 12px 6px;display:flex;justify-content:space-between;font-size:10px;color:var(--muted);background:#fff9;pointer-events:none;z-index:700}.leaflet-bottom.leaflet-right{bottom:26px}.map-card{position:absolute;z-index:950;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.measure-panel{right:74px;top:101px;width:335px}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.card-heading h2{margin:0;font-size:16px}.icon-button{font-size:24px;line-height:1;border:0;background:transparent;padding:4px 7px}.measure-panel p{font-size:12px;color:var(--muted);margin:8px 0}.measure-values{background:#eaf1eb;padding:12px;border-radius:7px;margin:12px 0;min-height:50px;font-size:16px;font-weight:600}.measure-values small{font-weight:400;color:var(--muted);display:block}.button-row{display:flex;gap:5px;margin-bottom:9px}.button-row button{font-size:11px;padding:8px}.primary{background:var(--brand);border-color:var(--brand);color:white}.primary:hover{background:var(--brand-dark)}.measure-panel>small{color:var(--muted);font-size:10px}#toast{position:absolute;bottom:60px;left:50%;transform:translateX(-50%);z-index:1100;background:var(--brand-dark);color:white;border-radius:9px;padding:11px 18px;box-shadow:var(--shadow);max-width:90%;width:max-content;font-size:12px}.street-label,.house-label,.district-label{background:none;border:none;box-shadow:none;font-family:var(--font);padding:0;pointer-events:none}.street-label{font-size:11px;font-weight:600;color:#1e4c5a;text-shadow:0 0 3px #fff,1px 1px 0 #fff,-1px -1px 0 #fff;white-space:nowrap}.house-label{font-size:10px;color:#173d55;background:#fffffff0;border:1px solid #d8e0da;border-radius:3px;padding:0 3px;white-space:nowrap}.district-label{font-size:14px;font-weight:700;color:#74548b;text-shadow:0 0 5px white;white-space:nowrap;letter-spacing:.2px}.leaflet-tooltip:before{display:none}.leaflet-popup-content{font:12px/1.5 var(--font);min-width:190px}.popup-title{font-size:15px;font-weight:600;margin-bottom:7px}.popup-row{margin:6px 0}.popup-row small{display:block;color:var(--muted)}.popup-source{border-top:1px solid var(--line);padding-top:7px;margin-top:8px;color:var(--muted);font-size:10px}.popup-rule{display:block;margin:5px 0}dialog{border:0;border-radius:15px;padding:0;width:min(650px,94vw);max-height:88dvh;color:var(--ink);background:var(--paper);box-shadow:var(--shadow)}dialog::backdrop{background:#153a4266;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;padding:24px 28px 18px;border-bottom:1px solid var(--line);align-items:center}.dialog-heading h2{font-size:24px;margin:4px 0 0}.dialog-body{padding:22px 28px;font-size:13px;line-height:1.65}.dialog-body li{margin-bottom:8px}.legend-row{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:11px 0;font-size:12px}.legend-row a{font-size:10px}.legend-row small{display:block;color:var(--muted)}.zoning-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:11px}.zoning-key{display:flex;align-items:center;gap:8px}.zoning-key i{width:18px;height:14px;display:inline-block;border:1px solid #999}.skip-link{position:absolute;top:-100px;z-index:2000;background:white;padding:12px}.skip-link:focus{top:0}.mobile-menu,.mobile-close,.print-heading,.print-footer{display:none}.noscript{position:fixed;inset:0;background:white;padding:40px;z-index:9999}.measuring{cursor:crosshair!important}[hidden]{display:none!important}
@media(max-width:1100px){.map-title-detail{display:none}.map-title{left:15px}.map-tools{right:15px}.sidebar{width:305px}.sidebar-body{padding:0 19px 20px}.brand{padding:22px 19px 16px}.sidebar-footer{padding:12px 19px}}
@media(max-width:760px){.sidebar{position:absolute;top:0;bottom:0;left:0;max-width:91vw;width:340px;transform:translateX(-105%);transition:transform .2s}.sidebar.open{transform:translateX(0)}.mobile-close{display:block;margin-left:auto}.mobile-menu{display:block;position:absolute;left:14px;top:14px;z-index:900;background:white;font-size:12px;box-shadow:var(--shadow)}.map-title{display:none}.map-tools{top:68px;left:14px;right:auto}.map-tools button{min-width:45px}.leaflet-top.leaflet-right{top:4px;right:4px}.measure-panel{top:128px;right:14px;width:min(335px,calc(100% - 28px))}.map-bottom #coordinates{display:none}.dialog-body{padding:18px}.dialog-heading{padding:18px}.zoning-legend{grid-template-columns:1fr}.leaflet-control-attribution{font-size:8px!important}.map-shell{width:100%}}
@media print{ @page{size:A4 landscape;margin:10mm}html,body{height:auto!important;background:white!important}.app-shell{display:block;height:auto;overflow:visible}.sidebar,.map-tools,.map-title,.mobile-menu,.map-card,.map-bottom,#toast,dialog,.leaflet-control-zoom,.skip-link{display:none!important}.map-shell{width:277mm}.map-shell #map{width:277mm;height:162mm!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:4mm;font-size:18px}.print-heading span{font-size:10px}.print-footer{display:flex;flex-wrap:wrap;gap:3mm;font-size:9px;margin-top:3mm}.print-footer small{flex-basis:100%;font-size:8px}.leaflet-bottom.leaflet-right{bottom:0}.leaflet-bottom.leaflet-left{bottom:0}.leaflet-control-attribution{max-width:100%}}
.printing .map-shell #map{width:1047px;height:612px}.printing .sidebar,.printing .map-tools{visibility:hidden}

/* Schermvoorbeeld gebruikt dezelfde afmetingen als de A4-afdruk. */
.printing{height:auto;background:#e6ebe6;overflow:auto}.printing .app-shell{display:block;height:auto;overflow:visible}.printing .sidebar,.printing .map-tools,.printing .map-title,.printing .mobile-menu,.printing .map-card,.printing .map-bottom,.printing .leaflet-control-zoom{display:none!important}.printing .map-shell{width:1123px;margin:76px auto 24px;padding:26px 38px;background:white;box-shadow:var(--shadow)}.printing .map-shell #map{width:1047px;height:612px}.printing .print-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;font-size:18px}.printing .print-heading span{font-size:10px}.printing .print-footer{display:flex;flex-wrap:wrap;gap:10px;font-size:10px;margin-top:11px}.printing .print-footer small{flex-basis:100%;font-size:9px}.print-preview-tools{position:fixed;left:0;right:0;top:0;z-index:2000;padding:10px 20px;display:flex;gap:10px;align-items:center;background:var(--paper);box-shadow:var(--shadow)}.print-preview-tools span{margin-right:auto;font-size:12px}.print-preview-tools button{font-size:12px}.printing .leaflet-bottom.leaflet-right{bottom:0}.printing .leaflet-bottom.leaflet-left{bottom:0}
@media print{.print-preview-tools{display:none!important}.printing{background:white;overflow:visible}.printing .map-shell{margin:0;padding:0;box-shadow:none;width:277mm}.printing .map-shell #map{width:277mm;height:162mm!important}.printing .print-heading{margin-bottom:4mm}.printing .print-footer{gap:3mm;font-size:9px;margin-top:3mm}.printing .print-footer small{font-size:8px}.printing .leaflet-control-attribution{max-width:100%}}
/* Plantaz identity and coordinate tools. */
.brand-logo{width:66px;height:66px;object-fit:contain;border-radius:50%;flex-shrink:0}.brand{padding-top:19px;padding-bottom:13px;gap:11px}.brand h1{font-size:23px}.intro{font-size:13px;line-height:1.5;color:var(--ink);margin-bottom:22px}.layer-card{min-height:52px;padding:11px 12px}.layer-state:empty{display:none}.swatch{height:24px}.olb-section summary{min-height:54px}.base-options button{padding:9px 7px}.coordinate-panel{right:74px;top:101px;width:360px;max-height:calc(100dvh - 155px);overflow:auto}.coordinate-panel>p{font-size:12px;color:var(--muted);margin:7px 0 12px}.coordinate-panel fieldset{margin:0 0 13px;border:1px solid var(--line);border-radius:8px;padding:10px}.coordinate-panel legend{font-size:12px;font-weight:700;padding:0 5px}.coordinate-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px}.coordinate-fields label{font-size:10px;color:var(--muted)}.coordinate-fields input{display:block;width:100%;min-width:0;border:1px solid #c8d0de;border-radius:5px;padding:8px;font-size:13px;color:var(--ink);background:white}.coordinate-panel .button-row{margin-bottom:0}.location-button{font-size:12px;width:100%}.print-brand{display:flex;align-items:center;gap:10px}.print-brand img{border-radius:50%;object-fit:contain}.download-links{display:flex;gap:10px}.download-links a{padding:8px 12px;border:1px solid var(--line);border-radius:7px;background:white;font-size:12px}.dialog-body article h3:first-child{margin-top:0}.layer-list{gap:6px}.map-tools button{padding-left:7px;padding-right:7px}.map-tools button small{font-size:9px}
@media(max-width:1100px){.brand-logo{width:55px;height:55px}.brand h1{font-size:22px}}
@media(max-width:760px){.coordinate-panel{top:128px;right:14px;width:min(360px,calc(100% - 28px));max-height:calc(100dvh - 171px)}.map-tools{gap:0}.map-tools button{min-width:39px;padding:5px 6px}.map-tools button small{font-size:8px}.brand-logo{width:60px;height:60px}}

/* Compacte laagbediening en inklapbaar zijpaneel. */
.layer-list{gap:4px}.layer-card{min-height:39px;padding:7px 10px;border-radius:8px}.layer-name{font-size:12px}.swatch{height:19px}.layer-card input{width:31px;height:17px}.layer-card input:checked:after{left:17px}
.section-heading{margin-top:18px}.olb-section{margin-top:12px}.olb-section summary{min-height:42px;padding:9px 10px}.olb-row{min-height:34px;padding:6px 0}.olb-body{padding:0 10px 8px}.olb-section.has-active{border-color:#849dc3}.base-options button{padding:7px 9px}.brand{padding-left:18px;padding-right:12px;gap:9px}.brand-logo{width:54px;height:54px}.brand h1{font-size:21px}.mobile-close{display:block;margin-left:auto;font-size:30px;min-width:34px;min-height:40px}.intro{margin-bottom:14px}.sidebar-body{padding-top:0}
.parcel-label{background:#ffffffe8;border:1px solid #cfb6c1;border-radius:3px;box-shadow:none;color:var(--parcel-color);font:600 11px/1.2 var(--font);padding:1px 3px;white-space:nowrap;pointer-events:none}
.purpose-note{border-left:3px solid var(--brand);padding:12px 15px;background:var(--soft);border-radius:0 8px 8px 0;margin:18px 0}.purpose-note h3{margin:0 0 8px}.purpose-note p:last-child{margin-bottom:0}
@media(min-width:761px){.sidebar-collapsed .sidebar{display:none}.sidebar-collapsed .mobile-menu{display:block;position:absolute;left:16px;top:22px;z-index:900;box-shadow:var(--shadow)}.sidebar-collapsed .map-title{display:none}}
@media(max-width:760px){.layer-card{min-height:44px}.olb-row{min-height:40px}.base-options button{min-height:42px}.mobile-close{min-width:44px;min-height:44px}.brand h1{font-size:21px}.map-tools{max-width:calc(100% - 28px)}.sidebar{max-width:calc(100vw - 34px)}.purpose-note{padding:10px 12px}.dialog-body{font-size:12px}}
@media print{.mobile-close,.mobile-menu{display:none!important}}
