body{background:#f3f5f8;color:#26364a}main{max-width:1500px;min-height:70vh}.card{border:1px solid #e2e8ef;border-radius:12px;box-shadow:0 3px 14px #18324a08}.auth-card{max-width:440px;margin:5vh auto}.edit-card{max-width:850px}table td{vertical-align:middle}td form{max-width:230px}.column-filters input{min-width:80px;max-width:200px}#plan-canvas{max-width:100%;height:auto;border:1px solid #ccd4df;background:#fff;touch-action:none}.navbar-brand{font-weight:600}pre{max-height:400px;overflow:auto;white-space:pre-wrap;word-break:break-word}dt,dd{overflow-wrap:anywhere}@media(max-width:600px){.container-fluid{padding-inline:1rem}.card-body{padding:1rem}.btn{margin-block:3px}}@media print{nav,footer,form,button,.dt-search,.dt-length,.dt-paging,.column-filters{display:none!important}body{background:white}.card{box-shadow:none}main{max-width:none}table{font-size:11px}.dt-container .dt-layout-row{display:block}}
.page-heading,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.section-heading{margin-bottom:1rem}.compact-section,.document-info{max-width:850px}.detail-values{margin:0}.detail-values>div{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.65rem}.detail-values dt{font-weight:600}.detail-values dd{margin:0;white-space:pre-wrap;flex:1;min-width:140px}.table-shell{overflow-x:auto}.table-actions{min-width:160px}.table-actions form{display:inline-block;margin:.2rem}.line-editor{display:flex;gap:.35rem;align-items:end;flex-wrap:wrap}.line-editor label{font-size:.8rem;width:95px}.line-editor input{width:95px}.table-actions form:has(.line-editor){max-width:none}.ajax-picker{position:relative}.ajax-results{position:absolute;z-index:1056;width:100%;max-height:280px;overflow:auto;box-shadow:0 6px 18px #0002}.ajax-results:empty{display:none}.ajax-results button{text-align:left}.quote-row label{width:100%}.attachment-card .dt-layout-row:first-child{justify-content:flex-end}.state-picker{max-width:250px}.modal form{width:100%}.modal-footer{display:flex;justify-content:flex-end}.card .card{box-shadow:none}@media(max-width:767px){.page-heading{align-items:flex-start}.detail-values>div{display:block}.detail-values dt,.detail-values dd{display:inline}.detail-values dd{margin-left:.3rem}.line-editor label{width:85px}}@media print{.no-print,.table-actions,.dt-info,.dt-search,.dt-length,.dt-paging,.dt-column-order,.alert{display:none!important}.table-shell{overflow:visible}.dt-layout-row{display:none!important}.dt-layout-table{display:block!important}.document-info{max-width:none}.card{break-inside:avoid}a{color:inherit;text-decoration:none}.page-heading{margin-bottom:1rem!important}}
@media print{tr.child,.dtr-details{display:none!important}.js-table th:not(.no-print),.js-table td:not(.no-print){display:table-cell!important}.js-table .dtr-control::before{display:none!important}}
.table > tbody > tr.linea-pendiente > td {
    background-color: #fff9df !important;
    --bs-table-bg: #fff9df;
    --bs-table-striped-bg: #fff9df;
    --bs-table-accent-bg: transparent;
    box-shadow: none !important;
}

/* Permite que los elementos se ajusten dentro de la tarjeta */
.card,
.card-body,
.table-shell,
.table-shell .dt-container,
.table-shell .dt-layout-cell {
    min-width: 0;
}

/* Limita el contenedor al espacio disponible */
.table-shell,
.table-shell .dt-container {
    width: 100%;
    max-width: 100%;
}

/* Evita desbordamientos por márgenes de las filas de DataTables */
.table-shell .dt-layout-row {
    margin-left: 0;
    margin-right: 0;
}

/* Permite partir textos largos dentro de las celdas */
.table-shell table th,
.table-shell table td {
    white-space: normal;
    overflow-wrap: anywhere;
}

/* Deja que los botones de acciones se distribuyan en varias líneas */
.table-shell .table-actions {
    min-width: 0;
}

/* Ajusta la estructura de DataTables al ancho de la tarjeta */
.table-shell .dt-layout-table {
    width: 100%;
    max-width: 100%;
}

.table-shell .dt-layout-table > .dt-layout-cell {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.table-shell table.dataTable {
    width: 100% !important;
    max-width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box;
}
/* Corrige los márgenes de las filas generadas por DataTables */
.table-shell .dt-container > .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}
.table-shell .table > thead > tr > th {
    background-color: #e6edf5;
    color: #26364a;
    font-weight: 600;
    border-bottom: 2px solid #c4d2e2;
    padding-top: 12px;
    padding-bottom: 12px;
}

/* Evita partir palabras letra por letra */
.table-shell table th,
.table-shell table td {
    overflow-wrap: normal;
    word-break: normal;
}

@media screen and (max-width: 767px) {
    .table-shell table.dataTable > thead > tr > th,
    .table-shell table.dataTable > tbody > tr > td {
        white-space: nowrap;
    }

    /* Los datos desplegados sí pueden ocupar varias líneas */
    .table-shell .dtr-details {
        width: 100%;
    }

    .table-shell .dtr-details li {
        display: flex;
        gap: 0.75rem;
        padding: 0.5rem 0;
        white-space: normal;
    }

    .table-shell .dtr-title {
        flex: 0 0 35%;
        white-space: normal;
    }

    .table-shell .dtr-data {
        flex: 1;
        min-width: 0;
        white-space: normal;
        overflow-wrap: break-word;
    }
}
@media (max-width: 767px) {
    .dashboard-heading {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .dashboard-heading > .d-flex {
        width: 100%;
        flex-wrap: wrap;
    }
}

.nav-user-actions {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.nav-user-actions > a {
    margin-right: 0 !important;
}

.nav-user-actions form {
    margin: 0;
}

@media (max-width: 1199px) {
    .nav-user-actions {
        flex-direction: column;
        align-items: flex-start;
        gap: 1.25rem;
        margin-top: 1rem;
        padding-top: 1rem;
        border-top: 1px solid rgba(255, 255, 255, 0.2);
    }
}
/* Enlaces del menú y de la zona de usuario */
.navbar.navbar-dark .nav-link {
    color: #d1d5db;
}

.navbar.navbar-dark .nav-link:hover,
.navbar.navbar-dark .nav-link:focus {
    color: #fff;
}

.navbar.navbar-dark .nav-link.active {
    color: #fff;
    font-weight: 700;
}

.company-logo {
    display: block;
    width: auto;
    height: 44px;
    max-width: 200px;
    object-fit: contain;
}

@media (max-width: 767px) {
    .company-logo {
        height: 36px;
        max-width: 160px;
    }
}