:root {
  --azul: #0b3d5c;
  --azul-claro: #14607f;
  --fondo: #f4f7f9;
  --tarjeta: #ffffff;
  --texto: #1a1a1a;
  --gris: #6b7a85;
  --borde: #d5dde3;
  --verde: #2e7d32;
  --amarillo: #b26a00;
  --azul-estado: #1565c0;
  --rojo: #c62828;
  --gris-estado: #757575;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 16px; line-height: 1.5; color: var(--texto); background: var(--fondo);
  min-height: 100vh; display: flex; flex-direction: column;
}
.cabecera {
  background: var(--azul); color: #fff; padding: 12px 16px;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.marca { display: flex; flex-direction: column; }
.marca-nombre { font-weight: 700; font-size: 18px; letter-spacing: .2px; }
.marca-sub { font-size: 12px; opacity: .85; }
.etiqueta { font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 4px; }
.etiqueta-prueba { background: #ffb300; color: #1a1a1a; }
.contenido { flex: 1; width: 100%; max-width: 760px; margin: 0 auto; padding: 16px; }
.tarjeta { background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 10px; padding: 20px; }
h1 { font-size: 22px; color: var(--azul); margin: 0 0 12px; line-height: 1.25; }
p { margin: 0 0 12px; }
a { color: var(--azul-claro); }
.nota { color: var(--gris); font-size: 14px; }
.pie { text-align: center; font-size: 12px; color: var(--gris); padding: 16px; }
.boton {
  display: inline-block; background: var(--azul-claro); color: #fff; text-decoration: none;
  font-weight: 600; padding: 12px 20px; border-radius: 8px; border: 0; font-size: 16px; cursor: pointer;
}
.boton:active { transform: translateY(1px); }
@media (max-width: 480px) {
  .contenido { padding: 12px; }
  .tarjeta { padding: 16px; }
}

/* ---- formulario del laboratorio ---- */
.encabezado-lab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.region { font-size: 13px; color: var(--gris); text-transform: uppercase; letter-spacing: .3px; }
.estado { font-size: 13px; font-weight: 700; padding: 6px 10px; border-radius: 999px; white-space: nowrap; }
.estado-verde { background: #e8f5e9; color: var(--verde); }
.estado-amarillo { background: #fff3e0; color: var(--amarillo); }
.estado-azul { background: #e3f2fd; color: var(--azul-estado); }
.estado-rojo { background: #ffebee; color: var(--rojo); }
.estado-gris { background: #eceff1; color: var(--gris-estado); }
.aviso { padding: 10px 12px; border-radius: 8px; font-size: 15px; }
.aviso-verde { background: #e8f5e9; color: #1b5e20; }
.aviso-rojo { background: #ffebee; color: #b71c1c; }
.aviso-azul { background: #e3f2fd; color: #0d47a1; }
h2 { font-size: 17px; color: var(--azul); margin: 20px 0 8px; }
.campo { display: block; margin: 0 0 10px; }
.campo span { display: block; font-size: 13px; color: var(--gris); margin-bottom: 3px; }
.campo input, .campo select, .campo textarea {
  width: 100%; font: inherit; padding: 10px; border: 1px solid var(--borde); border-radius: 8px; background: #fff;
}
.fila-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cantidades { display: flex; flex-direction: column; gap: 8px; }
.cantidad { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--borde); }
.cantidad label { flex: 1; font-size: 15px; }
.cantidad small { color: var(--gris); }
.stepper { display: flex; align-items: center; gap: 4px; }
.stepper button { width: 44px; height: 44px; font-size: 22px; border: 1px solid var(--borde); background: #f7f9fb; border-radius: 8px; cursor: pointer; }
.stepper input { width: 64px; height: 44px; text-align: center; font: inherit; font-size: 18px; border: 1px solid var(--borde); border-radius: 8px; }
.acciones { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 16px; }
.boton-secundario { background: #fff; color: var(--azul-claro); border: 1px solid var(--azul-claro); }
.resumen { width: 100%; border-collapse: collapse; margin: 12px 0; }
.resumen th { text-align: left; font-weight: 600; padding: 8px; border-bottom: 1px solid var(--borde); width: 60%; }
.resumen td { padding: 8px; border-bottom: 1px solid var(--borde); font-size: 18px; }
@media (max-width: 480px) { .fila-2 { grid-template-columns: 1fr; } }
