.bnm{--bnm-ink:#123e43;--bnm-muted:#536664;--bnm-paper:#f7f4eb;--bnm-line:#cfc6bb;--bnm-accent:#bf4b32;--bnm-teal:#356e70;color:var(--bnm-ink);min-width:0}
.bnm *{box-sizing:border-box}
.bnm [hidden]{display:none!important}
.bnm :is(input,select,button){font:inherit}
.bnm :is(a,button,input,select,summary,[tabindex]):focus-visible{outline:3px solid var(--bnm-accent);outline-offset:3px}
.bnm-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin:1.25rem 0 1rem}
.bnm-modes button{display:flex;align-items:center;gap:.55rem;text-align:left;border:1px solid var(--bnm-line);border-radius:3px;background:var(--bnm-paper);color:var(--bnm-ink);padding:.7rem .8rem;font:650 .8rem/1.4 system-ui,sans-serif;cursor:pointer}
.bnm-modes small{font-size:.65rem;font-variant-numeric:tabular-nums;opacity:.75}
.bnm-modes button[aria-pressed=true]{background:var(--bnm-ink);border-color:var(--bnm-ink);color:#fff8e9}
.bnm-filter{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;margin:0 0 .9rem}
.bnm-filter label,.bnm-choose{display:block;max-width:100%;color:var(--bnm-muted);font:650 .73rem/1.45 system-ui,sans-serif}
.bnm-filter label{flex:1 1 18rem}
.bnm-filter input,.bnm-choose select{display:block;min-width:0;max-width:100%;width:100%;margin-top:.25rem;padding:.55rem .65rem;border:1px solid #b6aaa0;border-radius:3px;background:#fffdf7;color:var(--bnm-ink);font:500 .82rem/1.4 system-ui,sans-serif}
.bnm-outline,.bnm-group button{border:1px solid var(--bnm-line);border-radius:3px;background:var(--bnm-paper);color:var(--bnm-ink);padding:.62rem .75rem;font:650 .77rem/1.3 system-ui,sans-serif;cursor:pointer}
.bnm-count{color:var(--bnm-muted);font:600 .73rem/1.5 system-ui,sans-serif;padding:.58rem .2rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.bnm-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(245px,1fr);align-items:stretch;background:var(--bnm-paper);border:1px solid var(--bnm-line)}
.bnm-cart,.bnm-aside{min-width:0}
.bnm-stage{height:clamp(390px,43vw,520px);position:relative;overflow:hidden;background:#dce8e5}
.bnm-canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none;user-select:none}
.bnm-canvas:active{cursor:grabbing}
.bnm-graticule path{fill:none;stroke:#b2c9c4;stroke-width:.65;stroke-dasharray:3 5;vector-effect:non-scaling-stroke}
.bnm-land path{fill:#eae6da;stroke:#bdc5b9;stroke-width:.8;vector-effect:non-scaling-stroke}
.bnm-land .bnm-spain{fill:#eee9da;stroke:#9fae9e;stroke-width:1.1}
.bnm-network{pointer-events:none}
.bnm-network path{fill:none;stroke:#a35343;stroke-dasharray:5 5;stroke-width:1.3;opacity:.78;vector-effect:non-scaling-stroke}
.bnm-pin{cursor:pointer}
.bnm-hit{fill:transparent;stroke:none}
.bnm-dot{fill:var(--bnm-teal);stroke:#fff9ea;stroke-width:1.7}
.bnm-pin.bnm-chosen .bnm-dot{fill:var(--bnm-accent)}
.bnm-ring{fill:none;stroke:var(--bnm-accent);stroke-width:2}
.bnm-num{fill:#fff;font:700 10px system-ui,sans-serif;pointer-events:none}
.bnm-label{font:650 11.5px/1.2 system-ui,sans-serif;fill:#334c4d;stroke:#fff9ec;stroke-width:3.5;paint-order:stroke;stroke-linejoin:round}
.bnm-tools{position:absolute;left:.65rem;top:.65rem;display:flex;gap:.3rem}
.bnm-tools button{height:38px;width:38px;border:1px solid #a6b5aa;border-radius:3px;background:#fffdf3ed;color:var(--bnm-ink);font-size:1.15rem;line-height:1;cursor:pointer}
.bnm-tools button:disabled{opacity:.5;cursor:default}
.bnm-credit{position:absolute;bottom:.4rem;right:.4rem;background:#fff9eccc;color:#405754;padding:.2rem .35rem;font:600 .62rem/1.3 system-ui,sans-serif;pointer-events:none}
.bnm-legend{display:grid;gap:.35rem;border-top:1px solid var(--bnm-line);padding:1rem 1.1rem}
.bnm-legend strong{font:600 .9rem/1.45 system-ui,sans-serif;color:var(--bnm-ink)}
.bnm-legend span{font-size:.78rem;line-height:1.6;color:var(--bnm-muted)}
.bnm-legend small{font-size:.7rem;line-height:1.5;color:var(--bnm-muted)}
.bnm-aside{padding:1rem 1.1rem;border-left:1px solid var(--bnm-line)}
.bnm-sheet{border-top:1px solid var(--bnm-line);margin-top:.9rem;padding-top:.9rem;overflow-wrap:anywhere}
.bnm-sheet h4{margin:.35rem 0 .7rem;color:var(--bnm-ink);font:500 clamp(1.45rem,2.25vw,1.9rem)/1.12 Georgia,"Times New Roman",serif;letter-spacing:-.025em}
.bnm-sheet .bnm-kicker{margin:0;color:var(--bnm-accent);font:700 .62rem/1.55 system-ui,sans-serif;letter-spacing:.075em;text-transform:uppercase}
.bnm-sheet .bnm-status{display:inline-block;margin:.1rem 0 .4rem;padding:.3rem .5rem;background:#eae1d9;color:#624035;border:1px solid #d8c2b5;font:650 .69rem/1.5 system-ui,sans-serif}
.bnm-sheet p:not([class]){font-size:.84rem;line-height:1.62;margin:.7rem 0}
.bnm-sheet .bnm-source{font-size:.71rem;line-height:1.55;color:var(--bnm-muted);margin:.8rem 0}
.bnm-precision{padding:.7rem .8rem;background:#efeadf;margin:.85rem 0}
.bnm-precision b{display:block;font:700 .67rem/1.5 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.05em;color:#5e4940}
.bnm-precision p:not([class]){font-size:.73rem;line-height:1.55;margin:.25rem 0 0}
.bnm-sheet .bnm-coordinates{font-size:.73rem;line-height:1.5;font-variant-numeric:tabular-nums;color:var(--bnm-muted);margin:.65rem 0}
.bnm-map-link{margin:.6rem 0}
.bnm-map-link a,.bnm-row-sources a{font-size:.75rem;line-height:1.5;color:#165a5b;text-decoration:underline;text-underline-offset:3px}
.bnm-row-sources summary{cursor:pointer;font:650 .73rem/1.5 system-ui,sans-serif}
.bnm-row-sources p:not([class]){font-size:.72rem;line-height:1.55}
.bnm-group{padding:.65rem;background:#eee3d7;margin:.75rem 0}
.bnm-group b{font:650 .74rem/1.4 system-ui,sans-serif}
.bnm-group>div{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem}
.bnm-group button{padding:.4rem .5rem;font-size:.71rem;text-align:left}
.bnm-method{border:1px solid var(--bnm-line);padding:.8rem 1rem;background:var(--bnm-paper);margin:.85rem 0}
.bnm-method summary{cursor:pointer;font:650 .8rem/1.5 system-ui,sans-serif}
.bnm-method p{font-size:.78rem;line-height:1.65;max-width:98ch}
.bnm-method a{color:#165a5b;text-underline-offset:3px}
@media(max-width:780px){
  .bnm-layout{grid-template-columns:1fr}
  .bnm-aside{border-left:0;border-top:1px solid var(--bnm-line)}
  .bnm-stage{height:375px}
}
@media(max-width:440px){
  .bnm-stage{height:325px}
  .bnm-modes{gap:.3rem}
  .bnm-modes button{display:block;padding:.5rem .4rem;font-size:.71rem}
  .bnm-modes small{display:block;margin-bottom:.25rem}
  .bnm-legend,.bnm-aside{padding:.8rem}
  .bnm-filter label{flex-basis:100%}
  .bnm-canvas .bnm-label{font-size:11px}
}

.bnm-local-land path{fill:#eee8da;stroke:#adc7c2;stroke-width:1;vector-effect:non-scaling-stroke}
.bnm-streets path{fill:none;stroke:#d0c6b4;stroke-width:.65;vector-effect:non-scaling-stroke;opacity:.82}
.bnm-streets .bnm-road-principal{stroke:#faf8f1;stroke-width:2.1;opacity:1}
.bnm-rivers path{fill:none;stroke:#8fb6b1;stroke-width:3;vector-effect:non-scaling-stroke}
.bnm-selection{pointer-events:none}
.bnm-selection path{fill:none;stroke:#bf4b32;stroke-width:3.1;opacity:.8;vector-effect:non-scaling-stroke}
.bnm-sea-label{font:italic 14px Georgia,serif;fill:#547e7d;letter-spacing:.04em}
.bnm-north{position:absolute;right:.75rem;top:.7rem;color:#385c60;background:#f8f5ece6;padding:.35rem .4rem;font:700 .75rem/1.2 system-ui,sans-serif;pointer-events:none}
.bnm-scale{position:absolute;bottom:1.3rem;left:.8rem;display:grid;gap:3px;color:#385357;pointer-events:none}
.bnm-scale i{display:block;height:5px;border:1.4px solid #385357;border-top:0}
.bnm-scale b{font:650 .62rem/1.2 system-ui,sans-serif;text-shadow:0 1px #fff}
.bnm-cat-memoria{--bnm-dot:#a04d38}
.bnm-cat-cultura{--bnm-dot:#9a7628}
.bnm-cat-conhecimento{--bnm-dot:#315b75}
.bnm-cat-cidade{--bnm-dot:#3e7570}
.bnm-cat-circulacao{--bnm-dot:#365e71}
.bnm-pin .bnm-dot{fill:var(--bnm-dot,var(--bnm-teal))}
.bnm-pin.bnm-chosen .bnm-dot{fill:var(--bnm-accent)}
.bnm-key{display:flex;flex-wrap:wrap;gap:.35rem .85rem;margin-top:.35rem}
.bnm-key span{display:inline-flex;align-items:center;gap:.35rem;font:600 .67rem/1.4 system-ui,sans-serif;color:var(--bnm-muted)}
.bnm-key i{width:8px;height:8px;border-radius:50%;background:var(--bnm-dot);display:block;flex-shrink:0}
.bnm-credit{font-size:.58rem;max-width:calc(100% - 8px);text-align:right}
@media(max-width:440px){.bnm-stage{height:350px}.bnm-north{font-size:.65rem}.bnm-scale{bottom:1.5rem}.bnm-filter :is(button,input){min-height:42px}.bnm-modes button{min-height:58px}}

.bnm-credit{pointer-events:auto}.bnm-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}
