/* ========== GLOBAL OVERFLOW PREVENTION ========== */
/* line 5, app/assets/stylesheets/mobile_optimizations.scss */
* {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box !important;
  max-width: 100vw !important;
}
/* ========== INTERACTIVE ELEMENTS EXCEPTIONS ========== */
/* line 14, app/assets/stylesheets/mobile_optimizations.scss */
button,
a,
input,
select,
textarea,
[data-action],
[onclick],
[data-controller] button,
[role="button"],
.pill,
.nav-btn,
.zoom-btn,
.retry-btn {
  -webkit-user-select: auto !important;
  -webkit-touch-callout: auto !important;
  touch-action: manipulation !important;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0.1) !important;
  cursor: pointer !important;
}
/* ========== SCROLLABLE ELEMENTS EXCEPTIONS ========== */
/* line 38, app/assets/stylesheets/mobile_optimizations.scss */
.hourly-forecast-component,
.daily-forecast-component,
.chart-selector-scroll,
[data-controller="hourly-forecast"],
[data-controller="daily-forecast"] {
  -webkit-user-select: auto !important;
  -webkit-touch-callout: auto !important;
  touch-action: pan-x pan-y !important;
  -webkit-overflow-scrolling: touch !important;
  overflow-x: auto !important;
  cursor: grab !important;
}
/* line 56, app/assets/stylesheets/mobile_optimizations.scss */
.hourly-forecast-component:active,
.daily-forecast-component:active {
  cursor: grabbing !important;
}
/* line 61, app/assets/stylesheets/mobile_optimizations.scss */
html, body {
  height: 100%;
  height: 100vh;
  height: 100dvh;
  margin: 0;
  padding: 0;
  overflow-x: hidden !important;
  background: #000;
  -webkit-overflow-scrolling: touch;
  width: 100% !important;
  max-width: 100vw !important;
  box-sizing: border-box !important;
}
/* Allow fullscreen modals to work */
/* line 76, app/assets/stylesheets/mobile_optimizations.scss */
/* line 86, app/assets/stylesheets/mobile_optimizations.scss */
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* Prevent any element from exceeding viewport width */
/* line 93, app/assets/stylesheets/mobile_optimizations.scss */
div, section, article, main, header, footer, nav, aside, ul, ol, li, p, h1, h2, h3, h4, h5, h6 {
  max-width: 100vw !important;
  box-sizing: border-box !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
}
/* CRITICAL EXCEPTIONS: Elements that NEED horizontal scroll */
/* line 101, app/assets/stylesheets/mobile_optimizations.scss */
.chart-selector-scroll,
[data-hourly-forecast-target="container"],
.forecast-day {
  max-width: none !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  width: 100% !important;
  min-width: 100% !important;
}
/* Ensure safe area support for notched devices */
@supports (padding: env(safe-area-inset-left)) {
  /* line 118, app/assets/stylesheets/mobile_optimizations.scss */
  body {
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
  }
}
/* Extra safety for mobile screens */
@media (max-width: 640px) {
  /* line 126, app/assets/stylesheets/mobile_optimizations.scss */
  * {
    max-width: 100vw !important;
    overflow-x: show !important;
  }
  /* CRITICAL: Allow horizontal scroll for specific scrollable containers */
  /* line 132, app/assets/stylesheets/mobile_optimizations.scss */
  
.chart-selector-scroll,
[data-hourly-forecast-target="container"],
.forecast-day {
    max-width: none !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    width: 100% !important;
    min-width: 100% !important;
  }
}
/* ========== FORCE INTERACTIVE ELEMENTS TO BE CLICKABLE ========== */
/* line 149, app/assets/stylesheets/mobile_optimizations.scss */
.radar-container button,
[data-action*="click"],
[data-controller] button,
.pill,
.nav-btn,
.zoom-btn,
.retry-btn {
  pointer-events: auto !important;
  -webkit-user-select: auto !important;
  user-select: auto !important;
  touch-action: manipulation !important;
  -webkit-tap-highlight-color: rgba(59, 130, 246, 0.2) !important;
  position: relative !important;
  z-index: 1000 !important;
  cursor: pointer !important;
}
/* ========== FORCE SCROLLABLE ELEMENTS TO BE SCROLLABLE ========== */
/* line 171, app/assets/stylesheets/mobile_optimizations.scss */
.hourly-forecast-component,
.daily-forecast-component,
.chart-selector-scroll {
  pointer-events: auto !important;
  -webkit-user-select: auto !important;
  user-select: auto !important;
  touch-action: pan-x pan-y !important;
  -webkit-overflow-scrolling: touch !important;
  position: relative !important;
  z-index: 500 !important;
  overflow-x: auto !important;
}
/* Ensure Stimulus controllers can connect */
/* line 190, app/assets/stylesheets/mobile_optimizations.scss */
[data-controller] {
  pointer-events: auto !important;
}
