:root{
  --azul:#1565c0; --azul-osc:#0d47a1; --gris:#f4f6f8; --borde:#d9dee3;
  --texto:#1f2933; --suave:#6b7280; --ok:#2e7d32; --warn:#e65100; --err:#c62828;
  --stat:#b71c1c;
}
*{box-sizing:border-box}
body{font-family:'Segoe UI',system-ui,sans-serif;margin:0;color:var(--texto);background:var(--gris)}
header{background:var(--azul-osc);color:#fff;padding:.6rem 1.2rem;display:flex;align-items:center;gap:1.2rem}
header .marca{font-weight:700;font-size:1.1rem}
header nav a{color:#e3f2fd;text-decoration:none;margin-right:1rem;font-size:.95rem}
header nav a:hover{color:#fff;text-decoration:underline}
main{max-width:1000px;margin:1.2rem auto;padding:0 1rem}
h1{font-size:1.4rem;margin:.2rem 0 1rem}
h2{font-size:1.1rem;margin:1.2rem 0 .6rem}
.card{background:#fff;border:1px solid var(--borde);border-radius:8px;padding:1rem;margin-bottom:1rem}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--borde);border-radius:8px;overflow:hidden}
th,td{text-align:left;padding:.5rem .7rem;border-bottom:1px solid var(--borde);font-size:.92rem}
th{background:#eef2f6;color:var(--suave);font-weight:600}
tr:last-child td{border-bottom:none}
label{display:block;font-size:.85rem;color:var(--suave);margin:.5rem 0 .15rem}
input,select,textarea{width:100%;padding:.45rem .55rem;border:1px solid var(--borde);border-radius:6px;font-size:.95rem;font-family:inherit}
.row{display:flex;gap:1rem;flex-wrap:wrap}
.row>div{flex:1;min-width:180px}
button,.btn{display:inline-block;background:var(--azul);color:#fff;border:none;padding:.5rem .9rem;border-radius:6px;font-size:.9rem;cursor:pointer;text-decoration:none}
button:hover,.btn:hover{background:var(--azul-osc)}
.btn.sec{background:#fff;color:var(--azul);border:1px solid var(--azul)}
.btn.sec:hover{background:#e3f2fd}
.btn.warn{background:var(--warn)}
.btn.mini{padding:.25rem .55rem;font-size:.8rem}
.badge{display:inline-block;padding:.12rem .5rem;border-radius:10px;font-size:.75rem;font-weight:600}
.b-registrado{background:#eceff1;color:#455a64}
.b-etiquetado{background:#e3f2fd;color:#1565c0}
.b-tomado{background:#fff3e0;color:#e65100}
.b-recepcionado{background:#e8f5e9;color:#2e7d32}
.b-rechazado{background:#ffebee;color:#c62828}
.stat{background:var(--stat);color:#fff;padding:.1rem .45rem;border-radius:4px;font-weight:700;font-size:.72rem}
.tiles{display:flex;gap:1rem;flex-wrap:wrap}
.tile{flex:1;min-width:150px;background:#fff;border:1px solid var(--borde);border-radius:8px;padding:1rem;text-align:center}
.tile .n{font-size:2rem;font-weight:700;color:var(--azul-osc)}
.tile .t{color:var(--suave);font-size:.85rem}
.error{background:#ffebee;color:var(--err);padding:.5rem .8rem;border-radius:6px;margin-bottom:.8rem;font-size:.9rem}
.presta{border:1px solid var(--borde);border-radius:6px;padding:.5rem;margin-bottom:.5rem}
.presta label{display:flex;align-items:center;gap:.5rem;color:var(--texto);margin:.15rem 0;cursor:pointer}
.presta input{width:auto}
.muted{color:var(--suave);font-size:.85rem}

/* Flags de resultado (Sprint 2) */
.f-normal{color:var(--texto)}
.f-bajo,.f-alto{color:#e65100;font-weight:600}
.f-critico,.f-critico_bajo,.f-critico_alto{color:#fff;background:var(--stat);padding:.1rem .4rem;border-radius:4px;font-weight:700}
.valor{font-weight:600;font-variant-numeric:tabular-nums}
h3.area{color:var(--suave);font-size:.95rem;margin:.8rem 0 .3rem}

/* Sesión y roles (Sprint 5) */
header .sesion{margin-left:auto;font-size:.85rem;color:#e3f2fd;display:flex;align-items:center;gap:.5rem}
header .sesion .rol{background:#1565c0;padding:.1rem .45rem;border-radius:10px;font-size:.72rem;text-transform:uppercase}
header .sesion a{color:#fff;text-decoration:underline}
.tile .n small{font-size:1rem;color:var(--suave)}
code{background:#eef2f6;padding:.05rem .3rem;border-radius:4px}
.b-en_proceso{background:#e3f2fd;color:#1565c0}
.b-resultado_ingresado{background:#ede7f6;color:#4527a0}
.b-validado{background:#e8f5e9;color:#2e7d32}
.b-liberado{background:#0d47a1;color:#fff}

/* Interoperabilidad HL7 (Sprint 6) */
pre.trama{background:#0d1b2a;color:#a8e6a3;padding:.7rem .8rem;border-radius:6px;
  font-family:Consolas,'Courier New',monospace;font-size:.82rem;line-height:1.45;
  white-space:pre-wrap;word-break:break-all;overflow-x:auto;margin:.4rem 0}
pre.trama.mini{font-size:.76rem;padding:.5rem .6rem;background:#12263a}
.seg{display:inline-block;background:var(--azul-osc);color:#fff;font-weight:700;
  padding:.1rem .45rem;border-radius:4px;font-family:Consolas,monospace;font-size:.8rem}
textarea{font-family:inherit}

/* Adjuntos de resultados */
.miniatura{width:100%;max-height:150px;object-fit:cover;border:1px solid var(--borde);
  border-radius:6px;display:block;margin-bottom:.25rem}
