.solicitud-card {
    background: #fff;
    border-radius: 1rem;
    padding: 2.25rem;
}

.solicitud-card .logo {
    width: 64px;
    height: 64px;
    margin: 0 auto 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--azul-primario);
    border-radius: 1rem;
    color: #fff;
    font-size: 1.75rem;
}

.solicitud-card h2 { font-weight: 700; margin-bottom: .25rem; }
.solicitud-card .form-label { font-weight: 600; font-size: .9rem; }
.solicitud-card .form-control { padding: .65rem .9rem; }
.solicitud-card .form-control:focus {
    border-color: var(--azul-primario);
    box-shadow: 0 0 0 .2rem rgba(37, 99, 235, .15);
}

.seccion {
    font-weight: 700;
    font-size: 1rem;
    color: var(--azul-medio);
    border-bottom: 2px solid var(--fondo-demo);
    padding-bottom: .5rem;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: .5rem;
}

/* Caja de subida de foto */
.foto-box {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: .35rem;
    padding: .9rem .75rem;
    border: 2px dashed #c7d2fe;
    border-radius: .75rem;
    background: var(--fondo-demo);
    cursor: pointer;
    height: 100%;
    transition: border-color .15s, background .15s;
}
.foto-box:hover { border-color: var(--azul-primario); }
.foto-box input[type=file] {
    position: absolute; inset: 0; width: 100%; height: 100%;
    opacity: 0; cursor: pointer;
}
.foto-box.is-invalid { border-color: #dc3545; background: #fff5f5; }
.foto-box.listo { border-style: solid; border-color: var(--verde-check); background: #f0fdf4; }

.foto-preview {
    width: 100%;
    height: 110px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: .5rem;
    background: #fff center / cover no-repeat;
    color: var(--azul-primario);
    font-size: 2.5rem;
}
.foto-preview.con-imagen i { display: none; }
.foto-nombre {
    color: var(--gris-texto);
    font-size: .78rem;
    word-break: break-all;
}

.exito-icono { font-size: 4rem; color: var(--verde-check); line-height: 1; }

@media (max-width: 575.98px) {
    .solicitud-card { padding: 1.5rem 1.1rem; }
}
