/* ============================================================
   SISAPSI - Tema APSI (bordô/vinho + branco), estilo clean
   Sobrepoe o KaiAdmin. Cores extraidas do logotipo da APSI.
   ============================================================ */
:root {
  --apsi: #8b1e48;
  --apsi-dark: #6e1739;
  --apsi-600: #7d1a40;
  --apsi-light: #b34b72;
  --apsi-soft: #f6eaf0;
  --apsi-softer: #fbf5f8;
  --apsi-ink: #3a2731;
}

/* ---------- Base / tipografia ---------- */
body {
  background: #f7f4f5;
  color: #4a4a4a;
}
a {
  color: var(--apsi);
}
a:hover {
  color: var(--apsi-dark);
}

/* ---------- Sidebar clara (clean) ---------- */
.sidebar,
.sidebar .sidebar-wrapper {
  background: #ffffff !important;
  box-shadow: 0 0 22px rgba(139, 30, 72, 0.06);
}
.sidebar .logo-header,
.main-header .logo-header {
  background: #ffffff !important;
  border-bottom: 1px solid #f0e6ea;
}
.sidebar[data-background-color="dark"] {
  background: #ffffff !important;
}

/* itens do menu */
.sidebar .nav-secondary .nav-item a {
  color: #6b5a62;
}
.sidebar .nav-secondary .nav-item a p,
.sidebar .nav-secondary .nav-item a .sub-item {
  color: #6b5a62;
}
.sidebar .nav-secondary .nav-item a i {
  color: var(--apsi-light);
}
.sidebar .nav-secondary .nav-item a:hover,
.sidebar .nav-secondary .nav-item a:hover p,
.sidebar .nav-secondary .nav-item a:hover i,
.sidebar .nav-secondary .nav-item a:focus p {
  color: var(--apsi) !important;
}
.sidebar .nav-secondary .nav-item.active > a {
  background: var(--apsi-soft);
  border-left: 3px solid var(--apsi);
}
.sidebar .nav-secondary .nav-item.active > a p,
.sidebar .nav-secondary .nav-item.active > a i,
.sidebar .nav-secondary .nav-item.active > a .caret {
  color: var(--apsi) !important;
}
.sidebar .nav-collapse li.active > a .sub-item,
.sidebar .nav-collapse li > a:hover .sub-item {
  color: var(--apsi) !important;
  font-weight: 600;
}
.sidebar .nav-section .text-section {
  color: #b09aa3;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 0.6px;
}
.sidebar .nav-section .sidebar-mini-icon i {
  color: #d9c4cd;
}

/* marca no topo da sidebar */
.logo-header .logo img.navbar-brand {
  height: 46px !important;
  width: auto !important;
}
.logo-header .logo {
  display: inline-flex;
  align-items: center;
}
.brand-text {
  color: var(--apsi);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.3px;
  white-space: nowrap;
  line-height: 1;
}
/* esconde o texto quando a sidebar esta minimizada */
body.sidebar_minimize .brand-text {
  display: none;
}

/* ---------- Responsividade ---------- */
@media (max-width: 991px) {
  .brand-text { font-size: 14px; }
  .page-inner { padding-left: 12px; padding-right: 12px; }
  .card-action .btn { margin-bottom: 4px; }
}
@media (max-width: 575px) {
  .brand-text { display: none; }
  .fc-toolbar { flex-direction: column; gap: 6px; }
  .fc-toolbar .fc-left, .fc-toolbar .fc-right, .fc-toolbar .fc-center { float: none !important; text-align: center; }
  .login-card, .card-troca { margin-left: 10px; margin-right: 10px; }
}
/* tabelas com rolagem horizontal no celular */
.table-responsive { -webkit-overflow-scrolling: touch; }

/* ---------- Topbar ---------- */
.main-header .navbar-header {
  background: #ffffff !important;
}
.navbar-header .navbar-brand {
  color: var(--apsi) !important;
  font-weight: 700;
}

/* ---------- Botoes ---------- */
.btn-primary,
.btn-primary:focus {
  background-color: var(--apsi) !important;
  border-color: var(--apsi) !important;
  color: #fff !important;
}
.btn-primary:hover,
.btn-primary:active,
.btn-primary.active {
  background-color: var(--apsi-dark) !important;
  border-color: var(--apsi-dark) !important;
}
.btn-outline-primary {
  color: var(--apsi) !important;
  border-color: var(--apsi) !important;
}
.btn-outline-primary:hover {
  background-color: var(--apsi) !important;
  color: #fff !important;
}
.btn-success {
  background-color: var(--apsi) !important;
  border-color: var(--apsi) !important;
}
.btn-success:hover {
  background-color: var(--apsi-dark) !important;
  border-color: var(--apsi-dark) !important;
}
.btn-round {
  border-radius: 30px;
}

/* ---------- Cores utilitarias ---------- */
.text-primary {
  color: var(--apsi) !important;
}
.bg-primary,
.badge-primary {
  background-color: var(--apsi) !important;
}
.badge-info {
  background-color: var(--apsi-light) !important;
}

/* ---------- Cards ---------- */
.card {
  border: none;
  border-radius: 14px;
  box-shadow: 0 6px 24px rgba(58, 39, 49, 0.06);
}
.card .card-title {
  color: var(--apsi-ink);
  font-weight: 600;
}
.page-title {
  color: var(--apsi-ink);
  font-weight: 600;
}

/* icones dos cards de estatistica */
.card-stats .icon-primary,
.icon-big.icon-primary {
  color: var(--apsi) !important;
}
.card-stats .bubble-shadow-small {
  box-shadow: 0 0 0 8px var(--apsi-softer);
}

/* ---------- Tabelas ---------- */
.table > :not(caption) > * > * {
  border-color: #f1e7eb;
}
.table thead th {
  color: var(--apsi-ink);
  border-bottom: 2px solid var(--apsi-soft);
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.4px;
}
.table-hover tbody tr:hover {
  background: var(--apsi-softer);
}
.table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-accent-bg: #faf6f8;
}

/* botoes de acao em icone */
.btn-icon.btn-primary {
  background: var(--apsi) !important;
  border-color: var(--apsi) !important;
}

/* botoes de acao menores nas listagens */
td .btn-icon.btn-sm {
  width: 28px;
  min-width: 28px;
  height: 28px;
  line-height: 1;
}
td .btn-icon.btn-sm i {
  font-size: 0.72rem;
}

/* ---------- Formularios ---------- */
.form-control:focus,
.form-select:focus {
  border-color: var(--apsi-light);
  box-shadow: 0 0 0 0.15rem rgba(139, 30, 72, 0.12);
}
.form-check-input:checked {
  background-color: var(--apsi);
  border-color: var(--apsi);
}

/* ---------- Links / navegacao ativa ---------- */
.page-link {
  color: var(--apsi);
}
.page-item.active .page-link {
  background-color: var(--apsi);
  border-color: var(--apsi);
}

/* ---------- FullCalendar ---------- */
.fc-toolbar h2 {
  color: var(--apsi-ink);
}
.fc-button.fc-state-active,
.fc-button.fc-state-down {
  background: var(--apsi) !important;
  color: #fff !important;
}
.fc-today {
  background: var(--apsi-softer) !important;
}
.fc-unthemed .fc-today {
  background: var(--apsi-softer) !important;
}

/* ---------- Footer ---------- */
.footer .copyright {
  color: #8a7580;
}
.footer a {
  color: var(--apsi);
}

/* ---------- Scrollbar da sidebar ---------- */
.scrollbar-inner > .scroll-element .scroll-bar {
  background-color: var(--apsi-light);
}
