/* Nodo Cívico · Entrar (v9) */
body.nc-auth { min-height: 100dvh; background: var(--nc-surface); }
.nc-auth__layout { display: grid; min-height: 100dvh; }
@media (width >= 1024px) { .nc-auth__layout { grid-template-columns: minmax(22rem, 34rem) 1fr; } }

.nc-auth__side {
  display: none; flex-direction: column; justify-content: space-between; gap: 2rem;
  padding: 2.5rem 3rem; color: rgb(255 255 255 / .88); background: var(--nc-blue);
  background-image: radial-gradient(30rem 22rem at 100% 0, rgb(5 196 187 / .3), transparent 60%), radial-gradient(26rem 18rem at 0 100%, rgb(254 196 61 / .2), transparent 60%);
}
@media (width >= 1024px) { .nc-auth__side { display: flex; position: sticky; top: 0; height: 100dvh; } }
.nc-auth__logo { display: inline-flex; align-items: center; gap: .75rem; color: var(--nc-white) !important; text-decoration: none; font-weight: 800; font-size: 1.4rem; }
.nc-auth__logo svg { width: 2.75rem; height: 2.75rem; color: #7fe3dc !important; }
.nc-auth__motto { margin: 0 0 1.5rem; font-size: clamp(2rem, 1.4rem + 1.6vw, 2.75rem); font-weight: 800; line-height: 1.1; color: var(--nc-white); }
.nc-auth__pitch h2 { margin: 0 0 1rem; font-size: 1rem; color: var(--nc-yellow); font-weight: 750; }
.nc-auth__pitch ul { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; font-size: 1.0625rem; }
.nc-auth__pitch li { display: flex; gap: .875rem; align-items: flex-start; }
.nc-auth__pitch li i { display: grid; place-items: center; flex: none; inline-size: 2.25rem; block-size: 2.25rem; border-radius: 50%; background: rgb(255 255 255 / .12); color: var(--nc-teal-bright); }
.nc-auth__side-foot { margin: 0; font-size: .9rem; color: rgb(255 255 255 / .72); }
.nc-auth__side-foot i { color: var(--nc-teal-bright); margin-inline-end: .4rem; }

.nc-auth__main { display: flex; flex-direction: column; min-width: 0; }
.nc-auth__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; }
@media (width >= 1024px) { .nc-auth__top { justify-content: flex-end; padding: 1.5rem 2rem; } .nc-auth__brand-m { display: none; } }
.nc-auth__brand-m img { width: 140px; height: auto; display: block; }

.nc-auth__card {
  width: min(100% - 2rem, 30rem); margin: auto; padding: clamp(1.5rem, 1rem + 2vw, 2.5rem);
  border-radius: var(--nc-radius-block); background: var(--nc-white); border: 1px solid var(--nc-border); box-shadow: var(--nc-shadow);
}
.nc-auth__card:focus { outline: 0; }
.nc-auth__card h1 { margin: 0 0 .625rem; font-size: clamp(1.6rem, 1.4rem + .8vw, 2rem); }
.nc-auth__intro { margin: 0 0 1.5rem; color: var(--nc-muted); }
.nc-auth__context { margin-bottom: 1.5rem; font-size: .9375rem; }

.nc-providers { display: grid; gap: .75rem; }
.nc-provider {
  position: relative; display: flex; align-items: center; justify-content: center; gap: .75rem; width: 100%;
  min-height: 3.25rem; padding: .75rem 1.25rem; border: 1.5px solid var(--nc-border-strong); border-radius: 999px;
  background: var(--nc-white); color: var(--nc-text); font: 650 1.0625rem/1.2 var(--nc-font); cursor: pointer;
  transition: background-color .15s var(--nc-ease), border-color .15s var(--nc-ease), box-shadow .15s var(--nc-ease);
}
.nc-provider:hover { background: var(--nc-surface); border-color: var(--nc-blue); }
.nc-provider:disabled, .nc-provider[aria-busy="true"] { opacity: .65; cursor: progress; }
.nc-provider__mark { position: absolute; inset-inline-start: 1.25rem; width: 1.25rem; height: 1.25rem; }
.nc-provider--x { background: #0f1419; border-color: #0f1419; color: var(--nc-white); }
.nc-provider--x:hover { background: #26303a; border-color: #26303a; }
.nc-provider__mark--x { display: grid; place-items: center; font-size: 1.15rem; }

.nc-auth__remember { display: flex; gap: .75rem; align-items: flex-start; margin: 1.25rem 0 0; padding: .875rem 1rem; border-radius: var(--nc-radius-card); background: var(--nc-surface); cursor: pointer; }
.nc-auth__remember input { inline-size: 1.15rem; block-size: 1.15rem; margin-top: .2rem; accent-color: var(--nc-teal); flex: none; }
.nc-auth__remember strong { display: block; font-size: .9375rem; color: var(--nc-text); font-weight: 650; }
.nc-auth__remember small { display: block; color: var(--nc-muted); font-size: .85rem; }

.auth-entry-feedback:empty { display: none; }
.auth-entry-feedback { margin-top: 1rem; padding: .75rem 1rem; border-radius: .625rem; background: var(--nc-blue-soft); font-size: .9375rem; }
.auth-entry-feedback.is-error { background: #fdecea; color: var(--nc-state-hidden); }
.auth-entry-feedback.is-success { background: #e8f5ee; color: var(--nc-state-done); }

.nc-auth__consent { margin: 1.25rem 0 0; font-size: .85rem; color: var(--nc-muted); }

.nc-auth__local { margin-top: 1.5rem; border-top: 1px solid var(--nc-border); padding-top: 1rem; }
.nc-auth__local summary { display: flex; align-items: center; gap: .5rem; cursor: pointer; color: var(--nc-teal-ink); font-weight: 650; font-size: .9375rem; list-style: none; border-radius: .5rem; }
.nc-auth__local summary::-webkit-details-marker { display: none; }
.nc-auth__local summary::after { content: "\f078"; font: var(--fa-font-solid); font-size: .7rem; margin-inline-start: auto; transition: transform .2s var(--nc-ease); }
.nc-auth__local[open] summary::after { transform: rotate(180deg); }
.nc-auth__local-body { padding-top: 1rem; }
.nc-field { display: grid; gap: .35rem; margin-bottom: 1rem; }
.nc-field__row { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.nc-auth .form-label { margin: 0; font-weight: 650; color: var(--nc-text); font-size: .9375rem; }
.nc-auth .form-control { min-height: 2.875rem; border-radius: var(--nc-radius-control); border-color: var(--nc-border-strong); font-size: 1rem; }
.nc-auth .form-text { font-size: .85rem; color: var(--nc-muted); }
.nc-auth .text-danger { color: var(--nc-state-hidden) !important; }
.nc-auth .text-success { color: var(--nc-state-done) !important; }
.nc-linkbtn { border: 0; background: none; padding: .25rem; color: var(--nc-teal-ink); font-weight: 650; font-size: .875rem; cursor: pointer; text-decoration: underline; }
.nc-password { display: flex; gap: .5rem; }
.nc-password .form-control { flex: 1; }
.nc-password__toggle { display: inline-flex; align-items: center; gap: .4rem; padding: 0 .875rem; border: 1px solid var(--nc-border-strong); border-radius: var(--nc-radius-control); background: var(--nc-white); color: var(--nc-blue); font-weight: 600; cursor: pointer; }
.nc-check { display: flex; align-items: center; gap: .6rem; margin: .25rem 0 1rem; }
.nc-check label { font-size: .9375rem; }
#loginPagePasswordStep { margin-top: 1rem; }
.nc-auth__register { margin: 1rem 0 0; }
.form-feedback:empty { display: none; }
.form-feedback { margin-top: 1rem; padding: .75rem 1rem; border-radius: .625rem; background: var(--nc-blue-soft); font-size: .9375rem; }
.form-feedback.error { background: #fdecea; color: var(--nc-state-hidden); }
.form-feedback.success { background: #e8f5ee; color: var(--nc-state-done); }

/* Código de seguridad (captcha.js) */
.nc-auth .nc-captcha { display: grid; gap: .5rem; margin-bottom: 1rem; }
.nc-auth .nc-captcha-image-row { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.nc-auth .nc-captcha-image { border-radius: .5rem; border: 1px solid var(--nc-border); }
.nc-auth .nc-captcha-refresh { display: inline-flex; gap: .35rem; align-items: center; padding: .5rem .85rem; border: 1.5px solid var(--nc-blue); border-radius: 999px; background: none; color: var(--nc-blue); font-weight: 650; cursor: pointer; }
.nc-auth .nc-captcha-mode { justify-self: start; border: 0; background: none; padding: 0; color: var(--nc-teal-ink); text-decoration: underline; font-size: .875rem; cursor: pointer; }
.nc-auth .nc-captcha-status { margin: 0; font-size: .85rem; color: var(--nc-muted); }

.nc-auth__foot { display: flex; justify-content: center; gap: 1.5rem; padding: 1.5rem 1rem 2rem; font-size: .875rem; }
.nc-auth__foot a { color: var(--nc-muted); }
