/* Refuges.info / Kaban integration. Kept fully namespaced so the Saved Routes
   and offline-zone panels can evolve independently. */

.refuge-library-dock {
  width: min(1480px, calc(100vw - 32px));
  max-height: 0;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 22px;
  color: #edf8f2;
  background: rgba(10, 25, 31, 0.94);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.42);
  backdrop-filter: blur(18px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(24px);
  transition: opacity 180ms ease, transform 220ms ease, max-height 260ms ease, visibility 180ms;
}

.refuge-library-dock.visible {
  max-height: min(520px, 62vh);
  margin-bottom: 12px;
  overflow: visible;
  border-color: rgba(184, 229, 203, 0.2);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.refuge-library__header {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(220px, 440px) minmax(40px, 1fr);
  gap: 18px;
  padding: 12px 18px;
  align-items: center;
  border-bottom: 1px solid rgba(200, 234, 215, 0.12);
}

.refuge-library__title-group {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-width: 0;
}

.refuge-library__title {
  margin: 0;
  color: #f5fcf8;
  font-size: 15px;
  font-weight: 760;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.refuge-library__count {
  color: #81dfa8;
  font-size: 11px;
  font-weight: 680;
  white-space: nowrap;
}

.refuge-library__search,
.refuge-library__select {
  min-height: 34px;
  border: 1px solid rgba(211, 239, 223, 0.15);
  border-radius: 10px;
  color: #f1faf5;
  background: rgba(255, 255, 255, 0.065);
  font: 600 12px/1.2 var(--font-ui, system-ui, sans-serif);
}

.refuge-library__search {
  width: 100%;
  padding: 7px 13px;
  text-align: center;
}

.refuge-library__search::placeholder { color: rgba(225, 240, 232, 0.42); }

.refuge-library__search:focus,
.refuge-library__select:focus,
.refuge-library__filter:focus-visible,
.refuge-library__amenity-filter:focus-visible,
.refuge-library__reset:focus-visible,
.refuge-library__close:focus-visible,
.refuge-library-reopen:focus-visible,
.refuge-card__preference:focus-visible,
.refuge-card__map:focus-visible,
.refuge-card__source:focus-visible,
.refuge-detail button:focus-visible,
.refuge-detail a:focus-visible {
  outline: 2px solid #8be6b1;
  outline-offset: 2px;
}

.refuge-library__close {
  width: 34px;
  height: 34px;
  margin-left: auto;
  padding: 0;
  border: 1px solid rgba(225, 243, 233, 0.18);
  border-radius: 10px;
  color: #eaf5ef;
  background: rgba(255, 255, 255, 0.055);
  font-size: 22px;
  line-height: 30px;
  cursor: pointer;
}

.refuge-library__toolbar,
.refuge-library__advanced {
  display: flex;
  gap: 8px;
  padding: 9px 18px;
  align-items: center;
  overflow-x: auto;
  scrollbar-width: thin;
}

.refuge-library__toolbar { border-bottom: 1px solid rgba(200, 234, 215, 0.09); }

.refuge-library__advanced {
  background: rgba(255, 255, 255, 0.025);
  border-bottom: 1px solid rgba(200, 234, 215, 0.09);
}

.refuge-library__advanced[hidden] { display: none; }

.refuge-library__select {
  flex: 0 0 auto;
  max-width: 210px;
  padding: 6px 28px 6px 10px;
}

.refuge-library__filter,
.refuge-library__amenity-filter,
.refuge-library__reset {
  min-height: 32px;
  flex: 0 0 auto;
  padding: 6px 11px;
  border: 1px solid rgba(212, 238, 223, 0.13);
  border-radius: 999px;
  color: rgba(230, 243, 236, 0.7);
  background: rgba(255, 255, 255, 0.045);
  font: 650 11px/1 var(--font-ui, system-ui, sans-serif);
  cursor: pointer;
}

.refuge-library__filter:hover,
.refuge-library__amenity-filter:hover,
.refuge-library__reset:hover { background: rgba(255, 255, 255, 0.1); }

.refuge-library__filter.is-active,
.refuge-library__amenity-filter.is-active {
  border-color: rgba(120, 226, 165, 0.58);
  color: #9bf0bd;
  background: rgba(55, 160, 102, 0.2);
}

.refuge-library__filter--advanced { margin-left: auto; }

.refuge-library__amenity-filters {
  display: flex;
  gap: 6px;
}

.refuge-library__content {
  min-height: 176px;
  padding: 14px 18px 12px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-color: rgba(136, 221, 172, 0.28) transparent;
  scrollbar-width: thin;
}

.refuge-library__list {
  display: flex;
  gap: 13px;
  min-width: min-content;
}

.refuge-library__empty {
  width: min(620px, calc(100vw - 80px));
  padding: 58px 24px;
  color: rgba(225, 240, 232, 0.55);
  text-align: center;
  font-size: 12px;
}

.refuge-library__empty.is-error { color: #ffc39f; }

.refuge-library__empty.is-error span { display: block; }

.refuge-library__retry {
  margin-top: 13px;
  padding: 7px 12px;
  border: 1px solid rgba(255, 195, 159, 0.34);
  border-radius: 999px;
  color: #ffd8bd;
  background: rgba(155, 82, 45, 0.18);
  font: 700 10px/1 var(--font-ui, system-ui, sans-serif);
  cursor: pointer;
}

.refuge-library__footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 18px 9px;
  border-top: 1px solid rgba(200, 234, 215, 0.09);
  color: rgba(215, 234, 224, 0.45);
  font-size: 9px;
}

.refuge-library__attribution { color: rgba(166, 224, 190, 0.62); text-decoration: none; }

.refuge-card {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  width: 310px;
  min-height: 162px;
  flex: 0 0 auto;
  overflow: hidden;
  border: 1px solid rgba(210, 239, 223, 0.14);
  border-radius: 15px;
  color: #eef8f3;
  background: rgba(255, 255, 255, 0.045);
  cursor: pointer;
  transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
}

.refuge-card:hover,
.refuge-card.is-selected {
  border-color: rgba(119, 229, 165, 0.62);
  background: rgba(65, 149, 101, 0.13);
  transform: translateY(-2px);
}

.refuge-card__media {
  position: relative;
  min-height: 162px;
  overflow: hidden;
  background: linear-gradient(145deg, #315c4b, #19372f);
}

.refuge-card__image { width: 100%; height: 100%; object-fit: cover; }

.refuge-card__media.is-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
}

.refuge-card__placeholder-icon {
  width: 54px;
  height: 54px;
  filter: invert(1);
  opacity: 0.36;
}

.refuge-card__credit {
  position: absolute;
  right: 5px;
  bottom: 5px;
  max-width: calc(100% - 10px);
  padding: 2px 5px;
  overflow: hidden;
  border-radius: 4px;
  color: rgba(255, 255, 255, 0.86);
  background: rgba(4, 14, 12, 0.64);
  font-size: 7px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.refuge-card__credit a { color: inherit; text-decoration: none; }
.refuge-card__license { opacity: .72; }

.refuge-card__status {
  position: absolute;
  top: 6px;
  left: 6px;
  padding: 3px 6px;
  border-radius: 999px;
  color: #effaf4;
  background: rgba(31, 126, 76, 0.86);
  font-size: 8px;
  font-weight: 750;
}

.refuge-card__status.is-closed,
.refuge-card__status.is-destroyed { background: rgba(92, 82, 82, 0.88); }
.refuge-card__status.is-contact,
.refuge-card__status.is-key { color: #fff5df; background: rgba(150, 101, 42, 0.9); }
.refuge-card__status.is-unknown { background: rgba(78, 88, 87, 0.86); }

.refuge-card__body {
  display: flex;
  min-width: 0;
  padding: 11px;
  flex-direction: column;
}

.refuge-card__header { display: flex; gap: 5px; align-items: flex-start; }
.refuge-card__heading { min-width: 0; flex: 1; }
.refuge-card__title {
  margin: 0;
  overflow: hidden;
  color: #f5fbf8;
  font-size: 12px;
  font-weight: 740;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.refuge-card__subtitle {
  display: -webkit-box;
  margin: 4px 0 0;
  overflow: hidden;
  color: rgba(220, 237, 228, 0.55);
  font-size: 8px;
  line-height: 1.3;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.refuge-card__preferences { display: flex; gap: 3px; }
.refuge-card__preference {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: rgba(238, 246, 242, 0.58);
  background: rgba(255, 255, 255, 0.06);
  font-size: 17px;
  cursor: pointer;
}
.refuge-card__preference.is-favorite.is-active { color: #ffd86e; }
.refuge-card__preference.is-liked.is-active { color: #ff7895; }
.refuge-card__preference.is-disliked.is-active { color: #ff8b7f; }

/* Photo markers: only rendered for the features visible in the viewport. */
.refuge-map-marker {
  position: absolute;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 12px;
  color: #fff;
  background: transparent;
  cursor: pointer;
  filter: drop-shadow(0 4px 7px rgba(0, 0, 0, .45));
  transition: filter 140ms ease;
}
.refuge-map-marker:hover,
.refuge-map-marker:focus-visible {
  z-index: 2;
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .55));
  outline: none;
}
.refuge-map-marker.maplibregl-marker-covered {
  pointer-events: none;
}
.refuge-map-marker__visual {
  position: absolute;
  inset: 0;
  display: flex;
  overflow: hidden;
  align-items: center;
  justify-content: center;
  border: 2px solid rgba(247, 255, 250, .94);
  border-radius: 11px;
  background: #26483d center / cover no-repeat;
  transform-origin: center bottom;
  transition: transform 140ms ease, box-shadow 140ms ease;
}
.refuge-map-marker:hover .refuge-map-marker__visual,
.refuge-map-marker:focus-visible .refuge-map-marker__visual { transform: scale(1.14) translateY(-1px); }
.refuge-map-marker__visual.is-fallback { background: linear-gradient(145deg, #437a63, #18372f); }
.refuge-map-marker__visual > img { width: 23px; height: 23px; filter: invert(1); opacity: .9; }
.refuge-map-marker__badges {
  position: absolute;
  right: -5px;
  bottom: -5px;
  display: flex;
  gap: 1px;
}
.refuge-map-marker__badge {
  display: none;
  width: 15px;
  height: 15px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 50%;
  color: #fff;
  background: #1b302a;
  font: 800 9px/1 system-ui, sans-serif;
}
.refuge-map-marker__badge.is-active { display: flex; }
.refuge-map-marker__badge.is-favorite { color: #ffe072; }
.refuge-map-marker__badge.is-liked { color: #ff819c; }
.refuge-map-marker__badge.is-disliked { color: #ff8f84; }
.refuge-map-marker.is-cluster { width: 46px; height: 46px; border-radius: 14px; }
.refuge-map-marker.is-cluster .refuge-map-marker__visual { border-radius: 13px; border-width: 3px; }
.refuge-map-marker__count {
  position: absolute;
  right: -3px;
  bottom: -3px;
  min-width: 19px;
  height: 19px;
  padding: 0 4px;
  border: 2px solid #eefaf3;
  border-radius: 10px;
  color: #fff;
  background: #23845a;
  box-sizing: border-box;
  font: 800 9px/15px var(--font-ui, system-ui, sans-serif);
}

.refuge-hover-preview {
  position: fixed;
  z-index: 1005;
  width: 224px;
  height: 148px;
  overflow: hidden;
  border: 1px solid rgba(228, 248, 236, .28);
  border-radius: 14px;
  background: #17312a;
  box-shadow: 0 16px 36px rgba(0,0,0,.48);
  pointer-events: none;
  animation: refuge-preview-in 120ms ease-out;
}
.refuge-hover-preview__image,
.refuge-hover-preview__fallback { width: 100%; height: 100%; object-fit: cover; }
.refuge-hover-preview__fallback { display: flex; align-items: center; justify-content: center; background: linear-gradient(145deg,#416d5b,#142b25); }
.refuge-hover-preview__fallback img { width: 58px; filter: invert(1); opacity: .5; }
.refuge-hover-preview__caption {
  position: absolute;
  inset: auto 0 0;
  display: flex;
  gap: 3px;
  padding: 20px 11px 9px;
  flex-direction: column;
  color: #fff;
  background: linear-gradient(transparent, rgba(3,13,11,.92));
}
.refuge-hover-preview__caption strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.refuge-hover-preview__caption span { color: rgba(231,244,237,.68); font-size: 9px; }
@keyframes refuge-preview-in { from { opacity: 0; transform: translateY(4px) scale(.98); } }

/* Large refuge sheet inspired by the original Kaban information hierarchy. */
.refuge-detail-open { overflow: hidden; }
.refuge-detail-backdrop {
  position: fixed;
  z-index: 1200;
  inset: 0;
  display: flex;
  padding: 24px;
  align-items: center;
  justify-content: center;
  background: rgba(3, 10, 9, .66);
  backdrop-filter: blur(7px);
}
.refuge-detail {
  display: flex;
  width: min(1080px, calc(100vw - 48px));
  max-height: min(860px, calc(100vh - 48px));
  overflow: hidden;
  flex-direction: column;
  border: 1px solid rgba(215, 239, 225, .18);
  border-radius: 20px;
  color: #edf7f1;
  background: #101c1a;
  box-shadow: 0 28px 80px rgba(0,0,0,.58);
}
.refuge-detail__header {
  display: flex;
  gap: 18px;
  padding: 18px 20px;
  align-items: flex-start;
  border-bottom: 1px solid rgba(214,238,224,.11);
}
.refuge-detail__heading { min-width: 0; flex: 1; }
.refuge-detail__title { margin: 0; color: #fff; font-size: 25px; line-height: 1.14; }
.refuge-detail__meta { margin: 6px 0 0; color: rgba(224,239,231,.64); font-size: 11px; line-height: 1.55; }
.refuge-detail__coordinates { display: inline-block; color: rgba(238,247,242,.88); font: 700 10px/1.4 ui-monospace, monospace; white-space: nowrap; }
.refuge-detail__massif { margin: 7px 0 0; color: rgba(224,239,231,.58); font-size: 10px; }
.refuge-detail__massif strong { color: #eef7f2; }
.refuge-detail__massif span { margin-left: 5px; padding: 3px 7px; border-radius: 999px; background: rgba(255,255,255,.07); }
.refuge-detail__actions { display: flex; gap: 7px; align-items: center; }
.refuge-detail__preference,
.refuge-detail__close {
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid rgba(227,244,234,.12);
  border-radius: 50%;
  color: rgba(235,246,240,.6);
  background: rgba(255,255,255,.05);
  font-size: 21px;
  cursor: pointer;
}
.refuge-detail__preference.is-favorite.is-active { color: #ffe074; background: rgba(180,142,35,.18); }
.refuge-detail__preference.is-liked.is-active { color: #ff809b; background: rgba(172,50,81,.19); }
.refuge-detail__preference.is-disliked.is-active { color: #ff8f84; background: rgba(170,58,47,.2); }
.refuge-detail__source {
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid rgba(227,244,234,.12);
  border-radius: 10px;
  color: #c9f4da;
  background: rgba(255,255,255,.05);
  font: 700 10px/36px var(--font-ui, system-ui, sans-serif);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}
.refuge-detail__close { font-size: 25px; }
.refuge-detail__body {
  display: grid;
  min-height: 0;
  padding: 18px;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .88fr);
  gap: 18px;
  overflow: hidden;
}
.refuge-detail__column { min-height: 0; overflow: auto; scrollbar-color: rgba(129,219,166,.25) transparent; }
.refuge-detail__column.is-information { padding-right: 5px; }
.refuge-detail__section {
  margin-bottom: 14px;
  padding: 15px;
  border: 1px solid rgba(219,241,228,.1);
  border-radius: 14px;
  background: rgba(255,255,255,.028);
}
.refuge-detail__section-title { margin: 0 0 10px; color: #879d80; font-size: 13px; }
.refuge-detail__equipment-list { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; list-style: none; }
.refuge-detail__equipment-item { display: flex; min-width: 0; padding: 9px 10px; align-items: center; gap: 9px; border-radius: 10px; color: #8fa487; background: rgba(114,140,108,.08); }
.refuge-detail__equipment-item.is-water { color: #7da9b5; background: rgba(80,139,155,.09); }
.refuge-detail__equipment-item.is-wood,
.refuge-detail__equipment-item.is-heat { color: #b89c68; background: rgba(164,124,65,.09); }
.refuge-detail__equipment-item.is-sleep { color: #9491ad; background: rgba(115,109,151,.09); }
.refuge-detail__equipment-icon { width: 19px; height: 19px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.refuge-detail__equipment-copy { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.refuge-detail__equipment-label { color: rgba(237,245,240,.86); font-size: 10px; }
.refuge-detail__equipment-value { overflow: hidden; color: rgba(220,232,225,.58); font-size: 9px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.refuge-detail__prose { margin: 0; color: rgba(235,245,239,.79); font-size: 11px; line-height: 1.58; white-space: pre-line; }
.refuge-detail__comments { display: grid; gap: 8px; }
.refuge-detail__comment { padding: 10px; border-radius: 10px; background: rgba(255,255,255,.035); }
.refuge-detail__comment-meta { margin: 0 0 6px; color: rgba(190,205,190,.58); font-size: 9px; font-weight: 650; }
.refuge-detail__gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.refuge-detail__main-photo {
  position: relative;
  height: 230px;
  padding: 0;
  overflow: hidden;
  grid-column: 1 / -1;
  border: 0;
  border-radius: 13px;
  background: #213a32;
  cursor: zoom-in;
}
.refuge-detail__main-photo img { width: 100%; height: 100%; object-fit: cover; }
.refuge-detail__photo-credit { position: absolute; right: 7px; bottom: 7px; padding: 4px 7px; border-radius: 6px; color: rgba(255,255,255,.86); background: rgba(4,13,11,.72); font-size: 8px; }
.refuge-detail__photo-caption {
  grid-column: 1 / -1;
  margin: -1px 2px 2px;
  padding: 9px 11px;
  border-left: 2px solid rgba(117, 220, 160, .55);
  border-radius: 0 8px 8px 0;
  color: rgba(235, 245, 239, .76);
  background: rgba(255, 255, 255, .035);
  font-size: 10px;
  line-height: 1.45;
}
.refuge-detail__photo-caption[hidden] { display: none; }
.refuge-detail__thumbnails { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.refuge-detail__thumbnail { height: 82px; padding: 0; overflow: hidden; border: 2px solid transparent; border-radius: 10px; background: #1a322a; cursor: pointer; opacity: .78; }
.refuge-detail__thumbnail.is-active { border-color: #75dca0; opacity: 1; }
.refuge-detail__thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.refuge-detail__gallery.is-empty { display: flex; height: 220px; align-items: center; justify-content: center; flex-direction: column; border-radius: 14px; color: rgba(230,244,236,.45); background: linear-gradient(145deg,#315748,#172d27); }
.refuge-detail__gallery.is-empty img { width: 70px; filter: invert(1); opacity: .4; }
.refuge-detail__footer { padding: 9px 20px 11px; border-top: 1px solid rgba(214,238,224,.08); text-align: right; }
.refuge-detail__footer a { color: rgba(185,222,201,.48); font-size: 8px; text-decoration: none; }
.refuge-lightbox { position: fixed; z-index: 1400; inset: 0; display: flex; padding: 34px; align-items: center; justify-content: center; background: rgba(0,0,0,.9); }
.refuge-lightbox__image { max-width: 100%; max-height: 100%; object-fit: contain; }
.refuge-lightbox__close { position: absolute; top: 18px; right: 18px; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; color: #fff; background: rgba(255,255,255,.1); font-size: 28px; cursor: pointer; }
.refuge-lightbox__caption { position: absolute; right: 8vw; bottom: 18px; left: 8vw; margin: 0; padding: 10px 13px; border-radius: 9px; color: rgba(255,255,255,.88); background: rgba(5,14,12,.76); font-size: 11px; line-height: 1.45; text-align: center; }

.refuge-card__stats { display: flex; gap: 5px; margin-top: 9px; flex-wrap: wrap; }
.refuge-card__stat,
.refuge-card__amenity {
  padding: 3px 5px;
  border-radius: 5px;
  color: rgba(232, 244, 237, 0.72);
  background: rgba(255, 255, 255, 0.055);
  font-size: 8px;
  font-weight: 650;
}
.refuge-card__amenities { display: flex; gap: 4px; margin-top: 6px; overflow: hidden; }
.refuge-card__amenity { color: #86dca9; background: rgba(69, 163, 108, 0.13); }
.refuge-card__footer { display: flex; gap: 8px; margin-top: auto; padding-top: 8px; align-items: center; justify-content: space-between; }
.refuge-card__map {
  padding: 0;
  border: 0;
  color: #8ae5ae;
  background: none;
  font: 700 8px/1 var(--font-ui, system-ui, sans-serif);
  cursor: pointer;
}
.refuge-card__source { color: #8ae5ae; font-size: 8px; font-weight: 700; text-decoration: none; }

.refuge-library-reopen {
  position: fixed;
  z-index: 95;
  right: 22px;
  bottom: 88px;
  width: 40px;
  height: 40px;
  padding: 9px;
  border: 1px solid rgba(212, 240, 225, 0.24);
  border-radius: 50%;
  background: rgba(11, 35, 31, 0.9);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.32);
  cursor: pointer;
}
.refuge-library-reopen[hidden] { display: none; }
.refuge-library-reopen img { width: 100%; height: 100%; filter: invert(1); opacity: 0.9; }

@media (max-width: 760px) {
  .refuge-library-dock { width: calc(100vw - 20px); border-radius: 17px; }
  .refuge-library-dock.visible { max-height: 67vh; }
  .refuge-library__header { grid-template-columns: 1fr 36px; gap: 8px; padding: 10px 12px; }
  .refuge-library__search { grid-column: 1 / -1; grid-row: 2; }
  .refuge-library__toolbar, .refuge-library__advanced { padding-inline: 12px; }
  .refuge-library__content { padding-inline: 12px; }
  .refuge-card { width: min(300px, calc(100vw - 50px)); }
  .refuge-library__footer { padding-inline: 12px; }
  .refuge-detail-backdrop { padding: 8px; }
  .refuge-detail { width: calc(100vw - 16px); max-height: calc(100vh - 16px); border-radius: 16px; }
  .refuge-detail__header { padding: 13px; flex-direction: column; }
  .refuge-detail__actions { width: 100%; flex-wrap: wrap; }
  .refuge-detail__source { flex: 1; text-align: center; }
  .refuge-detail__body { display: block; padding: 12px; overflow-y: auto; }
  .refuge-detail__column { overflow: visible; }
  .refuge-detail__column.is-media { margin-top: 12px; }
  .refuge-detail__equipment-list { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .refuge-library-dock,
  .refuge-card { transition: none; }
}
