/* ==========================================================================
   UEP · Sistema de diseño base (tokens + base)
   Paleta institucional: azul profundo (confianza/tecnología) + ámbar (conexión).
   ========================================================================== */
:root{
  --brand-900:#0d2a47;
  --brand-800:#123a5e;
  --brand:#16466f;
  --brand-600:#1d5a8c;
  --brand-050:#eef4fa;
  --accent:#e0a53a;
  --accent-600:#c98d24;
  --ink:#1b2733;
  --muted:#5b6b7b;
  --line:#e4e9f0;
  --bg:#f4f7fb;
  --surface:#ffffff;
  --ok:#1f8a5b;
  --ok-bg:#e7f5ee;
  --danger:#c0392b;
  --danger-bg:#fbeae8;
  --warn:#b9821a;
  --warn-bg:#fdf3e0;
  --radius:14px;
  --radius-sm:9px;
  --shadow-sm:0 1px 2px rgba(13,42,71,.06);
  --shadow:0 1px 2px rgba(13,42,71,.05), 0 10px 28px rgba(13,42,71,.07);
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font);
  color:var(--ink);
  background:var(--bg);
  line-height:1.55;
  font-size:16px;
}
h1,h2,h3,h4{ line-height:1.2; color:var(--brand-900); margin:0 0 .5em; font-weight:700; }
a{ color:var(--brand-600); }
img{ max-width:100%; height:auto; }

/* Botones */
.btn{
  display:inline-flex; align-items:center; gap:.5rem; justify-content:center;
  font-weight:600; border:1px solid transparent; border-radius:var(--radius-sm);
  padding:.62rem 1.1rem; cursor:pointer; text-decoration:none; transition:background .15s, border-color .15s, color .15s;
}
.btn-primary{ background:var(--brand); color:#fff; }
.btn-primary:hover{ background:var(--brand-800); color:#fff; }
.btn-accent{ background:var(--accent); color:#3a2a06; }
.btn-accent:hover{ background:var(--accent-600); color:#3a2a06; }
.btn-outline{ background:#fff; border-color:var(--line); color:var(--brand-800); }
.btn-outline:hover{ border-color:var(--brand-600); }
.btn-block{ width:100%; }

/* Alertas / flash */
.alert{ border-radius:var(--radius-sm); padding:.8rem 1rem; margin-bottom:1rem; border:1px solid transparent; font-size:.95rem; }
.alert-success{ background:var(--ok-bg); border-color:#c7e7d5; color:#155e3c; }
.alert-error{ background:var(--danger-bg); border-color:#f1c9c3; color:#8f2318; }
.alert-warn{ background:var(--warn-bg); border-color:#f0dcb0; color:#7a5610; }

/* Accesibilidad: foco visible en todos los interactivos */
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible{
  outline:3px solid rgba(29,90,140,.45); outline-offset:2px; border-radius:4px;
}

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
}
