/* Shared mobile/responsive safety layer for all UI surfaces */
*,
*::before,
*::after {
  min-width: 0;
}

img,
svg,
video,
canvas {
  max-width: 100%;
  height: auto;
}

.table-responsive,
.history-table,
.return-table,
.log-table {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.history-table,
.return-table,
.log-table {
  min-width: 680px;
}

@media (max-width: 992px) {
  .page-header-block,
  .filter-bar .row,
  .pagination-container,
  .page-footer,
  .footer {
    row-gap: 10px;
  }

  .page-header-block {
    flex-direction: column !important;
    align-items: flex-start !important;
    text-align: left !important;
  }

  .notif-dropdown,
  #notifDropdown {
    right: 0 !important;
    left: auto !important;
    width: min(380px, calc(100vw - 20px)) !important;
    max-width: calc(100vw - 20px) !important;
  }
}

@media (max-width: 768px) {
  .container,
  .container-fluid {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .page-body,
  .page-content {
    padding: 16px !important;
  }

  .main-header,
  .topbar {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .header-actions,
  .topbar-right {
    gap: 6px !important;
  }

  .header-user-name,
  .topbar-username {
    display: none !important;
  }

  .header-datetime,
  .topbar-clock {
    display: none !important;
  }

  .page-body .row > [class*="col-"],
  .page-content .row > [class*="col-"],
  .filter-bar .row > [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  .page-body .d-flex.gap-2,
  .page-content .d-flex.gap-2,
  .filter-bar .d-flex.gap-2 {
    flex-wrap: wrap !important;
  }

  .page-body .d-flex.gap-2 > .btn,
  .page-content .d-flex.gap-2 > .btn,
  .filter-bar .d-flex.gap-2 > .btn {
    flex: 1 1 auto;
  }

  .card-body,
  .card-header {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}

@media (max-width: 576px) {
  .btn,
  button,
  input,
  select,
  textarea {
    font-size: 14px !important;
  }

  .btn {
    min-height: 40px;
  }

  .site-header .header-inner {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .brand-campus {
    display: none !important;
  }

  .notif-dropdown,
  #notifDropdown {
    position: fixed !important;
    top: 64px !important;
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    max-height: min(420px, calc(100dvh - 82px)) !important;
    border-radius: 8px !important;
    overflow: hidden !important;
  }

  .notif-header {
    padding: 11px 13px !important;
  }

  .notif-list {
    max-height: min(360px, calc(100dvh - 138px)) !important;
    overflow-y: auto !important;
    padding-bottom: 16px;
    -webkit-overflow-scrolling: touch;
  }

  .notif-item {
    position: relative !important;
    gap: 9px !important;
    padding: 11px 13px !important;
  }

  .notif-icon {
    width: 32px !important;
    height: 32px !important;
    flex: 0 0 32px !important;
  }

  .notif-title,
  .notif-text {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
  }

  .notif-title {
    -webkit-line-clamp: 1;
  }

  .notif-text {
    -webkit-line-clamp: 2;
  }
}
