@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 {
  /* Tema refinado - simplicidade primeiro */
  --mm-primary: #1f3a5f;
  --mm-primary-light: #2f5e9a;
  --mm-primary-dark: #14233b;
  --mm-primary-rgb: 31, 58, 95;
  --mm-primary-light-rgb: 47, 94, 154;
  --mm-accent: #c97a22;
  --mm-success: #2e7d32;
  --mm-warning: #c97a22;
  --mm-danger: #c0392b;
  --mm-info: #0e7490;
  --mm-soft: #f6f8fb;
  --mm-card: #ffffff;
  --mm-ink: #1f2937;
  --mm-muted: #64748b;
  --mm-border: #dbe3ed;

  /* Alias de compatibilidade */
  --mm-green: var(--mm-success);
  --mm-red: var(--mm-danger);
  --mm-purple: #7c3aed;

  /* Tabler tokens */
  --tblr-primary: var(--mm-primary);
  --tblr-primary-rgb: 31, 58, 95;
  --tblr-info: var(--mm-info);
  --tblr-info-rgb: 3, 105, 161;
  --tblr-success: var(--mm-success);
  --tblr-success-rgb: 46, 125, 50;
  --tblr-warning: var(--mm-warning);
  --tblr-warning-rgb: 201, 122, 34;
  --tblr-danger: var(--mm-danger);
  --tblr-danger-rgb: 192, 57, 43;
}

body {
  font-family: "Source Sans 3", sans-serif;
  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 {
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%) !important;
  border-right: 1px solid var(--mm-border) !important;
  box-shadow: inset -1px 0 0 rgba(15, 23, 42, 0.03);
}

.navbar-vertical .navbar-brand {
  padding: 1rem 0.5rem 1rem 0.25rem !important;
  margin-bottom: 0.5rem;
  border-bottom: 1px solid rgba(var(--mm-primary-rgb), 0.14);
}

.navbar-vertical .navbar-brand .fw-bold {
  font-size: 1.08rem;
  letter-spacing: 0.2px;
  color: var(--mm-primary-dark);
}

.navbar-vertical .navbar-brand .small {
  color: var(--mm-muted) !important;
}

.navbar-vertical .avatar.bg-primary {
  background: linear-gradient(
    135deg,
    var(--mm-primary-dark) 0%,
    var(--mm-primary) 100%
  ) !important;
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.navbar-vertical .nav-link {
  color: var(--mm-ink) !important;
  border-left: 4px solid transparent !important;
  border-radius: 10px;
  margin: 2px 0;
  padding: 0.62rem 0.8rem 0.62rem 1rem !important;
  font-weight: 600;
  transition: all 0.2s ease !important;
}

.navbar-vertical .nav-link:hover {
  background: rgba(var(--mm-primary-rgb), 0.09) !important;
  color: var(--mm-primary) !important;
  transform: translateX(1px);
}

.navbar-vertical .nav-link.active {
  background: rgba(var(--mm-primary-rgb), 0.15) !important;
  color: var(--mm-primary) !important;
  border-left: 4px solid var(--mm-primary) !important;
  font-weight: 700 !important;
}

.navbar-vertical .nav-link-icon {
  width: 1.2rem;
  color: var(--mm-muted);
}

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

.navbar-vertical .nav-sm {
  margin: 0.2rem 0 0.35rem 0.8rem;
  border-left: 1px dashed rgba(var(--mm-primary-rgb), 0.24);
  padding-left: 0.6rem;
}

.navbar-vertical .nav-sm .nav-link {
  font-weight: 500;
  font-size: 0.92rem;
  padding: 0.42rem 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: linear-gradient(180deg, #f6f8fb 0%, #eef2f7 100%);
}

.card {
  border: 1px solid var(--mm-border) !important;
  background: var(--mm-card) !important;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.05) !important;
  transition: box-shadow 0.2s ease !important;
}

.card:hover {
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08) !important;
}

.card-header {
  border-bottom: 1px solid var(--mm-border) !important;
  background: linear-gradient(90deg, #ffffff 0%, #f8fafc 100%) !important;
}

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

.table thead th,
.table th {
  color: var(--mm-primary) !important;
  font-weight: 600 !important;
  background: rgba(var(--mm-primary-rgb), 0.06) !important;
  border-bottom: 2px solid var(--mm-border) !important;
}

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

.table tbody tr:hover {
  background: rgba(var(--mm-primary-rgb), 0.03) !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;
}
