:root{--c-bg:#f5f5ef;--c-panel:#10281f;--c-border:#d8dfd5;--c-accent:#8fcbaa;--c-text:#203b2d;--c-sub:#a9dcc0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--c-text);background:var(--c-bg)}
*{box-sizing:border-box}html,body{height:100%;margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}a{color:#276445}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e2a535;outline-offset:2px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
#app{height:100vh;height:100dvh;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;overflow:hidden}header{background:var(--c-panel);color:#fff;display:flex;gap:18px;align-items:center;justify-content:space-between;padding:12px 20px;z-index:1100}.brand{display:flex;align-items:baseline;gap:14px;white-space:nowrap}.brand h1{font-size:25px;letter-spacing:-1px;margin:0}.brand span{font-size:12px;color:#b6c9bb}.actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.btn{border:1px solid #526758;background:#203d2e;color:#f5fff7;padding:8px 12px;border-radius:7px;font-size:13px;font-weight:600;min-height:36px}.btn:hover,.btn.active{background:#345e45;border-color:#b2d8b3}.btn.primary{background:#24613f;border-color:#24613f}.btn:disabled{opacity:.6;cursor:wait}#filter-badge{padding:1px 5px;background:#d89236;color:#111;border-radius:10px}
.search-bar{display:flex;align-items:center;gap:9px;padding:10px 20px;border-bottom:1px solid var(--c-border);background:#fff;position:relative;z-index:1050}#search-form{display:flex;gap:7px;flex:1;max-width:600px}#destination,#state-select{background:#fff;border:1px solid #b9c8b8;color:#1f3b29;border-radius:7px;padding:9px 11px;min-width:0}#destination{flex:1;width:100%}#state-select{max-width:200px;font-size:13px}.search-bar>.btn{background:#eff4eb;color:#2e533b;border-color:#bacbb6}#search-results{position:absolute;left:20px;top:calc(100% - 2px);width:min(600px,calc(100vw - 40px));background:#fff;color:#243b2a;border:1px solid #bbcab6;border-radius:0 0 10px 10px;box-shadow:0 12px 30px #10281f30;max-height:50vh;overflow:auto;padding:8px}#search-results button{display:block;width:100%;text-align:left;border:0;background:#fff;padding:10px;border-radius:6px;color:#21422b;font-size:14px}#search-results button:hover{background:#eff3e8}#search-results p{padding:8px;margin:0;font-size:13px}
main{position:relative;min-height:0;display:grid;grid-template-columns:310px minmax(0,1fr)}main.list-closed{grid-template-columns:minmax(0,1fr)}main.list-closed #results{display:none}#map{height:100%;min-height:0;width:100%;z-index:1;background:#e7ecdf}#results{background:#f8f8f2;border-right:1px solid var(--c-border);overflow:auto;min-height:0}.results-heading{padding:17px 18px 12px;background:#fff;border-bottom:1px solid var(--c-border)}.results-heading h2{font-size:17px;margin:0 0 6px}#result-summary{font-size:12px;color:#55694f;margin:0}.data-note{font-size:12px;line-height:1.5;margin:12px 15px;padding:10px;background:#edf0df;border-radius:6px;color:#53603d}#data-errors{margin:10px 15px;padding:10px;border:1px solid #d4ab78;font-size:12px;border-radius:6px}#data-errors button{margin-top:6px}.site-card{padding:14px 17px;border-bottom:1px solid #dfe5d9;background:#fff}.site-card h3{font-size:14px;line-height:1.4;margin:0 0 6px}.site-card p{font-size:12px;color:#596f55;line-height:1.5;margin:0 0 8px}.site-card .site-actions{display:flex;gap:7px}.site-actions button{padding:5px 9px;font-size:12px;border:1px solid #b6c7af;border-radius:5px;background:#eff5e9;color:#295336}.list-empty{padding:20px;font-size:13px;line-height:1.6;color:#53684f}
footer{background:#fff;border-top:1px solid var(--c-border);padding:7px 16px;font-size:10px;color:#55674d;display:flex;gap:10px;justify-content:space-between;z-index:1001}footer a{color:#345b3b}#status-dot{color:#287d45}.toast{position:fixed;left:50%;bottom:50px;transform:translateX(-50%);display:none;z-index:3000;background:#173d2b;color:#fff;border:1px solid #93bd9b;border-radius:9px;padding:12px 17px;width:max-content;max-width:min(90vw,600px);box-shadow:0 6px 25px #0004;font-size:14px}.toast.show{display:block}.toast.error{background:#662d24}.toast button{margin-left:12px}.loading{position:fixed;top:140px;left:50%;transform:translateX(-50%);background:#fff;padding:8px 14px;border:1px solid #b9c8b8;border-radius:20px;z-index:1500;font-size:12px;pointer-events:none}.leaflet-popup-content{color:#263d2b}.leaflet-popup-content button{min-height:30px}.kt-controls{max-width:220px}.kt-legend{max-width:230px}.kt-controls input{width:16px;height:16px}.kt-legend summary{cursor:pointer}#kt-filter-panel{color:#d9eedd}
@media(max-width:1050px){header{padding:10px 14px}main{grid-template-columns:280px minmax(0,1fr)}.actions .btn{font-size:12px;padding:7px 9px}}
@media(max-width:760px){header{display:block;padding:10px 12px}.brand{margin-bottom:9px}.brand h1{font-size:22px}.brand span{display:inline}.actions{justify-content:flex-start;gap:5px}.actions .btn,#layers-toggle{font-size:11px!important;padding:6px 8px!important;min-height:32px!important;margin:0!important}.search-bar{padding:8px 10px;flex-wrap:wrap;gap:6px}#search-form{flex-basis:100%;max-width:none}#destination{font-size:14px}#state-select{flex:1;max-width:none;padding:7px}#results-toggle{font-size:12px;padding:7px;min-height:32px}main,main.list-closed{display:block}#results{position:absolute;left:0;top:0;bottom:0;width:min(320px,85vw);z-index:1050;box-shadow:5px 0 20px #0003}#map{position:absolute;inset:0}.kt-controls{top:12px!important;right:8px!important;font-size:11px;max-width:200px}.kt-legend{bottom:25px!important;right:8px!important;font-size:10px}footer{font-size:9px;padding:5px 10px;align-items:center}footer>span:first-child{max-width:70%}.toast{bottom:55px}.loading{top:auto;bottom:85px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Dark tool drawers carry their own palette, independent of the light map shell. */
#kt-trip-drawer,#compare-drawer{--c-text:#e3f0e5;--c-panel:#142c21;--c-border:#45624b;color:#e3f0e5}#kt-trip-drawer{z-index:1400!important;top:12px!important;height:calc(100dvh - 24px)!important}#kt-trip-drawer[aria-hidden="true"]{visibility:hidden}#compare-drawer{z-index:1450!important}#compare-drawer table{color:#e3f0e5}#kt-trip-drawer small{color:#b5cbb9}

.map-key{background:#fffef7eb;border:1px solid #b8c5b1;padding:7px 9px;border-radius:7px;color:#2e4a30;font-size:11px;box-shadow:0 2px 8px #0002;display:flex;gap:9px;flex-wrap:wrap;max-width:270px}.map-key span{display:flex;gap:5px;align-items:center}.map-key i{display:block;width:10px;height:10px;border-radius:50%;border:1px solid #fff}#kt-filter-panel{background:#fff!important;border-color:#b8c5b1!important;color:#203b2d!important;top:14px!important;z-index:1200!important;padding:0;max-height:calc(100% - 28px);overflow:auto}#kt-filter-panel h2{margin:0;font-size:16px}#kt-filter-panel label{font-size:13px}#kt-filter-panel .filter-header{padding:12px;display:flex;gap:8px;align-items:center;border-bottom:1px solid #d6dfcf}#kt-filter-panel .filter-body{padding:14px;color:#203b2d}#kt-filter-panel select{width:100%;padding:8px;margin:8px 0;border:1px solid #b5c5ae;border-radius:6px;background:#fff;color:#203b2d}#kt-filter-panel .cost-options{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:10px 0 17px}#kt-filter-panel .filter-note{font-size:12px;line-height:1.5;color:#5b6e50}.filter-header .btn{padding:5px 8px;font-size:12px}@media(max-width:760px){.map-key{font-size:10px;max-width:200px;gap:6px}#kt-filter-panel{left:8px!important;width:calc(100% - 16px)!important;max-width:360px!important}}

.app-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 20px;background:#edf3e8;border-bottom:1px solid var(--c-border);font-size:13px}.app-intro p{margin:0}.app-intro button{flex-shrink:0;border:0;background:transparent;color:#245639;text-decoration:underline;min-height:36px;font:inherit;padding:4px}#data-dialog{width:min(580px,calc(100vw - 24px));max-height:85dvh;border:1px solid #b8c5b1;border-radius:12px;padding:22px;color:#203b2d;background:#fff;line-height:1.6}#data-dialog::backdrop{background:#10281f99}.data-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.data-dialog-heading h2{font-size:21px;margin:0}#data-dialog h3{font-size:16px;margin:22px 0 6px}#data-dialog p{font-size:14px;margin:10px 0}#catalogue-summary{font-weight:600}@media(max-width:760px){.app-intro{padding:5px 12px;font-size:12px}.brand{white-space:normal}.brand span{font-size:11px}.actions .btn{min-height:44px!important}.search-bar>.btn{min-height:44px!important}}

/* 2.3.0: popups, layers, services, spot check */
.kt-popup-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:8px}.kt-popup-actions button,.kt-popup-actions a{font-size:12px}.kt-popup-actions button{padding:4px 8px;border:1px solid #b6c7af;border-radius:5px;background:#eff5e9;color:#295336}.kt-popup-actions button:disabled{opacity:.5;cursor:default}
.kt-popup-more{padding-top:6px;border-top:1px solid #e0e6db}
.kt-popup-extra:empty{display:none}.kt-popup-extra{margin-top:8px;display:grid;gap:8px}.kt-popup-extra ul,.kt-wx ul{margin:4px 0;padding-left:18px;font-size:12px;line-height:1.45}
.kt-muted{font-size:12px;color:#5b6e50}.kt-fine{font-size:11px;line-height:1.4;color:#5b6e50;margin:6px 0 0}
.kt-land{padding:8px;border-radius:6px;font-size:12px;line-height:1.45;border-left:4px solid #8aa37d;background:#f3f6ee}.kt-land.is-public{border-left-color:#c9a62a;background:#fffbe8}.kt-land.is-restricted{border-left-color:#a8432f;background:#fbefec}.kt-land p{margin:4px 0}
.kt-spot-popup h3,.kt-svc-popup h3{margin:0 0 6px;font-size:15px}.kt-spot-popup{min-width:220px;max-width:300px}.kt-spot-land{margin:8px 0}
.kt-svc-icon span{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;color:#fff;font:700 11px system-ui,sans-serif;border:2px solid #fff;box-shadow:0 1px 4px #0006}
.kt-svc-cluster span{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#5a4a86;color:#fff;font:700 11px system-ui,sans-serif;border:2px solid #fff;box-shadow:0 1px 4px #0006}
.kt-land-legend{background:#fffef7eb;border:1px solid #b8c5b1;padding:7px 9px;border-radius:7px;color:#2e4a30;font-size:11px;box-shadow:0 2px 8px #0002;display:flex;gap:8px;flex-wrap:wrap;max-width:260px}.kt-land-legend span{display:flex;gap:5px;align-items:center}.kt-land-legend i{display:block;width:12px;height:12px;border:1px solid #8a8a7a}.kt-land-legend small{flex-basis:100%;color:#55674d}
.leaflet-control-layers{color:#203b2d;font-size:13px}.leaflet-control-layers-expanded{padding:8px 10px}.leaflet-control-layers label{min-height:28px;display:flex;align-items:center}
#kt-filter-panel .amenity-options{border:0;padding:0;margin:4px 0 10px;display:grid;grid-template-columns:1fr 1fr;gap:6px}#kt-filter-panel .amenity-options legend{margin-bottom:6px}
@media(max-width:760px){.kt-land-legend{font-size:10px;max-width:200px}}
.leaflet-popup-content{max-height:min(62vh,560px);overflow:auto;overscroll-behavior:contain}
.leaflet-container:has(.leaflet-popup) .kt-land-legend,.leaflet-container:has(.leaflet-popup) .map-key{display:none}
@media(max-width:760px){.leaflet-popup-content{max-height:48vh;margin:12px 14px}.kt-wx ul{padding-left:16px}}
@media(max-width:760px){.kt-land-legend{max-width:150px;gap:4px 6px;padding:5px 7px}.kt-land-legend small{display:none}.map-key{max-width:170px}}
#kt-filter-panel input[type=number]{width:100%;padding:8px;margin:8px 0;border:1px solid #b5c5ae;border-radius:6px;background:#fff;color:#203b2d}
.free-tip{margin:12px 15px;padding:10px;border-left:4px solid #c9a62a;background:#fffbe8;border-radius:6px;font-size:12px;line-height:1.5;color:#4a4a2a}.free-tip p{margin:0 0 8px}.free-tip button{padding:6px 10px;border:1px solid #c9a62a;border-radius:5px;background:#fff;color:#4a4a2a;font-weight:600}
.kt-off{background:#fff;border-radius:6px}.kt-off-toggle{border:0;background:#fff;color:#203b2d;font:600 12px system-ui,sans-serif;padding:0 9px;min-height:34px;border-radius:6px;cursor:pointer}.kt-off-panel{width:250px;padding:10px;font-size:12px;color:#203b2d;display:grid;gap:7px}.kt-off-panel[hidden]{display:none}.kt-off-panel button{padding:6px 9px;border:1px solid #b6c7af;border-radius:5px;background:#eff5e9;color:#295336;font-weight:600}.kt-off-panel progress{width:100%}.kt-off-panel p{margin:0}
.kt-fee-evidence{font-size:12px;line-height:1.45;margin:3px 0}#kt-filter-panel .kt-inline{display:flex;gap:6px;align-items:center;font-size:12px;margin:-2px 0 8px}
.kt-state-bubble span{display:flex;align-items:center;justify-content:center;border-radius:50%;background:#24613fe6;color:#fff;font:700 12px system-ui,sans-serif;border:2px solid #fff;box-shadow:0 1px 5px #0006;cursor:pointer}.kt-state-bubble:focus-visible span{outline:3px solid #e2a535}
/* 2.5.0 reports */
.kt-linkbtn{border:0;background:none;padding:0;color:#245639;text-decoration:underline;font:inherit;cursor:pointer;min-height:24px}
#kt-report{width:min(520px,calc(100vw - 24px));max-height:88dvh;border:1px solid #b8c5b1;border-radius:12px;padding:18px;color:#203b2d;background:#fff;line-height:1.5}#kt-report::backdrop{background:#10281f99}
.kt-report-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.kt-report-head h2{font-size:19px;margin:0}
#kt-report form{display:grid;gap:10px;margin-top:8px}.kt-field{display:grid;gap:3px;font-size:14px}.kt-field small{color:#5b6e50;font-size:12px}
#kt-report input:not([type=checkbox]),#kt-report textarea{font:inherit;font-size:14px;border:1px solid #b5c5ae;border-radius:6px;padding:7px;width:100%}
.kt-problems{border:1px solid #d6dfcf;border-radius:8px;display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;font-size:13px;padding:8px 10px}.kt-problems legend{font-weight:600;padding:0 4px}
.kt-confirm{font-size:13px;display:flex;gap:6px;align-items:flex-start}.kt-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.kt-report-site{font-weight:700;margin:0}.kt-report-msg{min-height:1.2em;margin:0;font-size:13px}.kt-report-msg.is-error{color:#8a2a1a}.kt-report-ok{font-weight:600}
.kt-report-list{padding-left:18px}.kt-report-list li{margin:8px 0}
@media(max-width:520px){.kt-problems{grid-template-columns:1fr}}
.kt-health-table{width:100%;border-collapse:collapse;font-size:13px;margin:6px 0}
.kt-health-table caption{text-align:left;font-weight:600;padding-bottom:4px}
.kt-health-table th,.kt-health-table td{text-align:left;vertical-align:top;padding:4px 6px;border-bottom:1px solid var(--line,#d8dfd5)}
.kt-health-table tr[data-status="stale"] td:last-child,.kt-health-table tr[data-status="failing"] td:last-child{color:#8a2a1a;font-weight:600}
.kt-health-warn{background:#fff4e5;border:1px solid #e0a94a;color:#5a3a00;border-radius:6px;padding:8px 10px}
