.formularioacceso{
    display:grid;
    gap:18px;
    align-content:start
}

.campogrupo{
    display:grid;
    gap:8px
}

.campogrupo label{
    font-size:14px;
    font-weight:700;
    color:#0b1d4a;
    line-height:1.35
}

.campogrupo input,
.campogrupo select,
.campogrupo textarea{
    width:100%;
    min-height:50px;
    border:1px solid #d7dce5;
    border-radius:8px;
    padding:12px 14px;
    background:#fff;
    color:#1f2937;
    font-size:15px;
    line-height:1.45;
    outline:none;
    transition:border-color .2s ease, box-shadow .2s ease
}

.campogrupo input:focus,
.campogrupo select:focus,
.campogrupo textarea:focus{
    border-color:#771239;
    box-shadow:0 0 0 3px rgba(119,18,57,.10)
}

.registrocontenedor{
    display:grid;
    gap:20px
}

.registroencabezado{
    background:#ffffff;
    border:1px solid #e7eaf0;
    border-radius:24px;
    padding:24px 26px;
    box-shadow:0 10px 30px rgba(11,29,74,.06)
}

.registroencabezadotexto h2{
    margin:0 0 10px;
    font-size:32px;
    line-height:1.15;
    color:#0b1d4a
}

.registroencabezadotexto p{
    margin:0;
    color:#5b6577;
    font-size:16px;
    line-height:1.6
}

.registrogrid{
    display:grid;
    grid-template-columns:300px minmax(0,1fr);
    gap:20px;
    align-items:start
}

.registroaside{
    display:grid;
    gap:18px;
    position:sticky;
    top:20px
}

.registroasidetarjeta{
    background:#ffffff;
    border:1px solid #e7eaf0;
    border-radius:24px;
    padding:22px;
    box-shadow:0 10px 30px rgba(11,29,74,.06)
}

.registroasidetarjeta h3{
    margin:0 0 14px;
    color:#771239;
    font-size:18px
}

.registroasidelista{
    display:grid;
    gap:10px
}

.registroasideitem{
    padding:10px 12px;
    border-radius:8px;
    background:#f6f8fc;
    border:1px solid #e7eaf0;
    color:#0b1d4a;
    font-size:14px;
    font-weight:700
}

.registroasidepasos{
    margin:0;
    padding-left:18px;
    color:#334155
}

.registroasidepasos li{
    margin-bottom:10px;
    line-height:1.5
}

.registropanel{
    min-width:0
}

.seccionformulario{
    margin-top:0
}

.tarjetaformulario{
    background:#ffffff;
    border:1px solid #e7eaf0;
    border-radius:24px;
    padding:24px;
    box-shadow:0 10px 30px rgba(11,29,74,.08)
}

.formulariogrid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px 18px;
    align-content:start
}

.campocompleto{
    grid-column:1 / -1
}

.bloqueformulario{
    padding:4px 0 2px
}

.bloqueformulario h3{
    margin:0;
    font-size:17px;
    color:#771239;
    padding-bottom:8px;
    border-bottom:1px solid #eceff5
}

.accionesformulario{
    grid-column:1 / -1;
    display:flex;
    justify-content:flex-start;
    padding-top:8px
}

.textoerror{
    color:#9f1239;
    font-size:13px;
    font-weight:600
}

.alertacorrecta{
    margin-bottom:16px;
    padding:14px 16px;
    border-radius:8px;
    background:#ecfdf3;
    color:#166534;
    font-size:14px;
    font-weight:600
}

.alertaerror{
    margin-bottom:16px;
    padding:14px 16px;
    border-radius:8px;
    background:#fff1f2;
    color:#9f1239;
    font-size:14px;
    font-weight:600
}

@media (max-width:1080px){
    .registrogrid{
        grid-template-columns:1fr
    }

    .registroaside{
        position:static;
        grid-template-columns:repeat(2,minmax(0,1fr))
    }

    .formulariogrid{
        grid-template-columns:1fr
    }

    .campocompleto,
    .accionesformulario{
        grid-column:auto
    }
}

@media (max-width:920px){
    .registroencabezado{
        padding:22px
    }

    .registroencabezadotexto h2{
        font-size:28px
    }

    .tarjetaformulario{
        padding:22px
    }
}

@media (max-width:640px){
    .registroaside{
        grid-template-columns:1fr
    }

    .registroencabezadotexto h2{
        font-size:24px
    }

    .tarjetaformulario,
    .registroasidetarjeta{
        padding:18px
    }

    .campogrupo input,
    .campogrupo select,
    .campogrupo textarea{
        min-height:46px;
        font-size:14px
    }
}
