.urbanixm-container {
  margin: 20px 0 20px 0;
  border: solid 1px #999;
  padding: 10px;
}

.urbanixm-header {
  margin: 0 0 20px 0;
}

.urbanixm-sources {
  margin: 20px 0 0 0;
}

.urbanixm-header-label,
.urbanixm-sources-label {
  font-weight: 600;
  margin-right: 5px;
}

.urbanixm-powered-by {
  font-size: 12pt;
  text-align: right;
}

.urbanixm-sources-group {
  margin: 0 5px 0 0;
}

.urbanixm-container a {
  text-decoration: none;
  box-shadow: none;
  color: #0073aa;
  transition: color 0.2s ease;
}

.urbanixm-container a:hover {
  color: #005a87;
  text-decoration: underline;
}

/* Charts */

/* Maps */

.leaflet-container {
  background: #f7f5f7;
  height: 400px;
}

.leaflet-popup-content {
  padding: 15px 30px 30px 30px;
  overflow-y: auto;
}

.leaflet-popup-content h2 {
  font-weight: 300;
  margin-top: 0;
  margin-bottom: 10px;
  font-size: 1.1em;
  color: #333;
}

.leaflet-popup-content h3.source-reference-head {
  font-size: 0.9em;
  margin-top: 15px;
  margin-bottom: 8px;
}

.leaflet-popup-content p {
  font-weight: 300;
  line-height: 1.5;
  text-align: justify;
}

.slick-prev:before,
.slick-next:before {
  color: #09529b !important;
}

.quote-source {
  text-align: right;
}

.source-reference-head {
  font-weight: 600;
  margin-bottom: 10px;
  color: #333;
  text-transform: uppercase;
}

/* Loading States */
.urbanixm-loading {
  text-align: center;
  padding: 20px;
  color: #666;
  background-color: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 4px;
}

.urbanixm-loading p {
  margin: 0;
  font-style: italic;
}

/* Add a simple loading animation */
.urbanixm-loading::after {
  content: '';
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-left: 10px;
  border: 2px solid #f3f3f3;
  border-top: 2px solid #70267c;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* Error States */
.urbanixm-error {
  text-align: center;
  padding: 20px;
  color: #721c24;
  background-color: #f8d7da;
  border: 1px solid #f5c6cb;
  border-radius: 4px;
}

.urbanixm-error p {
  margin: 0;
  font-weight: 500;
}

/* Error Boundary Styles */
.urbanixm-error-boundary {
  text-align: center;
  padding: 20px;
  background-color: #fff3e0;
  border: 1px solid #ffcc02;
  border-radius: 8px;
  margin: 20px 0;
}

.urbanixm-widget-error {
  text-align: center;
  padding: 20px;
  background-color: #f8f9fa;
  border: 1px solid #dee2e6;
  border-radius: 8px;
  margin: 20px 0;
}

.urbanixm-error-icon {
  font-size: 2em;
  margin-bottom: 10px;
  display: block;
}

.urbanixm-error-boundary h3,
.urbanixm-widget-error h3 {
  color: #e65100;
  margin: 0 0 16px 0;
  font-size: 20px;
  font-weight: 600;
}

.urbanixm-error-boundary p,
.urbanixm-widget-error p {
  color: #6c757d;
  margin: 0 0 16px 0;
  line-height: 1.5;
}

.urbanixm-retry-button {
  background-color: #0073aa;
  color: white;
  border: none;
  padding: 8px 16px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 14px;
  margin: 10px 0;
  transition: background-color 0.2s ease;
}

.urbanixm-retry-button:hover {
  background-color: #005a87;
}

.urbanixm-retry-button:focus {
  outline: 2px solid #ffffff;
  outline-offset: 2px;
}

.urbanixm-error-suggestions {
  text-align: left;
  max-width: 400px;
  margin: 20px auto;
  padding: 16px;
  background-color: #f8f9fa;
  border-radius: 4px;
  border-left: 4px solid #70267c;
}

.urbanixm-error-suggestions ul {
  margin: 8px 0 0 0;
  padding-left: 20px;
  text-align: left;
  display: inline-block;
}

.urbanixm-error-suggestions li {
  margin-bottom: 5px;
  color: #495057;
}

.urbanixm-error-details {
  margin-top: 20px;
  text-align: left;
  background-color: #f8f9fa;
  border: 1px solid #dee2e6;
  border-radius: 4px;
  padding: 16px;
}

.urbanixm-error-details summary {
  cursor: pointer;
  font-weight: 600;
  color: #495057;
  margin-bottom: 8px;
}

.urbanixm-error-details pre {
  background-color: #f1f3f4;
  padding: 12px;
  border-radius: 4px;
  overflow-x: auto;
  font-size: 12px;
  color: #d32f2f;
  margin: 8px 0;
}

/* Accessibility Styles */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Focus styles for keyboard navigation */
.urbanixm-container a:focus,
.urbanixm-container button:focus {
  outline: 2px solid #0073aa;
  outline-offset: 2px;
  box-shadow: 0 0 0 2px rgba(0, 115, 170, 0.3);
}

/* Improved heading hierarchy */
.urbanixm-header h2 {
  margin: 0;
  font-size: 13pt;
  font-weight: 600;
}

.urbanixm-header p {
  font-size: 11pt;
}


.urbanixm-sources h3 {
  margin: 0 0 10px 0;
  font-size: 13pt;
  font-weight: 600;
  color: #666;
}

.urbanixm-sources p {
  font-size: 11pt;
}

.urbanixm-error-suggestions h4 {
  margin: 10px 0 5px 0;
  font-size: 0.9em;
  font-weight: 600;
  color: #666;
}

/* Source group styling for better visual hierarchy */
.source-group-title {
  font-weight: 500;
  margin-right: 8px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .urbanixm-container {
    border: 2px solid #000;
  }
  
  .urbanixm-retry-button {
    border: 2px solid #000;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .urbanixm-retry-button {
    transition: none;
  }
  
  .urbanixm-loading {
    animation: none;
  }
}

/* Color contrast improvements */


/*# sourceMappingURL=261.chunk.css.map*/