.haven-privacy-panel,
.haven-privacy-panel * { box-sizing: border-box; }
.haven-privacy-panel[hidden], .haven-privacy-settings[hidden] { display: none !important; }
.haven-privacy-panel {
  background: #fffdf9;
  border: 1px solid rgba(23, 52, 79, .13);
  border-radius: 12px;
  bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 20px 65px rgba(15, 39, 57, .25);
  color: #17344f;
  display: grid;
  gap: .75rem;
  grid-template-columns: minmax(0, 1fr) auto;
  left: 50%;
  max-height: min(80vh, 650px);
  max-height: min(80dvh, 650px);
  overflow-y: auto;
  padding: .7rem .9rem;
  position: fixed;
  transform: translateX(-50%);
  width: min(960px, calc(100% - 36px));
  align-items: center;
  z-index: 10000;
  font: 400 .9rem/1.3 'Josefin Sans', sans-serif;
}
.haven-privacy-panel p { color: #34495a; font-size: .86rem; line-height: 1.3; margin: 0 0 .15rem; }
.haven-privacy-panel a { color: #17344f; font-size: .82rem; text-decoration: underline; text-underline-offset: .15em; }
.haven-privacy-links { align-items: center; display: flex; flex-wrap: wrap; column-gap: 1rem; row-gap: .25rem; }
.haven-privacy-links .haven-privacy-configure { background: none; border: 0; border-radius: 0; color: #17344f; cursor: pointer; font: inherit; font-size: .82rem; padding: .25rem 0; text-decoration: underline; text-underline-offset: .15em; }
.haven-privacy-links .haven-privacy-configure:focus-visible, .haven-privacy-links a:focus-visible { outline: 2px solid #17344f; outline-offset: 3px; }
.haven-privacy-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .35rem; justify-content: flex-end; }
.haven-privacy-actions button, .haven-privacy-settings button, .haven-map-permission button {
  background: transparent; border: 1px solid #927a68; border-radius: 4px; color: #17344f;
  cursor: pointer; font: 600 .82rem/1.2 'Josefin Sans', sans-serif; min-height: 40px; padding: .45rem .65rem;
}
.haven-privacy-actions button { min-height: 44px; min-width: 112px; }
.haven-privacy-settings button, .haven-map-permission button { font-size: .88rem; min-height: 44px; padding: .6rem .8rem; }
.haven-privacy-settings p { font-size: .94rem; line-height: 1.45; }
.haven-privacy-actions button:hover, .haven-privacy-settings button:hover, .haven-map-permission button:hover,
.haven-privacy-actions button:focus-visible, .haven-privacy-settings button:focus-visible, .haven-map-permission button:focus-visible { border-color: #17344f; outline: 2px solid #17344f; outline-offset: 2px; }
.haven-privacy-actions .haven-privacy-accept, .haven-privacy-settings .haven-privacy-save, .haven-map-permission button { background: #92704d; border-color: #92704d; color: #fff; }
.haven-privacy-settings { border-top: 1px solid #ded5cb; grid-column: 1 / -1; padding-top: .9rem; }
.haven-privacy-settings label { align-items: flex-start; display: flex; gap: .7rem; font-size: .94rem; margin: .65rem 0 1rem; }
.haven-privacy-settings input { accent-color: #92704d; height: 20px; margin: 0; width: 20px; }
.haven-privacy-settings small { color: #627587; display: block; font-size: .82rem; }
.haven-privacy-choice { background: none; border: 0; color: inherit; cursor: pointer; font: inherit; padding: 0; text-decoration: none; }
.haven-privacy-choice:hover { color: #17344f; text-decoration: underline; text-underline-offset: .15em; }
.haven-privacy-choice:focus-visible { color: #17344f; outline: 2px solid currentColor; outline-offset: 3px; }
.haven-map-permission { align-items: center; background: #edf3f8; color: #17344f; display: flex; flex-direction: column; gap: .7rem; justify-content: center; min-height: 200px; padding: 1.4rem; text-align: center; }
.map-surface-listings #listing-map > .haven-map-permission { min-height: 100%; }
#map > .haven-map-permission { min-height: 390px; }
.haven-map-permission p { margin: 0; }
@media (max-width: 680px) {
  .haven-privacy-panel { border-radius: 16px 16px 0 0; bottom: 0; display: block; left: 0; max-height: 86vh; max-height: 86dvh; padding: .9rem 1rem calc(.85rem + env(safe-area-inset-bottom, 0px)); transform: none; width: 100%; }
  .haven-privacy-panel::before { background: #d2c8bc; border-radius: 4px; content: ''; display: block; height: 4px; margin: -.35rem auto .65rem; width: 34px; }
  .haven-privacy-actions { display: grid; gap: .4rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: .65rem; }
  .haven-privacy-actions button { font-size: .88rem; min-height: 44px; min-width: 0; width: 100%; }
  .haven-privacy-settings { margin-top: 1rem; }
}
