html, body {
	height: 100%;
	margin: 0;
}

body {
	font: 14px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	background: #1c1c1c;
	color: #222;
}

/* twee panes naast elkaar, samen beeldvullend */
#viewer {
	display: flex;
	height: 100%;
	width: 100%;
}

#kaart-oud,
#kaart-nu {
	flex: 1 1 50%;
	min-width: 0;
	height: 100%;
	background: #e8e6e1;
}

#kaart-oud {
	border-right: 2px solid rgba(0, 0, 0, .6);
}

/* smal scherm: oud boven, 2026 onder */
@media (max-width: 700px) {
	#viewer {
		flex-direction: column;
	}

	#kaart-oud,
	#kaart-nu {
		flex: 1 1 50%;
		width: 100%;
		height: 50%;
		min-height: 0;
	}

	#kaart-oud {
		border-right: 0;
		border-bottom: 2px solid rgba(0, 0, 0, .6);
	}
}

/* keuzelijst met jaargangen en de play-knop, linksonder in de linker pane.
 * Zelfde vormgeving als het jaarlabel in de rechter pane, met een eigen
 * driehoekje omdat de systeempijl per browser anders uitvalt. */
.jaarkiezer {
	display: flex;
	align-items: center;
	gap: 6px;
}

.jaarkiezer select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	display: block;
	margin: 0;
	padding: 4px 30px 4px 11px;
	font: inherit;
	font-size: 20px;
	font-weight: 600;
	color: #222;
	border: 0;
	border-radius: 4px;
	background-color: rgba(255, 255, 255, .94);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0h10L5 6z' fill='%23222'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 11px 7px;
	box-shadow: 0 1px 5px rgba(0, 0, 0, .4);
	cursor: pointer;
}

.jaarkiezer select:focus-visible,
.speelknop:focus-visible {
	outline: 2px solid #1266d6;
	outline-offset: 2px;
}

/* play-knop: dezelfde pil als de keuzelijst, even hoog en vierkant */
.speelknop {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 4px;
	background: rgba(255, 255, 255, .94);
	box-shadow: 0 1px 5px rgba(0, 0, 0, .4);
	color: #222;
	cursor: pointer;
}

.speelknop svg {
	width: 18px;
	height: 18px;
}

/* aan-stand: kleuren omgekeerd, in hetzelfde blauw als de locatiestip */
.speelknop.aan {
	background: #1266d6;
	color: #fff;
}

/* vast label linksonder in de rechter pane */
.jaarlabel {
	background: rgba(255, 255, 255, .94);
	border-radius: 4px;
	box-shadow: 0 1px 5px rgba(0, 0, 0, .4);
	padding: 4px 11px;
	font-size: 20px;
	font-weight: 600;
	color: #222;
}

/* bronvermelding; de Leaflet-attributiebalk staat uit */
#credit {
	position: fixed;
	right: 6px;
	bottom: 4px;
	margin: 0;
	max-width: calc(100% - 12px);
	text-align: right;
	z-index: 1000;
	font-size: 11px;
	color: #fff;
	text-shadow: 0 0 3px rgba(0, 0, 0, .9), 0 0 6px rgba(0, 0, 0, .7);
	pointer-events: none;
}

#credit a {
	color: #fff;
	pointer-events: auto;
}

@media (max-width: 700px) {
	#credit {
		right: 4px;
		font-size: 10px;
		/* ruimte vrijlaten voor het jaarlabel dat linksonder in de onderste pane staat */
		max-width: calc(100% - 95px);
	}
}

/* knop 'huidige locatie', direct onder de zoomknoppen */
.knop-locatie {
	position: relative;
}

/* flex in plaats van vaste marges: op touch maakt Leaflet de knop 30 px in
 * plaats van 26 px, en dan blijft het icoon zo vanzelf gecentreerd */
.knop-locatie .leaflet-bar a {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #333;
}

.knop-locatie .leaflet-bar a svg {
	width: 16px;
	height: 16px;
}

.knop-locatie .leaflet-bar a.bezig {
	color: #1266d6;
	cursor: progress;
	animation: locatie-pulse 1s ease-in-out infinite;
}

@keyframes locatie-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: .35; }
}

.locatiemelding {
	position: absolute;
	top: 0;
	left: 34px;
	white-space: nowrap;
	background: rgba(255, 255, 255, .94);
	border-radius: 4px;
	box-shadow: 0 1px 5px rgba(0, 0, 0, .4);
	padding: 5px 9px;
	font-size: 12px;
	line-height: 16px;
	color: #222;
}

.locatiemelding.fout {
	color: #a12020;
}

.locatiemelding.let-op {
	color: #8a5b00;
}

@media (max-width: 700px) {
	.locatiemelding {
		white-space: normal;
		width: 60vw;
	}
}

/* Haarlijnen tussen de tegels wegwerken.
 * Bij een niet-gehele beeldschermschaal (Windows op 125%, een 1,5x scherm)
 * valt de rand van een tegel tussen twee fysieke pixels. De browser tekent die
 * rand dan half doorzichtig, en de lichte ondergrond schemert er als een
 * rasterlijn doorheen. Een pixel overlap laat de tegels elkaar net raken.
 * De !important is nodig omdat Leaflet de afmeting als inline stijl zet. */
.leaflet-container img.leaflet-tile {
	width: 257px !important;
	height: 257px !important;
}

/* logo rechtsboven in de rechter pane */
.gtm-logo {
	display: block;
	width: 60px;
	height: 60px;
	/* witte gloed voor contrast op donkere luchtfoto's, met een zachte donkere
	 * schaduw eromheen zodat het witte deel van het logo ook op lichte
	 * ondergrond niet wegvalt */
	filter:
		drop-shadow(0 0 1px rgba(255, 255, 255, .95))
		drop-shadow(0 0 3px rgba(255, 255, 255, .85))
		drop-shadow(0 1px 4px rgba(0, 0, 0, .35));
}

.gtm-logo img {
	display: block;
	width: 60px;
	height: 60px;
}
