/* Mobile CSS Optimizations */

/* Touch-friendly tap targets - minimum 44px */
@media (max-width: 768px) {
  .button,
  .button-primary,
  .button-secondary,
  .button-danger,
  input[type="submit"],
  button {
    min-height: 44px;
    min-width: 44px;
    padding: var(--spacing-sm) var(--spacing-md);
  }

  /* Touch-friendly form inputs */
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="number"],
  input[type="date"],
  input[type="datetime-local"],
  select,
  textarea {
    min-height: 44px;
    font-size: 16px; /* Prevents zoom on iOS */
    padding: var(--spacing-sm);
  }

  /* Radio and checkbox tap targets */
  input[type="radio"],
  input[type="checkbox"] {
    min-width: 24px;
    min-height: 24px;
  }

  .radio-option,
  .checkbox-option {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: var(--spacing-sm) 0;
  }

  /* Responsive tables - convert to cards */
  .admin-table {
    display: block;
  }

  .admin-table thead {
    display: none;
  }

  .admin-table tbody,
  .admin-table tr,
  .admin-table td {
    display: block;
  }

  .admin-table tr {
    margin-bottom: var(--spacing-md);
    background: white;
    border-radius: var(--radius-md);
    padding: var(--spacing-md);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  }

  .admin-table td {
    padding: var(--spacing-xs) 0;
    border: none;
  }

  .admin-table td::before {
    content: attr(data-label);
    font-weight: 600;
    display: inline-block;
    margin-right: var(--spacing-sm);
    color: var(--color-gray-700);
  }

  /* Sticky form headers on mobile */
  .form-section h2 {
    position: sticky;
    top: 0;
    background: white;
    z-index: 10;
    padding: var(--spacing-md) 0;
    margin: 0 0 var(--spacing-md) 0;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  }

  /* Bottom sheet style modals */
  .modal {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    top: auto;
    max-height: 90vh;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    transform: translateY(100%);
    transition: transform 0.3s ease;
  }

  .modal.active {
    transform: translateY(0);
  }

  /* Full-width buttons on mobile */
  .form-actions {
    flex-direction: column;
  }

  .form-actions .button {
    width: 100%;
  }

  /* Larger touch area for nav links */
  .admin-nav-link {
    min-height: 48px;
    padding: var(--spacing-md) var(--spacing-lg);
  }

  /* Optimize spacing for mobile */
  .container {
    padding: var(--spacing-md);
  }

  .card {
    margin-bottom: var(--spacing-md);
  }

  /* Mobile-friendly pagination */
  .pagination a,
  .pagination span {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

/* iOS-specific optimizations */
@supports (-webkit-touch-callout: none) {
  /* iOS Safari specific */
  input,
  textarea,
  select {
    -webkit-appearance: none;
    border-radius: var(--radius-sm);
  }

  /* Prevent iOS zoom on focus */
  input:focus,
  textarea:focus,
  select:focus {
    font-size: 16px;
  }

  /* Smooth scrolling for iOS */
  .admin-main,
  .modal-body {
    -webkit-overflow-scrolling: touch;
  }
}

/* Android-specific optimizations */
@media (max-width: 768px) {
  /* Optimize for Chrome on Android */
  * {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0.1);
  }

  /* Remove default button styling on Android */
  button,
  input[type="submit"] {
    -webkit-appearance: none;
    appearance: none;
  }
}

/* Pull-to-refresh visual indicator */
@media (max-width: 768px) {
  body {
    overscroll-behavior-y: contain;
  }

  .pull-to-refresh {
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%) translateY(-100px);
    transition: transform 0.3s ease;
    z-index: 1000;
    background: white;
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--radius-full);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  }

  .pull-to-refresh.active {
    transform: translateX(-50%) translateY(var(--spacing-md));
  }
}

/* Landscape mode optimizations */
@media (max-width: 768px) and (orientation: landscape) {
  /* Reduce vertical spacing in landscape */
  .form-section {
    padding: var(--spacing-md);
  }

  .form-row {
    gap: var(--spacing-sm);
  }

  /* Make sidebar more compact */
  .admin-sidebar {
    width: 50px;
  }

  .admin-main {
    margin-left: 50px;
  }
}

/* High DPI displays */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  /* Crisp borders on retina */
  .card,
  .button,
  input,
  textarea,
  select {
    border-width: 0.5px;
  }
}

/* Accessibility - larger text option */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
