html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

/* PWA Install Banner Style */
.pwa-install-prompt {
  position: fixed;
  bottom: 24px;
  left: 24px;
  right: 24px;
  z-index: 9999;
  max-width: 600px;
  margin: 0 auto;
  background: rgba(15, 23, 42, 0.88);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1.5rem;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3), 0 8px 10px -6px rgba(0, 0, 0, 0.3);
  animation: pwaSlideUp 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  direction: rtl;
}

.pwa-prompt-container {
  border-radius: 1.5rem;
}

/* iOS Fallback Instructions style */
.pwa-ios-instructions {
  position: fixed;
  bottom: 24px;
  left: 24px;
  right: 24px;
  z-index: 9999;
  max-width: 480px;
  margin: 0 auto;
  background: rgba(30, 41, 59, 0.95);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 1.25rem;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3);
  animation: pwaSlideUp 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  direction: rtl;
}

.pwa-ios-container {
  border-radius: 1.25rem;
}

@keyframes pwaSlideUp {
  from {
    transform: translateY(100px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* Mobile Safe Areas and Touch Targets */
@media (max-width: 768px) {
  body {
    padding-bottom: calc(60px + env(safe-area-inset-bottom));
  }
  
  .navbar-custom {
    padding-top: calc(0.75rem + env(safe-area-inset-top));
  }
  
  /* Touch target safety sizes */
  .menu-item, 
  .btn,
  .nav-link-custom {
    min-height: 46px;
  }
  
  .table-responsive {
    border-radius: 1rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Optimize dashboards for vertical screens */
  .sidebar {
    width: 250px;
  }
  
  .main-content, .content-body {
    padding: 1.25rem !important;
  }
  
  .stat-card {
    padding: 1.25rem !important;
    border-radius: 1.5rem !important;
  }
}