/**
 * mobile.css - Cross-browser & mobile-first base styles
 * Ensures consistent rendering on Chrome, Safari, Firefox, Edge
 * and proper layout on mobile devices (including iOS notch/safe areas)
 */

/* === Cross-browser reset & normalization === */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  tap-highlight-color: transparent;
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: -webkit-fill-available;
  min-height: 100dvh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img,
svg,
video {
  max-width: 100%;
  height: auto;
  display: block;
}

/* === Safe area: use env() in page-level styles for padding === */

/* === Flexbox fallbacks for older Safari === */
.flex,
.flex-wrap,
.d-flex {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
}

.flex-wrap {
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
}

/* === Print color fidelity (Safari/Chrome) === */
@media print {
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}
