:root {
  --brand: #1d4a3e;
  --brand-dark: #123329;
  --brand-light: #e8f2ee;
  --accent: #c98a3e;
}

body {
  background: #f4f6f5;
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
  color: #21302b;
}

.app-navbar {
  background: linear-gradient(90deg, var(--brand-dark), var(--brand));
}

.app-navbar .nav-link {
  font-weight: 500;
}

.app-navbar .nav-link:hover {
  color: var(--accent) !important;
}

.card {
  border: none;
  border-radius: 12px;
  box-shadow: 0 2px 10px rgba(18, 51, 41, 0.08);
}

.card-header {
  background: var(--brand-light);
  border-bottom: 1px solid rgba(29, 74, 62, 0.1);
  font-weight: 600;
  color: var(--brand-dark);
  border-radius: 12px 12px 0 0 !important;
}

.btn-primary {
  background-color: var(--brand);
  border-color: var(--brand);
}
.btn-primary:hover, .btn-primary:focus {
  background-color: var(--brand-dark);
  border-color: var(--brand-dark);
}

.btn-accent {
  background-color: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.btn-accent:hover { color: #fff; opacity: .9; }

.stat-card {
  border-radius: 14px;
  padding: 1.25rem 1.5rem;
  color: #fff;
}
.stat-card.bg-1 { background: linear-gradient(135deg, #1d4a3e, #2c6b58); }
.stat-card.bg-2 { background: linear-gradient(135deg, #c98a3e, #e0a75c); }
.stat-card.bg-3 { background: linear-gradient(135deg, #2b5f9e, #4b83c4); }
.stat-card.bg-4 { background: linear-gradient(135deg, #8a2b3e, #b5445c); }
.stat-card .stat-value { font-size: 2rem; font-weight: 700; }
.stat-card .stat-label { font-size: .85rem; opacity: .85; text-transform: uppercase; letter-spacing: .04em; }

.table thead th {
  background: var(--brand-light);
  color: var(--brand-dark);
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .03em;
  border-bottom: none;
}

.linea-detalle { border: 1px solid #dfe6e2; border-radius: 10px; padding: .9rem; margin-bottom: .75rem; background: #fbfcfb; }
.linea-detalle .remove-linea { cursor: pointer; }

.cabys-resultado { cursor: pointer; }
.cabys-resultado:hover { background: var(--brand-light); }

.login-wrapper {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--brand-dark), var(--brand));
}
.login-card { max-width: 400px; width: 100%; border-radius: 16px; }

code.clave { word-break: break-all; font-size: .8rem; }

/* Actualización automática de estados de documentos */
@keyframes estado-flash {
  0%   { box-shadow: 0 0 0 0 rgba(25, 135, 84, .55); }
  100% { box-shadow: 0 0 0 8px rgba(25, 135, 84, 0); }
}
.estado-actualizado { animation: estado-flash 1s ease-out 2; }

.indicador-live { display: inline-flex; align-items: center; gap: .4rem; }
.indicador-live .punto {
  width: 8px; height: 8px; border-radius: 50%;
  background: #198754; display: inline-block;
  animation: punto-pulso 1.4s ease-in-out infinite;
}
@keyframes punto-pulso {
  0%, 100% { opacity: .35; transform: scale(0.85); }
  50%      { opacity: 1;   transform: scale(1); }
}
