/* Shared mobile fixes for the PTO system pages. */

html {
  overflow-x: hidden;
}

body {
  min-width: 0;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
}

.table-responsive {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.card,
.modal-content,
.btn,
.form-control,
.form-select {
  border-radius: 8px;
}

.navbar .container-fluid {
  min-width: 0;
}

.navbar-text {
  max-width: 45vw;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 767.98px) {
  body {
    font-size: 0.95rem;
  }

  .navbar-brand img {
    width: 125px !important;
  }

  .navbar-text {
    max-width: 52vw;
    font-size: 0.82rem;
  }

  .container-fluid.flex-grow-1 {
    padding-left: 0;
    padding-right: 0;
  }

  .container-fluid.flex-grow-1 > .row {
    margin-left: 0;
    margin-right: 0;
  }

  .container-fluid.flex-grow-1 > .row > [class*="bg-dark"] {
    width: 100%;
    min-height: auto !important;
  }

  .container-fluid.flex-grow-1 > .row > [class*="bg-dark"] .d-flex.flex-column {
    flex-direction: row !important;
    align-items: center;
    gap: 0.5rem;
    overflow-x: auto;
    padding: 0.75rem !important;
    white-space: nowrap;
  }

  .container-fluid.flex-grow-1 > .row > [class*="bg-dark"] h5 {
    display: none;
  }

  .container-fluid.flex-grow-1 > .row > [class*="bg-dark"] .nav-link,
  .container-fluid.flex-grow-1 > .row > [class*="bg-dark"] .btn {
    margin: 0 !important;
    flex: 0 0 auto;
  }

  .container-fluid.flex-grow-1 > .row > main {
    width: 100%;
    padding: 1rem !important;
  }

  .dashboard-layout {
    display: block !important;
  }

  .sidebar {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    padding: 80px 0.5rem 0.5rem !important;
    display: flex;
    gap: 0.5rem;
    overflow-x: auto;
    white-space: nowrap;
  }

  .sidebar a {
    flex: 0 0 auto;
    margin: 0 !important;
    padding: 0.65rem 0.85rem !important;
  }

  .content {
    margin-left: 0 !important;
    padding: 1rem !important;
    width: 100% !important;
  }

  main[style*="margin-top"] {
    margin-top: 1rem !important;
  }

  .hero {
    border-radius: 8px !important;
    padding: 1rem !important;
  }

  .display-6 {
    font-size: 1.85rem;
  }

  .card-body {
    padding: 1rem;
  }

  .row {
    --bs-gutter-x: 0.75rem;
  }

  .d-flex.justify-content-between,
  .d-flex.flex-md-row {
    gap: 0.75rem;
    flex-wrap: wrap;
  }

  .modal-dialog {
    margin: 0.75rem;
  }

  table {
    min-width: 680px;
  }

  .table-sm {
    min-width: 520px;
  }

  form.row,
  .row.g-2.align-items-end {
    row-gap: 0.75rem;
  }

  td[style*="min-width"] {
    min-width: 520px !important;
  }

  footer {
    padding: 1rem 0;
  }
}

@media (max-width: 575.98px) {
  .navbar .container-fluid {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
  }

  .btn {
    white-space: normal;
  }

  .col-md-6,
  .col-md-4,
  .col-md-3,
  .col-lg-6,
  .col-lg-4,
  .col-lg-3 {
    width: 100%;
  }

  .card-title,
  h2,
  h3,
  h5 {
    overflow-wrap: anywhere;
  }
}
