.core-form-preview-shell{
    max-width:920px;
    margin:0 auto;
}

.core-form-preview-header{
    margin-bottom:22px;
}

.core-form-preview-header h1{
    margin:0;

    font-size:26px;
    letter-spacing:-.025em;
}

.core-form-preview-header p{
    margin:7px 0 0;

    color:var(--core-muted);

    font-size:12px;
}

.core-form-preview-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px;

    margin-top:14px;
}

.core-form-preview-meta span{
    padding:6px 9px;

    border:1px solid var(--core-border);
    border-radius:8px;

    background:#fff;

    font-size:9px;
    font-weight:700;
}

.core-dynamic-form{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.core-form-section{
    overflow:hidden;

    border:1px solid var(--core-border);
    border-radius:12px;

    background:#fff;
}

.core-form-section-head{
    padding:16px 18px;

    border-bottom:1px solid #edf1f5;

    background:#fbfcfe;
}

.core-form-section-head h2{
    margin:0;

    font-size:14px;
}

.core-form-section-head p{
    margin:5px 0 0;

    color:var(--core-muted);

    font-size:10px;
    line-height:1.5;
}

.core-form-section-body{
    padding:18px;
}

.core-form-field{
    margin-bottom:18px;
}

.core-form-field:last-child{
    margin-bottom:0;
}

.core-form-label{
    display:block;

    margin-bottom:6px;

    font-size:11px;
    font-weight:800;
}

.core-form-label strong{
    color:var(--core-red);
}

.core-form-help{
    margin:-2px 0 7px;

    color:var(--core-muted);

    font-size:9px;
    line-height:1.4;
}

.core-form-field input[type="text"],
.core-form-field input[type="number"],
.core-form-field input[type="date"],
.core-form-field input[type="email"],
.core-form-field input[type="tel"],
.core-form-field input[type="time"],
.core-form-field input[type="file"],
.core-form-field select,
.core-form-field textarea{
    width:100%;

    padding:10px 11px;

    border:1px solid var(--core-border);
    border-radius:8px;

    background:#fff;
    color:var(--core-text);

    font:inherit;
    font-size:11px;
}

.core-form-field input[type="text"],
.core-form-field input[type="number"],
.core-form-field input[type="date"],
.core-form-field input[type="email"],
.core-form-field input[type="tel"],
.core-form-field input[type="time"],
.core-form-field select{
    height:40px;
}

.core-form-field input:focus,
.core-form-field select:focus,
.core-form-field textarea:focus{
    outline:none;

    border-color:#94aee4;

    box-shadow:
        0 0 0 3px
        rgba(36,72,154,.08);
}

.core-form-options{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.core-form-option{
    display:flex;
    align-items:center;
    gap:6px;

    padding:8px 10px;

    border:1px solid var(--core-border);
    border-radius:8px;

    background:#fff;

    font-size:10px;
}

.core-form-option input{
    margin:0;
}

.core-form-single-check{
    display:flex;
    align-items:flex-start;
    gap:8px;

    font-size:10px;
}

.core-form-core-component{
    display:flex;
    align-items:center;
    gap:12px;

    padding:15px;

    border:1px dashed #bac7df;
    border-radius:9px;

    background:#f8fafe;
}

.core-form-core-icon{
    min-width:44px;
    height:32px;

    display:grid;
    place-items:center;

    border-radius:8px;

    background:var(--core-blue-soft);
    color:var(--core-blue);

    font-size:8px;
    font-weight:900;
}

.core-form-core-component strong{
    display:block;

    font-size:11px;
}

.core-form-core-component span{
    display:block;

    margin-top:3px;

    color:var(--core-muted);

    font-size:9px;
}

.core-form-preview-actions{
    display:flex;
    align-items:center;
    gap:12px;

    padding:16px 0 30px;
}

.core-form-preview-actions button{
    min-height:40px;

    padding:0 16px;

    border:0;
    border-radius:8px;

    background:var(--core-blue);
    color:#fff;

    font-weight:800;

    opacity:.55;
}

.core-form-preview-actions span{
    color:var(--core-muted);

    font-size:9px;
}


/* ============================================================
   PREVIEW — ÁMBITOS
   ============================================================ */

.core-form-preview-roles{
    display:flex;
    align-items:center;
    gap:7px;

    margin-bottom:16px;
}

.core-form-preview-roles > span{
    margin-right:3px;

    color:var(--core-muted);

    font-size:9px;
    font-weight:700;
}

.core-form-preview-roles a{
    padding:6px 9px;

    border:1px solid var(--core-border);
    border-radius:8px;

    background:#fff;
    color:var(--core-text);

    text-decoration:none;

    font-size:9px;
    font-weight:700;
}

.core-form-preview-roles a:hover{
    border-color:#b7c6e5;

    background:#f8faff;
}

.core-form-preview-roles a.is-active{
    border-color:#9bb0de;

    background:var(--core-blue-soft);
    color:var(--core-blue);
}


/* ============================================================
   COMPONENTE CORE — PERSONA
   ============================================================ */

.core-form-preview-persona{
    margin-bottom:16px;

    padding:12px 14px;

    border:1px solid var(--core-border);
    border-radius:10px;

    background:#fff;
}

.core-form-preview-persona label > span{
    display:block;

    margin-bottom:6px;

    color:var(--core-muted);

    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
}

.core-form-preview-persona label > div{
    display:flex;
    gap:7px;
}

.core-form-preview-persona input{
    width:150px;
    height:36px;

    padding:0 9px;

    border:1px solid var(--core-border);
    border-radius:7px;
}

.core-form-preview-persona button{
    padding:0 12px;

    border:0;
    border-radius:7px;

    background:var(--core-blue);
    color:#fff;

    font-size:9px;
    font-weight:800;

    cursor:pointer;
}

.core-form-preview-persona > small{
    display:block;

    margin-top:6px;

    color:var(--core-muted);

    font-size:8px;
}


.core-form-persona{
    overflow:hidden;

    border:1px solid #dfe6ef;
    border-radius:10px;

    background:#fff;
}


.core-form-persona-head{
    display:grid;

    grid-template-columns:
        52px
        minmax(0,1fr)
        auto;

    gap:12px;
    align-items:center;

    padding:14px;

    border-bottom:1px solid #edf1f5;

    background:#f9fbfd;
}


.core-form-persona-avatar{
    width:52px;
    height:52px;

    overflow:hidden;

    display:grid;
    place-items:center;

    border-radius:50%;

    background:var(--core-blue-soft);
    color:var(--core-blue);

    font-size:17px;
    font-weight:900;
}


.core-form-persona-avatar img{
    width:100%;
    height:100%;

    object-fit:cover;
}


.core-form-persona-identity strong{
    display:block;

    font-size:13px;
}


.core-form-persona-identity span{
    display:block;

    margin-top:4px;

    color:var(--core-muted);

    font-size:9px;
}


.core-form-persona-completeness{
    text-align:right;
}


.core-form-persona-completeness strong{
    display:block;

    color:var(--core-blue);

    font-size:15px;
}


.core-form-persona-completeness span{
    display:block;

    margin-top:2px;

    color:var(--core-muted);

    font-size:8px;
}


.core-form-persona-fields{
    display:grid;
    grid-template-columns:1fr 1fr;

    gap:0;

    padding:4px 14px 12px;
}


.core-form-persona-field{
    min-width:0;

    padding:11px 8px;

    border-bottom:1px solid #edf1f5;
}


.core-form-persona-field > span{
    display:block;

    margin-bottom:5px;

    color:var(--core-muted);

    font-size:8px;
    font-weight:800;
    text-transform:uppercase;
}


.core-form-persona-field > span b{
    color:var(--core-red);
}


.core-form-persona-field.is-readonly strong{
    display:block;

    min-height:20px;

    color:var(--core-text);

    font-size:10px;
}


.core-form-persona-field input{
    width:100%;
    height:37px;

    padding:0 9px;

    border:1px solid var(--core-border);
    border-radius:7px;

    background:#fff;

    font:inherit;
    font-size:10px;
}


.core-form-persona-field.is-required input{
    border-color:#ddb2a7;
    background:#fffaf8;
}


.core-form-persona-field > small{
    display:block;

    margin-top:5px;

    color:var(--core-muted);

    font-size:7px;
}


.core-form-persona-field.is-readonly > small{
    color:var(--core-green);
}


.core-form-persona-warning,
.core-form-persona-ok{
    margin:0 14px 14px;

    padding:9px 10px;

    border-radius:8px;

    font-size:9px;
}


.core-form-persona-warning{
    background:var(--core-amber-soft);
    color:var(--core-amber);
}


.core-form-persona-ok{
    background:var(--core-green-soft);
    color:var(--core-green);
}


@media (max-width:650px){

    .core-form-persona-fields{
        grid-template-columns:1fr;
    }

    .core-form-persona-head{
        grid-template-columns:46px 1fr;
    }

    .core-form-persona-completeness{
        grid-column:1 / -1;

        text-align:left;
    }

}


/* ============================================================
   FORM RENDERER — WIZARD
   ============================================================ */

.core-form-wizard{
    gap:0;
}


/* CABECERA PROGRESO */

.core-form-wizard-progress{
    margin-bottom:18px;

    padding:18px 20px;

    border:1px solid var(--core-border);
    border-radius:12px;

    background:#fff;
}


.core-form-wizard-progress-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;

    margin-bottom:17px;
}


.core-form-wizard-progress-head span{
    color:var(--core-muted);

    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}


.core-form-wizard-progress-head strong{
    color:var(--core-text);

    font-size:12px;
}


/* TRACK */

.core-form-wizard-track{
    position:relative;

    display:flex;
    justify-content:space-between;
    gap:6px;
}


.core-form-wizard-track::before{
    content:"";

    position:absolute;

    left:20px;
    right:20px;
    top:14px;

    height:2px;

    background:#e6eaf0;

    z-index:0;
}


.core-form-wizard-point{
    position:relative;
    z-index:1;

    flex:1;

    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;

    padding:0;

    border:0;

    background:transparent;

    color:var(--core-muted);

    cursor:default;
}


.core-form-wizard-point > span{
    width:30px;
    height:30px;

    display:grid;
    place-items:center;

    border:2px solid #dce2ea;
    border-radius:50%;

    background:#fff;

    font-size:9px;
    font-weight:900;

    transition:
        border-color .18s ease,
        background .18s ease,
        color .18s ease;
}


.core-form-wizard-point small{
    max-width:90px;

    font-size:8px;
    font-weight:700;

    text-align:center;
}


.core-form-wizard-point.is-active > span{
    border-color:var(--core-blue);

    background:var(--core-blue);
    color:#fff;
}


.core-form-wizard-point.is-active small{
    color:var(--core-blue);
}


.core-form-wizard-point.is-complete{
    cursor:pointer;
}


.core-form-wizard-point.is-complete > span{
    border-color:var(--core-green);

    background:var(--core-green-soft);
    color:var(--core-green);
}


.core-form-wizard-point.is-complete small{
    color:var(--core-text);
}


/* PÁGINAS */

.core-form-wizard-page[hidden]{
    display:none !important;
}


.core-form-wizard-page{
    animation:
        coreFormWizardIn
        .18s ease;
}


@keyframes coreFormWizardIn{

    from{
        opacity:0;
        transform:translateY(5px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}


/*
 * Cuando un paso agrupa varias secciones CORE,
 * conservamos sus tarjetas individuales.
 */

.core-form-wizard-page .core-form-section{
    margin-bottom:14px;
}


.core-form-wizard-page .core-form-section:last-child{
    margin-bottom:0;
}


/* NAVEGACIÓN */

.core-form-wizard-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;

    margin-top:18px;

    padding-top:16px;

    border-top:1px solid var(--core-border);
}


.core-form-wizard-actions-right{
    margin-left:auto;

    display:flex;
    align-items:center;
    gap:9px;
}


.core-form-wizard-prev,
.core-form-wizard-next,
.core-form-wizard-submit{
    min-height:40px;

    padding:0 16px;

    border-radius:8px;

    font:inherit;
    font-size:10px;
    font-weight:800;

    cursor:pointer;
}


.core-form-wizard-prev{
    border:1px solid var(--core-border);

    background:#fff;
    color:var(--core-text);
}


.core-form-wizard-prev:hover:not(:disabled){
    background:#f7f9fc;
}


.core-form-wizard-prev:disabled{
    opacity:.35;
    cursor:default;
}


.core-form-wizard-next,
.core-form-wizard-submit{
    border:1px solid var(--core-blue);

    background:var(--core-blue);
    color:#fff;
}


.core-form-wizard-next:hover,
.core-form-wizard-submit:hover:not(:disabled){
    filter:brightness(.96);
}


.core-form-wizard-submit:disabled{
    opacity:.55;
    cursor:not-allowed;
}


/* CONFIRMACIÓN */

.core-form-step-confirm{
    padding:28px;

    border:1px solid var(--core-border);
    border-radius:12px;

    background:#fff;

    text-align:center;
}


.core-form-step-confirm-icon{
    width:48px;
    height:48px;

    margin:0 auto 12px;

    display:grid;
    place-items:center;

    border-radius:50%;

    background:var(--core-green-soft);
    color:var(--core-green);

    font-size:18px;
    font-weight:900;
}


.core-form-step-confirm h2{
    margin:0;

    font-size:18px;
}


.core-form-step-confirm > p{
    max-width:520px;

    margin:8px auto 22px;

    color:var(--core-muted);

    font-size:10px;
    line-height:1.55;
}


.core-form-review{
    max-width:660px;

    margin:0 auto;

    overflow:hidden;

    border:1px solid var(--core-border);
    border-radius:10px;

    text-align:left;
}


.core-form-review-row{
    display:grid;
    grid-template-columns:minmax(150px,.8fr) 1.2fr;
    gap:18px;

    padding:11px 14px;

    border-bottom:1px solid #edf1f5;
}


.core-form-review-row:last-child{
    border-bottom:0;
}


.core-form-review-row span{
    color:var(--core-muted);

    font-size:9px;
}


.core-form-review-row strong{
    min-width:0;

    font-size:10px;

    overflow-wrap:anywhere;
}


.core-form-review-empty{
    padding:18px;

    color:var(--core-muted);

    font-size:10px;

    text-align:center;
}


.core-form-preview-note{
    padding:10px 0 24px;

    color:var(--core-muted);

    font-size:8px;

    text-align:right;
}


/* RESPONSIVE */

@media (max-width:700px){

    .core-form-wizard-progress{
        padding:15px;
    }


    .core-form-wizard-progress-head{
        align-items:flex-start;
        flex-direction:column;
        gap:4px;
    }


    .core-form-wizard-track{
        overflow-x:auto;

        justify-content:flex-start;

        padding-bottom:5px;
    }


    .core-form-wizard-track::before{
        display:none;
    }


    .core-form-wizard-point{
        min-width:72px;
    }


    .core-form-wizard-point small{
        max-width:72px;
    }


    .core-form-review-row{
        grid-template-columns:1fr;

        gap:4px;
    }


    .core-form-wizard-actions{
        align-items:stretch;
    }


    .core-form-wizard-prev,
    .core-form-wizard-next,
    .core-form-wizard-submit{
        min-height:42px;
    }

}



/* ============================================================
   RESPONSABLE MENOR
   ============================================================ */

.core-form-minor-alert{
    display:flex;
    justify-content:space-between;
    gap:14px;

    padding:13px 14px;
    margin-bottom:14px;

    border-radius:9px;

    background:var(--core-amber-soft);
    color:var(--core-amber);
}

.core-form-minor-alert strong{
    font-size:11px;
}

.core-form-minor-alert span{
    font-size:9px;
}

.core-form-minor-pending,
.core-form-minor-ok,
.core-form-minor-loading,
.core-form-minor-error{
    padding:13px 14px;

    border-radius:9px;

    font-size:10px;
}

.core-form-minor-pending{
    background:#f8fafc;
}

.core-form-minor-pending p{
    margin:5px 0 0;

    color:var(--core-muted);
}

.core-form-minor-ok{
    background:var(--core-green-soft);
    color:var(--core-green);
}

.core-form-minor-loading{
    background:#f8fafc;
    color:var(--core-muted);
}

.core-form-minor-error{
    background:#fff4f2;
    color:var(--core-red);
}

.core-form-minor-responsables h4{
    margin:0 0 10px;

    font-size:11px;
}

.core-form-minor-person{
    display:flex;
    align-items:center;
    gap:10px;

    padding:11px 12px;
    margin-bottom:8px;

    border:1px solid var(--core-border);
    border-radius:8px;

    cursor:pointer;
}

.core-form-minor-person strong,
.core-form-minor-person small{
    display:block;
}

.core-form-minor-person small{
    margin-top:3px;

    color:var(--core-muted);
}

.core-form-minor-warning{
    margin-top:10px;

    padding:9px 10px;

    border-radius:8px;

    background:var(--core-amber-soft);

    color:var(--core-amber);
    font-size:9px;
}

.core-form-minor-manual > p{
    margin:0 0 14px;

    color:var(--core-muted);

    font-size:10px;
}

.core-form-minor-grid{
    display:grid;
    grid-template-columns:1fr 1fr;

    gap:12px;
}

.core-form-minor-grid label > span{
    display:block;

    margin-bottom:5px;

    font-size:9px;
    font-weight:800;
}

.core-form-minor-grid input,
.core-form-minor-grid select{
    width:100%;
    height:40px;

    padding:0 10px;

    border:1px solid var(--core-border);
    border-radius:8px;

    background:#fff;
}

@media (max-width:650px){

    .core-form-minor-grid{
        grid-template-columns:1fr;
    }

}


/* ============================================================
   PERSONA - ESTADOS VISUALES
   ============================================================ */

.core-form-persona input.is-valid,
.core-form-persona select.is-valid,
.core-form-persona textarea.is-valid{
    border-color:var(--core-border) !important;
    background:#fff !important;
    box-shadow:none !important;
}

.core-form-persona input.is-valid:focus,
.core-form-persona select.is-valid:focus,
.core-form-persona textarea.is-valid:focus{
    border-color:var(--core-blue) !important;
    box-shadow:
        0 0 0 2px rgba(37,99,235,.08)
        !important;
}

.core-form-persona input.is-missing{
    border-color:var(--core-red) !important;
}


/* ============================================================
   HORARIOS DINAMICOS POR DIA
   ============================================================ */

.core-form-generated-schedules{
    margin-top:14px;
}

.core-form-generated-schedules-title{
    margin-bottom:8px;

    font-size:10px;
    font-weight:800;

    color:var(--core-text);
}

.core-form-generated-schedules-grid{
    display:grid;
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(180px,1fr)
        );

    gap:10px;
}

.core-form-generated-schedule{
    display:flex;
    align-items:center;
    gap:10px;

    padding:10px 12px;

    border:1px solid var(--core-border);
    border-radius:8px;

    background:#f8fafc;
}

.core-form-generated-schedule span{
    min-width:75px;

    font-size:10px;
    font-weight:800;
}

.core-form-generated-schedule input{
    width:100%;

    height:36px;

    padding:0 9px;

    border:1px solid var(--core-border);
    border-radius:7px;

    background:#fff;

    font:inherit;
    font-size:10px;
}

.core-form-generated-schedule input:focus{
    outline:none;

    border-color:#94aee4;

    box-shadow:
        0 0 0 3px
        rgba(36,72,154,.08);
}

.core-form-option input:disabled + span{
    opacity:.35;
}

@media (max-width:650px){

    .core-form-generated-schedules-grid{
        grid-template-columns:1fr;
    }

}


/*
 * ============================================================
 * FOTOGRAFÍA PERSONA
 * ============================================================
 */

.core-form-persona-photo{
    position:relative;
}


.core-form-photo-preview{
    display:none;

    width:100%;
    height:100%;

    object-fit:cover;
}


.core-form-photo-preview.is-visible{
    display:block;
}


.core-form-persona-avatar img.is-hidden,
.core-form-persona-avatar span.is-hidden{
    display:none;
}


.core-form-photo-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;

    gap:8px;

    margin-top:7px;
}


.core-form-photo-button,
.core-form-photo-cancel{
    appearance:none;

    border:0;
    padding:0;

    background:transparent;

    font-family:inherit;
    font-size:9px;
    font-weight:800;

    cursor:pointer;
}


.core-form-photo-button{
    color:var(--core-blue);
}


.core-form-photo-button:hover{
    text-decoration:underline;
}


.core-form-photo-cancel{
    color:var(--core-muted);
}


.core-form-photo-cancel:hover{
    color:var(--core-text);
}


.core-form-photo-status{
    display:block;

    margin-top:5px;

    color:var(--core-muted);

    font-size:8px;
}


.core-form-photo-status.is-ready{
    color:#16794d;
    font-weight:800;
}


@media (max-width:640px){

    .core-form-photo-actions{
        align-items:flex-start;
        flex-direction:column;

        gap:4px;
    }

}



/*
 * ============================================================
 * ECONOMÍA RESUMEN
 * ============================================================
 */

.core-form-economy{
    overflow:hidden;

    border:1px solid #dde4ee;
    border-radius:14px;

    background:#fff;
}


.core-form-economy-head{
    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:20px;

    padding:18px 20px;

    border-bottom:1px solid #edf0f4;
}


.core-form-economy-head span{
    display:block;

    margin-bottom:4px;

    font-size:11px;
    color:#798397;
}


.core-form-economy-head strong{
    font-size:15px;
    color:#182236;
}


.core-form-economy-badge{
    padding:6px 10px;

    border-radius:20px;

    background:#eef3ff;

    font-size:10px;
    font-weight:800;

    color:#3158a4;
}


.core-form-economy-lines{
    padding:8px 20px;
}


.core-form-economy-line,
.core-form-economy-adjustment{
    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:20px;

    padding:11px 0;

    border-bottom:1px solid #f0f2f5;
}


.core-form-economy-line:last-child{
    border-bottom:0;
}


.core-form-economy-line strong{
    display:block;

    font-size:13px;
}


.core-form-economy-line small{
    display:block;

    margin-top:3px;

    font-size:10px;

    color:#7a8495;
}


.core-form-economy-line > span{
    font-size:14px;
    font-weight:800;

    white-space:nowrap;
}


.core-form-economy-adjustments{
    margin-top:4px;

    border-top:1px dashed #d8dde5;
}


.core-form-economy-adjustment{
    color:#19704c;
}


.core-form-economy-total{
    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:20px;

    padding:16px 20px;

    background:#f6f8fb;
}


.core-form-economy-total span{
    font-size:12px;
    font-weight:700;
}


.core-form-economy-total strong{
    font-size:22px;

    color:#182236;
}


.core-form-economy-note{
    padding:10px 20px 16px;

    background:#f6f8fb;

    font-size:10px;
    line-height:1.5;

    color:#727d90;
}


.core-form-economy-status{
    padding:18px 20px;
}


.core-form-economy-status strong{
    display:block;

    margin-bottom:5px;
}


.core-form-economy-status span{
    display:block;

    font-size:11px;

    color:#7b8494;
}


.core-form-economy.is-loading,
.core-form-economy.is-error{
    padding:18px 20px;
}


.core-form-economy.is-error{
    color:#a43b3b;
}


@media (max-width:640px){

    .core-form-economy-head{
        align-items:flex-start;
        flex-direction:column;
    }

}



/*
 * ============================================================
 * DOMICILIACIÓN BANCARIA
 * ============================================================
 */

.core-form-bank{
    display:flex;
    flex-direction:column;

    gap:16px;
}


.core-form-bank-intro strong{
    display:block;

    margin-bottom:4px;

    font-size:14px;
}


.core-form-bank-intro p{
    margin:0;

    font-size:11px;
    line-height:1.5;

    color:var(--core-muted);
}


.core-form-bank-options{
    display:flex;
    flex-direction:column;

    gap:9px;
}


.core-form-bank-option{
    display:flex;
    align-items:flex-start;

    gap:12px;

    padding:14px;

    border:1px solid #dfe4eb;
    border-radius:12px;

    background:#fff;

    cursor:pointer;
}


.core-form-bank-option:hover{
    border-color:#b9c6da;
}


.core-form-bank-option:has(input:checked){
    border-color:#7891bd;

    box-shadow:
        0 0 0 2px rgba(68,100,160,.08);
}


.core-form-bank-option > input{
    margin-top:4px;
}


.core-form-bank-option-main{
    display:block;

    flex:1;
}


.core-form-bank-option-top{
    display:flex;
    align-items:center;
    flex-wrap:wrap;

    gap:8px;
}


.core-form-bank-option-top strong{
    font-size:13px;
}


.core-form-bank-option-top small.is-recommended{
    padding:3px 7px;

    border-radius:20px;

    background:#eef3ff;

    font-size:8px;
    font-weight:800;

    color:#3158a4;
}


.core-form-bank-holder{
    display:block;

    margin-top:4px;

    font-size:11px;
}


.core-form-bank-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;

    gap:7px;

    margin-top:5px;

    font-size:9px;

    color:#778195;
}


.core-form-bank-meta small{
    padding:2px 6px;

    border-radius:20px;

    background:#f1f3f6;
}


.core-form-bank-mandate{
    display:block;

    margin-top:7px;

    font-size:9px;
    font-weight:700;
}


.core-form-bank-mandate.is-active{
    color:#16734a;
}


.core-form-bank-mandate.is-required{
    color:#986413;
}


.core-form-bank-option.is-new{
    background:#fafbfd;
}


.core-form-bank-new{
    padding:16px;

    border:1px solid #dde3eb;
    border-radius:12px;

    background:#f8fafc;
}


.core-form-bank-new-grid{
    display:grid;

    grid-template-columns:
        minmax(0,1fr)
        minmax(0,1fr);

    gap:14px;
}


.core-form-bank-new label span{
    display:block;

    margin-bottom:6px;

    font-size:10px;
    font-weight:700;
}


.core-form-bank-new input{
    width:100%;

    box-sizing:border-box;

    padding:10px 11px;

    border:1px solid #ccd4df;
    border-radius:8px;

    background:#fff;

    font:inherit;
}


.core-form-bank-new small{
    display:block;

    margin-top:5px;

    font-size:8px;

    color:#7c8698;
}


.core-form-bank-consent{
    display:flex;
    align-items:flex-start;

    gap:10px;

    padding:13px 14px;

    border:1px solid #ead9b8;
    border-radius:10px;

    background:#fffaf0;
}


.core-form-bank-consent > input{
    margin-top:3px;
}


.core-form-bank-consent strong{
    display:block;

    margin-bottom:3px;

    font-size:10px;
}


.core-form-bank-consent small{
    display:block;

    font-size:9px;
    line-height:1.45;

    color:#746850;
}


.core-form-bank-state{
    min-height:16px;

    font-size:9px;
    font-weight:700;

    color:#516179;
}


.core-form-bank-security{
    padding-top:10px;

    border-top:1px solid #edf0f4;

    font-size:8px;
    line-height:1.5;

    color:#828b99;
}


@media (max-width:640px){

    .core-form-bank-new-grid{
        grid-template-columns:1fr;
    }

}



/*
 * ============================================================
 * NORMATIVA / CONSENTIMIENTOS
 * ============================================================
 */

.core-form-consent{
    display:flex;
    flex-direction:column;

    gap:14px;

    padding:18px;

    border:1px solid #dfe4eb;
    border-radius:14px;

    background:#fff;
}


.core-form-consent + .core-form-consent{
    margin-top:14px;
}


.core-form-consent-head{
    display:flex;
    align-items:center;

    gap:11px;
}


.core-form-consent-icon{
    display:flex;
    align-items:center;
    justify-content:center;

    width:38px;
    height:38px;

    flex:0 0 38px;

    border-radius:10px;

    background:#eef2f7;

    font-size:9px;
    font-weight:800;

    color:#53637d;
}


.core-form-consent-head strong{
    display:block;

    font-size:13px;
}


.core-form-consent-head small{
    display:block;

    margin-top:3px;

    font-size:8px;

    color:#818a98;
}


.core-form-consent-text{
    padding:13px 14px;

    border-radius:10px;

    background:#f7f9fb;

    font-size:10px;
    line-height:1.6;

    color:#596577;
}


.core-form-consent-check{
    display:flex;
    align-items:flex-start;

    gap:10px;

    padding:13px 14px;

    border:1px solid #dce3ec;
    border-radius:10px;

    background:#fff;

    cursor:pointer;
}


.core-form-consent-check:hover{
    border-color:#b9c6da;
}


.core-form-consent-check:has(input:checked){
    border-color:#80a994;

    background:#f6fbf8;
}


.core-form-consent-check input{
    margin-top:3px;
}


.core-form-consent-check span{
    font-size:10px;
    line-height:1.5;

    color:#354052;
}


.core-form-consent-check span b{
    color:#a63d3d;
}


.core-form-consent-required{
    font-size:8px;
    font-weight:700;

    color:#7c8797;
}


.core-form-consent.is-error{
    border-color:#e5c5c5;

    background:#fff8f8;
}


.core-form-consent.is-error strong{
    color:#943c3c;
}


.core-form-consent.is-error p{
    margin:0;

    font-size:10px;
    line-height:1.5;

    color:#725151;
}



/* ============================================================
   CORE FORM · ECONOMIA PERSISTENTE V2
   ============================================================ */

.core-form-economic-float-host {
    position: fixed;

    right: 24px;
    top: 50%;

    transform:
        translateY(-50%);

    z-index: 900;

    width: 290px;

    pointer-events: none;
}


.core-form-economic-float {
    padding: 18px;

    background:
        rgba(255, 255, 255, 0.98);

    border:
        1px solid
        rgba(15, 23, 42, 0.12);

    border-radius: 16px;

    box-shadow:
        0 18px 45px
        rgba(15, 23, 42, 0.18);

    backdrop-filter:
        blur(12px);

    pointer-events: auto;
}


.core-form-economic-float-label {
    margin-bottom: 7px;

    font-size: 11px;
    font-weight: 800;

    text-transform: uppercase;
    letter-spacing: 0.08em;

    opacity: 0.55;
}


.core-form-economic-float-plan {
    margin-bottom: 13px;

    font-size: 13px;
    font-weight: 700;

    line-height: 1.35;
}


.core-form-economic-float-line {
    display: flex;

    justify-content:
        space-between;

    align-items:
        flex-start;

    gap: 14px;

    padding: 7px 0;

    font-size: 13px;
}


.core-form-economic-float-line span {
    line-height: 1.3;
}


.core-form-economic-float-line strong {
    white-space: nowrap;
}


.core-form-economic-float-total {
    display: flex;

    justify-content:
        space-between;

    align-items:
        center;

    gap: 14px;

    margin-top: 10px;
    padding-top: 12px;

    border-top:
        1px solid
        rgba(15, 23, 42, 0.12);

    font-weight: 800;
}


.core-form-economic-float-total strong {
    font-size: 20px;
    white-space: nowrap;
}


.core-form-economic-float-core {
    display: block;

    margin-top: 9px;

    font-size: 10px;

    opacity: 0.48;
}


.core-form-economic-float.is-pending strong,
.core-form-economic-float.is-pending small {
    display: block;
}


.core-form-economic-float.is-pending small {
    margin-top: 5px;

    line-height: 1.35;

    opacity: 0.60;
}


/*
 * No invadimos el formulario cuando la ventana
 * no dispone de espacio lateral suficiente.
 */
@media (max-width: 1450px) {

    .core-form-economic-float-host {
        position: sticky;

        top: auto;
        right: auto;

        bottom: 12px;

        transform: none;

        width: min(
            420px,
            calc(100% - 20px)
        );

        margin:
            20px 10px
            0 auto;

        z-index: 80;
    }
}


@media (max-width: 700px) {

    .core-form-economic-float-host {
        width: 100%;

        margin:
            16px 0 0;

        bottom: 6px;
    }


    .core-form-economic-float {
        padding: 14px;

        border-radius: 14px;
    }
}


/*
 * ============================================================
 * CORE FORM - SUBMIT FINAL
 * ============================================================
 *
 * El envío real del expediente se ejecuta desde el
 * último paso del wizard.
 */
.core-form-wizard-submit:not([hidden]) {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 44px;
    padding: 0 24px;

    background: #1748d1;
    color: #ffffff;

    border: 1px solid #1748d1;
    border-radius: 8px;

    font-weight: 700;
    cursor: pointer;

    opacity: 1;
    visibility: visible;
}

.core-form-wizard-submit:not([hidden]):hover {
    filter: brightness(0.95);
}

.core-form-wizard-submit:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}


/* ============================================================
   CORE FORMS · IDENTIDAD PARTICIPANTE · REFUERZO VISUAL
   ============================================================ */

.core-form-persona-head{
    background:#f2f6f8;
    border-bottom:1px solid #d6e0e5;
}

.core-form-persona-identity strong{
    font-size:15px;
    line-height:1.25;
    font-weight:800;
}

.core-form-persona-identity span{
    margin-top:5px;
    font-size:10px;
    font-weight:700;
    color:#596773;
}

.core-form-photo-actions{
    margin-top:9px;
}

.core-form-photo-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-height:34px;
    padding:7px 12px;

    border:1px solid var(--core-blue);
    border-radius:8px;

    background:#fff;
    color:var(--core-blue);

    font-size:10px;
    font-weight:800;
    line-height:1;

    box-shadow:0 1px 2px rgba(0,0,0,.04);
}

.core-form-photo-button:hover{
    background:#f4f8fc;
    text-decoration:none;
}

.core-form-photo-status{
    display:inline-block;

    margin-top:7px;
    padding:4px 7px;

    border-radius:6px;

    background:#fff4df;
    color:#8a5b00;

    font-size:9px;
    font-weight:800;
}

.core-form-photo-status.is-ready{
    background:#edf8f2;
    color:#16794d;
}

.core-form-photo-pending-help{
    display:block;

    max-width:420px;
    margin-top:6px;

    color:#53616c;

    font-size:9px;
    line-height:1.45;
}

.core-form-persona-warning{
    position:relative;

    padding:11px 12px;

    border:1px solid #ead6a2;
    border-radius:8px;

    background:#fff8e8;
    color:#745200;

    font-size:10px;
    line-height:1.4;
}

.core-form-persona-warning strong{
    font-weight:800;
}

@media (max-width:650px){

    .core-form-persona-identity strong{
        font-size:14px;
    }

    .core-form-photo-button{
        width:100%;
        max-width:220px;
    }

    .core-form-persona-warning{
        font-size:10px;
    }
}


/* Hípica · aclaración económica */
.core-form-economy-note-hipica{
    margin:14px 20px 18px;
    padding:14px 16px;

    background:#ffffff;
    border:1px solid #b8c9e3;
    border-left:4px solid #315f96;
    border-radius:8px;

    font-size:12px;
    line-height:1.6;
    color:#26364d;
}

.core-form-economy-note-hipica strong{
    display:block;
    margin-bottom:4px;

    font-size:13px;
    color:#182b47;
}

