/* Base styles - minimal CSS that Tailwind/shadcn can't handle */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html,
body,
#root {
  height: 100%;
}

/* iOS PWA safe-area support */
:root {
  --safe-area-top: env(safe-area-inset-top, 0px);
  --safe-area-right: env(safe-area-inset-right, 0px);
  --safe-area-bottom: env(safe-area-inset-bottom, 0px);
  --safe-area-left: env(safe-area-inset-left, 0px);
  --safe-area-bottom-capped: min(var(--safe-area-bottom), 12px);
}

@supports (padding: constant(safe-area-inset-top)) {
  :root {
    --safe-area-top: constant(safe-area-inset-top);
    --safe-area-right: constant(safe-area-inset-right);
    --safe-area-bottom: constant(safe-area-inset-bottom);
    --safe-area-left: constant(safe-area-inset-left);
    --safe-area-bottom-capped: min(var(--safe-area-bottom), 12px);
  }
}

body {
  /* Prevent overscroll/bounce on mobile */
  overscroll-behavior: none;
  padding: var(--safe-area-top) var(--safe-area-right) var(--safe-area-bottom-capped)
    var(--safe-area-left);
  box-sizing: border-box;
}

#root {
  height: 100%;
  box-sizing: border-box;
}

/* Mobile sidebar override - ensures sidebar fills Sheet container */
[data-state] .sidebar {
  width: 100%;
  border-right: none;
}

/* Constrain Leaflet map z-index to stay below modals/sheets */
.leaflet-container {
  z-index: 0 !important;
}

.leaflet-pane {
  z-index: 0 !important;
}

.leaflet-control {
  z-index: 10 !important;
}
