/* ==========================================================================
   Soul Contabilidade — tema unificado
   O rosa da marca continua sendo a cor principal e o fundo das telas de
   acesso segue em rosa claro. Apenas as variantes destoantes (amarelo,
   verde, ciano) foram remapeadas para a familia azul / rosa / rosa forte.
   ========================================================================== */

:root {
  /* marca — rosa */
  --soul-rosa: #d99896;
  --soul-rosa-hover: #c98280;
  --soul-rosa-forte: #b56766;
  --soul-rosa-forte-hover: #9d5756;
  --soul-rosa-bg: #efd4d0;
  --soul-rosa-claro: #f8e6e4;

  /* azuis */
  --soul-azul: #3a6b9c;
  --soul-azul-hover: #2e5a86;
  --soul-azul-escuro: #042f5f;
  --soul-azul-escuro-hover: #0a4680;

  /* vinho e neutro */
  --soul-vinho: #8f4949;
  --soul-vinho-hover: #7a3d3d;
  --soul-neutro: #6d7787;
  --soul-neutro-hover: #5b6472;

  /* mapeamento das variantes do sb-admin-2 */
  --blue: var(--soul-azul);
  --pink: var(--soul-rosa);
  --primary: var(--soul-rosa);
  --secondary: var(--soul-neutro);
  --success: var(--soul-azul-escuro);
  --info: var(--soul-azul);
  --warning: var(--soul-rosa-forte);
  --danger: var(--soul-vinho);
}

/* --------------------------------------------------------------------------
   Botoes solidos
   -------------------------------------------------------------------------- */
.btn-primary,
.btn-primary:disabled,
.btn-primary.disabled {
  background-color: var(--soul-rosa) !important;
  border-color: var(--soul-rosa) !important;
  background-image: none !important;
  color: #fff !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary:not(:disabled):not(.disabled):active {
  background-color: var(--soul-rosa-hover) !important;
  border-color: var(--soul-rosa-hover) !important;
  color: #fff !important;
}

.btn-info,
.btn-info:disabled,
.btn-info.disabled {
  background-color: var(--soul-azul) !important;
  border-color: var(--soul-azul) !important;
  background-image: none !important;
  color: #fff !important;
}
.btn-info:hover,
.btn-info:focus,
.btn-info:active,
.btn-info:not(:disabled):not(.disabled):active {
  background-color: var(--soul-azul-hover) !important;
  border-color: var(--soul-azul-hover) !important;
  color: #fff !important;
}

.btn-success,
.btn-success:disabled,
.btn-success.disabled {
  background-color: var(--soul-azul-escuro) !important;
  border-color: var(--soul-azul-escuro) !important;
  background-image: none !important;
  color: #fff !important;
}
.btn-success:hover,
.btn-success:focus,
.btn-success:active,
.btn-success:not(:disabled):not(.disabled):active {
  background-color: var(--soul-azul-escuro-hover) !important;
  border-color: var(--soul-azul-escuro-hover) !important;
  color: #fff !important;
}

.btn-warning,
.btn-warning:disabled,
.btn-warning.disabled {
  background-color: var(--soul-rosa-forte) !important;
  border-color: var(--soul-rosa-forte) !important;
  background-image: none !important;
  color: #fff !important;
}
.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active,
.btn-warning:not(:disabled):not(.disabled):active {
  background-color: var(--soul-rosa-forte-hover) !important;
  border-color: var(--soul-rosa-forte-hover) !important;
  color: #fff !important;
}

.btn-danger,
.btn-danger:disabled,
.btn-danger.disabled {
  background-color: var(--soul-vinho) !important;
  border-color: var(--soul-vinho) !important;
  background-image: none !important;
  color: #fff !important;
}
.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active,
.btn-danger:not(:disabled):not(.disabled):active {
  background-color: var(--soul-vinho-hover) !important;
  border-color: var(--soul-vinho-hover) !important;
  color: #fff !important;
}

.btn-secondary,
.btn-default {
  background-color: var(--soul-neutro) !important;
  border-color: var(--soul-neutro) !important;
  background-image: none !important;
  color: #fff !important;
}
.btn-secondary:hover,
.btn-secondary:focus,
.btn-default:hover,
.btn-default:focus {
  background-color: var(--soul-neutro-hover) !important;
  border-color: var(--soul-neutro-hover) !important;
  color: #fff !important;
}

.btn-light {
  background-color: var(--soul-rosa-claro) !important;
  border-color: #e3c4c1 !important;
  color: #6b4443 !important;
}
.btn-light:hover,
.btn-light:focus {
  background-color: var(--soul-rosa-bg) !important;
  border-color: #d9b3b0 !important;
  color: #5a3736 !important;
}

.btn-link {
  color: var(--soul-rosa-forte) !important;
}
.btn-link:hover {
  color: var(--soul-rosa-forte-hover) !important;
}

/* anel de foco no rosa da marca */
.btn:focus,
.btn.focus,
.form-control:focus {
  box-shadow: 0 0 0 0.2rem rgba(217, 152, 150, 0.4) !important;
}

/* --------------------------------------------------------------------------
   Botoes contornados
   -------------------------------------------------------------------------- */
.btn-outline-primary {
  border-color: var(--soul-rosa) !important;
  color: var(--soul-rosa-forte) !important;
  background-color: transparent !important;
}
.btn-outline-primary:hover {
  background-color: var(--soul-rosa) !important;
  color: #fff !important;
}

.btn-outline-info {
  border-color: var(--soul-azul) !important;
  color: var(--soul-azul) !important;
  background-color: transparent !important;
}
.btn-outline-info:hover {
  background-color: var(--soul-azul) !important;
  color: #fff !important;
}

.btn-outline-success {
  border-color: var(--soul-azul-escuro) !important;
  color: var(--soul-azul-escuro) !important;
  background-color: transparent !important;
}
.btn-outline-success:hover {
  background-color: var(--soul-azul-escuro) !important;
  color: #fff !important;
}

.btn-outline-warning {
  border-color: var(--soul-rosa-forte) !important;
  color: var(--soul-rosa-forte) !important;
  background-color: transparent !important;
}
.btn-outline-warning:hover {
  background-color: var(--soul-rosa-forte) !important;
  color: #fff !important;
}

.btn-outline-danger {
  border-color: var(--soul-vinho) !important;
  color: var(--soul-vinho) !important;
  background-color: transparent !important;
}
.btn-outline-danger:hover {
  background-color: var(--soul-vinho) !important;
  color: #fff !important;
}

.btn-outline-secondary {
  border-color: var(--soul-neutro) !important;
  color: var(--soul-neutro) !important;
  background-color: transparent !important;
}
.btn-outline-secondary:hover {
  background-color: var(--soul-neutro) !important;
  color: #fff !important;
}

/* --------------------------------------------------------------------------
   Etiquetas de status
   -------------------------------------------------------------------------- */
.badge-primary {
  background-color: var(--soul-rosa) !important;
  color: #fff !important;
}
.badge-info {
  background-color: var(--soul-azul) !important;
  color: #fff !important;
}
.badge-success {
  background-color: var(--soul-azul-escuro) !important;
  color: #fff !important;
}
.badge-warning {
  background-color: var(--soul-rosa-forte) !important;
  color: #fff !important;
}
.badge-danger {
  background-color: var(--soul-vinho) !important;
  color: #fff !important;
}
.badge-secondary {
  background-color: var(--soul-neutro) !important;
  color: #fff !important;
}
.badge-light {
  background-color: var(--soul-rosa-claro) !important;
  color: #6b4443 !important;
}

/* --------------------------------------------------------------------------
   Fundos, textos e bordas utilitarias
   -------------------------------------------------------------------------- */
.bg-primary,
.bg-gradient-primary,
.progress-bar.bg-primary {
  background-color: var(--soul-rosa) !important;
  background-image: none !important;
}
.bg-info,
.bg-gradient-info,
.progress-bar.bg-info {
  background-color: var(--soul-azul) !important;
  background-image: none !important;
}
.bg-success,
.bg-gradient-success,
.progress-bar.bg-success {
  background-color: var(--soul-azul-escuro) !important;
  background-image: none !important;
}
.bg-warning,
.bg-gradient-warning,
.progress-bar.bg-warning {
  background-color: var(--soul-rosa-forte) !important;
  background-image: none !important;
}
.bg-danger,
.bg-gradient-danger,
.progress-bar.bg-danger {
  background-color: var(--soul-vinho) !important;
  background-image: none !important;
}

.text-primary { color: var(--soul-rosa-forte) !important; }
.text-info    { color: var(--soul-azul) !important; }
.text-success { color: var(--soul-azul-escuro) !important; }
.text-warning { color: var(--soul-rosa-forte) !important; }
.text-danger  { color: var(--soul-vinho) !important; }

.border-primary,
.border-left-primary,
.border-bottom-primary { border-color: var(--soul-rosa) !important; }
.border-info,
.border-left-info,
.border-bottom-info { border-color: var(--soul-azul) !important; }
.border-success,
.border-left-success,
.border-bottom-success { border-color: var(--soul-azul-escuro) !important; }
.border-warning,
.border-left-warning,
.border-bottom-warning { border-color: var(--soul-rosa-forte) !important; }
.border-danger,
.border-left-danger,
.border-bottom-danger { border-color: var(--soul-vinho) !important; }

/* --------------------------------------------------------------------------
   Alertas
   -------------------------------------------------------------------------- */
.alert-primary,
.alert-warning,
.table-warning,
.table-warning > th,
.table-warning > td {
  background-color: #f9e1e0 !important;
  border-color: #eab9b8 !important;
  color: #704344 !important;
}
.alert-info {
  background-color: #e4ecf4 !important;
  border-color: #c4d6e7 !important;
  color: #29506f !important;
}
.alert-success {
  background-color: #e2e9f1 !important;
  border-color: #c2d1e2 !important;
  color: #05294f !important;
}
.alert-danger {
  background-color: #f3e2e2 !important;
  border-color: #e0c2c2 !important;
  color: #6b3434 !important;
}

/* --------------------------------------------------------------------------
   Navegacao, links e paginacao
   -------------------------------------------------------------------------- */
a,
.page-link {
  color: var(--soul-rosa-forte);
}
a:hover,
.page-link:hover {
  color: var(--soul-rosa-forte-hover);
}
.page-item.active .page-link,
.pagination .page-item.active .page-link {
  background-color: var(--soul-rosa) !important;
  border-color: var(--soul-rosa) !important;
  color: #fff !important;
}

.sidebar.bg-gradient-primary,
.sidebar .bg-gradient-primary {
  background-color: var(--soul-rosa) !important;
  background-image: none !important;
}

.nav-tabs .nav-link.active {
  color: var(--soul-rosa-forte) !important;
  border-bottom-color: var(--soul-rosa) !important;
}

/* --------------------------------------------------------------------------
   Telas de acesso (login, recuperar senha) — fundo em rosa claro
   -------------------------------------------------------------------------- */
body:has(.bottom-footer),
body:has(.bottom-footer) #wrapper,
body:has(.bottom-footer) #content-wrapper,
body:has(.bottom-footer) .sticky-footer {
  background-color: var(--soul-rosa-claro) !important;
}

.bottom-footer {
  padding-top: 30px;
}

.bottom-footer div:has(> img.logo-center) {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 200px;
  height: 200px;
  margin: 0 auto 24px;
  border-radius: 50%;
  overflow: hidden;
  background-color: #efd3cf;
  border: 4px solid #fff;
  box-shadow: 0 8px 24px rgba(181, 103, 102, 0.25);
}

.bottom-footer img.logo-center {
  width: 230px !important;
  max-width: none;
  height: auto;
  margin: 0 !important;
  /* esconde a borda fina embutida na propria imagem da logo */
  clip-path: inset(3px 0);
}

/* --------------------------------------------------------------------------
   Portal do cliente: o markup usa duas colunas (logo a esquerda, formulario
   a direita). O admin empilha. As regras abaixo igualam o cliente ao admin.
   Escopo em .auth, classe que so existe no portal do cliente.
   -------------------------------------------------------------------------- */
.bottom-footer.auth > .row {
  flex-direction: column;
  align-items: center;
}

.bottom-footer.auth > .row > [class*="col-"] {
  flex: 0 0 auto;
  width: 100%;
  max-width: 560px;
  padding-left: 15px;
  padding-right: 15px;
  text-align: center;
  border-left: 0 !important;
}

/* alinha o respiro do logo ao do admin */
.bottom-footer.auth div:has(> img.logo-center) {
  margin-top: 0 !important;
}

.bottom-footer.auth .card {
  text-align: left;
}

/* Novos componentes reutilizam a paleta local, sem importar o tema azul. */
:root {
  --soul-profile-color: var(--soul-rosa);
}

.soul-home-primary {
  background: var(--soul-rosa);
  border-color: var(--soul-rosa);
}
.soul-home-primary:hover {
  background: var(--soul-rosa-hover);
  border-color: var(--soul-rosa-hover);
}
.soul-home-button:not(.soul-home-primary),
.soul-home-card-link,
.soul-home-chart-data summary,
.soul-kanban-task-title {
  color: var(--soul-rosa-forte);
}
.soul-home-result,
.soul-home-filter-note,
.soul-kanban-status:not(.soul-kanban-error) {
  background: var(--soul-rosa-claro);
}
.soul-home-card:hover {
  border-color: var(--soul-rosa);
}
.soul-home button:focus-visible,
.soul-home input:focus-visible,
.soul-home select:focus-visible {
  outline-color: var(--soul-rosa);
}
.soul-home-legend span::before,
.soul-home-bar {
  background: var(--soul-rosa);
}
.soul-home-legend .soul-home-series-1::before,
.soul-home-bar.soul-home-series-1 {
  background: var(--soul-azul);
}
.soul-home-warning,
.soul-home-attention-grid .soul-home-warning,
.soul-kanban-doing {
  border-color: var(--soul-rosa-forte);
}
.soul-kanban-done {
  border-color: var(--soul-azul-escuro);
}
.soul-kanban-badge:not(.soul-kanban-late) {
  background: var(--soul-rosa-claro);
  color: var(--soul-vinho);
}
