.academic-sidebar { position: fixed; top: 110px; left: max(var(--ui-gutter), calc((100vw - var(--ui-width)) / 2)); width: 250px; display: grid; gap: 18px; min-width: 0; max-height: calc(100dvh - 126px); overflow-y: auto; scrollbar-width: thin; overscroll-behavior: contain; }
.academic-content { grid-column: 2; }
.academic-sidebar .academic-profile { position: static; }
.visitor-map {
    position: relative; padding: 16px;
    border: 1px solid var(--ui-line); border-radius: 10px;
    background: var(--ui-surface); box-shadow: 0 2px 8px rgb(32 57 88 / 3%);
}
.visitor-map h2 { font-size: 14px; font-weight: 600; line-height: 1.5; }
.visitor-map h2 > span { margin-left: 6px; color: #788496; font-size: 10px; font-weight: 400; }
.visitor-map-summary { margin-top: 4px !important; color: #66717e; font-size: 11px; font-variant-numeric: tabular-nums; }
.visitor-map-figure { margin: 16px 0 0; }
.visitor-map-figure figcaption { display: flex; justify-content: space-between; gap: 8px; font-size: 11px; color: #435267; }
.visitor-map-figure figcaption > span:last-child { color: #66717e; font-variant-numeric: tabular-nums; }
.visitor-map-canvas { aspect-ratio: 240 / 160; display: grid; align-items: center; }
.visitor-map-world { padding-top: 13px; border-top: 1px solid var(--ui-line); }
.visitor-map-world .visitor-map-canvas { aspect-ratio: 240 / 125; }
.visitor-map-canvas svg { display: block; width: 100%; height: auto; overflow: visible; }
.visitor-map-region { stroke: #fff; stroke-width: .65; stroke-linejoin: round; cursor: default; }
.visitor-map-region:hover, .visitor-map-region:focus-visible { stroke: #2865ad; stroke-width: 1.1; outline: none; }
.visitor-map-dot { fill: #2865ad; stroke: #fff; stroke-width: .65; pointer-events: none; }
.visitor-map-inset { fill: #edf1f6; stroke: #b8c6d7; stroke-width: .5; }
.visitor-map-inset-frame { fill: none; stroke: #dce3ec; stroke-width: .6; }
.visitor-map-inset-label { fill: #66717e; font-size: 6px; }
.visitor-map-scale { display: flex; align-items: center; gap: 7px; color: #66717e; font-size: 9px; line-height: 1.5; font-variant-numeric: tabular-nums; }
.visitor-map-scale i { height: 5px; flex: 1; border-radius: 2px; background: linear-gradient(90deg, #edf1f6, #c7d9ed, #8eafd5, #2865ad); }
.visitor-map-note { margin-top: 12px !important; font-size: 10px; line-height: 1.7; color: #66717e; }
.visitor-map-credit { margin-top: 4px !important; font-size: 9px; line-height: 1.5; color: #788496; }
.visitor-map-tooltip { position: absolute; z-index: 1; max-width: calc(100% - 16px); padding: 6px 9px; border: 1px solid #dce3ec; border-radius: 5px; background: #fff; color: #252b33; box-shadow: 0 3px 12px rgb(32 57 88 / 12%); font-size: 11px; line-height: 1.5; pointer-events: none; }
.visitor-map-retry { border: 0; padding: 6px 0; background: transparent; color: var(--ui-accent); cursor: pointer; font: inherit; font-size: 11px; }
.visitor-map-retry:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 3px; }
@media (max-width: 1000px) { .academic-sidebar { width: 220px; } }
@media (max-width: 700px) {
    .academic-sidebar { display: contents; position: static; width: auto; max-height: none; overflow: visible; }
    .academic-sidebar .academic-profile { grid-row: 1; }
    .academic-content { grid-column: 1; grid-row: 2; }
    .visitor-map { grid-row: 3; padding: 22px; }
    .visitor-map h2 { font-size: 17px; }
    .visitor-map h2 > span { font-size: 12px; }
    .visitor-map-summary, .visitor-map-figure figcaption { font-size: 12px; }
    .visitor-map-canvas { width: 100%; max-width: 320px; margin: 0 auto; }
    .visitor-map-note { font-size: 11px; }
}
