/* ============================================================
   Inovalab · salud.inovalab.mx — página pública y portal
   Marca original: azul #103888 · magenta #d030d0
   ============================================================ */
:root{
  --azul:#103888; --azul-osc:#0c1c46; --magenta:#d030d0;
  --papel:#fbf9f5; --tinta:#141a2e; --tinta-2:#3c4358; --tinta-3:#4a5169;
  --gris:#6b7288; --gris-2:#7a829a;
  --borde:rgba(16,56,136,.12); --borde-2:rgba(16,56,136,.20);
  --ok:#1a9e6b;
  --f-d:'Bricolage Grotesque',sans-serif;
  --f-b:'Instrument Sans',system-ui,sans-serif;
  --f-m:'IBM Plex Mono',monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papel);color:var(--tinta);font:400 16px/1.55 var(--f-b)}
a{color:var(--azul);text-decoration:none}
a:hover{color:var(--magenta)}
img{max-width:100%}
h1,h2,h3{font-family:var(--f-d);font-weight:600;letter-spacing:-.015em;margin:0}
button{font:inherit;cursor:pointer}

.etq{font:600 11px var(--f-m);letter-spacing:.16em;text-transform:uppercase}
.mini{font:600 10px var(--f-m);letter-spacing:.14em;text-transform:uppercase;color:var(--gris-2)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 26px;border-radius:999px;border:0;background:var(--azul);color:#fff;
  font-size:15px;font-weight:600;text-decoration:none;transition:filter .15s}
.btn:hover{filter:brightness(1.12);color:#fff}
.btn-linea{background:transparent;color:var(--azul);border:1.5px solid rgba(16,56,136,.35)}
.btn-linea:hover{filter:none;border-color:var(--azul);color:var(--azul)}
.btn-magenta{background:var(--magenta)}
.btn-suave{background:rgba(16,56,136,.06);color:var(--azul)}
.btn-suave:hover{filter:none;background:rgba(16,56,136,.11);color:var(--azul)}
.btn-bloque{display:flex;width:100%}
.btn[disabled]{opacity:.55;cursor:default;filter:none}

/* ---------- formularios ---------- */
label.campo{display:block;margin-bottom:13px}
label.campo>span{display:block;font-size:12.5px;font-weight:600;color:var(--tinta-2);margin-bottom:6px}
input,select{width:100%;background:#fff;border:1.5px solid var(--borde-2);border-radius:13px;
  padding:13px 15px;font:400 15.5px var(--f-b);color:var(--tinta)}
input:focus,select:focus{outline:none;border-color:var(--azul);box-shadow:0 0 0 3px rgba(16,56,136,.12)}
.aviso{background:rgba(16,56,136,.06);border-radius:13px;padding:12px 15px;font-size:12.5px;line-height:1.5;color:var(--tinta-3)}
.aviso-error{background:rgba(196,32,64,.08);color:#8e1330}
.aviso-ok{background:rgba(26,158,107,.10);color:#0d6b46}

/* ---------- tarjetas ---------- */
.tarjeta{background:#fff;border:1px solid var(--borde);border-radius:16px;padding:15px 17px}

/* pantalla de carga simple */
.cargando{padding:34px 0;text-align:center;color:var(--gris-2);font-size:14px}
