/* Conexión Católica 5.6.85 R2 · Acceso legible y contrastado.
   Selectores deliberadamente acotados para no alterar otras pantallas. */
.cc5685r2-auth-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  gap: clamp(1rem, 3vw, 2.5rem);
  align-items: stretch;
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(1rem, 3vw, 2.5rem);
}
.cc5685r2-auth-story {
  background: #123b4a !important;
  color: #ffffff !important;
  border: 1px solid #315b68 !important;
  border-radius: 24px;
  padding: clamp(1.5rem, 4vw, 3rem);
  box-shadow: 0 18px 45px rgba(16,47,66,.16);
}
.cc5685r2-auth-story :is(h1,h2,h3,strong,b,.eyebrow) { color: #ffffff !important; }
.cc5685r2-auth-story :is(p,span,small) { color: #eaf4f5 !important; }
.cc5685r2-privacy-comparison,
.cc5685r2-benefit-list { display: grid; gap: .8rem; margin-top: 1.35rem; }
.cc5685r2-privacy-comparison > div,
.cc5685r2-benefit-list > span {
  display: grid;
  gap: .25rem;
  background: #ffffff !important;
  color: #102f42 !important;
  border: 1px solid #b8d0d6 !important;
  border-radius: 14px;
  padding: .95rem 1rem;
}
.cc5685r2-privacy-comparison > div :is(strong,span),
.cc5685r2-benefit-list > span :is(b,span) { color: #102f42 !important; }
.cc5685r2-benefit-list > span { grid-template-columns: 2rem 1fr; align-items: center; }
.cc5685r2-benefit-list b {
  display: grid; place-items: center; width: 1.85rem; height: 1.85rem;
  border-radius: 50%; background: #0b5363 !important; color: #ffffff !important;
}
.cc5685r2-auth-card {
  background: #ffffff !important;
  color: #102f42 !important;
  border: 1px solid #b8c9d0 !important;
  border-radius: 24px;
  padding: clamp(1.35rem, 4vw, 2.5rem);
  box-shadow: 0 18px 45px rgba(16,47,66,.14);
}
.cc5685r2-auth-card :is(h1,h2,h3,label,strong,legend,summary) { color: #102f42 !important; }
.cc5685r2-auth-card :is(p,small,.cc5685r2-auth-help,.cc5685r2-form-note) { color: #425f6e !important; }
.cc5685r2-auth-card .eyebrow { color: #0b5363 !important; }
.cc5685r2-auth-form { display: grid; gap: 1rem; }
.cc5685r2-auth-form > label:not(.cc5685r2-consent):not(.cc5685r2-remember),
.cc5685r2-magic-login label { display: grid; gap: .42rem; font-weight: 700; }
.cc5685r2-auth-card :is(input[type="email"],input[type="password"],input[type="text"],input[type="tel"]) {
  width: 100%; min-height: 48px;
  background: #ffffff !important;
  color: #102f42 !important;
  border: 2px solid #54727f !important;
  border-radius: 10px;
  padding: .72rem .8rem;
  caret-color: #102f42;
  opacity: 1 !important;
}
.cc5685r2-auth-card input::placeholder { color: #526b76 !important; opacity: 1; }
.cc5685r2-auth-card :is(input,button,a,summary):focus-visible {
  outline: 3px solid #f2ad2e !important;
  outline-offset: 3px !important;
  box-shadow: none !important;
}
.cc5685r2-primary-button,
.cc5685r2-auth-card .button-primary {
  background: #0b5363 !important;
  color: #ffffff !important;
  border: 2px solid #0b5363 !important;
  min-height: 48px;
  font-weight: 800;
}
.cc5685r2-primary-button:hover,
.cc5685r2-auth-card .button-primary:hover { background: #073f4b !important; border-color: #073f4b !important; color: #ffffff !important; }
.cc5685r2-auth-card .button-soft {
  background: #edf5f6 !important;
  color: #102f42 !important;
  border: 2px solid #54727f !important;
}
.cc5685r2-oauth-grid { display: grid; gap: .7rem; margin: 1rem 0; }
.cc5685r2-oauth-button {
  display: flex !important; align-items: center; justify-content: center; gap: .75rem;
  min-height: 48px; padding: .7rem 1rem;
  background: #ffffff !important; color: #102f42 !important;
  border: 2px solid #54727f !important; border-radius: 10px;
  font-weight: 800; text-decoration: none !important;
}
.cc5685r2-oauth-button:hover { background: #edf5f6 !important; color: #102f42 !important; border-color: #0b5363 !important; }
.cc5685r2-oauth-button.oauth-apple { background: #111111 !important; color: #ffffff !important; border-color: #111111 !important; }
.cc5685r2-oauth-button.oauth-apple:hover { background: #000000 !important; color: #ffffff !important; }
.cc5685r2-provider-mark {
  display: grid; place-items: center; flex: 0 0 1.8rem; width: 1.8rem; height: 1.8rem;
  border-radius: 50%; background: #edf5f6 !important; color: #102f42 !important;
  border: 1px solid #8ca4ae; font-weight: 900;
}
.oauth-apple .cc5685r2-provider-mark { background: #ffffff !important; color: #111111 !important; border-color: #ffffff; }
.cc5685r2-auth-divider { display: flex; align-items: center; gap: .75rem; color: #425f6e !important; margin: 1rem 0; }
.cc5685r2-auth-divider::before,.cc5685r2-auth-divider::after { content: ""; height: 1px; background: #a8bdc5; flex: 1; }
.cc5685r2-auth-divider span { color: #425f6e !important; }
.cc5685r2-consent,.cc5685r2-remember {
  display: grid !important; grid-template-columns: 1.35rem 1fr; gap: .7rem; align-items: start;
  background: #f4f8f9 !important; color: #102f42 !important;
  border: 1px solid #b8c9d0; border-radius: 10px; padding: .8rem;
}
.cc5685r2-consent input,.cc5685r2-remember input { width: 1.2rem; height: 1.2rem; margin-top: .12rem; accent-color: #0b5363; }
.cc5685r2-consent span,.cc5685r2-remember :is(span,strong,small) { color: #102f42 !important; }
.cc5685r2-remember small { display: block; font-weight: 400; margin-top: .15rem; }
.cc5685r2-magic-login { margin-top: 1rem; border: 1px solid #b8c9d0; border-radius: 10px; padding: .85rem; background: #f8fbfb !important; }
.cc5685r2-magic-login summary { cursor: pointer; font-weight: 800; }
.cc5685r2-magic-login form { display: grid; gap: .75rem; margin-top: .8rem; }
.cc5685r2-auth-links { display: flex; flex-wrap: wrap; gap: .75rem 1.1rem; margin-top: 1rem; }
.cc5685r2-auth-links a,.cc5685r2-auth-card a:not(.cc5685r2-oauth-button) { color: #075467 !important; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; font-weight: 750; }
.cc5685r2-auth-links a:visited,.cc5685r2-auth-card a:not(.cc5685r2-oauth-button):visited { color: #5a315f !important; }

/* Modos de contraste del portal: mantener superficie y bordes inequívocos. */
:is(html[data-contrast="high"],html[data-contrast="maximum"],body.contrast-high,body.contrast-maximum) .cc5685r2-auth-card {
  background: #ffffff !important; color: #000000 !important; border: 3px solid #000000 !important;
}
:is(html[data-contrast="high"],html[data-contrast="maximum"],body.contrast-high,body.contrast-maximum) .cc5685r2-auth-card :is(h1,h2,h3,p,label,small,strong,span,summary) { color: #000000 !important; }
:is(html[data-contrast="high"],html[data-contrast="maximum"],body.contrast-high,body.contrast-maximum) .cc5685r2-auth-card :is(input[type="email"],input[type="password"],input[type="text"],input[type="tel"]) { border-color: #000000 !important; color: #000000 !important; }

@media (max-width: 820px) {
  .cc5685r2-auth-layout { grid-template-columns: 1fr; padding: 1rem; }
  .cc5685r2-auth-story,.cc5685r2-auth-card { border-radius: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .cc5685r2-auth-layout * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
