@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Outfit:wght@300;400;600;700&display=swap";:root{--ink:#0d1117;--ink-mid:#1c2533;--ink-light:#2d3f55;--steel:#3a5068;--mist:#8aa3b8;--fog:#c8d8e4;--paper:#f0f4f7;--white:#fff;--amber:#e8a020;--amber-deep:#c07010;--red-warn:#c0392b;--font-body:"Outfit", system-ui, sans-serif;--font-mono:"DM Mono", "Courier New", monospace;--radius:8px;--radius-lg:14px;--shadow:0 4px 20px #00000080;--focus-ring:0 0 0 3px var(--amber), 0 0 0 5px var(--ink);--trans:.15s ease;--btn-size:clamp(52px, 7vmin, 64px);--btn-font:clamp(1.25rem, 3vmin, 1.6rem)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-body);overflow:hidden}body{background:var(--ink);color:var(--paper)}.skip-link{z-index:9999;background:var(--amber);color:var(--ink);border-radius:var(--radius);padding:.5rem 1rem;font-weight:700;text-decoration:none;position:absolute;top:-100px;left:1rem}.skip-link:focus{box-shadow:var(--focus-ring);outline:none;top:1rem}.map-container{background:var(--ink);outline:none;width:100%;height:100%;position:fixed;inset:0}.map-container:focus-visible{box-shadow:inset 0 0 0 3px var(--amber)}.ol-attribution{color:var(--mist)!important;font-size:.68rem!important;font-family:var(--font-mono)!important;background:#0d1117d1!important}.ol-attribution a{color:var(--fog)!important}.ol-attribution button{color:var(--mist)!important;background:0 0!important}.ol-zoom{display:none!important}.ol-action-bar{border:1px solid var(--steel)!important;border-radius:var(--radius-lg)!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;box-shadow:var(--shadow)!important;background:#0d1117e0!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;padding:0!important;display:flex!important;position:absolute!important;inset:auto 1rem 1rem auto!important;overflow:hidden!important}.ol-action-bar button{width:var(--btn-size)!important;height:var(--btn-size)!important;min-width:0!important;color:var(--fog)!important;font-size:var(--btn-font)!important;font-family:var(--font-mono)!important;cursor:pointer!important;transition:background var(--trans), color var(--trans)!important;background:0 0!important;border:none!important;border-radius:0!important;justify-content:center!important;align-items:center!important;margin:0!important;padding:0!important;line-height:1!important;display:flex!important}.ol-action-bar button:hover{background:var(--ink-light)!important;color:var(--white)!important}.ol-action-bar button:focus-visible{box-shadow:inset var(--focus-ring)!important;outline:none!important}#btn-open-settings{background:var(--amber)!important;color:var(--ink)!important}#btn-open-settings:hover{background:var(--amber-deep)!important;color:var(--white)!important}#btn-open-settings svg{width:calc(var(--btn-font) * 1.1);height:calc(var(--btn-font) * 1.1)}.action-bar-divider{border:none;border-top:1px solid var(--steel);opacity:.6;margin:0}.ol-status-bar{-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;border:1px solid var(--steel)!important;font-family:var(--font-mono)!important;color:var(--mist)!important;pointer-events:none!important;background:#0d1117d1!important;border-radius:2rem!important;padding:.3rem .85rem!important;font-size:.72rem!important;position:absolute!important;inset:auto auto 1rem 1rem!important}.ol-settings-panel{-webkit-backdrop-filter:blur(3px)!important;backdrop-filter:blur(3px)!important;background:#0000008c!important;justify-content:center!important;align-items:center!important;padding:1rem!important;display:flex!important;position:absolute!important;inset:0!important}.ol-settings-panel[hidden]{display:none!important}.settings-inner{background:var(--ink-mid);border:1px solid var(--steel);border-radius:var(--radius-lg);width:min(480px,90vw);max-height:90vh;box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.settings-header{border-bottom:1px solid #3a506880;flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.25rem .75rem;display:flex}.settings-title{color:var(--white);font-size:.9rem;font-weight:700}.settings-close{border:1px solid var(--steel);border-radius:var(--radius);width:32px;height:32px;color:var(--mist);cursor:pointer;transition:background var(--trans), color var(--trans), border-color var(--trans);background:#ffffff14;justify-content:center;align-items:center;padding:0;font-size:.9rem;display:flex}.settings-close:hover{color:var(--white);border-color:var(--fog);background:#ffffff26}.settings-close:focus-visible{box-shadow:var(--focus-ring);outline:none}.settings-body{scrollbar-width:thin;scrollbar-color:var(--steel) transparent;flex:1;overflow:hidden auto}.settings-body::-webkit-scrollbar{width:5px}.settings-body::-webkit-scrollbar-thumb{background:var(--steel);border-radius:3px}.settings-section{border-bottom:1px solid #3a506866;padding:1rem 1.25rem}.settings-section:last-child{border-bottom:none}.settings-heading{font-size:.65rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--amber);margin-bottom:.65rem;font-weight:500}.settings-desc{color:var(--mist);margin-bottom:.65rem;font-size:.8rem;line-height:1.5}.settings-footer{font-size:.7rem;font-family:var(--font-mono);color:var(--mist);border-top:1px solid #3a506866;flex-shrink:0;padding:.65rem 1.25rem}.settings-footer a{color:var(--fog);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.settings-footer a:hover{color:var(--amber)}.ol-feature-modal{-webkit-backdrop-filter:blur(3px)!important;backdrop-filter:blur(3px)!important;background:#0000008c!important;justify-content:center!important;align-items:center!important;padding:1rem!important;display:flex!important;position:absolute!important;inset:0!important}.ol-feature-modal[hidden]{display:none!important}.feature-modal-inner{background:var(--ink-mid);border:1px solid var(--steel);border-radius:var(--radius-lg);width:min(520px,90vw);max-height:90vh;box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.feature-modal-body{scrollbar-width:thin;scrollbar-color:var(--steel) transparent;flex:1;padding:1rem 1.25rem;overflow:hidden auto}.feature-modal-body::-webkit-scrollbar{width:5px}.feature-modal-body::-webkit-scrollbar-thumb{background:var(--steel);border-radius:3px}.popup-layer-label{font-size:.68rem;font-family:var(--font-mono);color:var(--amber);letter-spacing:.05em;margin:.65rem 0 .25rem}.popup-layer-label:first-child{margin-top:0}.ol-popup-content .popup-loading{color:var(--mist);align-items:center;gap:.5rem;padding:.5rem 0;display:flex}.ol-popup-content .popup-empty{color:var(--mist);font-style:italic}.ol-popup-content table{border-collapse:collapse;width:100%;font-family:var(--font-mono);margin-bottom:.5rem;font-size:.72rem}.ol-popup-content th,.ol-popup-content td{border-bottom:1px solid var(--steel);text-align:left;vertical-align:top;padding:.25rem .3rem}.ol-popup-content th{color:var(--mist);width:42%;font-weight:500}.ol-popup-content td{color:var(--fog)}.popup-images{border-top:1px solid var(--steel);flex-wrap:wrap;gap:.4rem;margin-top:.65rem;padding-top:.55rem;display:flex}.popup-images img{object-fit:cover;border-radius:var(--radius);background:var(--ink);cursor:pointer;width:calc(50% - .2rem);max-width:130px;height:90px;transition:opacity var(--trans)}.popup-images img:only-child{width:100%;max-width:100%;height:140px}.popup-images img:hover{opacity:.85}.search-input{background:var(--ink);border:1px solid var(--steel);border-radius:var(--radius);width:100%;color:var(--fog);font-family:var(--font-body);transition:border-color var(--trans);outline:none;padding:.55rem .75rem;font-size:.85rem}.search-input::placeholder{color:var(--mist)}.search-input:focus{border-color:var(--amber)}.search-results{border:1px solid var(--steel);border-radius:var(--radius);margin-top:.4rem;list-style:none;display:none;overflow:hidden}.search-results:not(:empty){display:block}.search-results li{color:var(--fog);cursor:pointer;transition:background var(--trans);border-bottom:1px solid #3a506866;padding:.5rem .75rem;font-size:.82rem}.search-results li:last-child{border-bottom:none}.search-results li:hover{background:var(--ink-light);color:var(--white)}.loading-state{color:var(--mist);align-items:center;gap:.65rem;padding:.35rem 0;font-size:.82rem;display:flex}.spinner{border:2px solid var(--steel);border-top-color:var(--amber);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#layer-tree{flex-direction:column;display:flex}.layer-item--composite{border-radius:var(--radius);background:#e8a02014;border:1px solid #e8a02033;margin-bottom:.4rem}.layer-divider{background:var(--steel);opacity:.5;height:1px;margin:.4rem 0 .65rem}.layer-group{margin-bottom:.2rem}.layer-group-header{width:100%;color:var(--fog);font-family:var(--font-body);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.4rem;padding:.35rem .25rem;font-size:.82rem;font-weight:600;display:flex}.layer-group-header:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius);outline:none}.layer-group-arrow{color:var(--mist);transition:transform var(--trans);flex-shrink:0;font-size:.55rem}.layer-group-arrow.open{transform:rotate(90deg)}.layer-group-children{border-left:2px solid var(--steel);flex-direction:column;gap:1px;margin-left:.4rem;padding-left:.75rem;display:flex}.layer-item{border-radius:var(--radius);transition:background var(--trans);flex-direction:column;padding:.3rem .4rem;display:flex}.layer-item:hover{background:#3a506859}.layer-item label{cursor:pointer;color:var(--fog);align-items:flex-start;gap:.55rem;font-size:.8rem;line-height:1.35;display:flex}.layer-item input[type=checkbox]{width:15px;height:15px;accent-color:var(--amber);cursor:pointer;flex-shrink:0;margin-top:.1em}.layer-item input[type=checkbox]:focus-visible{box-shadow:var(--focus-ring);border-radius:3px;outline:none}.layer-legend-img{background:var(--white);border-radius:3px;max-width:calc(100% - 1.5rem);height:auto;margin-top:.35rem;margin-left:1.5rem;padding:2px 4px;display:block}.basemap-fieldset{border:none;flex-direction:column;gap:.4rem;display:flex}.radio-label{color:var(--fog);cursor:pointer;align-items:center;gap:.5rem;font-size:.82rem;display:flex}.radio-label input[type=radio]{accent-color:var(--amber);width:15px;height:15px}.radio-label input[type=radio]:focus-visible{box-shadow:var(--focus-ring);border-radius:50%;outline:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.map-toast{z-index:9999;background:var(--ink-mid);border:1px solid var(--steel);border-radius:var(--radius);font-family:var(--font-body);color:var(--fog);box-shadow:var(--shadow);text-align:center;opacity:0;pointer-events:none;max-width:min(380px,90vw);padding:.7rem 1.1rem;font-size:.85rem;transition:opacity .22s,transform .22s;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)translateY(1rem)}.map-toast--error{border-color:var(--red-warn);color:#e8a0a0}.map-toast--visible{opacity:1;transform:translate(-50%)translateY(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}:root,:host{--ol-background-color:white;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color);border-radius:2px}.ol-mouse-position{position:absolute;top:8px;right:8px}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;padding:2px;position:absolute;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-align:center;will-change:contents, width;border-top:none;margin:1px;font-size:10px;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{background-color:var(--ol-foreground-color);float:right;z-index:10;width:1px;height:15px}.ol-scale-step-text{z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:10px;position:absolute;bottom:-5px}.ol-scale-text{text-align:center;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:12px;position:absolute;bottom:25px}.ol-scale-singlebar{z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color);height:10px;position:relative}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{background-color:var(--ol-subtle-background-color);border-radius:4px;position:absolute}.ol-zoom{top:.5em;left:.5em}.ol-rotate{transition:opacity .25s linear,visibility linear;top:.5em;right:.5em}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{top:.5em;right:.5em}.ol-control button{color:var(--ol-subtle-foreground-color);font-weight:700;font-size:inherit;text-align:center;background-color:var(--ol-background-color);border:none;border-radius:2px;width:1.375em;height:1.375em;margin:1px;padding:0;line-height:.4em;text-decoration:none;display:block}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{will-change:transform;font-weight:400;display:block}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-decoration:none}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;flex-flow:row-reverse;align-items:center;max-width:calc(100% - 1.3em);display:flex;bottom:.5em;right:.5em}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);margin:0;padding:1px .5em;font-size:12px}.ol-attribution li{list-style:none;display:inline}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{max-height:1.6em;margin-top:-.2em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;top:4.5em;left:.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);width:150px;height:150px}.ol-overviewmap:not(.ol-collapsed) button{position:absolute;bottom:0;left:0}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}
