:root {
  --bg:#f4f6f4; --panel:#fff; --ink:#17211c; --muted:#66736c; --line:#d9e0db;
  --red:#c93b34; --green:#278a55; --amber:#e5a126; --gray:#7c8790;
  --deep:#173c2b; --blue:#2d73ad; --shadow:0 12px 38px rgba(24,43,33,.14);
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
button,input,select{font:inherit}
button{color:inherit}
.app-shell{display:grid;grid-template-columns:410px minmax(0,1fr);width:100%;height:100vh;overflow:hidden}
.panel{background:var(--panel);border-right:1px solid var(--line);padding:23px 24px 18px;overflow-y:auto;z-index:1001}
.brand-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.eyebrow{color:#4c6858;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.12em}
h1{font-size:29px;line-height:1.05;margin:4px 0 0;letter-spacing:-.035em}
h2{font-size:14px;margin:19px 0 9px}
.intro{color:var(--muted);font-size:13.5px;line-height:1.52;margin:13px 0 14px}
.year-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:#edf1ee;padding:4px;border-radius:12px;margin:17px 0 0}
.year-btn{border:0;background:transparent;border-radius:9px;padding:9px 12px;font-weight:800;cursor:pointer;color:#627068}
.year-btn.active{background:#fff;color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.notice{padding:11px 12px;border-radius:10px;font-size:11.5px;line-height:1.45;margin:11px 0 14px}
.notice.warning{background:#fff8e4;border:1px solid #ecd693;color:#675315}
.notice.info{background:#edf5fb;border:1px solid #c9ddeb;color:#37596e}
.notice.conclusion{background:#f3f5f3;border:1px solid var(--line);color:#44514a}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0 9px}
.stat-card{border:1px solid var(--line);border-left-width:5px;border-radius:10px;padding:10px 11px;background:#fff}
.stat-number{display:block;font-size:27px;font-weight:900;line-height:1}
.stat-label{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.stat-red{border-left-color:var(--red)} .stat-green{border-left-color:var(--green)} .stat-amber{border-left-color:var(--amber)} .stat-gray{border-left-color:var(--gray)}
.mini-facts{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.mini-facts>div{padding:9px 11px}.mini-facts>div+div{border-left:1px solid var(--line)}
.mini-facts strong{display:block;font-size:18px}.mini-facts span{display:block;font-size:10.5px;color:var(--muted);margin-top:2px;line-height:1.28}
.controls{margin-top:17px;border-top:1px solid var(--line);padding-top:1px}
.section-head{display:flex;align-items:center;gap:7px}.section-head h2{margin-right:auto}
.mini-link{border:0;background:transparent;color:#315e48;font-size:11px;font-weight:800;cursor:pointer;padding:4px 0}
.check-row{display:flex;align-items:center;gap:8px;min-height:31px;font-size:12.5px;cursor:pointer}.check-row input{width:15px;height:15px}
.divider-top{margin-top:7px;padding-top:8px;border-top:1px dashed var(--line)}
.dot,.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}.red,.dot-red{background:var(--red)}.green,.dot-green{background:var(--green)}.amber,.dot-amber{background:var(--amber)}.gray,.dot-gray{background:var(--gray)}
.shape{display:inline-block;width:12px;height:12px;border:2px solid #4d6357;flex:none}.shape-circle{border-radius:50%}.shape-diamond{transform:rotate(45deg);width:10px;height:10px;margin:0 1px}.shape-square{border-radius:2px}
.zone-chip{width:18px;height:10px;border:2px dashed var(--blue);border-radius:10px}.turbine-chip{width:18px;height:18px;border-radius:50%;display:inline-grid;place-items:center;background:#df712d;color:#fff;font-size:9px;font-weight:900}
.select-control{width:100%;border:1px solid #cdd7d1;border-radius:8px;background:#fff;padding:8px 9px;font-size:12px;color:var(--ink)}
.help{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);color:var(--muted);font-size:11px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;font-size:10.8px}th,td{padding:7px 6px;border-bottom:1px solid #edf1ee;text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left}thead th{background:#f7f9f8;color:#596760;font-weight:850}tbody tr:last-child td{border-bottom:0}
.zone-row-btn{padding:0;border:0;background:none;color:#2c5d45;font-size:inherit;font-weight:750;cursor:pointer}.n-red{color:var(--red);font-weight:800}.n-green{color:var(--green);font-weight:800}.n-amber{color:#a36c09;font-weight:800}
.survey-2024{margin-top:16px}.bar-list{display:grid;gap:9px}.bar-label{display:flex;justify-content:space-between;gap:10px;font-size:11.5px;margin-bottom:4px}.bar-label strong{font-size:11px}.bar-track{height:8px;background:#edf1ee;border-radius:5px;overflow:hidden}.bar-fill{height:100%;border-radius:5px}.bar-fill.red{background:var(--red)}.bar-fill.green{background:var(--green)}.bar-fill.gray{background:var(--gray)}
.method{margin-top:17px;border-top:1px solid var(--line);padding-top:1px}.method p{font-size:11.5px;line-height:1.5;color:var(--muted)}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin:17px 0}.btn{appearance:none;border:1px solid #b9c8bf;background:#fff;color:var(--ink);padding:8px 11px;border-radius:8px;cursor:pointer;font-weight:750;font-size:11.5px}.btn:hover{background:#f3f6f4}.btn.primary{background:var(--deep);border-color:var(--deep);color:#fff}
footer{border-top:1px solid var(--line);padding-top:13px;display:flex;flex-wrap:wrap;gap:6px;font-size:10px;line-height:1.4;color:var(--muted)}footer a{color:#315f49;font-weight:750;text-decoration:none}footer a:hover{text-decoration:underline}
.map-area{min-width:0;position:relative;height:100%}#map{position:absolute;inset:0;background:#e7ece8}
/* Prevent global/responsive image rules from ever resizing Leaflet's 256px tiles. */
.leaflet-container img.leaflet-tile{max-width:none!important;max-height:none!important;width:256px;height:256px}
.map-legend{position:absolute;z-index:700;right:14px;bottom:20px;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border:1px solid #d5ddd8;box-shadow:var(--shadow);border-radius:11px;padding:10px 12px;font-size:10.8px;line-height:1.75;max-width:240px}.map-legend strong{display:block;margin-bottom:3px}.map-legend div{display:flex;align-items:center;gap:7px}.map-legend small{display:block;color:var(--muted);line-height:1.35;margin-top:5px}
.map-note{position:absolute;z-index:700;left:50%;bottom:25px;transform:translateX(-50%);background:rgba(255,255,255,.96);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:11px;padding:12px 14px;max-width:460px;font-size:12px;line-height:1.45;text-align:center}
.loading{position:absolute;z-index:900;top:17px;left:50%;transform:translateX(-50%);background:var(--deep);color:#fff;padding:9px 13px;border-radius:20px;box-shadow:var(--shadow);font-size:11.5px;font-weight:800}.loading.error{background:#9e312d}
.panel-open{position:absolute;z-index:900;top:12px;left:12px;border:0;border-radius:9px;background:#fff;padding:9px 12px;box-shadow:var(--shadow)}.icon-btn{width:33px;height:33px;border:1px solid var(--line);background:#fff;border-radius:9px;font-size:22px;line-height:1;cursor:pointer}.mobile-only{display:none}
.address-marker-wrap{background:none!important;border:0!important}.address-marker{width:30px;height:30px;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 9px rgba(0,0,0,.3);display:grid;place-items:center;color:#fff;font-size:10px;font-weight:900;text-shadow:0 1px 2px rgba(0,0,0,.45)}.address-marker.mixed{border-color:#fff;box-shadow:0 0 0 1px rgba(38,45,41,.22),0 2px 9px rgba(0,0,0,.3)}
.turbine-marker-wrap{background:none!important;border:0!important}.turbine-marker{width:36px;height:36px;background:#de702c;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 10px rgba(0,0,0,.28);color:#fff;display:grid;grid-template-columns:1fr;grid-template-rows:1fr;place-items:center;position:relative}.turbine-marker b{position:absolute;bottom:-17px;background:#fff;color:#7d3d19;border:1px solid #e4b597;border-radius:9px;min-width:18px;text-align:center;font-size:9px;padding:1px 3px}.turbine-blades{font-size:19px;line-height:1}
.leaflet-popup-content{margin:12px 14px;min-width:270px}.popup-address{font-size:14px;font-weight:900;margin-bottom:2px}.popup-meta{font-size:10px;color:#65736b;line-height:1.35;margin-bottom:8px}.popup-grid{display:grid;grid-template-columns:1fr auto;gap:3px 12px;font-size:11px;border:1px solid #e4e9e6;border-radius:8px;padding:7px 8px;margin-bottom:8px}.popup-filter-note{font-size:9.5px;color:#765b14;background:#fff8df;border-radius:6px;padding:5px 7px;margin-bottom:7px}.response-list{display:grid;gap:5px;max-height:320px;overflow:auto}.response-detail{border:1px solid #e5e9e7;border-radius:8px;background:#fff}.response-detail summary{list-style:none;cursor:pointer;padding:7px 8px;font-size:10.5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.response-detail summary::-webkit-details-marker{display:none}.response-detail summary span:last-child{color:#6a786f}.response-detail p{font-size:11px;line-height:1.48;margin:0;padding:7px 9px;border-top:1px solid #edf0ee;white-space:normal}.response-detail small{display:block;padding:0 9px 8px;color:#7c8881;font-size:9.5px}.response-badge{display:inline-block;background:var(--badge);color:#fff;border-radius:10px;padding:2px 6px;font-size:9px;font-weight:850}
dialog{width:min(980px,94vw);max-height:92vh;padding:0;border:0;border-radius:16px;box-shadow:0 25px 80px rgba(0,0,0,.3)}dialog::backdrop{background:rgba(15,25,20,.58)}dialog form{padding:18px}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.dialog-head h2{font-size:20px;margin:3px 0 0}dialog img{display:block;width:100%;height:auto;max-height:72vh;object-fit:contain;background:#f7f7f4}.caption{color:var(--muted);font-size:10.5px;margin:10px 0 0}
[hidden]{display:none!important}
@media(max-width:850px){.app-shell{display:block}.panel{position:absolute;inset:0 auto 0 0;width:min(94vw,410px);transform:translateX(-102%);transition:transform .2s ease;box-shadow:var(--shadow)}.panel.open{transform:translateX(0)}.map-area{height:100vh}.mobile-only{display:block}.map-legend{right:8px;bottom:10px;max-width:205px}.map-note{bottom:12px;max-width:82vw}.leaflet-popup-content{min-width:230px}}
