        html, body {
            height: 100%;
        }
        body {
            min-height: 100%;
        }

        .aett-page-theme-toggle {
            position: fixed;
            top: 6.25rem;
            right: 1rem;
            z-index: 100;
            display: inline-flex !important;
            align-items: center;
            justify-content: center;
            width: 42px !important;
            height: 42px !important;
            min-width: 42px !important;
            min-height: 42px !important;
            padding: 0 !important;
            border: 1px solid var(--k-border, #d7dde3) !important;
            border-radius: 50% !important;
            box-shadow: 0 0.35rem 1rem rgba(15, 23, 42, 0.16);
        }
        .aett-page-theme-icon {
            display: block;
            width: 22px;
            height: 22px;
        }
        .aett-page-theme-icon-light {
            display: none;
        }
        html[data-theme="dark"] .aett-page-theme-icon-dark {
            display: none;
        }
        html[data-theme="dark"] .aett-page-theme-icon-light {
            display: block;
        }
        @media (max-width: 720px) {
            .aett-page-theme-toggle {
                top: 5.5rem;
                right: 0.75rem;
            }
        }

.aett-map-page { padding: 1rem; }
.aett-map-panel { overflow: hidden; }
.aett-map-subtitle { font-size: .9rem; opacity: .75; margin-top: .3rem; }
#placesMap { height:65vh; height:65dvh; min-height:360px; isolation:isolate; z-index:0; background:#e5e8e4; }
.aett-map-hint { padding:.6rem 1rem; margin:0; font-size:.85rem; opacity:.75; }
.aett-map-marker { background:transparent; border:0; }
.aett-map-marker svg { width:30px; height:38px; filter:drop-shadow(0 2px 2px #0005); }
.aett-map-marker:focus-visible { outline:3px solid #252525; outline-offset:3px; border-radius:50%; }
.aett-map-modal { z-index:1100; }
.aett-map-modal .k-modal-card { display:flex; flex-direction:column; max-height:calc(100vh - 36px); max-height:calc(100dvh - 36px); }
.aett-map-modal .k-modal-head { flex-shrink:0; align-items:flex-start; }
.aett-map-modal .k-modal-head .k-title { margin:0; overflow-wrap:anywhere; }
.aett-map-modal .k-modal-head button { flex-shrink:0; }
.aett-map-modal .k-modal-body { overflow-y:auto; min-height:0; overscroll-behavior:contain; line-height:1.5; }
.aett-map-popup h3 { margin:0 0 .35rem; font-size:1rem; }
.aett-map-popup section + section { border-top:1px solid var(--dialog-border); padding-top:1rem; margin-top:1rem; }
.aett-map-popup ul { padding-left:1.2rem; margin:0; }
.aett-map-popup li { margin-bottom:1rem; }
.aett-map-popup li:last-child { margin-bottom:0; }
.aett-map-popup .event-date { display:block; }
.aett-map-popup em { font-style:italic; }
@media(max-width:600px) { .aett-map-page { padding:.65rem; } #placesMap { min-height:320px; } .aett-map-toolbar label { width:100%; } }

.aett-map-heading { min-width:0; }
.aett-map-place-subtitle { font-family:inherit; font-size:.95rem; color:var(--muted); font-weight:400; margin-top:.3rem; margin-bottom:.65rem; }
.aett-map-modal .k-modal-head button { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; padding:0; border-radius:50%; }
.aett-map-popup ul { padding:0; list-style:none; }
.aett-map-popup li { display:flex; gap:.65rem; align-items:flex-start; }
.aett-map-event-icon { display:inline-flex; flex:0 0 24px; padding-top:.15rem; }
.aett-map-event-icon svg { width:24px; height:24px; }
.aett-map-event-details { min-width:0; overflow-wrap:anywhere; }
.aett-map-story { margin:.2rem 0 0; }
.aett-map-person-link { display:inline-flex; align-items:center; gap:.4rem; vertical-align:middle; max-width:100%; margin:.15rem 0; }
.aett-map-person-name { min-width:0; overflow-wrap:anywhere; }
.aett-map-person-thumbnail { position:relative; display:inline-flex; align-items:center; justify-content:center; flex:0 0 40px; width:40px; height:40px; overflow:hidden; border:1px solid var(--k-border,#d7dde3); border-radius:4px; background:var(--dialog-bg,#fff); box-sizing:border-box; }
.aett-map-person-thumbnail > img { display:block; width:100%; height:100%; object-fit:contain; }
.aett-map-person-has-crop > img:not(.aett-map-person-watermark) { position:absolute; max-width:none; max-height:none; object-fit:fill; }
.aett-map-person-thumbnail > .aett-map-person-watermark { position:absolute; right:2px; bottom:2px; width:28%; height:auto; max-height:30%; opacity:.65; pointer-events:none; }
.aett-map-description, .aett-map-source p { margin:.5rem 0 0; white-space:pre-wrap; }
.aett-map-source { margin-top:.5rem; font-size:.9em; }
.aett-map-source summary { cursor:pointer; }

.aett-map-viewport { position:relative; isolation:isolate; }
.aett-map-controls { position:absolute; top:10px; right:10px; z-index:600; display:flex; gap:.45rem; padding:.3rem; border-radius:999px; background:rgba(255,255,255,.16); box-shadow:0 .35rem 1rem rgba(15,23,42,.05); backdrop-filter:blur(2px); }
.aett-map-controls .aett-map-control-button { width:40px; height:40px; min-width:40px; padding:0; margin:0; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; flex:0 0 40px; box-sizing:border-box; border:1px solid var(--k-border,#d7dde3); background:rgba(255,255,255,.36); color:#b60000; cursor:pointer; }
.aett-map-control-button svg { width:22px; height:22px; }
.aett-map-controls .aett-map-control-button:hover, .aett-map-controls .is-active { background:rgba(243,246,249,.85); }
.aett-map-control-button.has-filter { box-shadow:inset 0 0 0 2px #b60000; }
.aett-map-control-button:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.aett-map-filter-panel { position:absolute; top:68px; right:10px; z-index:610; width:min(340px,calc(100% - 20px)); box-sizing:border-box; padding:1rem; border:1px solid var(--dialog-border,#d7dde3); border-radius:14px; background:var(--dialog-bg,#fff); color:var(--text,#25303c); box-shadow:0 .5rem 1.5rem #0002; }
.aett-map-filter-panel[hidden] { display:none; }
.aett-map-filter-panel label { display:block; margin-bottom:.4rem; }
.aett-map-filter-panel input { width:100%; box-sizing:border-box; padding:.65rem; border:1px solid var(--k-border,#d7dde3); border-radius:.5rem; font:inherit; background:transparent; color:inherit; }
.aett-map-filter-actions { display:flex; justify-content:space-between; margin-top:.5rem; }
#mapFilterStatus { font-size:.85rem; margin-top:.4rem; }
.aett-map-watermark { position:absolute; top:10px; left:10px; z-index:500; width:clamp(48px,9%,90px); height:auto; max-height:90px; object-fit:contain; pointer-events:none; user-select:none; }
#placesMap .leaflet-bottom.leaflet-right { bottom:10px; right:10px; }
#placesMap .leaflet-control-attribution { margin:0; }
.aett-map-viewport:fullscreen, .aett-map-viewport.is-fullscreen { width:100%; height:100vh; height:100dvh; background:var(--dialog-bg,#fff); }
.aett-map-viewport.is-fullscreen { position:fixed; inset:0; z-index:2000; }
.aett-map-viewport:fullscreen #placesMap, .aett-map-viewport.is-fullscreen #placesMap { width:100%; height:100%; min-height:0; }
body.aett-map-fullscreen { overflow:hidden; }
html[data-theme="dark"] .aett-map-controls { background:rgba(30,35,42,.35); }
html[data-theme="dark"] .aett-map-control-button { background:rgba(30,35,42,.75); color:#ffb4b4; }
