/* 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;
		}
	}
/* ibm-plex-sans-cyrillic-ext-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format('woff2'), url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-sans-cyrillic-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format('woff2'), url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-sans-greek-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format('woff2'), url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff) format('woff');
  unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;
}

/* ibm-plex-sans-vietnamese-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format('woff2'), url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-sans-latin-ext-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format('woff2'), url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-sans-latin-400-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format('woff2'), url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* ibm-plex-sans-cyrillic-ext-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format('woff2'), url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-sans-cyrillic-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format('woff2'), url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-sans-greek-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format('woff2'), url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff) format('woff');
  unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;
}

/* ibm-plex-sans-vietnamese-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format('woff2'), url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-sans-latin-ext-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format('woff2'), url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-sans-latin-500-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format('woff2'), url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* ibm-plex-sans-cyrillic-ext-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format('woff2'), url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-sans-cyrillic-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format('woff2'), url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-sans-greek-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format('woff2'), url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff) format('woff');
  unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;
}

/* ibm-plex-sans-vietnamese-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format('woff2'), url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-sans-latin-ext-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format('woff2'), url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-sans-latin-600-normal */
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format('woff2'), url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* ibm-plex-mono-cyrillic-ext-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format('woff2'), url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-mono-cyrillic-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format('woff2'), url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-mono-vietnamese-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format('woff2'), url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-mono-latin-ext-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format('woff2'), url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-mono-latin-400-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format('woff2'), url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* ibm-plex-mono-cyrillic-ext-500-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format('woff2'), url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* ibm-plex-mono-cyrillic-500-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format('woff2'), url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* ibm-plex-mono-vietnamese-500-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format('woff2'), url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* ibm-plex-mono-latin-ext-500-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format('woff2'), url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ibm-plex-mono-latin-500-normal */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format('woff2'), url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* Visual system of the platform prototype (zalozenia-platformy/prototyp), taken over unchanged so screens keep its tokens,
   media colours and quality marks. Additions for the product live in app.css. */
/* Układ: lewa szyna nawigacji zależna od roli, belka kontekstu (przestrzeń · zakres w drzewie · okres · tryb czasu), obszar roboczy dopasowany do zakresu. Kolory mediów i oznaczenia jakości danych mają stałe znaczenie w całej aplikacji. */
:root{
  --bg:#EEF1F4; --surface:#FFFFFF; --surface-2:#F5F7F9; --sunken:#E6EAEE; --line:#D6DCE2; --line-2:#C3CBD3; --guide:#B4BEC8;
  --ink:#17202B; --muted:#56626F; --faint:#8692A0;
  --accent:#2D47C9; --accent-ink:#FFFFFF; --accent-soft:#E3E8FA; --accent-line:#A9B6EE;
  --ok:#1E7F4A; --ok-soft:#DFF2E7; --warn:#9A6100; --warn-soft:#FBEFD6; --crit:#B42828; --crit-soft:#F9E1E1; --stale:#7A8490; --stale-soft:#E8EBEE;
  --m-el:#D69400; --m-gas:#D1561F; --m-water:#1F7FC0; --m-temp:#8A4FD8; --m-pv:#3E8F2A; --m-bess:#0E8F8A; --m-air:#5C6B7A;
  --hatch:#B9C1CA; --band:rgba(45,71,201,.14); --anom:rgba(214,148,0,.16); --mark:#FBE3A6;
  --font-ui:"IBM Plex Sans",system-ui,"Segoe UI",sans-serif; --font-mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --r:8px; --fs:13px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0F141A; --surface:#161D25; --surface-2:#1B232D; --sunken:#0B1015; --line:#2A3440; --line-2:#3A4654; --guide:#46525F;
  --ink:#E6EBF0; --muted:#A3AFBC; --faint:#73808E;
  --accent:#8EA2FF; --accent-ink:#0F141A; --accent-soft:#1F2A55; --accent-line:#3E4F9E;
  --ok:#5BC98A; --ok-soft:#14301F; --warn:#E8B04A; --warn-soft:#352812; --crit:#F07C7C; --crit-soft:#3A1818; --stale:#8F9AA6; --stale-soft:#222A33;
  --m-el:#F2B632; --m-gas:#F27B45; --m-water:#58AEEA; --m-temp:#B48BF2; --m-pv:#7CC95E; --m-bess:#3CC7C1; --m-air:#9AA8B6;
  --hatch:#3F4A57; --band:rgba(142,162,255,.18); --anom:rgba(242,182,50,.14); --mark:#5A4413; color-scheme:dark;}}
:root[data-theme="dark"]{
  --bg:#0F141A; --surface:#161D25; --surface-2:#1B232D; --sunken:#0B1015; --line:#2A3440; --line-2:#3A4654; --guide:#46525F;
  --ink:#E6EBF0; --muted:#A3AFBC; --faint:#73808E;
  --accent:#8EA2FF; --accent-ink:#0F141A; --accent-soft:#1F2A55; --accent-line:#3E4F9E;
  --ok:#5BC98A; --ok-soft:#14301F; --warn:#E8B04A; --warn-soft:#352812; --crit:#F07C7C; --crit-soft:#3A1818; --stale:#8F9AA6; --stale-soft:#222A33;
  --m-el:#F2B632; --m-gas:#F27B45; --m-water:#58AEEA; --m-temp:#B48BF2; --m-pv:#7CC95E; --m-bess:#3CC7C1; --m-air:#9AA8B6;
  --hatch:#3F4A57; --band:rgba(142,162,255,.18); --anom:rgba(242,182,50,.14); --mark:#5A4413; color-scheme:dark;}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font:var(--fs)/1.45 var(--font-ui);padding-left:max(0px,env(safe-area-inset-left,0px));padding-right:max(0px,env(safe-area-inset-right,0px))}
[data-density="comfortable"]{--fs:15px}
*{box-sizing:border-box}
button,select,input{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
mark{background:var(--mark);color:inherit;border-radius:2px;padding:0 1px}
.mono,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
svg.i{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.app{display:grid;grid-template-columns:212px minmax(0,1fr);min-height:100%}
/* szyna */
.rail{background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:14px 10px}
.brand{display:flex;gap:10px;align-items:center;padding:4px 8px 16px}
.brand-mark{width:28px;height:28px;border-radius:7px;background:var(--ink);color:var(--bg);display:grid;place-items:center}
.brand b{display:block;font-weight:600;letter-spacing:.01em}
.brand span{color:var(--faint);font-size:11px}
.nav{display:flex;flex-direction:column;gap:2px}
.nav button{display:flex;gap:10px;align-items:center;border:0;background:none;padding:7px 10px;border-radius:6px;text-align:left;color:var(--muted)}
.nav button:hover{background:var(--surface-2);color:var(--ink)}
.nav button[aria-current="page"]{background:var(--accent-soft);color:var(--ink);font-weight:500}
.nav button[aria-current="page"] svg{color:var(--accent)}
.nav .soon{margin-left:auto;font-size:10px;color:var(--faint);border:1px solid var(--line);border-radius:4px;padding:0 4px}
.who{margin-top:auto;border-top:1px solid var(--line);padding:12px 8px 0;display:grid;gap:6px}
.who label{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.who select{width:100%;padding:6px 8px;border:1px solid var(--line-2);border-radius:6px;background:var(--surface-2)}
.who small{color:var(--muted)}
/* belka kontekstu */
.main{min-width:0;display:flex;flex-direction:column}
.ctx{position:sticky;top:env(safe-area-inset-top,0px);z-index:25;background:var(--surface);border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;padding:9px 18px}
.space{display:flex;align-items:center;gap:8px;font-weight:600;padding:5px 9px;border:1px solid var(--line-2);border-radius:6px;background:var(--surface-2);white-space:nowrap}
.cw{position:relative;min-width:0}
.crumbs{display:flex;align-items:center;gap:2px;min-width:0;flex-wrap:wrap;border:1px solid transparent;border-radius:6px}
.crumbs button{border:0;background:none;padding:4px 6px;border-radius:5px;color:var(--muted);white-space:nowrap}
.crumbs button:hover{background:var(--surface-2);color:var(--ink)}
.crumbs .cur{color:var(--ink);font-weight:500}
.crumbs .sep{color:var(--faint)}
.crumbs .pick{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink);margin-left:4px}
.crumbs .pick[aria-expanded="true"]{border-color:var(--accent);background:var(--accent-soft)}
.ctx-right{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:6px;overflow:hidden;background:var(--surface-2)}
.seg button{border:0;background:none;padding:5px 10px;color:var(--muted);border-right:1px solid var(--line);white-space:nowrap}
.seg button:last-child{border-right:0}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);font-weight:500;box-shadow:inset 0 -2px 0 var(--accent)}
.rng{display:inline-flex;align-items:center;border:1px solid var(--line-2);border-radius:6px;background:var(--surface-2)}
.rng button{border:0;background:none;padding:5px 6px;color:var(--muted);display:grid;place-items:center}
.rng button:hover{color:var(--ink)}
.rng .lbl{font-family:var(--font-mono);font-size:12px;padding:5px 6px;border-left:1px solid var(--line);border-right:1px solid var(--line);display:inline-flex;gap:6px;align-items:center;white-space:nowrap}
.rng .lbl[aria-expanded="true"]{background:var(--accent-soft);color:var(--ink)}
.live{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;white-space:nowrap}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ok);display:inline-block;flex:none}
.dot.warn{background:var(--warn)}.dot.crit{background:var(--crit)}.dot.stale{background:var(--stale)}.dot.off{background:transparent;border:1.5px solid var(--faint)}
.dot.pulse{animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.dot.pulse{animation:none}}
.pop{position:absolute;top:calc(100% + 8px);left:0;z-index:40;background:var(--surface);border:1px solid var(--line-2);border-radius:10px;box-shadow:0 14px 40px rgba(0,0,0,.2);padding:10px;width:min(380px,calc(100vw - 32px));display:grid;gap:10px}
.pop.right{left:auto;right:0}
.pop .tree{max-height:min(440px,58vh);overflow:auto;padding:2px 0;margin:0 -4px}
.pop h3{margin:0;font-size:12px;font-weight:500;color:var(--muted)}
.presets{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.presets button{border:1px solid var(--line);background:var(--surface-2);border-radius:6px;padding:6px 8px;text-align:left}
.presets button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft)}
.banner{display:flex;gap:10px;align-items:center;padding:8px 18px;font-size:12.5px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.banner.hist{background:var(--sunken);color:var(--muted)}
.banner.fc{background:var(--accent-soft)}
.demo-flag{font-size:11px;color:var(--faint);border:1px dashed var(--line-2);border-radius:5px;padding:2px 6px;white-space:nowrap}
/* obszar roboczy */
.work{padding:18px;display:grid;gap:16px;align-content:start;min-width:0}
.ph{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.ph h1{font-size:22px;font-weight:600;margin:2px 0 0;letter-spacing:-.01em;text-wrap:balance}
.eyebrow{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}
.ph .sub{color:var(--muted)}
.ph .acts{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:var(--surface);padding:6px 11px;border-radius:6px;white-space:nowrap}
.btn:hover{border-color:var(--faint)}
.btn.sm{padding:3px 8px;font-size:12px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.ghost{border-color:transparent;background:none;color:var(--muted)}
.btn.ghost:hover{background:var(--surface-2);color:var(--ink)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-width:0}
.card-h{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.card-h h2{font-size:13.5px;font-weight:600;margin:0}
.card-h .meta{margin-left:auto;color:var(--faint);font-size:12px}
.card-b{padding:14px}
.grid{display:grid;gap:16px}
.g-kpi{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.g-2{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr)}
.g-2e{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-2.g-2s{grid-template-columns:minmax(0,1fr) minmax(0,1.55fr)}
.kpi{padding:12px 14px;display:grid;gap:3px;align-content:start}
.kpi .lbl{color:var(--muted);font-size:12px;display:flex;gap:6px;align-items:center}
.kpi .val{font-family:var(--font-mono);font-size:22px;font-weight:500;letter-spacing:-.02em}
.kpi .val small{font-size:12px;color:var(--muted);margin-left:3px;font-weight:400}
.q{font-size:11.5px;color:var(--muted);display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;line-height:1;padding:3px 6px;border-radius:4px;border:1px solid var(--line);color:var(--muted);background:var(--surface-2);white-space:nowrap}
.chip.ok{color:var(--ok);background:var(--ok-soft);border-color:transparent}
.q .chip,.kv .chip,td .chip{white-space:normal;line-height:1.25}
.chip.warn{color:var(--warn);background:var(--warn-soft);border-color:transparent}
.chip.crit{color:var(--crit);background:var(--crit-soft);border-color:transparent}
.chip.stale{color:var(--stale);background:var(--stale-soft);border-color:transparent}
.chip.acc{color:var(--accent);background:var(--accent-soft);border-color:transparent}
.chip.dash{border-style:dashed;background:none}
.med{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;flex:none;color:#fff}
.med svg.i{width:13px;height:13px;stroke-width:2}
.tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.tbl th{font-weight:500;color:var(--faint);text-align:left;font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:7px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl td.r,.tbl th.r{text-align:right;white-space:nowrap}
.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:var(--surface-2)}
.tbl tr.sel td{background:var(--accent-soft)}
.scrollx{overflow-x:auto}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);padding:0 14px 12px}
.legend span{display:inline-flex;gap:6px;align-items:center}
.sw{width:18px;height:0;border-top:2px solid var(--m-el);display:inline-block}
.sw.dash{border-top-style:dashed}
.sw.base{border-top:1.5px solid var(--faint)}
.sw.box{height:10px;border:0;width:14px}
.note{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center;padding:8px 14px;background:var(--surface-2);border-bottom:1px solid var(--line)}
/* wykres */
.chart{position:relative}
.chart svg{display:block;width:100%;height:auto}
.chart text{fill:var(--faint);font-family:var(--font-mono);font-size:10px}
.tip{position:absolute;pointer-events:none;background:var(--ink);color:var(--bg);border-radius:6px;padding:7px 9px;font-size:11.5px;line-height:1.35;min-width:170px;transform:translate(-50%,-100%);white-space:nowrap;z-index:3}
.tip b{font-family:var(--font-mono);font-weight:500}
/* zasoby */
.res{display:grid;grid-template-columns:minmax(320px,400px) minmax(0,1fr);gap:16px;align-items:start}
.res.list{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
.panel-h{display:flex;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.search{flex:1;min-width:150px;display:flex;align-items:center;gap:6px;border:1px solid var(--line-2);border-radius:6px;padding:4px 8px;background:var(--surface-2)}
.search input{border:0;background:none;outline:0;width:100%;min-width:0}
.fbar{display:grid;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}
.frow{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.frow > .eyebrow{min-width:56px}
.mchip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line-2);border-radius:14px;padding:2px 9px 2px 3px;font-size:11.5px;background:var(--surface);color:var(--muted)}
.mchip .med{width:16px;height:16px;border-radius:50%}
.mchip .med svg.i{width:10px;height:10px}
.mchip[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.mchip.plain{padding:2px 9px}
.views{display:flex;gap:4px;flex-wrap:wrap}
.vchip{border:1px solid var(--line);background:var(--surface-2);border-radius:5px;padding:2px 8px;font-size:11.5px;color:var(--muted)}
.vchip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.fsum{display:flex;gap:8px;align-items:center;font-size:11.5px;color:var(--muted);padding:6px 12px;border-bottom:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap}
.tree{list-style:none;margin:0;padding:6px 6px 10px}
.tree ul{list-style:none;margin:0;padding:0}
.row{display:flex;align-items:stretch;gap:5px;padding:0 6px 0 4px;border-radius:6px;position:relative;min-height:30px}
.row > :not(.guides){align-self:center}
.row:hover{background:var(--surface-2)}
.row.sel{background:var(--accent-soft)}
.row.scope .nm{font-weight:600}
.guides{display:flex;align-self:stretch;flex:none}
.g{width:16px;position:relative;flex:none}
.g.v::before,.g.t::before,.g.l::before{content:"";position:absolute;left:8px;top:0;bottom:0;border-left:1px solid var(--guide)}
.g.l::before{bottom:50%}
.g.t::after,.g.l::after{content:"";position:absolute;left:8px;top:50%;width:7px;border-top:1px solid var(--guide)}
.row .tw{width:18px;height:18px;border:0;background:none;padding:0;display:grid;place-items:center;color:var(--faint);flex:none;border-radius:4px}
.row .tw:hover{background:var(--line);color:var(--ink)}
.row .tw svg{transition:transform .15s}
.row .tw[aria-expanded="true"] svg{transform:rotate(90deg)}
.row .tw.leaf{visibility:hidden}
.row .nm{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:0;background:none;text-align:left;padding:4px 0;border-radius:4px}
.row.node .ico{color:var(--muted);display:grid}
.row .cnt{font-size:11px;color:var(--faint);font-family:var(--font-mono);white-space:nowrap}
.row .act{opacity:0;border:0;background:none;color:var(--faint);padding:3px;border-radius:4px;display:grid}
.row:hover .act,.row:focus-within .act{opacity:1}
.row .act:hover{background:var(--line);color:var(--ink)}
.row.pt{font-size:12.5px}
.row.pt .v{font-family:var(--font-mono);font-size:11.5px;color:var(--muted);white-space:nowrap}
.row.pt.stale .v{color:var(--stale)}
.row.proj .nm{color:var(--faint);font-style:italic}
.row.drop{outline:2px dashed var(--accent);outline-offset:-2px;background:var(--accent-soft)}
.row .medd{display:flex;gap:3px}
.row .medd i{width:6px;height:6px;border-radius:50%;display:inline-block}
.dropmsg{position:absolute;right:6px;top:-22px;background:var(--accent);color:var(--accent-ink);font-size:11px;padding:2px 7px;border-radius:4px;white-space:nowrap;pointer-events:none;z-index:2}
.scopebar{display:flex;gap:8px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted);flex-wrap:wrap}
.inbox{border-top:1px solid var(--line)}
.inbox-h{display:flex;align-items:center;gap:8px;padding:10px 12px 6px}
.inbox-h b{font-weight:600}
.dev{display:flex;gap:8px;align-items:flex-start;margin:4px 8px;padding:8px;border:1px dashed var(--line-2);border-radius:7px;background:var(--surface-2);cursor:grab}
.dev:hover{border-color:var(--accent-line)}
.dev small{display:block;color:var(--muted)}
.dev .src{color:var(--faint);font-size:11px}
.groups{border-top:1px solid var(--line);padding:8px 12px 12px}
.groups .gr{display:flex;gap:8px;align-items:center;padding:4px 0;color:var(--muted)}
.hint{font-size:11.5px;color:var(--faint)}
.kbd{font-family:var(--font-mono);font-size:10.5px;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:4px;padding:0 4px;color:var(--muted)}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);padding:0 10px;overflow-x:auto}
.tabs button{border:0;background:none;padding:9px 10px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent);font-weight:500}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;font-size:12.5px}
.kv dt{color:var(--muted)}
.kv dd{margin:0;min-width:0}
.kv dd .btn,.cond .btn{white-space:normal;text-align:left;height:auto}
.axes{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.axis{border:1px solid var(--line);border-radius:7px;padding:9px 10px;display:grid;gap:5px;align-content:start}
.axis .eyebrow{font-size:10px}
.path{color:var(--faint);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}
/* oś czasu urządzeń */
.tl-bar{display:flex;height:30px;border-radius:5px;overflow:hidden;border:1px solid var(--line)}
.tl-bar > div{display:flex;align-items:center;padding:0 8px;font-size:11px;white-space:nowrap;overflow:hidden;min-width:0}
.tl-dev{background:var(--accent-soft);color:var(--ink)}
.tl-dev+.tl-dev{border-left:1px solid var(--surface)}
.tl-gap{background:repeating-linear-gradient(135deg,var(--hatch) 0 2px,transparent 2px 6px);color:var(--muted)}
.tl-scale{display:flex;justify-content:space-between;color:var(--faint);font-family:var(--font-mono);font-size:10.5px;padding-top:4px}
.steps{display:flex;flex-wrap:wrap}
.steps span{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;padding:4px 8px;border:1px solid var(--line);margin-right:-1px;background:var(--surface-2);color:var(--faint)}
.steps span:first-child{border-radius:5px 0 0 5px}.steps span:last-child{border-radius:0 5px 5px 0}
.steps span.on{color:var(--ok);background:var(--ok-soft)}
.steps span.unk{color:var(--warn);background:var(--warn-soft)}
/* zdarzenia */
.ev-row td:first-child{border-left:3px solid transparent}
.ev-row.p1 td:first-child{border-left-color:var(--crit)}
.ev-row.p2 td:first-child{border-left-color:var(--warn)}
.ev-row.p3 td:first-child{border-left-color:var(--line-2)}
.filters{display:flex;gap:6px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line)}
.fbtn{border:1px solid var(--line-2);background:var(--surface);border-radius:20px;padding:3px 10px;font-size:12px;color:var(--muted)}
.fbtn[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.timeline{list-style:none;margin:0;padding:0;display:grid}
.timeline li{display:grid;grid-template-columns:92px 14px 1fr;gap:10px;padding:0 0 14px;position:relative}
.timeline li::before{content:"";position:absolute;left:98px;top:14px;bottom:0;width:1px;background:var(--line)}
.timeline li:last-child::before{display:none}
.timeline time{color:var(--faint);font-family:var(--font-mono);font-size:11px;text-align:right;padding-top:1px}
.timeline .mk{width:9px;height:9px;border-radius:50%;background:var(--surface);border:2px solid var(--faint);margin-top:4px}
.timeline .mk.crit{border-color:var(--crit)}.timeline .mk.ok{border-color:var(--ok)}.timeline .mk.acc{border-color:var(--accent)}
/* miejsca (dom) */
.places{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.place{display:grid;grid-template-rows:auto 1fr auto}
.place .ph2{display:flex;gap:10px;align-items:center;padding:14px 16px 10px}
.place .ph2 h2{margin:0;font-size:17px;font-weight:600}
.place .ph2 .addr{color:var(--muted);font-size:12.5px}
.quad{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.quad > div{padding:10px 16px;border-bottom:1px solid var(--line);display:grid;gap:2px;align-content:start}
.quad > div:nth-child(odd){border-right:1px solid var(--line)}
.quad .val{font-family:var(--font-mono);font-size:19px}
.ctrl{display:flex;gap:10px;align-items:center;padding:12px 16px;flex-wrap:wrap}
.toggle{width:40px;height:22px;border-radius:12px;border:0;background:var(--line-2);position:relative;flex:none}
.toggle::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--surface);transition:left .15s}
.toggle[aria-checked="true"]{background:var(--accent)}
.toggle[aria-checked="true"]::after{left:21px}
.toggle[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
/* rzut */
.plan svg{display:block;width:100%;height:auto;background:var(--surface-2)}
.plan text{font-family:var(--font-ui);fill:var(--muted);font-size:12px}
.plan .wall{fill:none;stroke:var(--ink);stroke-width:4}
.plan .zone{fill:var(--surface);stroke:var(--line-2);stroke-width:1.2}
.plan .mkr{cursor:pointer}
.plan .tag rect{fill:var(--surface);stroke:var(--line-2)}
.plan .tag text{fill:var(--ink);font-family:var(--font-mono);font-size:12px}
.plan .tag.stale rect{stroke-dasharray:4 3}
.plan .tag.stale text{fill:var(--stale)}
.slider{display:flex;gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--line);flex-wrap:wrap}
.slider input{flex:1;min-width:160px;accent-color:var(--accent)}
/* okna dialogowe */
.ovl{position:fixed;inset:0;background:rgba(10,14,20,.5);display:grid;place-items:center;z-index:50;padding:16px}
.dlg{background:var(--surface);border-radius:10px;border:1px solid var(--line);width:min(620px,100%);max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.dlg-h{padding:16px 18px 8px;display:flex;gap:10px;align-items:flex-start}
.dlg-h h2{margin:0;font-size:16px;font-weight:600}
.dlg-b{padding:4px 18px 14px;display:grid;gap:14px}
.dlg-f{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.opt{display:flex;gap:10px;border:1px solid var(--line-2);border-radius:8px;padding:10px 12px;cursor:pointer}
.opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.opt input{margin-top:3px;accent-color:var(--accent)}
.opt b{font-weight:600}
.opt small{display:block;color:var(--muted)}
.impact{border:1px solid var(--line);border-radius:8px}
.impact > div{display:grid;grid-template-columns:26px 1fr;gap:6px;padding:9px 12px;border-bottom:1px solid var(--line)}
.impact > div:last-child{border-bottom:0}
.field{display:grid;gap:4px}
.field label{font-size:12px;color:var(--muted)}
.field input,.field select{border:1px solid var(--line-2);border-radius:6px;padding:6px 8px;background:var(--surface);min-width:0}
.toast{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:9px 14px;border-radius:7px;z-index:60;font-size:12.5px;max-width:calc(100% - 32px)}
.empty{display:grid;gap:10px;padding:26px;max-width:640px}
.empty h2{margin:0;font-size:18px;font-weight:600}
/* analizy, przepływy, raporty, optymalizacje */
:root{--s1:#C98A00;--s2:#2D47C9;--s3:#C2410C;--s4:#0E8F8A;--s5:#8A4FD8;--s6:#3E8F2A}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--s1:#F2B632;--s2:#8EA2FF;--s3:#F27B45;--s4:#3CC7C1;--s5:#B48BF2;--s6:#7CC95E}}
:root[data-theme="dark"]{--s1:#F2B632;--s2:#8EA2FF;--s3:#F27B45;--s4:#3CC7C1;--s5:#B48BF2;--s6:#7CC95E}
.an{display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px;align-items:start}
.srow{display:flex;align-items:center;gap:8px;padding:5px 12px;cursor:pointer;font-size:12.5px}
.srow:hover{background:var(--surface-2)}
.srow input{accent-color:var(--accent)}
.srow .sw2{width:10px;height:10px;border-radius:2px;flex:none}
.srow .path{max-width:none;font-size:11px}
.sgh{padding:8px 12px 2px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);display:flex;gap:6px;align-items:center}
.types{display:flex;gap:4px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line)}
.types button{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);background:var(--surface-2);border-radius:6px;padding:5px 10px;color:var(--muted)}
.types button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink);font-weight:500}
.panel-lbl{display:flex;gap:8px;align-items:center;padding:8px 14px 0;font-size:12px;color:var(--muted)}
.lg{display:flex;gap:12px;flex-wrap:wrap;padding:6px 14px 12px;font-size:12px}
.lg button{display:inline-flex;gap:6px;align-items:center;border:0;background:none;padding:2px 4px;border-radius:4px;color:var(--ink)}
.lg button[aria-pressed="false"]{opacity:.45;text-decoration:line-through}
.lg i{width:14px;height:3px;border-radius:2px;display:inline-block}
.heat{display:grid;grid-template-columns:70px repeat(24,minmax(0,1fr));gap:2px;font-family:var(--font-mono);font-size:10px;color:var(--faint)}
.heat .c{aspect-ratio:1/1;border-radius:2px;min-height:12px}
.heat .c.g{background:repeating-linear-gradient(135deg,var(--hatch) 0 2px,transparent 2px 4px)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.rc{border:1px solid var(--line);border-radius:8px;padding:12px;display:grid;gap:6px;align-content:start;background:var(--surface);text-align:left}
.rc h3{margin:0;font-size:13.5px;font-weight:600}
.rc p{margin:0;color:var(--muted);font-size:12px}
button.rc{cursor:pointer;font:inherit;color:inherit}
button.rc[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.a4{background:#fff;color:#17202B;border-radius:4px;box-shadow:0 2px 10px rgba(0,0,0,.15);padding:22px;aspect-ratio:1/1.414;max-width:420px;display:grid;gap:10px;align-content:start;font-size:10.5px;margin:auto}
.a4 h4{margin:0;font-size:14px}
.a4 .k{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.a4 .k div{border:1px solid #D6DCE2;border-radius:4px;padding:6px}
.a4 .k b{display:block;font-family:var(--font-mono);font-size:13px}
.a4 .ft{margin-top:auto;border-top:1px solid #D6DCE2;padding-top:6px;color:#56626F;font-size:9px}
.funnel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.funnel div{border:1px solid var(--line);border-radius:7px;padding:8px 10px;display:grid;gap:2px}
.funnel b{font-family:var(--font-mono);font-size:17px;font-weight:500}
.conf{display:inline-flex;gap:2px}
.conf i{width:6px;height:10px;border-radius:1px;background:var(--line-2)}
.conf i.on{background:var(--ok)}
.flow3{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr) 22px minmax(0,1fr);gap:6px;align-items:stretch}
.flow3 > .arr{display:grid;place-items:center;color:var(--faint)}
.blk{border:1px solid var(--line-2);border-radius:8px;padding:10px;display:grid;gap:8px;align-content:start;background:var(--surface-2)}
.blk > .eyebrow{display:flex;gap:6px;align-items:center}
.cond{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:7px 9px;display:grid;gap:2px}
.cond b{font-weight:500}
.cond .and{font-size:10.5px;color:var(--faint);letter-spacing:.06em;text-transform:uppercase}
.addc{border:1px dashed var(--line-2);background:none;border-radius:6px;padding:6px;color:var(--muted);font-size:12px}
.modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.modes button{border:1px solid var(--line-2);background:var(--surface);border-radius:7px;padding:8px 10px;text-align:left;display:grid;gap:2px}
.modes button small{color:var(--muted);font-size:11.5px}
.modes button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft)}
.safe{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.safe .field select,.safe .field input{width:100%}
.check{display:grid;grid-template-columns:22px 1fr;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
.check:last-child{border-bottom:0}
.cal{display:grid;grid-template-columns:200px minmax(0,1fr);gap:6px 10px;align-items:center;font-size:12px}
.cal .band{position:relative;height:18px;background:var(--surface-2);border-radius:3px;overflow:hidden}
.cal .band i{position:absolute;top:2px;bottom:2px;border-radius:2px}
.stepper{display:flex;gap:4px;flex-wrap:wrap;padding:0 18px 6px}
.stepper span{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--faint);padding:3px 8px;border-radius:12px;border:1px solid var(--line)}
.stepper span.on{color:var(--ink);border-color:var(--accent);background:var(--accent-soft)}
.stepper span.done{color:var(--ok);border-color:transparent;background:var(--ok-soft)}
.tcard{border:1px solid var(--line-2);border-radius:8px;padding:10px;background:var(--surface);text-align:left;display:grid;gap:3px}
.tcard[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft)}
.tcard small{color:var(--muted)}
.chkrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);align-items:start}
.chkrow:last-child{border-bottom:0}
.chkrow .res{font-size:12px;color:var(--muted)}
.tri{display:inline-flex;border:1px solid var(--line-2);border-radius:6px;overflow:hidden}
.tri button{border:0;background:var(--surface);padding:4px 8px;font-size:12px;color:var(--muted);border-right:1px solid var(--line)}
.tri button:last-child{border-right:0}
.tri button[aria-pressed="true"].ok{background:var(--ok-soft);color:var(--ok)}
.tri button[aria-pressed="true"].warn{background:var(--warn-soft);color:var(--warn)}
.tri button[aria-pressed="true"].na{background:var(--sunken);color:var(--ink)}
.progress{height:6px;border-radius:3px;background:var(--sunken);overflow:hidden}
.progress i{display:block;height:6px;background:var(--ok)}
.av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:600;background:var(--accent-soft);color:var(--accent);flex:none}
.av.ext{background:var(--warn-soft);color:var(--warn)}
.av.grp{background:var(--sunken);color:var(--muted);border-radius:8px}
.caps{display:inline-flex;gap:3px;flex-wrap:wrap}
.cap{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:4px;background:var(--surface-2);color:var(--line-2);border:1px solid var(--line)}
.cap.on{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.cap.part{background:var(--surface);color:var(--accent);border:1px dashed var(--accent-line)}
.cap svg.i{width:12px;height:12px}
.mx td,.mx th{text-align:center}
.mx td:first-child,.mx th:first-child{text-align:left}
.bottom-nav{display:none}
@media (max-width:1180px){.g-2.g-2s{grid-template-columns:minmax(0,1fr)}.flow3{grid-template-columns:minmax(0,1fr)}.flow3 > .arr{transform:rotate(90deg)}.modes{grid-template-columns:repeat(2,minmax(0,1fr))}.an{grid-template-columns:minmax(0,1fr)}.funnel{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-2{grid-template-columns:minmax(0,1fr)}.res,.res.list{grid-template-columns:minmax(0,1fr)}}
@media (max-width:820px){
  .app{grid-template-columns:minmax(0,1fr)}
  .rail{display:none}
  .ctx{padding:8px 16px}
  .ctx-right{margin-left:0;width:100%}
  .work{padding:14px 16px calc(80px + env(safe-area-inset-bottom,0px))}
  .g-2e{grid-template-columns:minmax(0,1fr)}
  .bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));justify-content:space-around}
  .bottom-nav button{border:0;background:none;display:grid;justify-items:center;gap:2px;font-size:10.5px;color:var(--muted);padding:4px 6px;min-width:56px}
  .bottom-nav button[aria-current="page"]{color:var(--accent)}
  .bottom-nav svg.i{width:20px;height:20px}
  .mob-role{display:flex!important}
  .timeline li{grid-template-columns:70px 14px 1fr}
  .timeline li::before{left:76px}
  .pop.right{left:0;right:auto}
  /* kompaktowa belka kontekstu: zakres · okres · tryb */
  .ctx{gap:6px;padding:8px max(12px,env(safe-area-inset-right,0px)) 8px max(12px,env(safe-area-inset-left,0px))}
  .space,.qseg,.live,.rng [data-shift],.crumbs .sep,.crumbs button:not(.cur):not(.pick){display:none}
  .cw{flex:1 1 auto}
  .crumbs{flex-wrap:nowrap}
  .crumbs .cur{max-width:44vw;overflow:hidden;text-overflow:ellipsis;font-size:15px;font-weight:600;padding-left:0}
  .ctx-right{width:auto;flex:1 1 100%;gap:6px;flex-wrap:nowrap;min-width:0}
  .ctx-right .cw{flex:1 1 auto;min-width:0}
  .ctx-right .cw:has(.bell){flex:0 0 auto}
  .ctx-right .cw .rng{display:flex;min-width:0;max-width:100%}
  .ctx-right .rng .lbl{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .bell .badge{top:-5px;right:-4px}
  .rng{width:100%}
  .rng .lbl{border:0;flex:1;justify-content:center;font-size:11.5px}
  .ctx-right > .seg button{padding:5px 8px;font-size:12px}
  .pop,.pop.right{position:fixed;left:12px;right:12px;top:calc(96px + env(safe-area-inset-top,0px));width:auto;max-height:calc(100vh - 190px);overflow:auto}
  .banner{padding:6px 12px;font-size:12px}
  /* obszar roboczy */
  .ph h1{font-size:20px}
  .ph .acts{margin-left:0;width:100%}
  .ph .acts .btn{flex:1 1 auto;justify-content:center}
  .g-kpi{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .kpi{padding:10px 12px}
  .kpi .val{font-size:18px}
  .card-h{padding:10px 12px}
  .card-b{padding:12px}
  .note{padding:8px 12px}
  .an > section:first-child{order:2}
  .an > div{order:1}
  .types{padding:8px 12px;overflow-x:auto;flex-wrap:nowrap}
  .types button{white-space:nowrap}
  .tabs{padding:0 6px}
  .axes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .modes{grid-template-columns:minmax(0,1fr)}
  .kv{grid-template-columns:minmax(0,1fr)}
  .kv dt{margin-top:6px}
  .heat{grid-template-columns:44px repeat(24,minmax(0,1fr));font-size:9px}
  .cal{grid-template-columns:minmax(0,1fr)}
  .chkrow{grid-template-columns:minmax(0,1fr)}
  .funnel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dlg{max-height:calc(100vh - 24px)}
  .ovl{padding:12px;align-items:end}
  .ovl.sheet .nav button{padding:10px}
  .toast{bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .chart text{font-size:13px}
  #detail{scroll-margin-top:100px}
  .ph .sub{font-size:12.5px}
}
.mob-role{display:none;gap:6px;align-items:center;font-size:12px;color:var(--muted)}
.mob-role select{padding:4px 6px;border:1px solid var(--line-2);border-radius:6px;background:var(--surface-2)}
/* mapy: minimalny zestaw reguł Leaflet (biblioteka bez arkusza z CDN) + własne pinezki */
.mapwrap{position:relative}
.mapbox{position:relative;border-radius:var(--r);overflow:hidden;background:var(--surface-2);border:1px solid var(--line);z-index:0}
.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;-webkit-tap-highlight-color:transparent;font:12px/1.4 var(--font-ui);outline-offset:1px}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}
.leaflet-tile,.leaflet-marker-icon{user-select:none;-webkit-user-drag:none}
.leaflet-tile{visibility:hidden}.leaflet-tile-loaded{visibility:inherit}
.leaflet-container img.leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}
.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}
.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}
.leaflet-pane>svg path.leaflet-interactive{pointer-events:auto}
.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-dragging .leaflet-grab{cursor:grabbing}
.leaflet-zoom-animated{transform-origin:0 0}
.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}
.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}
.leaflet-control{position:relative;z-index:800;pointer-events:auto;float:left;clear:both}
.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-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}
.leaflet-bar{border:1px solid var(--line-2);border-radius:6px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.leaflet-bar a{display:block;width:30px;height:30px;line-height:30px;text-align:center;text-decoration:none;background:var(--surface);color:var(--ink);font-size:16px}
.leaflet-bar a+a{border-top:1px solid var(--line)}
.leaflet-bar a:hover{background:var(--surface-2)}
.leaflet-bar a.leaflet-disabled{color:var(--faint);cursor:default}
.leaflet-control-attribution{background:color-mix(in srgb,var(--surface) 82%,transparent);margin:0!important;padding:1px 6px;font-size:10px;color:var(--muted)}
.leaflet-control-attribution a{color:var(--muted)}
.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}
.leaflet-popup-content-wrapper{text-align:left;border-radius:8px;background:var(--surface);color:var(--ink);border:1px solid var(--line-2);box-shadow:0 8px 24px rgba(0,0,0,.2)}
.leaflet-popup-content{margin:10px 12px;font-size:12.5px;line-height:1.45;min-width:180px}
.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:14px;height:14px;margin:-8px auto 0;transform:rotate(45deg);background:var(--surface);border:1px solid var(--line-2)}
.leaflet-popup-close-button{position:absolute;top:2px;right:4px;width:22px;height:22px;font:16px/22px var(--font-ui);color:var(--faint);text-decoration:none;text-align:center}
.leaflet-tooltip{position:absolute;padding:3px 7px;background:var(--surface);color:var(--ink);border:1px solid var(--line-2);border-radius:5px;white-space:nowrap;pointer-events:none;font-size:11.5px;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9)}}
:root[data-theme="dark"] .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9)}
.mapbox.tiles-off{background-color:var(--surface-2);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:48px 48px}
.mapnote{background:var(--surface);border:1px solid var(--line-2);border-radius:6px;padding:5px 8px;font-size:11px;color:var(--muted);max-width:min(330px,calc(100vw - 80px));box-shadow:0 2px 8px rgba(0,0,0,.1)}
.maplbl{font-size:11px;color:var(--faint);font-weight:500;white-space:nowrap;text-shadow:0 0 3px var(--surface-2)}
.pin{display:block;width:var(--s);height:var(--s);border-radius:50%;background:var(--c);border:2px solid var(--surface);box-shadow:0 1px 4px rgba(0,0,0,.35);position:relative;opacity:.92}
.pin.warn{outline:2.5px dashed var(--warn);outline-offset:2px}
.pin.crit{outline:2.5px solid var(--crit);outline-offset:2px}
.pin.dim{opacity:.4}
.pin.sel{outline:3px solid var(--accent);outline-offset:3px}
.pin i{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%);font-style:normal;font-size:11px;font-weight:500;color:var(--ink);white-space:nowrap;background:color-mix(in srgb,var(--surface) 86%,transparent);padding:0 4px;border-radius:3px;pointer-events:none}
.clu{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--bg);border:3px solid var(--surface);box-shadow:0 1px 6px rgba(0,0,0,.35);font-family:var(--font-mono);font-size:12px}
.clu.warn{box-shadow:0 0 0 3px var(--warn)}.clu.crit{box-shadow:0 0 0 3px var(--crit)}
.mpop b{font-weight:600}.mpop .row2{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}.mpop .btn{margin-top:6px}
.maptools{display:flex;gap:8px 12px;flex-wrap:wrap;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line)}
.maptools .eyebrow{margin-right:-4px}
.mapgrid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:0}
.mapgrid > .side{border-left:1px solid var(--line);max-height:520px;overflow:auto}
@media (max-width:1000px){.mapgrid{grid-template-columns:minmax(0,1fr)}.mapgrid > .side{border-left:0;border-top:1px solid var(--line);max-height:none}}
/* kreatory */
.dlg.wide{width:min(820px,100%)}
.wzbar{list-style:none;margin:0;padding:0 18px 10px;display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.wzbar li button{border:1px solid var(--line);background:var(--surface-2);color:var(--faint);border-radius:999px;padding:3px 10px;font-size:12px}
.wzbar li.cur button{border-color:var(--accent);background:var(--accent-soft);color:var(--ink);font-weight:500}
.wzbar li.done button{color:var(--ok);background:var(--ok-soft);border-color:transparent}
.wzbar li button:disabled{cursor:default}
.tcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.tcards label{display:flex;gap:8px;align-items:center;border:1px solid var(--line-2);border-radius:8px;padding:8px 10px;cursor:pointer}
.tcards label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.tcards input{accent-color:var(--accent)}
.field textarea{border:1px solid var(--line-2);border-radius:6px;padding:6px 8px;background:var(--surface);font:inherit;color:inherit;min-height:64px;resize:vertical}
.sumtbl td:first-child{color:var(--muted);width:38%}
/* powiadomienia */
.bell{position:relative;border:1px solid var(--line-2);background:var(--surface-2);border-radius:6px;padding:5px 7px;display:grid;place-items:center;color:var(--muted)}
.bell[aria-expanded="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.bell .badge{position:absolute;top:-6px;right:-6px;min-width:17px;height:17px;border-radius:9px;background:var(--crit);color:#fff;font-size:10.5px;font-family:var(--font-mono);display:grid;place-items:center;padding:0 4px;border:2px solid var(--surface)}
.pop.notif{width:min(420px,calc(100vw - 24px));padding:0;gap:0}
.np-h{display:flex;align-items:center;gap:8px;padding:10px 12px 6px;flex-wrap:wrap}
.np-h h3{font-size:14px;color:var(--ink);font-weight:600}
.nlist{list-style:none;margin:0;padding:0;max-height:min(460px,60vh);overflow:auto;border-top:1px solid var(--line)}
.nlist li+li{border-top:1px solid var(--line)}
.ni{display:grid;grid-template-columns:12px 1fr;gap:8px;width:100%;text-align:left;border:0;background:none;padding:10px 12px}
.ni:hover{background:var(--surface-2)}
.ni .nd{width:8px;height:8px;border-radius:50%;margin-top:5px;background:transparent}
.ni.unread .nd{background:var(--accent)}
.ni.unread b{font-weight:600}.ni b{font-weight:500}
.ni .k-crit{color:var(--crit)}.ni .k-warn{color:var(--warn)}.ni .k-ok{color:var(--ok)}.ni .k-acc{color:var(--accent)}
.np-f{border-top:1px solid var(--line);padding:6px 8px;display:flex;justify-content:space-between;gap:6px;flex-wrap:wrap}
/* dokumentacja i pliki */
.dropzone{display:flex;gap:10px;align-items:center;border:1.5px dashed var(--line-2);border-radius:8px;padding:12px 14px;cursor:pointer;color:var(--muted);background:var(--surface-2)}
.dropzone:hover,.dropzone.over{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.fthumb{display:grid;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface);padding:0;text-align:left;min-width:0}
.fthumb:hover{border-color:var(--faint)}
.fthumb .fimg{display:block;aspect-ratio:4/3;overflow:hidden}
.fthumb .fcap{display:grid;gap:2px;padding:6px 8px;font-size:12px;min-width:0}
.fthumb .fcap b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fthumb.sm{width:64px;height:48px;display:inline-block;vertical-align:middle}
.ph-thumb{display:grid;place-items:center;align-content:center;gap:4px;width:100%;height:100%;min-height:40px;color:var(--muted);font-size:10.5px}
.ph-thumb.img{background:linear-gradient(160deg,var(--sunken),var(--surface-2) 60%,var(--line))}
.ph-thumb.doc{background:repeating-linear-gradient(0deg,var(--surface-2) 0 9px,var(--line) 9px 10px)}
.ph-thumb svg{width:22px;height:22px}
.fthumb.sm .ph-thumb svg{width:16px;height:16px}.fthumb.sm .ph-thumb small{display:none}
.uprow{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:start;border-bottom:1px solid var(--line);padding-bottom:12px}
.uprow .fthumb.sm{width:72px;height:56px}
/* raporty: strona dokumentu zawsze w jasnych barwach, także w ciemnym motywie */
.paper{--surface:#fff;--surface-2:#F5F7F9;--sunken:#E6EAEE;--line:#D6DCE2;--line-2:#C3CBD3;--ink:#17202B;--muted:#56626F;--faint:#8692A0;--accent:#2D47C9;--accent-soft:#E3E8FA;--ok:#1E7F4A;--warn:#9A6100;--crit:#B42828;--band:rgba(45,71,201,.14);--m-el:#D69400;--m-pv:#3E8F2A;--hatch:#B9C1CA;--anom:rgba(214,148,0,.16);color-scheme:light;background:#fff;color:var(--ink);max-width:820px;margin:0 auto;padding:34px 40px;border-radius:4px;box-shadow:0 4px 18px rgba(0,0,0,.18);display:grid;gap:16px;font-size:12px}
.paper header{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px;border-bottom:2px solid var(--ink);padding-bottom:8px}
.paper h4{margin:0;font-size:20px;font-weight:600}
.paper .pk{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.paper .pk div{border:1px solid var(--line);border-radius:6px;padding:8px 10px;display:grid;gap:2px;color:var(--muted);font-size:11px}
.paper .pk b{font-family:var(--font-mono);font-size:18px;color:var(--ink);font-weight:500}
.paper .psec h5{margin:0 0 6px;font-size:12.5px;font-weight:600}
.paper .tbl{font-size:11.5px}
.paper footer{border-top:1px solid var(--line);padding-top:8px;color:var(--muted);font-size:10px}
.paper .pph{height:90px;border:1px dashed var(--line-2);border-radius:6px;display:grid;place-items:center;color:var(--faint)}
.paper.mini{padding:20px;max-width:640px}.paper.mini h4{font-size:16px}
.paperwrap{background:var(--sunken);border-radius:var(--r);padding:20px;min-width:0}
@media (max-width:640px){.paper{padding:14px 10px}.paper .pk{grid-template-columns:minmax(0,1fr)}.paperwrap{padding:6px}}
@media print{.rail,.ctx,#banner,#bnav,.tabs,.ph,.banner,.toast,#layer{display:none!important}.app{display:block}body{background:#fff}.paper{box-shadow:none;max-width:none}}
/* scenariusze */
.scnwrap{display:grid;gap:8px}
.scn{display:grid;gap:8px}
.stp{border:1px solid var(--line-2);border-left:4px solid var(--c);border-radius:7px;background:var(--surface);padding:8px 10px;display:grid;gap:6px;min-width:0}
.stp.trig{background:var(--surface-2)}
.stp .sh{display:flex;gap:8px;align-items:center;color:var(--c)}
.stp .sh b.k{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.stp .sh .tools{margin-left:auto;display:flex;gap:2px;color:var(--muted)}
.stp .sh .tools .btn{padding:2px 5px}
.br{display:grid;gap:8px;margin-left:6px;padding:4px 0 2px 12px;border-left:2px solid var(--ok)}
.br.no{border-left-color:var(--line-2)}
.br > .bl{font-size:11px;color:var(--muted);font-weight:500}
.addstep{border:1px dashed var(--line-2);background:none;border-radius:6px;padding:4px 8px;color:var(--muted);font-size:12px;justify-self:start;display:inline-flex;gap:4px;align-items:center}
.addstep:hover{border-color:var(--accent);color:var(--ink)}
.cnd{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
.kind{font-size:10px;border-radius:3px;padding:1px 5px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted);margin:0 4px}
.inst{border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:grid;gap:8px}
.trace{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.trace li{display:grid;grid-template-columns:44px 110px minmax(0,1fr);gap:8px;font-size:12px;padding-left:10px;border-left:3px solid var(--ok)}
.trace li.run{border-left-color:var(--accent)}.trace li.crit{border-left-color:var(--crit)}.trace li.warn{border-left-color:var(--warn)}
.trace time{font-family:var(--font-mono);color:var(--faint);font-size:11px}
.trace b{font-weight:500}
@media (max-width:640px){.trace li{grid-template-columns:40px minmax(0,1fr)}.trace li span{grid-column:2}}
.navw{display:grid;gap:2px;padding:2px 0 6px}
.nav-s{width:100%;height:auto;display:block;cursor:pointer;touch-action:none}
.tip .tq{color:var(--faint);font-size:11px}
#gtip{max-width:280px}
.hctl{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.dstrip{position:relative;height:16px;border-radius:4px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden;margin-top:4px}
.dstrip span{position:absolute;top:0;bottom:0}.dstrip span.cheap{background:var(--ok-soft)}
.dstrip i{position:absolute;top:4px;bottom:4px;border-radius:3px;opacity:.85}
.hsch{display:grid;gap:2px}.hsch.off{opacity:.5}
.dsc{display:flex;justify-content:space-between;font-family:var(--font-mono);margin-top:-6px}
/* asystent */
.asst{position:fixed;top:0;right:0;bottom:0;width:min(420px,100vw);z-index:45;background:var(--surface);border-left:1px solid var(--line-2);box-shadow:-12px 0 32px rgba(0,0,0,.18);display:flex;flex-direction:column}
.asst-h{display:flex;gap:8px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.asst-h > svg{color:var(--accent)}
.asst-ctx{display:flex;gap:4px;flex-wrap:wrap;align-items:center;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.asst-b{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.am{max-width:92%;padding:9px 11px;border-radius:10px;font-size:13px;line-height:1.5}
.am.me{align-self:flex-end;background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:3px}
.am.bot{align-self:flex-start;background:var(--surface-2);border:1px solid var(--line);border-bottom-left-radius:3px}
.asrc{display:grid;gap:3px;margin-top:8px;padding-top:6px;border-top:1px solid var(--line);font-size:11.5px;color:var(--muted)}
.asrc span{display:flex;gap:5px;align-items:center}.asrc svg.i{width:13px;height:13px}
.aacts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.asugg{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:4px}
.asugg .btn{white-space:normal;text-align:left;height:auto}
.asst-f{display:flex;gap:6px;padding:10px 14px;border-top:1px solid var(--line)}
.asst-f input{flex:1;min-width:0;border:1px solid var(--line-2);border-radius:6px;padding:7px 9px;background:var(--surface)}
.asst-note{padding:0 14px calc(10px + env(safe-area-inset-bottom,0px))}
.dots{color:var(--muted);font-style:italic}
.bell.asstb[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.i18nnote{border-color:var(--accent-line)}
/* runda P2: wyszukiwanie, stany, logowanie, podgląd jako */
.srchb{display:flex;gap:8px;align-items:center;width:100%;border:1px solid var(--line-2);background:var(--surface-2);border-radius:7px;padding:6px 9px;color:var(--muted);margin:0 0 10px}
.srchb kbd{margin-left:auto;font:11px var(--font-mono);border:1px solid var(--line-2);border-radius:4px;padding:0 4px;color:var(--faint)}
.srchb:hover{border-color:var(--faint);color:var(--ink)}
.srch .search{margin:14px 14px 6px}
.srl{list-style:none;margin:0;padding:0 8px 8px;max-height:min(460px,60vh);overflow:auto}
.srl .sg{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:10px 8px 4px}
.sr{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:0;background:none;padding:7px 8px;border-radius:6px}
.sr b{display:block;font-weight:500}.sr .hint{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr.on,.sr:hover{background:var(--accent-soft)}
.sk{height:12px;border-radius:5px;background:linear-gradient(90deg,var(--sunken),var(--surface-2),var(--sunken));background-size:200% 100%;animation:skm 1.2s linear infinite;margin:4px 0}
@keyframes skm{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.sk{animation:none}}
.stbox{text-align:center;justify-items:center;padding:36px 20px}.stbox > svg{width:34px;height:34px;color:var(--accent)}.stbox.err > svg{color:var(--crit)}
.kpi.click{cursor:pointer}.kpi.click:hover{border-color:var(--accent-line)}
.banner.impb{background:var(--warn-soft);color:var(--ink);border:1px solid var(--warn);border-radius:var(--r)}
.banner.recon{background:var(--crit-soft);color:var(--ink);border-radius:var(--r)}
body.loginmode .rail,body.loginmode .ctx,body.loginmode #banner,body.loginmode #bnav,body.loginmode .asst{display:none!important}
body.loginmode .app{grid-template-columns:minmax(0,1fr)}
.login{min-height:calc(100vh - 40px);display:grid;place-items:center}
.lcard{width:min(420px,100%);padding:24px;display:grid;gap:12px}
.lor{display:flex;align-items:center;gap:8px;color:var(--faint);font-size:12px}.lor::before,.lor::after{content:"";flex:1;border-top:1px solid var(--line)}
.lprov{justify-content:center;font-weight:500}
button.gr{width:100%;border:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer;border-radius:6px}button.gr:hover{background:var(--surface-2)}
#planPick{cursor:crosshair}
.pmk{position:absolute;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);border:2px solid var(--surface);box-shadow:0 1px 4px rgba(0,0,0,.35);padding:0}
.pmk.big{width:auto;min-width:24px;height:24px;border-radius:12px;padding:0 7px;color:#fff;font:600 11px var(--font-mono);display:grid;place-items:center;cursor:pointer}.pmk i{font-style:normal}
/* sieć i autokonsumpcja */
.gridnow{display:inline-flex;align-items:center;gap:5px;font-weight:500}.gridnow b{font-size:15px}
.gridnow.big b{font-size:20px}.gridnow span{font-size:12px;font-weight:400;color:var(--muted)}
.gridnow.imp{color:var(--crit)}.gridnow.exp{color:var(--ok)}.gridnow svg.i{width:17px;height:17px}
.gday{display:flex;flex-direction:column;gap:2px;font-size:12px}.gday span{display:inline-flex;gap:4px;align-items:center}.gday .imp{color:var(--crit)}.gday .exp{color:var(--ok)}.gday svg.i{width:13px;height:13px}
.ecob{display:inline-flex;gap:4px;align-items:center;font-size:11.5px;border-radius:999px;padding:2px 8px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted);margin-top:3px;width:max-content}
.ecob.eco{background:var(--ok-soft);color:var(--ok);border-color:transparent}.ecob.part{background:var(--warn-soft);color:var(--warn);border-color:transparent}.ecob svg.i{width:13px;height:13px}
.gridband{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;padding:12px 14px}.gridband > div{display:grid;gap:2px}.gridband .btn{margin-left:auto}
.apvbar{display:flex;height:30px;border-radius:6px;overflow:hidden;margin-top:6px;border:1px solid var(--line)}.apvbar span{display:grid;place-items:center;color:#fff;font-size:11px;white-space:nowrap;overflow:hidden;min-width:3px}
.apvnow{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px}
.apvl{list-style:none;margin:0;padding:0}.apvl li{display:grid;grid-template-columns:20px 24px minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--surface)}
.apvl li.off{opacity:.6}.apvl li.over{box-shadow:inset 0 3px 0 var(--accent)}.apvh{cursor:grab;color:var(--faint);padding-top:2px}.apvn{font-size:16px;color:var(--accent)}.apvb{display:flex;gap:2px}
@media (max-width:640px){.apvl li{grid-template-columns:20px minmax(0,1fr)}.apvl li .apvn{display:none}.apvb{grid-column:2}}
.capw{border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:grid;gap:8px;margin-bottom:10px;background:var(--surface)}
.capw-h{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.capw-h b{font-weight:600}
.capw-a{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.capw-a > div{display:grid;gap:1px;padding:6px 8px;border-radius:6px;background:var(--surface-2)}
.capw-a b{font-size:15px;font-weight:500}.capw-c{display:flex;gap:6px;flex-wrap:wrap}

/* Product additions on top of theme.css (the prototype's visual system). Same tokens, no new colours. */

body { margin: 0; }
a { color: var(--accent); }
a.btn { text-decoration: none; color: inherit; }
a.btn.primary { color: var(--accent-ink); }
h1, h2, h3 { margin: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.muted { color: var(--muted); }

/* Navigation links behave like the prototype's nav buttons. */
.nav a { display: flex; gap: 10px; align-items: center; padding: 7px 10px; border-radius: 6px; color: var(--muted); text-decoration: none; }
.nav a:hover { background: var(--surface-2); color: var(--ink); }
.nav a[aria-current="page"] { background: var(--accent-soft); color: var(--ink); font-weight: 500; }
.nav a[aria-current="page"] svg { color: var(--accent); }
.nav .sect { font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--faint); padding: 14px 10px 4px; }
.who .user { display: flex; gap: 6px; align-items: center; justify-content: space-between; min-width: 0; }
.who .user span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.who form { margin: 0; }
@media (max-width: 820px) {
  .bottom-nav a { display: grid; justify-items: center; gap: 2px; font-size: 10.5px; color: var(--muted); padding: 4px 6px; min-width: 56px; text-decoration: none; }
  .bottom-nav a[aria-current="page"] { color: var(--accent); }
  .bottom-nav a svg.i { width: 20px; height: 20px; }
}

/* Sheet with the full navigation on phones ("More" in the bottom bar). */
.ovl.sheet { align-items: end; }
.ovl.sheet .dlg { width: min(420px, 100%); }
.ovl.sheet .nav a { padding: 10px; }

/* Sign-in screen. */
.signin { min-height: 100vh; display: grid; place-items: center; padding: 16px; }
.signin .card { width: min(420px, 100%); padding: 24px; display: grid; gap: 14px; }
.signin h1 { font-size: 20px; font-weight: 600; }

/* Error box: codes are translated, details stay in the console. */
.err { border: 1px solid transparent; background: var(--crit-soft); color: var(--crit); border-radius: var(--r); padding: 10px 12px; display: grid; gap: 4px; }
.err ul { margin: 0; padding-left: 18px; }

/* Inputs outside dialogs use the same look as .field inputs. */
.inp, select.inp { border: 1px solid var(--line-2); border-radius: 6px; padding: 5px 8px; background: var(--surface); min-width: 0; }
.field textarea { border: 1px solid var(--line-2); border-radius: 6px; padding: 6px 8px; background: var(--surface); font: inherit; }
.field .hint { margin: 0; }
.btn:disabled, .btn[aria-disabled="true"] { opacity: .5; cursor: not-allowed; }
.btn.danger { color: var(--crit); border-color: var(--crit-soft); }
.btn.danger.primary { background: var(--crit); border-color: var(--crit); color: var(--accent-ink); }
.row-acts { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.stack { display: grid; gap: 10px; }

/* Group header inside lists and tables (device categories). */
.grp td { background: var(--surface-2); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--faint); padding: 6px 10px; }
.grp td .grp-in { display: flex; gap: 8px; align-items: center; }
.grp td label { display: inline-flex; gap: 6px; align-items: center; cursor: pointer; }
.grp td .cnt { margin-left: auto; font-family: var(--font-mono); text-transform: none; letter-spacing: 0; }
.grp button.tw { border: 0; background: none; padding: 0; display: grid; place-items: center; color: var(--faint); }
.grp button.tw svg { transition: transform .15s; }
.grp button.tw[aria-expanded="true"] svg { transform: rotate(90deg); }
input[type="checkbox"] { accent-color: var(--accent); }

/* Chips inside tiles keep their own width. */
.axis .chip, .kpi .chip { justify-self: start; }

/* Value lists inside detail panels. */
.vals { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; font-size: 12.5px; }
.vals dt { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vals dd { margin: 0; text-align: right; font-family: var(--font-mono); white-space: nowrap; }
.vals dd.stale { color: var(--stale); }
.vals dd button { border: 0; background: none; padding: 0; font: inherit; color: inherit; text-decoration: underline dotted var(--faint); text-underline-offset: 3px; }
.vals dd button[aria-pressed="true"] { color: var(--accent); text-decoration-color: var(--accent); }

/* Device cards grid. */
.devgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.devcard { text-align: left; display: grid; gap: 8px; align-content: start; padding: 12px; cursor: pointer; font: inherit; color: inherit; }
.devcard:hover { border-color: var(--faint); }
.devcard[aria-pressed="true"] { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.devcard .hd { display: flex; gap: 8px; align-items: center; min-width: 0; }
.devcard .hd b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.devcard .big { font-family: var(--font-mono); font-size: 18px; }
.devcard .big small { font-size: 12px; color: var(--muted); margin-left: 3px; }
.sect-h { display: flex; gap: 8px; align-items: center; margin: 4px 0 -4px; }
.sect-h h2 { font-size: 13px; font-weight: 600; }
.sect-h .cnt { color: var(--faint); font-family: var(--font-mono); font-size: 12px; }

/* Grid band of the overview: power now with the direction of the flow. */
.band-now { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 0; }
.band-now > div { padding: 14px 16px; border-right: 1px solid var(--line); display: grid; gap: 4px; align-content: start; }
.band-now > div:last-child { border-right: 0; }
.band-now .val { font-family: var(--font-mono); font-size: 26px; letter-spacing: -.02em; }
.band-now .val small { font-size: 13px; color: var(--muted); margin-left: 3px; }
.band-now .dir { font-size: 12px; color: var(--muted); display: flex; gap: 6px; align-items: center; }
@media (max-width: 820px) { .band-now > div { border-right: 0; border-bottom: 1px solid var(--line); } }

/* Horizontal share bars (largest loads, balance). */
.bars { display: grid; gap: 8px; }
.bars .b { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 10px; font-size: 12.5px; }
.bars .b .t { height: 6px; border-radius: 3px; background: var(--sunken); grid-column: 1 / -1; overflow: hidden; }
.bars .b .t i { display: block; height: 100%; border-radius: 3px; }

/* Charts drawn by components/Chart.tsx. */
.chart .grid-l { stroke: var(--line); stroke-width: 1; }
.chart .zero { stroke: var(--line-2); stroke-width: 1; }
.chart .cursor { stroke: var(--faint); stroke-dasharray: 3 3; }
.chart .gap { fill: url(#hatch); opacity: .5; }
.chart-empty { padding: 30px 14px; color: var(--faint); text-align: center; }

/* Tree rows as links in the asset screen. */
.row .nm { cursor: pointer; color: inherit; }
.tree .row.pt .med { width: 16px; height: 16px; }
.tree .row.pt .med svg.i { width: 10px; height: 10px; }

/* Wizard steps. */
.wsteps { display: flex; gap: 6px; flex-wrap: wrap; font-size: 12px; color: var(--faint); }
.wsteps span { display: inline-flex; gap: 6px; align-items: center; }
.wsteps span.on { color: var(--ink); font-weight: 500; }
.wsteps span b { width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--line-2); display: grid; place-items: center; font-size: 11px; font-weight: 500; }
.wsteps span.on b { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.wsteps span.done b { background: var(--ok-soft); border-color: transparent; color: var(--ok); }

/* Location picker (Leaflet map in the node form) */
.map{height:280px;border:1px solid var(--line-2);border-radius:8px;overflow:hidden;background:var(--surface-2);z-index:0}
.map .leaflet-control-attribution{font-size:10px}
.map-pin{background:none;border:0}
.map-pin::before{content:"";position:absolute;left:3px;top:0;width:16px;height:16px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--accent);border:2px solid #fff;box-shadow:0 1px 4px rgb(0 0 0 / .45)}
.geo-results{list-style:none;margin:0;padding:0;border:1px solid var(--line-2);border-radius:8px;max-height:180px;overflow:auto}
.geo-results li + li{border-top:1px solid var(--line)}
.geo-results button{display:block;width:100%;text-align:left;background:none;border:0;padding:8px 12px;color:var(--ink)}
.geo-results button:hover,.geo-results button:focus-visible{background:var(--accent-soft)}
