body { background-color: #f7f9fb; }

.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  user-select: none;
}

/* --- Componentes reutilizables (clases utilitarias del tema) --- */
.card {
  background: #ffffff;
  border: 1px solid #c6c6cd;
  border-radius: 0.5rem;
}
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 16px; border-radius: 0.5rem;
  font-family: Inter, sans-serif; font-size: 14px; font-weight: 600;
  transition: all .15s ease; cursor: pointer; white-space: nowrap;
}
.btn:active { transform: scale(.97); }
.btn-primary { background: #000000; color: #ffffff; }
.btn-primary:hover { background: #2d3133; }
.btn-secondary { background: #006c49; color: #ffffff; }
.btn-secondary:hover { background: #005236; }
.btn-outline { background: transparent; color: #191c1e; border: 1px solid #76777d; }
.btn-outline:hover { background: #eceef0; }
.btn-ghost { background: transparent; color: #45464d; }
.btn-ghost:hover { background: #eceef0; }
.btn-danger { background: #ba1a1a; color: #ffffff; }
.btn-danger:hover { background: #93000a; }
.btn:disabled { opacity: .5; cursor: not-allowed; }

.form-label {
  display: block; margin-bottom: 4px;
  font-family: Inter, sans-serif; font-size: 12px; font-weight: 600; color: #45464d;
}
.form-input, .form-select, .form-textarea {
  width: 100%; padding: 8px 12px; border: 1px solid #c6c6cd; border-radius: 0.5rem;
  background: #ffffff; font-family: Inter, sans-serif; font-size: 14px; color: #191c1e;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
  outline: none; border-color: #000000; box-shadow: 0 0 0 3px rgba(0, 108, 73, .18);
}
.form-input:disabled, .form-select:disabled { background: #f2f4f6; color: #45464d; }

/* Tablas */
.tabla { width: 100%; border-collapse: collapse; text-align: left; }
.tabla thead tr {
  background: #f2f4f6; border-bottom: 1px solid #c6c6cd; color: #45464d;
  font-family: Inter, sans-serif; font-size: 11px; font-weight: 700;
  letter-spacing: .05em; text-transform: uppercase;
}
.tabla th, .tabla td { padding: 12px 16px; }
.tabla tbody tr { border-bottom: 1px solid #c6c6cd; font-size: 14px; }
.tabla tbody tr:hover { background: #f2f4f6; }
.num { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; }

@media print {
  #sidebar, #sidebar-overlay, header, .no-print { display: none !important; }
  body, main { overflow: visible !important; height: auto !important; }
  .lg\:ml-sidebar-width { margin-left: 0 !important; }
}
