/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

/* Custom Leaflet marker styles */
.custom-marker-icon {
  background: transparent;
  border: none;
}

.marker-logo {
  width: 32px;
  height: 32px;
  border-radius: 6px;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.15), 0 2px 4px -1px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

.marker-logo svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Clean up Leaflet popup styles */
.leaflet-popup-content-wrapper {
  border-radius: 8px;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.leaflet-popup-tip {
  box-shadow: 0 3px 14px rgba(0, 0, 0, 0.1);
}

/* Custom cluster marker styles */
.marker-cluster-custom {
  background: transparent;
  border: none;
}

.cluster-marker {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #3b82f6;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 14px;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  border: 3px solid white;
}

/* Location labels */
.location-label {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  font-size: 18px;
  font-weight: 700;
  color: oklch(0.727 0.181 50.3); /* --primary color (orange) */
  white-space: nowrap;
  transition: opacity 0.2s ease;
  text-shadow:
    -1.5px -1.5px 0 white,
    1.5px -1.5px 0 white,
    -1.5px 1.5px 0 white,
    1.5px 1.5px 0 white,
    0 0 6px rgba(255, 255, 255, 0.9);
}

.location-label::before {
  display: none !important;
}

/* Modal dialog - animations require raw CSS (@starting-style, allow-discrete) */
.modal-dialog {
  background: transparent;
  border: none;
  padding: 0;
  transition:
    opacity 150ms ease-out,
    scale 150ms ease-out,
    overlay 150ms ease-out allow-discrete,
    display 150ms ease-out allow-discrete;
}

.modal-dialog::backdrop {
  transition:
    opacity 150ms ease-out,
    display 150ms ease-out allow-discrete,
    overlay 150ms ease-out allow-discrete;
}

@starting-style {
  .modal-dialog[open] {
    opacity: 0;
    scale: 0.95;
  }
  .modal-dialog[open]::backdrop {
    opacity: 0;
  }
}

.modal-dialog:not([open]) {
  opacity: 0;
  scale: 0.95;
}

.modal-dialog:not([open])::backdrop {
  opacity: 0;
}

body:has(dialog:modal) {
  overflow: hidden;
}
