/* ===========================
   1. GENERALES
   =========================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  background-color: #f8f9fa;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
}

a {
  text-decoration: none;
}

/* Títulos generales */
.titulo-seccion {
  color: #642B0C;
  font-weight: bold;
}

/* Texto pequeño reutilizable */
.texto-pequeño,
.pequeño {
  font-size: 0.85rem;
}

/* Contenedores principales */
.main-container {
  padding-top: 1.5rem;
  padding-bottom: 2rem;
}

/* ===========================
   2. NAVBAR + MENÚ
   =========================== */

.navbar {
  background-color: #ffffff !important;
  border-bottom: 4px solid #7AC943;
}

.navbar-brand img {
  height: 50px;
}

.nav-link,
.navbar-brand,
.offcanvas-title,
h1, h2, h3, h4, h5 {
  color: #642B0C !important;
}

/* Botón hamburguesa */
.navbar-toggler {
  border: none;
}
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(122,201,67,1)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

/* Offcanvas */
.offcanvas-header {
  background-color: #7AC943;
  color: #fff;
}
.offcanvas-title {
  color: #fff !important;
  font-weight: bold;
}
.offcanvas .btn-close {
  filter: invert(1);
}

/* Link activo */
.nav-link.active {
  background-color: #7AC943 !important;
  color: #fff !important;
  border-radius: 6px;
  padding: 5px 10px;
}

/* ===========================
   3. BOTONES
   =========================== */

.btn-primary {
  background-color: #7AC943;
  border-color: #7AC943;
}
.btn-primary:hover,
.btn-primary:focus {
  background-color: #5a9e32;
  border-color: #5a9e32;
}

.btn-outline-primary {
  color: #7AC943;
  border-color: #7AC943;
}
.btn-outline-primary:hover {
  background-color: #7AC943;
  color: #fff;
}

/* Botones pequeños de acción en tablas */
.btn-accion {
  padding: 0.15rem 0.35rem;
  font-size: 0.8rem;
}

/* ===========================
   4. TARJETAS / CARDS
   =========================== */

.card-hc {
  border: none;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.card-header {
  background-color: #7AC943 !important;
  color: #fff;
  font-weight: bold;
}

/* ===========================
   5. TABLAS
   =========================== */

.table thead th {
  background-color: #f1f3f5;
  border-bottom: 2px solid #dee2e6;
}

.table-hover tbody tr:hover {
  background-color: #f8fff3;
}

/* Columna de acciones (se puede usar en cualquier módulo) */
.col-acciones {
  width: 150px;
}

/* ===========================
   6. BADGES / ESTADOS
   =========================== */

.badge-estado-activo {
  background-color: #7AC943;
}

.badge-estado-inactivo,
.badge-estado-anulada,
.badge-estado-rechazada {
  background-color: #dc3545;
}

.badge-estado-pendiente {
  background-color: #ffc107;
  color: #000;
}

.badge-estado-aprobada,
.badge-estado-aceptada {
  background-color: #0d6efd;
}

/* ===========================
   7. MODALES
   =========================== */

.modal-header.bg-success {
  background-color: #7AC943 !important;
}

/* ===========================
   8. FORMULARIOS
   =========================== */

.form-label {
  font-weight: 500;
  color: #642B0C;
}

.form-control:focus,
.form-select:focus {
  border-color: #7AC943;
  box-shadow: 0 0 0 0.2rem rgba(122, 201, 67, 0.25);
}

/* ===========================
   9. COSAS RESPONSIVE
   =========================== */

@media (max-width: 768px) {
  .titulo-seccion {
    font-size: 1.4rem;
  }

  .navbar-brand span {
    display: none;
  }
}
