@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Source+Sans+3:wght@400;600&display=swap");

:root {
  /* Paleta inspirada no AdminLTE v3 */
  --mm-primary: #343a40;
  /* Sidebar escura estilo AdminLTE */
  --mm-primary-light: #495057;
  --mm-primary-dark: #1d2124;
  --mm-primary-rgb: 52, 58, 64;

  --mm-accent: #28a745;
  /* Verde AdminLTE */
  --mm-success: #28a745;
  --mm-warning: #ffc107;
  /* Amarelo AdminLTE */
  --mm-danger: #dc3545;
  /* Vermelho AdminLTE */
  --mm-info: #17a2b8;
  /* Azul AdminLTE */
  --mm-blue: #007bff;

  /* Fundos: página em cinza-azulado, card branco */
  --mm-bg: #f4f6f9;
  /* Exato AdminLTE v3 */
  --mm-soft: #f4f6f9;
  --mm-card: #ffffff;
  --mm-ink: #212529;
  /* Texto escuro AdminLTE */
  --mm-muted: #6c757d;
  --mm-border: #dee2e6;
  /* Borda padrão AdminLTE */

  /* Sombras suaves duplas (estilo AdminLTE) */
  --mm-shadow-sm: 0 0 1px rgba(0, 0, 0, .125);
  --mm-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2);
  --mm-shadow-lg: 0 0 1px rgba(0, 0, 0, .125), 0 4px 10px rgba(0, 0, 0, .15);

  /* Tabler tokens override */
  --tblr-primary: var(--mm-accent);
  --tblr-primary-rgb: 40, 167, 69;
}

body {
  font-family: "Source Sans 3", sans-serif;
  font-size: 1rem;
  /* Padrão moderno (16px) */
  line-height: 1.5;
  color: var(--mm-ink);
  background: var(--mm-soft);
}

.navbar-brand {
  font-family: "Fraunces", serif;
  letter-spacing: 0.4px;
}

.navbar,
.navbar-light {
  background: linear-gradient(90deg, var(--mm-primary-dark) 0%, var(--mm-primary) 55%, var(--mm-primary-light) 100%) !important;
  box-shadow: 0 2px 10px rgba(var(--mm-primary-rgb), 0.22) !important;
}

.navbar .nav-link,
.navbar-expand-md .navbar-nav .nav-link,
.navbar-brand {
  color: #ffffff !important;
}

.navbar .nav-link:hover,
.navbar-expand-md .navbar-nav .nav-link:hover,
.navbar-brand:hover {
  color: #bfdbfe !important;
}

.navbar .nav-link.active,
.navbar-expand-md .navbar-nav .nav-link.active {
  color: #ffffff !important;
  border-bottom: 2px solid #bfdbfe !important;
}

/* Topbar: garantir legibilidade em fundo escuro */
.page-wrapper>.navbar .navbar-text,
.page-wrapper>.navbar .navbar-text strong,
.page-wrapper>.navbar .navbar-text span,
.page-wrapper>.navbar .navbar-text a,
.page-wrapper>.navbar .nav-link,
.page-wrapper>.navbar .nav-link i {
  color: #ffffff !important;
}

.page-wrapper>.navbar .navbar-text a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.page-wrapper>.navbar .navbar-text a:hover,
.page-wrapper>.navbar .nav-link:hover {
  color: #dbeafe !important;
}

.page-wrapper>.navbar .badge.bg-primary-lt {
  background: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
}

.navbar-vertical[data-bs-theme="dark"] {
  background: var(--mm-primary) !important;
  border-right: none !important;
  box-shadow: 4px 0 24px rgba(0, 0, 0, 0.05) !important;
}

.navbar-vertical .navbar-brand {
  padding: 1.5rem 1rem !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.navbar-vertical .navbar-brand .fw-bold {
  color: #fff !important;
  font-size: 1.2rem;
  /* Equilibrado */
}

.navbar-vertical .avatar.bg-primary {
  background: var(--mm-accent) !important;
  box-shadow: 0 0 12px rgba(40, 167, 69, 0.3);
}

.navbar-vertical .nav-link {
  color: #94a3b8 !important;
  border-left: 3px solid transparent !important;
  border-radius: 0;
  margin: 0;
  padding: 0.65rem 1.25rem !important;
  font-size: 0.95rem;
  /* Profissional e limpo */
  font-weight: 500;
  transition: all 0.2s ease;
}

.navbar-vertical .nav-link:hover {
  background: rgba(255, 255, 255, 0.03) !important;
  color: #fff !important;
}

.navbar-vertical .nav-link.active {
  background: rgba(255, 255, 255, 0.05) !important;
  color: #fff !important;
  border-left-color: var(--mm-accent) !important;
}

.navbar-vertical .nav-link-icon {
  color: #adb5bd;
  margin-right: 0.5rem;
}

.navbar-vertical .nav-link.active .nav-link-icon,
.navbar-vertical .nav-link:hover .nav-link-icon {
  color: var(--mm-accent) !important;
}

.navbar-vertical .nav-sm {
  margin: 0.2rem 0 0.35rem 0.8rem;
  border-left: 1px dashed rgba(255, 255, 255, 0.15);
  padding-left: 0.6rem;
}

.navbar-vertical .nav-sm .nav-link {
  font-weight: 500;
  font-size: 0.875rem;
  /* Hierarquia clara */
  padding: 0.4rem 0.7rem !important;
  border-left-width: 3px !important;
  margin: 1px 0;
}

.navbar-vertical .navbar-toggler {
  border-color: rgba(var(--mm-primary-rgb), 0.22) !important;
}

.page-body {
  background: var(--mm-soft);
  /* #f4f6f9 igual ao AdminLTE */
}

/* Cards estilo AdminLTE: sombra suave + borda 1px rgba */
.card {
  border: 1px solid rgba(0, 0, 0, .125) !important;
  background: var(--mm-card) !important;
  box-shadow: var(--mm-shadow) !important;
  border-radius: 4px !important;
  /* Raio AdminLTE padrão */
  transition: box-shadow 0.2s ease !important;
}

.card:hover {
  box-shadow: var(--mm-shadow-lg) !important;
}

/* ===== Cards tintados (KPI widgets) ===== */
/* Borda colorida no TOPO do card (estilo AdminLTE info-box) */
.card-tinted-green {
  background-color: #f6fff9 !important;
  border-top: 3px solid #28a745 !important;
}

.card-tinted-red {
  background-color: #fff8f8 !important;
  border-top: 3px solid #dc3545 !important;
}

.card-tinted-blue {
  background-color: #f5f8ff !important;
  border-top: 3px solid #007bff !important;
}

.card-tinted-azure {
  background-color: #f4fbff !important;
  border-top: 3px solid #17a2b8 !important;
}

.card-tinted-orange {
  background-color: #fff9f4 !important;
  border-top: 3px solid #fd7e14 !important;
}

.card-tinted-warning {
  background-color: #fffdf4 !important;
  border-top: 3px solid #ffc107 !important;
}

/* Textos legíveis nos cards tintados */
.card-tinted-green .h2,
.card-tinted-green .text-muted,
.card-tinted-red .h2,
.card-tinted-red .text-muted,
.card-tinted-blue .h2,
.card-tinted-blue .text-muted,
.card-tinted-azure .h2,
.card-tinted-azure .text-muted,
.card-tinted-orange .h2,
.card-tinted-orange .text-muted,
.card-tinted-warning .h2,
.card-tinted-warning .text-muted {
  color: var(--mm-ink) !important;
}

/* Cabeçalho do card: borda-bottom sutil (estilo AdminLTE) */
.card-header {
  border-bottom: 1px solid rgba(0, 0, 0, .125) !important;
  background: #fff !important;
  font-weight: 600;
  padding: .75rem 1.25rem !important;
}

/* Barras laterais de acento (card-status-start) */
.card-status-start {
  width: 4px !important;
  border-radius: 4px 0 0 4px !important;
  opacity: 1 !important;
}

.page-title {
  font-family: "Fraunces", serif;
  font-weight: 700 !important;
  color: var(--mm-ink) !important;
}

/* Tabelas estilo AdminLTE */
.table {
  border-color: var(--mm-border) !important;
  /* #dee2e6 */
}

.table thead th,
.table th {
  color: var(--mm-ink) !important;
  font-weight: 700 !important;
  background: #f8f9fa !important;
  /* Cinza claro AdminLTE */
  border-bottom: 2px solid var(--mm-border) !important;
  border-top: 0 !important;
}

.table tbody tr {
  border-bottom: 1px solid var(--mm-border) !important;
  transition: background-color 0.15s ease !important;
}

.table tbody tr:hover {
  background-color: rgba(0, 0, 0, .035) !important;
}

.btn-primary {
  background: var(--mm-primary) !important;
  border: 1px solid var(--mm-primary) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
}

.btn-primary:hover {
  background: var(--mm-primary-light) !important;
  border-color: var(--mm-primary-light) !important;
  color: #ffffff !important;
  box-shadow: 0 2px 10px rgba(var(--mm-primary-rgb), 0.22) !important;
}

.btn-secondary {
  background: #64748b !important;
  border: 1px solid #64748b !important;
  color: #ffffff !important;
}

.btn-secondary:hover {
  background: #526175 !important;
  border-color: #526175 !important;
  color: #ffffff !important;
}

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

.btn-success:hover {
  background: #166534 !important;
}

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

.btn-danger:hover {
  background: #991b1b !important;
}

.btn-warning {
  background: var(--mm-warning) !important;
  border: none !important;
  color: #422006 !important;
}

.btn-warning:hover {
  background: #d97706 !important;
  color: #422006 !important;
}

.btn-ghost-primary {
  color: var(--mm-primary);
  border: 1px solid var(--mm-primary);
}

.btn-ghost-primary:hover {
  background: rgba(var(--mm-primary-rgb), 0.1);
}

.module-icon {
  color: #fff;
}

.module-finance {
  background: var(--mm-primary);
}

.module-inventory {
  background: var(--mm-success);
}

.module-lodging {
  background: var(--mm-danger);
}

.module-notifications {
  background: var(--mm-warning);
  color: #422006;
}

.module-core {
  background: var(--mm-info);
}

.badge {
  font-weight: 600 !important;
}

.badge.bg-primary,
.badge.bg-primary-lt {
  background: rgba(var(--mm-primary-rgb), 0.12) !important;
  color: var(--mm-primary) !important;
}

.badge.bg-success,
.badge.bg-success-lt {
  background: rgba(46, 125, 50, 0.14) !important;
  color: var(--mm-success) !important;
}

.badge.bg-danger,
.badge.bg-danger-lt {
  background: rgba(192, 57, 43, 0.14) !important;
  color: var(--mm-danger) !important;
}

.badge.bg-warning,
.badge.bg-warning-lt {
  background: rgba(201, 122, 34, 0.15) !important;
  color: #9a5a15 !important;
}

.badge.bg-info,
.badge.bg-info-lt {
  background: rgba(14, 116, 144, 0.14) !important;
  color: var(--mm-info) !important;
}

.badge.bg-secondary,
.badge.bg-secondary-lt {
  background: rgba(71, 85, 105, 0.16) !important;
  color: #334155 !important;
}

.badge.bg-purple {
  background: rgba(124, 58, 237, 0.18) !important;
  color: #6d28d9 !important;
}

.alert-primary,
.alert-info {
  background: rgba(var(--mm-primary-rgb), 0.06) !important;
  border: 1px solid rgba(var(--mm-primary-rgb), 0.2) !important;
  color: var(--mm-primary) !important;
}

.alert-success {
  background: rgba(46, 125, 50, 0.08) !important;
  border: 1px solid rgba(46, 125, 50, 0.22) !important;
  color: var(--mm-success) !important;
}

.alert-danger {
  background: rgba(192, 57, 43, 0.08) !important;
  border: 1px solid rgba(192, 57, 43, 0.22) !important;
  color: var(--mm-danger) !important;
}

.alert-warning {
  background: rgba(201, 122, 34, 0.1) !important;
  border: 1px solid rgba(201, 122, 34, 0.24) !important;
  color: #9a5a15 !important;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--mm-primary) !important;
  box-shadow: 0 0 0 0.2rem rgba(var(--mm-primary-rgb), 0.22) !important;
}

a {
  color: var(--mm-primary) !important;
  text-decoration: none;
  transition: color 0.2s ease;
}

a:hover {
  color: var(--mm-primary-light) !important;
  text-decoration: underline;
}

.empty {
  text-align: center;
  padding: 3rem 1rem;
}

.empty-header {
  font-size: 4rem;
  color: var(--mm-primary);
  opacity: 0.2;
}

.empty-title {
  font-weight: 600;
  color: var(--mm-ink);
}

.empty-subtitle,
.text-muted {
  color: var(--mm-muted) !important;
}

.pagination .page-link {
  color: var(--mm-primary) !important;
  border-color: var(--mm-border) !important;
}

.pagination .page-link:hover {
  background: rgba(var(--mm-primary-rgb), 0.1) !important;
  color: var(--mm-primary-dark) !important;
}

.pagination .page-item.active .page-link,
.pagination .page-link.active {
  background: var(--mm-primary) !important;
  border-color: var(--mm-primary) !important;
  color: #ffffff !important;
}

.modal-header {
  background: linear-gradient(90deg, var(--mm-primary) 0%, var(--mm-primary-light) 100%) !important;
  color: #ffffff !important;
}

.modal-header .btn-close {
  filter: brightness(0) invert(1) !important;
}