/* =========================================================
   UNIWELF
   AUTENTICACIÓN PÚBLICA
   ========================================================= */

.uw-auth-body {
    min-height: 100vh;

    background:
        radial-gradient(
            circle at 12% 15%,
            rgba(29, 91, 172, 0.10),
            transparent 27%
        ),
        radial-gradient(
            circle at 88% 12%,
            rgba(216, 162, 11, 0.09),
            transparent 24%
        ),
        #f5f7fb;
}


/* =========================================================
   PÁGINA
   ========================================================= */

.uw-auth-page {
    min-height: 100vh;

    display: grid;
    place-items: center;

    padding: 32px;
}


/* =========================================================
   CONTENEDOR PRINCIPAL
   ========================================================= */

.uw-auth-shell {
    width: min(1120px, 100%);
    min-height: 650px;

    display: grid;

    grid-template-columns:
        minmax(390px, 0.93fr)
        minmax(500px, 1.07fr);

    overflow: hidden;

    border: 1px solid #d7dfeb;
    border-radius: 24px;

    background: #ffffff;

    box-shadow:
        0 28px 75px rgba(7, 26, 70, 0.13),
        0 5px 18px rgba(7, 26, 70, 0.06);
}


/* =========================================================
   PANEL DE PRESENTACIÓN
   ========================================================= */

.uw-auth-presentation {
    position: relative;

    min-width: 0;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    padding: 40px 42px;

    overflow: hidden;

    color: #ffffff;

    background:
        radial-gradient(
            circle at 88% 20%,
            rgba(242, 201, 76, 0.20),
            transparent 27%
        ),
        linear-gradient(
            145deg,
            #071a46 0%,
            #0d3774 56%,
            #1d5bac 100%
        );
}

.uw-auth-presentation::before {
    content: "";

    position: absolute;
    right: -125px;
    bottom: -145px;

    width: 390px;
    height: 390px;

    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 50%;
}

.uw-auth-presentation::after {
    content: "";

    position: absolute;
    right: -42px;
    bottom: -60px;

    width: 245px;
    height: 245px;

    border: 1px solid rgba(216, 162, 11, 0.37);
    border-radius: 50%;
}


/* =========================================================
   MARCA
   ========================================================= */

.uw-auth-brand {
    position: relative;
    z-index: 2;

    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 12px;

    color: #ffffff;
    text-decoration: none;
}

.uw-auth-brand:hover {
    color: #ffffff;
}

.uw-auth-brand img {
    width: 50px;
    height: 50px;

    padding: 4px;

    border-radius: 11px;

    background: rgba(255, 255, 255, 0.96);

    object-fit: contain;

    box-shadow:
        0 7px 18px rgba(0, 0, 0, 0.12);
}

.uw-auth-brand > span {
    display: flex;
    flex-direction: column;
}

.uw-auth-brand strong {
    color: #ffffff;

    font-size: 1.08rem;
    line-height: 1.1;
    font-weight: 850;
}

.uw-auth-brand small {
    margin-top: 4px;

    color: rgba(255, 255, 255, 0.70);

    font-size: 0.67rem;
}


/* =========================================================
   CONTENIDO DEL PANEL IZQUIERDO
   ========================================================= */

.uw-auth-presentation-content {
    position: relative;
    z-index: 2;

    max-width: 470px;

    margin-block: 50px;
}

.uw-auth-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;

    color: #f2c94c;

    font-size: 0.69rem;
    font-weight: 850;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.uw-auth-eyebrow::before {
    content: "";

    width: 24px;
    height: 2px;

    border-radius: 999px;

    background: #d8a20b;
}

.uw-auth-presentation h1 {
    margin: 21px 0 0;

    color: #ffffff;

    font-size: clamp(2.15rem, 3.15vw, 3.2rem);
    line-height: 1.08;
    font-weight: 800;
    letter-spacing: -0.047em;
}

.uw-auth-presentation-content > p {
    max-width: 440px;

    margin: 22px 0 0;

    color: rgba(255, 255, 255, 0.76);

    font-size: 0.84rem;
    line-height: 1.75;
}


/* =========================================================
   BENEFICIOS
   ========================================================= */

.uw-auth-benefits {
    display: grid;
    gap: 17px;

    margin-top: 34px;
}

.uw-auth-benefit {
    display: flex;
    align-items: flex-start;
    gap: 13px;
}

.uw-auth-benefit > span {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;

    display: grid;
    place-items: center;

    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 11px;

    color: #f2c94c;

    background: rgba(255, 255, 255, 0.09);
}

.uw-auth-benefit svg {
    width: 18px;
    height: 18px;
}

.uw-auth-benefit strong {
    display: block;

    margin-top: 1px;

    color: #ffffff;

    font-size: 0.79rem;
    font-weight: 780;
}

.uw-auth-benefit p {
    margin: 5px 0 0;

    color: rgba(255, 255, 255, 0.66);

    font-size: 0.71rem;
    line-height: 1.55;
}

.uw-auth-presentation-note {
    position: relative;
    z-index: 2;

    margin: 0;

    color: rgba(255, 255, 255, 0.54);

    font-size: 0.65rem;
    line-height: 1.5;
}


/* =========================================================
   PANEL DEL FORMULARIO
   ========================================================= */

.uw-auth-form-panel {
    min-width: 0;

    display: grid;
    place-items: center;

    padding: 52px 62px;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #fcfdff 100%
        );
}

.uw-auth-form-container {
    width: min(420px, 100%);
}


/* =========================================================
   VOLVER AL INICIO
   ========================================================= */

.uw-auth-back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    margin-bottom: 30px;

    color: #667085;

    font-size: 0.72rem;
    font-weight: 750;
    text-decoration: none;

    transition:
        color 0.18s ease,
        transform 0.18s ease;
}

.uw-auth-back-link:hover {
    color: #123f82;

    transform: translateX(-2px);
}

.uw-auth-back-link svg {
    width: 16px;
    height: 16px;
}


/* =========================================================
   ENCABEZADO DEL FORMULARIO
   ========================================================= */

.uw-auth-form-header {
    margin-bottom: 27px;
}

.uw-auth-form-icon {
    width: 46px;
    height: 46px;

    display: grid;
    place-items: center;

    margin-bottom: 18px;

    border: 1px solid #ccdbee;
    border-radius: 13px;

    color: #123f82;

    background: #eef4fc;

    box-shadow:
        0 7px 16px rgba(18, 63, 130, 0.08);
}

.uw-auth-form-icon svg {
    width: 21px;
    height: 21px;
}

.uw-auth-form-header h2 {
    margin: 0;

    color: #071a46;

    font-size: 1.85rem;
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: -0.04em;
}

.uw-auth-form-header p {
    margin: 9px 0 0;

    color: #667085;

    font-size: 0.79rem;
    line-height: 1.6;
}


/* =========================================================
   FORMULARIO
   ========================================================= */

.uw-auth-form {
    display: flex;
    flex-direction: column;
    gap: 18px;

    margin-top: 21px;
}

.uw-auth-field {
    min-width: 0;

    display: flex;
    flex-direction: column;
    gap: 8px;
}

.uw-auth-field label {
    color: #111c36;

    font-size: 0.73rem;
    font-weight: 760;
}

.uw-auth-input-wrapper {
    position: relative;
}


/* =========================================================
   CAMPOS
   ========================================================= */

.uw-auth-control {
    width: 100%;
    min-height: 50px;

    padding: 0 15px;

    border: 1px solid #c9d4e3;
    border-radius: 11px;
    outline: none;

    color: #111c36;
    background: #ffffff;

    font-family: inherit;
    font-size: 0.79rem;

    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        background 0.18s ease;
}

.uw-auth-control::placeholder {
    color: #929eb0;
}

.uw-auth-control:hover {
    border-color: #9eafc6;
}

.uw-auth-control:focus {
    border-color: #1d5bac;

    box-shadow:
        0 0 0 4px rgba(29, 91, 172, 0.12);
}

.uw-auth-control.is-invalid {
    border-color: #cf4f45;

    background: #fffafa;

    box-shadow:
        0 0 0 3px rgba(207, 79, 69, 0.07);
}

.uw-auth-input-icon {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 15px;

    display: grid;
    place-items: center;

    color: #718096;

    transform: translateY(-50%);

    pointer-events: none;
}

.uw-auth-input-icon svg {
    width: 17px;
    height: 17px;
}

.uw-auth-input-icon + .uw-auth-control {
    padding-left: 45px;
}

.uw-auth-control-password {
    padding-right: 48px;
}


/* =========================================================
   BOTÓN MOSTRAR CONTRASEÑA
   ========================================================= */

.uw-auth-password-toggle {
    position: absolute;
    top: 50%;
    right: 8px;

    width: 36px;
    height: 36px;

    display: grid;
    place-items: center;

    padding: 0;

    border: 0;
    border-radius: 8px;

    color: #667085;
    background: transparent;

    cursor: pointer;

    transform: translateY(-50%);

    transition:
        color 0.18s ease,
        background 0.18s ease;
}

.uw-auth-password-toggle:hover {
    color: #123f82;
    background: #eef4fc;
}

.uw-auth-password-toggle:focus-visible {
    outline: 3px solid rgba(29, 91, 172, 0.18);
}

.uw-auth-password-toggle svg {
    width: 17px;
    height: 17px;
}

.uw-password-icon-hide {
    display: none;
}

.uw-auth-password-toggle.is-visible
.uw-password-icon-show {
    display: none;
}

.uw-auth-password-toggle.is-visible
.uw-password-icon-hide {
    display: block;
}


/* =========================================================
   ERRORES
   ========================================================= */

.uw-auth-field-error {
    color: #b42318;

    font-size: 0.68rem;
    line-height: 1.45;
}


/* =========================================================
   CHECKBOX
   ========================================================= */

.uw-auth-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.uw-auth-checkbox,
.uw-auth-consent {
    position: relative;

    display: flex;
    align-items: flex-start;
    gap: 9px;

    color: #667085;

    cursor: pointer;

    font-size: 0.71rem;
    line-height: 1.55;
}

.uw-auth-checkbox input,
.uw-auth-consent input {
    position: absolute;

    width: 1px;
    height: 1px;

    overflow: hidden;

    opacity: 0;
}

.uw-auth-checkbox-box {
    width: 19px;
    height: 19px;
    flex: 0 0 19px;

    display: grid;
    place-items: center;

    border: 1px solid #b9c6d7;
    border-radius: 5px;

    color: #ffffff;
    background: #ffffff;

    transition:
        background 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease;
}

.uw-auth-checkbox-box svg {
    width: 12px;
    height: 12px;

    opacity: 0;
}

.uw-auth-checkbox input:checked
+ .uw-auth-checkbox-box,
.uw-auth-consent input:checked
+ .uw-auth-checkbox-box {
    border-color: #123f82;

    background: #123f82;
}

.uw-auth-checkbox input:checked
+ .uw-auth-checkbox-box svg,
.uw-auth-consent input:checked
+ .uw-auth-checkbox-box svg {
    opacity: 1;
}

.uw-auth-checkbox input:focus-visible
+ .uw-auth-checkbox-box,
.uw-auth-consent input:focus-visible
+ .uw-auth-checkbox-box {
    box-shadow:
        0 0 0 4px rgba(29, 91, 172, 0.14);
}


/* =========================================================
   BOTONES
   ========================================================= */

.uw-auth-submit,
.uw-auth-secondary-action {
    width: 100%;
    min-height: 50px;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;

    padding: 0 22px;

    border-radius: 11px;

    font-family: inherit;
    font-size: 0.79rem;
    font-weight: 760;
    text-decoration: none;

    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease,
        background 0.18s ease,
        border-color 0.18s ease,
        color 0.18s ease;
}

.uw-auth-submit {
    border: 1px solid #123f82;

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            #071a46,
            #1d5bac
        );

    box-shadow:
        0 11px 22px rgba(18, 63, 130, 0.22);
}

.uw-auth-submit:hover {
    border-color: #d8a20b;

    color: #ffffff;

    transform: translateY(-1px);

    box-shadow:
        0 15px 28px rgba(18, 63, 130, 0.30);
}

.uw-auth-submit:active {
    transform: translateY(0);
}

.uw-auth-submit svg {
    width: 17px;
    height: 17px;
}

.uw-auth-secondary-action {
    border: 1px solid #b7c5d8;

    color: #123f82;
    background: #ffffff;
}

.uw-auth-secondary-action:hover {
    border-color: #d8a20b;

    color: #9a6d00;
    background: #fffaf0;
}


/* =========================================================
   DIVISOR
   ========================================================= */

.uw-auth-divider {
    display: flex;
    align-items: center;
    gap: 13px;

    margin: 25px 0 17px;

    color: #7d899b;

    font-size: 0.68rem;
    text-align: center;
}

.uw-auth-divider::before,
.uw-auth-divider::after {
    content: "";

    height: 1px;
    flex: 1;

    background: #dde4ee;
}


/* =========================================================
   ALERTAS
   ========================================================= */

.uw-alert {
    display: flex;
    align-items: flex-start;
    gap: 11px;

    margin: 0 0 20px;
    padding: 13px 14px;

    border: 1px solid;
    border-radius: 11px;

    font-size: 0.72rem;
    line-height: 1.5;
}

.uw-alert > span {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;

    display: grid;
    place-items: center;

    border-radius: 7px;
}

.uw-alert svg {
    width: 15px;
    height: 15px;
}

.uw-alert p {
    margin: 0;
}

.uw-alert strong {
    display: block;

    margin-bottom: 4px;

    font-size: 0.73rem;
}

.uw-alert ul {
    margin: 5px 0 0;
    padding-left: 17px;
}

.uw-alert-success {
    border-color: #a9d7bd;

    color: #17663c;
    background: #f0fbf5;
}

.uw-alert-success > span {
    background: #d9f3e4;
}

.uw-alert-danger {
    border-color: #efc0bc;

    color: #9f2f27;
    background: #fff6f5;
}

.uw-alert-danger > span {
    background: #fde1df;
}


/* =========================================================
   REGISTRO
   ========================================================= */

.uw-register-page {
    align-items: start;

    padding-block: 28px;
}

.uw-register-shell {
    width: min(1220px, 100%);
    min-height: 780px;

    grid-template-columns:
        minmax(350px, 0.78fr)
        minmax(650px, 1.22fr);
}

.uw-register-presentation {
    position: sticky;
    top: 28px;

    min-height: calc(100vh - 56px);
    max-height: 850px;
}

.uw-register-form-panel {
    place-items: start center;

    padding: 42px 56px 50px;
}

.uw-register-form-container {
    width: min(670px, 100%);
}

.uw-register-steps {
    display: grid;
    gap: 16px;

    margin-top: 34px;
}

.uw-register-steps > div {
    display: flex;
    align-items: flex-start;
    gap: 13px;
}

.uw-register-steps span {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;

    display: grid;
    place-items: center;

    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 10px;

    color: #f2c94c;
    background: rgba(255, 255, 255, 0.09);

    font-size: 0.68rem;
    font-weight: 850;
}

.uw-register-steps p {
    margin: 6px 0 0;

    color: rgba(255, 255, 255, 0.74);

    font-size: 0.74rem;
    line-height: 1.55;
}

.uw-register-fieldset {
    min-width: 0;

    margin: 0;
    padding: 0;

    border: 0;
}

.uw-register-fieldset + .uw-register-fieldset {
    margin-top: 3px;
    padding-top: 21px;

    border-top: 1px solid #e1e7ef;
}

.uw-register-fieldset legend {
    width: 100%;

    margin: 0 0 15px;
    padding: 0;

    color: #123f82;

    font-size: 0.76rem;
    font-weight: 850;
}

.uw-register-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 16px 17px;
}

.uw-register-full-field {
    grid-column: 1 / -1;
}

.uw-auth-consent {
    padding: 14px 15px;

    border: 1px solid #d4dde9;
    border-radius: 11px;

    background: #f8fafc;
}

.uw-auth-consent:hover {
    border-color: #bdcada;

    background: #f5f8fc;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 960px) {
    .uw-auth-page,
    .uw-register-page {
        padding: 20px;
    }

    .uw-auth-shell,
    .uw-register-shell {
        grid-template-columns: 1fr;
    }

    .uw-auth-presentation,
    .uw-register-presentation {
        position: relative;
        top: auto;

        min-height: auto;
        max-height: none;

        padding: 34px;
    }

    .uw-auth-presentation-content {
        max-width: 720px;

        margin-block: 42px;
    }

    .uw-auth-benefits {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .uw-auth-form-panel,
    .uw-register-form-panel {
        padding: 45px 38px 52px;
    }

    .uw-auth-form-container,
    .uw-register-form-container {
        width: min(680px, 100%);
    }
}


/* =========================================================
   MÓVIL
   ========================================================= */

@media (max-width: 650px) {
    .uw-auth-page,
    .uw-register-page {
        display: block;

        padding: 0;
    }

    .uw-auth-shell,
    .uw-register-shell {
        min-height: 100vh;

        border: 0;
        border-radius: 0;
    }

    .uw-auth-presentation,
    .uw-register-presentation {
        padding: 25px 22px 30px;
    }

    .uw-auth-brand img {
        width: 46px;
        height: 46px;
    }

    .uw-auth-presentation-content {
        margin-block: 39px;
    }

    .uw-auth-presentation h1 {
        font-size: 2.12rem;
    }

    .uw-auth-benefits {
        grid-template-columns: 1fr;
    }

    .uw-auth-form-panel,
    .uw-register-form-panel {
        padding: 36px 22px 50px;
    }

    .uw-auth-back-link {
        margin-bottom: 27px;
    }

    .uw-auth-form-header h2 {
        font-size: 1.68rem;
    }

    .uw-register-grid {
        grid-template-columns: 1fr;
    }

    .uw-register-full-field {
        grid-column: auto;
    }
}


/* =========================================================
   TELÉFONOS PEQUEÑOS
   ========================================================= */

@media (max-width: 420px) {
    .uw-auth-presentation,
    .uw-register-presentation {
        padding-inline: 18px;
    }

    .uw-auth-form-panel,
    .uw-register-form-panel {
        padding-inline: 18px;
    }

    .uw-auth-presentation h1 {
        font-size: 1.9rem;
    }

    .uw-auth-form-header h2 {
        font-size: 1.55rem;
    }

    .uw-auth-control {
        min-height: 49px;
    }
}


/* =========================================================
   ACCESIBILIDAD
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition: none !important;
        animation: none !important;
    }
}

/* =========================================================
   PANEL VISUAL CON IMAGEN
   ========================================================= */

.uw-auth-image-panel {
    min-height: 650px;
}

.uw-auth-image-content {
    position: relative;
    z-index: 2;

    flex: 1;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 36px 10px;
}

.uw-auth-main-image {
    width: 100%;
    max-width: 390px;
    max-height: 430px;

    display: block;

    object-fit: contain;

    filter:
        drop-shadow(
            0 22px 35px rgba(0, 0, 0, 0.20)
        );
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 960px) and (min-width: 651px) {
    .uw-auth-image-panel {
        min-height: 390px;
    }

    .uw-auth-image-content {
        padding-block: 20px;
    }

    .uw-auth-main-image {
        max-width: 300px;
        max-height: 270px;
    }
}


/* =========================================================
   LOGIN MÓVIL
   ========================================================= */

@media (max-width: 650px) {
    .uw-auth-body {
        background: #ffffff;
    }

    .uw-auth-page {
        min-height: 100vh;

        display: block;

        padding: 0;
    }

    .uw-auth-shell {
        width: 100%;
        min-height: 100vh;

        display: block;

        border: 0;
        border-radius: 0;

        box-shadow: none;
    }

    .uw-auth-image-panel {
        display: none;
    }

    .uw-auth-form-panel {
        min-height: 100vh;

        display: flex;
        align-items: flex-start;
        justify-content: center;

        padding:
            max(24px, env(safe-area-inset-top))
            22px
            max(32px, env(safe-area-inset-bottom));
    }

    .uw-auth-form-container {
        width: 100%;
        max-width: 430px;
    }

    .uw-auth-back-link {
        margin-bottom: 34px;

        font-size: 0.76rem;
    }

    .uw-auth-form-header {
        margin-bottom: 28px;
    }

    .uw-auth-form-icon {
        width: 44px;
        height: 44px;

        margin-bottom: 17px;
    }

    .uw-auth-form-header h2 {
        font-size: 1.85rem;
    }

    .uw-auth-form-header p {
        margin-top: 9px;

        font-size: 0.81rem;
    }

    .uw-auth-form {
        gap: 19px;

        margin-top: 0;
    }

    .uw-auth-field {
        gap: 8px;
    }

    .uw-auth-field label {
        font-size: 0.76rem;
    }

    .uw-auth-control {
        min-height: 52px;

        font-size: 0.82rem;
    }

    .uw-auth-options {
        margin-top: -2px;
    }

    .uw-auth-checkbox {
        font-size: 0.73rem;
    }

    .uw-auth-submit,
    .uw-auth-secondary-action {
        min-height: 52px;

        font-size: 0.82rem;
    }

    .uw-auth-divider {
        margin: 26px 0 18px;

        font-size: 0.7rem;
    }
}


/* =========================================================
   TELÉFONOS PEQUEÑOS
   ========================================================= */

@media (max-width: 420px) {
    .uw-auth-form-panel {
        padding-inline: 18px;
    }

    .uw-auth-back-link {
        margin-bottom: 30px;
    }

    .uw-auth-form-header h2 {
        font-size: 1.7rem;
    }

    .uw-auth-control,
    .uw-auth-submit,
    .uw-auth-secondary-action {
        min-height: 50px;
    }
}

/* =========================================================
   REGISTRO POR PASOS
   ========================================================= */

.uw-register-shell {
    width: min(1120px, 100%);
    min-height: 650px;

    grid-template-columns:
        minmax(390px, 0.93fr)
        minmax(500px, 1.07fr);
}

.uw-register-image-panel {
    min-height: 650px;
}

.uw-register-form-panel {
    place-items: center;

    padding: 42px 58px;
}

.uw-register-form-container {
    width: min(470px, 100%);
}

.uw-register-header {
    display: flex;
    align-items: flex-start;
    gap: 15px;

    margin-bottom: 22px;
}

.uw-register-header .uw-auth-form-icon {
    flex: 0 0 46px;

    margin-bottom: 0;
}

.uw-register-header h2 {
    margin-top: 2px;
}


/* =========================================================
   INDICADOR DE PROGRESO
   ========================================================= */

.uw-register-progress {
    display: flex;
    align-items: flex-start;

    margin-bottom: 27px;
}

.uw-register-progress-item {
    display: grid;
    justify-items: center;
    gap: 6px;

    min-width: 60px;
    padding: 0;

    border: 0;

    color: #8490a3;
    background: transparent;

    font-family: inherit;

    cursor: default;
}

.uw-register-progress-item > span {
    width: 31px;
    height: 31px;

    display: grid;
    place-items: center;

    border: 1px solid #cbd5e3;
    border-radius: 50%;

    color: #718096;
    background: #ffffff;

    font-size: 0.69rem;
    font-weight: 850;

    transition:
        color 0.18s ease,
        border-color 0.18s ease,
        background 0.18s ease,
        box-shadow 0.18s ease;
}

.uw-register-progress-item small {
    font-size: 0.62rem;
    font-weight: 720;
}

.uw-register-progress-item.is-active {
    color: #123f82;
}

.uw-register-progress-item.is-active > span {
    border-color: #123f82;

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            #071a46,
            #1d5bac
        );

    box-shadow:
        0 6px 14px rgba(18, 63, 130, 0.20);
}

.uw-register-progress-item.is-completed {
    color: #17663c;
}

.uw-register-progress-item.is-completed > span {
    border-color: #2f855a;

    color: #ffffff;
    background: #2f855a;
}

.uw-register-progress-line {
    height: 1px;
    flex: 1;

    margin-top: 15px;

    background: #dce3ed;
}


/* =========================================================
   PASOS
   ========================================================= */

.uw-register-form {
    min-height: 330px;

    margin-top: 0;
}

.uw-register-step {
    animation: uwRegisterStepIn 0.25s ease both;
}

.uw-register-step[hidden] {
    display: none !important;
}

.uw-register-step-header {
    margin-bottom: 22px;
}

.uw-register-step-number {
    display: inline-flex;

    margin-bottom: 7px;

    color: #b07e00;

    font-size: 0.64rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.uw-register-step-header h3 {
    margin: 0;

    color: #071a46;

    font-size: 1.18rem;
    font-weight: 800;
    letter-spacing: -0.025em;
}

.uw-register-step-header p {
    margin: 7px 0 0;

    color: #667085;

    font-size: 0.72rem;
    line-height: 1.55;
}

.uw-register-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 17px;
}

.uw-register-full-field {
    grid-column: 1 / -1;
}


/* =========================================================
   NAVEGACIÓN ENTRE PASOS
   ========================================================= */

.uw-register-step-actions {
    display: grid;

    grid-template-columns:
        minmax(115px, 0.42fr)
        minmax(180px, 1fr);

    gap: 12px;

    margin-top: 25px;
}

.uw-register-step-actions-end {
    grid-template-columns: minmax(180px, 1fr);

    padding-left: 48%;
}

.uw-register-next,
.uw-register-submit {
    min-height: 48px;
}

.uw-register-back {
    min-height: 48px;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    padding: 0 18px;

    border: 1px solid #bdcada;
    border-radius: 11px;

    color: #123f82;
    background: #ffffff;

    font-family: inherit;
    font-size: 0.76rem;
    font-weight: 760;

    cursor: pointer;

    transition:
        border-color 0.18s ease,
        color 0.18s ease,
        background 0.18s ease;
}

.uw-register-back:hover {
    border-color: #d8a20b;

    color: #9a6d00;
    background: #fffaf0;
}


/* =========================================================
   CONSENTIMIENTO
   ========================================================= */

.uw-register-step .uw-auth-consent {
    margin-top: 20px;
}


/* =========================================================
   ANIMACIÓN
   ========================================================= */

@keyframes uwRegisterStepIn {
    from {
        opacity: 0;
        transform: translateX(10px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


/* =========================================================
   REGISTRO EN TABLET
   ========================================================= */

@media (max-width: 960px) {
    .uw-register-shell {
        grid-template-columns: 1fr;
    }

    .uw-register-image-panel {
        min-height: 380px;
    }

    .uw-register-form-container {
        width: min(620px, 100%);
    }
}


/* =========================================================
   REGISTRO EN MÓVIL
   ========================================================= */

@media (max-width: 650px) {
    .uw-register-image-panel {
        display: none;
    }

    .uw-register-form-panel {
        min-height: 100vh;

        display: flex;
        align-items: flex-start;
        justify-content: center;

        padding:
            max(24px, env(safe-area-inset-top))
            20px
            max(34px, env(safe-area-inset-bottom));
    }

    .uw-register-form-container {
        width: 100%;
        max-width: 440px;
    }

    .uw-register-header {
        margin-bottom: 24px;
    }

    .uw-register-progress {
        margin-bottom: 28px;
    }

    .uw-register-progress-item {
        min-width: 53px;
    }

    .uw-register-progress-item small {
        font-size: 0.59rem;
    }

    .uw-register-form {
        min-height: 0;
    }

    .uw-register-grid {
        grid-template-columns: 1fr;
    }

    .uw-register-full-field {
        grid-column: auto;
    }

    .uw-register-step-actions,
    .uw-register-step-actions-end {
        grid-template-columns: 1fr;

        padding-left: 0;
    }

    .uw-register-step-actions .uw-register-next,
    .uw-register-step-actions .uw-register-submit {
        order: 1;
    }

    .uw-register-step-actions .uw-register-back {
        order: 2;
    }
}


/* =========================================================
   REGISTRO EN TELÉFONOS PEQUEÑOS
   ========================================================= */

@media (max-width: 420px) {
    .uw-register-form-panel {
        padding-inline: 17px;
    }

    .uw-register-header {
        gap: 12px;
    }

    .uw-register-header .uw-auth-form-icon {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
    }

    .uw-register-progress-item small {
        display: none;
    }

    .uw-register-progress-line {
        margin-top: 15px;
    }

    .uw-register-step-header h3 {
        font-size: 1.1rem;
    }
}
/* =========================================================
   REFINAMIENTO VISUAL UNIWELF
   Mantiene estructura y funcionamiento existentes
   ========================================================= */

:root {
    --uw-refined-navy: #0b1f3a;
    --uw-refined-blue: #234a73;
    --uw-refined-blue-muted: #59748f;
    --uw-refined-gold: #b38a32;

    --uw-refined-ink: #172234;
    --uw-refined-muted: #687586;

    --uw-refined-line: #d7dee7;
    --uw-refined-line-strong: #bfc9d5;

    --uw-refined-paper: #fbfcfd;
    --uw-refined-soft: #f3f6f8;
}


/* Fondo exterior más neutro */

.uw-auth-body {
    background:
        linear-gradient(
            115deg,
            #f1f4f7 0%,
            #f8f9fa 48%,
            #f3f1eb 100%
        );
}


/* Contenedor menos parecido a una plantilla */

.uw-auth-shell,
.uw-register-shell {
    border-color: var(--uw-refined-line);
    border-radius: 18px;

    box-shadow:
        0 18px 42px rgba(17, 34, 55, 0.10),
        0 2px 8px rgba(17, 34, 55, 0.05);
}


/* Panel visual institucional */

.uw-auth-presentation {
    background:
        linear-gradient(
            155deg,
            #0a2141 0%,
            #123761 58%,
            #234f78 100%
        );
}

.uw-auth-presentation::before {
    border-color: rgba(255, 255, 255, 0.08);
}

.uw-auth-presentation::after {
    border-color: rgba(179, 138, 50, 0.28);
}


/* Marca */

.uw-auth-brand img {
    border-radius: 8px;

    box-shadow:
        0 5px 12px rgba(0, 0, 0, 0.12);
}

.uw-auth-brand strong {
    letter-spacing: -0.015em;
}


/* Encabezado */

.uw-auth-eyebrow {
    color: #d2b66e;
}

.uw-auth-eyebrow::before {
    background: var(--uw-refined-gold);
}

.uw-auth-presentation h1 {
    letter-spacing: -0.035em;
}


/* Panel del formulario */

.uw-auth-form-panel {
    background: var(--uw-refined-paper);
}

.uw-auth-form-header h2,
.uw-register-step-header h3 {
    color: var(--uw-refined-navy);
}

.uw-auth-form-header p,
.uw-register-step-header p {
    color: var(--uw-refined-muted);
}


/* Icono principal del encabezado */

.uw-auth-form-icon {
    border-color: var(--uw-refined-line);
    border-radius: 9px;

    color: var(--uw-refined-blue);
    background: transparent;

    box-shadow: none;
}


/* Etiquetas */

.uw-auth-field label {
    color: var(--uw-refined-ink);

    font-weight: 700;
}


/* Campos */

.uw-auth-control {
    min-height: 49px;

    border-color: var(--uw-refined-line-strong);
    border-radius: 8px;

    color: var(--uw-refined-ink);
    background: #ffffff;

    box-shadow: none;
}

.uw-auth-control:hover {
    border-color: #98a9ba;
}

.uw-auth-control:focus {
    border-color: var(--uw-refined-blue);

    box-shadow:
        0 0 0 3px rgba(35, 74, 115, 0.11);
}


/* Iconos internos más discretos */

.uw-auth-input-icon {
    left: 15px;

    width: auto;
    height: auto;

    border-radius: 0;

    color: var(--uw-refined-blue-muted);
    background: transparent;

    font-size: 0.92rem;

    transform: translateY(-50%);
}

.uw-auth-input-wrapper:focus-within
.uw-auth-input-icon {
    color: var(--uw-refined-blue);
    background: transparent;

    transform: translateY(-50%);
}

.uw-auth-input-icon + .uw-auth-control {
    padding-left: 43px;
}


/* Botón observar contraseña */

.uw-auth-password-toggle {
    right: 9px;

    width: 32px;
    height: 32px;

    border: 0;
    border-radius: 6px;

    color: var(--uw-refined-blue-muted);
    background: transparent;
}

.uw-auth-password-toggle:hover {
    border-color: transparent;

    color: var(--uw-refined-blue);
    background: var(--uw-refined-soft);
}


/* Checkbox */

.uw-auth-checkbox-box {
    border-color: var(--uw-refined-line-strong);
    border-radius: 4px;
}

.uw-auth-checkbox input:checked
+ .uw-auth-checkbox-box,
.uw-auth-consent input:checked
+ .uw-auth-checkbox-box {
    border-color: var(--uw-refined-blue);
    background: var(--uw-refined-blue);
}


/* Botón principal */

.uw-auth-submit {
    border-color: var(--uw-refined-navy);
    border-radius: 8px;

    background: var(--uw-refined-navy);

    box-shadow:
        0 7px 16px rgba(11, 31, 58, 0.16);
}

.uw-auth-submit:hover {
    border-color: var(--uw-refined-blue);

    background: var(--uw-refined-blue);

    box-shadow:
        0 9px 20px rgba(11, 31, 58, 0.20);
}


/* Botón secundario */

.uw-auth-secondary-action,
.uw-register-back {
    border-color: var(--uw-refined-line-strong);
    border-radius: 8px;

    color: var(--uw-refined-blue);
    background: transparent;
}

.uw-auth-secondary-action:hover,
.uw-register-back:hover {
    border-color: var(--uw-refined-blue);

    color: var(--uw-refined-navy);
    background: var(--uw-refined-soft);
}


/* Consentimiento */

.uw-auth-consent {
    border-color: var(--uw-refined-line);
    border-radius: 8px;

    background: #f6f8fa;
}


/* Indicador de pasos */

.uw-register-progress-item > span {
    border-color: var(--uw-refined-line-strong);

    color: var(--uw-refined-blue-muted);
}

.uw-register-progress-item.is-active {
    color: var(--uw-refined-blue);
}

.uw-register-progress-item.is-active > span {
    border-color: var(--uw-refined-blue);

    background: var(--uw-refined-blue);

    box-shadow:
        0 4px 10px rgba(35, 74, 115, 0.15);
}

.uw-register-progress-item.is-completed {
    color: #476b5b;
}

.uw-register-progress-item.is-completed > span {
    border-color: #5c786a;
    background: #5c786a;
}

.uw-register-progress-line {
    background: var(--uw-refined-line);
}


/* Divisor */

.uw-auth-divider {
    color: var(--uw-refined-muted);
}

.uw-auth-divider::before,
.uw-auth-divider::after {
    background: var(--uw-refined-line);
}


/* Alertas más sobrias */

.uw-alert {
    border-radius: 8px;
}

.uw-alert-danger {
    border-color: #d8b8b4;

    color: #853c35;
    background: #fbf5f4;
}

.uw-alert-success {
    border-color: #b7cec1;

    color: #3d6451;
    background: #f4f8f5;
}


/* Responsive */

@media (max-width: 650px) {
    .uw-auth-shell,
    .uw-register-shell {
        border-radius: 0;
        box-shadow: none;
    }

    .uw-auth-form-panel,
    .uw-register-form-panel {
        background: #ffffff;
    }
}

.uw-auth-options{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:1rem;
    flex-wrap:wrap;
}

.uw-auth-forgot-password{
    font-size:.9rem;
    font-weight:600;
    color:var(--uw-primary,#234ea5);
    text-decoration:none;
    transition:.2s;
}

.uw-auth-forgot-password:hover{
    text-decoration:underline;
}

@media (max-width:576px){

    .uw-auth-options{

        flex-direction:column;
        align-items:flex-start;

    }

}