.main-content {
    margin-top: 0.5rem;
}

/* ========================================================= */
/* Modo Escuro */
/* ========================================================= */

.app-breadcrumb,
.breadcrumb,
.page-breadcrumb,
.subheader {
    background-color: transparent !important;
}

.subheader-title {
    color: var(--bs-body-color, inherit) !important;
}

nav.bg-body[aria-label="breadcrumb"],
div[data-controller="menu-hub"] > .bg-body.border-bottom {
    background-color: transparent !important;
}

div[data-controller="menu-hub"] h1,
div[data-controller="menu-hub"] .text-dark {
    color: var(--bs-body-color, inherit) !important;
}

/* ========================================================= */
/* Sidebar Recolhida - Quadrados e Expansão Total NATIVA     */
/* ========================================================= */

.set-nav-minified #js-primary-nav:not(:hover) .nav-link-text,
.nav-function-minify #js-primary-nav:not(:hover) .nav-link-text {
    display: none !important;
}

.set-nav-minified #js-primary-nav:not(:hover) .nav-icon,
.nav-function-minify #js-primary-nav:not(:hover) .nav-icon,
.set-nav-minified #js-primary-nav:not(:hover) .nav-icon > *,
.nav-function-minify #js-primary-nav:not(:hover) .nav-icon > * {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
}

.set-nav-minified #js-primary-nav:not(:hover) li,
.nav-function-minify #js-primary-nav:not(:hover) li {
    display: flex !important;
    justify-content: flex-start !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

.set-nav-minified #js-primary-nav:not(:hover) .nav-link,
.nav-function-minify #js-primary-nav:not(:hover) .nav-link {
    padding: 0 !important;
    gap: 0 !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    flex: 0 0 44px !important;
    margin: 4px 0 4px -18px !important;
    justify-content: center !important;
    align-items: center !important;
    border-radius: 10px !important;
    position: static !important;
}

.is-required {
  border-left: 3px solid #dc3545;
}

[data-controller~="pessoa-form"] .form-control.border-danger,
[data-controller~="pessoa-form"] .form-select.border-danger {
  border-color: var(--bs-border-color) !important;
}

[data-controller~="pessoa-form"] .form-control.is-invalid {
  border-color: var(--bs-danger) !important;
  background-image: none;
}

[data-controller~="pessoa-form"] .form-select.is-invalid {
  border-color: var(--bs-danger) !important;
}

[data-controller~="pessoa-form"] .form-control.is-valid,
[data-controller~="pessoa-form"] .form-select.is-valid,
[data-controller~="pessoa-form"] .form-control.is-filled,
[data-controller~="pessoa-form"] .form-select.is-filled {
  border-color: var(--bs-success) !important;
}

/* CSS-native red for required inputs with placeholder — fires before JS runs */
[data-controller~="pessoa-form"] .form-control[required]:placeholder-shown {
  border-color: var(--bs-danger) !important;
}

[data-controller~="pessoa-form"] .ts-wrapper.is-invalid .ts-control {
  border-color: var(--bs-danger) !important;
  box-shadow: none;
}

[data-controller~="pessoa-form"] .ts-wrapper.is-valid .ts-control,
[data-controller~="pessoa-form"] .ts-wrapper.is-filled .ts-control {
  border-color: var(--bs-success) !important;
  box-shadow: none;
}


.flatpickr-input[readonly] {
  display: none !important;
}
.flatpickr-input.form-control.input {
  display: block !important;
}

/* Datatables: header e body centralizados */
table.dataTable thead > tr > th,
table.dataTable thead > tr > td {
  text-align: center !important;
}
table.dataTable thead > tr > th .dt-column-title,
table.dataTable thead > tr > td .dt-column-title {
  text-align: center;
}
table.dataTable thead > tr > th div.dt-column-header,
table.dataTable thead > tr > td div.dt-column-header {
  position: relative;
  justify-content: center;
}
table.dataTable thead > tr > th div.dt-column-header .dt-column-order,
table.dataTable thead > tr > td div.dt-column-header .dt-column-order {
  position: absolute;
  right: 0;
}
table.dataTable tbody > tr > td {
  text-align: center !important;
}
/* Override por coluna (Column align:) — precisa de !important + classe p/ vencer
   o center !important acima. dt-align-* vem do datatable_columns_config. */
table.dataTable tbody > tr > td.dt-align-start {
  text-align: left !important;
}
table.dataTable tbody > tr > td.dt-align-end {
  text-align: right !important;
}
table.dataTable tbody > tr > td.dt-align-center {
  text-align: center !important;
}