#vpc-contrato-wrapper {
    --vpc-blue: #1538a0;
    --vpc-blue-dark: #0c2868;
    --vpc-ink: #1c2230;
    --vpc-gray: #6b7280;
    --vpc-paper: #fbfaf6;
    --vpc-bg-soft: #f6f7fb;
    --vpc-border: #e3e6ef;

    max-width: 680px !important;
    margin: 0 auto !important;
    padding: 0 16px 64px !important;
    font-family: 'Inter', -apple-system, "Segoe UI", Roboto, sans-serif !important;
    color: var(--vpc-ink) !important;
    box-sizing: border-box;
}
#vpc-contrato-wrapper * {
    box-sizing: border-box;
}

#vpc-contrato-wrapper h1,
#vpc-contrato-wrapper h2 {
    font-family: 'Source Serif 4', Georgia, serif !important;
    line-height: 1.2 !important;
}

/* Membrete */
#vpc-contrato-wrapper .vpc-letterhead {
    text-align: center !important;
    padding: 36px 0 28px !important;
    border-bottom: 3px solid var(--vpc-blue) !important;
    margin: 0 0 28px !important;
}
#vpc-contrato-wrapper .vpc-letterhead-top {
    display: flex !important;
    justify-content: space-between !important;
    font-size: 12px !important;
    color: var(--vpc-gray) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    margin: 0 0 18px !important;
}
#vpc-contrato-wrapper .vpc-letterhead h1 {
    font-size: 30px !important;
    font-weight: 700 !important;
    margin: 0 0 6px !important;
    color: var(--vpc-ink) !important;
}
#vpc-contrato-wrapper .vpc-subtitle {
    color: var(--vpc-blue) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    margin: 0 !important;
    font-family: 'Inter', sans-serif !important;
}

/* Stepper - quitamos por completo la numeración nativa de lista */
#vpc-contrato-wrapper ol.vpc-stepper,
#vpc-contrato-wrapper .vpc-stepper {
    display: flex !important;
    justify-content: space-between !important;
    list-style: none !important;
    margin: 0 0 32px !important;
    padding: 0 !important;
    font-size: 11px !important;
    color: var(--vpc-gray) !important;
    text-align: center !important;
    font-family: 'Inter', sans-serif !important;
}
#vpc-contrato-wrapper .vpc-stepper li {
    flex: 1 !important;
    position: relative !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
#vpc-contrato-wrapper .vpc-stepper li::marker { content: '' !important; }
#vpc-contrato-wrapper .vpc-stepper li span {
    display: block !important;
    width: 24px !important;
    height: 24px !important;
    line-height: 24px !important;
    border-radius: 50% !important;
    background: var(--vpc-bg-soft) !important;
    border: 1px solid var(--vpc-border) !important;
    margin: 0 auto 6px !important;
    font-weight: 700 !important;
    color: var(--vpc-gray) !important;
}
#vpc-contrato-wrapper .vpc-stepper li.is-active span {
    background: var(--vpc-blue) !important;
    border-color: var(--vpc-blue) !important;
    color: #fff !important;
}

/* Tarjetas por paso */
#vpc-contrato-wrapper .vpc-card {
    background: #fff !important;
    border: 1px solid var(--vpc-border) !important;
    border-radius: 12px !important;
    padding: 26px !important;
    margin: 0 0 20px !important;
    box-shadow: 0 1px 3px rgba(16, 24, 64, 0.05) !important;
    display: block !important;
}
#vpc-contrato-wrapper .vpc-card--legal {
    border-left: 4px solid var(--vpc-blue) !important;
}
#vpc-contrato-wrapper .vpc-card--survey {
    background: var(--vpc-bg-soft) !important;
    border-style: dashed !important;
}
#vpc-contrato-wrapper .vpc-card-head {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 0 16px !important;
}
#vpc-contrato-wrapper .vpc-step-badge {
    flex: 0 0 auto !important;
    width: 30px !important;
    height: 30px !important;
    border-radius: 50% !important;
    background: var(--vpc-blue) !important;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    font-family: 'Inter', sans-serif !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
#vpc-contrato-wrapper .vpc-card-head h2 {
    font-size: 19px !important;
    font-weight: 600 !important;
    margin: 0 !important;
    color: var(--vpc-ink) !important;
}

/* Campos */
#vpc-contrato-wrapper label {
    display: block !important;
    margin: 14px 0 6px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--vpc-ink) !important;
    font-family: 'Inter', sans-serif !important;
}
#vpc-contrato-wrapper label:first-of-type {
    margin-top: 0 !important;
}
#vpc-contrato-wrapper input[type="text"],
#vpc-contrato-wrapper input[type="tel"],
#vpc-contrato-wrapper input[type="file"],
#vpc-contrato-wrapper select,
#vpc-contrato-wrapper textarea {
    width: 100% !important;
    padding: 11px 12px !important;
    border: 1px solid var(--vpc-border) !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    font-family: 'Inter', sans-serif !important;
    background: var(--vpc-bg-soft) !important;
    color: var(--vpc-ink) !important;
    margin: 0 !important;
}
#vpc-contrato-wrapper input:focus,
#vpc-contrato-wrapper select:focus,
#vpc-contrato-wrapper textarea:focus {
    outline: none !important;
    border-color: var(--vpc-blue) !important;
    background: #fff !important;
}

/* Texto del contrato, estilo "papel" */
#vpc-contrato-wrapper .vpc-paper {
    background: var(--vpc-paper) !important;
    border: 1px solid var(--vpc-border) !important;
    border-radius: 8px !important;
    padding: 20px 22px !important;
    max-height: 300px !important;
    overflow-y: auto !important;
}
#vpc-contrato-texto {
    font-family: 'Source Serif 4', Georgia, serif !important;
    font-size: 15px !important;
    line-height: 1.75 !important;
    color: #2b2f3a !important;
}
#vpc-contrato-texto p {
    margin: 0 0 14px !important;
}

/* Firma */
#vpc-contrato-wrapper .vpc-signature-frame {
    border: 2px solid var(--vpc-border) !important;
    border-radius: 10px !important;
    background: #fcfcfd !important;
    padding: 8px 16px 16px !important;
}
#vpc-signature-pad {
    width: 100% !important;
    height: 190px !important;
    display: block !important;
    touch-action: none !important;
    background: #fff !important;
    border: 1px dashed var(--vpc-border) !important;
    border-radius: 6px !important;
    cursor: crosshair !important;
}
#vpc-contrato-wrapper .vpc-signature-line {
    border-top: 1px solid var(--vpc-ink) !important;
    margin: 6px 0 0 !important;
    padding: 6px 0 0 !important;
    text-align: center !important;
}
#vpc-contrato-wrapper .vpc-signature-line span {
    font-size: 11px !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    color: var(--vpc-gray) !important;
    font-family: 'Inter', sans-serif !important;
}
#vpc-contrato-wrapper .vpc-help {
    color: var(--vpc-gray) !important;
    font-size: 13px !important;
    margin: 0 0 12px !important;
    line-height: 1.5 !important;
    font-family: 'Inter', sans-serif !important;
}
#vpc-contrato-wrapper .vpc-btn-ghost {
    margin: 12px 0 0 !important;
    background: none !important;
    border: 1px solid var(--vpc-border) !important;
    color: var(--vpc-gray) !important;
    padding: 8px 16px !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    font-family: 'Inter', sans-serif !important;
    cursor: pointer !important;
}
#vpc-contrato-wrapper .vpc-btn-ghost:hover {
    border-color: var(--vpc-blue) !important;
    color: var(--vpc-blue) !important;
}

/* Botón principal */
#vpc-contrato-wrapper .vpc-btn-primary {
    background: var(--vpc-blue) !important;
    color: #fff !important;
    border: none !important;
    padding: 17px 24px !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    font-family: 'Inter', sans-serif !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    width: 100% !important;
    margin: 0 !important;
}
#vpc-contrato-wrapper .vpc-btn-primary:hover {
    background: var(--vpc-blue-dark) !important;
}
#vpc-contrato-wrapper .vpc-btn-primary:disabled {
    opacity: 0.6 !important;
    cursor: not-allowed !important;
}

#vpc-contrato-wrapper #vpc-mensaje-estado {
    text-align: center !important;
    font-size: 14px !important;
    margin: 14px 0 0 !important;
    font-family: 'Inter', sans-serif !important;
}

#vpc-contrato-wrapper .vpc-footer-note {
    text-align: center !important;
    font-size: 12px !important;
    color: var(--vpc-gray) !important;
    margin: 24px 0 0 !important;
    line-height: 1.5 !important;
    font-family: 'Inter', sans-serif !important;
}

@media (max-width: 480px) {
    #vpc-contrato-wrapper .vpc-card { padding: 18px !important; }
    #vpc-contrato-wrapper .vpc-letterhead h1 { font-size: 23px !important; }
    #vpc-contrato-wrapper .vpc-stepper { font-size: 9px !important; }
    #vpc-contrato-wrapper .vpc-stepper li span { width: 20px !important; height: 20px !important; line-height: 20px !important; }
}

/* VisionPro Contratos Pro - referencias y confirmación */
#vpc-contrato-wrapper .vpc-section-divider {
    height: 1px !important;
    background: var(--vpc-border, #dbe3ef) !important;
    margin: 28px 0 22px !important;
}
#vpc-contrato-wrapper .vpc-subsection-title {
    margin: 0 0 8px !important;
    font-size: 18px !important;
    line-height: 1.3 !important;
    color: var(--vpc-ink, #132238) !important;
}
#vpc-contrato-wrapper .vpc-reference-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 14px !important;
    margin-top: 16px !important;
}
#vpc-contrato-wrapper .vpc-reference-card {
    border: 1px solid var(--vpc-border, #dbe3ef) !important;
    background: #f8fbff !important;
    border-radius: 12px !important;
    padding: 16px !important;
}
#vpc-contrato-wrapper .vpc-reference-number {
    display: inline-block !important;
    margin-bottom: 10px !important;
    font: 700 12px/1.2 Inter, sans-serif !important;
    color: var(--vpc-blue, #1155cc) !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
}
#vpc-contrato-wrapper .vpc-reference-card label {
    margin-top: 9px !important;
}
#vpc-contrato-wrapper .vpc-message {
    margin: 14px 0 0 !important;
    padding: 12px 14px !important;
    border-radius: 9px !important;
    font: 500 13px/1.5 Inter, sans-serif !important;
}
#vpc-contrato-wrapper .vpc-message:empty { display: none !important; }
#vpc-contrato-wrapper .vpc-message--error {
    color: #a61b1b !important;
    background: #fff3f3 !important;
    border: 1px solid #ffd2d2 !important;
}
#vpc-contrato-wrapper .vpc-message--loading {
    color: #29415f !important;
    background: #f1f6fc !important;
    border: 1px solid #d9e7f7 !important;
}
#vpc-contrato-wrapper .vpc-success-screen {
    min-height: 62vh !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 36px 0 20px !important;
}
#vpc-contrato-wrapper .vpc-success-card {
    width: 100% !important;
    max-width: 610px !important;
    background: #fff !important;
    border: 1px solid var(--vpc-border, #dbe3ef) !important;
    border-radius: 18px !important;
    box-shadow: 0 18px 50px rgba(12, 40, 104, .10) !important;
    padding: 40px 42px 32px !important;
    text-align: center !important;
    overflow: hidden !important;
    position: relative !important;
}
#vpc-contrato-wrapper .vpc-success-card::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 0 auto 0 !important;
    height: 5px !important;
    background: var(--vpc-blue, #1155cc) !important;
}
#vpc-contrato-wrapper .vpc-success-brand {
    color: var(--vpc-blue, #1155cc) !important;
    font: 700 12px/1.2 Inter, sans-serif !important;
    letter-spacing: .14em !important;
    margin-bottom: 22px !important;
}
#vpc-contrato-wrapper .vpc-success-icon {
    width: 82px !important;
    height: 82px !important;
    margin: 0 auto 18px !important;
}
#vpc-contrato-wrapper .vpc-success-icon svg { width: 100% !important; height: 100% !important; }
#vpc-contrato-wrapper .vpc-success-icon circle {
    fill: #eef4ff !important;
    stroke: var(--vpc-blue, #1155cc) !important;
    stroke-width: 2.5 !important;
}
#vpc-contrato-wrapper .vpc-success-icon path {
    fill: none !important;
    stroke: var(--vpc-blue, #1155cc) !important;
    stroke-width: 4 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}
#vpc-contrato-wrapper .vpc-success-eyebrow {
    margin: 0 0 7px !important;
    color: var(--vpc-blue, #1155cc) !important;
    font: 700 11px/1.3 Inter, sans-serif !important;
    letter-spacing: .12em !important;
}
#vpc-contrato-wrapper .vpc-success-card h2 {
    margin: 0 0 13px !important;
    font-size: 29px !important;
    line-height: 1.2 !important;
    color: var(--vpc-ink, #132238) !important;
}
#vpc-contrato-wrapper .vpc-success-copy {
    max-width: 480px !important;
    margin: 0 auto 25px !important;
    color: var(--vpc-gray, #657184) !important;
    font: 400 15px/1.65 Inter, sans-serif !important;
}
#vpc-contrato-wrapper .vpc-success-copy strong { color: var(--vpc-ink, #132238) !important; }
#vpc-contrato-wrapper .vpc-success-details {
    border: 1px solid var(--vpc-border, #dbe3ef) !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    text-align: left !important;
    margin-bottom: 20px !important;
}
#vpc-contrato-wrapper .vpc-success-details > div {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    padding: 13px 16px !important;
    border-bottom: 1px solid var(--vpc-border, #dbe3ef) !important;
    font-family: Inter, sans-serif !important;
}
#vpc-contrato-wrapper .vpc-success-details > div:last-child { border-bottom: 0 !important; }
#vpc-contrato-wrapper .vpc-success-details span { color: #657184 !important; font-size: 13px !important; }
#vpc-contrato-wrapper .vpc-success-details strong { color: #132238 !important; font-size: 14px !important; text-align: right !important; }
#vpc-contrato-wrapper .vpc-status-ok { color: #137333 !important; display: inline-flex !important; align-items: center !important; gap: 7px !important; }
#vpc-contrato-wrapper .vpc-status-ok i { width: 8px !important; height: 8px !important; border-radius: 50% !important; background: #1f9d55 !important; display: inline-block !important; }
#vpc-contrato-wrapper .vpc-success-notice {
    background: #f6f8fb !important;
    border-radius: 10px !important;
    padding: 15px 17px !important;
    color: #4b5563 !important;
    font: 400 13px/1.55 Inter, sans-serif !important;
    text-align: left !important;
}
#vpc-contrato-wrapper .vpc-success-notice strong { color: #132238 !important; }
#vpc-contrato-wrapper .vpc-success-footer { margin: 21px 0 0 !important; color: #7b8798 !important; font: 500 12px/1.4 Inter, sans-serif !important; }
@media (max-width: 780px) {
    #vpc-contrato-wrapper .vpc-reference-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 480px) {
    #vpc-contrato-wrapper .vpc-success-screen { min-height: 56vh !important; padding-top: 18px !important; }
    #vpc-contrato-wrapper .vpc-success-card { padding: 31px 20px 25px !important; border-radius: 14px !important; }
    #vpc-contrato-wrapper .vpc-success-card h2 { font-size: 24px !important; }
    #vpc-contrato-wrapper .vpc-success-details > div { align-items: flex-start !important; flex-direction: column !important; gap: 4px !important; }
    #vpc-contrato-wrapper .vpc-success-details strong { text-align: left !important; }
}


/* v2.1.0 - Evidencia y conformidad de instalación */
#vpc-contrato-wrapper .vpc-card--evidence {
    border-left: 4px solid var(--vpc-blue) !important;
}
#vpc-contrato-wrapper .vpc-photo-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 14px !important;
    margin-top: 16px !important;
}
#vpc-contrato-wrapper .vpc-photo-card {
    border: 1px solid var(--vpc-border, #dbe3ef) !important;
    background: #f8fbff !important;
    border-radius: 12px !important;
    padding: 16px !important;
}
#vpc-contrato-wrapper .vpc-photo-title {
    display: inline-block !important;
    margin-bottom: 8px !important;
    color: var(--vpc-blue, #1155cc) !important;
    font: 700 12px/1.2 Inter, sans-serif !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
}
#vpc-contrato-wrapper .vpc-acceptance-box {
    display: grid !important;
    gap: 12px !important;
    margin-top: 20px !important;
}
#vpc-contrato-wrapper label.vpc-check-row {
    display: flex !important;
    align-items: flex-start !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 15px 16px !important;
    border: 1px solid var(--vpc-border, #dbe3ef) !important;
    border-radius: 12px !important;
    background: #fff !important;
    cursor: pointer !important;
    font-weight: 500 !important;
    line-height: 1.55 !important;
}
#vpc-contrato-wrapper .vpc-check-row input[type="checkbox"] {
    flex: 0 0 auto !important;
    width: 20px !important;
    height: 20px !important;
    margin: 2px 0 0 !important;
    accent-color: var(--vpc-blue, #1155cc) !important;
}
#vpc-contrato-wrapper .vpc-check-row span {
    color: var(--vpc-ink, #132238) !important;
    font-size: 13px !important;
}
@media (max-width: 760px) {
    #vpc-contrato-wrapper .vpc-photo-grid,
    #vpc-contrato-wrapper .vpc-reference-grid {
        grid-template-columns: 1fr !important;
    }
    #vpc-contrato-wrapper .vpc-stepper {
        gap: 2px !important;
    }
}

/* VisionPro Contratos Pro 2.2 - Evidencia de instalación */
.vpc-card--evidence { border: 2px solid rgba(24, 94, 173, .18); background: linear-gradient(180deg,#f8fbff 0%,#fff 100%); }
.vpc-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:20px 0; }
.vpc-photo-card { padding:18px; border:1px solid #dce6f2; border-radius:14px; background:#fff; box-shadow:0 5px 18px rgba(18,54,91,.06); }
.vpc-photo-title { display:block; font-weight:700; font-size:14px; color:#164f91; text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px; }
.vpc-photo-card input[type=file] { width:100%; margin-top:10px; padding:10px; border:1px dashed #9bb8d8; border-radius:10px; background:#f7fbff; }
.vpc-acceptance-box { display:grid; gap:12px; margin-top:20px; }
.vpc-check-row { display:flex; align-items:flex-start; gap:12px; padding:16px; border:1px solid #dce6f2; border-radius:12px; background:#fff; line-height:1.5; }
.vpc-check-row input[type=checkbox] { width:20px; height:20px; margin-top:2px; flex:0 0 auto; }
@media (max-width: 760px) { .vpc-photo-grid { grid-template-columns:1fr; } }
