/*
 * Project-wide overrides for the Modernize template.
 * Keep this file small and load it after assets/css/styles.css.
 */

:root,
[data-bs-theme="light"] {
  --cnq-form-border-color: #c8d3df;
  --cnq-form-border-hover-color: #b7c4d1;
  --cnq-badge-primary-color: #2949a3;
  --cnq-badge-secondary-color: #17618a;
  --cnq-badge-success-color: #08745f;
  --cnq-badge-info-color: #245a9b;
  --cnq-badge-warning-color: #895400;
  --cnq-badge-danger-color: #a13e28;
  --cnq-badge-dark-color: #343a40;
}

[data-bs-theme="dark"] {
  --cnq-form-border-color: #475569;
  --cnq-form-border-hover-color: #5b6b80;
  --cnq-badge-primary-color: #9eb7ff;
  --cnq-badge-secondary-color: #92d8ff;
  --cnq-badge-success-color: #71ebd5;
  --cnq-badge-info-color: #98c3ff;
  --cnq-badge-warning-color: #ffce79;
  --cnq-badge-danger-color: #fcb8a6;
  --cnq-badge-dark-color: #dee2e6;
}

/* Scope contrast overrides to badges, preserving the template's other text utilities. */
.badge.bg-primary-subtle {
  color: var(--cnq-badge-primary-color) !important;
}

.badge.bg-secondary-subtle {
  color: var(--cnq-badge-secondary-color) !important;
}

.badge.bg-success-subtle {
  color: var(--cnq-badge-success-color) !important;
}

.badge.bg-info-subtle {
  color: var(--cnq-badge-info-color) !important;
}

.badge.bg-warning-subtle {
  color: var(--cnq-badge-warning-color) !important;
}

.badge.bg-danger-subtle {
  color: var(--cnq-badge-danger-color) !important;
}

.badge.bg-dark-subtle {
  color: var(--cnq-badge-dark-color) !important;
}

/* Solid badges need darker backgrounds for their white labels in both themes. */
.badge.text-bg-primary,
.badge.bg-primary {
  background-color: #2949a3 !important;
  color: #fff !important;
}

.badge.text-bg-secondary,
.badge.bg-secondary {
  background-color: #17618a !important;
  color: #fff !important;
}

.badge.text-bg-success,
.badge.bg-success {
  background-color: #08745f !important;
  color: #fff !important;
}

.badge.text-bg-info,
.badge.bg-info {
  background-color: #245a9b !important;
  color: #fff !important;
}

.badge.text-bg-warning,
.badge.bg-warning {
  background-color: #895400 !important;
  color: #fff !important;
}

.badge.text-bg-danger,
.badge.bg-danger {
  background-color: #a13e28 !important;
  color: #fff !important;
}

.badge.text-bg-dark,
.badge.bg-dark {
  background-color: #343a40 !important;
  color: #fff !important;
}

/* Cores dos estados das matrículas no backoffice. */
.badge.matricula-estado-criada {
  background-color: #dbeafe;
  color: #1e40af;
}

.badge.matricula-estado-enviada {
  background-color: #2949a3;
  color: #fff;
}

.badge.matricula-estado-submetida,
.badge.matricula-estado-validada {
  background-color: #d1e7dd;
  color: #0f5132;
}

.badge.matricula-estado-em-correcao {
  background-color: #fd7e14;
  color: #351800;
}

.badge.matricula-estado-em-pagamento {
  background-color: #96534b;
  color: #fff;
}

.badge.matricula-estado-reservada {
  background-color: #2f6243;
  color: #fff;
}

.badge.matricula-estado-cancelada {
  background-color: #6c757d;
  color: #fff;
}

.form-control,
.form-select,
.form-check-input {
  border-color: var(--cnq-form-border-color);
}

.form-control:hover:not(:disabled):not([readonly]),
.form-select:hover:not(:disabled),
.form-check-input:hover:not(:disabled) {
  border-color: var(--cnq-form-border-hover-color);
}

.input-group-text {
  border-color: var(--cnq-form-border-color);
}

.card,
.card.candidatura-detail-card,
.card.matricula-detail-card,
.card.matricula-summary-card {
  --bs-card-border-width: 1px;
  --bs-card-border-color: #e9e9e9;
  --bs-card-inner-border-radius: calc(var(--bs-card-border-radius) - 1px);
  border: var(--bs-card-border-width) solid var(--bs-card-border-color);
}

.card,
.card.cq-card-shadow,
.card.cq-card-shadow-strong {
  --bs-card-box-shadow: 0 0.35rem 1rem rgba(18, 38, 63, 0.08);
  box-shadow: var(--bs-card-box-shadow);
}

[data-bs-theme="dark"] .card {
  --bs-card-border-color: #475569;
}

/* Match the theme selectors so its palette cannot override button contrast. */
.btn-primary,
[data-bs-theme][data-color-theme]:root .btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: #4269d4;
  --bs-btn-border-color: #4269d4;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #3658b8;
  --bs-btn-hover-border-color: #3658b8;
  --bs-btn-focus-shadow-rgb: 66, 105, 212;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #2d4b9e;
  --bs-btn-active-border-color: #2d4b9e;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #4269d4;
  --bs-btn-disabled-border-color: #4269d4;
}

.btn-outline-primary,
[data-bs-theme][data-color-theme]:root .btn-outline-primary {
  --bs-btn-color: #4269d4;
  --bs-btn-border-color: #4269d4;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #3658b8;
  --bs-btn-hover-border-color: #3658b8;
  --bs-btn-focus-shadow-rgb: 66, 105, 212;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #2d4b9e;
  --bs-btn-active-border-color: #2d4b9e;
  --bs-btn-disabled-color: #4269d4;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #4269d4;
}

[data-bs-theme="dark"] .btn-outline-primary,
[data-bs-theme="dark"][data-color-theme]:root .btn-outline-primary {
  --bs-btn-color: #9eb7ff;
  --bs-btn-border-color: #9eb7ff;
  --bs-btn-disabled-color: #9eb7ff;
  --bs-btn-disabled-border-color: #9eb7ff;
}

/* Darker success buttons keep white labels legible across the backoffice. */
.btn-success {
  --bs-btn-color: #fff;
  --bs-btn-bg: #08745f;
  --bs-btn-border-color: #08745f;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #06614f;
  --bs-btn-hover-border-color: #06614f;
  --bs-btn-focus-shadow-rgb: 8, 116, 95;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #054f40;
  --bs-btn-active-border-color: #054f40;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #08745f;
  --bs-btn-disabled-border-color: #08745f;
}

.btn-outline-success {
  --bs-btn-color: #08745f;
  --bs-btn-border-color: #08745f;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #06614f;
  --bs-btn-hover-border-color: #06614f;
  --bs-btn-focus-shadow-rgb: 8, 116, 95;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #054f40;
  --bs-btn-active-border-color: #054f40;
  --bs-btn-disabled-color: #08745f;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #08745f;
}

[data-bs-theme="dark"] .btn-outline-success {
  --bs-btn-color: #71ebd5;
  --bs-btn-border-color: #71ebd5;
  --bs-btn-disabled-color: #71ebd5;
  --bs-btn-disabled-border-color: #71ebd5;
}

/* A subtle neutral border separates arrow buttons from pale header cards. */
.btn-light:has(.ti-arrow-left, .ti-arrow-right) {
  --bs-btn-color: #2a3547;
  --bs-btn-bg: #f8f9fb;
  --bs-btn-border-color: #bcc8d6;
  --bs-btn-hover-color: #1c2533;
  --bs-btn-hover-bg: #e2e5e9;
  --bs-btn-hover-border-color: #aab8c9;
  --bs-btn-active-color: #1c2533;
  --bs-btn-active-bg: #d5d9df;
  --bs-btn-active-border-color: #99aabd;
  --bs-btn-focus-shadow-rgb: 90, 106, 133;
}

[data-bs-theme="dark"] .btn-light:has(.ti-arrow-left, .ti-arrow-right) {
  --bs-btn-color: #c7d6ff;
  --bs-btn-bg: #253247;
  --bs-btn-border-color: #253247;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #34476a;
  --bs-btn-hover-border-color: #34476a;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #3d527b;
  --bs-btn-active-border-color: #3d527b;
}

.backoffice-logo {
  display: block !important;
  width: 180px;
  max-width: 100%;
  height: auto;
}

/* Area identity is independent of workflow status colours. */
.area-candidaturas {
  --cnq-area-color: #2563eb;
  --cnq-area-bg: #eff6ff;
}

.area-visitas {
  --cnq-area-color: #79513a;
  --cnq-area-bg: #f3ebe6;
}

.area-matriculas {
  --cnq-area-color: #3f7d58;
  --cnq-area-bg: #eaf3ed;
}

html[data-bs-theme][data-color-theme] .matriculas-list button.btn-primary {
  --bs-btn-bg: #3f7d58;
  --bs-btn-border-color: #3f7d58;
  --bs-btn-hover-bg: #326446;
  --bs-btn-hover-border-color: #326446;
  --bs-btn-active-bg: #285038;
  --bs-btn-active-border-color: #285038;
  --bs-btn-disabled-bg: #3f7d58;
  --bs-btn-disabled-border-color: #3f7d58;
  --bs-btn-focus-shadow-rgb: 63, 125, 88;
}

.matriculas-list .pagination {
  --bs-pagination-color: var(--cnq-area-color);
  --bs-pagination-hover-color: var(--cnq-area-color);
  --bs-pagination-hover-bg: var(--cnq-area-bg);
  --bs-pagination-focus-color: var(--cnq-area-color);
  --bs-pagination-focus-bg: var(--cnq-area-bg);
  --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(63, 125, 88, 0.25);
  --bs-pagination-active-bg: #3f7d58;
  --bs-pagination-active-border-color: #3f7d58;
}

[data-bs-theme="dark"] .area-candidaturas {
  --cnq-area-color: #93c5fd;
  --cnq-area-bg: #172b46;
}

[data-bs-theme="dark"] .area-visitas {
  --cnq-area-color: #d7b49e;
  --cnq-area-bg: #30231d;
}

[data-bs-theme="dark"] .area-matriculas {
  --cnq-area-color: #9ed5b1;
  --cnq-area-bg: #1e3327;
}

.card.area-header {
  background-color: var(--cnq-area-bg);
  border-inline-start: 4px solid var(--cnq-area-color);
}

.area-header h4 {
  color: var(--cnq-area-color);
}

.sidebar-nav #sidebarnav .sidebar-link:is(.area-visitas, .area-matriculas) .ti,
.sidebar-nav #sidebarnav .area-candidaturas .sidebar-link .ti {
  color: var(--cnq-area-color);
}

.sidebar-nav #sidebarnav .sidebar-link:is(.area-visitas, .area-matriculas):is(:hover, :focus-visible, .active),
.sidebar-nav #sidebarnav .area-candidaturas .sidebar-link:is(:hover, :focus-visible, .active) {
  color: var(--cnq-area-color);
  background-color: var(--cnq-area-bg);
}
