/* required styles */

.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
	position: absolute;
	left: 0;
	top: 0;
	}
.leaflet-container {
	overflow: hidden;
	}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
	  -webkit-user-drag: none;
	}
/* Prevents IE11 from highlighting tiles in blue */
.leaflet-tile::selection {
	background: transparent;
}
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile {
	image-rendering: -webkit-optimize-contrast;
	}
/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container {
	width: 1600px;
	height: 1600px;
	-webkit-transform-origin: 0 0;
	}
.leaflet-marker-icon,
.leaflet-marker-shadow {
	display: block;
	}
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg {
	max-width: none !important;
	max-height: none !important;
	}
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
	max-width: none !important;
	max-height: none !important;
	width: auto;
	padding: 0;
	}

.leaflet-container img.leaflet-tile {
	/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */
	mix-blend-mode: plus-lighter;
}

.leaflet-container.leaflet-touch-zoom {
	-ms-touch-action: pan-x pan-y;
	touch-action: pan-x pan-y;
	}
.leaflet-container.leaflet-touch-drag {
	-ms-touch-action: pinch-zoom;
	/* Fallback for FF which doesn't support pinch-zoom */
	touch-action: none;
	touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
	-ms-touch-action: none;
	touch-action: none;
}
.leaflet-container {
	-webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
	-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
	filter: inherit;
	visibility: hidden;
	}
.leaflet-tile-loaded {
	visibility: inherit;
	}
.leaflet-zoom-box {
	width: 0;
	height: 0;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	z-index: 800;
	}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
	-moz-user-select: none;
	}

.leaflet-pane         { z-index: 400; }

.leaflet-tile-pane    { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane  { z-index: 500; }
.leaflet-marker-pane  { z-index: 600; }
.leaflet-tooltip-pane   { z-index: 650; }
.leaflet-popup-pane   { z-index: 700; }

.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg    { z-index: 200; }

.leaflet-vml-shape {
	width: 1px;
	height: 1px;
	}
.lvml {
	behavior: url(#default#VML);
	display: inline-block;
	position: absolute;
	}


/* control positioning */

.leaflet-control {
	position: relative;
	z-index: 800;
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}
.leaflet-top,
.leaflet-bottom {
	position: absolute;
	z-index: 1000;
	pointer-events: none;
	}
.leaflet-top {
	top: 0;
	}
.leaflet-right {
	right: 0;
	}
.leaflet-bottom {
	bottom: 0;
	}
.leaflet-left {
	left: 0;
	}
.leaflet-control {
	float: left;
	clear: both;
	}
.leaflet-right .leaflet-control {
	float: right;
	}
.leaflet-top .leaflet-control {
	margin-top: 10px;
	}
.leaflet-bottom .leaflet-control {
	margin-bottom: 10px;
	}
.leaflet-left .leaflet-control {
	margin-left: 10px;
	}
.leaflet-right .leaflet-control {
	margin-right: 10px;
	}


/* zoom and fade animations */

.leaflet-fade-anim .leaflet-popup {
	opacity: 0;
	-webkit-transition: opacity 0.2s linear;
	   -moz-transition: opacity 0.2s linear;
	        transition: opacity 0.2s linear;
	}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
	opacity: 1;
	}
.leaflet-zoom-animated {
	-webkit-transform-origin: 0 0;
	    -ms-transform-origin: 0 0;
	        transform-origin: 0 0;
	}
svg.leaflet-zoom-animated {
	will-change: transform;
}

.leaflet-zoom-anim .leaflet-zoom-animated {
	-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
	   -moz-transition:    -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
	        transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
	}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
	-webkit-transition: none;
	   -moz-transition: none;
	        transition: none;
	}

.leaflet-zoom-anim .leaflet-zoom-hide {
	visibility: hidden;
	}


/* cursors */

.leaflet-interactive {
	cursor: pointer;
	}
.leaflet-grab {
	cursor: -webkit-grab;
	cursor:    -moz-grab;
	cursor:         grab;
	}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
	cursor: crosshair;
	}
.leaflet-popup-pane,
.leaflet-control {
	cursor: auto;
	}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
	cursor: move;
	cursor: -webkit-grabbing;
	cursor:    -moz-grabbing;
	cursor:         grabbing;
	}

/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
	pointer-events: none;
	}

.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}

/* visual tweaks */

.leaflet-container {
	background: #ddd;
	outline-offset: 1px;
	}
.leaflet-container a {
	color: #0078A8;
	}
.leaflet-zoom-box {
	border: 2px dotted #38f;
	background: rgba(255,255,255,0.5);
	}


/* general typography */
.leaflet-container {
	font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 1.5;
	}


/* general toolbar styles */

.leaflet-bar {
	box-shadow: 0 1px 5px rgba(0,0,0,0.65);
	border-radius: 4px;
	}
.leaflet-bar a {
	background-color: #fff;
	border-bottom: 1px solid #ccc;
	width: 26px;
	height: 26px;
	line-height: 26px;
	display: block;
	text-align: center;
	text-decoration: none;
	color: black;
	}
.leaflet-bar a,
.leaflet-control-layers-toggle {
	background-position: 50% 50%;
	background-repeat: no-repeat;
	display: block;
	}
.leaflet-bar a:hover,
.leaflet-bar a:focus {
	background-color: #f4f4f4;
	}
.leaflet-bar a:first-child {
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	}
.leaflet-bar a:last-child {
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
	border-bottom: none;
	}
.leaflet-bar a.leaflet-disabled {
	cursor: default;
	background-color: #f4f4f4;
	color: #bbb;
	}

.leaflet-touch .leaflet-bar a {
	width: 30px;
	height: 30px;
	line-height: 30px;
	}
.leaflet-touch .leaflet-bar a:first-child {
	border-top-left-radius: 2px;
	border-top-right-radius: 2px;
	}
.leaflet-touch .leaflet-bar a:last-child {
	border-bottom-left-radius: 2px;
	border-bottom-right-radius: 2px;
	}

/* zoom control */

.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
	font: bold 18px 'Lucida Console', Monaco, monospace;
	text-indent: 1px;
	}

.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  {
	font-size: 22px;
	}


/* layers control */

.leaflet-control-layers {
	box-shadow: 0 1px 5px rgba(0,0,0,0.4);
	background: #fff;
	border-radius: 5px;
	}
.leaflet-control-layers-toggle {
	background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);
	width: 36px;
	height: 36px;
	}
.leaflet-retina .leaflet-control-layers-toggle {
	background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);
	background-size: 26px 26px;
	}
.leaflet-touch .leaflet-control-layers-toggle {
	width: 44px;
	height: 44px;
	}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
	display: none;
	}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
	display: block;
	position: relative;
	}
.leaflet-control-layers-expanded {
	padding: 6px 10px 6px 6px;
	color: #333;
	background: #fff;
	}
.leaflet-control-layers-scrollbar {
	overflow-y: scroll;
	overflow-x: hidden;
	padding-right: 5px;
	}
.leaflet-control-layers-selector {
	margin-top: 2px;
	position: relative;
	top: 1px;
	}
.leaflet-control-layers label {
	display: block;
	font-size: 13px;
	font-size: 1.08333em;
	}
.leaflet-control-layers-separator {
	height: 0;
	border-top: 1px solid #ddd;
	margin: 5px -10px 5px -6px;
	}

/* Default icon URLs */
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */
	background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=);
	}


/* attribution and scale controls */

.leaflet-container .leaflet-control-attribution {
	background: #fff;
	background: rgba(255, 255, 255, 0.8);
	margin: 0;
	}
.leaflet-control-attribution,
.leaflet-control-scale-line {
	padding: 0 5px;
	color: #333;
	line-height: 1.4;
	}
.leaflet-control-attribution a {
	text-decoration: none;
	}
.leaflet-control-attribution a:hover,
.leaflet-control-attribution a:focus {
	text-decoration: underline;
	}
.leaflet-attribution-flag {
	display: inline !important;
	vertical-align: baseline !important;
	width: 1em;
	height: 0.6669em;
	}
.leaflet-left .leaflet-control-scale {
	margin-left: 5px;
	}
.leaflet-bottom .leaflet-control-scale {
	margin-bottom: 5px;
	}
.leaflet-control-scale-line {
	border: 2px solid #777;
	border-top: none;
	line-height: 1.1;
	padding: 2px 5px 1px;
	white-space: nowrap;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	background: rgba(255, 255, 255, 0.8);
	text-shadow: 1px 1px #fff;
	}
.leaflet-control-scale-line:not(:first-child) {
	border-top: 2px solid #777;
	border-bottom: none;
	margin-top: -2px;
	}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
	border-bottom: 2px solid #777;
	}

.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	box-shadow: none;
	}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	border: 2px solid rgba(0,0,0,0.2);
	background-clip: padding-box;
	}


/* popup */

.leaflet-popup {
	position: absolute;
	text-align: center;
	margin-bottom: 20px;
	}
.leaflet-popup-content-wrapper {
	padding: 1px;
	text-align: left;
	border-radius: 12px;
	}
.leaflet-popup-content {
	margin: 13px 24px 13px 20px;
	line-height: 1.3;
	font-size: 13px;
	font-size: 1.08333em;
	min-height: 1px;
	}
.leaflet-popup-content p {
	margin: 17px 0;
	margin: 1.3em 0;
	}
.leaflet-popup-tip-container {
	width: 40px;
	height: 20px;
	position: absolute;
	left: 50%;
	margin-top: -1px;
	margin-left: -20px;
	overflow: hidden;
	pointer-events: none;
	}
.leaflet-popup-tip {
	width: 17px;
	height: 17px;
	padding: 1px;

	margin: -10px auto 0;
	pointer-events: auto;

	-webkit-transform: rotate(45deg);
	   -moz-transform: rotate(45deg);
	    -ms-transform: rotate(45deg);
	        transform: rotate(45deg);
	}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
	background: white;
	color: #333;
	box-shadow: 0 3px 14px rgba(0,0,0,0.4);
	}
.leaflet-container a.leaflet-popup-close-button {
	position: absolute;
	top: 0;
	right: 0;
	border: none;
	text-align: center;
	width: 24px;
	height: 24px;
	font: 16px/24px Tahoma, Verdana, sans-serif;
	color: #757575;
	text-decoration: none;
	background: transparent;
	}
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
	color: #585858;
	}
.leaflet-popup-scrolled {
	overflow: auto;
	}

.leaflet-oldie .leaflet-popup-content-wrapper {
	-ms-zoom: 1;
	}
.leaflet-oldie .leaflet-popup-tip {
	width: 24px;
	margin: 0 auto;

	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
	filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
	}

.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
	border: 1px solid #999;
	}


/* div icon */

.leaflet-div-icon {
	background: #fff;
	border: 1px solid #666;
	}


/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip {
	position: absolute;
	padding: 6px;
	background-color: #fff;
	border: 1px solid #fff;
	border-radius: 3px;
	color: #222;
	white-space: nowrap;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	pointer-events: none;
	box-shadow: 0 1px 3px rgba(0,0,0,0.4);
	}
.leaflet-tooltip.leaflet-interactive {
	cursor: pointer;
	pointer-events: auto;
	}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	position: absolute;
	pointer-events: none;
	border: 6px solid transparent;
	background: transparent;
	content: "";
	}

/* Directions */

.leaflet-tooltip-bottom {
	margin-top: 6px;
}
.leaflet-tooltip-top {
	margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
	left: 50%;
	margin-left: -6px;
	}
.leaflet-tooltip-top:before {
	bottom: 0;
	margin-bottom: -12px;
	border-top-color: #fff;
	}
.leaflet-tooltip-bottom:before {
	top: 0;
	margin-top: -12px;
	margin-left: -6px;
	border-bottom-color: #fff;
	}
.leaflet-tooltip-left {
	margin-left: -6px;
}
.leaflet-tooltip-right {
	margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	top: 50%;
	margin-top: -6px;
	}
.leaflet-tooltip-left:before {
	right: 0;
	margin-right: -12px;
	border-left-color: #fff;
	}
.leaflet-tooltip-right:before {
	left: 0;
	margin-left: -12px;
	border-right-color: #fff;
	}

/* Printing */

@media print {
	/* Prevent printers from removing background-images of controls. */
	.leaflet-control {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
		}
	}
:root{--color-brand: #0072BC;--color-brand-bg: #e8f4fd;--color-text: #333;--color-text-secondary: #555;--color-text-muted: #888;--color-text-faint: #aaa;--color-border: #ddd;--color-border-light: #e0e0e0;--color-border-faint: #f0f0f0;--color-surface: #fff;--color-surface-hover: #f5f5f5;--color-surface-alt: #f0f0f0;--color-surface-subtle: #f8f8f8;--color-toggle-active: #e57373;--color-toggle-inactive: #81c784;--color-toggle-partial: #ffb74d;--shadow-sm: 0 2px 6px rgba(0, 0, 0, .15);--shadow-md: 0 2px 8px rgba(0, 0, 0, .15);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .2);--shadow-panel: 0 -4px 16px rgba(0, 0, 0, .15);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--z-search-results: 1000;--z-panel: 1500;--z-loading: 2000;--z-help-overlay: 2001;--control-size: 48px;--control-border: 2px solid rgba(0, 0, 0, .25)}.panel-actions{position:absolute;top:.5rem;right:.75rem;display:flex;align-items:center;gap:.25rem;z-index:1}.panel-actions-sep{width:1px;height:1rem;background:var(--color-border)}.panel-close-btn,.panel-nav-btn{background:none;border:none;cursor:pointer;color:var(--color-text-muted);line-height:1;padding:.25rem;transition:color .15s;display:flex;align-items:center;justify-content:center}.panel-close-btn{font-size:1.4rem}.panel-close-btn:hover,.panel-nav-btn:hover:not(:disabled){color:var(--color-text)}.panel-nav-btn:disabled{opacity:.3;cursor:default}.drag-handle{display:none;width:36px;height:4px;background:#ccc;border-radius:2px;margin:.5rem auto 0}.title-overlay{background:#ffffffe6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:.6rem 1rem;border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:2px solid rgba(0,0,0,.1);pointer-events:auto;max-width:340px;display:flex;align-items:center;gap:.6rem}.title-text{flex:1;min-width:0}.title-overlay h1{font-size:1.1rem;font-weight:700;line-height:1.3;color:var(--color-brand)}.title-icon{width:2rem;height:2rem;flex-shrink:0}.title-overlay p{font-size:.75rem;color:var(--color-text-secondary);margin-top:.2rem;line-height:1.3}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffd9;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:var(--z-loading);transition:opacity .4s ease}.loading-overlay.fade-out{opacity:0;pointer-events:none}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border-light);border-top-color:var(--color-brand);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{margin-top:.75rem;font-size:.9rem;color:var(--color-text-secondary)}.detail-panel{display:none;width:340px;position:absolute;top:0;right:0;bottom:0;background:var(--color-surface);border-left:1px solid var(--color-border);overflow-y:auto;z-index:var(--z-panel);box-shadow:-2px 0 8px #0000001a}.detail-panel.open{display:block}.detail-panel .resize-handle{position:absolute;top:0;left:0;width:5px;height:100%;cursor:col-resize;z-index:1}.detail-panel .resize-handle:hover,.detail-panel.resizing .resize-handle{background:var(--color-brand);opacity:.3}.detail-content{padding:1rem 1.25rem;font-size:.85rem;line-height:1.5;min-width:340px}.detail-content .detail-header{display:flex;align-items:center;min-height:1.75rem;padding-right:8rem}.detail-content .detail-layer-type{display:flex;align-items:center;gap:.35rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.detail-content h3{font-size:1.05rem;margin:0 0 .75rem;color:var(--color-brand)}.detail-content .detail-layer-badge{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.4rem;vertical-align:middle}.detail-content h4{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin:.75rem 0 .25rem;padding-bottom:.2rem;border-bottom:1px solid var(--color-border-light)}.detail-content h4:first-of-type{margin-top:0}.detail-content table{border-collapse:collapse;width:100%}.detail-content table td{padding:.3rem .5rem;vertical-align:top;border-bottom:1px solid var(--color-border-faint)}.detail-content table td:first-child{font-weight:600;color:var(--color-text-secondary);min-width:5rem;max-width:8rem}.detail-content table a{color:var(--color-brand);text-decoration:none}.detail-content table a:hover{text-decoration:underline}.detail-content .cross-link{color:var(--color-brand);text-decoration:none;border-bottom:1px dashed var(--color-brand);cursor:pointer;transition:border-bottom-style .15s}.detail-content .cross-link:hover{border-bottom-style:solid;text-decoration:none}.detail-content .cross-link-icon{font-size:.7em;margin-left:1px;vertical-align:super}.layers-drawer{display:none;width:320px;position:absolute;top:0;left:0;bottom:0;background:var(--color-surface);border-right:1px solid var(--color-border);overflow-y:auto;z-index:var(--z-panel);box-shadow:2px 0 8px #0000001a}.layers-drawer.open{display:block}.layers-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--color-border-light)}.layers-drawer-title{font-size:1rem;font-weight:700;color:var(--color-text);text-transform:uppercase;letter-spacing:.04em}.layers-drawer-tabs{display:flex;border-bottom:2px solid var(--color-border-light)}.layers-drawer-tab{flex:1;padding:.6rem .75rem;background:none;border:none;font-family:inherit;font-size:.8rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;text-align:center;transition:color .15s,border-color .15s;border-bottom:2px solid transparent;margin-bottom:-2px}.layers-drawer-tab:hover{color:var(--color-text-secondary)}.layers-drawer-tab.active{color:var(--color-brand);border-bottom-color:var(--color-brand)}.layers-drawer-tab-content{display:none;padding:.5rem .75rem .75rem}.layers-drawer-tab-content.active{display:block}.drawer-group-header{display:flex;align-items:center;gap:.3rem;font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin:.6rem 0 .2rem;padding:.2rem .3rem;cursor:pointer}.drawer-group-label{flex:1}.drawer-group-header:first-child{margin-top:.2rem}.drawer-group-toggle{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;transition:transform .2s ease;-webkit-user-select:none;user-select:none;flex-shrink:0}.drawer-group-toggle:before{content:"";display:block;width:6px;height:6px;border-right:1.5px solid #999;border-bottom:1.5px solid #999;transform:rotate(45deg);margin-top:-2px}.drawer-group-toggle.collapsed{transform:rotate(-90deg)}.drawer-group-header:hover .drawer-group-toggle:before{border-color:#666}.drawer-group-list{margin-bottom:.1rem;padding-left:.2rem;overflow:hidden;transition:max-height .25s ease}.drawer-group-list.collapsed{max-height:0!important;margin-bottom:0}.drawer-layer-row{display:flex;align-items:center;gap:.4rem;cursor:pointer;padding:.2rem .3rem;border-radius:var(--radius-sm);transition:background-color .1s}.drawer-layer-row:hover{background:var(--color-surface-hover)}.layer-toggle-btn{flex-shrink:0;width:18px;height:18px;border:none;border-radius:50%;cursor:pointer;font-size:.85rem;font-weight:700;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;background:none;transition:color .15s}.layer-toggle-btn.active{color:var(--color-toggle-active);border:1.5px solid var(--color-toggle-active)}.layer-toggle-btn.inactive{color:var(--color-toggle-inactive);border:1.5px solid var(--color-toggle-inactive)}.layer-toggle-btn.partial{color:var(--color-toggle-partial);border:1.5px solid var(--color-toggle-partial)}.layer-swatch{flex-shrink:0}.layer-swatch-polygon{width:20px;height:12px;border-radius:2px}.layer-swatch-line{width:20px;height:3px;border-radius:1px}.layer-swatch-point{width:12px;height:12px;border-radius:50%}.drawer-layer-label{flex:1;font-size:.8rem;color:var(--color-text)}.drawer-layer-count{font-size:.65rem;color:var(--color-text-faint);font-weight:400}.drawer-base-cards{display:flex;flex-wrap:wrap;gap:.5rem;padding-top:.25rem}.drawer-base-card{flex:1 1 calc((100% - 1rem) / 3);max-width:calc((100% - 1rem) / 3);display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.4rem;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);cursor:pointer;transition:border-color .15s,background-color .15s,box-shadow .15s;font-family:inherit;font-size:.7rem;color:var(--color-text-secondary);text-align:center;line-height:1.2;overflow:hidden}.drawer-base-card:hover{border-color:var(--color-text-faint);background:var(--color-surface-alt)}.drawer-base-card.active{border-color:var(--color-brand);background:var(--color-brand-bg);color:var(--color-brand);font-weight:600;box-shadow:0 0 0 1px var(--color-brand)}.drawer-base-card-thumb{width:64px;height:64px;object-fit:cover;border-radius:var(--radius-sm);pointer-events:none}.drawer-base-card-label{pointer-events:none}.layers-toggle-btn.has-active:after{content:"";position:absolute;top:4px;right:4px;width:8px;height:8px;background:var(--color-brand);border-radius:50%;border:1.5px solid var(--color-surface)}.drawer-filter-bar{position:sticky;top:0;z-index:1;background:var(--color-surface);padding:.25rem 0;margin-bottom:.3rem}.drawer-filter-input{width:100%;height:30px;padding:0 1.8rem 0 .5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-subtle);font-family:inherit;font-size:.8rem;color:var(--color-text);outline:none;box-sizing:border-box;transition:border-color .15s}.drawer-filter-input::placeholder{color:var(--color-text-faint)}.drawer-filter-input:focus{border-color:var(--color-brand)}.drawer-filter-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:none;background:none;cursor:pointer;font-size:1rem;color:var(--color-text-muted);display:none;align-items:center;justify-content:center;padding:0;line-height:1}.drawer-filter-clear.visible{display:flex}.drawer-filter-clear:hover{color:var(--color-text)}.layer-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#ffffffe6;padding:1rem 2rem;border-radius:var(--radius-md);font-size:.9rem;z-index:1000;box-shadow:var(--shadow-md)}.control-btn{display:flex;align-items:center;justify-content:center;width:var(--control-size);height:var(--control-size);border:var(--control-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;padding:0;color:var(--color-text-secondary);box-shadow:var(--shadow-sm);transition:box-shadow .15s,color .15s}.control-btn:hover{box-shadow:0 2px 10px #0000004d;color:var(--color-text)}.layers-toggle-btn{display:flex;align-items:center;justify-content:center;width:var(--control-size);height:var(--control-size);border:var(--control-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;padding:0;color:var(--color-text-secondary);box-shadow:var(--shadow-sm);transition:box-shadow .15s,color .15s;position:relative}.layers-toggle-btn:hover{box-shadow:0 2px 10px #0000004d;color:var(--color-text)}.help-toggle-btn{display:flex;align-items:center;justify-content:center;width:var(--control-size);height:var(--control-size);border:var(--control-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;padding:0;color:var(--color-text-secondary);box-shadow:var(--shadow-sm);transition:box-shadow .15s,color .15s}.help-toggle-btn:hover{box-shadow:0 2px 10px #0000004d;color:var(--color-text)}.bottom-pickers-bar{display:flex;gap:8px;align-items:flex-end}.bottom-pickers-bar>*,.bottom-pickers-bar input{box-sizing:border-box}.bottom-pickers-bar .leaflet-bar{margin:0}.bottom-pickers-bar .unified-zoom{display:flex;flex-direction:row;margin:0;height:var(--control-size);border:var(--control-border)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow-sm)!important;overflow:hidden;background:var(--color-surface)}.bottom-pickers-bar .unified-zoom a{display:flex!important;align-items:center;justify-content:center;width:44px!important;height:100%!important;line-height:1!important;font-size:18px!important;color:var(--color-text-secondary)!important;background:var(--color-surface);border:none!important;border-radius:0!important;border-right:1px solid rgba(0,0,0,.1)!important;cursor:pointer;transition:background-color .15s,color .15s}.bottom-pickers-bar .unified-zoom a:last-child{border-right:none!important}.bottom-pickers-bar .unified-zoom a:hover{background-color:var(--color-surface-alt)!important;color:var(--color-text)!important}.leaflet-tooltip.feature-tooltip{background:#000000bf;border:none;color:#fff;font-size:.75rem;padding:.3rem .6rem;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.leaflet-tooltip.feature-tooltip:before{border-top-color:#000000bf}.help-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:var(--z-help-overlay);align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease}.help-overlay.open{display:flex;opacity:1}.help-card{position:relative;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:1.5rem 2rem;max-width:380px;width:90vw}.help-card h2{font-size:1rem;font-weight:700;margin-bottom:1rem;color:var(--color-text)}.help-card table{width:100%;border-collapse:collapse}.help-card table td{padding:.35rem .5rem;vertical-align:middle;border-bottom:1px solid var(--color-border-faint);font-size:.85rem;color:var(--color-text)}.help-card table td:first-child{width:5rem;text-align:center}.help-card table tr:last-child td{border-bottom:none}.help-close-btn{position:absolute;top:.5rem;right:.75rem;background:none;border:none;cursor:pointer;font-size:1.4rem;color:var(--color-text-muted);line-height:1;padding:.25rem;transition:color .15s}.help-close-btn:hover{color:var(--color-text)}kbd{display:inline-block;min-width:1.6em;padding:.15em .5em;font-family:inherit;font-size:.8rem;font-weight:600;line-height:1.4;text-align:center;color:var(--color-text);background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 1px 0 var(--color-border)}.search-control{position:relative}.search-input-wrapper{position:relative;display:inline-block}.search-control input{width:var(--control-size);height:var(--control-size);padding:0;border:var(--control-border);border-radius:var(--radius-md);font-family:inherit;font-size:.85rem;background:var(--color-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") no-repeat center center;box-shadow:var(--shadow-sm);outline:none;cursor:pointer;color:transparent;transition:width .25s ease,padding .25s ease,border-color .15s,box-shadow .15s}.search-control input:focus,.search-control input.expanded{width:260px;padding:0 2rem 0 2.2rem;background-position:.55rem center;color:var(--color-text);cursor:text;border-color:var(--color-brand);box-shadow:0 2px 8px #0072bc40}.search-control input::placeholder{color:transparent}.search-control input:focus::placeholder,.search-control input.expanded::placeholder{color:var(--color-text-faint)}.search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-faint);font-size:1rem;padding:.2rem .35rem;line-height:1;border-radius:50%;display:none;transition:color .15s,background-color .15s}.search-clear:hover{color:var(--color-text-secondary);background:var(--color-surface-alt)}.search-clear.visible{display:block}.search-results{display:none;position:absolute;bottom:100%;left:0;width:260px;margin-bottom:4px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:300px;overflow-y:auto;z-index:var(--z-search-results)}.search-results.open{display:block}.search-result-item{padding:.5rem .75rem;cursor:pointer;border-bottom:1px solid var(--color-border-faint);font-size:.8rem;line-height:1.4;transition:background-color .1s}.search-result-item:last-child{border-bottom:none}.search-result-item:hover,.search-result-item.active{background:var(--color-brand-bg)}.search-result-title{font-weight:600;color:var(--color-text)}.search-result-meta{color:var(--color-text-muted);font-size:.7rem;margin-top:.1rem}.search-result-layer{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.3rem;vertical-align:middle}.search-no-results{padding:.75rem;color:var(--color-text-muted);font-size:.8rem;text-align:center}.legal-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:var(--z-help-overlay);align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease}.legal-overlay.open{display:flex;opacity:1}.legal-card{position:relative;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:1.5rem 2rem;max-width:560px;width:90vw;max-height:80vh;display:flex;flex-direction:column}.legal-tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border);margin-bottom:1rem;flex-shrink:0}.legal-tab-btn{flex:1;padding:.5rem .75rem;border:none;background:none;cursor:pointer;font-size:.85rem;font-weight:600;color:var(--color-text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.legal-tab-btn:hover{color:var(--color-text)}.legal-tab-btn.active{color:var(--color-brand);border-bottom-color:var(--color-brand)}.legal-tab-content{display:none;overflow-y:auto;flex:1;min-height:0}.legal-tab-content.active{display:block}.legal-tab-content h3{font-size:.9rem;font-weight:700;margin:1rem 0 .4rem;color:var(--color-text)}.legal-tab-content h3:first-child{margin-top:0}.legal-tab-content p,.legal-tab-content ul{font-size:.82rem;line-height:1.5;color:var(--color-text-secondary);margin:0 0 .5rem}.legal-tab-content ul{padding-left:1.2rem}.legal-tab-content li{margin-bottom:.25rem}.legal-tab-content a{color:var(--color-brand);text-decoration:none}.legal-tab-content a:hover{text-decoration:underline}.legal-close-btn{position:absolute;top:.5rem;right:.75rem;background:none;border:none;cursor:pointer;font-size:1.4rem;color:var(--color-text-muted);line-height:1;padding:.25rem;transition:color .15s}.legal-close-btn:hover{color:var(--color-text)}@media(max-width:600px){.legal-card{width:95vw;max-height:85vh;padding:1rem 1.25rem}.legal-tab-btn{font-size:.78rem;padding:.4rem .5rem}}@media(min-width:1200px){.detail-panel{width:440px}}@media(max-width:600px){.leaflet-bottom.leaflet-right{left:0;width:100%}.leaflet-control-attribution{width:100%;font-size:.6rem;text-align:center;border-radius:0;margin:0!important;padding-bottom:env(safe-area-inset-bottom,0px)}.leaflet-bottom.leaflet-left{margin-bottom:calc(20px + env(safe-area-inset-bottom,0px))}.title-overlay{max-width:220px;padding:.4rem .7rem}.title-overlay h1{font-size:.85rem}.title-overlay p{font-size:.65rem}.detail-panel{position:absolute;bottom:0;left:0;right:0;width:100%!important;max-height:0;border-left:none;border-top:1px solid var(--color-border);z-index:var(--z-panel);transition:max-height .3s ease;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-panel)}.detail-panel.open{max-height:55vh;overflow-y:auto}.detail-content{min-width:unset}.detail-panel .drag-handle{display:block}.detail-panel .resize-handle{display:none}.layers-drawer{position:absolute;top:auto;left:0;right:0;bottom:0;width:100%!important;max-height:0;border-right:none;border-top:1px solid var(--color-border);z-index:var(--z-panel);transition:max-height .3s ease;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-panel)}.layers-drawer.open{max-height:65vh;overflow-y:auto}.layers-drawer .drag-handle{display:block}.search-control input:focus,.search-control input.expanded{width:200px}.search-results{width:200px}}
/* Project-specific styles */

:root {
  --primary: #10b981;
  --primary-dark: #059669;
  --gray-900: #111827;
  --gray-100: #f3f4f6;
}

body {
  margin: 0;
  padding: 0;
  font-family:
    -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
}

#map {
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1;
}

/* Custom map styling */
.leaflet-pane {
  z-index: 400;
}

.leaflet-tile-pane {
  z-index: 200;
}

.leaflet-marker-pane {
  z-index: 600;
}

.leaflet-popup {
  z-index: 700;
}

.frp-legend {
  background: white;
  padding: 8px 12px;
  border-radius: 6px;
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
  font-size: 12px;
  line-height: 1.6;
}

.frp-legend-row {
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.frp-legend-swatch {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 1.5px solid;
  flex-shrink: 0;
}

.time-slider-control {
  background: white;
  padding: 8px 12px;
  border-radius: 6px;
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
  font-size: 12px;
  line-height: 1.6;
  min-width: 220px;
}

.time-slider-control strong {
  display: block;
  margin-bottom: 4px;
}

.time-slider-row {
  display: flex;
  align-items: center;
  gap: 6px;
}

.time-slider-track-wrap {
  position: relative;
  flex: 1;
  padding-top: 18px;
  padding-bottom: 14px;
}

.time-slider-input {
  width: 100%;
  display: block;
  margin: 6px 0 0;
  height: 14px;
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
}

/* Native range styling (track height, thumb size/color, incl. the
   browser's default blue accent) varies enough across browsers to bleed
   past the reserved histogram/tick space above/below the track — reset it
   to a fixed-size track+thumb so it stays within `.time-slider-track-wrap`'s
   padding and matches the app's color scheme instead of the UA default. */
.time-slider-input::-webkit-slider-runnable-track {
  height: 4px;
  border-radius: 2px;
  background: #d1d5db;
}

.time-slider-input::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--primary);
  margin-top: -5px;
  cursor: pointer;
}

.time-slider-input::-moz-range-track {
  height: 4px;
  border-radius: 2px;
  background: #d1d5db;
}

.time-slider-input::-moz-range-thumb {
  width: 14px;
  height: 14px;
  border: none;
  border-radius: 50%;
  background: var(--primary);
  cursor: pointer;
}

.time-slider-histogram {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 16px;
  display: flex;
  align-items: flex-end;
  gap: 1px;
  pointer-events: none;
}

.time-slider-bar {
  flex: 1;
  background: var(--primary);
  opacity: 0.35;
  border-radius: 1px 1px 0 0;
  min-height: 2px;
}

.time-slider-bar.is-active {
  opacity: 0.9;
}

.time-slider-ticks {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  pointer-events: none;
}

.time-slider-tick {
  flex: 1;
  text-align: center;
  font-size: 9px;
  white-space: nowrap;
  color: var(--gray-900);
  opacity: 0.65;
}

.time-slider-tick.is-active {
  font-weight: 700;
  opacity: 1;
}

.time-slider-controls-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-top: 2px;
}

.time-slider-step {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  background: white;
  font-size: 10px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}

.time-slider-step:hover:not(:disabled) {
  background: var(--gray-100);
}

.time-slider-step:disabled {
  opacity: 0.4;
  cursor: default;
}

.time-slider-play {
  width: 26px;
  height: 26px;
}

.time-slider-play[aria-pressed='true'] {
  background: var(--primary);
  border-color: var(--primary-dark);
  color: white;
}

.time-slider-label-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.time-slider-label {
  text-align: center;
  font-weight: 500;
}

.time-slider-info {
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  border: none;
  border-radius: 50%;
  background: var(--gray-100);
  color: var(--gray-900);
  font-size: 10px;
  line-height: 15px;
  text-align: center;
  padding: 0;
  cursor: pointer;
}

.time-slider-info:hover {
  background: var(--primary);
  color: white;
}

.time-slider-popup {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  width: 200px;
  background: var(--gray-900);
  color: white;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.4;
  padding: 8px 10px;
  border-radius: 6px;
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
  z-index: 1;
}

.time-slider-sr-live {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

@media (max-width: 640px) {
  .time-slider-control {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    min-width: 0;
    border-radius: 0;
    box-sizing: border-box;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
  }

  .time-slider-step,
  .time-slider-play {
    width: 32px;
    height: 32px;
  }

  /* The full-width slider bar sits fixed at the bottom, so push Leaflet's
     own bottom-anchored controls (zoom, layers drawer, legend, attribution)
     up above it instead of letting the two overlap. */
  .leaflet-bottom {
    bottom: 130px;
  }
}
