/*
 * ============================================================
 *  DRIXAN ADMIN — Tema de Identidade Visual
 *  Override sobre o template Adminty
 *  Paleta: #20427f | #4FAB4E | #FFFFFA | #FB3640 | #30343F
 * ============================================================
 */

/* ─── Google Fonts ──────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@400;500;600;700&family=Source+Sans+3:wght@300;400;600&display=swap');

/* ─── Variáveis CSS ─────────────────────────────────────── */
:root {
  --drx-blue:        #20427f;
  --drx-blue-dark:   #18305e;
  --drx-blue-light:  #2a55a3;
  --drx-green:       #4FAB4E;
  --drx-green-dark:  #3d8e3c;
  --drx-red:         #FB3640;
  --drx-red-dark:    #d9252e;
  --drx-dark:        #30343F;
  --drx-sidebar-bg:  #1e2229;
  --drx-white:       #FFFFFA;
  --drx-gray-light:  #f0f0ec;
  --drx-gray-mid:    #deded9;
  --drx-text-muted:  rgba(48, 52, 63, 0.45);

  --drx-sidebar-hover:  rgba(32, 66, 127, 0.20);
  --drx-sidebar-active: #213964;

  --drx-font-display: 'Rajdhani', sans-serif;
  --drx-font-body:    'Source Sans 3', sans-serif;

  --drx-ease:       cubic-bezier(0.4, 0, 0.2, 1);
  --drx-transition: 0.22s cubic-bezier(0.4, 0, 0.2, 1);

  --drx-shadow-sm:  0 1px 4px rgba(30, 34, 41, 0.10);
  --drx-shadow-md:  0 6px 20px rgba(30, 34, 41, 0.14);
  --drx-shadow-lg:  0 12px 36px rgba(30, 34, 41, 0.18);

  /* Sombras coloridas por variante de botão */
  --drx-shadow-blue:  0 6px 16px rgba(32, 66, 127, 0.32);
  --drx-shadow-green: 0 6px 16px rgba(79, 171, 78, 0.32);
  --drx-shadow-red:   0 6px 16px rgba(251, 54, 64, 0.32);

  --drx-radius:      4px;
  --drx-radius-icon: 8px;
  --drx-orange:      #f5a623;
  --drx-orange-dark: #c97800;
  --drx-teal:        #20c997;
  --drx-teal-dark:   #17a07a;
}

/* ─── Tipografia Base ───────────────────────────────────── */
body,
.pcoded-main-container,
.card,
.form-control,
input, select, textarea, button {
  font-family: var(--drx-font-body);
  color: var(--drx-dark);
}

h1, h2, h3, h4, h5, h6,
.card-header h5,
.pcoded-mtext,
.navbar-brand,
.page-header h5,
.breadcrumb-title h5,
.b-title {
  font-family: var(--drx-font-display);
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* ─── Background Geral ──────────────────────────────────── */
body,
.pcoded-main-container,
.main-body .page-wrapper {
  background-color: var(--drx-gray-light);
}

/* ─── Navbar / Cabeçalho Superior ──────────────────────── */
.navbar.header-navbar.pcoded-header {
  background: var(--drx-white) !important;
  /* Linha sutil — a área escura do logo já separa visualmente da sidebar */
  border-bottom: 1px solid rgba(32, 66, 127, 0.16) !important;
  box-shadow: 0 1px 6px rgba(30, 34, 41, 0.07);
}

.navbar.header-navbar.pcoded-header .navbar-logo {
  background: var(--drx-sidebar-bg) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
}

.navbar.header-navbar.pcoded-header .navbar-logo a img {
  height: 34px;
  width: auto;
}

.navbar.header-navbar.pcoded-header .nav-left li a,
.navbar.header-navbar.pcoded-header .nav-right li a,
.navbar.header-navbar.pcoded-header .nav-right .feather,
.navbar.header-navbar.pcoded-header .nav-left .feather {
  color: var(--drx-dark) !important;
  transition: color var(--drx-transition);
}

.navbar.header-navbar.pcoded-header .nav-left li a:hover,
.navbar.header-navbar.pcoded-header .nav-right li a:hover,
.navbar.header-navbar.pcoded-header .feather:hover {
  color: var(--drx-blue) !important;
}

.navbar.header-navbar.pcoded-header .user-profile > div > span {
  font-family: var(--drx-font-display);
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--drx-dark);
}

/* ─── Sidebar / Navbar Lateral ──────────────────────────── */
.pcoded-navbar {
  background: var(--drx-sidebar-bg) !important;
  box-shadow: 2px 0 16px rgba(0, 0, 0, 0.22);
}

/* Scroll nativo no conteúdo da sidebar — necessário quando o menu
   tem muitos itens e o mCustomScrollbar não é inicializado no
   conteúdo injetado dinamicamente por drx-menu.js */
.pcoded-navbar .pcoded-inner-navbar {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  max-height: calc(100vh - 56px); /* 56px = altura do header */
  padding-bottom: 72px;           /* espaço para o rodapé */
}

/* Scrollbar fina e discreta dentro da sidebar */
.pcoded-navbar .pcoded-inner-navbar::-webkit-scrollbar {
  width: 3px;
}
.pcoded-navbar .pcoded-inner-navbar::-webkit-scrollbar-track {
  background: transparent;
}
.pcoded-navbar .pcoded-inner-navbar::-webkit-scrollbar-thumb {
  background: rgba(243, 243, 243, 0.15);
  border-radius: 2px;
}
.pcoded-navbar .pcoded-inner-navbar::-webkit-scrollbar-thumb:hover {
  background: rgba(243, 243, 243, 0.30);
}

/* Itens de navegação */
.pcoded-inner-navbar li > a {
  color: rgba(243, 243, 243, 0.68) !important;
  font-family: var(--drx-font-display);
  font-weight: 500;
  font-size: 0.92rem;
  letter-spacing: 0.04em;
  transition:
    background var(--drx-transition),
    color var(--drx-transition),
    padding-left var(--drx-transition);
  border-radius: 0;
  border-left: 3px solid transparent;
}

.pcoded-inner-navbar li > a:hover {
  background: var(--drx-sidebar-hover) !important;
  color: rgba(243, 243, 243, 0.96) !important;
  padding-left: 26px !important;
  border-left-color: rgba(32, 66, 127, 0.5) !important;
}

/* Item ativo — fundo escuro profundo com acento verde preciso */
.pcoded-hasmenu.active > a,
.pcoded-hasmenu.pcoded-trigger > a,
.pcoded-inner-navbar .active > a {
  background: var(--drx-sidebar-active) !important;
  color: #f3f3f3 !important;
  border-left: 3px solid var(--drx-green) !important;
  padding-left: 26px !important;
}

.pcoded-hasmenu.active > a:hover,
.pcoded-hasmenu.pcoded-trigger > a:hover {
  background: #162b50 !important;
}

/* Sub-menu */
.pcoded-hasmenu .pcoded-submenu {
  background: rgba(0, 0, 0, 0.15) !important;
}

.pcoded-hasmenu .pcoded-submenu li > a {
  color: rgba(243, 243, 243, 0.55) !important;
  font-size: 0.87rem;
  padding-left: 52px !important;
  transition: color var(--drx-transition), padding-left var(--drx-transition);
  border-left: none;
}

.pcoded-hasmenu .pcoded-submenu li > a:hover {
  color: rgba(243, 243, 243, 0.92) !important;
  padding-left: 58px !important;
  background: transparent !important;
}

.pcoded-hasmenu .pcoded-submenu .active > a {
  color: var(--drx-green) !important;
}


/* Ícones na sidebar */
.pcoded-inner-navbar li > a .pcoded-micon {
  color: rgba(243, 243, 243, 0.50) !important;
  transition: color var(--drx-transition);
}

.pcoded-inner-navbar li > a:hover .pcoded-micon,
.pcoded-hasmenu.active > a .pcoded-micon,
.pcoded-hasmenu.pcoded-trigger > a .pcoded-micon {
  color: rgba(243, 243, 243, 1) !important;
}

/* Cabeçalhos de seção na sidebar */
.pcoded-inner-navbar .pcoded-navigatio-lavel {
  font-family: var(--drx-font-display);
  font-size: 0.70rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  /* 0.45 — legível no fundo escuro sem competir com itens de nav */
  color: rgba(243, 243, 243, 0.45) !important;
  padding: 20px 20px 5px !important;
}

/* ─── Pre-loader ────────────────────────────────────────── */
.theme-loader {
  background: var(--drx-sidebar-bg) !important;
}

.theme-loader .ball-scale .contain .ring .frame {
  border-color: var(--drx-blue) !important;
}

/* ─── Cards ─────────────────────────────────────────────── */
.card {
  border: none;
  border-radius: var(--drx-radius);
  box-shadow: var(--drx-shadow-sm);
  /* transform incluso para que o lift tenha transição suave */
  transition: box-shadow var(--drx-transition), transform var(--drx-transition);
  background: var(--drx-white);
}

.card:hover {
  box-shadow: var(--drx-shadow-md);
  transform: translateY(-2px);
}

.card-header {
  background: transparent;
  border-bottom: 1px solid var(--drx-gray-mid);
  padding: 14px 20px;
}

.card-header h5 {
  font-size: 1.0rem;
  color: var(--drx-dark);
  letter-spacing: 0.04em;
  margin-bottom: 0;
}

.card-block,
.card-body {
  padding: 20px;
}

/* Card com acento lateral */
.card.card-border-c-blue  { border-left: 3px solid var(--drx-blue) !important; }
.card.card-border-c-green { border-left: 3px solid var(--drx-green) !important; }
.card.card-border-c-red   { border-left: 3px solid var(--drx-red) !important; }

/* ─── Botões ─────────────────────────────────────────────── */
.btn {
  font-family: var(--drx-font-display);
  font-weight: 600;
  font-size: 0.88rem;
  letter-spacing: 0.05em;
  border-radius: var(--drx-radius);
  transition: all var(--drx-transition);
}

.btn:hover  { transform: translateY(-1px); }
.btn:active { transform: translateY(0); box-shadow: none !important; }

/* Sombras coloridas — o botão "carrega" sua cor na elevação */
.btn-primary {
  background-color: var(--drx-blue) !important;
  border-color: var(--drx-blue) !important;
  color: #f3f3f3 !important;
}
.btn-primary:hover, .btn-primary:focus {
  background-color: var(--drx-blue-light) !important;
  border-color: var(--drx-blue-light) !important;
  box-shadow: var(--drx-shadow-blue) !important;
}

.btn-success {
  background-color: var(--drx-green) !important;
  border-color: var(--drx-green) !important;
  color: #f3f3f3 !important;
}
.btn-success:hover, .btn-success:focus {
  background-color: var(--drx-green-dark) !important;
  border-color: var(--drx-green-dark) !important;
  box-shadow: var(--drx-shadow-green) !important;
}

.btn-danger {
  background-color: var(--drx-red) !important;
  border-color: var(--drx-red) !important;
  color: #f3f3f3 !important;
}
.btn-danger:hover, .btn-danger:focus {
  background-color: var(--drx-red-dark) !important;
  border-color: var(--drx-red-dark) !important;
  box-shadow: var(--drx-shadow-red) !important;
}

.btn-default,
.btn-secondary {
  background-color: var(--drx-white) !important;
  border-color: var(--drx-gray-mid) !important;
  color: var(--drx-dark) !important;
}
.btn-default:hover,
.btn-secondary:hover {
  background-color: var(--drx-gray-light) !important;
  border-color: var(--drx-blue) !important;
  color: var(--drx-blue) !important;
  box-shadow: none !important;
}

.btn-outline-primary {
  border-color: var(--drx-blue) !important;
  color: var(--drx-blue) !important;
}
.btn-outline-primary:hover {
  background-color: var(--drx-blue) !important;
  color: #f3f3f3 !important;
  box-shadow: var(--drx-shadow-blue) !important;
}

/* Disabled — claramente inativo, sem lift */
.btn:disabled,
.btn.disabled {
  opacity: 0.45;
  transform: none !important;
  box-shadow: none !important;
  cursor: not-allowed;
}

/* ─── Widgets de estatística (bg-c-*) ────────────────────── */
.bg-c-blue   { background: linear-gradient(135deg, var(--drx-blue) 0%, var(--drx-blue-light) 100%) !important; }
.bg-c-green  { background: linear-gradient(135deg, var(--drx-green-dark) 0%, var(--drx-green) 100%) !important; }
.bg-c-pink   { background: linear-gradient(135deg, var(--drx-red-dark) 0%, var(--drx-red) 100%) !important; }
.bg-c-yellow { background: linear-gradient(135deg, #c97800 0%, #f5a623 100%) !important; }

.text-c-blue   { color: var(--drx-blue) !important; }
.text-c-green  { color: var(--drx-green) !important; }
.text-c-pink   { color: var(--drx-red) !important; }
.text-c-yellow { color: #f5a623 !important; }

/* ─── Badges ─────────────────────────────────────────────── */
.badge {
  font-family: var(--drx-font-display);
  font-weight: 600;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  border-radius: 2px;
}

.badge.bg-c-green { background: var(--drx-green) !important; }
.badge.bg-c-pink  { background: var(--drx-red) !important; }
.badge.bg-c-blue  { background: var(--drx-blue) !important; }

/* ─── Formulários ───────────────────────────────────────── */
.form-control {
  border-color: var(--drx-gray-mid);
  border-radius: var(--drx-radius);
  background-color: var(--drx-white);
  color: var(--drx-dark);
  transition: border-color var(--drx-transition), box-shadow var(--drx-transition);
}

/*
 * Regra global: nenhum campo de formulário do Drixan Admin tem fundo
 * diferente de branco. Cobre:
 *   - inputs/textareas/selects nativos
 *   - prepends/appends do Bootstrap (`.input-group-text` vem teal #01a9ac
 *     do Adminty — essa linha zera)
 *   - Select2 (default e bootstrap4) incluindo quando renderizado dentro
 *     de modais SweetAlert2 (`.swal2-popup` / `.swal2-container`)
 * Exceção intencional: estados disabled/readonly continuam com
 * `var(--drx-gray-light)` via a regra mais específica acima.
 */
input.form-control,
textarea.form-control,
select.form-control,
select.form-control-sm,
select.form-select,
.input-group-text,
.select2-container .select2-selection,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple,
.select2-container--bootstrap4 .select2-selection,
.swal2-popup .select2-container .select2-selection,
.swal2-popup .select2-container--default .select2-selection--single,
.swal2-popup .select2-search__field,
.select2-search__field {
  background: var(--drx-white) !important;
  background-color: var(--drx-white) !important;
  color: var(--drx-dark) !important;
}

/* O ícone dentro do prepend não deve ficar branco sobre branco */
.input-group-text,
.input-group-text i {
  color: var(--drx-text-muted) !important;
  border-color: var(--drx-gray-mid) !important;
}

.form-control:focus {
  border-color: var(--drx-blue);
  /* 0.20 — visível sem agredir */
  box-shadow: 0 0 0 3px rgba(32, 66, 127, 0.20);
  background-color: var(--drx-white);
}

.form-control::placeholder {
  color: rgba(48, 52, 63, 0.38);
}

.form-control:disabled,
.form-control[readonly] {
  background-color: var(--drx-gray-light);
  color: var(--drx-text-muted);
  border-color: var(--drx-gray-mid);
  cursor: not-allowed;
}

/* ── Seta em todos os <select> ──────────────────────────────── */
select.form-control,
select.form-select,
select.drx-pag-select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2330343F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 14px 14px;
  padding-right: 30px !important;
  cursor: pointer;
}

select.form-control:disabled,
select.form-select:disabled,
select.form-control[readonly],
select.form-select[readonly] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2330343F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 14px 14px;
  opacity: 0.5;
  cursor: not-allowed;
}

label, .form-label {
  font-family: var(--drx-font-display);
  font-weight: 600;
  font-size: 0.87rem;
  letter-spacing: 0.03em;
  color: var(--drx-dark);
}

/* ─── Tabelas ───────────────────────────────────────────── */
.table th {
  font-family: var(--drx-font-display);
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--drx-dark);
  border-color: var(--drx-gray-mid);
}

/* Ordenação de tabelas */
.drx-th-sortable {
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}
.drx-th-sortable:hover {
  background: rgba(32, 66, 127, 0.05);
}
.drx-sort-icon {
  font-size: 0.72rem;
  margin-left: 5px;
  opacity: 0.28;
  vertical-align: middle;
  transition: opacity 0.15s, transform 0.15s;
}
.drx-sort-icon--active {
  opacity: 0.75;
  color: var(--drx-blue);
}

.table td {
  border-color: var(--drx-gray-mid);
  color: var(--drx-dark);
  font-size: 0.92rem;
}

.table-hover tbody tr:hover {
  background-color: rgba(32, 66, 127, 0.04);
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(32, 66, 127, 0.025);
}

/* ─── Breadcrumb / Page header ───────────────────────────── */
.page-header {
  background: transparent;
  border: none;
  box-shadow: none;
}

.page-header .page-header-title h4 {
  font-family: var(--drx-font-display);
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--drx-dark);
}

.breadcrumb-title h5 {
  font-size: 1.05rem;
  color: var(--drx-dark);
}

.breadcrumb-item a {
  color: var(--drx-blue);
  transition: color var(--drx-transition);
}

.breadcrumb-item a:hover {
  color: var(--drx-blue-light);
}

.breadcrumb-item.active {
  color: var(--drx-text-muted);
}

/* ─── Links globais ─────────────────────────────────────── */
a {
  color: var(--drx-blue);
  transition: color var(--drx-transition);
}

a:hover {
  color: var(--drx-blue-light);
}

/* ─── Animação de entrada de página ─────────────────────── */
@keyframes drx-fadein {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* var(--drx-ease) como timing function — sem delay acidental */
.pcoded-inner-content {
  animation: drx-fadein 0.32s var(--drx-ease) both;
}

/* Cascata por coluna com delays escalonados */
.row > [class*="col-"]:nth-child(1) .card { animation: drx-fadein 0.28s var(--drx-ease) both; }
.row > [class*="col-"]:nth-child(2) .card { animation: drx-fadein 0.28s 0.05s var(--drx-ease) both; }
.row > [class*="col-"]:nth-child(3) .card { animation: drx-fadein 0.28s 0.10s var(--drx-ease) both; }
.row > [class*="col-"]:nth-child(4) .card { animation: drx-fadein 0.28s 0.15s var(--drx-ease) both; }

/* ─── Scrollbar personalizada ────────────────────────────── */
.pcoded-navbar *::-webkit-scrollbar { width: 3px; }
.pcoded-navbar *::-webkit-scrollbar-track { background: transparent; }
.pcoded-navbar *::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.16);
  border-radius: 2px;
}
.pcoded-navbar *::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.30);
}

/* ─── Tabelas DataTables ─────────────────────────────────── */
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: var(--drx-blue) !important;
  border-color: var(--drx-blue) !important;
  color: #f3f3f3 !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
  background: var(--drx-gray-light) !important;
  border-color: var(--drx-blue) !important;
  color: var(--drx-blue) !important;
}

.dataTables_wrapper .dataTables_length select,
.dataTables_wrapper .dataTables_filter input {
  border-color: var(--drx-gray-mid);
  border-radius: var(--drx-radius);
}

.dataTables_wrapper .dataTables_filter input:focus {
  border-color: var(--drx-blue);
  outline: none;
  box-shadow: 0 0 0 3px rgba(32, 66, 127, 0.20);
}

/* ─── Alertas — acento lateral em vez de caixa colorida ─── */
.alert-primary {
  background-color: rgba(32, 66, 127, 0.07);
  border-left: 3px solid var(--drx-blue);
  border-top: none; border-right: none; border-bottom: none;
  color: var(--drx-blue-dark);
  border-radius: var(--drx-radius);
}

.alert-success {
  background-color: rgba(79, 171, 78, 0.07);
  border-left: 3px solid var(--drx-green);
  border-top: none; border-right: none; border-bottom: none;
  color: var(--drx-green-dark);
  border-radius: var(--drx-radius);
}

.alert-danger {
  background-color: rgba(251, 54, 64, 0.07);
  border-left: 3px solid var(--drx-red);
  border-top: none; border-right: none; border-bottom: none;
  color: var(--drx-red-dark);
  border-radius: var(--drx-radius);
}

.alert-warning {
  background-color: rgba(245, 166, 35, 0.09);
  border-left: 3px solid #f5a623;
  border-top: none; border-right: none; border-bottom: none;
  color: #7a4e00;
  border-radius: var(--drx-radius);
}

/* ─── Modal ─────────────────────────────────────────────── */
.modal-header {
  background: var(--drx-blue);
  color: #f3f3f3;
  border-radius: var(--drx-radius) var(--drx-radius) 0 0;
  padding: 14px 20px;
}

.modal-header h5,
.modal-header .modal-title {
  color: #f3f3f3;
  font-family: var(--drx-font-display);
  font-weight: 600;
  letter-spacing: 0.04em;
  font-size: 1.0rem;
}

.modal-header .close,
.modal-header .btn-close {
  color: #f3f3f3;
  opacity: 0.70;
  transition: opacity var(--drx-transition);
}

.modal-header .close:hover,
.modal-header .btn-close:hover { opacity: 1; }

.modal-footer {
  border-top: 1px solid var(--drx-gray-mid);
  background: var(--drx-gray-light);
  padding: 12px 20px;
}

/* ─── Switches / Toggles ─────────────────────────────────── */
.custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--drx-blue);
  border-color: var(--drx-blue);
}

/* ─── Utilitários extras ─────────────────────────────────── */
.text-primary   { color: var(--drx-blue) !important; }
.text-success   { color: var(--drx-green) !important; }
.text-danger    { color: var(--drx-red) !important; }
.text-muted     { color: var(--drx-text-muted) !important; }

.border-primary { border-color: var(--drx-blue) !important; }
.border-success { border-color: var(--drx-green) !important; }
.border-danger  { border-color: var(--drx-red) !important; }

/* ─── Responsividade ─────────────────────────────────────── */
@media (max-width: 992px) {
  .pcoded-navbar {
    background: var(--drx-sidebar-bg) !important;
  }
}

/* ─── Cores utilitárias extras ──────────────────────────── */
.text-c-gray   { color: #5a6270 !important; }
.text-c-orange { color: #f5a623 !important; }
.text-c-teal   { color: #20c997 !important; }
.bg-c-orange   { background: linear-gradient(135deg, #c97800 0%, #f5a623 100%) !important; }
.bg-c-teal     { background: linear-gradient(135deg, #17a07a 0%, #20c997 100%) !important; }

/* ─── Section labels coloridos em formulários ───────────── */
.drx-section-label {
  font-family: var(--drx-font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--drx-text-muted);
  padding: 6px 0 6px 10px;
  margin: 22px 0 14px;
  border-left: 3px solid var(--drx-blue);
  background: rgba(32, 66, 127, 0.04);
  border-radius: 0 var(--drx-radius) var(--drx-radius) 0;
}
.drx-section-label:first-child { margin-top: 0; }
.drx-section-label.sl-green  { border-left-color: var(--drx-green);  background: rgba(79, 171, 78, 0.04); }
.drx-section-label.sl-orange { border-left-color: var(--drx-orange); background: rgba(245, 166, 35, 0.05); }
.drx-section-label.sl-teal   { border-left-color: var(--drx-teal);   background: rgba(32, 201, 151, 0.05); }
.drx-section-label.sl-red    { border-left-color: var(--drx-red);    background: rgba(251, 54, 64, 0.04); }

/* ─── Select2 — integração com tema Drixan ───────────────── */
.select2-container--bootstrap4 .select2-selection,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  border-color: var(--drx-gray-mid) !important;
  border-radius: var(--drx-radius) !important;
  background-color: var(--drx-white) !important;
  font-family: var(--drx-font-body);
  color: var(--drx-dark);
  min-height: 38px;
}
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--drx-blue) !important;
  box-shadow: 0 0 0 3px rgba(32, 66, 127, 0.20) !important;
  outline: none;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--drx-dark);
  line-height: 36px;
  padding-left: 10px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 36px;
}
.select2-dropdown {
  border-color: var(--drx-blue) !important;
  border-radius: var(--drx-radius) !important;
  box-shadow: var(--drx-shadow-md);
  font-family: var(--drx-font-body);
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: var(--drx-blue) !important;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
  border-color: var(--drx-gray-mid);
  border-radius: var(--drx-radius);
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus {
  border-color: var(--drx-blue);
  outline: none;
}

/* ─── DateRangePicker — integração com tema Drixan ───────── */
.daterangepicker {
  border-color: var(--drx-gray-mid);
  border-radius: var(--drx-radius);
  box-shadow: var(--drx-shadow-md);
  font-family: var(--drx-font-body);
}
.daterangepicker td.active,
.daterangepicker td.active:hover {
  background-color: var(--drx-blue) !important;
}
.daterangepicker td.in-range {
  background-color: rgba(32, 66, 127, 0.10) !important;
}
.daterangepicker .drp-buttons .btn-primary {
  background-color: var(--drx-blue) !important;
  border-color: var(--drx-blue) !important;
}

/* ─── jQuery Validation — erros inline ───────────────────── */
.form-control.error,
.form-control.is-invalid {
  border-color: var(--drx-red) !important;
  box-shadow: 0 0 0 3px rgba(251, 54, 64, 0.15) !important;
}
label.error {
  color: var(--drx-red);
  font-size: 0.80rem;
  font-weight: 400;
  margin-top: 4px;
  display: block;
}

/* ─── TinyMCE — borda integrada ─────────────────────────── */
.tox-tinymce {
  border-color: var(--drx-gray-mid) !important;
  border-radius: var(--drx-radius) !important;
}
.tox-tinymce:focus-within {
  border-color: var(--drx-blue) !important;
  box-shadow: 0 0 0 3px rgba(32, 66, 127, 0.20) !important;
}

/* ─── Input group com botão de busca ─────────────────────── */
.input-group .input-group-append .btn {
  border-color: var(--drx-gray-mid);
}
.input-group .form-control:focus ~ .input-group-append .btn {
  border-color: var(--drx-blue);
}

/* ─── Rodapé de versão ───────────────────────────────────── */
.drx-footer {
  text-align: center;
  padding: 14px 20px 18px;
  margin-top: 32px;
  font-family: var(--drx-font-body);
  font-size: 0.76rem;
  color: var(--drx-text-muted);
  border-top: 1px solid var(--drx-gray-mid);
  letter-spacing: 0.03em;
}
.drx-footer-sep {
  margin: 0 8px;
  opacity: 0.4;
}

/* ─── Componentes de Página — Compartilhados ────────────── */

/* Navbar username */
.navbar-user-name {
  font-family: var(--drx-font-display);
  font-weight: 600;
}

/* Cabeçalho de página */
.drx-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 16px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--drx-gray-mid);
}
.drx-page-header h5 {
  font-family: var(--drx-font-display);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--drx-dark);
  margin: 0;
}
.drx-page-subtitle {
  font-size: 0.92rem;
  color: var(--drx-text-muted);
  margin: 0;
}

/* Cards de estatística */
.drx-stat-card {
  border-radius: var(--drx-radius);
  border: 1px solid var(--drx-gray-mid);
  background: var(--drx-white);
  padding: 20px 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
  transition: var(--drx-transition);
}
.drx-stat-card:hover {
  box-shadow: var(--drx-shadow-sm);
}
.drx-stat-icon {
  width: 52px;
  height: 52px;
  border-radius: var(--drx-radius-icon);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.drx-stat-icon i { font-size: 1.6rem; }
.drx-stat-icon.total   { background: rgba(32,66,127,0.10); color: var(--drx-blue); }
.drx-stat-icon.ativo   { background: rgba(79,171,78,0.12); color: var(--drx-green-dark); }
.drx-stat-icon.manut   { background: rgba(245,166,35,0.12); color: #b87700; }
.drx-stat-icon.inativo { background: rgba(130,140,155,0.12); color: #5a6270; }
.drx-stat-body { min-width: 0; }
.drx-stat-value {
  font-family: var(--drx-font-display);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  color: var(--drx-dark);
}
.drx-stat-label {
  font-size: 0.82rem;
  font-family: var(--drx-font-display);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--drx-text-muted);
  margin-top: 4px;
}
.drx-stat-sub {
  font-size: 0.80rem;
  color: var(--drx-text-muted);
  margin-top: 2px;
}

/* Cards de ação rápida */
.drx-action-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--drx-gray-mid);
  border-radius: var(--drx-radius);
  background: var(--drx-white);
  cursor: pointer;
  text-decoration: none;
  color: var(--drx-dark);
  margin-bottom: 10px;
  transition: var(--drx-transition);
}
.drx-action-card:hover {
  background: rgba(32,66,127,0.04);
  border-color: var(--drx-blue);
  box-shadow: 0 2px 8px rgba(32,66,127,0.10);
  color: var(--drx-dark);
  text-decoration: none;
}
.drx-action-card:active {
  background: rgba(32,66,127,0.08);
  box-shadow: none;
}
.drx-action-icon {
  width: 38px;
  height: 38px;
  border-radius: var(--drx-radius-icon);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.drx-action-icon i { font-size: 1.15rem; }
.drx-action-icon.blue   { background: rgba(32,66,127,0.10); color: var(--drx-blue); }
.drx-action-icon.green  { background: rgba(79,171,78,0.12); color: var(--drx-green-dark); }
.drx-action-icon.yellow { background: rgba(245,166,35,0.12); color: #b87700; }
.drx-action-icon.gray   { background: rgba(130,140,155,0.10); color: #5a6270; }
.drx-action-label {
  font-family: var(--drx-font-display);
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--drx-dark);
  line-height: 1.2;
}
.drx-action-sub {
  font-size: 0.80rem;
  color: var(--drx-text-muted);
  margin-top: 1px;
}

/* Estado vazio de tabelas/listas */
.drx-empty-state {
  text-align: center;
  padding: 32px 20px;
  color: var(--drx-text-muted);
}
.drx-empty-state i {
  font-size: 2rem;
  display: block;
  margin-bottom: 10px;
  opacity: 0.4;
}
.drx-empty-state p {
  font-size: 0.90rem;
  margin: 0;
}

/* ─── SweetAlert2 — integração com tema Drixan ───────────── */
.swal2-popup {
  font-family: var(--drx-font-body) !important;
  border-radius: var(--drx-radius) !important;
}
.swal2-title {
  font-family: var(--drx-font-display) !important;
  font-size: 1.15rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.03em !important;
  color: var(--drx-dark) !important;
}
.swal2-html-container {
  font-size: 0.93rem !important;
  color: var(--drx-dark) !important;
}
/* Botões via classes Bootstrap (buttonsStyling: false no drx-alerts.js) */
.drx-swal-actions {
  gap: 8px;
}
/* Toast */
.drx-swal-toast {
  border-radius: var(--drx-radius) !important;
  box-shadow: var(--drx-shadow-md) !important;
  padding: 12px 16px !important;
}
.drx-swal-toast .swal2-title {
  font-size: 0.88rem !important;
  margin: 0 !important;
}
.drx-swal-toast .swal2-html-container {
  font-size: 0.85rem !important;
  margin: 2px 0 0 !important;
}
/* Ícones coloridos pelo tema */
.swal2-icon.swal2-success .swal2-success-ring { border-color: var(--drx-green) !important; }
.swal2-icon.swal2-success [class^=swal2-success-line] { background-color: var(--drx-green) !important; }
.swal2-icon.swal2-error { border-color: var(--drx-red) !important; }
.swal2-icon.swal2-error [class^=swal2-x-mark-line] { background-color: var(--drx-red) !important; }
.swal2-icon.swal2-warning { border-color: var(--drx-orange) !important; color: var(--drx-orange) !important; }

/* ── Avatar mini — navbar ── */
.drx-navbar-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--drx-blue);
    color: #f3f3f3;
    font-family: var(--drx-font-display);
    font-size: 0.7rem;
    font-weight: 700;
    vertical-align: middle;
    overflow: hidden;
    flex-shrink: 0;
    margin-right: 4px;
}
.drx-navbar-avatar img.navbar-avatar-photo {
    width: 28px;
    height: 28px;
    object-fit: cover;
    border-radius: 50%;
    display: none;
}
.swal2-timer-progress-bar { background: var(--drx-blue) !important; }
