/* Layout and the custom parts Bootstrap does not cover: sidebar, canvas map and SVG charts. */
h1:focus,h1:focus-visible{outline:none}
:root{--sidebar-width:240px}
a,a:hover,.btn-link,.btn-link:hover,.nav-link,.nav-link:hover{text-decoration:none}
.icon{width:1.05em;height:1.05em;vertical-align:-.15em;flex-shrink:0}
.dot{display:inline-block;width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);z-index:1030;overflow-y:auto}
.app-sidebar .nav-link{display:flex;align-items:center;gap:.5rem;opacity:.85}
.app-sidebar .nav-link.active{background:rgba(255,255,255,.14);opacity:1}
.app-sidebar .nav-link:hover{opacity:1;background:rgba(255,255,255,.08)}
.app-main{margin-left:var(--sidebar-width)}
@media (max-width:991.98px){.app-sidebar{transform:translateX(-100%);transition:transform .2s}.nav-open .app-sidebar{transform:none}.app-main{margin-left:0}}
.bar-clickable{cursor:pointer}.bar-clickable:hover{background:var(--bs-tertiary-bg)}
.chart-svg text{font-size:12px;fill:var(--bs-secondary-color)}
.chart-svg .gridline{stroke:var(--bs-border-color);stroke-dasharray:3 4}
.chart-svg .chart-point,.chart-point{fill:#4f8270;stroke:#fff;stroke-width:2}
.donut-segment{cursor:pointer}
.donut-total{font-size:23px;font-weight:600;fill:var(--bs-body-color)}
.table-clickable tbody tr{cursor:pointer}
.scroll-430{max-height:430px;overflow:auto}
.offcanvas-wide{width:min(680px,95vw)!important}
.finding{position:relative;padding-left:1rem}
.finding::before{content:"";position:absolute;left:0;top:.55rem;width:.45rem;height:.45rem;border-radius:50%;background:var(--bs-secondary-bg-subtle);border:1px solid var(--bs-secondary-border-subtle)}
.finding.flag::before{background:var(--bs-danger);border-color:var(--bs-danger)}
/* Canvas map (wwwroot/map.js) */
.map-host{display:flex;flex-direction:column}
.map-fill{flex:1;min-height:440px}
.atlas-map{height:520px;position:relative;background:#eef3f1;border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);overflow:hidden}
.compact-map{height:330px;border-radius:0;border-left:0;border-right:0}
.map-fill .atlas-map{flex:1;height:auto}
.atlas-map canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none}
.atlas-map canvas:active{cursor:grabbing}
.atlas-map canvas.selecting{cursor:crosshair}
.map-toolbar{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;border:1px solid var(--bs-border-color);background:#fff;border-radius:var(--bs-border-radius);overflow:hidden}
.map-toolbar button{width:30px;height:30px;display:grid;place-items:center;color:var(--bs-secondary-color);background:#fff;border:0}
.map-toolbar button:hover,.map-toolbar button[aria-pressed=true]{background:var(--bs-tertiary-bg);color:var(--bs-body-color)}
.map-credit{font-size:.65rem;color:var(--bs-secondary-color);position:absolute;right:0;bottom:0;background:#ffffffd9;padding:2px 6px}
.map-credit a{color:var(--bs-link-color)}
.map-coordinates{position:absolute;left:8px;bottom:6px;font-size:.65rem;color:var(--bs-secondary-color);background:#ffffffaa;padding:1px 4px;border-radius:3px}
.map-top-label{position:absolute;top:12px;left:12px;background:#fff;border:1px solid var(--bs-border-color);padding:4px 8px;border-radius:var(--bs-border-radius);font-size:.7rem;color:var(--bs-secondary-color);display:flex;align-items:center;gap:6px}
.map-legend{display:flex;gap:6px 14px;flex-wrap:wrap;padding:8px 12px;min-height:34px}
.map-legend button{font-size:.75rem;color:var(--bs-secondary-color);padding:0;border:0;background:none;display:flex;align-items:center;gap:5px}
.map-legend button i{width:.5rem;height:.5rem;border-radius:50%;display:inline-block}
.map-legend button span{color:var(--bs-tertiary-color)}
.map-legend button[aria-pressed=false]{opacity:.4}
.map-selection-tip{position:absolute;top:56px;left:12px;font-size:.75rem;background:var(--bs-warning-bg-subtle);border:1px solid var(--bs-warning-border-subtle);padding:6px 8px;border-radius:var(--bs-border-radius)}
.hidden{display:none!important}
@media print{.app-main{margin-left:0}.card{break-inside:avoid}.scroll-430{max-height:none}.map-toolbar{display:none}}
