/*
 * 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.
 */

/* Prevent horizontal scrolling and dragging on mobile */
html, body {
  overflow-x: hidden;
  max-width: 100vw;
}

/* Placeholder text must meet the same contrast bar as body text. */
::placeholder {
  color: #4b5563;
  opacity: 1;
}

/*
 * User-entered identifiers (motor types, serial numbers, emails, etc.) can be
 * long unbroken strings. On mobile Chrome those strings can increase the body
 * scroll width even when their card visually fits, making the whole page pan to
 * the right. Let app content break such tokens instead of widening the page.
 */
.app-content {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* Only allow vertical panning on touch devices for native feel */
@media (pointer: coarse) {
  html,
  body,
  input,
  textarea,
  select {
    touch-action: pan-y;
    overscroll-behavior-x: none;
  }
}

/* Respect reduced-motion preferences for Stimulus-driven transitions. */
@media (prefers-reduced-motion: reduce) {
  [data-controller="flash"],
  [data-controller="flash"] *,
  [data-controller="sidebar"],
  [data-controller="sidebar"] * {
    transition: none !important;
    animation: none !important;
  }
}
