/* -------------------   FICHAS LANZADERA   --------------------------  */
[id^="ficha"][id$="_preloader"] + .container-fluid > .card {
    border: 1px solid #dbe5ef;
    border-radius: 18px;
    box-shadow: 0 14px 36px rgba(15, 23, 42, 0.06);
    overflow: hidden;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal {
    background: linear-gradient(180deg, #fbfdff 0%, #f8fbfe 100%);
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body {
    padding: 22px 20px 18px;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card:not(.fichacuenta-card) > form.form-horizontal > .card-body {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 18px;
    align-items: start;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card:not(.fichacuenta-card) > form.form-horizontal > .card-body.ficha-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Tarifa por empresa: el contenido forma bandas completas y los campos se
   alinean por responsabilidad. Evita que la rejilla genérica comprima el
   formulario en una sola columna lateral. */
#fichatarifa_preloader + .container-fluid > .card > form.form-horizontal > .fichatarifa-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
}

.fichatarifa-aviso,
.fichatarifa-grid,
.fichatarifa-tramos-card {
    min-width: 0;
}

.fichatarifa-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 12px 14px;
    align-items: stretch;
}

.fichatarifa-grid > .form-group.row {
    min-width: 0;
    margin: 0;
    padding: 12px;
    border: 1px solid #e2eaf2;
    border-radius: 12px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.03);
}

#fichatarifa_preloader + .container-fluid .fichatarifa-grid > .form-group.row:nth-child(-n+3) {
    grid-column: span 4;
}

#fichatarifa_preloader + .container-fluid .fichatarifa-grid > .form-group.row:nth-child(4),
#fichatarifa_preloader + .container-fluid .fichatarifa-grid > .form-group.row:nth-child(5) {
    grid-column: span 6;
}

#fichatarifa_preloader + .container-fluid .fichatarifa-grid > .form-group.row:nth-child(n+6) {
    grid-column: span 3;
}

.fichatarifa-grid .control-label {
    min-height: 29px;
}

.fichatarifa-tramos-card {
    margin: 0 !important;
}

.fichatarifa-acciones-tramos {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.fichatarifa-simulacion {
    max-height: min(68vh, 720px);
    overflow-y: auto;
    padding: 2px 4px;
    text-align: left;
}

.fichatarifa-simulacion-banda {
    margin-bottom: 12px;
    padding: 12px;
    border: 1px solid #dce7f3;
    border-radius: 12px;
    background: #fbfdff;
}

.fichatarifa-simulacion-banda:last-child {
    margin-bottom: 0;
}

.fichatarifa-simulacion-banda h4 {
    margin: 0 0 5px;
    color: #173f73;
    font-size: 16px;
}

.fichatarifa-simulacion-base {
    margin-bottom: 8px;
    color: #365574;
    font-size: 13px;
}

.fichatarifa-simulacion .table {
    margin-bottom: 4px;
}

.fichatarifa-simulacion .table th,
.fichatarifa-simulacion .table td {
    vertical-align: middle;
}

.fichatarifa-simulacion-tabs {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid #dce7f3;
}

.fichatarifa-simulacion-tabs button {
    min-height: 40px;
    padding: 8px 14px;
    border: 1px solid #cbdcf0;
    border-radius: 8px;
    background: #ffffff;
    color: #315679;
    font-weight: 600;
    cursor: pointer;
}

.fichatarifa-simulacion-tabs button.active {
    border-color: #347fd1;
    background: #347fd1;
    color: #ffffff;
}

.fichatarifa-calculadora {
    padding: 4px 2px;
}

.fichatarifa-calculadora-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
    align-items: end;
    gap: 12px;
    padding: 14px;
    border: 1px solid #dce7f3;
    border-radius: 12px;
    background: #fbfdff;
}

.fichatarifa-calculadora-form label {
    display: block;
    margin-bottom: 5px;
    color: #173f73;
    font-weight: 600;
}

.fichatarifa-calculadora-form .btn {
    min-height: 38px;
}

.fichatarifa-calculadora-form-empresa {
    grid-template-columns: minmax(150px, 0.35fr) minmax(0, 1fr) auto;
}

.fichatarifa-calculadora-usuarios > span {
    display: block;
    margin-bottom: 5px;
    color: #173f73;
    font-weight: 600;
}

.fichatarifa-calculadora-usuarios-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(125px, 1fr));
    gap: 8px;
}

.fichatarifa-calculadora-usuarios-grid label {
    margin: 0;
}

.fichatarifa-calculadora-usuarios-grid label > span {
    display: block;
    margin-bottom: 3px;
    color: #607a95;
    font-size: 12px;
    font-weight: 600;
}

.fichatarifa-calculadora-ayuda {
    margin: 8px 2px 0;
    color: #607a95;
    font-size: 13px;
}

.fichatarifa-calculadora-resultado {
    margin-top: 12px;
}

.fichatarifa-calculadora-resultado > p {
    margin: 0;
    padding: 18px;
    border: 1px dashed #cbdcf0;
    border-radius: 12px;
    color: #607a95;
    text-align: center;
}

.fichatarifa-calculadora-cabecera {
    display: grid;
    gap: 2px;
    padding: 12px 14px;
    border: 1px solid #cfe0f3;
    border-radius: 12px 12px 0 0;
    background: #eef6ff;
    color: #173f73;
}

.fichatarifa-calculadora-cabecera > span,
.fichatarifa-calculadora-cabecera > small {
    color: #607a95;
}

.fichatarifa-calculadora-desglose {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border: 1px solid #dce7f3;
    border-top: 0;
    border-radius: 0 0 12px 12px;
    overflow: hidden;
}

.fichatarifa-calculadora-desglose > span {
    display: grid;
    gap: 3px;
    padding: 14px;
    border-right: 1px solid #e4edf6;
    color: #607a95;
}

.fichatarifa-calculadora-desglose > span:last-child {
    border-right: 0;
}

.fichatarifa-calculadora-desglose strong {
    color: #173f73;
    font-size: 17px;
}

.fichatarifa-calculadora-desglose small {
    color: #607a95;
}

.fichatarifa-calculadora-desglose .fichatarifa-calculadora-total {
    background: #eaf8f4;
}

.fichatarifa-calculadora-desglose .fichatarifa-calculadora-total strong {
    color: #087f6d;
}

.fichatarifa-calculadora-tabla {
    border: 1px solid #dce7f3;
    border-top: 0;
    border-radius: 0 0 12px 12px;
}

.fichatarifa-calculadora-tabla .table {
    min-width: 660px;
    margin: 0;
}

.fichatarifa-calculadora-tabla th,
.fichatarifa-calculadora-tabla td {
    padding: 9px 10px;
    vertical-align: middle;
    white-space: nowrap;
}

.fichatarifa-calculadora-tabla thead th {
    border-top: 0;
    color: #173f73;
}

.fichatarifa-calculadora-tabla .fichatarifa-calculadora-desglose-titulo {
    color: #607a95;
    text-align: center;
}

.fichatarifa-calculadora-tabla .fichatarifa-calculadora-total-empresa {
    color: #173f73;
    background: #f6fbff;
}

.fichatarifa-calculadora-tabla tfoot {
    background: #eaf8f4;
    color: #087f6d;
}

@media (max-width: 767.98px) {
    #fichatarifa_preloader + .container-fluid .fichatarifa-grid > .form-group.row:nth-child(n) {
        grid-column: span 6;
    }
}

@media (max-width: 575.98px) {
    .fichatarifa-grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    #fichatarifa_preloader + .container-fluid .fichatarifa-grid > .form-group.row:nth-child(n) {
        grid-column: 1;
    }

    .fichatarifa-grid .control-label {
        min-height: 0;
    }

    #fichatarifa_preloader + .container-fluid > .card > form.form-horizontal > .fichatarifa-body {
        gap: 10px;
    }

    .fichatarifa-simulacion-tabs {
        flex-wrap: wrap;
    }

    .fichatarifa-simulacion-tabs button {
        min-height: 44px;
        flex: 1 1 0;
    }

    .fichatarifa-calculadora-form,
    .fichatarifa-calculadora-desglose {
        grid-template-columns: minmax(0, 1fr);
    }

    .fichatarifa-calculadora-usuarios-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fichatarifa-calculadora-form .btn {
        min-height: 44px;
    }

    .fichatarifa-calculadora-desglose > span {
        border-right: 0;
        border-bottom: 1px solid #e4edf6;
    }

    .fichatarifa-calculadora-desglose > span:last-child {
        border-bottom: 0;
    }
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body > .form-group.row {
    margin: 0;
    padding: 14px 14px 12px;
    border: 1px solid #e2eaf2;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.03);
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .control-label {
    margin-bottom: 8px;
    color: #425b72;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .form-control,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card .select2-container--classic .select2-selection--single,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card .select2-container--default .select2-selection--single {
    border: 1px solid #ccd8e6;
    border-radius: 10px;
    box-shadow: none;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .form-control {
    min-height: 38px;
    font-size: 14px;
    color: #334e68;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .form-group.row .col-sm-12,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card .form-group.row .col-md-12,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card .form-group.row .col-sm-6,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card .form-group.row .col-sm-4,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card .form-group.row .col-sm-3 {
    padding-left: 0;
    padding-right: 0;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .custom-switch {
    min-height: 38px;
    display: flex;
    align-items: center;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .custom-control-label {
    color: #3f576d;
    font-size: 13px;
    line-height: 1.45;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .custom-file-label,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card .custom-file-label::after {
    border-radius: 10px;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .chat-box,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card [id$="_divmensaje"],
[id^="ficha"][id$="_preloader"] + .container-fluid > .card [id$="_divcerrado"],
[id^="ficha"][id$="_preloader"] + .container-fluid > .card [id$="_divdom"],
[id^="ficha"][id$="_preloader"] + .container-fluid > .card [id$="_divusuario"],
[id^="ficha"][id$="_preloader"] + .container-fluid > .card [id$="_divvisibilidad"],
[id^="ficha"][id$="_preloader"] + .container-fluid > .card .form-group.row:last-of-type {
    grid-column: 1 / -1;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasolucion_divvisibilidad,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasolucion_divvisibilidad + .form-group.row,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasolucion_divvisibilidad + .form-group.row + .form-group.row,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasuscripciones_divusuario,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichamensajeria_divremitente,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichamensajeria_divprogramacion,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_divusuarioasignado {
    grid-column: 1 / -1;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .chat-box {
    margin: 0;
    padding: 14px;
    border: 1px solid #e2eaf2;
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #f9fcff 100%);
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.03);
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card [id$="_divmensaje"] {
    margin: 0;
    padding: 16px !important;
    border: 1px solid #dce8f3;
    border-radius: 16px;
    background: #fbfdff;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card [id$="_divmensaje"] .row {
    margin-left: 0;
    margin-right: 0;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card [id$="_divmensaje"] .col-12 {
    padding-left: 0;
    padding-right: 0;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card [id$="_divmensaje"] textarea.form-control {
    min-height: 110px;
    border-radius: 12px;
    resize: vertical;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card [id$="_divmensaje"] .btn-block {
    min-height: 44px;
    border-radius: 12px;
    font-weight: 700;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_btnCerrar,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_btnAsignar,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichamensajeria_btnQuitarProgramacion {
    min-height: 40px;
    padding: 0 16px;
    border-radius: 999px;
    font-weight: 700;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasolucion_divvisibilidad .select2-container,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasuscripciones_divusuario .select2-container {
    width: 100% !important;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasolucion_divvisibilidad .select2-selection--multiple,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasuscripciones_divusuario .select2-selection--multiple {
    min-height: 42px !important;
    border: 1px solid #ccd8e6;
    border-radius: 12px;
    padding: 4px 6px;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasolucion_txtdeschtml,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card .tox-tinymce {
    border-radius: 14px;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasolucion_divvisibilidad + .form-group.row .card,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasolucion_divvisibilidad + .form-group.row + .form-group.row {
    margin-bottom: 0;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasolucion_divvisibilidad + .form-group.row + .form-group.row {
    padding: 16px;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasolucion_divvisibilidad + .form-group.row + .form-group.row > .col-sm-4 {
    padding-left: 8px;
    padding-right: 8px;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasolucion_divvisibilidad + .form-group.row + .form-group.row img {
    display: block;
    margin-bottom: 12px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasolucion_divvisibilidad + .form-group.row + .form-group.row .custom-file {
    margin-top: 6px;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_divcerrado {
    padding: 16px 18px;
    border: 1px solid #ffd5c4;
    border-radius: 16px;
    background: #fff4ef;
    line-height: 1.5;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_tabtop,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_txtnticket,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_divusuarioasignado,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_divusuarioasignado + .form-group.row {
    position: relative;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_txtnticket,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_divusuarioasignado {
    padding: 16px 16px 14px;
    border: 1px solid #d8e3ef;
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_txtnticket {
    grid-column: 1 / 2;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_divusuarioasignado {
    grid-column: 2 / 3;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_txtnticket .col-sm-3,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_divusuarioasignado .col-sm-3,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_divusuarioasignado .col-sm-6 {
    padding-left: 0;
    padding-right: 0;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_txtnticket .col-sm-3,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_divusuarioasignado .col-sm-3 {
    display: flex;
    align-items: end;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_txtnticket .form-control {
    max-width: 122px;
    font-size: 18px;
    font-weight: 700;
    text-align: center;
    background: linear-gradient(180deg, #f7fbff 0%, #eef4fa 100%);
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_divusuarioasignado .select2-container {
    width: 100% !important;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_btnCerrar,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_btnAsignar {
    min-height: 38px;
    padding: 0 16px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.01em;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.10);
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_btnCerrar {
    background: linear-gradient(135deg, #ff667a 0%, #ff3f59 100%);
    border-color: #ff5269;
    color: #ffffff;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_btnAsignar {
    background: linear-gradient(135deg, #ffd56d 0%, #ffba2f 100%);
    border-color: #ffbf40;
    color: #233243;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_btnCerrar:hover,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_btnAsignar:hover {
    transform: translateY(-1px);
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat {
    margin: 0;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat > li,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat .chat-item,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat .odd,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat .chat-left,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat .chat-right {
    margin-bottom: 10px;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat p,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat .chat-desc,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat .message,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat .mail-desc {
    margin-bottom: 0;
    padding: 7px 10px;
    border-radius: 10px;
    font-size: 13px;
    line-height: 1.35;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat small,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat .time,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat .chat-time {
    font-size: 11px;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat h5,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat h6 {
    margin-bottom: 2px;
    font-size: 13px;
    line-height: 1.25;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_ulchat img {
    width: 40px;
    height: 40px;
    object-fit: cover;
    border-radius: 999px;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_divmensaje {
    padding: 12px !important;
    background: linear-gradient(180deg, #f8fbff 0%, #f2f7fc 100%);
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_divmensaje textarea.form-control {
    min-height: 78px;
    font-size: 13px;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_aenviar {
    min-height: 36px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    background: linear-gradient(135deg, #28c7b8 0%, #11a8d8 100%);
    border: 0;
    box-shadow: 0 8px 18px rgba(17, 168, 216, 0.18);
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichaticket_divusuarioasignado + .form-group.row {
    grid-column: 1 / -1;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .form-group.row.ficha-col-full {
    grid-column: 1 / -1;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .form-group.row.ficha-col-half {
    grid-column: auto;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .form-group.row.ficha-col-third {
    grid-column: auto;
}

.fichagrupoempresa-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 18px;
    align-items: start;
}

.fichagrupoempresa-grid .fichagrupoempresa-col-half {
    grid-column: auto;
}

.fichagrupoempresa-grid .fichagrupoempresa-col-full {
    grid-column: 1 / -1;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .nav-tabs {
    margin: 0 14px;
    padding: 0 4px;
    border-bottom: 1px solid #dfe8f1;
    gap: 6px;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .nav-tabs .nav-link {
    border: 1px solid transparent;
    border-radius: 12px 12px 0 0;
    padding: 10px 16px;
    color: #4d6277;
    font-weight: 600;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .nav-tabs .nav-link.active {
    border-color: #dce7f1 #dce7f1 #ffffff;
    background: #ffffff;
    color: #1d4f8f;
    box-shadow: 0 -1px 0 #ffffff, 0 4px 12px rgba(15, 23, 42, 0.04);
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .border-top {
    border-top: 1px solid #e4edf5 !important;
    background: #fbfdff;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .border-top .card-body {
    padding: 20px;
}

[id^="ficha"][id$="_preloader"] + .container-fluid > .card .border-top .btn {
    min-height: 42px;
    padding: 0 18px;
    border-radius: 999px;
    font-weight: 700;
}

@media (max-width: 767.98px) {
    [id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body {
        padding: 16px 12px 14px;
        grid-template-columns: 1fr;
    }

    [id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body > .form-group.row {
        padding: 12px;
        border-radius: 12px;
    }

    [id^="ficha"][id$="_preloader"] + .container-fluid > .card .nav-tabs {
        margin: 0 10px;
        overflow-x: auto;
        flex-wrap: nowrap;
    }

    [id^="ficha"][id$="_preloader"] + .container-fluid > .card .nav-tabs .nav-item {
        flex: 0 0 auto;
    }

    [id^="ficha"][id$="_preloader"] + .container-fluid > .card .nav-tabs .nav-link {
        padding: 9px 12px;
        font-size: 13px;
    }

    [id^="ficha"][id$="_preloader"] + .container-fluid > .card #fichasolucion_divvisibilidad + .form-group.row + .form-group.row > .col-sm-4 {
        padding-left: 0;
        padding-right: 0;
        margin-bottom: 14px;
    }

    .fichagrupoempresa-grid {
        grid-template-columns: 1fr;
    }
}

/* -------------------   FICHA CUENTA   --------------------------  */
.fichacuenta-card {
    border: 1px solid #dbe5ef;
    border-radius: 18px;
    box-shadow: 0 14px 36px rgba(15, 23, 42, 0.06);
    overflow: visible;
}

.fichacuenta-form {
    background: linear-gradient(180deg, #fbfdff 0%, #f8fbfe 100%);
}

.fichacuenta-balancebar {
    margin: 14px 14px 8px;
    padding: 16px 18px;
    border: 1px solid #ffd57a;
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdfa 0%, #fff4d6 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
}

.fichacuenta-balancebar .text-warning.display-5 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(255, 188, 52, 0.18);
}

.fichacuenta-balancebar .text-warning.display-5 i {
    font-size: 32px;
}

.fichacuenta-balancebar .text-muted {
    display: block;
    font-size: 13px;
    color: #7a8797 !important;
}

#fichacuenta_totalsaldo {
    font-size: 20px;
    font-weight: 700;
    color: #294761;
}

.fichacuenta-balance-input,
.fichacuenta-balance-action {
    display: flex;
    align-items: center;
}

#fichacuenta_txtingreso.fichacuenta-importe,
#fichacuenta_txtingreso {
    height: 50px;
    border: 1px solid #ffcb66;
    border-radius: 12px;
    font-size: 19px;
    font-weight: 600;
    color: #3d5268;
    background: #fff;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.fichacuenta-btn-saldo,
#fichacuenta_btnRecargaSaldo {
    min-width: 190px;
    min-height: 46px;
    padding: 0 18px;
    border: 1px solid #ffbc34 !important;
    border-radius: 999px;
    background: linear-gradient(135deg, #ffcf6a 0%, #ffb82d 100%) !important;
    color: #1f2d3d !important;
    font-size: 15px;
    font-weight: 700;
    box-shadow: 0 10px 22px rgba(255, 188, 52, 0.22);
}

.fichacuenta-tabs {
    margin: 0 14px;
    padding: 0 4px;
    border-bottom: 1px solid #dfe8f1;
    gap: 6px;
}

.fichacuenta-tabs .nav-link {
    border: 1px solid transparent;
    border-radius: 12px 12px 0 0;
    padding: 10px 16px;
    color: #4d6277;
    font-weight: 600;
}

.fichacuenta-tabs .nav-link.active {
    border-color: #dce7f1 #dce7f1 #ffffff;
    background: #ffffff;
    color: #1d4f8f;
    box-shadow: 0 -1px 0 #ffffff, 0 4px 12px rgba(15, 23, 42, 0.04);
}

.fichacuenta-tabs-content {
    background: #ffffff;
    overflow: visible;
}

#fichacuenta_tabpagos,
#fichacuenta_tabpagos > .card-body,
#fichacuenta_divformapago {
    overflow: visible;
    position: relative;
    z-index: 2;
}

#fichacuenta_tabdatosgenerales .card-body,
#fichacuenta_tabfacturacion .card-body {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 18px;
    padding: 22px 20px 18px;
}

#fichacuenta_tabpagos > .card-body,
#fichacuenta_tabpagos .card-body:first-child {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 18px;
    padding: 22px 20px 18px;
}

#fichacuenta_tabdatosgenerales .form-group.row,
#fichacuenta_tabfacturacion .form-group.row,
#fichacuenta_tabpagos .form-group.row {
    margin: 0;
    padding: 14px 14px 12px;
    border: 1px solid #e2eaf2;
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    box-shadow: 0 3px 10px rgba(15, 23, 42, 0.03);
}

#fichacuenta_tabdatosgenerales .form-group.row .col-sm-12,
#fichacuenta_tabfacturacion .form-group.row .col-sm-12,
#fichacuenta_tabpagos .form-group.row .col-sm-12,
#fichacuenta_tabpagos .form-group.row .col-md-12 {
    padding: 0;
}

#fichacuenta_tabdatosgenerales .form-group.row:nth-child(5),
#fichacuenta_tabfacturacion .form-group.row:nth-child(3),
#fichacuenta_tabfacturacion .form-group.row:nth-child(7),
#fichacuenta_tabpagos #fichacuenta_divdom,
#fichacuenta_tabpagos .form-group.row:nth-child(3),
#fichacuenta_tabpagos .form-group.row:nth-child(4),
#fichacuenta_tabpagos .form-group.row:nth-child(5) {
    grid-column: 1 / -1;
}

#fichacuenta_divkeydesktop,
#fichacuenta_datoscdi {
    grid-column: 1 / -1;
}

#fichacuenta_datoscdi {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 18px;
    margin: 0;
}

#fichacuenta_datoscdi .form-group.row {
    margin: 0;
}

#fichacuenta_tabdatosgenerales .control-label,
#fichacuenta_tabfacturacion .control-label,
#fichacuenta_tabpagos .control-label {
    margin-bottom: 8px;
    color: #425b72;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}

#fichacuenta_tabdatosgenerales .form-control,
#fichacuenta_tabfacturacion .form-control,
#fichacuenta_tabpagos .form-control {
    height: 38px;
    border: 1px solid #ccd8e6;
    border-radius: 10px;
    font-size: 14px;
    color: #334e68;
    box-shadow: none;
}

#fichacuenta_tabfacturacion p {
    margin: 8px 0 0;
    color: #708195;
    font-size: 12px;
    line-height: 1.45;
}

#fichacuenta_tabdatosgenerales .custom-switch,
#fichacuenta_tabpagos .custom-switch {
    min-height: 38px;
    display: flex;
    align-items: center;
}

#fichacuenta_tabdatosgenerales .custom-control-label,
#fichacuenta_tabpagos .custom-control-label {
    color: #3f576d;
    font-size: 13px;
    line-height: 1.45;
}

#fichacuenta_divdom {
    padding: 16px !important;
    border: 1px solid #dbe6f1 !important;
    border-radius: 16px !important;
    background: linear-gradient(180deg, #fcfdff 0%, #f7fbff 100%) !important;
}

#fichacuenta_divdomautorizada .card {
    margin-bottom: 14px;
    border-radius: 14px;
    overflow: hidden;
}

#fichacuenta_divdom .form-group.row:first-of-type {
    border-color: #ffe6b0;
    background: #fff9ea;
}

#fichacuenta_btnimprimirsepa,
#fichacuenta_btnvalidariban,
#fichacuenta_btnActualizar {
    min-height: 42px;
    padding: 0 18px;
    border-radius: 999px;
    font-weight: 700;
}

#fichacuenta_btnimprimirsepa,
#fichacuenta_btnvalidariban {
    width: auto;
    max-width: 100%;
}

#fichacuenta_divkeydesktop .card {
    margin-bottom: 0;
    border-radius: 16px;
    overflow: hidden;
}

#fichacuenta_divkeydesktop .box {
    padding: 16px 18px;
}

#fichacuenta_divkeydesktop h6 {
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

#fichacuenta_divkeydesktop h1 {
    margin: 0;
    font-size: 24px;
    font-weight: 300;
}

.fichacuenta-card .border-top {
    border-top: 1px solid #e4edf5 !important;
    background: #fbfdff;
}

.fichacuenta-card .border-top .card-body {
    padding: 20px;
}

@media (max-width: 991.98px) {
    .fichacuenta-balancebar {
        margin: 12px 12px 8px;
        padding: 14px;
    }

    #fichacuenta_tabdatosgenerales .card-body,
    #fichacuenta_tabfacturacion .card-body,
    #fichacuenta_tabpagos > .card-body,
    #fichacuenta_tabpagos .card-body:first-child,
    #fichacuenta_datoscdi {
        grid-template-columns: 1fr;
    }
}

/* -------------------   CONSULTA TICKETS   --------------------------  */
.constickets-toolbar {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
    padding: 18px 20px;
    border: 1px solid #dce7f2;
    border-radius: 18px;
    background: linear-gradient(135deg, #ffffff 0%, #f5faff 100%);
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.05);
}

.constickets-toolbar-copy h3 {
    margin: 0 0 4px;
    color: #1f4e8c;
    font-size: 22px;
    font-weight: 700;
}

.constickets-toolbar-copy p {
    margin: 0;
    color: #68788b;
    font-size: 13px;
}

.constickets-toolbar-filter {
    flex: 0 0 360px;
    max-width: 360px;
}

.constickets-toolbar-filter .control-label {
    margin-bottom: 8px;
    color: #425b72;
    font-size: 12px;
    font-weight: 700;
}

.constickets-card {
    border: 1px solid #dbe5ef;
    border-radius: 18px;
    box-shadow: 0 14px 36px rgba(15, 23, 42, 0.06);
    overflow: hidden;
}

.constickets-card .card-body {
    padding: 20px 18px 14px;
}

.constickets-legend {
    display: flex;
    align-items: center;
    gap: 18px;
    margin: 0 0 12px;
    padding: 0 4px;
    color: #5f7184;
    font-size: 12px;
    font-weight: 600;
}

.constickets-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.constickets-card .table-responsive {
    border: 1px solid #e3ebf4;
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
}

.constickets-card .dataTables_wrapper {
    padding: 10px 8px 0;
}

.constickets-card .dataTables_wrapper .dt-buttons {
    margin-bottom: 10px;
}

.constickets-card .dataTables_wrapper .dataTables_filter {
    margin-bottom: 10px;
}

.constickets-card .dataTable thead th {
    font-size: 12px;
    letter-spacing: 0.01em;
}

.constickets-card .dataTable tbody td {
    padding-top: 11px;
    padding-bottom: 11px;
    vertical-align: middle;
}

.constickets-card .dataTable tbody tr.selected {
    background: linear-gradient(90deg, #dfeeff 0%, #eef6ff 100%) !important;
}

.constickets-ticket-id {
    display: inline-flex;
    min-width: 48px;
    justify-content: center;
    padding: 8px 10px;
    border-radius: 12px;
    background: linear-gradient(180deg, #eef4fb 0%, #e5edf7 100%);
    color: #2f4a61;
    font-weight: 700;
}

.constickets-estado {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding: 0;
    border-radius: 0;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    background: transparent;
}

.constickets-estado-abierto {
    color: #8a5a00;
}

.constickets-estado-contestado {
    color: #118277;
}

.constickets-estado-cerrado {
    color: #496173;
}

.constickets-dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: #c7d3df;
    box-shadow: 0 0 0 3px rgba(199, 211, 223, 0.18);
    flex: 0 0 10px;
}

.constickets-dot-abierto {
    background: #ffb72a;
    box-shadow: 0 0 0 3px rgba(255, 183, 42, 0.18);
}

.constickets-dot-contestado {
    background: #22b8aa;
    box-shadow: 0 0 0 3px rgba(34, 184, 170, 0.18);
}

.constickets-dot-cerrado {
    background: #97a8ba;
    box-shadow: 0 0 0 3px rgba(151, 168, 186, 0.18);
}

.constickets-asunto {
    color: #203244;
    font-weight: 500;
    line-height: 1.35;
}

.constickets-meta {
    color: #30485f;
    font-weight: 500;
}

@media (max-width: 991.98px) {
    .constickets-toolbar {
        flex-direction: column;
        align-items: stretch;
        padding: 16px;
    }

    .constickets-toolbar-filter {
        flex: 1 1 auto;
        max-width: none;
    }

    .constickets-legend {
        flex-wrap: wrap;
        gap: 12px 16px;
    }
}

@media (max-width: 767.98px) {
    .constickets-toolbar {
        padding: 14px;
        margin-bottom: 14px;
    }

    .constickets-toolbar-copy h3 {
        font-size: 19px;
    }

    .constickets-card .card-body {
        padding: 14px 10px 10px;
    }

    .constickets-card .dataTables_wrapper {
        padding: 8px 6px 0;
    }
}

@media (max-width: 767.98px) {
    .fichacuenta-tabs {
        margin: 0 10px;
        overflow-x: auto;
        flex-wrap: nowrap;
    }

    .fichacuenta-tabs .nav-item {
        flex: 0 0 auto;
    }

    .fichacuenta-tabs .nav-link {
        padding: 9px 12px;
        font-size: 13px;
    }

    .fichacuenta-balancebar {
        margin: 10px;
        padding: 12px;
    }

    .fichacuenta-balancebar .text-warning.display-5 {
        width: 46px;
        height: 46px;
    }

    #fichacuenta_totalsaldo {
        font-size: 18px;
    }

    #fichacuenta_txtingreso,
    #fichacuenta_txtingreso.fichacuenta-importe {
        height: 44px;
        font-size: 17px;
    }

    .fichacuenta-btn-saldo,
    #fichacuenta_btnRecargaSaldo {
        width: 100%;
        min-width: 0;
    }

    #fichacuenta_tabdatosgenerales .card-body,
    #fichacuenta_tabfacturacion .card-body,
    #fichacuenta_tabpagos > .card-body,
    #fichacuenta_tabpagos .card-body:first-child {
        padding: 16px 12px 14px;
        gap: 12px;
    }

    #fichacuenta_tabdatosgenerales .form-group.row,
    #fichacuenta_tabfacturacion .form-group.row,
    #fichacuenta_tabpagos .form-group.row,
    #fichacuenta_divdom {
        padding: 12px;
        border-radius: 12px !important;
    }
}

/* INTERFAZ LATERAL DE LANZADERA
 * Reutiliza el contrato visual estabilizado previamente en Constructor. */
/* PILOTO DE INTERFAZ CONSTRUCTOR
   Este bloque queda aislado del Cliente y de Lanzadera mediante la clase del body. */
body.cdi-constructor-pilot {
    --cdi-constructor-drawer-width: min(1640px, calc(100vw - clamp(72px, 12vw, 280px)));
}

body.cdi-constructor-pilot.cdi-persistent-chrome {
    --cdi-persistent-header-height: 46px;
    --cdi-persistent-footer-height: 38px;
}

body.cdi-constructor-pilot #main-wrapper .topbar,
body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar {
    height: 46px;
    min-height: 46px;
}

body.cdi-constructor-pilot #main-wrapper[data-layout="vertical"][data-header-position="fixed"] .page-wrapper {
    padding-top: 46px;
}

body.cdi-constructor-pilot #main-wrapper[data-layout="vertical"][data-sidebar-position="fixed"] .left-sidebar {
    padding-top: 46px;
}

body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand,
body.cdi-constructor-pilot .cdi-topbar-actions .nav-link {
    min-height: 46px;
}

body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand {
    padding-top: 0;
    padding-bottom: 0;
}

body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand .logo-icon img {
    max-width: 36px;
    max-height: 36px;
}

body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand .logo-text img {
    max-width: 156px;
    max-height: 36px;
}

body.cdi-constructor-pilot .cdi-user-trigger img {
    width: 34px;
    height: 34px;
}

body.cdi-constructor-pilot .page-wrapper > .page-breadcrumb {
    position: sticky;
    top: var(--cdi-persistent-header-height, 46px);
    z-index: 45;
    display: flex;
    min-height: 42px;
    align-items: center;
    padding: 5px 12px;
    border-bottom: 1px solid #dfe7ef;
    background: linear-gradient(135deg, #f8faff 0%, #eef4fb 100%);
    box-shadow: 0 3px 10px rgba(27, 55, 82, 0.07);
}

body.cdi-constructor-pilot .page-wrapper > .page-breadcrumb .row {
    width: 100%;
}

body.cdi-constructor-pilot #titulopagina.page-title {
    gap: 9px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: #223b55;
    font-size: 14px;
    line-height: 1.15;
    box-shadow: none;
}

body.cdi-constructor-pilot #titulopagina.page-title > i:first-child {
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: #e6effd;
    color: #2f6fca;
    font-size: 17px;
    line-height: 28px;
    text-align: center;
}

body.cdi-constructor-pilot #titulopagina.page-title [name="ElementoAyudaCdi"] {
    color: #50677e;
}

body.cdi-constructor-pilot .cdi-statusbar {
    min-height: 38px;
    gap: 12px;
    padding-right: 12px;
}

body.cdi-constructor-pilot .cdi-statusbar__brand {
    min-height: 37px;
    padding-right: 9px;
    padding-left: 9px;
}

body.cdi-constructor-pilot .cdi-statusbar__brand-icon {
    flex-basis: 32px;
    width: 32px;
    height: 36px;
}

body.cdi-constructor-pilot .cdi-statusbar__brand-icon img {
    max-width: 32px;
    max-height: 32px;
}

body.cdi-constructor-pilot .cdi-statusbar__brand-copy {
    margin-left: 6px;
}

body.cdi-constructor-pilot .cdi-statusbar__brand-logo,
body.cdi-constructor-pilot .cdi-statusbar__brand-text {
    height: 18px;
}

body.cdi-constructor-pilot .cdi-statusbar__brand-text img {
    height: 40px;
}

body.cdi-constructor-pilot .cdi-statusbar__brand-tagline {
    font-size: 8px;
    line-height: 9px;
}

body.cdi-constructor-pilot .cdi-statusbar__context {
    gap: 6px;
}

body.cdi-constructor-pilot .cdi-statusbar__context > i {
    flex-basis: 25px;
    width: 25px;
    height: 25px;
    font-size: 15px;
    line-height: 23px;
}

body.cdi-constructor-pilot .cdi-statusbar__context strong,
body.cdi-constructor-pilot .cdi-statusbar__health-copy strong {
    font-size: 10.5px;
}

body.cdi-constructor-pilot .cdi-statusbar__context small,
body.cdi-constructor-pilot .cdi-statusbar__health-copy small {
    margin-top: 0;
    font-size: 9.5px;
}

body.cdi-constructor-pilot .cdi-statusbar-action {
    width: 29px;
    height: 29px;
    border-radius: 8px;
    font-size: 17px;
}

/* El detalle de conexión usa el mismo patrón de panel lateral que el resto
   de utilidades globales y no añade otra capa modal. */
body.cdi-constructor-pilot .cdi-statusbar-panel {
    position: fixed;
    top: var(--cdi-persistent-header-height, 52px);
    right: 0;
    bottom: var(--cdi-persistent-footer-height, 38px);
    width: min(430px, calc(100vw - 72px));
    height: auto;
    max-height: none;
    border-radius: 14px 0 0 0;
    box-shadow: -14px 0 42px rgba(23, 48, 74, 0.20);
    opacity: 0;
    transform: translateX(100%);
    transition: transform 0.20s ease-out, opacity 0.16s ease-out;
}

body.cdi-constructor-pilot .cdi-statusbar-panel.is-open {
    opacity: 1;
    transform: translateX(0);
}

body.cdi-constructor-pilot .cdi-statusbar-panel__header > .cdi-constructor-utility-drawer__identity,
body.cdi-constructor-pilot .cdi-statusbar-panel__header > .cdi-constructor-utility-drawer__actions {
    flex-direction: row;
    align-items: center;
}

.cdi-constructor-utility-drawer {
    position: fixed;
    top: var(--cdi-persistent-header-height, 52px);
    right: 0;
    bottom: var(--cdi-persistent-footer-height, 38px);
    z-index: 5200;
    display: flex;
    flex-direction: column;
    width: min(680px, calc(100vw - 72px));
    overflow: hidden;
    border-left: 1px solid #d7e1eb;
    background: #ffffff;
    color: #26384a;
    box-shadow: -18px 0 48px rgba(23, 48, 74, 0.22);
    opacity: 0;
    transform: translateX(100%);
    transition: transform 0.18s ease-out, opacity 0.16s ease-out;
}

.cdi-constructor-utility-drawer.is-open {
    opacity: 1;
    transform: translateX(0);
}

.cdi-constructor-utility-drawer[hidden] {
    display: none;
}

/* Un único fondo bloqueante conserva el comportamiento modal sin acumular
   capas de gris. Siempre queda justo debajo de la última superficie abierta. */
body.cdi-constructor-pilot.cdi-constructor-layer-lock {
    overflow: hidden !important;
}

body.cdi-constructor-pilot.cdi-constructor-layer-lock > .modal-backdrop {
    display: none !important;
}

body.cdi-constructor-pilot .cdi-constructor-layer-backdrop {
    position: fixed;
    top: var(--cdi-persistent-header-height, 52px);
    right: 0;
    bottom: var(--cdi-persistent-footer-height, 38px);
    left: 0;
    display: block;
    background: rgba(24, 38, 53, 0.30);
    opacity: 0;
    pointer-events: auto;
    touch-action: none;
    transition: opacity 0.16s ease-out;
}

body.cdi-constructor-pilot .cdi-constructor-layer-backdrop.is-active {
    opacity: 1;
}

body.cdi-constructor-pilot .cdi-constructor-layer-backdrop[hidden] {
    display: none;
}

body.cdi-constructor-pilot .cdi-constructor-inert-background {
    pointer-events: none !important;
    user-select: none;
}

body.cdi-constructor-pilot.cdi-constructor-layer-lock #main-wrapper .topbar,
body.cdi-constructor-pilot.cdi-constructor-layer-lock #cdi-statusbar {
    z-index: var(--cdi-constructor-chrome-layer) !important;
}

.cdi-constructor-utility-drawer__header {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 46px;
    padding: 6px 10px 6px 12px;
    border-bottom: 1px solid #dfe7ef;
    background: linear-gradient(135deg, #f8faff 0%, #eef4fb 100%);
}

.cdi-constructor-utility-drawer__identity,
.cdi-constructor-utility-drawer__identity > span,
.cdi-constructor-utility-drawer__actions {
    display: flex;
    align-items: center;
}

.cdi-constructor-utility-drawer__identity {
    min-width: 0;
    gap: 9px;
}

.cdi-constructor-utility-drawer__identity > i {
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: #e6effd;
    color: #2f6fca;
    font-size: 17px;
    line-height: 28px;
    text-align: center;
}

.cdi-constructor-utility-drawer__identity > span {
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
}

.cdi-constructor-utility-drawer__identity strong {
    color: #223b55;
    font-size: 14px;
    line-height: 1.15;
}

.cdi-constructor-utility-drawer__identity small {
    margin-top: 2px;
    overflow: hidden;
    color: #708398;
    font-size: 10px;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cdi-constructor-utility-drawer__actions {
    gap: 6px;
}

.cdi-constructor-utility-drawer__actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 31px;
    height: 31px;
    padding: 0;
    border: 1px solid #d3dfeb;
    border-radius: 8px;
    background: #ffffff;
    color: #50677e;
    font-size: 18px;
    cursor: pointer;
}

.cdi-constructor-utility-drawer__actions button:hover,
.cdi-constructor-utility-drawer__actions button:focus {
    border-color: #9db7d0;
    background: #edf4fb;
    color: #245b91;
}

.cdi-constructor-utility-drawer__body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 10px;
    overflow: auto;
    overscroll-behavior: contain;
}

.cdi-constructor-utility-drawer__body > .container-fluid {
    padding: 0;
}

.cdi-constructor-utility-drawer__body .card {
    margin-bottom: 10px;
    box-shadow: none;
}

.cdi-constructor-utility-drawer__body .card-body {
    padding: 10px;
}

.cdi-constructor-utility-drawer__body .dataTables_wrapper {
    min-width: 560px;
}

.cdi-constructor-utility-drawer__loading,
.cdi-constructor-utility-drawer__error {
    display: flex;
    min-height: 220px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: #647b91;
}

.cdi-constructor-utility-drawer__error {
    flex-direction: column;
    text-align: center;
}

.cdi-constructor-utility-drawer__error > i {
    color: #c74751;
    font-size: 28px;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-screen-loading {
    min-height: calc(100vh - var(--cdi-persistent-header-height, 88px) - var(--cdi-persistent-footer-height, 38px) - 78px);
    flex-direction: column;
    gap: 12px;
    font-size: 14px;
    font-weight: 600;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-screen-loading > i {
    color: #2f79c8;
    font-size: 30px;
}

/* Navegación de subpantallas del Constructor.
   Cada página conserva su DOM y su estado en una pila, pero solo la actual
   permanece visible en el panel lateral. */
body.cdi-constructor-pilot .cdi-constructor-subpage-drawer {
    position: fixed;
    top: var(--cdi-persistent-header-height);
    right: 0;
    bottom: var(--cdi-persistent-footer-height);
    z-index: 5050;
    width: var(--cdi-constructor-drawer-width);
    overflow: hidden;
    border-left: 1px solid #cfdae6;
    background: #ffffff;
    box-shadow: -18px 0 52px rgba(23, 48, 74, 0.22);
    opacity: 0;
    transform: translateX(100%);
    transition: transform 0.2s ease-out, opacity 0.16s ease-out;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer.is-open {
    opacity: 1;
    transform: translateX(0);
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer.cdi-constructor-subpage-closing {
    pointer-events: none;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer.cdi-constructor-subpage-suspended {
    display: none !important;
}

body.cdi-constructor-pilot .cdi-constructor-layer-inactive {
    pointer-events: none !important;
    user-select: none;
}

body.cdi-constructor-pilot .cdi-constructor-layer-stacked {
    will-change: transform;
}


@keyframes cdi-constructor-layer-reused {
    0%, 100% {
        box-shadow: inset 0 0 0 0 rgba(45, 125, 220, 0);
    }
    45% {
        box-shadow: inset 5px 0 0 rgba(45, 125, 220, 0.78);
    }
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer.cdi-constructor-layer-reused .cdi-constructor-subpage-drawer__surface,
body.cdi-constructor-pilot .modal.cdi-constructor-layer-reused .modal-content {
    animation: cdi-constructor-layer-reused 0.5s ease-out;
}

/* Las hojas anteriores permanecen visibles como un tomo. La posición se
   calcula según el ancho de la hoja activa y se limita visualmente a 3 niveles. */
body.cdi-constructor-pilot .cdi-constructor-layer-inactive.cdi-constructor-layer-stacked {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: translateX(var(--cdi-constructor-stack-shift, -44px)) !important;
    transition: transform 0.22s ease-out, opacity 0.16s ease-out;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer.cdi-constructor-subpage-suspended.cdi-constructor-layer-stacked,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer.cdi-constructor-modal-suspended.cdi-constructor-layer-stacked {
    display: block !important;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__surface {
    display: flex;
    width: 100%;
    height: 100%;
    min-height: 0;
    flex-direction: column;
    background: #f8fbfe;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header {
    flex: 0 0 auto;
    border-bottom: 1px solid #d5e0eb;
    background: linear-gradient(135deg, #f8faff 0%, #eef4fb 100%);
    color: #26384a;
    box-shadow: 0 3px 10px rgba(27, 55, 82, 0.07);
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header .cdi-constructor-subpage-drawer__actions button {
    border: 1px solid #d3dfeb;
    background: #ffffff;
    color: #50677e;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header .cdi-constructor-subpage-drawer__actions button:hover,
body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header .cdi-constructor-subpage-drawer__actions button:focus {
    border-color: #9db7d0;
    background: #edf4fb;
    color: #245b91;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header .cdi-constructor-modal-back {
    width: auto;
    min-width: 34px;
    padding-right: 10px;
    padding-left: 10px;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 12px;
    overflow: auto;
    overscroll-behavior: contain;
}

/* Una sola superficie visible: el modal o panel anterior conserva su estado,
   pero se oculta hasta que el usuario pulse Volver. */
body.cdi-constructor-pilot .modal.cdi-constructor-modal-suspended {
    display: none !important;
}

/* Las ventanas de Constructor aprovechan el ancho disponible. La variante XL
   se reserva para pantallas completas, tablas y formularios complejos. */
body.cdi-constructor-pilot .modal .modal-dialog {
    width: min(96vw, 1720px) !important;
    max-width: min(96vw, 1720px) !important;
}

body.cdi-constructor-pilot .modal .modal-dialog.modal-xl,
body.cdi-constructor-pilot [id^="modalsubpantalla_"] > .modal-dialog {
    width: min(98vw, 1920px) !important;
    max-width: min(98vw, 1920px) !important;
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-reparented {
    z-index: 1065;
}

/* Los modales auxiliares heredados también se presentan como panel lateral.
   La clase modalbruto excluye expresamente este tratamiento. */
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer {
    top: var(--cdi-persistent-header-height);
    right: 0;
    bottom: var(--cdi-persistent-footer-height);
    left: auto;
    z-index: 5060;
    width: var(--cdi-constructor-drawer-width);
    height: auto;
    padding: 0 !important;
    overflow: hidden;
    background: transparent;
    opacity: 0;
    transform: translateX(100%);
    transition: transform 0.2s ease-out, opacity 0.16s ease-out;
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer.show,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer.in {
    opacity: 1;
    transform: translateX(0);
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-dialog,
body.cdi-constructor-pilot.modal-open .modal.cdi-constructor-modal-as-drawer .modal-dialog {
    width: 100% !important;
    max-width: none !important;
    height: 100%;
    margin: 0 !important;
    transform: none !important;
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-content,
body.cdi-constructor-pilot.modal-open .modal.cdi-constructor-modal-as-drawer .modal-content {
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    border: 0;
    border-left: 1px solid #cfdae6;
    border-radius: 12px 0 0 0;
    background: #f8fbfe;
    box-shadow: -18px 0 52px rgba(23, 48, 74, 0.22);
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header {
    border-bottom: 1px solid #dfe7ef;
    background: linear-gradient(135deg, #f8faff 0%, #eef4fb 100%);
    color: #26384a;
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header .page-title,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header h3,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header h4,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header i {
    color: #223b55;
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header .btn {
    border: 1px solid #d3dfeb;
    background: #ffffff;
    color: #50677e;
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header .btn:hover,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header .btn:focus {
    border-color: #9db7d0;
    background: #edf4fb;
    color: #245b91;
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-body {
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
}

body.cdi-constructor-pilot > .modal-backdrop.show {
    opacity: 0.22 !important;
}

body.cdi-constructor-pilot.modal-open .modal .modal-dialog {
    margin-top: 8px;
    margin-bottom: 8px;
}

body.cdi-constructor-pilot.modal-open .modal .modal-content {
    max-height: calc(100vh - var(--cdi-persistent-header-height) - var(--cdi-persistent-footer-height) - 16px);
    border-radius: 10px;
}

body.cdi-constructor-pilot .modal .modal-header,
body.cdi-constructor-pilot #cabecerahtmlmodal,
body.cdi-constructor-pilot [id$="_cabecerahtmlmodal"] {
    min-height: 46px;
    padding: 6px 10px;
}

body.cdi-constructor-pilot .modal .modal-header .page-title,
body.cdi-constructor-pilot .modal .modal-header h3,
body.cdi-constructor-pilot .modal .modal-header h4,
body.cdi-constructor-pilot #cabecerahtmlmodal .page-title,
body.cdi-constructor-pilot [id$="_cabecerahtmlmodal"] .page-title {
    font-size: 15px;
}

body.cdi-constructor-pilot .modal .modal-header .btn,
body.cdi-constructor-pilot #cabecerahtmlmodal .btn,
body.cdi-constructor-pilot [id$="_cabecerahtmlmodal"] .btn {
    min-width: 34px;
    height: 34px;
    padding: 0 10px;
}

body.cdi-constructor-pilot .cdi-constructor-modal-back {
    gap: 5px;
}

body.cdi-constructor-pilot .cdi-constructor-modal-back span {
    font-size: 11px;
    font-weight: 700;
}

@media (max-width: 767.98px) {
    body.cdi-constructor-pilot.cdi-persistent-chrome {
        --cdi-persistent-header-height: 44px;
        --cdi-persistent-footer-height: 42px;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar,
    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar {
        height: 44px;
        min-height: 44px;
    }

    body.cdi-constructor-pilot #main-wrapper[data-layout="vertical"][data-header-position="fixed"] .page-wrapper,
    body.cdi-constructor-pilot #main-wrapper[data-layout="vertical"][data-sidebar-position="fixed"] .left-sidebar {
        padding-top: 44px;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand,
    body.cdi-constructor-pilot .cdi-topbar-actions .nav-link {
        min-height: 44px;
    }

    .cdi-constructor-utility-drawer {
        width: 100vw;
    }

    body.cdi-constructor-pilot .cdi-constructor-subpage-drawer,
    body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer {
        width: 100vw;
        border-left: 0;
    }

    .cdi-constructor-utility-drawer__body {
        padding: 8px;
    }

    body.cdi-constructor-pilot .cdi-statusbar-panel {
        width: 100vw;
        border-radius: 0;
    }

    body.cdi-constructor-pilot .cdi-constructor-modal-back span {
        display: none;
    }

    body.cdi-constructor-pilot .modal .modal-dialog,
    body.cdi-constructor-pilot .modal .modal-dialog.modal-xl,
    body.cdi-constructor-pilot [id^="modalsubpantalla_"] > .modal-dialog {
        width: calc(100vw - 12px) !important;
        max-width: calc(100vw - 12px) !important;
    }
}

body.cdi-constructor-pilot {
    --cdi-constructor-drawer-left: max(0px, calc(100vw - 1640px));
    --cdi-constructor-stack-left: 0px;
    --cdi-constructor-stack-gap: 8px;
    --cdi-constructor-stack-mobile-gap: 6px;
}

body.cdi-constructor-pilot.cdi-persistent-chrome {
    --cdi-persistent-header-height: 42px;
    --cdi-persistent-footer-height: 38px;
}

body.cdi-constructor-pilot #main-wrapper .topbar,
body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar {
    height: 42px;
    min-height: 42px;
}

body.cdi-constructor-pilot #main-wrapper[data-layout="vertical"][data-header-position="fixed"] .page-wrapper {
    padding-top: 42px;
}

body.cdi-constructor-pilot #main-wrapper[data-layout="vertical"][data-sidebar-position="fixed"] .left-sidebar {
    padding-top: 42px;
}

body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand,
body.cdi-constructor-pilot .cdi-topbar-actions .nav-link {
    height: 42px;
    min-height: 42px;
}

body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand {
    padding-top: 0;
    padding-bottom: 0;
}

body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand .logo-icon img {
    max-width: 32px;
    max-height: 32px;
}

body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand .logo-text img {
    max-width: 150px;
    max-height: 32px;
}

body.cdi-constructor-pilot .cdi-user-trigger img {
    width: 30px;
    height: 30px;
}

body.cdi-constructor-pilot #main-wrapper .topbar .navbar-header {
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
}

body.cdi-constructor-pilot #main-wrapper .topbar .navbar-collapse,
body.cdi-constructor-pilot #main-wrapper .topbar .navbar-nav.mr-auto {
    min-width: 0;
}

body.cdi-constructor-pilot #main-wrapper .topbar .navbar-nav.mr-auto {
    overflow: hidden;
}

@media (min-width: 768px) {
    body.cdi-constructor-pilot #main-wrapper .topbar .navbar-collapse,
    body.cdi-constructor-pilot #main-wrapper .topbar .navbar-nav {
        height: 42px;
        min-height: 42px;
        align-items: center;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-nav > .nav-item > .nav-link {
        height: 42px;
        min-height: 42px;
        line-height: 42px;
    }
}

/* Áreas de trabajo del piloto. En el pie solo quedan el selector y el botón
   de nueva área; las pestañas individuales se consultan en el desplegable. */
body.cdi-constructor-pilot .cdi-constructor-workspaces {
    position: relative;
    display: flex;
    min-width: 0;
    max-width: none;
    align-items: center;
    justify-self: end;
    gap: 5px;
    padding: 0;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__item {
    display: inline-flex;
    min-width: 0;
    flex: 0 0 auto;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.10);
    overflow: hidden;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__item.is-active {
    border-color: rgba(255, 255, 255, 0.72);
    background: rgba(255, 255, 255, 0.22);
    box-shadow: inset 0 -2px 0 #ffffff;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces[hidden] {
    display: none !important;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__list {
    display: none;
    min-width: 0;
    align-items: center;
    gap: 4px;
    overflow-x: auto;
    scrollbar-width: none;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__list::-webkit-scrollbar {
    display: none;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__tab,
body.cdi-constructor-pilot .cdi-constructor-workspaces__new,
body.cdi-constructor-pilot .cdi-constructor-workspaces__all,
body.cdi-constructor-pilot .cdi-constructor-workspaces__close {
    display: inline-flex;
    height: 30px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #ffffff;
    cursor: pointer;
    transition: background 0.16s ease, border-color 0.16s ease, transform 0.16s ease;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__tab {
    max-width: 210px;
    padding: 0 8px;
    font-size: 11px;
    font-weight: 600;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__tab > em {
    color: rgba(255, 255, 255, 0.72);
    font-size: 8px;
    font-style: normal;
    font-weight: 700;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__tab > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__tab > small {
    display: inline-flex;
    min-width: 18px;
    height: 18px;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.18);
    color: inherit;
    font-size: 9px;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__tab:hover,
body.cdi-constructor-pilot .cdi-constructor-workspaces__new:hover,
body.cdi-constructor-pilot .cdi-constructor-workspaces__all:hover,
body.cdi-constructor-pilot .cdi-constructor-workspaces__close:hover,
body.cdi-constructor-pilot .cdi-constructor-workspaces__tab.is-active {
    background: rgba(255, 255, 255, 0.22);
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__tab.is-active {
    background: transparent;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__new {
    width: 32px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.10);
    font-size: 18px;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__all {
    min-width: 46px;
    padding: 0 7px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.10);
    font-size: 15px;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__all > span {
    font-size: 10px;
    font-weight: 700;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__all-label {
    white-space: nowrap;
    font-size: 10.5px;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__all-count {
    display: inline-flex;
    min-width: 18px;
    height: 18px;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    border-radius: 9px;
    background: #edf3f8;
    color: #315f8c;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__new-cancel {
    display: inline-flex;
    width: 29px;
    height: 29px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid #d7b659;
    border-radius: 9px;
    background: #fff8df;
    color: #76520a;
    cursor: pointer;
    font-size: 16px;
    transition: border-color 0.16s ease, background 0.16s ease, color 0.16s ease;
}

/* Presentación del preloader; su apertura y cierre siguen dependiendo de la
   lógica original de Lanzadera. */
body.cdi-lanzadera-pilot .preloader {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f4f8fc;
}

body.cdi-lanzadera-pilot .cdi-app-global-loading {
	display: flex;
	width: min(320px, calc(100vw - 40px));
	align-items: center;
	flex-direction: column;
	padding: 30px 24px;
	color: #183b5b;
	text-align: center;
}

body.cdi-lanzadera-pilot .cdi-app-global-loading__brand {
	display: flex;
	width: 58px;
	height: 58px;
	align-items: center;
	justify-content: center;
	margin-bottom: 18px;
	border: 1px solid #d7e5f2;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(38, 83, 123, .13);
}

body.cdi-lanzadera-pilot .cdi-app-global-loading__brand img {
	max-width: 44px;
	max-height: 44px;
}

body.cdi-lanzadera-pilot .cdi-app-global-loading__spinner {
	width: 34px;
	height: 34px;
	margin-bottom: 16px;
	border: 4px solid rgba(47, 121, 200, .18);
	border-top-color: #2f79c8;
	border-radius: 50%;
	animation: cdi-lanzadera-global-spin .85s linear infinite;
}

body.cdi-lanzadera-pilot .cdi-app-global-loading strong {
	font-size: 16px;
	line-height: 1.3;
}

body.cdi-lanzadera-pilot .cdi-app-global-loading small {
	margin-top: 5px;
	color: #6e8296;
	font-size: 12px;
}

@keyframes cdi-lanzadera-global-spin {
	to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
	body.cdi-lanzadera-pilot .cdi-app-global-loading__spinner {
		animation-duration: 1.8s;
	}
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__new-cancel:hover {
    border-color: #c79a29;
    background: #ffefb8;
    color: #674400;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__new-cancel[hidden] {
    display: none !important;
}

body.cdi-constructor-pilot #main-wrapper .left-sidebar .cdi-workspace-menu-glint {
    position: absolute;
    inset: 0;
    z-index: 12;
    display: block;
    overflow: hidden;
    pointer-events: none;
    opacity: 0;
}

body.cdi-constructor-pilot #main-wrapper .left-sidebar .cdi-workspace-menu-glint::before {
    position: absolute;
    top: 0;
    right: -8%;
    left: -8%;
    height: 54%;
    background: linear-gradient(180deg, transparent 0%, rgba(255, 181, 0, 0.015) 14%, rgba(255, 191, 0, 0.05) 36%, rgba(255, 201, 18, 0.12) 58%, rgba(255, 214, 48, 0.28) 77%, rgba(255, 252, 220, 0.96) 91%, rgba(255, 190, 0, 0.62) 96%, transparent 100%);
    box-shadow: 0 -18px 34px rgba(255, 185, 0, 0.14), 0 6px 22px rgba(255, 204, 30, 0.34);
    content: "";
    filter: blur(0.45px);
    transform: translateY(-115%) skewY(-1.5deg);
}

body.cdi-constructor-pilot #main-wrapper .left-sidebar .cdi-workspace-menu-glint.is-active {
    opacity: 1;
}

body.cdi-constructor-pilot #main-wrapper .left-sidebar .cdi-workspace-menu-glint.is-active::before {
    animation: cdi-workspace-menu-glint 2.05s cubic-bezier(0.24, 0.48, 0.30, 1) both;
}

@keyframes cdi-workspace-menu-glint {
    0% { opacity: 0; filter: brightness(1.24) blur(0.45px); transform: translateY(-115%) skewY(-1.5deg); }
    8% { opacity: 1; filter: brightness(1.20) blur(0.45px); }
    38% { opacity: 0.88; filter: brightness(1.12) blur(0.52px); }
    70% { opacity: 0.60; filter: brightness(1.03) blur(0.64px); }
    88% { opacity: 0.32; filter: brightness(0.97) blur(0.78px); }
    100% { opacity: 0; filter: brightness(0.92) blur(0.95px); transform: translateY(300%) skewY(-1.5deg); }
}

body.cdi-constructor-pilot.cdi-workspace-transitioning #main-wrapper .page-wrapper {
    perspective: 1400px;
    perspective-origin: 50% 46%;
}

body.cdi-constructor-pilot.cdi-workspace-transitioning #main-wrapper .page-breadcrumb,
body.cdi-constructor-pilot.cdi-workspace-transitioning #panelcentral {
    transform-style: preserve-3d;
    transform-origin: left center;
    backface-visibility: hidden;
    will-change: transform, opacity, filter;
}

body.cdi-constructor-pilot.cdi-workspace-transitioning #main-wrapper .left-sidebar,
body.cdi-constructor-pilot.cdi-workspace-transitioning .cdi-constructor-workspaces,
body.cdi-constructor-pilot.cdi-workspace-transitioning .cdi-constructor-workspaces-panel {
    pointer-events: none !important;
}

body.cdi-constructor-pilot.cdi-workspace-cube-out #main-wrapper .page-breadcrumb,
body.cdi-constructor-pilot.cdi-workspace-cube-out #panelcentral {
    animation: cdi-workspace-cube-out 0.26s cubic-bezier(0.55, 0.06, 0.68, 0.19) both;
}

body.cdi-constructor-pilot.cdi-workspace-cube-in #main-wrapper .page-breadcrumb,
body.cdi-constructor-pilot.cdi-workspace-cube-in #panelcentral {
    animation: cdi-workspace-cube-in 0.36s cubic-bezier(0.18, 0.76, 0.24, 1) both;
}

@keyframes cdi-workspace-cube-out {
    0% { opacity: 1; filter: brightness(1); transform: rotateY(0deg) scale(1); }
    55% { filter: brightness(1.08); }
    100% { opacity: 0.16; filter: brightness(0.82); transform: rotateY(-88deg) scale(0.965); }
}

@keyframes cdi-workspace-cube-in {
    0% { opacity: 0.16; filter: brightness(0.86); transform: rotateY(88deg) scale(0.965); }
    58% { filter: brightness(1.07); }
    100% { opacity: 1; filter: brightness(1); transform: rotateY(0deg) scale(1); }
}

body.cdi-constructor-pilot.cdi-workspace-shatter-out #main-wrapper .page-breadcrumb,
body.cdi-constructor-pilot.cdi-workspace-shatter-out #panelcentral {
    animation: cdi-workspace-screen-shatter 0.68s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
}

body.cdi-constructor-pilot.cdi-workspace-shatter-out #panelcentral {
    position: relative;
    isolation: isolate;
}

body.cdi-constructor-pilot.cdi-workspace-shatter-out #panelcentral::after {
    position: absolute;
    inset: 0;
    z-index: 25;
    background:
        linear-gradient(64deg, transparent 49.45%, rgba(255, 255, 255, 0.96) 49.8%, rgba(77, 113, 145, 0.62) 50.15%, transparent 50.55%),
        linear-gradient(112deg, transparent 47.9%, rgba(255, 255, 255, 0.92) 48.25%, rgba(77, 113, 145, 0.58) 48.6%, transparent 49%),
        linear-gradient(24deg, transparent 55.4%, rgba(255, 255, 255, 0.88) 55.7%, rgba(77, 113, 145, 0.52) 56%, transparent 56.35%),
        linear-gradient(148deg, transparent 62%, rgba(255, 255, 255, 0.82) 62.3%, rgba(77, 113, 145, 0.48) 62.6%, transparent 63%);
    content: "";
    pointer-events: none;
    transform-origin: 52% 47%;
    animation: cdi-workspace-cracks 0.68s ease-out both;
}

@keyframes cdi-workspace-screen-shatter {
    0% {
        opacity: 1;
        filter: brightness(1);
        clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
        transform: translate3d(0, 0, 0) scale(1);
    }
    22% {
        filter: brightness(1.18) contrast(1.06);
        transform: translate3d(-3px, 1px, 0) scale(1.003);
    }
    34% { transform: translate3d(4px, -2px, 0) scale(0.998); }
    48% {
        opacity: 0.9;
        clip-path: polygon(0 0, 48% 0, 51% 5%, 100% 0, 100% 43%, 96% 48%, 100% 54%, 100% 100%, 56% 100%, 51% 95%, 45% 100%, 0 100%, 0 59%, 4% 54%, 0 47%);
        transform: translate3d(-4px, 3px, 0) scale(0.985);
    }
    100% {
        opacity: 0;
        filter: brightness(1.28) blur(1.2px);
        clip-path: polygon(0 3%, 45% 0, 51% 8%, 100% 1%, 98% 40%, 91% 49%, 100% 61%, 97% 97%, 59% 100%, 50% 89%, 40% 100%, 2% 96%, 0 65%, 9% 54%, 0 42%);
        transform: translate3d(0, 18px, 0) scale(0.93) rotateZ(-0.7deg);
    }
}

@keyframes cdi-workspace-cracks {
    0%, 16% { opacity: 0; transform: scale(0.18); }
    28% { opacity: 1; transform: scale(1); }
    62% { opacity: 0.92; transform: scale(1.04); }
    100% { opacity: 0; transform: scale(1.18); }
}


body.cdi-constructor-pilot.cdi-workspace-area-wipe #main-wrapper .page-breadcrumb,
body.cdi-constructor-pilot.cdi-workspace-area-wipe #panelcentral {
    animation: cdi-workspace-area-wipe 0.46s cubic-bezier(0.55, 0.06, 0.68, 0.19) both;
}

@keyframes cdi-workspace-area-wipe {
    0% {
        opacity: 1;
        clip-path: inset(0 0 0 0);
        filter: blur(0);
        transform: translateX(0);
    }
    72% {
        opacity: 0.92;
        clip-path: inset(0 0 0 72%);
        filter: blur(0.2px);
        transform: translateX(8px);
    }
    100% {
        opacity: 0;
        clip-path: inset(0 0 0 100%);
        filter: blur(0.8px);
        transform: translateX(18px);
    }
}

body.cdi-constructor-pilot .cdi-workspace-is-erasing {
    pointer-events: none !important;
    animation: cdi-workspace-row-wipe 0.44s cubic-bezier(0.55, 0.06, 0.68, 0.19) both;
}

@keyframes cdi-workspace-row-wipe {
    0% { opacity: 1; clip-path: inset(0 0 0 0); transform: translateX(0); }
    100% { opacity: 0; clip-path: inset(0 0 0 100%); transform: translateX(12px); }
}

body.cdi-constructor-pilot .cdi-workspace-closeall-stage {
    position: fixed;
    z-index: 8900;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    border: 1px solid rgba(97, 128, 160, 0.26);
    background: rgba(244, 248, 252, 0.97);
    box-shadow: 0 18px 48px rgba(23, 48, 76, 0.22);
    opacity: 0;
    pointer-events: auto;
    transform: scale(0.985);
    transition: opacity 0.18s ease, transform 0.18s ease;
    backdrop-filter: blur(5px);
}

body.cdi-constructor-pilot .cdi-workspace-closeall-stage.is-visible {
    opacity: 1;
    transform: scale(1);
}

body.cdi-constructor-pilot .cdi-workspace-closeall-stage.is-finished {
    opacity: 0;
    transform: scale(0.99);
}

body.cdi-constructor-pilot .cdi-workspace-closeall-stage__title {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    flex: 0 0 auto;
    min-height: 46px;
    padding: 8px 16px;
    border-bottom: 1px solid rgba(99, 130, 161, 0.20);
    background: rgba(255, 255, 255, 0.88);
    color: #183b60;
}

body.cdi-constructor-pilot .cdi-workspace-closeall-stage__title > i {
    color: #2c76cf;
    font-size: 21px;
}

body.cdi-constructor-pilot .cdi-workspace-closeall-stage__title > strong {
    overflow: hidden;
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.cdi-constructor-pilot .cdi-workspace-closeall-stage__title > small {
    color: #71859a;
    font-size: 11px;
    font-weight: 700;
}

body.cdi-constructor-pilot .cdi-workspace-closeall-stage__grid {
    display: grid;
    align-items: stretch;
    min-height: 0;
    padding: clamp(10px, 1.6vw, 22px);
    gap: clamp(8px, 1.2vw, 16px);
}

body.cdi-constructor-pilot .cdi-workspace-closeall-miniature {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    border: 1px solid rgba(83, 122, 160, 0.30);
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(36, 71, 105, 0.16);
    clip-path: inset(0 0 0 0);
}

body.cdi-constructor-pilot .cdi-workspace-closeall-miniature > header {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    min-height: 32px;
    padding: 5px 9px;
    border-bottom: 1px solid rgba(84, 121, 157, 0.18);
    background: #f7faff;
    color: #173a5e;
}

body.cdi-constructor-pilot .cdi-workspace-closeall-miniature > header > i {
    color: #2d78cf;
    font-size: 16px;
}

body.cdi-constructor-pilot .cdi-workspace-closeall-miniature > header > strong {
    overflow: hidden;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.cdi-constructor-pilot .cdi-workspace-closeall-miniature > header > small {
    color: #77899c;
    font-size: 9px;
    font-weight: 800;
}

body.cdi-constructor-pilot .cdi-workspace-closeall-miniature__viewport {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    background: linear-gradient(145deg, #ffffff, #edf4fb);
}

body.cdi-constructor-pilot .cdi-workspace-closeall-miniature__surface {
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
    opacity: 0.88;
    filter: saturate(0.76) contrast(0.96);
    pointer-events: none !important;
    transform-origin: top left;
    user-select: none;
}

body.cdi-constructor-pilot .cdi-workspace-closeall-miniature::after {
    position: absolute;
    inset: 0;
    z-index: 5;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.96) 58%, rgba(202, 224, 245, 0.72));
    content: "";
    opacity: 0;
    pointer-events: none;
    transform: translateX(-110%);
}

body.cdi-constructor-pilot .cdi-workspace-closeall-stage.is-erasing .cdi-workspace-closeall-miniature {
    animation-name: cdi-workspace-miniature-wipe;
    animation-duration: 0.5s;
    animation-timing-function: cubic-bezier(0.55, 0.06, 0.68, 0.19);
    animation-fill-mode: both;
}

body.cdi-constructor-pilot .cdi-workspace-closeall-stage.is-erasing .cdi-workspace-closeall-miniature::after {
    animation: cdi-workspace-miniature-edge 0.5s cubic-bezier(0.55, 0.06, 0.68, 0.19) both;
    animation-delay: inherit;
}

@keyframes cdi-workspace-miniature-wipe {
    0% { opacity: 1; clip-path: inset(0 0 0 0); transform: translateX(0) scale(1); }
    76% { opacity: 0.94; clip-path: inset(0 0 0 76%); transform: translateX(7px) scale(0.985); }
    100% { opacity: 0; clip-path: inset(0 0 0 100%); transform: translateX(14px) scale(0.97); }
}

@keyframes cdi-workspace-miniature-edge {
    0% { opacity: 0; transform: translateX(-110%); }
    18% { opacity: 0.84; }
    100% { opacity: 0; transform: translateX(110%); }
}
@media (prefers-reduced-motion: reduce) {
    body.cdi-constructor-pilot.cdi-workspace-transitioning #main-wrapper .page-breadcrumb,
    body.cdi-constructor-pilot.cdi-workspace-transitioning #panelcentral {
        animation: none !important;
        transform: none !important;
    }
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__all.is-open {
    border-color: rgba(255, 255, 255, 0.72);
    background: rgba(255, 255, 255, 0.24);
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel {
    position: fixed;
    top: auto;
    bottom: var(--cdi-persistent-footer-height, 38px);
    z-index: 9000;
    display: flex;
    width: min(360px, calc(100vw - 20px));
    max-height: min(520px, calc(100vh - var(--cdi-persistent-header-height, 42px) - var(--cdi-persistent-footer-height, 38px) - 16px));
    flex-direction: column;
    gap: 4px;
    padding: 8px;
    overflow-y: auto;
    border: 1px solid #d4dfeb;
    border-radius: 12px 12px 0 0;
    background: #ffffff;
    box-shadow: 0 -16px 38px rgba(18, 39, 62, 0.24);
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel[hidden] {
    display: none !important;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__row {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 5px;
    border: 1px solid transparent;
    border-radius: 9px;
    background: #f5f8fb;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__row.is-active {
    border-color: #9fbde0;
    background: #eaf3fd;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__select {
    display: grid;
    min-width: 0;
    flex: 1 1 auto;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
    gap: 7px;
    padding: 7px 4px 7px 8px;
    border: 0;
    background: transparent;
    color: #29425c;
    text-align: left;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__select > i {
    color: #2f6fca;
    font-size: 17px;
    text-align: center;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__select > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 11px;
    font-weight: 700;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__select > small {
    color: #6d8297;
    font-size: 9px;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__alias,
body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__alias-save,
body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__alias-cancel,
body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__close {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    padding: 0;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #72869a;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__alias:hover,
body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__alias:focus,
body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__alias.is-set {
    background: #e2eefb;
    color: #2f6fca;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__alias-editor {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    align-items: center;
    gap: 5px;
    padding: 4px 5px;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__alias-input {
    min-width: 0;
    height: 30px;
    flex: 1 1 auto;
    padding: 4px 8px;
    border: 1px solid #86add8;
    border-radius: 7px;
    background: #ffffff;
    color: #29425c;
    font-size: 11px;
    font-weight: 700;
    outline: 0;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__alias-input:focus {
    border-color: #2f6fca;
    box-shadow: 0 0 0 2px rgba(47, 111, 202, 0.14);
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__alias-save {
    background: #e5f4ea;
    color: #248046;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__alias-cancel:hover {
    background: #edf1f5;
    color: #4f657a;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__close:hover {
    background: #f9e7e9;
    color: #b33f49;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__actions {
    position: sticky;
    bottom: -8px;
    margin: 4px -8px -8px;
    padding: 8px;
    border-top: 1px solid #dfe7ef;
    background: #ffffff;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__new-area {
    display: flex;
    width: 100%;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin-bottom: 6px;
    padding: 6px 10px;
    border: 1px solid #b7d3ee;
    border-radius: 8px;
    background: #f2f8fe;
    color: #285f96;
    font-size: 11px;
    font-weight: 700;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__new-area:hover {
    border-color: #8db8df;
    background: #e8f3fd;
    color: #174f85;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__new-area.is-cancel {
    border-color: #e3c46d;
    background: #fff8df;
    color: #7a570d;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__close-all {
    display: flex;
    width: 100%;
    min-height: 34px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 6px 10px;
    border: 1px solid #ecc8cc;
    border-radius: 8px;
    background: #fff7f8;
    color: #a83d47;
    font-size: 11px;
    font-weight: 700;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces-panel__close-all:hover {
    border-color: #dcaab0;
    background: #f9e7e9;
    color: #8f3039;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__close {
    width: 26px;
    height: 32px;
    padding: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.16);
    color: rgba(255, 255, 255, 0.78);
    font-size: 14px;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces__new.is-active {
    border-color: #ffd36b;
    background: #ffd36b;
    color: #7a4d00;
    margin-right: 7px;
    transform: rotate(45deg);
}

body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__all,
body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__new {
    height: 29px;
    border-color: #d8e2ec;
    background: #ffffff;
    color: #50667b;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__all {
    min-width: 42px;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__all:hover,
body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__new:hover,
body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__all.is-open {
    border-color: #9fb8d1;
    background: #f3f7fb;
    color: #245b91;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__all.is-selecting {
    border-color: #e0b646;
    background: #fff8df;
    color: #76520a;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__new.is-active {
    margin-right: 0;
    border-color: #e0b646;
    background: #ffd36b;
    color: #7a4d00;
    transform: none;
}

body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__new.is-active > i {
    transform: rotate(45deg);
}

body.cdi-constructor-pilot .cdi-constructor-workspaces.is-blocked {
    animation: cdi-constructor-workspaces-blocked 0.48s ease;
}

@keyframes cdi-constructor-workspaces-blocked {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    50% { transform: translateX(5px); }
    75% { transform: translateX(-3px); }
}

/* El tema oculta el desbordamiento de #main-wrapper y convierte ese elemento
   en el límite del sticky. Conservamos el recorte horizontal sin bloquear el
   eje vertical, para que la cabecera de la pantalla siga al viewport. */
body.cdi-constructor-pilot #main-wrapper {
    overflow: visible;
    overflow-x: clip;
}

body.cdi-constructor-pilot .page-wrapper > .page-breadcrumb {
    position: sticky;
    top: var(--cdi-persistent-header-height, 46px);
    z-index: 45;
    display: flex;
    min-height: 42px;
    align-items: center;
    padding: 5px 12px;
    border-bottom: 1px solid #dfe7ef;
    background: linear-gradient(135deg, #f8faff 0%, #eef4fb 100%);
    box-shadow: 0 3px 10px rgba(27, 55, 82, 0.07);
}

body.cdi-constructor-pilot .page-wrapper > .page-breadcrumb .row {
    width: 100%;
}

body.cdi-constructor-pilot #titulopagina.page-title {
    gap: 9px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: #223b55;
    font-size: 14px;
    line-height: 1.15;
    box-shadow: none;
}

body.cdi-constructor-pilot #titulopagina.page-title > i:first-child {
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: #e6effd;
    color: #2f6fca;
    font-size: 17px;
    line-height: 28px;
    text-align: center;
}

body.cdi-constructor-pilot #titulopagina.page-title [name="ElementoAyudaCdi"] {
    color: #50677e;
}

body.cdi-constructor-pilot .cdi-statusbar {
    grid-template-columns: var(--cdi-statusbar-brand-width) minmax(150px, 1fr) auto minmax(180px, auto) auto;
    min-height: 38px;
    gap: 12px;
    padding-right: 12px;
}

body.cdi-constructor-pilot .cdi-statusbar__brand {
    min-height: 37px;
    padding-right: 9px;
    padding-left: 9px;
}

body.cdi-constructor-pilot .cdi-statusbar__brand-icon {
    flex-basis: 32px;
    width: 32px;
    height: 36px;
}

body.cdi-constructor-pilot .cdi-statusbar__brand-icon img {
    max-width: 32px;
    max-height: 32px;
}

body.cdi-constructor-pilot .cdi-statusbar__brand-copy {
    margin-left: 6px;
}

body.cdi-constructor-pilot .cdi-statusbar__brand-logo,
body.cdi-constructor-pilot .cdi-statusbar__brand-text {
    height: 18px;
}

body.cdi-constructor-pilot .cdi-statusbar__brand-text img {
    height: 40px;
}

body.cdi-constructor-pilot .cdi-statusbar__brand-tagline {
    font-size: 8px;
    line-height: 9px;
}

body.cdi-constructor-pilot .cdi-statusbar__context {
    gap: 6px;
}

body.cdi-constructor-pilot .cdi-statusbar__context > i {
    flex-basis: 25px;
    width: 25px;
    height: 25px;
    font-size: 15px;
    line-height: 23px;
}

body.cdi-constructor-pilot .cdi-statusbar__context strong,
body.cdi-constructor-pilot .cdi-statusbar__health-copy strong {
    font-size: 10.5px;
}

body.cdi-constructor-pilot .cdi-statusbar__context small,
body.cdi-constructor-pilot .cdi-statusbar__health-copy small {
    margin-top: 0;
    font-size: 9.5px;
}

body.cdi-constructor-pilot .cdi-statusbar-action {
    width: 29px;
    height: 29px;
    border-radius: 8px;
    font-size: 17px;
}

@media (max-width: 900px) {
    body.cdi-constructor-pilot .cdi-statusbar {
        grid-template-columns: minmax(110px, 1fr) auto minmax(150px, auto) auto;
    }
}

/* El detalle de conexión usa el mismo patrón de panel lateral que el resto
   de utilidades globales y no añade otra capa modal. */
body.cdi-constructor-pilot .cdi-statusbar-panel {
    position: fixed;
    top: var(--cdi-persistent-header-height, 52px);
    right: 0;
    bottom: var(--cdi-persistent-footer-height, 38px);
    width: min(430px, calc(100vw - 72px));
    height: auto;
    max-height: none;
    border-radius: 14px 0 0 0;
    box-shadow: -14px 0 42px rgba(23, 48, 74, 0.20);
    opacity: 0;
    transform: translateX(100%);
    transition: transform 0.20s ease-out, opacity 0.16s ease-out;
}

body.cdi-constructor-pilot .cdi-statusbar-panel.is-open {
    opacity: 1;
    transform: translateX(0);
}

body.cdi-constructor-pilot .cdi-statusbar-panel__header > .cdi-constructor-utility-drawer__identity,
body.cdi-constructor-pilot .cdi-statusbar-panel__header > .cdi-constructor-utility-drawer__actions {
    flex-direction: row;
    align-items: center;
}

.cdi-constructor-utility-drawer {
    position: fixed;
    top: var(--cdi-persistent-header-height, 52px);
    right: 0;
    bottom: var(--cdi-persistent-footer-height, 38px);
    z-index: 5200;
    display: flex;
    flex-direction: column;
    width: min(680px, calc(100vw - 72px));
    overflow: hidden;
    border-left: 1px solid #d7e1eb;
    background: #ffffff;
    color: #26384a;
    box-shadow: -18px 0 48px rgba(23, 48, 74, 0.22);
    opacity: 0;
    transform: translateX(100%);
    transition: transform 0.18s ease-out, opacity 0.16s ease-out;
}

.cdi-constructor-utility-drawer.is-open {
    opacity: 1;
    transform: translateX(0);
}

.cdi-constructor-utility-drawer[hidden] {
    display: none;
}

/* Un único fondo bloqueante conserva el comportamiento modal sin acumular
   capas de gris. Siempre queda justo debajo de la última superficie abierta. */
body.cdi-constructor-pilot.cdi-constructor-layer-lock {
    overflow: hidden !important;
}

body.cdi-constructor-pilot.cdi-constructor-layer-lock > .modal-backdrop {
    display: none !important;
}

body.cdi-constructor-pilot .cdi-constructor-layer-backdrop {
    position: fixed;
    top: var(--cdi-persistent-header-height, 52px);
    right: 0;
    bottom: var(--cdi-persistent-footer-height, 38px);
    left: 0;
    display: block;
    background: rgba(24, 38, 53, 0.30);
    opacity: 0;
    pointer-events: auto;
    touch-action: none;
    transition: opacity 0.16s ease-out;
}

body.cdi-constructor-pilot .cdi-constructor-layer-backdrop.is-active {
    opacity: 1;
}

body.cdi-constructor-pilot .cdi-constructor-layer-backdrop[hidden] {
    display: none;
}

body.cdi-constructor-pilot .cdi-constructor-inert-background {
    pointer-events: none !important;
    user-select: none;
}

body.cdi-constructor-pilot.cdi-constructor-layer-lock #main-wrapper .topbar,
body.cdi-constructor-pilot.cdi-constructor-layer-lock #cdi-statusbar {
    z-index: var(--cdi-constructor-chrome-layer) !important;
}

body.cdi-constructor-pilot.cdi-constructor-layer-lock.cdi-constructor-workspace-menu-enabled #main-wrapper .topbar,
body.cdi-constructor-pilot.cdi-constructor-layer-lock.cdi-constructor-workspace-menu-enabled #cdi-statusbar {
    z-index: calc(var(--cdi-constructor-chrome-layer) + 1) !important;
}

/* Con una cadena de trabajo abierta, el menú lateral actúa como lanzador de
   otra área. El resto del contenido continúa inerte y sombreado. */
body.cdi-constructor-pilot.cdi-constructor-layer-lock.cdi-constructor-workspace-menu-enabled #main-wrapper .left-sidebar {
    z-index: var(--cdi-constructor-chrome-layer) !important;
    pointer-events: auto !important;
}

body.cdi-constructor-pilot.cdi-constructor-layer-lock.cdi-constructor-workspace-menu-enabled .cdi-constructor-layer-backdrop {
    z-index: calc(var(--cdi-constructor-chrome-layer) - 1) !important;
}

body.cdi-constructor-pilot.cdi-constructor-layer-lock.cdi-constructor-workspace-menu-enabled #main-wrapper .left-sidebar::after {
    content: "";
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 1px;
    background: rgba(42, 71, 99, 0.14);
}

/* El selector de una nueva area no cambia el modo responsive del tema. En
   escritorio compacto extiende temporalmente menu y marca sobre el contenido;
   al elegir o cancelar desaparece la clase y se recupera el estado anterior. */
@media (min-width: 768px) {
    /* El menú mini se ensancha a 250 px al recibir hover. La plantilla ya
       anima el lateral y la marca, pero dejaba page-wrapper en 65 px y la
       cabecera sticky quedaba dibujada por debajo del menú expandido. */
    body.cdi-constructor-pilot #main-wrapper[data-layout="vertical"][data-sidebartype="mini-sidebar"] .left-sidebar:hover ~ .page-wrapper {
        margin-left: 250px;
    }

    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper[data-sidebartype="mini-sidebar"] .left-sidebar,
    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper[data-sidebartype="mini-sidebar"] .topbar .top-navbar .navbar-header {
        width: 250px;
    }

    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper[data-sidebartype="mini-sidebar"] .topbar .top-navbar .navbar-collapse,
    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper[data-sidebartype="mini-sidebar"] .page-wrapper {
        margin-left: 250px;
    }

    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper[data-sidebartype="mini-sidebar"] .cdi-statusbar {
        --cdi-statusbar-brand-width: 250px;
    }

    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper[data-sidebartype="mini-sidebar"] .sidebar-nav .hide-menu,
    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper[data-sidebartype="mini-sidebar"] .sidebar-nav .has-arrow::after,
    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper[data-sidebartype="mini-sidebar"] .topbar .top-navbar .navbar-header .logo-text {
        display: block;
    }

    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper[data-sidebartype="mini-sidebar"] .sidebar-nav .nav-small-cap {
        justify-content: flex-start;
    }

    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .scroll-sidebar {
        padding-right: 6px;
        padding-left: 6px;
    }

    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .sidebar-nav ul .sidebar-item {
        width: 100%;
    }

    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .sidebar-nav > #sidebarnav > .sidebar-item {
        margin: 4px;
    }

    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .sidebar-nav ul .sidebar-item .sidebar-link {
        justify-content: flex-start !important;
        padding: 7px 10px !important;
        text-align: left;
    }

    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand,
    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper .topbar .top-navbar .navbar-header .logo-icon,
    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper .topbar .top-navbar .navbar-header .logo-text {
        visibility: visible;
        opacity: 1;
    }

    body.cdi-constructor-pilot.cdi-constructor-workspace-menu-enabled #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand .dark-logo {
        display: inline;
    }
}

.cdi-constructor-utility-drawer__header {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 46px;
    padding: 6px 10px 6px 12px;
    border-bottom: 1px solid #dfe7ef;
    background: linear-gradient(135deg, #f8faff 0%, #eef4fb 100%);
}

.cdi-constructor-utility-drawer__identity,
.cdi-constructor-utility-drawer__identity > span,
.cdi-constructor-utility-drawer__actions {
    display: flex;
    align-items: center;
}

.cdi-constructor-utility-drawer__identity {
    min-width: 0;
    gap: 9px;
}

.cdi-constructor-utility-drawer__identity > i {
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: #e6effd;
    color: #2f6fca;
    font-size: 17px;
    line-height: 28px;
    text-align: center;
}

.cdi-constructor-utility-drawer__identity > span {
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
}

.cdi-constructor-utility-drawer__identity strong {
    color: #223b55;
    font-size: 14px;
    line-height: 1.15;
}

.cdi-constructor-utility-drawer__identity small {
    margin-top: 2px;
    overflow: hidden;
    color: #708398;
    font-size: 10px;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cdi-constructor-utility-drawer__actions {
    gap: 6px;
}

.cdi-constructor-utility-drawer__actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 31px;
    height: 31px;
    padding: 0;
    border: 1px solid #d3dfeb;
    border-radius: 8px;
    background: #ffffff;
    color: #50677e;
    font-size: 18px;
    cursor: pointer;
}

.cdi-constructor-utility-drawer__actions button:hover,
.cdi-constructor-utility-drawer__actions button:focus {
    border-color: #9db7d0;
    background: #edf4fb;
    color: #245b91;
}

.cdi-constructor-utility-drawer__body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 10px;
    overflow: auto;
    overscroll-behavior: contain;
}

.cdi-constructor-utility-drawer__body > .container-fluid {
    padding: 0;
}

.cdi-constructor-utility-drawer__body .card {
    margin-bottom: 10px;
    box-shadow: none;
}

.cdi-constructor-utility-drawer__body .card-body {
    padding: 10px;
}

.cdi-constructor-utility-drawer__body .dataTables_wrapper {
    min-width: 560px;
}

.cdi-constructor-utility-drawer__loading,
.cdi-constructor-utility-drawer__error {
    display: flex;
    min-height: 220px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: #647b91;
}

.cdi-constructor-utility-drawer__error {
    flex-direction: column;
    text-align: center;
}

.cdi-constructor-utility-drawer__error > i {
    color: #c74751;
    font-size: 28px;
}

/* Navegación de subpantallas del Constructor.
   Cada página conserva su DOM y su estado en una pila, pero solo la actual
   permanece visible en el panel lateral. */
body.cdi-constructor-pilot .cdi-constructor-subpage-drawer {
    position: fixed;
    top: var(--cdi-persistent-header-height);
    right: 0;
    left: var(--cdi-constructor-drawer-left);
    bottom: var(--cdi-persistent-footer-height);
    z-index: 5050;
    width: auto;
    overflow: hidden;
    border-left: 1px solid #cfdae6;
    background: #ffffff;
    box-shadow: -18px 0 52px rgba(23, 48, 74, 0.22);
    opacity: 0;
    transform: translateX(100%);
    transition: transform 0.2s ease-out, opacity 0.16s ease-out;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer.is-open {
    opacity: 1;
    transform: translateX(0);
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer.cdi-constructor-subpage-closing {
    pointer-events: none;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer.cdi-constructor-subpage-suspended {
    display: none !important;
}

body.cdi-constructor-pilot .cdi-constructor-layer-inactive {
    pointer-events: none !important;
    user-select: none;
}

body.cdi-constructor-pilot .cdi-constructor-layer-inactive:not(.cdi-constructor-layer-stacked) {
    display: none !important;
}

body.cdi-constructor-pilot .cdi-constructor-layer-stacked {
    will-change: transform;
}

@keyframes cdi-constructor-layer-reused {
    0%, 100% {
        box-shadow: inset 0 0 0 0 rgba(45, 125, 220, 0);
    }
    45% {
        box-shadow: inset 5px 0 0 rgba(45, 125, 220, 0.78);
    }
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer.cdi-constructor-layer-reused .cdi-constructor-subpage-drawer__surface,
body.cdi-constructor-pilot .modal.cdi-constructor-layer-reused .modal-content {
    animation: cdi-constructor-layer-reused 0.5s ease-out;
}

/* Las hojas anteriores permanecen visibles como un tomo. La posición se
   calcula según el ancho de la hoja activa y se limita visualmente a 3 niveles. */
body.cdi-constructor-pilot .cdi-constructor-layer-inactive.cdi-constructor-layer-stacked {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: translateX(var(--cdi-constructor-stack-shift, -8px)) !important;
    transition: transform 0.22s ease-out, opacity 0.16s ease-out;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer.cdi-constructor-subpage-suspended.cdi-constructor-layer-stacked,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer.cdi-constructor-modal-suspended.cdi-constructor-layer-stacked {
    display: block !important;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__surface {
    display: flex;
    width: 100%;
    height: 100%;
    min-height: 0;
    flex-direction: column;
    background: #f8fbfe;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header {
    flex: 0 0 auto;
    border-bottom: 1px solid #d5e0eb;
    background: linear-gradient(135deg, #f8faff 0%, #eef4fb 100%);
    color: #26384a;
    box-shadow: 0 3px 10px rgba(27, 55, 82, 0.07);
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header .cdi-constructor-subpage-drawer__actions button {
    border: 1px solid #d3dfeb;
    background: #ffffff;
    color: #50677e;
    font-weight: 700;
    box-shadow: 0 1px 4px rgba(27, 55, 82, 0.10);
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header .cdi-constructor-subpage-drawer__actions button:hover,
body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header .cdi-constructor-subpage-drawer__actions button:focus {
    border-color: #9db7d0;
    background: #edf4fb;
    color: #245b91;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header .cdi-constructor-modal-back {
    width: auto;
    min-width: 34px;
    padding-right: 10px;
    padding-left: 10px;
    border-color: #91b8e4;
    background: #eaf3ff;
    color: #205f9e;
    font-weight: 800;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header .cdi-constructor-modal-back:hover,
body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header .cdi-constructor-modal-back:focus {
    border-color: #5f96d2;
    background: #dcecff;
    color: #174d82;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header button[id$="_cerrar"]:not(.cdi-constructor-modal-back),
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header .cdi-modal-close {
    border-color: #e1b7b7;
    background: #fff5f5;
    color: #a63a3a;
    font-size: 19px;
    font-weight: 800;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header button[id$="_cerrar"]:not(.cdi-constructor-modal-back):hover,
body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__header button[id$="_cerrar"]:not(.cdi-constructor-modal-back):focus,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header .cdi-modal-close:hover,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header .cdi-modal-close:focus {
    border-color: #cf8585;
    background: #ffe8e8;
    color: #862525;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer__body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 12px;
    overflow: auto;
    overscroll-behavior: contain;
}

/* Una sola superficie visible: el modal o panel anterior conserva su estado,
   pero se oculta hasta que el usuario pulse Volver. */
body.cdi-constructor-pilot .modal.cdi-constructor-modal-suspended {
    display: none !important;
}

/* Las ventanas de Constructor aprovechan el ancho disponible. La variante XL
   se reserva para pantallas completas, tablas y formularios complejos. */
body.cdi-constructor-pilot .modal .modal-dialog {
    width: min(96vw, 1720px) !important;
    max-width: min(96vw, 1720px) !important;
}

body.cdi-constructor-pilot .modal .modal-dialog.modal-xl,
body.cdi-constructor-pilot [id^="modalsubpantalla_"] > .modal-dialog {
    width: min(98vw, 1920px) !important;
    max-width: min(98vw, 1920px) !important;
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-reparented {
    z-index: 1065;
}

/* Los modales auxiliares heredados también se presentan como panel lateral.
   La clase modalbruto excluye expresamente este tratamiento. */
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer {
    top: var(--cdi-persistent-header-height);
    right: 0;
    bottom: var(--cdi-persistent-footer-height);
    left: var(--cdi-constructor-drawer-left);
    z-index: 5060;
    width: auto;
    height: auto;
    padding: 0 !important;
    overflow: hidden;
    background: transparent;
    opacity: 0;
    transform: translateX(100%);
    transition: transform 0.2s ease-out, opacity 0.16s ease-out;
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer.show,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer.in {
    opacity: 1;
    transform: translateX(0);
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-dialog,
body.cdi-constructor-pilot.modal-open .modal.cdi-constructor-modal-as-drawer .modal-dialog {
    width: 100% !important;
    max-width: none !important;
    height: 100%;
    margin: 0 !important;
    transform: none !important;
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-content,
body.cdi-constructor-pilot.modal-open .modal.cdi-constructor-modal-as-drawer .modal-content {
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    border: 0;
    border-left: 1px solid #cfdae6;
    border-radius: 12px 0 0 0;
    background: #f8fbfe;
    box-shadow: -18px 0 52px rgba(23, 48, 74, 0.22);
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header {
    border-bottom: 1px solid #dfe7ef;
    background: linear-gradient(135deg, #f8faff 0%, #eef4fb 100%);
    color: #26384a;
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header .page-title,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header h3,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header h4,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header i {
    color: #223b55;
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header .btn {
    border: 1px solid #d3dfeb;
    background: #ffffff;
    color: #50677e;
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header .btn:hover,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-header .btn:focus {
    border-color: #9db7d0;
    background: #edf4fb;
    color: #245b91;
}

body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer .modal-body {
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
}

body.cdi-constructor-pilot > .modal-backdrop.show {
    opacity: 0.22 !important;
}

body.cdi-constructor-pilot.modal-open .modal .modal-dialog {
    margin-top: 8px;
    margin-bottom: 8px;
}

body.cdi-constructor-pilot.modal-open .modal .modal-content {
    max-height: calc(100vh - var(--cdi-persistent-header-height) - var(--cdi-persistent-footer-height) - 16px);
    border-radius: 10px;
}

body.cdi-constructor-pilot .modal .modal-header,
body.cdi-constructor-pilot #cabecerahtmlmodal,
body.cdi-constructor-pilot [id$="_cabecerahtmlmodal"] {
    min-height: 46px;
    padding: 6px 10px;
}

body.cdi-constructor-pilot .modal .modal-header .page-title,
body.cdi-constructor-pilot .modal .modal-header h3,
body.cdi-constructor-pilot .modal .modal-header h4,
body.cdi-constructor-pilot #cabecerahtmlmodal .page-title,
body.cdi-constructor-pilot [id$="_cabecerahtmlmodal"] .page-title {
    font-size: 15px;
}

body.cdi-constructor-pilot .modal .modal-header .btn,
body.cdi-constructor-pilot #cabecerahtmlmodal .btn,
body.cdi-constructor-pilot [id$="_cabecerahtmlmodal"] .btn {
    min-width: 34px;
    height: 34px;
    padding: 0 10px;
}

body.cdi-constructor-pilot .cdi-constructor-modal-back {
    gap: 5px;
}

body.cdi-constructor-pilot .cdi-constructor-modal-back span {
    font-size: 11px;
    font-weight: 700;
}

/* Las hojas de trabajo comparten ancho: la primera ya se retranquea sobre la
   pantalla principal y el tomo conserva como máximo tres fondos visibles. */
body.cdi-constructor-pilot .cdi-constructor-subpage-drawer.cdi-constructor-layer-stacked,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer.cdi-constructor-layer-stacked {
    left: calc(var(--cdi-constructor-drawer-left) + var(--cdi-constructor-stack-sheet-inset, 0px)) !important;
}

body.cdi-constructor-pilot .cdi-constructor-subpage-drawer.cdi-constructor-layer-inactive.cdi-constructor-layer-stacked,
body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer.cdi-constructor-layer-inactive.cdi-constructor-layer-stacked {
    transform: none !important;
}

@media (max-width: 767.98px) {
    body.cdi-constructor-pilot.cdi-persistent-chrome {
        --cdi-persistent-header-height: 44px;
        --cdi-persistent-footer-height: 46px;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar,
    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar {
        height: 44px;
        min-height: 44px;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar {
        display: flex !important;
        align-items: center;
        flex-wrap: nowrap;
        padding: 0 6px;
        background: #ffffff !important;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header {
        width: auto;
        min-width: 0;
        flex: 1 1 auto;
        height: 44px;
        justify-content: flex-start;
        border-right: 0;
        box-shadow: none;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .nav-toggler {
        display: inline-flex !important;
        flex: 0 0 34px;
        width: 34px;
        height: 44px;
        align-items: center;
        justify-content: center;
        padding: 0 !important;
        color: #24415f;
        font-size: 18px;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand {
        flex: 0 1 132px;
        width: auto;
        min-width: 0;
        margin: 0 0 0 4px;
        padding: 0 4px;
        gap: 4px;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand .logo-icon {
        margin: 0;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand .logo-icon .dark-logo {
        display: block !important;
        width: 32px;
        height: 32px;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .logo-text {
        display: inline-flex !important;
        min-width: 0;
        align-items: center;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .logo-text .dark-logo {
        display: block !important;
        width: auto;
        height: 24px;
        max-width: 100px;
        max-height: 24px;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .topbartoggler {
        display: none !important;
    }

    body.cdi-constructor-pilot #main-wrapper[data-layout="vertical"] .topbar .top-navbar .navbar-collapse.collapse,
    body.cdi-constructor-pilot #main-wrapper[data-layout="vertical"] .topbar .top-navbar .navbar-collapse.collapsing,
    body.cdi-constructor-pilot #main-wrapper[data-layout="vertical"] .topbar .top-navbar .navbar-collapse.show {
        position: static !important;
        inset: auto !important;
        display: flex !important;
        width: auto;
        height: 44px;
        min-height: 44px;
        flex: 0 0 auto !important;
        flex-basis: auto !important;
        margin-left: auto;
        padding: 0;
        border: 0;
        background: #ffffff !important;
        transform: none !important;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .navbar-nav.mr-auto {
        display: none !important;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .cdi-topbar-actions {
        position: static !important;
        display: flex !important;
        height: 44px;
        flex-direction: row;
        align-items: center;
        gap: 2px;
        margin: 0;
        float: none !important;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .cdi-topbar-actions .nav-item,
    body.cdi-constructor-pilot #main-wrapper .topbar .cdi-topbar-actions .nav-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .cdi-topbar-actions .nav-link {
        min-width: 38px;
        padding: 0 4px !important;
        color: #b70f58 !important;
        line-height: 44px;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .cdi-user-trigger {
        min-width: 38px;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .cdi-user-trigger img {
        width: 30px;
        height: 30px;
        border-color: #d2dce7;
        box-shadow: 0 2px 7px rgba(15, 23, 42, 0.18);
    }

    body.cdi-constructor-pilot .cdi-user-menu.user-dd.show {
        top: calc(var(--cdi-persistent-header-height, 44px) + 6px) !important;
        right: 6px !important;
        width: min(360px, calc(100vw - 12px));
        max-height: calc(100vh - var(--cdi-persistent-header-height, 44px) - var(--cdi-persistent-footer-height, 46px) - 12px);
    }

    body.cdi-constructor-pilot #main-wrapper[data-layout="vertical"][data-header-position="fixed"] .page-wrapper {
        padding-top: 44px;
    }

    body.cdi-constructor-pilot #main-wrapper[data-layout="vertical"][data-sidebar-position="fixed"] .left-sidebar {
        top: var(--cdi-persistent-header-height, 44px);
        bottom: var(--cdi-persistent-footer-height, 46px);
        height: auto;
        min-height: 0;
        padding-top: 0;
        overflow: hidden;
    }

    /* Al abrir el menú móvil, el lateral debe cubrir también la cabecera
       sticky de la pantalla. Cabecera principal y pie siguen por encima. */
    body.cdi-constructor-pilot #main-wrapper.show-sidebar .left-sidebar {
        z-index: 5090 !important;
    }

    /* En móvil el lateral abierto debe comportarse siempre como menú completo.
       El estado mini-sidebar centra los enlaces cuando no hay hover, lo que
       producía un salto visual al terminar la animación táctil. */
    body.cdi-constructor-pilot #main-wrapper.show-sidebar[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .scroll-sidebar {
        padding-right: 6px;
        padding-left: 6px;
    }

    body.cdi-constructor-pilot #main-wrapper.show-sidebar[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .sidebar-nav ul .sidebar-item {
        width: 100%;
    }

    body.cdi-constructor-pilot #main-wrapper.show-sidebar[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .sidebar-nav > #sidebarnav > .sidebar-item {
        margin: 4px;
    }

    body.cdi-constructor-pilot #main-wrapper.show-sidebar[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .sidebar-nav ul .sidebar-item .sidebar-link {
        justify-content: flex-start !important;
        padding: 7px 10px !important;
        text-align: left;
    }

    body.cdi-constructor-pilot #main-wrapper.show-sidebar[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .sidebar-nav .hide-menu,
    body.cdi-constructor-pilot #main-wrapper.show-sidebar[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .sidebar-nav .has-arrow::after {
        display: block !important;
    }

    body.cdi-constructor-pilot #main-wrapper .scroll-sidebar {
        height: 100%;
        max-height: 100%;
        padding-bottom: 12px;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-header .navbar-brand,
    body.cdi-constructor-pilot .cdi-topbar-actions .nav-link {
        height: 44px;
        min-height: 44px;
    }

    body.cdi-constructor-pilot #main-wrapper .topbar .top-navbar .navbar-nav > .nav-item > .nav-link {
        height: 44px;
        min-height: 44px;
        line-height: 44px;
    }

    body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__all,
    body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__new,
    body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__new-cancel {
        height: 36px;
    }

    body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__all {
        min-width: 44px;
    }

    body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__new {
        width: 36px;
    }

    body.cdi-constructor-pilot .cdi-constructor-workspaces--footer .cdi-constructor-workspaces__new-cancel {
        width: 36px;
    }

    .cdi-constructor-utility-drawer {
        width: 100vw;
    }

    body.cdi-constructor-pilot .cdi-constructor-subpage-drawer,
    body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer {
        left: 0;
        width: 100vw;
        border-left: 0;
    }

    .cdi-constructor-utility-drawer__body {
        padding: 8px;
    }

    body.cdi-constructor-pilot .cdi-statusbar-panel {
        width: 100vw;
        border-radius: 0;
    }

    /* En móvil cada hoja nueva se estrecha solo seis píxeles. Así se ven los
       cantos del tomo sin perder una cantidad apreciable de ancho útil. */
    body.cdi-constructor-pilot .cdi-constructor-layer-stacked.cdi-constructor-utility-drawer,
    body.cdi-constructor-pilot .cdi-statusbar-panel.cdi-constructor-layer-stacked,
    body.cdi-constructor-pilot .cdi-constructor-subpage-drawer.cdi-constructor-layer-stacked,
    body.cdi-constructor-pilot .modal.cdi-constructor-modal-as-drawer.cdi-constructor-layer-stacked {
        right: 0;
        left: var(--cdi-constructor-stack-mobile-inset, 0px) !important;
        width: auto !important;
        max-width: none;
    }

    body.cdi-constructor-pilot .cdi-constructor-layer-inactive.cdi-constructor-layer-stacked {
        transform: none !important;
    }

    body.cdi-constructor-pilot .cdi-constructor-modal-back span {
        display: none;
    }

    body.cdi-constructor-pilot .modal .modal-dialog,
    body.cdi-constructor-pilot .modal .modal-dialog.modal-xl,
    body.cdi-constructor-pilot [id^="modalsubpantalla_"] > .modal-dialog {
        width: calc(100vw - 12px) !important;
        max-width: calc(100vw - 12px) !important;
    }
}

/* Pestañas de Lanzaderas visibles en hojas y ventanas de ancho reducido.
   El espacio útil puede ser menor que el viewport, por eso el cambio se
   activa también en tablet y escritorio estrecho, no solo en móvil. */
@media (max-width: 1199.98px) {
    .cdi-responsive-tabs.nav-tabs {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        margin-right: 10px;
        margin-left: 10px;
        padding: 8px;
        overflow: visible !important;
        border: 1px solid #dfe8f1;
        border-radius: 14px;
        background: #f7fafe;
    }

    .cdi-responsive-tabs.nav-tabs .nav-item {
        width: 100%;
        min-width: 0;
        margin: 0;
    }

    .cdi-responsive-tabs.nav-tabs .nav-link {
        display: flex;
        width: 100%;
        min-height: 46px;
        align-items: center;
        justify-content: flex-start;
        padding: 9px 12px;
        white-space: normal;
        line-height: 1.25;
        border: 1px solid #dce7f1;
        border-radius: 10px;
        background: #ffffff;
    }

    .cdi-responsive-tabs.nav-tabs .nav-link.active {
        border-color: #9fc0eb;
        border-bottom-color: #9fc0eb;
        background: #ffffff;
        box-shadow: 0 4px 12px rgba(29, 79, 143, 0.10);
    }
}

@media (max-width: 575.98px) {
    body.cdi-constructor-pilot .cdi-statusbar {
        grid-template-columns: auto minmax(100px, 1fr) auto;
        gap: 6px;
        min-height: 46px;
        padding: 4px 8px;
    }

    body.cdi-constructor-pilot .cdi-statusbar__context {
        display: none;
    }

    body.cdi-constructor-pilot .cdi-constructor-workspaces__all-label {
        display: none;
    }

    body.cdi-constructor-pilot .cdi-constructor-workspaces__all.is-selecting .cdi-constructor-workspaces__all-label {
        display: inline;
    }
}
/* Ajustes propios de Lanzadera sobre el piloto compartido con Constructor. */
.cdi-topbar-balances__toggle {
    min-width: 108px;
    height: 54px;
    padding: 0 12px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-size: 16px;
    font-weight: 700;
}

.cdi-topbar-balances__toggle > .mdi {
    font-size: 26px;
}

.cdi-topbar-balances__menu {
    width: min(330px, calc(100vw - 12px));
    padding: 0;
    overflow: hidden;
    border: 1px solid #dce6f2;
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(24, 55, 94, 0.22);
}

/* CDI SALDOS MENU USUARIO 20261010 INICIO */
.cdi-user-balances {
    margin-top: 4px;
    border-top: 1px solid #e3eaf2;
    border-bottom: 1px solid #e3eaf2;
}

.cdi-user-balances .cdi-topbar-balances__menu {
    width: 100%;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.cdi-user-balances .cdi-topbar-balances__heading {
    display: flex;
    align-items: center;
    gap: 6px;
}
/* CDI SALDOS MENU USUARIO 20261010 FIN */

.cdi-topbar-balances__heading {
    padding: 11px 14px 9px;
    color: #526b8c;
    background: #f5f8fc;
    border-bottom: 1px solid #e2eaf3;
    font-size: 12px;
}

.cdi-topbar-balance {
    width: 100%;
    min-height: 58px;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) 20px;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border: 0;
    border-bottom: 1px solid #edf1f6;
    background: #ffffff;
    color: #264f86;
    text-align: left;
    cursor: pointer;
}

.cdi-topbar-balance:last-child {
    border-bottom: 0;
}

.cdi-topbar-balance:hover,
.cdi-topbar-balance:focus {
    color: #174c9c;
    background: #f1f6ff;
}

.cdi-topbar-balance__icon {
    font-size: 26px;
    line-height: 1;
    text-align: center;
}

.cdi-topbar-balance__text {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cdi-topbar-balance__text small {
    overflow: hidden;
    color: #637995;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cdi-topbar-balance__text strong {
    color: #204b84;
    font-size: 18px;
    line-height: 1.15;
    white-space: nowrap;
}

.cdi-topbar-balance__open {
    color: #8da1ba;
    font-size: 20px;
}

@media (min-width: 768px) {
    body.cdi-constructor-pilot.cdi-lanzadera-pilot #main-wrapper .topbar .cdi-topbar-balances__toggle {
        height: 46px;
        min-width: 108px;
        border-left: 1px solid rgba(255, 255, 255, 0.22);
        color: #ffffff !important;
    }

    body.cdi-constructor-pilot.cdi-lanzadera-pilot #main-wrapper .topbar .cdi-topbar-balances__toggle:hover,
    body.cdi-constructor-pilot.cdi-lanzadera-pilot #main-wrapper .topbar .show > .cdi-topbar-balances__toggle {
        background: rgba(255, 255, 255, 0.10) !important;
    }

}

@media (max-width: 767.98px) {
    body.cdi-constructor-pilot.cdi-lanzadera-pilot #infosaldosprincipal,
    body.cdi-constructor-pilot.cdi-lanzadera-pilot .cdi-topbar-balances__toggle {
        flex: 0 0 38px;
        width: 38px;
        min-width: 38px;
        max-width: 38px;
        height: 44px;
        min-height: 44px;
        padding: 0 !important;
    }

    body.cdi-constructor-pilot.cdi-lanzadera-pilot .cdi-topbar-balances__toggle > span,
    body.cdi-constructor-pilot.cdi-lanzadera-pilot .cdi-topbar-balances__toggle::after {
        display: none;
    }

    body.cdi-constructor-pilot.cdi-lanzadera-pilot .cdi-topbar-balances__toggle > .mdi {
        font-size: 24px;
    }

    body.cdi-constructor-pilot.cdi-lanzadera-pilot #main-wrapper .topbar .cdi-topbar-actions .nav-link {
        color: #2467d8 !important;
    }

    body.cdi-constructor-pilot.cdi-lanzadera-pilot #main-wrapper .topbar .cdi-topbar-actions {
        flex: 0 0 auto !important;
        justify-content: flex-end;
        width: auto !important;
    }
}
/* Mensajería superior: posicionamiento propio, independiente de las utilidades
   top/start/translate de Bootstrap 5 que no existen en esta plantilla. */
#VerMensajes {
    position: relative !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 42px;
    height: 42px;
    padding: 0 !important;
    border-radius: 12px;
    overflow: visible !important;
    transition: background-color .16s ease, box-shadow .16s ease;
}

#VerMensajes:hover,
#VerMensajes:focus {
    background: rgba(255, 255, 255, .12);
}

#VerMensajes:focus-visible {
    outline: 2px solid rgba(255, 255, 255, .82);
    outline-offset: -3px;
}

#VerMensajes > i {
    position: relative;
    z-index: 1;
    line-height: 1;
}

#nmensajes,
#nmensajes2 {
    position: absolute !important;
    z-index: 6;
    top: 2px !important;
    right: 1px !important;
    bottom: auto !important;
    left: auto !important;
    box-sizing: border-box;
    min-width: 18px;
    height: 18px;
    margin: 0 !important;
    padding: 1px 5px 0 !important;
    transform: none !important;
    border: 2px solid rgba(255, 255, 255, .96);
    border-radius: 999px !important;
    background: #e94262 !important;
    box-shadow: 0 3px 8px rgba(42, 15, 28, .28);
    color: #fff !important;
    font-size: 9px;
    font-weight: 800 !important;
    font-variant-numeric: tabular-nums;
    line-height: 12px;
    text-align: center;
    white-space: nowrap;
    pointer-events: none;
}

.topbartoggler {
    position: relative !important;
    overflow: visible !important;
}

.topbartoggler #nmensajes2 {
    top: 3px !important;
    right: 2px !important;
}

/* Inicio de Lanzadera: catálogo de soluciones. */
.cdi-launcher-home {
    --cdi-home-ink: #243b53;
    --cdi-home-muted: #62758a;
    --cdi-home-border: #d9e4ee;
    --cdi-home-shadow: 0 7px 20px rgba(34, 58, 82, .075);
    padding-top: 20px;
    padding-bottom: 24px;
}

.cdi-launcher-home__toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 18px;
}

.cdi-launcher-home .cdi-launcher-home__toolbar-btn,
.cdi-launcher-home .cdi-launcher-home__catalog-btn {
    min-height: 44px;
    margin: 0;
    padding: 10px 17px;
    border: 1px solid transparent !important;
    border-radius: 10px;
    box-shadow: 0 3px 9px rgba(40, 62, 83, .10);
    font-size: 15px;
    font-weight: 700;
    transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease, border-color .16s ease;
}

.cdi-launcher-home .cdi-launcher-home__toolbar-btn:hover,
.cdi-launcher-home .cdi-launcher-home__toolbar-btn:focus,
.cdi-launcher-home .cdi-launcher-home__catalog-btn:hover,
.cdi-launcher-home .cdi-launcher-home__catalog-btn:focus {
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(40, 62, 83, .14);
}

.cdi-launcher-home .cdi-launcher-home__toolbar-btn--constructor {
    border-color: #9eb4c8 !important;
    background: #496b89 !important;
    color: #fff !important;
}

.cdi-launcher-home .cdi-launcher-home__toolbar-btn--install {
    border-color: #6ea7de !important;
    background: #2878c8 !important;
    color: #fff !important;
}

.cdi-launcher-home .cdi-launcher-home__toolbar-btn--install:hover,
.cdi-launcher-home .cdi-launcher-home__toolbar-btn--install:focus {
    border-color: #1f66ac !important;
    background: #1f66ac !important;
    color: #fff !important;
}

/* Windows moderno: cuatro paneles limpios, sin el glifo oscuro heredado. */
.cdi-pwa-platform-icon--windows {
    display: inline-block !important;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    background:
        linear-gradient(currentColor 0 0) 0 0 / 8px 8px no-repeat,
        linear-gradient(currentColor 0 0) 10px 0 / 8px 8px no-repeat,
        linear-gradient(currentColor 0 0) 0 10px / 8px 8px no-repeat,
        linear-gradient(currentColor 0 0) 10px 10px / 8px 8px no-repeat;
    font-size: 0 !important;
    line-height: 1;
    vertical-align: -3px;
}

.cdi-launcher-home .cdi-launcher-home__toolbar-btn--constructor:hover,
.cdi-launcher-home .cdi-launcher-home__toolbar-btn--constructor:focus {
    border-color: #3e607d !important;
    background: #3e607d !important;
}

.cdi-launcher-home .cdi-launcher-home__toolbar-btn--agents,
.cdi-launcher-home .cdi-launcher-home__catalog-btn {
    border-color: #84b9b4 !important;
    background: #3f827c !important;
    color: #fff !important;
}

.cdi-launcher-home .cdi-launcher-home__toolbar-btn--agents:hover,
.cdi-launcher-home .cdi-launcher-home__toolbar-btn--agents:focus,
.cdi-launcher-home .cdi-launcher-home__catalog-btn:hover,
.cdi-launcher-home .cdi-launcher-home__catalog-btn:focus {
    border-color: #34726d !important;
    background: #34726d !important;
}

.cdi-launcher-home__solutions {
    margin-right: -10px;
    margin-left: -10px;
}

.cdi-launcher-home__column {
    padding-right: 10px;
    padding-left: 10px;
}

.cdi-launcher-home .cdi-launcher-solution {
    width: 100%;
    min-height: 154px;
    margin-bottom: 20px;
    border: 1px solid var(--cdi-home-border);
    border-radius: 15px;
    background: #fff;
    box-shadow: var(--cdi-home-shadow);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.cdi-launcher-home .cdi-launcher-solution:hover {
    transform: translateY(-2px);
    border-color: #bdd0df;
    box-shadow: 0 11px 25px rgba(34, 58, 82, .115);
}

.cdi-launcher-solution > .card-content {
    display: flex;
    width: 100%;
}

.cdi-launcher-solution__body {
    display: flex;
    width: 100%;
    padding: 19px 18px !important;
}

.cdi-launcher-solution__layout {
    display: flex;
    width: 100%;
    min-width: 0;
    gap: 15px;
}

.cdi-launcher-solution__logo-wrap {
    display: flex;
    flex: 0 0 82px;
    width: 82px;
    height: 82px;
    align-items: center;
    justify-content: center;
    padding: 7px;
    border: 1px solid #e4ecf3;
    border-radius: 13px;
    background: #f7fafc;
}

.cdi-launcher-solution__logo {
    display: block;
    width: 100%;
    max-width: 68px;
    height: 68px !important;
    object-fit: contain;
}

.cdi-launcher-solution__content {
    min-width: 0;
    padding: 2px 0;
}

.cdi-launcher-solution__content h4 {
    margin: 0 0 7px;
    color: var(--cdi-home-ink);
    font-size: 17px;
    font-weight: 750;
    line-height: 1.25;
}

.cdi-launcher-solution__content span {
    display: block;
    color: var(--cdi-home-muted);
    font-size: 13px;
    line-height: 1.48;
}

.cdi-launcher-solution__actions {
    display: flex;
    flex: 0 0 126px;
    width: 126px;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
}

.cdi-launcher-home .cdi-launcher-solution__action--install {
    border-color: #8eb9e2 !important;
    background: #eef6fd !important;
    color: #286eae !important;
}

.cdi-launcher-home .cdi-launcher-solution__action--install:hover,
.cdi-launcher-home .cdi-launcher-solution__action--install:focus {
    border-color: #2f78b9 !important;
    background: #2f78b9 !important;
    box-shadow: 0 4px 10px rgba(40, 110, 174, .18);
    color: #fff !important;
}

.cdi-launcher-home .cdi-launcher-solution__action {
    min-height: 42px;
    margin: 0 !important;
    padding: 8px 12px;
    border-width: 1px !important;
    border-radius: 9px;
    box-shadow: none;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.15;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease;
}

.cdi-launcher-home .cdi-launcher-solution__action--run {
    border-color: #91c4be !important;
    background: #eef8f6 !important;
    color: #2f756f !important;
}

.cdi-launcher-home .cdi-launcher-solution__action--run:hover,
.cdi-launcher-home .cdi-launcher-solution__action--run:focus {
    border-color: #397e77 !important;
    background: #397e77 !important;
    box-shadow: 0 4px 10px rgba(47, 117, 111, .18);
    color: #fff !important;
}

.cdi-launcher-home .cdi-launcher-solution__action--info {
    border-color: #d8c29d !important;
    background: #fff9ee !important;
    color: #8a652d !important;
}

.cdi-launcher-home .cdi-launcher-solution__action--info:hover,
.cdi-launcher-home .cdi-launcher-solution__action--info:focus {
    border-color: #987139 !important;
    background: #987139 !important;
    box-shadow: 0 4px 10px rgba(138, 101, 45, .17);
    color: #fff !important;
}

.cdi-launcher-solution__price {
    margin: 0 0 8px;
    color: var(--cdi-home-muted);
    font-size: 12px;
    line-height: 1.35;
}

.cdi-launcher-home__footer {
    margin-top: 2px;
}

@media (max-width: 575.98px) {
    .cdi-launcher-home {
        padding: 14px 12px 20px;
    }

    .cdi-launcher-home__toolbar {
        gap: 8px;
        margin-bottom: 14px;
    }

    .cdi-launcher-home .cdi-launcher-home__toolbar-btn {
        flex: 1 1 0;
        min-width: 140px;
        padding-right: 12px;
        padding-left: 12px;
    }

    .cdi-launcher-solution__body {
        padding: 15px !important;
    }

    .cdi-launcher-solution__layout {
        flex-wrap: wrap;
        gap: 12px;
    }

    .cdi-launcher-solution__logo-wrap {
        flex-basis: 68px;
        width: 68px;
        height: 68px;
    }

    .cdi-launcher-solution__logo {
        max-width: 56px;
        height: 56px !important;
    }

    .cdi-launcher-solution__content {
        flex-basis: calc(100% - 80px);
    }

    .cdi-launcher-solution__actions {
        flex: 1 0 100%;
        width: 100%;
        flex-direction: row;
    }

    .cdi-launcher-home .cdi-launcher-solution__action {
        flex: 1 1 0;
        width: auto;
    }

    .cdi-launcher-home .cdi-launcher-home__catalog-btn {
        width: 100%;
        white-space: normal;
    }
}

/* Densidad moderada de marcos en escritorio. */
@media (min-width: 768px) {
    body.cdi-lanzadera-pilot #panelcentral {
        padding-right: 14px !important;
        padding-left: 14px !important;
    }

    body.cdi-lanzadera-pilot #panelcentral > .container-fluid:not(.cdi-launcher-home),
    body.cdi-lanzadera-pilot #panelcentral > [id$="_preloader"] + .container-fluid {
        padding-right: 8px !important;
        padding-left: 8px !important;
    }

    body.cdi-lanzadera-pilot #panelcentral .card {
        margin-bottom: 12px;
        border-radius: 14px;
    }

    body.cdi-lanzadera-pilot #panelcentral .card-body {
        padding: 14px;
    }

    body.cdi-lanzadera-pilot [id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body {
        padding: 16px 14px;
        gap: 10px 12px;
    }

    body.cdi-lanzadera-pilot [id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body > .form-group.row {
        padding: 10px;
        border-radius: 12px;
    }

    body.cdi-lanzadera-pilot [id^="ficha"][id$="_preloader"] + .container-fluid > .card .border-top .card-body {
        padding: 14px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-home {
        padding-top: 14px;
        padding-bottom: 18px;
    }
}

/* Prueba de densidad móvil en Lanzadera. Se compactan únicamente los marcos
   estructurales; controles, textos y áreas táctiles conservan su tamaño. */
@media (max-width: 767.98px) {
    body.cdi-lanzadera-pilot #panelcentral {
        padding-right: 6px !important;
        padding-left: 6px !important;
    }

    body.cdi-lanzadera-pilot #panelcentral > .container-fluid:not(.cdi-launcher-home),
    body.cdi-lanzadera-pilot #panelcentral > [id$="_preloader"] + .container-fluid {
        padding-right: 4px !important;
        padding-left: 4px !important;
    }

    body.cdi-lanzadera-pilot #panelcentral .card {
        margin-bottom: 8px;
        border-radius: 12px;
    }

    body.cdi-lanzadera-pilot #panelcentral .card-body {
        padding: 10px;
    }

    body.cdi-lanzadera-pilot [id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body {
        padding: 10px 8px;
        gap: 8px;
    }

    body.cdi-lanzadera-pilot [id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body > .form-group.row {
        padding: 8px;
        border-radius: 10px;
    }

    body.cdi-lanzadera-pilot [id^="ficha"][id$="_preloader"] + .container-fluid > .card .border-top .card-body {
        padding: 10px;
    }
}
/* Lanzamientos de Mensajeria y Tickets desde CDI Gest: superficie dedicada. */
body.cdi-lanzadera-desktop-externa {
	background: #eef5fb;
}

body.cdi-lanzadera-desktop-externa #main-wrapper > .topbar,
body.cdi-lanzadera-desktop-externa #main-wrapper > .left-sidebar,
body.cdi-lanzadera-desktop-externa .page-wrapper > .page-breadcrumb,
body.cdi-lanzadera-desktop-externa #cdi-statusbar {
	display: none !important;
}

body.cdi-lanzadera-desktop-externa .page-wrapper {
	margin-left: 0 !important;
	padding: 0 !important;
	min-height: 100vh !important;
	background: linear-gradient(180deg, #f6faff 0, #edf5fb 100%);
}

body.cdi-lanzadera-desktop-externa #panelcentral {
	max-width: 1220px;
	margin: 0 auto;
	padding: 24px clamp(16px, 3vw, 34px) 30px;
}

.cdi-servicio-neocodi {
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr) auto;
	align-items: center;
	gap: 20px;
	margin: 0 0 18px;
	padding: 18px 22px;
	border: 1px solid #d9e7f5;
	border-radius: 20px;
	background: linear-gradient(135deg, #ffffff 0%, #f3f8ff 64%, #e8f4ff 100%);
	box-shadow: 0 14px 34px rgba(25, 74, 118, .10);
	overflow: hidden;
	position: relative;
}

.cdi-servicio-neocodi::after {
	content: "";
	position: absolute;
	right: -70px;
	top: -95px;
	width: 210px;
	height: 210px;
	border-radius: 50%;
	background: rgba(39, 109, 241, .07);
	pointer-events: none;
}

.cdi-servicio-neocodi--mensajeria {
	background: linear-gradient(135deg, #ffffff 0%, #f6f5ff 64%, #eeebff 100%);
}

.cdi-servicio-neocodi__avatar {
	width: 78px;
	height: 78px;
	border-radius: 22px;
	display: grid;
	place-items: center;
	background: #fff;
	box-shadow: 0 9px 22px rgba(31, 86, 145, .16);
	position: relative;
	z-index: 1;
}

.cdi-servicio-neocodi__avatar img {
	width: 70px;
	height: 70px;
	object-fit: contain;
}

.cdi-servicio-neocodi__avatar--equipo i {
	font-size: 34px;
	color: #276df1;
}

.cdi-servicio-neocodi__copy {
	min-width: 0;
	position: relative;
	z-index: 1;
}

.cdi-servicio-neocodi__kicker {
	display: block;
	margin-bottom: 3px;
	color: #276df1;
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .075em;
	text-transform: uppercase;
}

.cdi-servicio-neocodi h1 {
	margin: 0 0 5px;
	color: #173858;
	font-size: clamp(1.35rem, 2.5vw, 1.85rem);
	font-weight: 750;
	line-height: 1.1;
}

.cdi-servicio-neocodi p {
	margin: 0;
	max-width: 700px;
	color: #587087;
	font-size: .96rem;
	line-height: 1.45;
}

.cdi-servicio-neocodi__action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 44px;
	padding: 10px 16px;
	border-radius: 12px;
	background: #276df1;
	box-shadow: 0 8px 18px rgba(39, 109, 241, .22);
	color: #fff !important;
	font-weight: 700;
	white-space: nowrap;
	position: relative;
	z-index: 1;
}

.cdi-servicio-neocodi__action:hover,
.cdi-servicio-neocodi__action:focus {
	background: #1859cf;
	text-decoration: none;
	transform: translateY(-1px);
}

.cdi-servicio-filtros {
	border-radius: 16px !important;
	box-shadow: 0 8px 24px rgba(29, 73, 112, .07);
}

.constickets-toolbar-copy {
	flex: 1 1 auto;
	min-width: 0;
}

.cdi-mensajeria-filtros {
	align-items: center;
	margin: 0 0 16px !important;
	padding: 13px 18px;
	border: 1px solid #e0e8f0;
	background: #fff;
}

.cdi-mensajeria-filtros label {
	margin-bottom: 0;
	color: #294966;
	font-weight: 700;
}

@media (max-width: 767.98px) {
	body.cdi-lanzadera-desktop-externa #panelcentral {
		padding: 14px 10px 20px;
	}

	.cdi-servicio-neocodi {
		grid-template-columns: 62px minmax(0, 1fr);
		gap: 13px;
		padding: 15px;
		border-radius: 16px;
	}

	.cdi-servicio-neocodi__avatar {
		width: 60px;
		height: 60px;
		border-radius: 17px;
	}

	.cdi-servicio-neocodi__avatar img {
		width: 54px;
		height: 54px;
	}

	.cdi-servicio-neocodi__action {
		grid-column: 1 / -1;
		width: 100%;
	}
}

/* CDI Lanzadera: menú directo con buscador y favoritos. Conserva los 250 px
   históricos y los enlaces autorizados ya renderizados por el servidor. */
body.cdi-lanzadera-pilot.cdi-lanzadera-menu-hibrido #main-wrapper .left-sidebar {
	overflow: hidden;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-hibrido__layout {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	background: #fff;
}

body.cdi-lanzadera-pilot #sidebarnav .sidebar-item[hidden],
body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick[hidden],
body.cdi-lanzadera-pilot .cdi-lanzadera-menu-panel .sidebar-nav[hidden],
body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__button[hidden] {
	display: none !important;
}

body.cdi-lanzadera-pilot #main-wrapper .scroll-sidebar.cdi-lanzadera-menu-panel {
	box-sizing: border-box;
	display: block;
	height: 100%;
	min-width: 0;
	padding: 0 8px 18px;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-search {
	display: flex;
	height: 34px;
	align-items: center;
	gap: 5px;
	margin: 7px 2px 5px;
	padding: 0 7px;
	border: 1px solid #d7e2ed;
	border-radius: 8px;
	background: #f8fafc;
	color: #55728d;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-search:focus-within {
	border-color: #78a9cd;
	background: #fff;
	box-shadow: 0 0 0 3px rgba(45, 127, 193, .1);
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-search i {
	flex: 0 0 auto;
	font-size: 16px;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-search input {
	width: 100%;
	min-width: 0;
	height: 30px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #203b55;
	font-size: 11px;
	outline: 0;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-views {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 3px;
	margin: 0 2px 6px;
	padding: 3px;
	border: 1px solid #dfe8f2;
	border-radius: 9px;
	background: #f5f8fc;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-view {
	display: inline-flex;
	min-width: 0;
	min-height: 30px;
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 3px 5px;
	border: 0;
	border-radius: 7px;
	background: transparent;
	color: #607b96;
	font: inherit;
	font-size: 9px;
	font-weight: 700;
	cursor: pointer;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-view > i {
	color: #2874d8;
	font-size: 15px;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-view:hover,
body.cdi-lanzadera-pilot .cdi-lanzadera-menu-view:focus-visible {
	background: #eaf3ff;
	color: #175fad;
	outline: 0;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-view.is-active {
	background: #fff;
	color: #173b5f;
	box-shadow: 0 1px 3px rgba(31, 72, 116, .16);
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick {
	margin: 0 2px 6px;
	padding-bottom: 4px;
	border-bottom: 1px solid #e8eef4;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__heading {
	display: flex;
	align-items: center;
	margin: 0 0 2px;
	padding: 0 4px;
	gap: 4px;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__section h2 {
	display: flex;
	min-width: 0;
	align-items: center;
	gap: 4px;
	margin: 0;
	color: #6c7f92;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .02em;
	line-height: 1.25;
	text-transform: uppercase;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__edit {
	display: inline-flex;
	min-height: 28px;
	align-items: center;
	gap: 3px;
	margin-left: auto;
	padding: 2px 4px;
	border: 0;
	border-radius: 5px;
	background: transparent;
	color: #3f6f98;
	font: inherit;
	font-size: 9px;
	font-weight: 700;
	line-height: 1.1;
	text-align: right;
	cursor: pointer;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__edit:hover,
body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__edit:focus-visible,
body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__edit.is-active {
	background: #edf5fc;
	color: #1e6498;
	outline: 0;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__items {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 1px;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__button {
	display: flex;
	min-width: 0;
	min-height: 28px;
	align-items: center;
	gap: 6px;
	padding: 4px 6px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: #3f5870;
	font: inherit;
	font-size: 10.5px;
	font-weight: 650;
	text-align: left;
	cursor: pointer;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__button:hover,
body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__button:focus-visible {
	background: #edf5fc;
	color: #1e6498;
	outline: 0;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__button i {
	flex: 0 0 18px;
	font-size: 15px;
	text-align: center;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__button span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-panel .sidebar-nav ul .sidebar-item {
	position: relative;
	margin-right: 0;
	margin-left: 0;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-panel .sidebar-nav ul .sidebar-item .sidebar-link {
	min-height: 38px;
	gap: 5px;
	padding: 5px 31px 5px 5px;
	font-size: 11.5px;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-panel .sidebar-nav ul .sidebar-item .sidebar-link i {
	flex-basis: 26px;
	width: 26px;
	height: 26px;
	font-size: 16px;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-panel .sidebar-nav ul .sidebar-item .first-level {
	margin-left: 5px;
	padding-left: 4px;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-panel .sidebar-nav ul .sidebar-item .first-level .sidebar-link {
	min-height: 34px;
	padding-left: 4px;
	font-size: 10.5px;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-favorite-toggle {
	position: absolute;
	top: 50%;
	right: 2px;
	z-index: 5;
	display: inline-flex;
	width: 29px;
	height: 29px;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	border-radius: 7px;
	background: transparent;
	color: #a1adba;
	font-size: 16px;
	transform: translateY(-50%);
	cursor: pointer;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-favorite-toggle[hidden] {
	display: none !important;
}

body.cdi-lanzadera-pilot .cdi-lanzadera-menu-favorite-toggle:hover,
body.cdi-lanzadera-pilot .cdi-lanzadera-menu-favorite-toggle:focus-visible,
body.cdi-lanzadera-pilot .cdi-lanzadera-menu-favorite-toggle.is-active {
	background: #fff7df;
	color: #d69112;
	outline: 0;
}

.suscripcion-simulacion {
	max-height: min(68vh, 720px);
	overflow-y: auto;
	padding: 2px 4px;
	text-align: left;
}

.suscripcion-simulacion section {
	margin-bottom: 12px;
	padding: 12px;
	border: 1px solid #dbe6f6;
	border-radius: 10px;
	background: #fff;
}

.suscripcion-simulacion section:last-child {
	margin-bottom: 0;
}

.suscripcion-simulacion h4 {
	margin: 0 0 8px;
	color: #1c3d70;
	font-size: 16px;
}

.suscripcion-simulacion p {
	margin: 0 0 10px;
	color: #5e7491;
}

@media (min-width: 768px) {
	body.cdi-lanzadera-pilot:not(.cdi-constructor-workspace-menu-enabled) #main-wrapper[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .cdi-lanzadera-menu-panel {
		display: block;
		padding: 4px;
	}

	body.cdi-lanzadera-pilot:not(.cdi-constructor-workspace-menu-enabled) #main-wrapper[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .cdi-lanzadera-menu-search,
	body.cdi-lanzadera-pilot:not(.cdi-constructor-workspace-menu-enabled) #main-wrapper[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .cdi-lanzadera-menu-views,
	body.cdi-lanzadera-pilot:not(.cdi-constructor-workspace-menu-enabled) #main-wrapper[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .cdi-lanzadera-menu-quick,
	body.cdi-lanzadera-pilot:not(.cdi-constructor-workspace-menu-enabled) #main-wrapper[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .cdi-lanzadera-menu-favorite-toggle {
		display: none !important;
	}

	body.cdi-lanzadera-pilot:not(.cdi-constructor-workspace-menu-enabled) #main-wrapper[data-sidebartype="mini-sidebar"] .left-sidebar:not(:hover) .cdi-lanzadera-menu-panel .sidebar-nav ul .sidebar-item .sidebar-link {
		justify-content: center !important;
		padding: 7px 8px !important;
		text-align: center;
	}
}

@media (max-width: 767.98px) {
	body.cdi-lanzadera-pilot .cdi-lanzadera-menu-panel .sidebar-nav ul .sidebar-item .sidebar-link,
	body.cdi-lanzadera-pilot .cdi-lanzadera-menu-view,
	body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__button,
	body.cdi-lanzadera-pilot .cdi-lanzadera-menu-quick__edit {
		min-height: 44px;
	}

	body.cdi-lanzadera-pilot .cdi-lanzadera-menu-favorite-toggle {
		width: 36px;
		height: 36px;
	}
}

/* Piloto Lanzadera para las rejillas editables: mismo lenguaje visual que
   CDI Gest escritorio sin alterar controles, columnas ni guardado. */
@media (min-width: 768px) {
	body.cdi-lanzadera-pilot .cdi-tablaeditable-tabla {
		font-family: Tahoma, Arial, sans-serif;
		font-size: 9pt;
		color: #17324a;
	}

	body.cdi-lanzadera-pilot .cdi-tablaeditable-tabla thead th {
		border-color: #174c76 !important;
		background: #1f5f93 !important;
		color: #fff !important;
		font-family: Tahoma, Arial, sans-serif;
		font-size: 9pt;
		font-weight: 700;
		text-shadow: 0 1px 0 rgba(0, 0, 0, .12);
	}

	body.cdi-lanzadera-pilot .cdi-tablaeditable-tabla tbody td {
		border-color: #d4dee7;
		background: #fff;
		color: #17324a;
	}

	body.cdi-lanzadera-pilot .cdi-tablaeditable-tabla tbody tr.cdi-tablaeditable-fila-seleccionada > td {
		background: #dceeff;
		box-shadow: inset 0 1px 0 #78add2, inset 0 -1px 0 #78add2;
	}

	body.cdi-lanzadera-pilot .cdi-tablaeditable-tabla tbody tr.cdi-tablaeditable-fila-seleccionada > td:first-child {
		box-shadow: inset 3px 0 0 #1f6fa8, inset 0 1px 0 #78add2, inset 0 -1px 0 #78add2;
	}
}
/* CDI AUTH 20261009 INICIO */
body.cdi-auth-body {
	margin: 0;
	background: #eaf2f8;
	color: #17324d;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.auth-wrapper.cdi-auth-page {
	position: relative;
	min-height: 100vh;
	padding: 34px 18px;
	background:
		radial-gradient(circle at 14% 18%, rgba(39, 112, 224, .16), transparent 32%),
		radial-gradient(circle at 88% 78%, rgba(19, 184, 188, .19), transparent 34%),
		linear-gradient(145deg, #f5f9fd 0%, #e8f1f8 52%, #dceef2 100%);
	overflow-x: hidden;
}

.auth-wrapper.cdi-auth-page::before,
.auth-wrapper.cdi-auth-page::after {
	position: absolute;
	content: "";
	pointer-events: none;
}

.auth-wrapper.cdi-auth-page::before {
	top: -180px;
	right: -130px;
	width: 430px;
	height: 430px;
	border: 54px solid rgba(22, 102, 214, .08);
	border-radius: 50%;
}

.auth-wrapper.cdi-auth-page::after {
	bottom: -190px;
	left: -100px;
	width: 390px;
	height: 390px;
	border-radius: 42% 58% 62% 38%;
	background: rgba(16, 169, 177, .08);
	transform: rotate(18deg);
}

.auth-wrapper.cdi-auth-page .auth-box.cdi-auth-panel {
	position: relative;
	z-index: 1;
	width: min(430px, 100%);
	margin: 0;
	border: 1px solid rgba(198, 216, 232, .92);
	border-radius: 20px;
	background: rgba(255, 255, 255, .97);
	box-shadow: 0 24px 60px rgba(28, 61, 93, .17);
	overflow: hidden;
}

.auth-wrapper.cdi-auth-page .auth-box.cdi-auth-panel--wide {
	width: min(610px, 100%);
	max-width: 610px;
}

.auth-wrapper.cdi-auth-page .auth-box.cdi-auth-panel > div {
	padding: 32px 34px 34px;
}

.cdi-auth-brand {
	margin-bottom: 24px;
	text-align: center;
}

.cdi-auth-brand .db {
	display: block;
	margin-bottom: 12px;
}

.cdi-auth-brand img,
.registro-box .cdi-auth-brand img {
	width: 58px;
	height: 58px;
	object-fit: contain;
}

.cdi-auth-eyebrow {
	display: block;
	margin-bottom: 5px;
	color: #2368c7;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .09em;
}

.cdi-auth-brand h1,
.registro-box .cdi-auth-brand h1 {
	margin: 0;
	color: #17324d;
	font-size: 25px;
	font-weight: 750;
	line-height: 1.2;
}

.cdi-auth-brand p {
	max-width: 430px;
	margin: 8px auto 0;
	color: #61778d;
	font-size: 14px;
	line-height: 1.45;
}

.cdi-auth-brand--compact {
	margin-bottom: 17px;
}

.cdi-auth-label {
	display: block;
	margin: 0 0 6px;
	color: #314b64;
	font-size: 13px;
	font-weight: 700;
}

.cdi-auth-input .input-group-text {
	min-width: 48px;
	justify-content: center;
	border: 1px solid #cfdae5;
	border-right: 0;
	border-radius: 10px 0 0 10px;
	background: #f2f7fc;
	color: #2b6db8;
}

.cdi-auth-input .form-control,
.registro-box.cdi-auth-panel .form-control {
	min-height: 48px;
	border-color: #cfdae5;
	color: #17324d;
	font-size: 15px;
	box-shadow: none;
}

.cdi-auth-input .form-control {
	border-radius: 0 10px 10px 0;
}

.registro-box.cdi-auth-panel .form-control {
	border-radius: 10px;
}

.cdi-auth-input .form-control:focus,
.registro-box.cdi-auth-panel .form-control:focus {
	border-color: #3d7fd8;
	box-shadow: 0 0 0 3px rgba(47, 102, 246, .12);
}

.cdi-auth-primary,
.btn.cdi-auth-primary {
	min-height: 48px;
	border: 0;
	border-radius: 10px;
	background: linear-gradient(135deg, #1768d5 0%, #2c7ee5 100%);
	color: #fff;
	font-size: 15px;
	font-weight: 750;
	box-shadow: 0 9px 22px rgba(25, 101, 203, .22);
}

.cdi-auth-primary:hover,
.cdi-auth-primary:focus {
	background: linear-gradient(135deg, #145abb 0%, #236fce 100%);
	color: #fff;
}

.cdi-auth-back,
.btn.cdi-auth-back {
	min-height: 46px;
	border: 1px solid #cddae7;
	border-radius: 10px;
	background: #fff;
	color: #34536f;
	font-weight: 700;
}

.cdi-auth-secondary-link,
.cdi-auth-register a,
.registro-box .cdi-auth-secondary-link {
	color: #1768d5;
	font-weight: 700;
	text-decoration: none;
}

.cdi-auth-secondary-link:hover,
.cdi-auth-register a:hover,
.registro-box .cdi-auth-secondary-link:hover {
	color: #114f9f;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cdi-auth-register {
	padding-top: 18px;
	border-top: 1px solid #e5ecf3;
	color: #61778d;
	font-size: 14px;
	line-height: 1.55;
}

.registro-box.cdi-auth-panel .registro-contexto {
	border-color: #d8e4f1;
	border-left-color: #2f66f6;
	border-radius: 12px;
	background: #f5f8fc;
}

.registro-box.cdi-auth-panel .registro-seccion legend {
	color: #17324d;
	font-size: 16px;
}

.registro-box.cdi-auth-panel .registro-acceso {
	color: #61778d;
}

@media (min-width: 576px) and (max-height: 780px) {
	.auth-wrapper.cdi-auth-page {
		align-items: flex-start !important;
		padding-top: 12px;
		padding-bottom: 12px;
	}

	.auth-wrapper.cdi-auth-page .auth-box.cdi-auth-panel > div {
		padding: 20px 28px 22px;
	}

	.cdi-auth-brand {
		margin-bottom: 14px;
	}

	.cdi-auth-brand .db {
		margin-bottom: 6px;
	}

	.cdi-auth-brand img,
	.registro-box .cdi-auth-brand img {
		width: 44px;
		height: 44px;
	}

	.cdi-auth-brand h1,
	.registro-box .cdi-auth-brand h1 {
		font-size: 22px;
	}

	.cdi-auth-brand p {
		margin-top: 5px;
		font-size: 13px;
		line-height: 1.35;
	}

	.auth-wrapper.cdi-auth-page .form-group {
		margin-bottom: 12px;
	}

	.cdi-auth-input .form-control,
	.registro-box.cdi-auth-panel .form-control,
	.cdi-auth-primary,
	.btn.cdi-auth-primary {
		min-height: 44px;
	}

	.cdi-auth-register {
		padding-top: 12px;
	}
}

@media (max-width: 575.98px) {
	.auth-wrapper.cdi-auth-page {
		align-items: flex-start !important;
		padding: 12px 8px;
	}

	.auth-wrapper.cdi-auth-page .auth-box.cdi-auth-panel {
		border-radius: 15px;
	}

	.auth-wrapper.cdi-auth-page .auth-box.cdi-auth-panel > div {
		padding: 24px 18px 26px;
	}

	.cdi-auth-brand h1,
	.registro-box .cdi-auth-brand h1 {
		font-size: 22px;
	}

	.cdi-auth-brand p {
		font-size: 13px;
	}
}
/* CDI AUTH 20261009 FIN */

/* CDI LANZADERA CONFIGURACION 20261009 INICIO */
.cdi-launcher-config {
	max-width: 1540px;
	margin: 0 auto;
}

.cdi-launcher-config__shell {
	border: 1px solid #dce7f2;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 14px 38px rgba(22, 64, 108, .07);
}

.cdi-launcher-config__tabs {
	padding: 10px 14px 0;
	gap: 4px;
	background: #f7faff;
}

.cdi-launcher-config__tabs .nav-link {
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	font-weight: 700;
}

.cdi-launcher-config__intro {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 20px;
}

.cdi-launcher-config__intro h2,
.cdi-launcher-config__about h2,
.cdi-launcher-config__about h3,
.cdi-launcher-config__info-card h3,
.cdi-launcher-config__printer h3 {
	margin: 0;
	color: #123b6b;
}

.cdi-launcher-config__intro h2,
.cdi-launcher-config__about h2 {
	font-size: clamp(24px, 2.3vw, 34px);
}

.cdi-launcher-config__intro p,
.cdi-launcher-config__about p,
.cdi-launcher-config__printer p {
	margin: 5px 0 0;
	color: #61778f;
}

.cdi-launcher-config__eyebrow {
	display: block;
	margin-bottom: 5px;
	color: #2b72bd;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.cdi-launcher-config__preferred,
.cdi-launcher-config__bridge,
.cdi-launcher-config__editor,
.cdi-launcher-config__about-hero,
.cdi-launcher-config__info-card,
.cdi-launcher-config__declaration {
	border: 1px solid #dbe7f2;
	border-radius: 14px;
	background: #fff;
}

.cdi-launcher-config__bridge {
	margin-bottom: 16px;
	padding: 16px;
	background: linear-gradient(135deg, #f7fbff 0%, #f4fffc 100%);
}

.cdi-launcher-config__bridge-head,
.cdi-launcher-config__bridge-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.cdi-launcher-config__bridge-head h3 {
	font-size: 18px;
}

.cdi-launcher-config__bridge-head p {
	margin: 4px 0 0;
	color: #61778f;
}

.cdi-launcher-config__bridge-head .badge {
	flex: 0 0 auto;
	padding: 7px 10px;
	font-size: 12px;
}

.cdi-launcher-config__bridge-actions {
	justify-content: flex-start;
	flex-wrap: wrap;
	margin-top: 14px;
}

.cdi-launcher-config__bridge-actions .btn {
	min-height: 40px;
}

.cdi-launcher-config__bridge-warning {
	margin: 4px 0 0;
	color: #9a6900;
	font-size: 13px;
}

.cdi-launcher-config__bridge-state-help {
	margin: 4px 0 8px;
	padding: 10px 12px;
	border-left: 4px solid #2e79c7;
	border-radius: 6px;
	background: #eef6ff;
	color: #264d73;
	font-size: 14px;
}

.cdi-launcher-config__bridge-instructions {
	margin-top: 10px;
	padding: 12px 14px;
	border-radius: 10px;
	background: #fff;
}

.cdi-launcher-config__bridge-instructions ol {
	margin: 0;
	padding-left: 22px;
}

.cdi-launcher-config__preferred {
	display: grid;
	grid-template-columns: minmax(260px, 1fr) minmax(260px, 520px);
	align-items: end;
	gap: 18px;
	margin-bottom: 16px;
	padding: 16px;
	background: #f7fbff;
}

.cdi-launcher-config__preferred label,
.cdi-launcher-config__preferred label strong,
.cdi-launcher-config__preferred label small {
	display: block;
	margin: 0;
}

.cdi-launcher-config__preferred label small {
	margin-top: 4px;
	color: #61778f;
	font-weight: 400;
}

.cdi-launcher-config__printer {
	height: 100%;
	border: 1px solid #dce7f2;
	border-radius: 14px;
	box-shadow: 0 7px 20px rgba(24, 68, 112, .06);
}

.cdi-launcher-config__printer.is-inactive {
	opacity: .68;
}

.cdi-launcher-config__printer-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.cdi-launcher-config__printer-head > i {
	color: #2e79c7;
	font-size: 28px;
}

.cdi-launcher-config__printer h3 {
	font-size: 18px;
}

.cdi-launcher-config__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	margin-top: 8px;
}

.cdi-launcher-config__printer-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin-top: 14px;
}

.cdi-launcher-config__editor {
	margin-top: 18px;
}

.cdi-launcher-config__editor .card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

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

.cdi-launcher-config__info-card {
	display: flex;
	gap: 15px;
	padding: 20px;
}

.cdi-launcher-config__info-card > div {
	min-width: 0;
	flex: 1;
}

.cdi-launcher-config__info-card h3 {
	font-size: 18px;
}

.cdi-launcher-config__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	flex: 0 0 42px;
	border-radius: 12px;
	background: #eaf3ff;
	color: #2674c4;
	font-size: 19px;
}

.cdi-launcher-config dl {
	margin: 10px 0 0;
}

.cdi-launcher-config dl > div {
	display: grid;
	grid-template-columns: minmax(100px, .42fr) minmax(0, 1fr);
	gap: 12px;
	padding: 8px 0;
	border-bottom: 1px solid #edf2f7;
}

.cdi-launcher-config dl > div:last-child {
	border-bottom: 0;
}

.cdi-launcher-config dt {
	color: #60758b;
	font-weight: 600;
}

.cdi-launcher-config dd {
	margin: 0;
	color: #153b67;
	font-weight: 700;
	word-break: break-word;
}

.cdi-launcher-config__about {
	display: grid;
	gap: 16px;
	background: linear-gradient(180deg, #f8fbff 0%, #fff 100%);
}

.cdi-launcher-config__about-hero {
	padding: 22px;
	background: linear-gradient(135deg, #eef6ff 0%, #f6fffd 100%);
}

.cdi-launcher-config__about-title {
	display: flex;
	align-items: center;
	gap: 16px;
}

.cdi-launcher-config__about-title img {
	width: 68px;
	height: 68px;
	object-fit: contain;
	padding: 9px;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 8px 22px rgba(24, 75, 126, .12);
}

.cdi-launcher-config__about-title .badge {
	margin-top: 7px;
	padding: 7px 10px;
	font-size: 12px;
}

.cdi-launcher-config__declaration {
	overflow: hidden;
}

.cdi-launcher-config__declaration-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 18px 20px;
	border-bottom: 1px solid #dbe7f2;
	background: #f7fbff;
}

.cdi-launcher-config__declaration-head h3 {
	font-size: 19px;
}

.cdi-launcher-config__declaration-head a {
	white-space: nowrap;
	font-weight: 700;
}

.cdi-launcher-config__declaration-frame {
	height: min(430px, 52vh);
	min-height: 300px;
}

.cdi-launcher-config__declaration-frame iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	background: #fff;
}

@media (max-width: 767.98px) {
	.cdi-launcher-config {padding: 0;}
	.cdi-launcher-config__shell {border-radius: 12px;}
	.cdi-launcher-config__intro {align-items: stretch;flex-direction: column;}
	.cdi-launcher-config__intro .btn {min-height: 44px;}
	.cdi-launcher-config__preferred,
	.cdi-launcher-config__info-grid,
	.cdi-launcher-config__about-grid {grid-template-columns: minmax(0, 1fr);}
	.cdi-launcher-config__bridge-head {align-items: flex-start;flex-direction: column;}
	.cdi-launcher-config__bridge-actions .btn {width: 100%;min-height: 44px;}
	.cdi-launcher-config__info-card {padding: 16px;}
	.cdi-launcher-config__about-title {align-items: flex-start;}
	.cdi-launcher-config__about-title img {width: 56px;height: 56px;border-radius: 14px;}
	.cdi-launcher-config__declaration-head {align-items: flex-start;flex-direction: column;}
	.cdi-launcher-config__declaration-frame {height: 390px;min-height: 280px;}
}
/* CDI LANZADERA CONFIGURACION 20261009 FIN */

/* Pendientes de Cuentas: altura compacta con ratón, área táctil en móvil. */
#conscuentas_zero_config .conscuentas-gestion {
    min-height: 24px;
    min-width: 28px;
    padding: 2px 6px;
    line-height: 18px;
    vertical-align: middle;
    white-space: nowrap;
}

@media (max-width: 767px), (pointer: coarse) {
    #conscuentas_zero_config .conscuentas-gestion {
        min-height: 44px;
        min-width: 44px;
    }
}

/* Gestiones de cuenta: controles comunes y distribución de formulario. */
body.cdi-gestiones {margin: 0; color: #24476a;}
.cdi-gestiones main {max-width: 1160px; margin: 0 auto; padding: 16px;}
.cdi-gestiones main > header {display: flex; align-items: center; gap: 16px; margin-bottom: 14px;}
.cdi-gestiones main > header img {width: 160px; max-width: 40%;}
.cdi-gestiones h1 {font-size: 20px; margin: 0;}
.cdi-gestiones h2 {font-size: 15px; margin: 0 0 8px; font-weight: 600;}
.cdi-gestiones h3 {font-size: 14px; margin: 10px 0 6px;}
.cdi-gestiones p {margin: 6px 0;}
.cdi-gestiones article,
.cdi-gestiones main > section,
.cdi-gestiones details.panel {border: 1px solid #dce7f2; border-radius: 9px; background: #fff; padding: 12px; margin: 10px 0;}
.cdi-gestiones details.panel {padding: 0;}
.cdi-gestiones details.panel > :not(summary) {margin: 10px 12px;}
.cdi-gestiones details.panel > summary {padding: 9px 12px; cursor: pointer; font-size: 13px; font-weight: 600;}
.cdi-gestiones details.panel[open] > summary {border-bottom: 1px solid #e3ebf3;}
.cdi-gestiones label {display: block; margin: 8px 0; font-size: 12px; font-weight: 600;}
.cdi-gestiones label > .form-control,
.cdi-gestiones label > .select2-container {margin-top: 4px;}
.cdi-gestiones .form-control {min-height: 34px; height: auto; padding: 6px 9px; font-size: 13px;}
.cdi-gestiones textarea.form-control {min-height: 100px;}
.cdi-gestiones input[type=checkbox] {width: 16px; height: 16px; vertical-align: middle; margin-right: 5px;}
.cdi-gestiones .fila {display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: flex-end;}
.cdi-gestiones .fila > * {flex: 1 1 240px; min-width: 0;}
.cdi-gestiones #selector_cuenta {margin-bottom: 10px;}
.cdi-gestiones #selector_cuenta label {margin: 0 0 5px;}
.cdi-gestiones .selector {min-width: 0;}
.cdi-gestiones .select2-container {width: 100% !important;}
.cdi-gestiones .select2-container .select2-selection--single {height: 34px !important; min-height: 34px; border-color: #c5d6e8; border-radius: 7px;}
.cdi-gestiones .select2-container .select2-selection--single .select2-selection__rendered,
.cdi-gestiones .select2-container .select2-selection--single .select2-selection__arrow {height: 32px !important; line-height: 32px !important; font-size: 13px;}
.cdi-gestiones .select2-container .select2-selection--multiple {min-height: 34px !important;}
.cdi-gestiones .select2-dropdown {font-size: 13px;}
.cdi-gestiones .acciones {display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px;}
.cdi-gestiones .btn {min-height: 32px; padding: 5px 10px; line-height: 20px; font-size: 13px; white-space: normal; text-align: center;}
.cdi-gestiones .btn:disabled {cursor: default;}
.cdi-gestiones .resumen-cabecera {display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 16px;}
.cdi-gestiones .resumen-cabecera > * {margin: 0;}
.cdi-gestiones .aviso {padding: 8px 10px; border-left: 3px solid #4386bd; background: #eaf3fc; border-radius: 5px; font-size: 12px;}
.cdi-gestiones .error {color: #8b2626;}
.cdi-gestiones #resultado:empty {display: none;}
.cdi-gestiones .firma {display: block; width: 100%; height: 150px; border: 1px solid #acc3d8; border-radius: 7px; background: #fff; touch-action: none;}
.cdi-gestiones small {color: #536b7b;}
.cdi-gestiones iframe {width: 100%; height: 60vh; border: 1px solid #d7e4ee; margin: 8px 0;}
.cdi-gestiones .importe {font-size: 20px; font-weight: 600;}
.cdi-gestiones .oculto {display: none !important;}
body.cdi-gestiones-embebida {background: transparent;}
.cdi-gestiones-embebida main {max-width: none; padding: 10px 12px;}
.cdi-gestiones-embebida main > header {display: none;}
@media (max-width: 767px), (pointer: coarse) {
    .cdi-gestiones .btn,
    .cdi-gestiones details.panel > summary {min-height: 44px;}
    .cdi-gestiones .form-control {min-height: 44px;}
    .cdi-gestiones .select2-container .select2-selection--single {height: 44px !important; min-height: 44px;}
    .cdi-gestiones .select2-container .select2-selection--single .select2-selection__rendered,
    .cdi-gestiones .select2-container .select2-selection--single .select2-selection__arrow {height: 42px !important; line-height: 42px !important;}
    .cdi-gestiones .select2-results__option {min-height: 44px;}
}
@media (max-width: 575.98px) {
    .cdi-gestiones main {padding: 8px;}
    .cdi-gestiones .fila {gap: 6px;}
    .cdi-gestiones .acciones > * {flex: 1 1 160px; min-width: 0;}
}

/* AJUSTES DENSIDAD PROPIOS LANZADERA 20261015 INICIO
 * La densidad transversal vive en cdi-ui-core.css. Aqui permanecen solo los
 * ajustes de Inicio, Configuracion y fichas propias de Lanzadera. */
@media (min-width: 768px) {
    body.cdi-lanzadera-pilot [id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body {
        padding: 10px 12px;
        gap: 8px 10px;
    }

    body.cdi-lanzadera-pilot [id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body > .form-group.row {
        padding: 8px;
        border-radius: 10px;
    }

    body.cdi-lanzadera-pilot [id^="ficha"][id$="_preloader"] + .container-fluid > .card .control-label {
        margin-bottom: 3px;
    }

    body.cdi-lanzadera-pilot [id^="ficha"][id$="_preloader"] + .container-fluid > .card .border-top .card-body {
        padding: 10px 12px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-home {
        padding-top: 8px;
        padding-bottom: 12px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-home__toolbar {
        margin-bottom: 10px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-home .cdi-launcher-solution {
        min-height: 138px;
        margin-bottom: 8px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-solution__body {
        padding: 12px !important;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-solution__layout {
        gap: 10px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config__tabs {
        padding: 6px 8px 0;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config__tabs .nav-link {
        min-height: 38px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config__intro {
        gap: 12px;
        margin-bottom: 10px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config__bridge {
        margin-bottom: 8px;
        padding: 10px 12px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config__bridge-actions {
        margin-top: 8px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config__bridge-state-help {
        margin-bottom: 5px;
        padding: 7px 9px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config__preferred {
        gap: 10px;
        margin-bottom: 8px;
        padding: 10px 12px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config__editor {
        margin-top: 10px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config__info-grid,
    body.cdi-lanzadera-pilot .cdi-launcher-config__about-grid,
    body.cdi-lanzadera-pilot .cdi-launcher-config__about {
        gap: 10px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config__info-card,
    body.cdi-lanzadera-pilot .cdi-launcher-config__about-hero {
        padding: 12px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config dl {
        margin-top: 6px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config dl > div {
        padding: 5px 0;
    }
}

@media (max-width: 767.98px) {
    body.cdi-lanzadera-pilot [id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body,
    body.cdi-lanzadera-pilot [id^="ficha"][id$="_preloader"] + .container-fluid > .card .border-top .card-body {
        padding: 8px 6px;
        gap: 6px;
    }

    body.cdi-lanzadera-pilot [id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body > .form-group.row {
        padding: 7px;
        border-radius: 9px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-home {
        padding: 8px 6px 12px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-home__toolbar,
    body.cdi-lanzadera-pilot .cdi-launcher-home .cdi-launcher-solution {
        margin-bottom: 8px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-solution__body {
        padding: 10px !important;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config__tabs {
        padding: 4px 4px 0;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config__intro {
        gap: 8px;
        margin-bottom: 8px;
    }

    body.cdi-lanzadera-pilot .cdi-launcher-config__bridge,
    body.cdi-lanzadera-pilot .cdi-launcher-config__preferred,
    body.cdi-lanzadera-pilot .cdi-launcher-config__info-card,
    body.cdi-lanzadera-pilot .cdi-launcher-config__about-hero {
        margin-bottom: 8px;
        padding: 8px;
    }
}
/* AJUSTES DENSIDAD PROPIOS LANZADERA 20261015 FIN */

/* CDI_FICHAS_CAMPOS_SIN_TARJETA_20261016_INICIO
 * Los campos normales conservan su estructura técnica, pero no se presentan
 * como tarjetas independientes. Los bloques funcionales con agrupación propia
 * mantienen sus reglas específicas. */
[id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body {
    padding: 10px 12px;
    gap: 8px 12px;
}

body.cdi-lanzadera-pilot [id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body > .form-group.row,
[id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body > .form-group.row,
#fichacuenta_tabdatosgenerales > .card-body > .form-group.row,
#fichacuenta_tabfacturacion > .card-body > .form-group.row,
#fichacuenta_tabpagos > .card-body > .form-group.row,
#fichacuenta_datoscdi > .form-group.row {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

#fichacuenta_tabdatosgenerales > .card-body,
#fichacuenta_tabfacturacion > .card-body,
#fichacuenta_tabpagos > .card-body,
#fichacuenta_tabpagos .card-body:first-child {
    padding: 10px 12px;
    gap: 8px 12px;
}

#fichacuenta_datoscdi {
    gap: 8px 12px;
}

@media (max-width: 767.98px) {
    [id^="ficha"][id$="_preloader"] + .container-fluid > .card > form.form-horizontal > .card-body,
    #fichacuenta_tabdatosgenerales > .card-body,
    #fichacuenta_tabfacturacion > .card-body,
    #fichacuenta_tabpagos > .card-body,
    #fichacuenta_tabpagos .card-body:first-child {
        padding: 8px 6px;
        gap: 6px 8px;
    }
}
/* CDI_FICHAS_CAMPOS_SIN_TARJETA_20261016_FIN */

/* Instalación de aplicaciones CDI desde un origen propio. */
.cdi-pwa-app-page {
    min-height: 100vh;
    margin: 0;
    padding: 24px 14px;
    background:
        radial-gradient(circle at 12% 8%, rgba(66, 151, 232, .24), transparent 34%),
        linear-gradient(135deg, #edf5fc 0%, #f7fbfe 52%, #e6f4f8 100%);
    color: #20384f;
}

.cdi-pwa-app-card {
    width: min(100%, 480px);
    margin: 0 auto;
    padding: 28px 30px 30px;
    border: 1px solid #d7e3ed;
    border-radius: 24px;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 22px 58px rgba(31, 68, 104, .15);
    text-align: center;
}

.cdi-pwa-app-icon-wrap {
    width: 132px;
    height: 132px;
    margin: 0 auto 18px;
    overflow: hidden;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(40, 83, 124, .16);
}

.cdi-pwa-app-icon {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.cdi-pwa-app-eyebrow {
    margin: 0 0 7px;
    color: #2878c8;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
}

.cdi-pwa-app-card h1 {
    margin: 0 0 10px;
    color: #20384f;
    font-size: clamp(25px, 7vw, 34px);
    font-weight: 800;
    line-height: 1.15;
}

.cdi-pwa-app-description {
    max-width: 390px;
    margin: 0 auto 22px;
    color: #60758a;
    font-size: 15px;
    line-height: 1.55;
}

.cdi-pwa-app-install,
.cdi-pwa-app-open {
    display: flex;
    width: 100%;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border-radius: 11px;
    font-size: 16px;
    font-weight: 750;
}

.cdi-pwa-app-install {
    border: 1px solid #087ff5;
    background: #087ff5;
    box-shadow: 0 9px 24px rgba(8, 127, 245, .22);
    color: #fff;
}

.cdi-pwa-app-install:hover,
.cdi-pwa-app-install:focus {
    background: #066bcf;
    color: #fff;
}

.cdi-pwa-app-status {
    min-height: 38px;
    margin: 10px 4px 12px;
    color: #62778b;
    font-size: 13px;
    line-height: 1.45;
}

.cdi-pwa-app-open {
    border: 1px solid #b8cce0;
    background: #f3f8fc;
    color: #315f89;
}

.cdi-pwa-app-open:hover,
.cdi-pwa-app-open:focus {
    background: #e5f0f9;
    color: #214d76;
}

.cdi-pwa-app-cloud {
    display: inline-block;
    margin-top: 20px;
    color: #426581;
    font-weight: 700;
}

@media (max-width: 575.98px) {
    .cdi-pwa-app-page {
        padding: 12px;
    }

    .cdi-pwa-app-card {
        padding: 22px 18px;
        border-radius: 19px;
    }

    .cdi-pwa-app-icon-wrap {
        width: 116px;
        height: 116px;
        border-radius: 24px;
    }
}
