/* =====================================================
   ROOT
===================================================== */

:root{
  --card-radius: 1rem;
}

.container {
  max-width: 1200px;
}

/* =====================================================
   BASE BACKGROUND
===================================================== */

body {
  background-color: #eef1f5;
}

/* =====================================================
   NAVBAR
===================================================== */

.navbar.sticky-top {
  --bs-navbar-padding-y: .35rem;
  box-shadow: 0 1px 4px rgba(0,0,0,.05);
}

.nav-link.active{
  font-weight:600;
}

.navbar .nav-link {
  transition: background-color 0.15s ease, color 0.15s ease;
  border-radius: .5rem;
  padding: .4rem .75rem;
}

[data-bs-theme="light"] .navbar {
  background-color: #ffffff !important;
  border-bottom: 1px solid rgba(0,0,0,0.14) !important;
}

[data-bs-theme="light"] .navbar .nav-link:hover {
  background-color: rgba(0,0,0,0.05);
}

[data-bs-theme="dark"] .navbar {
  border-bottom: 1px solid rgba(255,255,255,0.10);
}

[data-bs-theme="dark"] .navbar .nav-link:hover {
  background-color: rgba(255,255,255,0.08);
}

/* =====================================================
   CARD SYSTEM
===================================================== */

.card {
  background-color: #ffffff;
  border-radius: var(--card-radius);
  border: 1px solid rgba(0,0,0,0.14) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.04);
  transition: box-shadow 0.2s ease, transform 0.15s ease;
}

.card:hover {
  box-shadow: 0 10px 24px rgba(0,0,0,0.06);
  transform: translateY(-2px);
}

.card-body {
  padding: 1.5rem 1.75rem;
}

[data-bs-theme="dark"] body {
  background-color: #121212;
}

[data-bs-theme="dark"] .card {
  background-color: #1b1b1b;
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 6px 20px rgba(0,0,0,0.4);
}

/* =====================================================
   TABLES
===================================================== */

.table-responsive{
  border-radius: .75rem;
}

.table thead {
  background-color: #f2f4f7;
}

[data-bs-theme="dark"] .table thead {
  background-color: #2a2a2a;
}

.table thead th {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 600;
  color: var(--bs-secondary-color);
}

.table tbody tr {
  border-bottom: 1px solid rgba(0,0,0,0.20) !important;
  transition: background-color 0.15s ease;
}

.table-hover tbody tr:hover {
  background-color: rgba(13,110,253,0.04);
}

[data-bs-theme="dark"] .table tbody tr {
  border-bottom: 1px solid rgba(255,255,255,0.05);
}

[data-bs-theme="dark"] .table-hover tbody tr:hover {
  background-color: rgba(255,255,255,0.05);
}

[data-bs-theme="dark"] .table {
  color: #e4e4e4;
}

/* =====================================================
   FORMS
===================================================== */

.input-group .form-control,
.form-select {
  border: 1px solid rgba(0,0,0,0.08);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.input-group .form-control:focus,
.form-select:focus {
  box-shadow: 0 0 0 3px rgba(13,110,253,0.15);
  border-color: #0d6efd;
}

[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
  background-color: #222;
  color: #e4e4e4;
  border-color: rgba(255,255,255,0.08);
}

[data-bs-theme="dark"] .form-control::placeholder {
  color: rgba(255,255,255,0.4);
}

/* =====================================================
   BUTTONS
===================================================== */

.table .btn {
  transition: background-color 0.15s ease, transform 0.08s ease, box-shadow 0.15s ease;
}

.table .btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

[data-bs-theme="dark"] .table .btn:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

/* =====================================================
   BADGES
===================================================== */

.badge {
  font-weight: 500;
  letter-spacing: .3px;
  padding: .45em .75em;
}

/* =====================================================
   FOOTER
===================================================== */

.app-footer {
  background-color: #e6ebf2;   /* darker than body */
  border-top: 1px solid rgba(0,0,0,0.12) !important;
}

[data-bs-theme="dark"] .app-footer {
  background-color: #1a1a1a;
  border-top: 1px solid rgba(255,255,255,0.15);
}

.app-footer .small {
  letter-spacing: .3px;
}

/* =====================================================
   UTILITIES
===================================================== */

.required::after{
  content:" *";
  color: var(--bs-danger);
}

.small-muted{
  font-size:.9rem;
  color: var(--bs-secondary-color);
}

.toast-stack{
  position: fixed;
  bottom: 0;
  right: 0;
  padding: 1rem;
  z-index: 1080;
}