@import url("https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css");

* {
  -webkit-font-smoothing: antialiased;
  box-sizing: border-box;
}

html,
body {
  margin: 0px;
  min-height: 100%;
}

button:focus-visible {
  outline: 2px solid #4a90e2 !important;
  outline: -webkit-focus-ring-color auto 5px !important;
}

a {
  text-decoration: none;
}

@font-face {
  font-family: "Geist-Bold";
  src: local("Geist-Bold");
}

@font-face {
  font-family: "Instrument Serif-Italic";
  src: local("Instrument Serif-Italic");
}

@font-face {
  font-family: "Geist-SemiBold";
  src: local("Geist-SemiBold");
}

@font-face {
  font-family: "Geist-Regular";
  src: local("Geist-Regular");
}

@font-face {
  font-family: "Instrument Serif-Regular";
  src: local("Instrument Serif-Regular");
}

/* ==========================================================================
   Mobile & Responsive Enhancements
   ========================================================================== */

.table-responsive {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-top: 16px;
  border-radius: 8px;
  border: 1px solid #e4dfd5;
}

.mobile-nav-toggle {
  display: none;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: #ffffff;
  font-size: 20px;
  padding: 6px 12px;
  border-radius: 6px;
  cursor: pointer;
}

@media (max-width: 768px) {
  body {
    flex-direction: column !important;
  }

  .sidebar {
    width: 100% !important;
    padding: 16px 20px !important;
    position: relative;
    z-index: 100;
  }

  .sidebar .brand {
    margin-bottom: 0 !important;
    justify-content: space-between;
    width: 100%;
  }

  .mobile-nav-toggle {
    display: block !important;
  }

  .sidebar .nav-links,
  .sidebar .logout-btn {
    display: none !important;
  }

  .sidebar.mobile-open .nav-links {
    display: flex !important;
    margin-top: 16px;
  }

  .sidebar.mobile-open .logout-btn {
    display: block !important;
    margin-top: 16px;
    width: 100%;
  }

  .main-content {
    padding: 20px 16px !important;
  }

  .header-bar {
    flex-direction: row !important;
    align-items: center !important;
    gap: 12px !important;
    margin-bottom: 20px !important;
  }

  .header-bar h1 {
    font-size: 26px !important;
  }

  .form-grid,
  .options-grid {
    grid-template-columns: 1fr !important;
  }

  .status-card {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 16px !important;
  }

  .status-card .pay-btn {
    width: 100%;
  }

  table {
    min-width: 650px;
  }

  .modal-card {
    padding: 20px !important;
    width: 95% !important;
  }
}