
    .cvperu-app,
    .cvperu-app * {
        box-sizing: border-box;
    }

    .cvperu-app {
        --cv-azul: #071f49;
        --cv-azul-claro: #123a75;
        --cv-rojo: #d7193f;
        --cv-fondo: #f4f7fb;
        --cv-borde: #d8e0eb;
        --cv-texto: #1d2635;

        width: 100%;
        max-width: 1400px;
        margin: 25px auto;
        color: var(--cv-texto);
        font-family: inherit;
    }

    .cvperu-encabezado {
        margin-bottom: 18px;
        padding: 30px;
        color: #ffffff;
        text-align: center;
        background:
            radial-gradient(
                circle at 90% 10%,
                rgba(255, 255, 255, 0.10),
                transparent 28%
            ),
            linear-gradient(
                135deg,
                #071f49,
                #123a75
            );
        border-top: 6px solid var(--cv-rojo);
        border-radius: 20px;
    }

    .cvperu-kicker {
        display: block;
        margin-bottom: 8px;
        color: #ffccd5;
        font-size: 12px;
        font-weight: 800;
        letter-spacing: 1.4px;
    }

    .cvperu-encabezado h2 {
        margin: 0 0 10px;
        color: #ffffff;
        font-size: clamp(29px, 5vw, 44px);
        line-height: 1.15;
    }

    .cvperu-encabezado p {
        max-width: 720px;
        margin: 0 auto;
        color: #e5ecf8;
        font-size: 16px;
        line-height: 1.6;
    }

    .cvperu-privacidad {
        margin-bottom: 20px;
        padding: 14px 17px;
        color: #244467;
        background: #edf6ff;
        border: 1px solid #cddff3;
        border-radius: 12px;
        font-size: 13px;
        line-height: 1.5;
    }

    .cvperu-layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(430px, 0.85fr);
        gap: 24px;
        align-items: start;
    }

    .cvperu-formulario {
        min-width: 0;
    }

    .cvperu-seccion {
        margin-bottom: 20px;
        padding: 23px;
        background: #ffffff;
        border: 1px solid var(--cv-borde);
        border-radius: 16px;
        box-shadow: 0 8px 25px rgba(7, 31, 73, 0.07);
    }

    .cvperu-seccion-titulo {
        display: flex;
        align-items: flex-start;
        gap: 12px;
        margin-bottom: 20px;
    }

    .cvperu-seccion-titulo > span {
        display: grid;
        flex: 0 0 36px;
        width: 36px;
        height: 36px;
        place-items: center;
        color: #ffffff;
        background: var(--cv-rojo);
        border-radius: 50%;
        font-size: 15px;
        font-weight: 800;
    }

    .cvperu-seccion-titulo h3 {
        margin: 0 0 3px;
        color: var(--cv-azul);
        font-size: 21px;
        line-height: 1.25;
    }

    .cvperu-seccion-titulo p {
        margin: 0;
        color: #687386;
        font-size: 13px;
        line-height: 1.4;
    }

    .cvperu-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }

    .cvperu-campo {
        min-width: 0;
        margin-bottom: 16px;
    }

    .cvperu-campo:last-child {
        margin-bottom: 0;
    }

    .cvperu-grid .cvperu-campo {
        margin-bottom: 0;
    }

    .cvperu-completo {
        grid-column: 1 / -1;
    }

    .cvperu-campo label {
        display: block;
        margin-bottom: 7px;
        color: #29374b;
        font-size: 13px;
        font-weight: 750;
    }

    .cvperu-campo label b {
        color: var(--cv-rojo);
    }

    .cvperu-campo label em {
        color: #7a8597;
        font-size: 11px;
        font-style: normal;
        font-weight: 500;
    }

    .cvperu-campo input,
    .cvperu-campo textarea,
    .cvperu-campo select {
        width: 100%;
        margin: 0;
        padding: 12px 13px;
        color: #111827;
        background: #ffffff;
        border: 1px solid #bec9d8;
        border-radius: 9px;
        outline: none;
        box-shadow: none;
        font-family: inherit;
        font-size: 14px;
        transition:
            border-color 0.2s ease,
            box-shadow 0.2s ease;
    }

    .cvperu-campo textarea {
        resize: vertical;
        line-height: 1.5;
    }

    .cvperu-campo input:focus,
    .cvperu-campo textarea:focus,
    .cvperu-campo select:focus {
        border-color: var(--cv-azul-claro);
        box-shadow: 0 0 0 4px rgba(18, 58, 117, 0.10);
    }

    .cvperu-campo small {
        display: block;
        margin-top: 6px;
        color: #748095;
        font-size: 11px;
        line-height: 1.4;
    }

    .cvperu-check {
        display: flex;
        align-items: center;
        gap: 9px;
        margin-bottom: 17px;
        color: #27364e;
        cursor: pointer;
        font-size: 14px;
        font-weight: 700;
    }

    .cvperu-check input {
        width: 18px;
        height: 18px;
        margin: 0;
        accent-color: var(--cv-rojo);
    }

    .cvperu-check-pequeno {
        margin: 0;
        font-size: 12px;
    }

    .cvperu-alinear-final {
        display: flex;
        align-items: flex-end;
        padding-bottom: 12px;
    }

    .cvperu-item {
        position: relative;
        margin-bottom: 15px;
        padding: 17px;
        background: var(--cv-fondo);
        border: 1px solid var(--cv-borde);
        border-radius: 12px;
    }

    .cvperu-item-cabecera {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin-bottom: 15px;
        color: var(--cv-azul);
        font-size: 14px;
    }

    .cvperu-eliminar-item {
        padding: 6px 9px;
        color: #a40c28;
        background: #fff0f3;
        border: 1px solid #f2c5ce;
        border-radius: 7px;
        cursor: pointer;
        font-size: 11px;
        font-weight: 700;
    }

    .cvperu-boton-secundario {
        min-height: 42px;
        padding: 10px 15px;
        color: var(--cv-azul);
        background: #ffffff;
        border: 1px solid var(--cv-azul);
        border-radius: 9px;
        cursor: pointer;
        font-family: inherit;
        font-size: 13px;
        font-weight: 800;
        transition: 0.2s ease;
    }

    .cvperu-boton-secundario:hover {
        color: #ffffff;
        background: var(--cv-azul);
        transform: translateY(-1px);
    }

    .cvperu-mensaje {
        display: none;
        margin-bottom: 15px;
        padding: 13px;
        color: #842029;
        background: #f8d7da;
        border: 1px solid #f5c2c7;
        border-radius: 9px;
        font-size: 13px;
    }

    .cvperu-acciones {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 10px;
        padding: 20px;
        background: #ffffff;
        border: 1px solid var(--cv-borde);
        border-radius: 14px;
        box-shadow: 0 8px 25px rgba(7, 31, 73, 0.08);
    }

    .cvperu-descargar,
    .cvperu-limpiar {
        min-height: 50px;
        padding: 12px 18px;
        border-radius: 10px;
        cursor: pointer;
        font-family: inherit;
        font-size: 14px;
        font-weight: 850;
        transition: 0.2s ease;
    }

    .cvperu-descargar {
        color: #ffffff;
        background: linear-gradient(135deg, #d7193f, #a90e2d);
        border: 0;
        box-shadow: 0 8px 20px rgba(215, 25, 63, 0.25);
    }

    .cvperu-descargar:hover {
        transform: translateY(-2px);
        box-shadow: 0 12px 26px rgba(215, 25, 63, 0.32);
    }

    .cvperu-limpiar {
        color: var(--cv-azul);
        background: #ffffff;
        border: 1px solid var(--cv-azul);
    }

    .cvperu-instruccion-pdf {
        margin: 11px 0 0;
        color: #667286;
        font-size: 12px;
        line-height: 1.5;
        text-align: center;
    }

    .cvperu-vista-contenedor {
        position: sticky;
        top: 20px;
        min-width: 0;
    }

    .cvperu-vista-titulo {
        margin-bottom: 9px;
        color: var(--cv-azul);
        font-size: 13px;
        font-weight: 800;
        text-align: center;
    }

    .cvperu-preview {
        width: 100%;
        min-height: 760px;
        padding: 42px;
        color: #1a1a1a;
        background: #ffffff;
        border: 1px solid #d5d9df;
        border-top: 7px solid var(--cv-azul);
        box-shadow: 0 13px 35px rgba(7, 31, 73, 0.14);
        font-family: Arial, Helvetica, sans-serif;
    }

    .cvperu-cv-cabecera {
        padding-bottom: 17px;
        border-bottom: 2px solid var(--cv-azul);
    }

    .cvperu-cv-cabecera .cvperu-prev-nombre {
        margin: 0 0 7px;
        color: var(--cv-azul);
        font-family: Arial, Helvetica, sans-serif;
        font-size: 27px;
        font-weight: 800;
        letter-spacing: 0.3px;
        line-height: 1.15;
        text-transform: uppercase;
    }

    .cvperu-prev-puesto {
        margin: 0 0 9px;
        color: var(--cv-rojo);
        font-size: 16px;
        font-weight: 700;
    }

    .cvperu-prev-contacto,
    .cvperu-prev-adicional {
        margin: 4px 0 0;
        color: #3e4652;
        font-size: 11px;
        line-height: 1.4;
    }

    .cvperu-prev-seccion {
        margin-top: 19px;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .cvperu-prev-seccion h2 {
        margin: 0 0 9px;
        padding-bottom: 5px;
        color: var(--cv-azul);
        background: transparent;
        border-bottom: 1px solid #b9c1cc;
        font-family: Arial, Helvetica, sans-serif;
        font-size: 13px;
        font-weight: 800;
        letter-spacing: 0.7px;
        line-height: 1.2;
    }

    .cvperu-prev-seccion p {
        margin: 0;
        color: #252a31;
        font-size: 11px;
        line-height: 1.55;
    }

    .cvperu-prev-seccion ul {
        margin: 0;
        padding-left: 18px;
    }

    .cvperu-prev-seccion li {
        margin-bottom: 4px;
        color: #252a31;
        font-size: 11px;
        line-height: 1.45;
    }

    .cvperu-cv-item {
        margin-bottom: 14px;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .cvperu-cv-item:last-child {
        margin-bottom: 0;
    }

    .cvperu-cv-item-cabecera {
        display: flex;
        justify-content: space-between;
        gap: 14px;
        margin-bottom: 3px;
    }

    .cvperu-cv-item-cabecera strong {
        color: #1e2734;
        font-size: 12px;
    }

    .cvperu-cv-item-cabecera span {
        flex: 0 0 auto;
        color: #555f6e;
        font-size: 10px;
    }

    .cvperu-cv-item-subtitulo {
        margin-bottom: 5px !important;
        color: #4c5664 !important;
        font-size: 10.5px !important;
        font-weight: 700;
    }

    .cvperu-oculto {
        display: none !important;
    }

    @media (max-width: 1050px) {
        .cvperu-layout {
            grid-template-columns: 1fr;
        }

        .cvperu-vista-contenedor {
            position: static;
        }

        .cvperu-preview {
            max-width: 760px;
            margin: 0 auto;
        }
    }

    @media (max-width: 620px) {
        .cvperu-app {
            margin: 15px auto;
        }

        .cvperu-encabezado {
            padding: 24px 17px;
            border-radius: 15px;
        }

        .cvperu-seccion {
            padding: 18px 14px;
            border-radius: 13px;
        }

        .cvperu-grid {
            grid-template-columns: 1fr;
        }

        .cvperu-completo {
            grid-column: auto;
        }

        .cvperu-preview {
            min-height: auto;
            padding: 27px 21px;
        }

        .cvperu-cv-cabecera .cvperu-prev-nombre {
            font-size: 23px;
        }

        .cvperu-acciones {
            grid-template-columns: 1fr;
            padding: 14px;
        }
    }

    .cvperu-app .cvperu-pdf-listo{margin-top:12px;padding:14px;background:#f0f5fb;border:1px solid #c3cfdf;border-radius:10px}
    .cvperu-app .cvperu-pdf-listo[hidden]{display:none!important}
    .cvperu-app .cvperu-pdf-listo a{display:inline-block;margin:4px 8px 4px 0;padding:12px 16px;background:var(--cv-azul,#102747);color:#fff!important;border-radius:8px;font-size:14px;font-weight:700;text-decoration:none}
    .cvperu-app .cvperu-pdf-estado{font-size:13px;line-height:1.5;color:#434a54;margin:12px 0}
    .cvperu-app .cvperu-descargar:disabled{opacity:.65;cursor:wait}
    .cvperu-app .cvperu-pdf-listo a:focus-visible{outline:3px solid #be1830;outline-offset:3px}
    
.cvperu-app .cvperu-inicio-estado[hidden]{display:none!important}
