#researchMapView { margin-bottom:28px; }
.research-map { font:11px/1.6 Verdana,sans-serif; color:var(--ink); }
.research-map h2,.research-map h3 { font-family:inherit; letter-spacing:0; }
.research-map button,.research-map select { font:inherit; letter-spacing:0; }
.map-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:12px; }
.map-toolbar h2 { font-size:14px; font-weight:400; margin:0; }
.map-navigation { display:flex; align-items:center; gap:10px; min-width:0; max-width:100%; }
.map-navigation label { color:var(--muted); }
.map-navigation select { width:310px; max-width:100%; min-width:0; border:1px solid var(--rule); background:#fff; border-radius:5px; padding:7px 28px 7px 9px; color:var(--ink); }
.map-reset { display:inline-flex; align-items:center; justify-content:center; flex:0 0 32px; width:32px; height:32px; padding:7px; background:#f2f4f5; color:var(--ink); border:0; border-radius:50%; cursor:pointer; box-shadow:none; }
.map-reset[hidden] { display:none; }
.map-reset:hover { background:#e5eaee; }
.map-reset svg { width:14px; height:14px; }
.map-breadcrumb { display:flex; flex-wrap:wrap; gap:5px 9px; align-items:baseline; min-height:30px; padding:0 0 10px; margin-bottom:12px; border-bottom:1px solid var(--rule); font-size:10px; }
.map-breadcrumb button { background:none; border:0; color:var(--link); cursor:pointer; padding:3px 0; }
.map-breadcrumb button:hover { text-decoration:underline; }
.map-breadcrumb [aria-current] { color:var(--ink); overflow-wrap:anywhere; }
.map-breadcrumb > span[aria-hidden] { color:#8a96a0; }
.map-workspace { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(330px,1fr); gap:24px; align-items:start; }
.map-workspace[data-layout="outline"] { grid-template-columns:clamp(260px,28%,360px) minmax(0,1fr); }
.map-explorer,.map-results { min-width:0; }
.map-tree-toolbar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px 10px; padding:0 0 6px; margin-bottom:12px; border-bottom:1px solid var(--rule); color:var(--muted); }
.map-tree-toolbar > div { display:flex; gap:6px; flex-wrap:wrap; }
.map-perspective-note { margin:0 0 12px; color:var(--muted); font-size:10px; }
.map-layout-switch { border-bottom:1px solid var(--rule); }
.map-layout-switch button { padding:5px 8px; min-height:30px; border:0; border-bottom:2px solid transparent; color:var(--muted); background:transparent; box-shadow:none; font-weight:400; }
.map-layout-switch button[aria-pressed="true"] { border-bottom-color:#315f80; color:var(--ink); }
.map-layout-switch button:hover { background:#edf2f6; }
.map-reset:disabled { opacity:.4; cursor:default; }
.map-bundle-view { min-width:0; padding:10px 0 14px; }
.map-bundle-view[hidden] { display:none; }
.map-bundle-key { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; font-size:10px; color:var(--muted); }
.map-bundle-key > span { display:inline-flex; align-items:center; gap:6px; }
.map-bundle-key > span::before { content:""; width:20px; border-top:1px solid #54758b; }
.map-bundle-key .bundle-key-paper::before { border-top:1px dashed #a56870; }
.map-bundle-zoom { display:flex; gap:5px; margin-left:auto; }
.map-bundle-zoom .map-reset { flex-basis:28px; width:28px; height:28px; padding:6px; }
.map-bundle-inspector { display:flex; flex-direction:column; justify-content:center; height:66px; padding:6px 0; box-sizing:border-box; overflow:auto; }
.map-bundle-inspector > span { display:block; overflow-wrap:anywhere; }
.map-bundle-inspector .map-count { margin:0; }
.map-bundle-inspector > span > .map-count { margin-left:8px; }
.map-bundle-scroll { max-width:100%; max-height:1050px; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.map-bundle-scroll:focus-visible { outline:1px solid #315f80; outline-offset:-1px; }
.map-bundle-svg { display:block; max-width:none; flex:none; }
.bundle-edge { fill:none; stroke:#648298; stroke-width:.9; opacity:.36; pointer-events:none; }
.bundle-edge-paper { stroke:#a56870; stroke-dasharray:3 3; }
.bundle-edge.is-emphasised { stroke:#24668e; stroke-width:1.8; opacity:.9; }
.bundle-edge-paper.is-emphasised { stroke:#a14d61; }
.bundle-edge.is-muted { opacity:.06; }
.bundle-sectors path { fill:#91aabc; }
.bundle-sectors [data-tone="rose"] { fill:#bc939e; }
.bundle-sectors [data-tone="gold"] { fill:#b8a05c; }
.bundle-node { cursor:pointer; outline:none; }
.bundle-hit { fill:transparent; stroke:none; }
.bundle-node circle { fill:#fff; stroke:#6b8495; stroke-width:1; }
.bundle-node text { font:11px Verdana,sans-serif; fill:#293d4c; }
.bundle-node.is-muted circle { stroke:#a5b2ba; }
.bundle-node.is-muted text { fill:#75828b; }
.bundle-node.is-related text { fill:#245f83; }
.bundle-node.is-active circle,.bundle-node[aria-pressed="true"] circle { fill:#24668e; stroke:#24668e; stroke-width:2; }
.bundle-node.is-active text,.bundle-node[aria-pressed="true"] text { fill:#164e72; text-decoration:underline; text-underline-offset:3px; }
.bundle-node:focus-visible circle { stroke:#173e5a; stroke-width:3; }
.bundle-node:focus-visible text { text-decoration:underline; }
.map-bundle-groups { display:flex; flex-wrap:wrap; gap:3px 14px; margin:10px 0 12px; }
.map-bundle-groups button { display:inline-flex; align-items:center; gap:6px; padding:4px 0; color:var(--link); font-size:10px; background:none; border:0; box-shadow:none; cursor:pointer; }
.map-bundle-groups button:hover,.map-bundle-groups button[aria-pressed="true"] { text-decoration:underline; text-underline-offset:3px; }
.bundle-sector-key { width:9px; height:3px; background:#91aabc; }
.bundle-sector-key[data-tone="rose"] { background:#bc939e; }
.bundle-sector-key[data-tone="gold"] { background:#b8a05c; }
.map-bundle-relations { border-top:1px solid var(--rule); padding:8px 0 4px; }
.map-bundle-relations summary { color:var(--link); cursor:pointer; }
.map-bundle-relations ul { padding-left:16px; margin:10px 0; max-height:280px; overflow:auto; scrollbar-width:thin; }
.map-bundle-relations li { margin:5px 0; overflow-wrap:anywhere; }
.map-bundle-relations button { color:var(--link); background:none; border:0; padding:2px 0; text-align:left; cursor:pointer; }
.map-bundle-relations button:hover { text-decoration:underline; }
.map-bundle-relations .map-relation-type { display:block; }
.map-tangle-view { min-width:0; padding:10px 0 14px; }
.map-tangle-view[hidden] { display:none; }
.map-tangle-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; font-size:10px; color:var(--muted); }
.map-tangle-toolbar > div { display:flex; gap:5px; }
.map-tangle-toolbar .map-reset { width:28px; height:28px; flex-basis:28px; padding:6px; }
.map-tangle-inspector { display:flex; flex-direction:column; justify-content:center; height:72px; overflow:auto; padding:7px 0; box-sizing:border-box; }
.map-tangle-inspector > span { display:block; overflow-wrap:anywhere; }
.map-tangle-inspector .map-count { margin:0; }
.map-tangle-inspector > span > .map-count { margin-left:8px; }
.map-tangle-scroll { max-width:100%; max-height:650px; overflow:auto; scrollbar-width:thin; overscroll-behavior:contain; }
.map-tangle-scroll:focus-visible { outline:1px solid #315f80; outline-offset:-1px; }
.map-tangle-svg { display:block; max-width:none; }
.tangle-label { font:11px Verdana,sans-serif; fill:#293d4c; paint-order:stroke; stroke:white; stroke-width:3px; stroke-linejoin:round; }
.tangle-section-label { font:10px Verdana,sans-serif; fill:#677680; }
.tangle-divider { stroke:#d6dfe5; stroke-width:1px; }
.tangle-link { pointer-events:none; }
.tangle-link path { fill:none; stroke-linejoin:round; }
.tangle-link-halo { stroke:#fff; stroke-width:4; }
.tangle-link-stroke { stroke:#90a2af; stroke-width:1.2; }
.tangle-link.is-focus .tangle-link-stroke { stroke:#236c99; stroke-width:2; }
.tangle-link.is-muted .tangle-link-stroke { stroke:#dde4e9; }
.tangle-node { cursor:pointer; outline:none; }
.tangle-hit { fill:transparent; stroke:none; }
.tangle-mark { fill:none; stroke:#697e8d; stroke-width:7; stroke-linecap:round; }
.tangle-mark-core { fill:none; stroke:white; stroke-width:3; stroke-linecap:round; }
.tangle-node.is-muted .tangle-label { fill:#7b8892; }
.tangle-node.is-muted .tangle-mark { stroke:#bdc8d0; }
.tangle-node.is-focus .tangle-label { fill:#236487; }
.tangle-node.is-connected .tangle-mark { stroke:#315f80; stroke-dasharray:2 3; }
.tangle-node.is-current .tangle-mark { stroke:#175d89; stroke-width:9; }
.tangle-node.is-current .tangle-label { fill:#174e70; text-decoration:underline; text-underline-offset:3px; }
.tangle-node:focus-visible .tangle-mark { stroke:#173e5a; stroke-width:10; }
.tangle-node:focus-visible .tangle-label { text-decoration:underline; text-underline-offset:3px; }
.map-tangle-relations { border-top:1px solid var(--rule); padding:10px 0 4px; margin-top:12px; }
.map-tangle-relations summary { color:var(--link); cursor:pointer; }
.map-tangle-relations ul { padding-left:16px; margin:10px 0; max-height:280px; overflow:auto; scrollbar-width:thin; }
.map-tangle-relations li { margin:5px 0; overflow-wrap:anywhere; }
.map-tangle-relations button { color:var(--link); background:none; border:0; padding:2px 0; text-align:left; cursor:pointer; }
.map-tangle-relations button:hover { text-decoration:underline; }
.map-tangle-relations .map-relation-type { display:block; }
.map-tangle-credit { font-size:9px; color:var(--muted); margin:10px 0 0; }
.map-tree-toolbar .map-reset { flex-basis:28px; width:28px; height:28px; padding:6px; }
.map-results-shortcut { display:none; align-items:center; gap:5px; padding:0 6px; border:0; background:transparent; color:var(--link); cursor:pointer; }
.map-results-shortcut svg { width:12px; height:12px; }
.map-results-shortcut:hover { background:#edf2f6; }
.map-tree { padding:8px 0 12px; }
.map-tree ul { list-style:none; margin:0; }
.map-tree-roots { padding:0; }
.map-tree .map-tree-children { margin:0 0 5px 10px; padding:2px 0 3px 8px; border-left:1px solid #cbd4dc; }
.map-tree-children[hidden],.map-desktop[hidden] { display:none !important; }
.map-tree-row { display:flex; align-items:stretch; min-width:0; border-radius:3px; }
.map-tree-row:hover { background:#f0f3f5; }
.map-tree-row[data-selected] { background:#e7eff7; box-shadow:inset 2px 0 #226494; }
.map-tree-toggle,.map-tree-select { background:transparent; border:0; border-radius:0; color:var(--ink); padding:0; box-shadow:none; transform:none; cursor:pointer; min-height:30px; }
.map-tree-toggle { display:flex; align-items:center; justify-content:center; flex:0 0 26px; width:26px; color:#576b7b; }
.map-tree-toggle svg { width:13px; height:13px; transition:transform .15s; pointer-events:none; }
.map-tree-toggle[aria-expanded="true"] svg { transform:rotate(90deg); }
.map-tree-toggle:hover { background:#dde7ef; }
.map-tree-select { flex:1; min-width:0; display:flex; align-items:baseline; justify-content:space-between; gap:10px; text-align:left; padding:5px 8px 5px 2px; }
.map-tree-select > span:first-child { min-width:0; overflow-wrap:anywhere; }
.map-tree-count { color:#556574; font-size:10px; font-variant-numeric:tabular-nums; flex-shrink:0; }
.map-tree-leaf { flex:0 0 26px; width:26px; position:relative; }
.map-tree-leaf::after { content:""; position:absolute; width:6px; height:1px; background:#9aaebd; left:10px; top:15px; }
.map-tree-perspective { margin-bottom:5px; }
.map-tree-perspective > .map-tree-row { background:#f1f3f5; }
.map-tree-perspective > .map-tree-row[data-selected] { background:#e7eff7; }
.map-tree-select:focus-visible,.map-tree-toggle:focus-visible { outline:2px solid #226494; outline-offset:-2px; border-radius:3px; }
.map-desktop { max-width:360px; margin-top:14px; padding-top:12px; border-top:1px solid var(--rule); }
.map-desktop h3 { margin:0 0 4px; font-size:11px; font-weight:400; }
.map-set-key { margin-top:4px; }
.map-set-row { display:grid; grid-template-columns:34px minmax(0,1fr) 3ch; align-items:center; gap:8px; width:100%; min-height:34px; padding:6px 4px; border:0; border-bottom:1px solid var(--rule); border-radius:0; background:transparent; color:var(--ink); text-align:left; cursor:pointer; box-shadow:none; }
.map-set-row:hover { background:#edf2f6; box-shadow:none; }
.map-set-row:focus-visible { outline:2px solid #24628a; outline-offset:-2px; }
.map-set-row[aria-pressed="true"] { background:#f0f4f7; }
.map-set-row[aria-pressed="true"]:hover { background:#e5edf3; }
.map-set-mark { justify-self:center; display:flex; align-items:center; justify-content:center; width:22px; height:22px; border:1px solid #7f9ab0; border-radius:50%; background:#eaf1f7; font-size:10px; }
.map-rose .map-set-mark { border:1px dashed #b2848b; background:#f6edef; }
.map-intersection .map-set-mark { width:auto; height:auto; border:0; border-radius:0; background:transparent; color:#24628a; }
.map-set-name { min-width:0; overflow-wrap:anywhere; }
.map-set-count { justify-self:end; font-variant-numeric:tabular-nums; color:var(--muted); }
.map-set-captions { pointer-events:none; }
.map-results { border-top:2px solid #a56870; padding-top:12px; scroll-margin-top:16px; }
.map-result-head { display:flex; justify-content:space-between; align-items:start; gap:12px; padding-bottom:8px; }
.map-result-head h3 { font-size:13px; font-weight:400; margin:0; overflow-wrap:anywhere; }
.map-result-head h3:focus { outline:none; }
.map-count { color:var(--muted); font-size:10px; margin:4px 0 0; }
.map-definition { color:var(--muted); margin:0 0 12px; }
.map-svg { display:block; width:100%; max-width:280px; height:auto; margin:0 auto; overflow:visible; }
.map-region { cursor:pointer; }
.map-boundary { stroke-width:1; vector-effect:non-scaling-stroke; transition:fill .15s,stroke .15s; }
.map-blue .map-boundary { fill:#eaf1f7; stroke:#7f9ab0; }
.map-rose .map-boundary { fill:#f6edef; stroke:#b2848b; stroke-dasharray:5 3; }
.map-gold .map-boundary { fill:#f8f4e5; stroke:#ac984e; }
.map-region:hover .map-boundary { stroke:#285e82; stroke-width:2; }
.map-region:focus { outline:none; }
.map-region:focus-visible .map-boundary { stroke:#145e8c; stroke-width:3; }
.map-label { font:11px Verdana,sans-serif; fill:#263b49; pointer-events:none; }
.map-number { font:11px Verdana,sans-serif; fill:#526373; pointer-events:none; }
.map-region-note { font:10px Verdana,sans-serif; fill:#526373; pointer-events:none; }
.map-footnote { color:var(--muted); font-size:10px; margin:10px 0 16px; }
.map-broader h3,.map-overlap-controls h3,.map-section-title { font-size:11px; font-weight:600; margin:0 0 6px; }
.map-broader > div { display:flex; flex-wrap:wrap; gap:10px 18px; }
.map-broader,.map-overlap-controls { margin-bottom:16px; }
.map-broader:empty,.map-overlap-controls:empty,.map-concept-note:empty { display:none; }
.map-parent { display:inline-flex; flex-direction:column; }
.map-relation-type { font-size:9px; color:var(--muted); }
.map-concept { display:inline-flex; align-items:baseline; justify-content:space-between; gap:8px; border:0; border-bottom:1px solid #c3d1dd; border-radius:0; background:transparent; color:var(--link); cursor:pointer; padding:5px 0; min-height:30px; text-align:left; box-shadow:none; max-width:100%; }
.map-concept-name { overflow-wrap:anywhere; min-width:0; }
.map-button-count { flex-shrink:0; color:var(--muted); font-variant-numeric:tabular-nums; }
.map-concept:hover { background:#edf2f6; }
.map-concept[aria-pressed="true"] { border-bottom:2px solid #175f8b; color:#164a6b; }
.map-concept-note { padding:10px 14px; border-left:2px solid #a08244; background:#fbf9f1; margin:14px 0 18px; }
.map-concept-note p { margin:0 0 5px; }
.map-concept-note a { color:var(--link); text-decoration:underline; }
.map-facets { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 20px; }
.map-workspace[data-layout="outline"] .map-facets { grid-template-columns:minmax(0,1fr); }
.map-facets > h3,.map-facets > p { grid-column:1/-1; margin:0; }
.map-facet { border-top:1px solid var(--rule); padding:8px 0; min-width:0; }
.map-facet summary { display:flex; gap:10px; align-items:baseline; cursor:pointer; color:var(--ink); min-height:30px; list-style:none; }
.map-facet summary::before { content:"+"; color:var(--link); }
.map-facet[open] summary::before { content:"−"; }
.map-facet summary::-webkit-details-marker { display:none; }
.map-facet summary > span { margin-left:auto; color:var(--muted); font-size:10px; flex-shrink:0; white-space:nowrap; }
.map-facet-options { display:flex; flex-wrap:wrap; align-items:baseline; gap:3px 12px; padding-bottom:6px; }
.map-evidence { border-top:1px solid var(--rule); margin-top:20px; padding-top:10px; }
.map-evidence summary { min-height:32px; cursor:pointer; color:var(--link); }
.map-evidence p { margin:8px 0; }
.map-evidence ul { padding-left:18px; margin:12px 0; }
.map-evidence li { margin-bottom:12px; }
.map-evidence a { color:var(--link); text-decoration:underline; text-underline-offset:2px; }
#mapPublicationList { display:block; margin:0; padding:0; list-style:none; }
#mapPublicationList .publication-entry { padding:12px 0; }
.map-mobile { display:none; }
@media screen {
  .map-tree { max-height:640px; overflow-y:auto; scrollbar-width:thin; scrollbar-gutter:stable; padding-right:5px; }
}
@media (max-width:1000px) {
  .map-workspace { grid-template-columns:minmax(0,1fr); gap:12px; }
  .map-results { margin-bottom:12px; }
  .map-connections:empty,.map-facets:empty { display:none; }
  .map-results-shortcut { display:inline-flex; }
}
@media (max-width:760px) {
  .map-workspace[data-layout="outline"] { grid-template-columns:minmax(0,1fr); }
  .map-tree { max-height:420px; }
}
@media screen and (max-width:600px) {
  .map-layout-switch button { padding:5px 4px; font-size:10px; }
  .map-bundle-scroll { max-height:540px; }
  .map-bundle-key { gap:6px 10px; }
  .map-bundle-relations ul { max-height:none; }
  .map-tangle-relations ul { max-height:none; }
  .map-tangle-scroll { max-height:520px; }
  .map-navigation { width:100%; }
  .map-navigation select { flex:1; width:100%; }
  .map-navigation label { font-size:10px; }
  .map-desktop { display:block; }
  .map-tree .map-tree-children { margin-left:10px; padding-left:8px; }
  .map-tree-toggle,.map-tree-select { min-height:34px; }
  .map-tree-toggle,.map-tree-leaf { flex-basis:24px; width:24px; }
  .map-mobile { display:block; }
  .map-mobile-root { padding:8px 0 12px; border-bottom:1px solid var(--rule); }
  .map-mobile-items { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 16px; padding-top:8px; }
  .map-mobile-item { min-width:0; }
  .map-mobile-item > .map-concept { width:100%; min-height:48px; }
  .map-mobile-item details { padding:6px 0 6px 8px; border-left:1px solid #b9cbd8; }
  .map-mobile-item summary { color:var(--muted); cursor:pointer; font-size:10px; min-height:32px; }
  .map-mobile-item details .map-concept { width:100%; min-height:38px; }
  .map-facets { gap:10px 16px; }
  .map-facet-options .map-concept { min-height:36px; }
  .publication-control-table { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; }
  .publication-switcher { flex-wrap:wrap; min-width:0; max-width:100%; }
  .publication-search.is-open { grid-column:1/-1; width:100%; }
}
@media (prefers-reduced-motion:reduce) { .map-boundary { transition:none; } }
@media (prefers-reduced-motion:reduce) { .map-tree-toggle svg { transition:none; } }
@media print {
  .map-navigation,.map-breadcrumb,.map-facets,.map-reset,.map-mobile { display:none; }
  .map-workspace { display:block; }
  .map-desktop { display:block; }
  .map-results { break-before:page; }
  .map-bundle-zoom { display:none; }
  .map-bundle-scroll { overflow:visible; max-height:none; }
  .map-bundle-svg { max-width:100%; height:auto; }
  .map-tangle-toolbar { display:none; }
  .map-tangle-scroll { max-height:none; overflow:visible; }
  .map-tangle-svg { max-width:100%; height:auto; }
}

.map-intersection .map-boundary { fill:#dee8f0; stroke:#24628a; stroke-width:2.5; }
.map-mobile-intersection { padding:12px; background:#edf3f7; border-left:2px solid #24628a; margin:10px 0; overflow-wrap:anywhere; }


.map-connections { padding:0 0 16px; }
.map-connections:empty { display:none; }
.map-connections h3 { font-size:11px; font-weight:600; margin:0 0 8px; }
.map-connections ul { margin:0; padding-left:16px; }
.map-connections li { margin:6px 0; }
.map-connection-kind { color:#73565c; font-style:italic; }
.map-connections a,.map-connection-filter { color:var(--link); text-decoration:underline; text-underline-offset:2px; }
.map-connection-filter { border:0; background:none; padding:3px 0; cursor:pointer; }
