/**
 * Tema Vuexy (semi-dark) — sobrescreve CoreUI/Bootstrap via !important
 * Não redefine: .bg-custom-1, .bg-custom-2, .bg-removed, .bg-checked (custom.css)
 */

@import url("https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap");

:root {
  --vx-primary: #7367f0;
  --vx-primary-hover: #685dd8;
  --vx-primary-shadow: rgba(115, 103, 240, 0.4);
  --vx-secondary: #a8aaae;
  --vx-success: #28c76f;
  --vx-info: #00cfe8;
  --vx-warning: #ff9f43;
  --vx-danger: #ea5455;
  --vx-sidebar-bg: #2f3349;
  --vx-sidebar-text: #cfd3ec;
  --vx-body-bg: #f8f7fa;
  --vx-card-bg: #ffffff;
  --vx-text: #6f6b7d;
  --vx-heading: #5d596c;
  --vx-border: rgba(75, 70, 92, 0.12);
  --vx-radius: 6px;
}

/* ---------- Base / tipografia ---------- */
html {
  font-size: 15px !important;
}

body,
body.c-app {
  font-family: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
  background-color: var(--vx-body-bg) !important;
  color: var(--vx-text) !important;
  -webkit-font-smoothing: antialiased !important;
}

body.login-page {
  background-color: var(--vx-body-bg) !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  color: var(--vx-heading) !important;
  font-weight: 600 !important;
}

a {
  color: var(--vx-primary) !important;
}
a:hover {
  color: var(--vx-primary-hover) !important;
}

/* ---------- Layout CoreUI ---------- */
.c-wrapper {
  background-color: var(--vx-body-bg) !important;
}

.c-body {
  background-color: var(--vx-body-bg) !important;
}

.c-main {
  background-color: var(--vx-body-bg) !important;
  padding-top: 1.25rem !important;
}

.container-fluid {
  padding-left: 1.5rem !important;
  padding-right: 1.5rem !important;
}

/* ---------- Sidebar semi-dark ---------- */
.c-sidebar {
  background-color: var(--vx-sidebar-bg) !important;
  border-right: none !important;
  box-shadow: 0 2px 10px rgba(47, 51, 73, 0.25) !important;
}

.c-sidebar-brand,
.c-sidebar .c-sidebar-brand,
.c-sidebar .c-sidebar-header {
  background-color: var(--vx-sidebar-bg) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

.c-sidebar-brand-full {
  color: var(--vx-sidebar-text) !important;
}

.c-sidebar-nav {
  padding-top: 0.5rem !important;
  padding-bottom: 1rem !important;
}

.c-sidebar-nav-item {
  margin-bottom: 2px !important;
}

.c-sidebar-nav-link {
  color: var(--vx-sidebar-text) !important;
  border-radius: var(--vx-radius) !important;
  margin-left: 0.75rem !important;
  margin-right: 0.75rem !important;
  padding: 0.65rem 1rem !important;
  font-weight: 500 !important;
}

.c-sidebar-nav-link:hover {
  background-color: rgba(115, 103, 240, 0.15) !important;
  color: #fff !important;
}

.c-sidebar-nav-link.c-active {
  background: linear-gradient(118deg, #7367f0, #9e95f5) !important;
  color: #fff !important;
  box-shadow: 0 2px 6px rgba(115, 103, 240, 0.48) !important;
}

.c-sidebar-nav-icon {
  color: inherit !important;
}

.c-sidebar-nav-dropdown-toggle {
  color: var(--vx-sidebar-text) !important;
  border-radius: var(--vx-radius) !important;
  margin-left: 0.75rem !important;
  margin-right: 0.75rem !important;
  padding: 0.65rem 1rem !important;
  font-weight: 500 !important;
}

.c-sidebar-nav-dropdown-toggle:hover {
  background-color: rgba(115, 103, 240, 0.15) !important;
  color: #fff !important;
}

.c-sidebar-nav-dropdown.c-show > .c-sidebar-nav-dropdown-toggle {
  background-color: rgba(115, 103, 240, 0.12) !important;
  color: #fff !important;
}

.c-sidebar-nav-dropdown-items {
  padding-left: 0.5rem !important;
}

.c-sidebar-nav-dropdown-items .c-sidebar-nav-link {
  padding-left: 2.25rem !important;
  font-weight: 400 !important;
}

.c-sidebar-minimized .c-sidebar-nav-link {
  margin-left: 0.25rem !important;
  margin-right: 0.25rem !important;
}

/* ---------- Header ---------- */
.c-header {
  background-color: #fff !important;
  border-bottom: none !important;
  box-shadow: 0 2px 6px rgba(47, 43, 61, 0.1) !important;
}

.c-header-fixed {
  background-color: #fff !important;
}

.c-header-toggler {
  color: var(--vx-heading) !important;
}

.c-header-brand {
  color: var(--vx-heading) !important;
}

.c-header-nav-link {
  color: var(--vx-heading) !important;
  font-weight: 500 !important;
}

.c-header-nav-link:hover {
  color: var(--vx-primary) !important;
}

/* ---------- Cards ---------- */
.card {
  background-color: var(--vx-card-bg) !important;
  border: 1px solid var(--vx-border) !important;
  border-radius: var(--vx-radius) !important;
  box-shadow: 0 4px 18px rgba(75, 70, 92, 0.1) !important;
}

.card-header {
  background-color: transparent !important;
  border-bottom: 1px solid var(--vx-border) !important;
  color: var(--vx-heading) !important;
  font-weight: 600 !important;
  padding: 1rem 1.25rem !important;
}

.card-footer {
  background-color: transparent !important;
  border-top: 1px solid var(--vx-border) !important;
}

/* ---------- Botões ---------- */
.btn {
  border-radius: var(--vx-radius) !important;
  font-weight: 500 !important;
}

.btn-primary {
  background-color: var(--vx-primary) !important;
  border-color: var(--vx-primary) !important;
  color: #fff !important;
  box-shadow: 0 2px 6px var(--vx-primary-shadow) !important;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--vx-primary-hover) !important;
  border-color: var(--vx-primary-hover) !important;
  color: #fff !important;
}

.btn-secondary {
  background-color: var(--vx-secondary) !important;
  border-color: var(--vx-secondary) !important;
  color: #fff !important;
}

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

.btn-info {
  background-color: var(--vx-info) !important;
  border-color: var(--vx-info) !important;
  color: #fff !important;
}

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

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

.btn-default {
  color: var(--vx-heading) !important;
  background-color: #eeedf0 !important;
  border-color: #eeedf0 !important;
}

.btn-default:hover {
  background-color: #e2e1e5 !important;
  border-color: #dcdae1 !important;
  color: var(--vx-heading) !important;
}

.btn-outline-primary {
  color: var(--vx-primary) !important;
  border-color: var(--vx-primary) !important;
  background-color: transparent !important;
}

.btn-outline-primary:hover {
  background-color: var(--vx-primary) !important;
  border-color: var(--vx-primary) !important;
  color: #fff !important;
}

.btn-outline-secondary {
  color: var(--vx-secondary) !important;
  border-color: var(--vx-secondary) !important;
}

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

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

.btn-xs {
  border-radius: 4px !important;
}

/* ---------- Forms ---------- */
.form-control,
.form-select {
  border-radius: var(--vx-radius) !important;
  border-color: var(--vx-border) !important;
  color: var(--vx-heading) !important;
}

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

.form-label {
  color: var(--vx-heading) !important;
  font-weight: 500 !important;
}

.form-check-input:checked {
  background-color: var(--vx-primary) !important;
  border-color: var(--vx-primary) !important;
}

.input-group-text {
  background-color: #f5f5f9 !important;
  border-color: var(--vx-border) !important;
  color: var(--vx-text) !important;
}

/* ---------- Tabelas ---------- */
.table {
  color: var(--vx-text) !important;
}

.table thead th {
  color: var(--vx-heading) !important;
  border-bottom-width: 1px !important;
  font-weight: 600 !important;
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(115, 103, 240, 0.04) !important;
}

.table-bordered {
  border-color: var(--vx-border) !important;
}

.table-bordered th,
.table-bordered td {
  border-color: var(--vx-border) !important;
}

/* ---------- DataTables ---------- */
table.dataTable {
  border-collapse: collapse !important;
}

table.dataTable thead th {
  border-bottom: 1px solid var(--vx-border) !important;
  background-color: #fafafa !important;
}

.dataTables_wrapper .dataTables_filter input {
  border-radius: var(--vx-radius) !important;
  border: 1px solid var(--vx-border) !important;
  padding: 0.35rem 0.65rem !important;
}

.dataTables_wrapper .dataTables_length select {
  border-radius: var(--vx-radius) !important;
  border: 1px solid var(--vx-border) !important;
}

.dt-buttons .btn {
  border-radius: var(--vx-radius) !important;
}

.dataTables_wrapper.no-footer .dataTables_scrollBody {
  border-bottom: 1px solid var(--vx-border) !important;
}

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

.page-item.active .page-link {
  background-color: var(--vx-primary) !important;
  border-color: var(--vx-primary) !important;
  color: #fff !important;
}

/* ---------- Select2 ---------- */
.select2-container .select2-selection--single,
.select2-container .select2-selection--multiple {
  border-radius: var(--vx-radius) !important;
  border-color: var(--vx-border) !important;
  min-height: 38px !important;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple {
  border-color: var(--vx-primary) !important;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: var(--vx-primary) !important;
  color: #fff !important;
}

.select2-dropdown {
  border-color: var(--vx-border) !important;
  border-radius: var(--vx-radius) !important;
}

/* ---------- Alerts ---------- */
.alert {
  border-radius: var(--vx-radius) !important;
  border: none !important;
}

.alert-success {
  background-color: rgba(40, 199, 111, 0.12) !important;
  color: #1e7e46 !important;
}

.alert-info {
  background-color: rgba(0, 207, 232, 0.12) !important;
  color: #00889e !important;
}

.alert-warning {
  background-color: rgba(255, 159, 67, 0.15) !important;
  color: #b56b12 !important;
}

.alert-danger {
  background-color: rgba(234, 84, 85, 0.12) !important;
  color: #c43d3e !important;
}

/* ---------- Badges ---------- */
.badge {
  border-radius: 4px !important;
  font-weight: 500 !important;
}

.badge.bg-primary,
.badge-primary {
  background-color: var(--vx-primary) !important;
}
.badge.bg-success,
.badge-success {
  background-color: var(--vx-success) !important;
}
.badge.bg-info,
.badge-info {
  background-color: var(--vx-info) !important;
  color: #fff !important;
}
.badge.bg-warning,
.badge-warning {
  background-color: var(--vx-warning) !important;
  color: #fff !important;
}
.badge.bg-danger,
.badge-danger {
  background-color: var(--vx-danger) !important;
}

/* ---------- Dropdown ---------- */
.dropdown-menu {
  border-radius: var(--vx-radius) !important;
  border: 1px solid var(--vx-border) !important;
  box-shadow: 0 4px 18px rgba(75, 70, 92, 0.12) !important;
}

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: rgba(115, 103, 240, 0.08) !important;
  color: var(--vx-primary) !important;
}

/* ---------- Modal ---------- */
.modal-content {
  border-radius: var(--vx-radius) !important;
  border: none !important;
  box-shadow: 0 10px 40px rgba(47, 43, 61, 0.18) !important;
}

.modal-header {
  border-bottom: 1px solid var(--vx-border) !important;
}

.modal-footer {
  border-top: 1px solid var(--vx-border) !important;
}

/* ---------- Tabs / pills ---------- */
.nav-tabs .nav-link {
  border-radius: var(--vx-radius) var(--vx-radius) 0 0 !important;
  color: var(--vx-text) !important;
}

.nav-tabs .nav-link.active {
  color: var(--vx-primary) !important;
  border-color: var(--vx-border) var(--vx-border) #fff !important;
  font-weight: 600 !important;
}

.nav-pills .nav-link.active {
  background-color: var(--vx-primary) !important;
  color: #fff !important;
}

/* ---------- Toastr ---------- */
#toast-container > .toast-success {
  background-color: var(--vx-success) !important;
}
#toast-container > .toast-error {
  background-color: var(--vx-danger) !important;
}
#toast-container > .toast-info {
  background-color: var(--vx-info) !important;
}
#toast-container > .toast-warning {
  background-color: var(--vx-warning) !important;
}

/* ---------- SweetAlert2 ---------- */
.swal2-popup {
  border-radius: var(--vx-radius) !important;
  font-family: "Public Sans", system-ui, sans-serif !important;
}

.swal2-styled.swal2-confirm {
  background-color: var(--vx-primary) !important;
}

/* ---------- Dropzone ---------- */
.dropzone {
  border: 2px dashed var(--vx-border) !important;
  border-radius: var(--vx-radius) !important;
  background-color: #fafafa !important;
}

.dropzone.dz-drag-hover {
  border-color: var(--vx-primary) !important;
  background-color: rgba(115, 103, 240, 0.06) !important;
}

/* ---------- List groups / pagination ---------- */
.list-group-item {
  border-color: var(--vx-border) !important;
}

.list-group-item.active {
  background-color: var(--vx-primary) !important;
  border-color: var(--vx-primary) !important;
}

/* ---------- Breadcrumb ---------- */
.breadcrumb {
  background-color: transparent !important;
}

.breadcrumb-item.active {
  color: var(--vx-text) !important;
}

/* ---------- CKEditor ---------- */
.ck.ck-editor__editable {
  border-radius: var(--vx-radius) !important;
}

/* ---------- Login / auth layout helpers ---------- */
.card-group .card {
  box-shadow: 0 4px 24px rgba(75, 70, 92, 0.12) !important;
}
