/* =========================================================================
   cpragma — hoja de marca
   Aplica la identidad visual definida en Software_CPragma_DaniBarb.pdf
   sobre el theme Bootstrap existente (lib2/css/style.css). Se carga
   DESPUÉS de style.css para poder sobreescribir sus variables/reglas.
   ========================================================================= */

/* ---------- Tipografías ---------- */
@font-face {
  font-family: 'Inter Tight';
  src: url('../fonts/InterTight-Variable.ttf') format('truetype');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Inter Tight';
  src: url('../fonts/InterTight-Italic-Variable.ttf') format('truetype');
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'PT Serif';
  src: url('../fonts/PTSerif-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'PT Serif';
  src: url('../fonts/PTSerif-Italic.ttf') format('truetype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'PT Serif';
  src: url('../fonts/PTSerif-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'PT Serif';
  src: url('../fonts/PTSerif-BoldItalic.ttf') format('truetype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

/* ---------- Paleta de marca ---------- */
:root {
  --brand-smoky: #190905;
  --brand-isabelline: #F4F3ED;
  --brand-mindaro: #E8FD86;
  --brand-eggshell: #E6F4D1;
  --brand-outerspace: #243F3B;

  --brand-danger: #FF0000;
  --brand-danger-soft: #FFC6BB;
  --brand-warning: #F2A63B;
  --brand-warning-soft: #E6E5CE;
  --brand-success: #439662;

  --brand-font-sans: 'Inter Tight', sans-serif;
  --brand-font-serif: 'PT Serif', serif;

  /* Rebind del theme existente a la marca */
  --primary: var(--brand-outerspace);
  --primary-hover: #1b3330;
  --primary-dark: #0f1f1c;
  --rgba-primary-1: rgba(36, 63, 59, 0.1);
  --rgba-primary-2: rgba(36, 63, 59, 0.2);
  --rgba-primary-3: rgba(36, 63, 59, 0.3);
  --rgba-primary-4: rgba(36, 63, 59, 0.4);
  --rgba-primary-5: rgba(36, 63, 59, 0.5);
  --rgba-primary-6: rgba(36, 63, 59, 0.6);
  --rgba-primary-7: rgba(36, 63, 59, 0.7);
  --rgba-primary-8: rgba(36, 63, 59, 0.8);
  --rgba-primary-9: rgba(36, 63, 59, 0.9);
  --secondary: var(--brand-smoky);
  --title: var(--brand-smoky);

  --font-family-base: var(--brand-font-sans), sans-serif;
  --font-family-title: var(--brand-font-sans), sans-serif;
  --bs-body-font-family: var(--brand-font-sans), sans-serif;

  --nav-headbg: var(--brand-outerspace);
  --headerbg: var(--brand-outerspace);
  --sidebar-bg: #FFFFFF;
}

/* El theme resuelve estas variables vía atributos data-* del <body>;
   se repiten aquí con el mismo selector para ganar por orden de cascada. */
[data-nav-headerbg="black"],
[data-nav-headerbg="color_1"] { --nav-headbg: var(--brand-outerspace); }
[data-headerbg="color_1"] { --headerbg: var(--brand-outerspace); }

html, body {
  background-color: var(--brand-isabelline);
  font-family: var(--brand-font-sans), sans-serif;
  color: var(--brand-smoky);
}

/* ---------- Titulares en PT Serif itálica ----------
   Cubre por estructura (sin necesitar clase "heading" en cada plantilla)
   cualquier título de tarjeta, tabla o modal/offcanvas del sitio: header de
   .card, .tbl-caption, y los títulos de modales/offcanvas de Bootstrap. */
.card-title,
.heading,
.tbl-caption .heading,
.card-header h1,
.card-header h2,
.card-header h3,
.card-header h4,
.card-header h5,
.card-header h6,
.tbl-caption h1,
.tbl-caption h2,
.tbl-caption h3,
.tbl-caption h4,
.tbl-caption h5,
.tbl-caption h6,
.modal-title,
.offcanvas-title,
h3.title,
.login-form .title,
.brand-serif {
  font-family: var(--brand-font-serif), serif;
  font-style: italic;
  font-weight: 400;
  color: var(--brand-smoky);
}

/* ---------- Botones tipo píldora ---------- */
.btn {
  --bs-btn-border-radius: 50rem;
  font-family: var(--brand-font-sans), sans-serif;
  font-weight: 500;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
/* !important porque .btn-primary compite con reglas de igual o mayor
   especificidad del theme (p.ej. ".btn.btn-primary{color:#fff}") y con la
   regla de color de enlaces de más abajo cuando el botón es un <a>. Cubre
   <button> y <a class="btn btn-primary ..."> (usados en botones de acción
   dentro de tablas: btnAgregarUsuario, btnEditarUsuario, btnAgregarProtocolo,
   btnEditarProtocolo, btnAgregarControl, btnEditarControl, etc.) y sus
   íconos internos (<i>, <svg>), que heredan color mediante currentColor. */
.btn-primary,
.btn-primary:disabled,
.btn-primary.disabled,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  color: var(--brand-eggshell) !important;
}
.btn-primary i,
.btn-primary svg,
.btn-primary use {
  color: inherit;
  fill: currentColor;
  stroke: currentColor;
}

/* ---------- Botones semánticos (danger/success) con paleta de marca ----------
   Mismo motivo que .btn-primary más arriba: hay que ganarle en especificidad
   a las reglas .light.btn-danger / .btn-success del theme (style.css). */
.btn-danger.light,
.btn-danger.light:disabled,
.btn-danger.light.disabled {
  background-color: var(--brand-danger-soft) !important;
  border-color: var(--brand-danger-soft) !important;
  color: var(--brand-danger) !important;
}
.btn-danger.light:hover,
.btn-danger.light:focus,
.btn-danger.light:active {
  background-color: var(--brand-danger) !important;
  border-color: var(--brand-danger) !important;
  color: var(--brand-eggshell) !important;
}
.btn-success:not(.light),
.btn-success:not(.light):disabled,
.btn-success:not(.light).disabled {
  background-color: var(--brand-success) !important;
  border-color: var(--brand-success) !important;
  color: var(--brand-eggshell) !important;
}
.btn-success:not(.light):hover,
.btn-success:not(.light):focus,
.btn-success:not(.light):active {
  background-color: #357a4f !important;
  border-color: #357a4f !important;
  color: var(--brand-eggshell) !important;
}

/* Variante liviana: solo borde e ícono en verde, fondo transparente */
.btn-outline-success {
  background-color: transparent !important;
  border-color: var(--brand-success) !important;
  color: var(--brand-success) !important;
}
.btn-outline-success:hover,
.btn-outline-success:focus,
.btn-outline-success:active {
  background-color: var(--brand-success) !important;
  border-color: var(--brand-success) !important;
  color: var(--brand-eggshell) !important;
}
.btn-outline-primary {
  background-color: transparent !important;
  border-color: var(--brand-outerspace) !important;
  color: var(--brand-outerspace) !important;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
  background-color: var(--brand-outerspace) !important;
  border-color: var(--brand-outerspace) !important;
  color: var(--brand-eggshell) !important;
}
.btn-outline-secondary {
  background-color: transparent !important;
  border-color: var(--brand-smoky) !important;
  color: var(--brand-smoky) !important;
}
.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-secondary:active {
  background-color: var(--brand-smoky) !important;
  border-color: var(--brand-smoky) !important;
  color: var(--brand-eggshell) !important;
}

/* ---------- Indicador de estado (círculo) en listados ---------- */
.estado-dot {
  display: inline-block;
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 50%;
}
.estado-dot-success { background-color: var(--brand-success); }
.estado-dot-warning { background-color: var(--brand-warning); }

/* ---------- Campos de formulario tipo píldora ---------- */
.form-control,
.form-select,
.bootstrap-select .dropdown-toggle {
  border-radius: 50rem;
  border-color: var(--brand-smoky);
  padding-left: 1.15rem;
  padding-right: 1.15rem;
}
textarea.form-control {
  border-radius: 1rem;
}
.form-control:focus,
.form-select:focus {
  border-color: var(--brand-outerspace);
  box-shadow: 0 0 0 0.2rem var(--rgba-primary-2);
}
.input-group > .form-control,
.input-group > .form-select {
  border-radius: 50rem;
}

/* ---------- Tarjetas ---------- */
.card {
  border: none;
  border-radius: 1rem;
  box-shadow: 0 2px 14px rgba(25, 9, 5, 0.06);
}

/* ---------- Barra superior (nav-header + header) ---------- */
.nav-header,
.header {
  background-color: var(--brand-outerspace) !important;
}
.nav-header .brand-logo img {
  filter: none;
}
.header .header-left .form-control {
  background-color: rgba(230, 244, 209, 0.12);
  border: 1px solid rgba(230, 244, 209, 0.3);
  color: var(--brand-eggshell);
}
.header .header-left .form-control::placeholder {
  color: rgba(230, 244, 209, 0.7);
}
.header .header-left svg circle,
.header .header-left svg path,
.header .bell svg path {
  stroke: var(--brand-eggshell);
}
.header .header-right .header-info h6,
.header .header-right .header-info p {
  color: var(--brand-eggshell);
}
.nav-control .hamburger .line {
  background-color: var(--brand-eggshell);
}

/* Avatar del usuario en la barra superior, en Mindaro */
.header-media {
  background-color: var(--brand-mindaro);
  border-radius: 50%;
  overflow: hidden;
}

/* ---------- Sidebar ---------- */
.deznav {
  background-color: #FFFFFF;
}
.deznav .menu-title {
  font-family: var(--brand-font-sans), sans-serif;
  color: var(--brand-smoky);
}
.deznav svg path,
.deznav svg circle,
.deznav svg ellipse {
  stroke: var(--brand-outerspace);
}
.deznav .metismenu > li > a {
  color: var(--brand-smoky);
}
.deznav .metismenu > li > a.mm-active,
.deznav .metismenu li.mm-active > a {
  background-color: var(--brand-mindaro);
  color: var(--brand-smoky);
  border-radius: 0.75rem;
}

/* ---------- Pestañas (tabs) tipo píldora en Mindaro ---------- */
.nav-tabs {
  border-bottom: 1px solid var(--brand-warning-soft);
  gap: 0.5rem;
  flex-wrap: wrap;
}
.nav-tabs .nav-link {
  border: none;
  border-radius: 50rem;
  color: var(--brand-smoky);
  font-family: var(--brand-font-sans), sans-serif;
  font-weight: 600;
  padding: 0.5rem 1.25rem;
  margin-bottom: 0.25rem;
}
.nav-tabs .nav-link:hover {
  border-color: transparent;
  background-color: rgba(232, 253, 134, 0.35);
}
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  background-color: var(--brand-mindaro);
  color: var(--brand-smoky);
  border-color: transparent;
}

/* ---------- Tarjetas de resumen del dashboard (Inicio) ----------
   Cubre tanto .icon-box (ícono de "Próximos Controles") como .cpm-kpi-icon
   (círculos de las tarjetas KPI en home3.html), que usan las mismas clases
   bg-*-light pero no comparten clase base. */
.icon-box.bg-danger-light,
.cpm-kpi-icon.bg-danger-light {
  background-color: var(--brand-danger-soft) !important;
}
.icon-box.bg-warning-light,
.cpm-kpi-icon.bg-warning-light {
  background-color: var(--brand-warning-soft) !important;
}
.icon-box.bg-primary-light,
.cpm-kpi-icon.bg-primary-light {
  background-color: var(--brand-mindaro) !important;
}
.depostit-card-media h3.text-danger,
.text-danger {
  color: var(--brand-danger) !important;
}
.depostit-card-media h3.text-warning,
.text-warning {
  color: var(--brand-warning) !important;
}
.depostit-card-media h3.text-success,
.text-success {
  color: var(--brand-success) !important;
}

/* ---------- Checkbox "Activo" (empresa > Configuración > Procesos) ---------- */
.checkbox-success .form-check-input:checked {
  background-color: var(--brand-outerspace);
  border-color: var(--brand-outerspace);
}
.checkbox-success .form-check-input:checked[type="checkbox"] {
  --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23E6F4D1' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
}
.checkbox-success .form-check-input:focus {
  border-color: var(--brand-outerspace);
  box-shadow: 0 0 0 0.25rem var(--rgba-primary-2);
}

/* ---------- Apetito del riesgo (empresa > Configuración) ----------
   El span (.input-group-text) mantiene el border-radius por defecto del
   theme (chico) en su esquina externa, mientras que .form-control ya es
   píldora completa (50rem) por la regla de arriba: se ve más "cuadrado" del
   lado del label. Se iguala el radio para que ambos lados de la píldora
   luzcan con el mismo redondeo. */
.input-group-text {
  border-radius: 50rem;
}
.apetito-muy-alto span,
.apetito-alto span,
.apetito-moderado span,
.apetito-leve span {
  width: 110px;
  justify-content: center;
}
.apetito-muy-alto span {
  background-color: var(--brand-danger);
  color: var(--brand-eggshell);
}
.apetito-muy-alto .form-control {
  border-color: var(--brand-danger);
}
.apetito-alto span {
  background-color: var(--brand-warning);
  color: var(--brand-eggshell);
}
.apetito-alto .form-control {
  border-color: var(--brand-warning);
}
.apetito-moderado span {
  background-color: #F9DB4A;
  color: var(--brand-eggshell) !important;
  border: 0;
}
.apetito-moderado .form-control {
  border-color: #F9DB4A;
}
.apetito-leve span {
  background-color: var(--brand-success);
  color: var(--brand-eggshell);
}
.apetito-leve .form-control {
  border-color: var(--brand-success);
}

/* ---------- Badges / pills de estado genéricos ---------- */
.badge.bg-primary { background-color: var(--brand-outerspace) !important; }
.badge.bg-success { background-color: var(--brand-success) !important; }
.badge.bg-warning { background-color: var(--brand-warning) !important; }
.badge.bg-danger { background-color: var(--brand-danger) !important; }

/* ---------- Enlaces ---------- */
/* :not(.btn) evita pisar el texto de los botones hechos con <a class="btn ..."> */
a:not(.btn), .btn-link, .text-primary {
  color: var(--brand-outerspace) !important;
}
a:not(.btn):hover, .btn-link:hover {
  color: var(--brand-smoky) !important;
}
