/* ============================================================
   AVIO Inventario — Estilos corporativos
   Paleta: azul corporativo #0056A4 + celeste #00A0E3
   Bootstrap 5 como base; este archivo solo extiende, no reemplaza.
   ============================================================ */

/* === Variables corporativas === */
:root {
  --avio-blue:        #0056A4;
  --avio-blue-dark:   #003D7A;
  --avio-blue-light:  #E8F2FF;
  --avio-accent:      #00A0E3;
  --quarantine-bg:    #FF8C00;
  --quarantine-text:  #FFFFFF;
  --danger:           #DC3545;
  --warning-yellow:   #FFC107;
  --success:          #198754;
  --text-primary:     #1A1A2E;
  --bg-light:         #F8F9FC;
}

/* ============================================================
   GLOBAL
   ============================================================ */
body {
  background-color: var(--bg-light);
  color: var(--text-primary);
  font-size: 0.92rem;
}

a { color: var(--avio-blue); }
a:hover { color: var(--avio-blue-dark); }

/* ============================================================
   NAVBAR
   ============================================================ */
.avio-navbar {
  background-color: var(--avio-blue) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
}

.avio-navbar .navbar-brand {
  font-weight: 700;
  letter-spacing: 0.03em;
}

.avio-navbar .nav-link {
  color: rgba(255, 255, 255, 0.82) !important;
  transition: color 0.18s;
  border-radius: 4px;
  padding: 6px 10px;
}

.avio-navbar .nav-link:hover,
.avio-navbar .nav-link.active {
  color: #fff !important;
  background-color: rgba(255, 255, 255, 0.12);
}

.avio-navbar .dropdown-toggle::after {
  vertical-align: 0.18em;
}

.avio-navbar .dropdown-menu {
  border: none;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.14);
  border-radius: 8px;
  margin-top: 6px;
}

.avio-navbar .dropdown-item:hover {
  background-color: var(--avio-blue-light);
  color: var(--avio-blue-dark);
}

/* ============================================================
   BOTONES
   ============================================================ */
.btn-avio {
  background-color: var(--avio-blue);
  border-color: var(--avio-blue);
  color: #fff;
  font-weight: 500;
}
.btn-avio:hover,
.btn-avio:focus {
  background-color: var(--avio-blue-dark);
  border-color: var(--avio-blue-dark);
  color: #fff;
}
.btn-avio:active {
  background-color: var(--avio-blue-dark) !important;
  border-color: var(--avio-blue-dark) !important;
}
.btn-avio:disabled {
  background-color: var(--avio-blue);
  border-color: var(--avio-blue);
  opacity: 0.55;
}

.btn-outline-avio {
  border-color: var(--avio-blue);
  color: var(--avio-blue);
  font-weight: 500;
}
.btn-outline-avio:hover {
  background-color: var(--avio-blue);
  border-color: var(--avio-blue);
  color: #fff;
}

/* ============================================================
   TEXTOS Y COLORES CORPORATIVOS
   ============================================================ */
.text-avio-blue   { color: var(--avio-blue)   !important; }
.text-avio-dark   { color: var(--avio-blue-dark) !important; }
.text-avio-accent { color: var(--avio-accent)  !important; }
.bg-avio          { background-color: var(--avio-blue)       !important; }
.bg-avio-light    { background-color: var(--avio-blue-light) !important; }
.border-avio      { border-color: var(--avio-blue) !important; }
.fw-600           { font-weight: 600; }

/* ============================================================
   CARDS
   ============================================================ */
.card {
  border: none;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.08);
  border-radius: 10px;
}

/* Card header con fondo AVIO */
.card-header.avio-header {
  background-color: var(--avio-blue);
  color: #fff;
  border-radius: 10px 10px 0 0 !important;
  padding: 10px 16px;
}
.card-header.avio-header .badge {
  font-size: 0.72rem;
}

/* Efecto hover en tarjetas clicables */
.hover-shadow {
  cursor: pointer;
  transition: box-shadow 0.18s, transform 0.18s;
}
.hover-shadow:hover {
  box-shadow: 0 6px 20px rgba(0, 86, 164, 0.18);
  transform: translateY(-3px);
}

/* ============================================================
   DASHBOARD — Tarjetas de resumen
   ============================================================ */
.stat-card {
  border-left: 4px solid var(--avio-blue);
  border-radius: 8px;
  transition: box-shadow 0.18s, transform 0.18s;
}
.stat-card:hover {
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1);
}

.stat-card.danger-card     { border-left-color: var(--danger); }
.stat-card.warning-card    { border-left-color: var(--warning-yellow); }
.stat-card.success-card    { border-left-color: var(--success); }
.stat-card.quarantine-card { border-left-color: var(--quarantine-bg); }

.stat-card .stat-value {
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.02em;
}

/* Filas de alerta en el dashboard */
tr.alert-expired  { background-color: #fde8e8; }
tr.alert-expiring { background-color: #fff8e1; }

/* ============================================================
   TABLAS
   ============================================================ */

/* Cabecera KARDEX */
.table-kardex th {
  background-color: var(--avio-blue-light);
  color: var(--avio-blue-dark);
  font-weight: 600;
  white-space: nowrap;
  font-size: 0.82rem;
  letter-spacing: 0.02em;
  border-bottom: 2px solid rgba(0, 86, 164, 0.2);
}

/* Filas de cuarentena */
.row-quarantine,
.row-quarantine td,
.row-quarantine th {
  background-color: var(--quarantine-bg) !important;
  color: var(--quarantine-text) !important;
}
.row-quarantine a {
  color: #fff !important;
  text-decoration: underline;
}
.row-quarantine .badge {
  border: 1px solid rgba(255,255,255,0.5);
}

/* Celda de vencimiento superado */
.cell-expired {
  color: var(--danger) !important;
  font-weight: 600;
}

/* Badge de cuarentena */
.badge-quarantine {
  background-color: var(--quarantine-bg);
  color: #fff;
}

/* ============================================================
   FORMULARIOS
   ============================================================ */
.form-control:focus,
.form-select:focus {
  border-color: var(--avio-blue);
  box-shadow: 0 0 0 0.2rem rgba(0, 86, 164, 0.18);
}

/* Campos dinámicos (new item): transición suave al aparecer */
.field-row {
  transition: opacity 0.15s;
}

/* ============================================================
   PÁGINA DE LOGIN (standalone, sin navbar)
   ============================================================ */
.avio-login-bg {
  background: linear-gradient(
    145deg,
    var(--avio-blue-dark) 0%,
    var(--avio-blue) 55%,
    var(--avio-accent) 100%
  );
  min-height: 100vh;
}

.avio-login-card {
  width: 100%;
  max-width: 420px;
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
}

/* Input OTP — dígitos grandes centrados */
.otp-input {
  font-size: 2.2rem;
  font-weight: 700;
  letter-spacing: 0.6rem;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

/* ============================================================
   FORMATO 025 — Encabezado (vista web)
   ============================================================ */
.formato-025-header {
  border-bottom: 3px solid var(--avio-blue);
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
}

/* ============================================================
   PAGINACIÓN
   ============================================================ */
.page-link {
  color: var(--avio-blue);
}
.page-item.active .page-link {
  background-color: var(--avio-blue);
  border-color: var(--avio-blue);
}
.page-link:focus {
  box-shadow: 0 0 0 0.2rem rgba(0, 86, 164, 0.2);
}

/* ============================================================
   LISTAS Y ACCIONES
   ============================================================ */
.list-group-item-action:hover {
  background-color: var(--avio-blue-light);
}
.list-group-item-action:active {
  background-color: rgba(0, 86, 164, 0.12);
  color: var(--avio-blue-dark);
}

/* ============================================================
   RESPONSIVE — pantallas pequeñas
   ============================================================ */
@media (max-width: 575.98px) {
  .stat-card .stat-value { font-size: 1.7rem; }
  .otp-input { font-size: 1.7rem; letter-spacing: 0.4rem; }
  main.container-fluid { padding-left: 8px !important; padding-right: 8px !important; }
}

/* ============================================================
   IMPRESIÓN — ocultar elementos de navegación
   ============================================================ */
@media print {
  .no-print,
  .navbar,
  nav,
  .btn,
  .alert,
  .pagination,
  footer {
    display: none !important;
  }

  body {
    background: #fff;
    color: #000;
    font-size: 10pt;
  }

  main.container-fluid {
    padding: 0 !important;
  }

  .card {
    box-shadow: none !important;
    border: 1px solid #ccc !important;
    border-radius: 0 !important;
  }

  .card-header.avio-header {
    background-color: #003D7A !important;
    color: #fff !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Cuarentena en impresión */
  .row-quarantine,
  .row-quarantine td {
    background-color: #FF8C00 !important;
    color: #fff !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Vencidos en impresión */
  .cell-expired {
    color: #DC3545 !important;
    font-weight: 700 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* No romper filas entre páginas */
  tr { page-break-inside: avoid; }

  /* Mostrar URLs de links al imprimir (opcional, comentar si no se desea) */
  /* a[href]::after { content: " (" attr(href) ")"; font-size: 8pt; color: #666; } */
}
