.nkmap {
    --map-ink: #233b34;
    --map-muted: #52675f;
    --map-line: #d3e0d9;
    --map-surface: #fff;
    --map-accent: #215e49;
    display: flex;
    flex-direction: column;
    height: 740px;
    min-width: 0;
    background: var(--map-surface);
    color: var(--map-ink);
    border: 1px solid var(--map-line);
    border-radius: 16px;
    overflow: hidden;
    font: 14px/1.5 system-ui, sans-serif;
}
.nkmap *, .nkmap-admin * { box-sizing: border-box; }
.nkmap [hidden] { display: none !important; }
.nkmap :focus-visible, .nkmap-admin :focus-visible { outline: 2px solid #287a63; outline-offset: 2px; }
.nkmap-toolbar {
    display: flex;
    align-items: end;
    flex-wrap: wrap;
    gap: 10px;
    padding: 12px;
    background: #f7faf8;
    border-bottom: 1px solid var(--map-line);
}
.nkmap-toolbar form { display: flex; gap: 6px; flex: 1 1 250px; min-width: 0; margin: 0; }
.nkmap-toolbar input[type=search] { flex: 1; min-width: 0; }
.nkmap label { color: var(--map-ink); font-weight: 600; }
.nkmap-mode { display: grid; gap: 2px; font-size: 12px; }
.nkmap-actions, .nkmap-paging { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.nkmap-collections{display:flex;gap:6px;flex-wrap:wrap;padding:9px 12px;border-bottom:1px solid var(--map-line)}
.nkmap-collections button[aria-pressed=true]{background:#e2f0e7!important;border-color:#327657!important;font-weight:700!important}
.nkmap-confidence-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:11px}
.nkmap-confidence-legend span{display:flex;align-items:center;gap:6px}
.nkmap-key{display:inline-block;width:13px;height:13px;border-radius:50%;background:#386c57;border:1px solid #fff;flex:0 0 13px}
.nkmap-key.archaeological{border:3px solid #bd8c24}
.nkmap-key.approximate{box-shadow:0 0 0 1px #9bb9a8}
.nkmap-key.regional{background:transparent;border:2px solid #386c57}
.nkmap-key.disputed{border:3px solid #b54c67}
.nkmap button:not(.maplibregl-ctrl button):not(.maplibregl-popup-close-button),
.nkmap select, .nkmap input[type=search] {
    padding: 8px 10px;
    min-height: 40px;
    border: 1px solid var(--map-line);
    border-radius: 8px;
    font: inherit;
    background: var(--map-surface);
    color: var(--map-ink);
}
.nkmap button { cursor: pointer; }
.nkmap button:disabled { opacity: .55; cursor: default; }
.nkmap button.nkmap-primary:not(.maplibregl-ctrl button) { background: var(--map-accent); color: #fff; border-color: var(--map-accent); }
.nkmap-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(245px, 31%); flex: 1; min-height: 0; }
.nkmap-stage { position: relative; min-width: 0; min-height: 0; background: #e4ebe4; }
.nkmap-canvas { position: absolute; inset: 0; }
.nkmap-map-status {
    position: absolute;
    top: 10px;
    left: 10px;
    max-width: calc(100% - 70px);
    padding: 5px 9px;
    margin: 0;
    border-radius: 6px;
    background: var(--map-surface);
    box-shadow: 0 1px 6px #203b331a;
    pointer-events: none;
    font-size: 12px;
}
.nkmap-sidebar { min-width: 0; overflow: auto; overscroll-behavior: contain; border-left: 1px solid var(--map-line); }
.nkmap-sidebar > * { padding: 12px; border-bottom: 1px solid var(--map-line); }
.nkmap-filter summary, .nkmap-illustration summary { cursor: pointer; font-weight: 650; }
.nkmap-filter p, .nkmap-layer-panel p { margin: 8px 0; font-size: 13px; color: var(--map-muted); }
.nkmap-checks { display: grid; gap: 8px; margin: 10px 0; }
.nkmap-checks label, .nkmap-toggles label { display: flex; gap: 6px; align-items: center; }
.nkmap input[type=checkbox] { appearance: auto; width: 16px; height: 16px; flex: 0 0 16px; accent-color: var(--map-accent); }
.nkmap-toggles { display: flex; gap: 8px 12px; flex-wrap: wrap; font-size: 12px; }
.nkmap-dot { display: inline-block; width: 10px; height: 10px; flex: 0 0 10px; border-radius: 50%; background: var(--dot, #5d6775); }
.nkmap-result-status { margin: 0 0 8px; color: var(--map-muted); }
.nkmap-results ol { list-style: none; margin: 0; padding: 0; }
.nkmap-results li { border-top: 1px solid var(--map-line); }
.nkmap-results li button:not(.maplibregl-ctrl button) {
    border: 0; display: grid; text-align: left; gap: 3px; width: 100%; padding: 9px 5px;
    overflow-wrap: anywhere;
}
.nkmap-results li button:hover { background: #eef6f1 !important; }
.nkmap-results small, .nkmap-detail dt { color: var(--map-muted); }
.nkmap-paging { justify-content: space-between; margin-top: 10px; }
.nkmap-detail h2 { font: 700 19px/1.3 system-ui, sans-serif; color: var(--map-ink); margin: 12px 0 8px; }
.nkmap-detail p, .nkmap-detail dd { margin: 5px 0 10px; overflow-wrap: anywhere; }
.nkmap-detail dt { font-size: 12px; }
.nkmap a { color: #205d49; text-decoration: underline; overflow-wrap: anywhere; }
.nkmap .maplibregl-popup-content { color: var(--map-ink); padding: 14px 24px 14px 14px; max-width: 260px; }
.nkmap .maplibregl-popup-content strong { display: block; }
.nkmap .maplibregl-ctrl-attrib { max-width: calc(100vw - 24px); }
.nkmap .maplibregl-ctrl-attrib a { color: #233b34; }
.nkmap-explorer { height: clamp(600px, 82dvh, 1050px); }
.nkmap:fullscreen, .nkmap.nkmap-full {
    width: 100%; height: 100%; height: 100dvh; border: 0; border-radius: 0;
}
.nkmap.nkmap-full { position: fixed; inset: 0; z-index: 2147483000; }
body.nkmap-lock { overflow: hidden !important; }
.nkmap-illustration { margin-top: 12px; }
.nkmap-illustration > summary { padding: 10px 0; }
.nkmap-page { margin: 12px 0 32px; }
body:has([data-place-map]) .nk-reader-tools,
body:has([data-place-map]) .nk-stats-float-button,
body:has([data-place-map]) .mtpl-btn,
body:has([data-place-map]) .ui-theme-settings,
body:has([data-place-map]) #TooltipDemo { display: none !important; }
body:has(.nkmap-page) #nk-main-content>.app-page-title { display:none!important; }
.nkmap-page h1{font:700 28px/1.3 system-ui,sans-serif;margin:12px 0 18px;color:#244b3a}
.nkmap-sr { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.nkmap-admin { max-width: 1200px; margin-inline: auto; }
.nkmap-admin nav { display: flex; gap: 12px; flex-wrap: wrap; margin: 10px 0 20px; }
.nkmap-admin .nkmap-admin-card { padding: 18px; margin: 14px 0; border-radius: 12px; border: 1px solid #d3e0d9; background: #fff; color: #233b34; }
.nkmap-admin label { display: grid; gap: 4px; margin-bottom: 10px; }
.nkmap-admin input:not([type=checkbox]), .nkmap-admin select, .nkmap-admin textarea { width: 100%; min-width: 0; padding: 8px; border: 1px solid #b8cbc1; border-radius: 6px; }
.nkmap-admin-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px 14px; }
.nkmap-admin [data-map-editor-canvas] { height: 360px; margin: 10px 0; background: #e4ebe4; border-radius: 8px; overflow: hidden; }
.nkmap-admin-table { overflow: auto; }
.nkmap-admin table { width: 100%; border-collapse: collapse; }
.nkmap-admin td, .nkmap-admin th { border-bottom: 1px solid #d3e0d9; padding: 8px; text-align: left; }
.nkmap-admin button { padding: 8px 14px; border: 1px solid #bfd1c6; border-radius: 8px; }
.nkmap-admin .nkmap-admin-check { display: flex; align-items: center; }
@media (max-width: 760px) {
    .nkmap { height: auto; }
    .nkmap-body { grid-template-columns: minmax(0, 1fr); grid-template-rows: clamp(320px, 54dvh, 540px) auto; }
    .nkmap-sidebar { border-left: 0; border-top: 1px solid var(--map-line); max-height: 410px; }
    .nkmap:fullscreen .nkmap-body, .nkmap.nkmap-full .nkmap-body { grid-template-rows: minmax(125px, 1fr) minmax(110px, 39%); }
    .nkmap:fullscreen .nkmap-sidebar, .nkmap.nkmap-full .nkmap-sidebar { max-height: none; }
    .nkmap-toolbar { align-items: center; padding: 8px; gap: 5px; }
    .nkmap-collections{flex-wrap:nowrap;overflow-x:auto;padding:6px 8px;flex-shrink:0}
    .nkmap-collections button{white-space:nowrap}
    .nkmap-toolbar form { flex-basis: 100%; }
    .nkmap button:not(.maplibregl-ctrl button):not(.maplibregl-popup-close-button), .nkmap select { min-height: 36px; padding: 6px 7px; }
    .nkmap-admin-grid { grid-template-columns: minmax(0, 1fr); }
}
