.crs-filters, .crs-map-card, .crs-list-section {
  margin-block: 1rem;
  padding: clamp(.85rem, 2.5vw, 1.4rem);
  border: 1px solid #d7e5dc;
  border-radius: .9rem;
  background: #fff;
}
.crs-filters { display: grid; grid-template-columns: 1.4fr 1.2fr 1fr auto; gap: .65rem; align-items: end; }
.crs-filters label { display: grid; min-width: 0; gap: .25rem; font-size: .85rem; font-weight: 650; }
.crs-filters input:not([type=checkbox]), .crs-filters select {
  box-sizing: border-box; width: 100%; min-height: 2.6rem; padding: .4rem .6rem; color: #192722;
  border: 1px solid #bdd3c5; border-radius: .5rem; background: #fff; font: inherit;
}
.crs-filters button, .crs-map-head button {
  min-height: 2.6rem; padding: .4rem .75rem; border: 1px solid #245d49; border-radius: .5rem;
  color: #fff; background: #245d49; font: inherit; font-weight: 750; cursor: pointer;
}
.crs-filters .crs-coordinates { grid-column: 1 / -2; display: flex; align-items: center; }
.crs-map-head { display: flex; flex-wrap: wrap; gap: .55rem 1rem; align-items: center; justify-content: space-between; }
.crs-map-head h2, .crs-list-section h2 { margin: 0 0 .25rem; }
.crs-map-head p { margin: 0 0 .55rem; color: #4d655a; }
.crs-map { background: #f0f8f3; border-radius: .6rem; overflow: hidden; --revir-boundary:#9dbdad; --revir-land:#d9eddf; }
.crs-map svg { display: block; width: 100%; max-height: 31rem; }
.crs-cluster { cursor: zoom-in; }
.crs-cluster circle { fill: #286b55; stroke: #fff; stroke-width: 1.2px; vector-effect: non-scaling-stroke; }
.crs-cluster text { fill: #fff; font-family: system-ui, sans-serif; font-weight: 750; pointer-events: none; }
.crs-point { fill: #743d17; stroke: #fff; stroke-width: 1.2px; vector-effect: non-scaling-stroke; }
.crs-map :is(.crs-cluster,.crs-pin):hover circle:not(.revir-hit),
.crs-map :is(.crs-cluster,.crs-pin):focus-visible circle:not(.revir-hit) { stroke: #182b22; stroke-width: 2.4px; }
.crs-map-caption { margin: .55rem 0 0; color: #526459; font-size: .82rem; }
.crs-map-selection { margin-top: .5rem; padding: .55rem; background: #eff7f0; border-radius: .5rem; }
.crs-map-selection p { margin: 0; font-weight: 700; }
.crs-list { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.crs-list li { min-width: 0; padding: .65rem .75rem; border: 1px solid #e0ebe4; border-radius: .55rem; }
.crs-list li:hover { background: #f5faf6; }
.crs-list li a { display: flex; flex-wrap: wrap; align-items: baseline; gap: .15rem .5rem; color: #205840; }
.crs-list li small, .crs-list li a span { color: #51655a; font-size: .78rem; }
.crs-pagination { margin-top: 1rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .65rem 1rem; }
#crs-list-title { scroll-margin-top: 8rem; }
.crs-directory [hidden] { display: none !important; }
@media (max-width: 780px) { .crs-filters { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 475px) {
  .crs-filters, .crs-list { grid-template-columns: minmax(0,1fr); }
  .crs-filters .crs-coordinates { grid-column: auto; }
}
