:root {
  --brand-navy: #0F1E2A;
  --brand-navy-2: #1B2D3B;
  --brand-gold: #C8A66A;
  --brand-gold-soft: #E9D5A0;
  --brand-cyan: #5ED9E8;
  --brand-cyan-soft: #D8F9FF;
  --brand-orange: #E79A52;
  --brand-orange-soft: #F9D7AE;
  --text-primary: #111827;
  --text-secondary: #5F6B7A;
  --text-muted: #7A8595;
  --bg-page: #F7F9FB;
  --bg-surface: #FFFFFF;
  --bg-soft: #EDF1F5;
  --border: #DCE3EA;
  --success: #2FBF71;
  --warning: #F2B94B;
  --danger: #D75B5B;
  --shadow-soft: 0 8px 24px rgba(15, 30, 42, 0.08);
  --shadow-card: 0 10px 32px rgba(15, 30, 42, 0.12);
}

body {
  background-color: var(--bg-page) !important;
  color: var(--text-primary) !important;
  font-family: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.bg-gradient-primary,
body.bg-gradient-primary {
  background: linear-gradient(135deg, var(--brand-navy) 0%, var(--brand-navy-2) 100%) !important;
}

.text-gray-900,
.text-primary,
.text-gray-800 {
  color: var(--text-primary) !important;
}

.text-gray-600,
.text-gray-700,
.text-gray-500 {
  color: var(--text-secondary) !important;
}

.card,
.table,
.modal-content,
.dropdown-menu,
.form-control,
.custom-select,
.input-group-text {
  border-color: var(--border) !important;
}

.card,
.modal-content,
.dropdown-menu {
  box-shadow: var(--shadow-soft);
}

.sidebar {
  background: linear-gradient(180deg, var(--brand-navy) 0%, var(--brand-navy-2) 100%) !important;
}

.sidebar .nav-item .nav-link {
  color: rgba(255, 255, 255, 0.8) !important;
}

.sidebar .nav-item .nav-link:hover,
.sidebar .nav-item.active .nav-link {
  color: #ffffff !important;
  background: rgba(255, 255, 255, 0.08);
}

.sidebar-brand {
  color: #ffffff !important;
  text-decoration: none !important;
}

.royal-brand {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.75rem !important;
  text-decoration: none !important;
  color: #ffffff !important;
}

.royal-brand__logo {
  width: 2.1rem;
  height: auto;
  filter: drop-shadow(0 4px 8px rgba(200, 166, 106, 0.35));
}

.sidebar-brand-text,
.royal-brand__text {
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.topbar {
  background: var(--bg-surface) !important;
  border-bottom: 1px solid var(--border);
}

.navbar-light .navbar-nav .nav-link,
.topbar .nav-link,
.topbar .dropdown-toggle {
  color: var(--text-primary) !important;
}

.btnXXX,
.form-controlXXX,
.custom-select,
.custom-file-label,
.btn-user {
  border-radius: 999px !important;
}

.btn-primary {
  background-color: var(--brand-navy) !important;
  border-color: var(--brand-navy) !important;
  color: #ffffff !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled):active {
  background-color: var(--brand-navy-2) !important;
  border-color: var(--brand-navy-2) !important;
  color: #ffffff !important;
}

.btn-secondary {
  background-color: var(--brand-gold) !important;
  border-color: var(--brand-gold) !important;
  color: var(--brand-navy) !important;
}

.btn-info {
  background-color: var(--brand-cyan) !important;
  border-color: var(--brand-cyan) !important;
  color: var(--brand-navy) !important;
}

.btn-warning {
  background-color: var(--brand-orange) !important;
  border-color: var(--brand-orange) !important;
  color: #fff !important;
}

.btn-success {
  background-color: var(--success) !important;
  border-color: var(--success) !important;
}

.btn-danger {
  background-color: var(--danger) !important;
  border-color: var(--danger) !important;
}

.page-item.active .page-link {
  background-color: var(--brand-gold) !important;
  border-color: var(--brand-gold) !important;
  color: var(--brand-navy) !important;
}

.page-link {
  color: var(--brand-navy) !important;
}

.form-control:focus,
.custom-select:focus,
.custom-file-input:focus ~ .custom-file-label {
  border-color: var(--brand-cyan) !important;
  box-shadow: 0 0 0 0.2rem rgba(94, 217, 232, 0.2) !important;
}

.h1, .h2, .h3, .h4, .h5, .h6,
h1, h2, h3, h4, h5, h6 {
  color: var(--brand-navy);
  font-weight: 800;
}

.text-success { color: var(--success) !important; }
.text-warning { color: var(--warning) !important; }
.text-danger { color: var(--danger) !important; }
.text-info { color: var(--brand-cyan) !important; }

.badge-primary {
  background-color: var(--brand-navy) !important;
}

.badge-warning {
  background-color: var(--brand-orange) !important;
}

.badge-info {
  background-color: var(--brand-cyan) !important;
  color: var(--brand-navy) !important;
}

.badge-success {
  background-color: var(--success) !important;
}

.table thead th {
  background: var(--brand-navy);
  color: #ffffff;
  border-color: var(--brand-navy);
}

.alert-primary {
  background-color: rgba(15, 30, 42, 0.08);
  border-color: rgba(15, 30, 42, 0.2);
  color: var(--brand-navy);
}

.brand-auth {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  margin: 0 auto 1.5rem;
  text-decoration: none;
}

.brand-auth__logo {
  width: 300px;
  height: auto;
  filter: drop-shadow(0 4px 8px rgba(200, 166, 106, 0.35));
}

.brand-auth__text {
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #ffffff;
}

.footer-copyright {
  color: var(--text-secondary);
}

@media (max-width: 768px) {
  .brand-auth__text {
    font-size: 1.15rem;
    letter-spacing: 0.06em;
  }

  .sidebar-brand-text,
  .royal-brand__text {
    font-size: 0.72rem;
    letter-spacing: 0.05em;
  }
}
.ui-autocomplete {
    z-index: 2000 !important;
    max-height: 240px;
    overflow-y: auto;
    overflow-x: hidden;
    background-color: #ffffff;
    border: 1px solid var(--border);
    box-shadow: var(--shadow-soft);
}
