/* Capa visual moderna para SysFacturacion, alineada a la experiencia SisEcuador */

body.sis-sysfacturacion {
    background: #f4f8fc;
    color: #0f2748;
}

.sis-home-dashboard {
    color: #001f46;
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin: 0 auto;
    max-width: 1720px;
    padding: 18px 20px 36px;
}

.sis-home-hero,
.sis-home-panel,
.sis-home-kpi,
.sis-home-mini,
.sis-home-module {
    background: #fff;
    border: 1px solid #cfe1f7;
    border-radius: 10px;
    box-shadow: 0 18px 42px rgba(6, 39, 78, .08);
}

.sis-home-hero {
    align-items: center;
    background: #eef8ff;
    display: flex;
    gap: 24px;
    justify-content: space-between;
    min-height: 150px;
    padding: 28px 32px;
}

.sis-home-kicker,
.sis-home-panel-head span {
    color: #005bd8;
    display: block;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .4px;
    text-transform: uppercase;
}

.sis-home-hero h1,
.sis-home-panel h2,
.sis-home-module h3 {
    color: #001b3f;
    margin: 0;
}

.sis-home-hero h1 {
    font-size: 34px;
    line-height: 1.1;
    margin-top: 12px;
}

.sis-home-hero p {
    color: #17365d;
    font-size: 15px;
    line-height: 1.55;
    margin: 12px 0 0;
    max-width: 760px;
}

.sis-home-actions {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(150px, 1fr));
    min-width: 340px;
}

.sis-home-action,
.sis-home-module a {
    align-items: center;
    background: #f4f9ff;
    border: 1px solid #bcd8fb;
    border-radius: 8px;
    color: #004a9f;
    display: inline-flex;
    font-weight: 900;
    gap: 10px;
    justify-content: center;
    min-height: 44px;
    padding: 10px 14px;
    text-decoration: none;
}

.sis-home-action.primary,
.sis-home-module a {
    background: linear-gradient(90deg, #1f6df2, #08a9df);
    border-color: transparent;
    color: #fff;
}

.sis-home-action:hover,
.sis-home-module a:hover {
    filter: brightness(.98);
    text-decoration: none;
}

.sis-home-kpis {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.sis-home-kpi {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 145px;
    padding: 16px;
}

.sis-home-kpi-icon {
    align-items: center;
    border-radius: 8px;
    display: inline-flex;
    height: 36px;
    justify-content: center;
    width: 36px;
}

.sis-home-kpi small,
.sis-home-mini small {
    color: #31516f;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
}

.sis-home-kpi strong {
    color: #001b3f;
    font-size: 22px;
    line-height: 1.15;
}

.sis-home-kpi span:last-child,
.sis-home-module p {
    color: #435d78;
    font-size: 13px;
    line-height: 1.45;
}

.sis-home-kpi.sales .sis-home-kpi-icon,
.sis-home-module.comprobantes i {
    background: #e7f1ff;
    color: #147fe8;
}

.sis-home-kpi.purchases .sis-home-kpi-icon,
.sis-home-module.compras i {
    background: #e8f8f0;
    color: #00a978;
}

.sis-home-kpi.cash .sis-home-kpi-icon,
.sis-home-module.caja i {
    background: #fff3d6;
    color: #c37b00;
}

.sis-home-kpi.payable .sis-home-kpi-icon,
.sis-home-module.inventario i {
    background: #eef4ff;
    color: #3458d4;
}

.sis-home-kpi.sri .sis-home-kpi-icon,
.sis-home-module.contabilidad i {
    background: #f0e7ff;
    color: #7a35ff;
}

.sis-home-kpi.payroll .sis-home-kpi-icon,
.sis-home-module.rrhh i {
    background: #ffeceb;
    color: #ec3a3a;
}

.sis-home-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(0, 1.55fr) minmax(320px, .85fr);
}

.sis-home-panel {
    padding: 18px;
}

.sis-home-panel-head {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    margin-bottom: 16px;
}

.sis-home-panel h2 {
    font-size: 22px;
    margin-top: 5px;
}

.sis-home-pill {
    background: #eaf5ff;
    border: 1px solid #aad1ff;
    border-radius: 999px;
    color: #005bd8;
    font-weight: 900;
    min-width: 130px;
    padding: 9px 14px;
    text-align: center;
}

.sis-home-mix {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.sis-home-mix-row > div:first-child {
    display: flex;
    font-weight: 900;
    justify-content: space-between;
    margin-bottom: 7px;
}

.sis-home-bar {
    background: #e9f2fb;
    border-radius: 999px;
    height: 12px;
    overflow: hidden;
}

.sis-home-bar-fill {
    display: block;
    height: 100%;
    min-width: 0;
}

.sis-home-bar-fill.ventas { background: #147fe8; }
.sis-home-bar-fill.compras { background: #00a978; }
.sis-home-bar-fill.retenciones { background: #f0a400; }
.sis-home-bar-fill.roles { background: #ec3a3a; }

.sis-home-alerts {
    display: flex;
    flex-direction: column;
    gap: 10px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.sis-home-alert {
    align-items: center;
    border: 1px solid #d7e7f8;
    border-radius: 8px;
    display: grid;
    gap: 12px;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    padding: 12px;
}

.sis-home-alert i {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    height: 34px;
    justify-content: center;
    width: 34px;
}

.sis-home-alert strong,
.sis-home-alert span {
    display: block;
}

.sis-home-alert strong {
    color: #001b3f;
    font-weight: 900;
}

.sis-home-alert span {
    color: #405a75;
    font-size: 12px;
    line-height: 1.35;
    margin-top: 2px;
}

.sis-home-alert a {
    color: #005bd8;
    font-weight: 900;
    text-decoration: none;
}

.sis-home-alert.warning { background: #fff8e8; border-color: #ffd97d; }
.sis-home-alert.warning i { background: #ffe8a6; color: #b06e00; }
.sis-home-alert.info { background: #edf7ff; border-color: #afd8ff; }
.sis-home-alert.info i { background: #d9eeff; color: #147fe8; }
.sis-home-alert.danger { background: #fff0f0; border-color: #ffc2c2; }
.sis-home-alert.danger i { background: #ffe1e1; color: #df2b2b; }
.sis-home-alert.success { background: #ecfff5; border-color: #9be4bd; }
.sis-home-alert.success i { background: #d8f8e7; color: #009b61; }

.sis-home-quick-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.sis-home-mini {
    align-items: center;
    display: flex;
    gap: 14px;
    min-height: 92px;
    padding: 16px;
}

.sis-home-mini i {
    align-items: center;
    background: #eaf5ff;
    border-radius: 9px;
    color: #147fe8;
    display: inline-flex;
    font-size: 18px;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.sis-home-mini strong {
    color: #001b3f;
    display: block;
    font-size: 24px;
    margin-top: 4px;
}

.sis-home-modules {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.sis-home-module {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-height: 225px;
    padding: 20px;
}

.sis-home-module i {
    align-items: center;
    border-radius: 10px;
    display: inline-flex;
    font-size: 20px;
    height: 44px;
    justify-content: center;
    width: 44px;
}

.sis-home-module h3 {
    font-size: 19px;
}

.sis-home-module a {
    margin-top: auto;
}

@media (max-width: 1320px) {
    .sis-home-kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sis-home-grid,
    .sis-home-modules {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 860px) {
    .sis-home-dashboard {
        padding: 12px;
    }

    .sis-home-hero {
        align-items: stretch;
        flex-direction: column;
        padding: 22px;
    }

    .sis-home-actions,
    .sis-home-kpis,
    .sis-home-quick-grid {
        grid-template-columns: 1fr;
        min-width: 0;
    }

    .sis-home-hero h1 {
        font-size: 28px;
    }

    .sis-home-alert {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .sis-home-alert a {
        grid-column: 2;
    }
}

body.sis-sysfacturacion .sis-user-subtitle {
    color: #35516f;
}

body.sis-sysfacturacion .right-side {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 50px);
}

body.sis-sysfacturacion .right-side > .content {
    flex: 1 0 auto;
}

body.sis-sysfacturacion .sis-master-title {
    display: none;
}

body.sis-sysfacturacion .main-footer {
    align-items: center;
    background: #ffffff;
    border-top: 1px solid #dbe7f5;
    box-sizing: border-box;
    color: #334155;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: space-between;
    margin: 24px 0 0;
    padding: 12px 18px;
    width: 100%;
}

body.sis-sysfacturacion .main-footer a {
    color: #2563eb;
    font-weight: 800;
}

body.sis-sysfacturacion .admin-dashboard {
    display: block;
}

body.sis-sysfacturacion .admin-dash-hero {
    align-items: center;
    background: linear-gradient(90deg,#ffffff 0%,#eef8ff 100%);
    border: 1px solid #c8def4;
    border-radius: 16px;
    box-shadow: 0 18px 45px rgba(7,42,84,.08);
    display: flex;
    gap: 18px;
    justify-content: space-between;
    margin: 10px 0 18px;
    padding: 28px 32px;
}

body.sis-sysfacturacion .admin-dash-hero.compact {
    padding: 24px 28px;
}

body.sis-sysfacturacion .admin-dash-hero span {
    color: #005fbd;
    display: block;
    font-size: 12px;
    font-weight: 900;
    margin-bottom: 8px;
    text-transform: uppercase;
}

body.sis-sysfacturacion .admin-dash-hero h1 {
    color: #001f45;
    font-size: 30px;
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1.1;
    margin: 0;
}

body.sis-sysfacturacion .admin-dash-hero p {
    color: #17395e;
    font-size: 14px;
    margin: 9px 0 0;
}

body.sis-sysfacturacion .admin-dash-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
    min-width: 260px;
}

body.sis-sysfacturacion .admin-dash-actions a {
    align-items: center;
    background: #ffffff;
    border: 1px solid #bdd7f5;
    border-radius: 11px;
    box-shadow: 0 10px 24px rgba(7,42,84,.08);
    color: #075eb2;
    display: inline-flex;
    font-size: 12px;
    font-weight: 900;
    gap: 7px;
    min-height: 40px;
    padding: 10px 13px;
    text-decoration: none;
}

body.sis-sysfacturacion .admin-kpi-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(6,minmax(150px,1fr));
    margin-bottom: 18px;
}

body.sis-sysfacturacion .admin-kpi-card {
    background: #ffffff;
    border: 1px solid #c8def4;
    border-left: 5px solid #2563eb;
    border-radius: 14px;
    box-shadow: 0 16px 36px rgba(7,42,84,.07);
    min-height: 126px;
    padding: 16px 17px;
}

body.sis-sysfacturacion .admin-kpi-card small {
    color: #005fbd;
    display: block;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

body.sis-sysfacturacion .admin-kpi-card strong {
    color: #001f45;
    display: block;
    font-size: 26px;
    font-weight: 900;
    line-height: 1.15;
    margin: 12px 0 6px;
}

body.sis-sysfacturacion .admin-kpi-card span {
    color: #48627f;
    display: block;
    font-size: 12px;
}

body.sis-sysfacturacion .admin-kpi-card.green { border-left-color: #10b981; }
body.sis-sysfacturacion .admin-kpi-card.amber { border-left-color: #f59e0b; }
body.sis-sysfacturacion .admin-kpi-card.red { border-left-color: #ef3340; }
body.sis-sysfacturacion .admin-kpi-card.blue { border-left-color: #0ea5e9; }
body.sis-sysfacturacion .admin-kpi-card.purple { border-left-color: #8b5cf6; }

body.sis-sysfacturacion .admin-work-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(320px,.85fr) minmax(420px,1.15fr);
    margin-bottom: 18px;
}

body.sis-sysfacturacion .admin-panel-card,
body.sis-sysfacturacion .admin-table-card,
body.sis-sysfacturacion .admin-filter-card {
    background: #ffffff;
    border: 1px solid #c8def4;
    border-radius: 14px;
    box-shadow: 0 16px 40px rgba(7,42,84,.08);
    margin-bottom: 16px;
    padding: 18px;
}

body.sis-sysfacturacion .admin-filter-card {
    align-items: end;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(320px,1fr) minmax(180px,240px) auto;
}

body.sis-sysfacturacion .admin-filter-card.docs {
    grid-template-columns: minmax(320px,1fr) minmax(160px,220px) minmax(160px,220px) auto;
}

body.sis-sysfacturacion .admin-table-card {
    overflow-x: auto;
    padding: 0;
}

body.sis-sysfacturacion .admin-panel-head {
    align-items: center;
    display: flex;
    justify-content: space-between;
    margin-bottom: 14px;
}

body.sis-sysfacturacion .admin-panel-head small {
    color: #005fbd;
    display: block;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

body.sis-sysfacturacion .admin-panel-head h2 {
    color: #001f45;
    font-size: 20px;
    font-weight: 900;
    margin: 2px 0 0;
}

body.sis-sysfacturacion .admin-panel-head a {
    color: #075eb2;
    font-weight: 900;
    text-decoration: none;
}

body.sis-sysfacturacion .admin-task {
    align-items: center;
    background: #f8fbff;
    border: 1px solid #d5e8fb;
    border-left: 5px solid #2563eb;
    border-radius: 12px;
    display: grid;
    gap: 12px;
    grid-template-columns: 38px 1fr auto;
    margin-bottom: 10px;
    padding: 12px;
}

body.sis-sysfacturacion .admin-task.amber { border-left-color: #f59e0b; }
body.sis-sysfacturacion .admin-task.red { border-left-color: #ef3340; }
body.sis-sysfacturacion .admin-task.green { border-left-color: #10b981; }
body.sis-sysfacturacion .admin-task.blue { border-left-color: #0ea5e9; }

body.sis-sysfacturacion .admin-task > i {
    align-items: center;
    background: #eaf6ff;
    border-radius: 10px;
    color: #075eb2;
    display: inline-flex;
    height: 38px;
    justify-content: center;
    width: 38px;
}

body.sis-sysfacturacion .admin-task strong,
body.sis-sysfacturacion .admin-task span {
    display: block;
}

body.sis-sysfacturacion .admin-task strong {
    color: #001f45;
    font-size: 13px;
    font-weight: 900;
}

body.sis-sysfacturacion .admin-task span {
    color: #48627f;
    font-size: 12px;
    margin-top: 3px;
}

body.sis-sysfacturacion .admin-task a {
    background: linear-gradient(135deg,#2563eb,#0ea5e9);
    border-radius: 9px;
    color: #ffffff;
    font-size: 12px;
    font-weight: 900;
    padding: 8px 12px;
    text-decoration: none;
}

body.sis-sysfacturacion .admin-report-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(4,minmax(180px,1fr));
}

body.sis-sysfacturacion .admin-report-card {
    background: #ffffff;
    border: 1px solid #c8def4;
    border-radius: 14px;
    box-shadow: 0 16px 36px rgba(7,42,84,.07);
    color: #001f45;
    min-height: 132px;
    padding: 18px;
    text-decoration: none;
}

body.sis-sysfacturacion .admin-report-card i {
    color: #0ea5e9;
    font-size: 22px;
    margin-bottom: 13px;
}

body.sis-sysfacturacion .admin-report-card strong,
body.sis-sysfacturacion .admin-report-card span {
    display: block;
}

body.sis-sysfacturacion .admin-report-card strong {
    color: #001f45;
    font-size: 16px;
    font-weight: 900;
}

body.sis-sysfacturacion .admin-report-card span {
    color: #48627f;
    font-size: 12px;
    margin-top: 7px;
}

body.sis-sysfacturacion .pill {
    border-radius: 999px;
    display: inline-flex;
    font-size: 11px;
    font-weight: 900;
    justify-content: center;
    min-width: 70px;
    padding: 6px 10px;
}

body.sis-sysfacturacion .pill.ok {
    background: #dcf6e6;
    border: 1px solid #88d7a6;
    color: #087a39;
}

body.sis-sysfacturacion .pill.warn {
    background: #fff8df;
    border: 1px solid #f4d37b;
    color: #7b5200;
}

body.sis-sysfacturacion .pill.bad {
    background: #ffe8e8;
    border: 1px solid #ff9d9d;
    color: #a20f0f;
}

body.sis-sysfacturacion .grid-action {
    background: linear-gradient(135deg,#2563eb,#0ea5e9) !important;
    border: 0 !important;
    border-radius: 9px !important;
    color: #ffffff !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    min-height: 32px !important;
    padding: 7px 12px !important;
}

body.sis-sysfacturacion .catalog-pill.danger span {
    background: #ef3340;
    box-shadow: 0 8px 18px rgba(239,51,64,.18);
}

@media (max-width: 1280px) {
    body.sis-sysfacturacion .admin-kpi-grid {
        grid-template-columns: repeat(3,minmax(180px,1fr));
    }
    body.sis-sysfacturacion .admin-report-grid {
        grid-template-columns: repeat(2,minmax(220px,1fr));
    }
}

@media (max-width: 900px) {
    body.sis-sysfacturacion .admin-dash-hero,
    body.sis-sysfacturacion .admin-panel-head {
        align-items: flex-start;
        flex-direction: column;
    }
    body.sis-sysfacturacion .admin-dash-actions {
        justify-content: flex-start;
        min-width: 0;
    }
    body.sis-sysfacturacion .admin-work-grid,
    body.sis-sysfacturacion .admin-filter-card,
    body.sis-sysfacturacion .admin-filter-card.docs {
        grid-template-columns: 1fr;
    }
}

body.sis-sysfacturacion .sidebar-menu .treeview-menu .sis-submenu-heading {
    color: #005fbd;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .02em;
    margin: 10px 12px 5px;
    padding: 7px 9px 4px;
    text-transform: uppercase;
}

body.sis-sysfacturacion .sidebar-menu .treeview-menu .sis-submenu-heading::after {
    background: #dbeafe;
    content: "";
    display: block;
    height: 1px;
    margin-top: 6px;
    width: 100%;
}

body.sis-sysfacturacion .sidebar-menu .treeview-menu > li > a .fa {
    color: #2563eb;
    margin-right: 7px;
    width: 14px;
}

.sis-sysfacturacion .catalog-hero {
    background: linear-gradient(90deg,#ffffff 0%,#eef8ff 100%) !important;
    border: 1px solid #c8def4 !important;
    border-radius: 14px !important;
    box-shadow: 0 18px 45px rgba(7,42,84,.08) !important;
    margin: 10px 0 18px !important;
    padding: 26px 30px !important;
}

.sis-sysfacturacion .catalog-hero small,
.sis-sysfacturacion .catalog-hero span {
    color: #005fbd;
    display: block;
    font-size: 12px;
    font-weight: 900;
    margin-bottom: 8px;
    text-transform: uppercase;
}

.sis-sysfacturacion .catalog-hero h1 {
    color: #001f45;
    font-size: 28px;
    font-weight: 900;
    letter-spacing: 0;
    margin: 0;
}

.sis-sysfacturacion .catalog-hero p {
    color: #17395e;
    font-size: 14px;
    margin: 8px 0 0;
}

.sis-sysfacturacion .catalog-card {
    background: #ffffff !important;
    border: 1px solid #c8def4 !important;
    border-radius: 12px !important;
    box-shadow: 0 16px 40px rgba(7,42,84,.08) !important;
    margin-bottom: 18px !important;
    padding: 20px 22px !important;
}

.sis-sysfacturacion .catalog-card-title {
    color: #001f45;
    font-size: 18px;
    font-weight: 900;
    margin: 0 0 14px;
}

.sis-sysfacturacion .catalog-filter-grid {
    align-items: end;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(240px,1fr) auto auto;
}

.sis-sysfacturacion .catalog-form-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2,minmax(220px,1fr));
}

.sis-sysfacturacion .catalog-form-grid.three {
    grid-template-columns: repeat(3,minmax(180px,1fr));
}

.sis-sysfacturacion .catalog-span {
    grid-column: 1 / -1;
}

.sis-sysfacturacion .catalog-field label,
.sis-sysfacturacion .catalog-field > span {
    color: #001f45;
    display: block;
    font-size: 12px;
    font-weight: 900;
    margin-bottom: 6px;
}

.sis-sysfacturacion .catalog-field .form-control,
.sis-sysfacturacion .catalog-field select,
.sis-sysfacturacion .catalog-field input[type="text"],
.sis-sysfacturacion .catalog-field input[type="date"],
.sis-sysfacturacion .catalog-field input[type="file"],
.sis-sysfacturacion .catalog-field input[type="number"],
.sis-sysfacturacion .catalog-field textarea {
    background: #ffffff !important;
    border: 1px solid #bdd4f0 !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    color: #001f45 !important;
    font-size: 13px !important;
    min-height: 40px !important;
    padding: 8px 11px !important;
    width: 100% !important;
}

.sis-sysfacturacion .catalog-field textarea {
    min-height: 74px;
    resize: vertical;
}

.sis-sysfacturacion .catalog-check-card {
    align-items: center;
    background: #f7fbff;
    border: 1px solid #bdd7f5;
    border-radius: 10px;
    color: #062650;
    display: flex;
    gap: 12px;
    min-height: 52px;
    padding: 11px 13px;
}

.sis-sysfacturacion .catalog-check-card input {
    height: 18px;
    margin: 0;
    width: 18px;
}

.sis-sysfacturacion .catalog-check-card strong,
.sis-sysfacturacion .catalog-check-card small {
    display: block;
}

.sis-sysfacturacion .catalog-check-card small {
    color: #48627f;
    font-size: 12px;
    margin-top: 2px;
}

.sis-sysfacturacion .catalog-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.sis-sysfacturacion .catalog-btn {
    border: 0 !important;
    border-radius: 9px !important;
    box-shadow: 0 10px 22px rgba(30,136,229,.18) !important;
    color: #ffffff !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1.1 !important;
    min-height: 38px !important;
    min-width: 124px !important;
    padding: 9px 16px !important;
    text-align: center !important;
}

.sis-sysfacturacion .catalog-btn.primary {
    background: linear-gradient(135deg,#2563eb,#0ea5e9);
}

.sis-sysfacturacion .catalog-btn.success {
    background: linear-gradient(135deg,#10b981,#059669);
}

.sis-sysfacturacion .catalog-btn.danger {
    background: linear-gradient(135deg,#ef3340,#dc2626);
}

.sis-sysfacturacion .catalog-btn.light {
    background: #ffffff;
    border: 1px solid #bdd4f0;
    box-shadow: none;
    color: #001f45 !important;
}

.sis-sysfacturacion .catalog-summary {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
    margin-bottom: 10px;
}

.sis-sysfacturacion .catalog-pill {
    align-items: center;
    color: #001f45;
    display: inline-flex;
    font-weight: 900;
    gap: 8px;
}

.sis-sysfacturacion .catalog-pill span {
    align-items: center;
    background: #1e88e5;
    border-radius: 9px;
    box-shadow: 0 8px 18px rgba(30,136,229,.22);
    color: #ffffff;
    display: inline-flex;
    height: 32px;
    justify-content: center;
    min-width: 76px;
    padding: 0 12px;
}

.sis-sysfacturacion .catalog-table {
    background: #ffffff !important;
    border: 1px solid #c8def4 !important;
    border-collapse: separate !important;
    border-radius: 10px !important;
    border-spacing: 0 !important;
    box-shadow: 0 14px 34px rgba(7,42,84,.06) !important;
    overflow: hidden !important;
    width: 100% !important;
}

.sis-sysfacturacion .catalog-table th {
    background: #0d2f55 !important;
    color: #ffffff !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    padding: 12px 10px !important;
    text-align: center !important;
    text-transform: uppercase !important;
}

.sis-sysfacturacion .catalog-table td {
    border-top: 1px solid #dde8f5 !important;
    color: #001f45 !important;
    font-size: 12px !important;
    padding: 11px 10px !important;
    vertical-align: middle !important;
}

.sis-sysfacturacion .catalog-table tr:nth-child(even) td {
    background: #f5f9fd !important;
}

.sis-sysfacturacion .catalog-edit-btn {
    background: linear-gradient(135deg,#2563eb,#0ea5e9) !important;
    border-radius: 9px !important;
    box-shadow: 0 8px 18px rgba(37,99,235,.16) !important;
    color: #ffffff !important;
    display: inline-block !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    min-width: 72px !important;
    padding: 7px 12px !important;
    text-align: center !important;
}

.sis-sysfacturacion .catalog-edit-btn.danger-action {
    background: linear-gradient(135deg,#ef3340,#dc2626) !important;
}

.sis-sysfacturacion .catalog-edit-btn.success-action {
    background: linear-gradient(135deg,#10b981,#059669) !important;
}

.sis-sysfacturacion .catalog-edit-btn.disabled-action {
    background: #cbd5e1 !important;
    box-shadow: none !important;
    color: #475569 !important;
    cursor: not-allowed !important;
}

.sis-sysfacturacion .catalog-table tr.cxp-row-pending td {
    background: #fff8df !important;
}

.sis-sysfacturacion .catalog-table tr.cxp-row-paid td {
    background: #f0fdf4 !important;
}

.sis-sysfacturacion .catalog-table tr.validation-row-error td {
    background: #fff1f2 !important;
}

.sis-sysfacturacion .catalog-table tr.validation-row-warning td {
    background: #fff8df !important;
}

.sis-sysfacturacion .catalog-table tr.validation-row-account td {
    background: #eff6ff !important;
}

.sis-sysfacturacion .catalog-status {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: 11px;
    font-weight: 900;
    justify-content: center;
    min-width: 78px;
    padding: 6px 12px;
    text-transform: uppercase;
}

.sis-sysfacturacion .catalog-status.active {
    background: #dcfce7;
    border: 1px solid #86efac;
    color: #047857;
}

.sis-sysfacturacion .catalog-status.inactive {
    background: #fee2e2;
    border: 1px solid #fca5a5;
    color: #b91c1c;
}

.sis-sysfacturacion .catalog-status.warning {
    background: #fef3c7;
    border: 1px solid #fbbf24;
    color: #92400e;
}

.sis-sysfacturacion .catalog-modal-shell {
    background: #f4f8fc !important;
    padding: 18px !important;
    min-height: calc(100vh - 64px) !important;
}

.sis-sysfacturacion .catalog-image-preview {
    align-items: center;
    background: #f3f8ff;
    border: 1px dashed #bdd4f0;
    border-radius: 12px;
    display: flex;
    justify-content: center;
    min-height: 150px;
    overflow: hidden;
}

.sis-sysfacturacion .catalog-image-preview img {
    max-height: 140px;
    max-width: 100%;
    object-fit: contain;
}

@media (max-width: 1000px) {
    .catalog-filter-grid,
    .catalog-form-grid,
    .catalog-form-grid.three {
        grid-template-columns: 1fr;
    }
}

body.sis-login-page.sis-facturacion-login {
    align-items: stretch;
    background:
        linear-gradient(90deg, rgba(248, 251, 255, .96) 0%, rgba(248, 251, 255, .80) 45%, rgba(248, 251, 255, .30) 100%),
        url("../img/branding/facturacion-login-background.png") center right / cover no-repeat;
    color: #0f2748;
    display: flex;
    min-height: 100vh;
}

.sis-login-shell {
    align-items: center;
    display: grid;
    grid-template-columns: minmax(320px, 520px) 1fr;
    min-height: 100vh;
    padding: 42px clamp(18px, 5vw, 76px);
    width: 100%;
}

.sis-login-card {
    background: rgba(255, 255, 255, .92);
    border: 1px solid #d7e5f6;
    border-radius: 22px;
    box-shadow: 0 22px 55px rgba(15, 39, 72, .13);
    max-width: 420px;
    padding: 28px;
}

.sis-login-logo {
    align-items: center;
    display: flex;
    gap: 14px;
    margin-bottom: 20px;
}

.sis-login-logo img {
    background: #f0f8ff;
    border: 1px solid #bfdbfe;
    border-radius: 18px;
    height: 52px;
    object-fit: contain;
    padding: 8px;
    width: 52px;
}

.sis-login-logo strong {
    color: #075eb9;
    display: block;
    font-size: 22px;
    font-weight: 900;
    line-height: 1;
}

.sis-login-logo span {
    color: #35516f;
    display: block;
    font-size: 13px;
    margin-top: 4px;
}

.sis-login-kicker {
    color: #2563eb;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .10em;
    margin: 0 0 7px;
    text-transform: uppercase;
}

.sis-login-title {
    color: #102a4c;
    font-size: clamp(24px, 3.2vw, 32px);
    font-weight: 850;
    letter-spacing: -.02em;
    line-height: 1.12;
    margin: 0 0 10px;
}

.sis-login-text {
    color: #35516f;
    font-size: 14px;
    line-height: 1.55;
    margin: 0 0 20px;
}

.sis-login-field {
    margin-bottom: 14px;
}

.sis-login-field label {
    color: #102a4c;
    display: block;
    font-size: 13px;
    font-weight: 900;
    margin-bottom: 7px;
}

.sis-login-field input[type="text"],
.sis-login-field input[type="password"] {
    background: #ffffff;
    border: 1px solid #bfd0e5;
    border-radius: 14px;
    box-shadow: none;
    color: #0f2748;
    font-size: 14px;
    min-height: 42px;
    padding: 0 14px;
    width: 100%;
}

.sis-login-field input:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, .14);
    outline: none;
}

.sis-login-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 16px;
}

.sis-login-button,
.sis-login-register {
    border: 0;
    border-radius: 14px;
    color: #ffffff;
    cursor: pointer;
    font-weight: 900;
    min-height: 40px;
    padding: 0 22px;
}

.sis-login-button {
    background: linear-gradient(135deg, #2563eb, #0ea5e9);
    box-shadow: 0 14px 30px rgba(37, 99, 235, .25);
}

.sis-login-register {
    background: linear-gradient(135deg, #10b981, #059669);
}

.sis-login-links {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 18px;
}

.sis-login-links a {
    color: #075eb9;
    font-weight: 800;
}

.sis-login-error {
    color: #dc2626;
    display: block;
    font-weight: 800;
    margin-top: 12px;
}

.sis-login-copy {
    align-self: end;
    color: #1f4b7d;
    font-size: 13px;
    font-weight: 800;
    margin-left: auto;
    max-width: 430px;
    text-align: right;
}

.sis-register-page {
    display: block;
}

.sis-register-shell {
    box-sizing: border-box;
    min-height: 100vh;
    padding: 22px clamp(14px, 4vw, 48px);
}

.sis-register-brand {
    margin: 0 auto 18px;
    max-width: 1180px;
}

.sis-register-brand a {
    align-items: center;
    color: #0f2748;
    display: inline-flex;
    gap: 12px;
    text-decoration: none;
}

.sis-register-brand img {
    background: rgba(255,255,255,.85);
    border: 1px solid #cfe1f6;
    border-radius: 16px;
    height: 54px;
    object-fit: contain;
    padding: 8px;
    width: 54px;
}

.sis-register-brand strong {
    color: #075eb9;
    display: block;
    font-size: 22px;
    font-weight: 900;
    line-height: 1;
}

.sis-register-brand small {
    color: #35516f;
    display: block;
    font-size: 12px;
    margin-top: 4px;
}

.sis-register-card {
    background: rgba(255, 255, 255, .94);
    border: 1px solid #d7e5f6;
    border-radius: 24px;
    box-shadow: 0 28px 70px rgba(15, 39, 72, .14);
    margin: 0 auto;
    max-width: 1180px;
    padding: clamp(18px, 3vw, 34px);
}

.sis-register-footer {
    color: #35516f;
    font-weight: 800;
    margin: 18px auto 0;
    max-width: 1180px;
    text-align: center;
}

.sis-register-footer a {
    color: #2563eb;
    font-weight: 900;
}

body.sis-register-standalone {
    display: block;
    padding: 18px clamp(14px, 4vw, 46px);
}

body.sis-register-standalone .registration-form {
    background: rgba(255, 255, 255, .94);
    border: 1px solid #d7e5f6;
    border-radius: 22px;
    box-shadow: 0 22px 55px rgba(15, 39, 72, .13);
    box-sizing: border-box;
    margin: 0 auto;
    max-width: 860px;
    padding: clamp(18px, 2.5vw, 28px);
    height: auto !important;
    min-height: 0 !important;
}

body.sis-register-standalone .sis-register-brand {
    margin-bottom: 20px;
}

body.sis-register-standalone .container,
body.sis-register-standalone .container1 {
    background: transparent !important;
    box-shadow: none !important;
    margin: 0 auto !important;
    max-width: 100% !important;
    width: 100% !important;
}

body.sis-register-standalone br {
    display: none;
}

body.sis-register-standalone label {
    color: #35516f;
    display: block;
    font-size: 13px;
    font-weight: 750;
    margin: 0 0 6px;
}

body.sis-register-standalone .Ruc,
body.sis-register-standalone .Acuerdo {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-start;
}

body.sis-register-standalone .Ruc {
    margin-bottom: 14px;
}

body.sis-register-standalone .Ruc input[type="text"],
body.sis-register-standalone .Ruc input[type="email"],
body.sis-register-standalone .Ruc input[type="password"] {
    flex: 1 1 0;
    min-width: 0;
}

body.sis-register-standalone .Ruc span[style*="hidden"],
body.sis-register-standalone .Ruc span[style*="Hidden"],
body.sis-register-standalone .Ruc span[style*="visibility:hidden"],
body.sis-register-standalone .Ruc span[style*="visibility: hidden"] {
    display: none !important;
}

body.sis-register-standalone span[id*="Validator"][style*="hidden"],
body.sis-register-standalone span[id*="RequiredFieldValidator"][style*="hidden"] {
    display: none !important;
}

body.sis-register-standalone .Estado {
    align-items: start;
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 12px 0 14px;
    width: 100%;
}

body.sis-register-standalone .Estado > .Cssclass1 {
    display: block;
    height: auto;
    margin: 0;
    min-width: 0;
    width: auto;
}

body.sis-register-standalone input[type="text"],
body.sis-register-standalone input[type="password"],
body.sis-register-standalone input[type="email"],
body.sis-register-standalone select,
body.sis-register-standalone textarea,
body.sis-register-standalone .Cssclass,
body.sis-register-standalone .Cssclass1 {
    border: 1px solid #bfd0e5 !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    color: #0f2748 !important;
    box-sizing: border-box;
    font-size: 13px;
    min-height: 38px;
    padding: 8px 12px !important;
    width: 100% !important;
}

body.sis-register-standalone .button,
body.sis-register-standalone input[type="submit"],
body.sis-register-standalone input[type="button"] {
    background: linear-gradient(135deg, #2563eb, #0ea5e9) !important;
    border: 0 !important;
    border-radius: 12px !important;
    color: #ffffff !important;
    font-weight: 900 !important;
    margin: 0 !important;
    max-width: none !important;
    min-height: 36px;
    padding: 8px 18px !important;
    width: auto !important;
    flex: 0 0 auto;
}

body.sis-register-standalone .Logo,
body.sis-register-standalone .Logo img,
body.sis-register-standalone .img {
    display: none !important;
}

body.sis-register-standalone .Acuerdo h3 {
    color: #102a4c;
    font-size: 20px;
    font-weight: 800;
    margin: 4px 0 18px;
    text-align: left;
    width: 100%;
}

body.sis-register-standalone .boton-modal label {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    color: #075eb9;
    margin: 0;
    padding: 9px 12px;
}

body.sis-register-standalone .checkbox input,
body.sis-register-standalone input[type="checkbox"] {
    width: auto !important;
}

body.sis-recover-page .registration-form {
    max-width: none;
    padding: 26px;
    width: min(500px, calc(100vw - 36px)) !important;
}

body.sis-recover-page .container1 {
    padding: 0 !important;
    width: 100% !important;
}

body.sis-recover-page .Ruc {
    align-items: flex-end;
    display: grid;
    grid-template-columns: minmax(220px, 1fr) 96px;
    gap: 10px;
    margin-bottom: 12px;
    width: 100%;
}

body.sis-recover-page .Ruc input[type="email"],
body.sis-recover-page .Ruc input[type="text"] {
    grid-column: 1;
    min-width: 0;
    width: 100% !important;
}

body.sis-recover-page .Ruc input[type="submit"],
body.sis-recover-page .Ruc input[type="button"] {
    grid-column: 2;
    min-width: 96px;
    width: 96px !important;
}

body.sis-recover-page .Acuerdo {
    justify-content: flex-start;
    margin-top: 8px;
}

body.sis-recover-page .Acuerdo input[type="submit"],
body.sis-recover-page .Acuerdo input[type="button"] {
    min-width: 100px;
}

body.sis-recover-page .sis-register-brand {
    margin-bottom: 22px;
}

body.sis-recover-page .sis-register-brand a {
    align-items: center;
}

body.sis-recover-page .Acuerdo h3 {
    font-size: 19px;
    margin-bottom: 16px;
}

@media (max-width: 520px) {
    body.sis-recover-page .Ruc {
        grid-template-columns: 1fr;
    }

    body.sis-recover-page .Ruc input[type="submit"],
    body.sis-recover-page .Ruc input[type="button"] {
        grid-column: 1;
        width: 100% !important;
    }

    body.sis-recover-page .Acuerdo input[type="submit"],
    body.sis-recover-page .Acuerdo input[type="button"] {
        width: 100% !important;
    }
}

body.sis-register-user .registration-form {
    max-width: 760px;
    padding: 24px 28px;
}

body.sis-register-user .Ruc {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
}

body.sis-register-user .Ruc input[type="text"] {
    grid-column: 1;
}

body.sis-register-user .Ruc input[type="submit"],
body.sis-register-user .Ruc input[type="button"] {
    grid-column: 2;
    min-width: 96px;
}

body.sis-register-user .Ruc span {
    grid-column: 1 / -1;
}

body.sis-register-user > .registration-form > .container > label,
body.sis-register-user > .registration-form > .container > div:not(.Estado):not(.Ruc):not(.Acuerdo):not(.container-modal):not(.content-modal) {
    margin-bottom: 12px;
}

body.sis-register-user .Acuerdo:last-of-type {
    justify-content: flex-start;
    margin-top: 14px;
}

.sis-fact-dashboard {
    margin: 0 auto;
    max-width: 1720px;
}

.sis-fact-hero {
    align-items: center;
    background: linear-gradient(120deg, #ffffff 0%, #f3f9ff 58%, #d9f1ff 100%);
    border: 1px solid #cfe1f6;
    border-radius: 22px;
    box-shadow: 0 24px 55px rgba(15, 39, 72, .10);
    display: flex;
    gap: 24px;
    justify-content: space-between;
    margin-bottom: 18px;
    overflow: hidden;
    padding: 28px 32px;
    position: relative;
}

.sis-fact-hero:after {
    background: rgba(14, 165, 233, .12);
    border-radius: 999px;
    content: "";
    height: 220px;
    position: absolute;
    right: -70px;
    top: -80px;
    width: 220px;
}

.sis-fact-hero-content {
    position: relative;
    z-index: 1;
}

.sis-fact-hero-kicker {
    color: #2563eb;
    display: block;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .10em;
    margin-bottom: 10px;
    text-transform: uppercase;
}

.sis-fact-hero h1 {
    color: #071833;
    font-size: clamp(28px, 4vw, 42px);
    font-weight: 900;
    line-height: 1.05;
    margin: 0 0 10px;
}

.sis-fact-hero p {
    color: #35516f;
    font-size: 15px;
    margin: 0;
}

.sis-fact-hero-logo {
    background: rgba(255,255,255,.78);
    border: 1px solid #cfe1f6;
    border-radius: 22px;
    box-shadow: 0 20px 45px rgba(15, 39, 72, .12);
    height: 92px;
    object-fit: contain;
    padding: 16px;
    position: relative;
    width: 92px;
    z-index: 1;
}

.sis-fact-filters {
    align-items: center;
    background: rgba(255,255,255,.92);
    border: 1px solid #d7e5f6;
    border-radius: 18px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-bottom: 18px;
    padding: 16px;
}

.sis-fact-charts {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sis-fact-chart-card {
    background: rgba(255,255,255,.94);
    border: 1px solid #d7e5f6;
    border-radius: 20px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
    overflow: hidden;
}

.sis-fact-card-head {
    align-items: center;
    background: #f2f8ff;
    border-bottom: 1px solid #dbe7f5;
    display: flex;
    gap: 12px;
    padding: 16px 18px;
}

.sis-fact-card-head i {
    align-items: center;
    background: #eaf4ff;
    border-radius: 12px;
    color: #2563eb;
    display: inline-flex;
    height: 36px;
    justify-content: center;
    width: 36px;
}

.sis-fact-card-head h2 {
    color: #071833;
    font-size: 18px;
    font-weight: 900;
    margin: 0;
}

.sis-fact-card-head p {
    color: #64748b;
    font-size: 12px;
    margin: 3px 0 0;
}

.sis-fact-chart {
    height: 410px;
    width: 100%;
}

.sis-fact-list {
    border-top: 1px solid #eef2f7;
    padding: 10px 16px 18px;
}

.sis-fact-list ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.sis-fact-list li {
    border-radius: 999px;
    color: #071833;
    font-size: 12px;
    font-weight: 900;
    padding: 8px 12px;
}

.sis-fact-summary-card {
    background: rgba(255,255,255,.94);
    border: 1px solid #d7e5f6;
    border-radius: 20px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
    overflow: hidden;
}

.sis-fact-summary-body {
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(360px, 1fr) minmax(320px, 520px);
    padding: 18px;
}

.sis-fact-main-chart {
    background: #ffffff;
    border: 1px solid #edf3fa;
    border-radius: 18px;
    height: 360px;
    width: 100%;
}

.sis-fact-metrics {
    display: grid;
    gap: 10px;
    grid-template-columns: 1fr;
    padding: 0;
}

.sis-fact-metric {
    align-items: center;
    background: #f8fbff;
    border: 1px solid #dbe7f5;
    border-radius: 14px;
    color: #102a4c;
    display: grid;
    gap: 3px 10px;
    grid-template-columns: 14px minmax(0, 1fr) auto;
    grid-template-areas:
        "dot title title"
        ". label1 count"
        ". label2 total";
    min-height: 78px;
    padding: 12px 14px;
}

.sis-fact-dot {
    align-self: center;
    border-radius: 999px;
    display: inline-block;
    grid-area: dot;
    height: 13px;
    width: 13px;
}

.sis-fact-metric strong {
    align-self: center;
    color: #071833;
    grid-area: title;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sis-fact-metric small {
    color: #64748b;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.sis-fact-metric small:nth-of-type(1) {
    grid-area: label1;
}

.sis-fact-metric small:nth-of-type(2) {
    grid-area: label2;
}

.sis-fact-count {
    color: #0f2748;
    font-size: 14px;
    font-weight: 900;
    grid-area: count;
    text-align: right;
}

.sis-fact-total {
    color: #075eb9;
    font-size: 14px;
    font-weight: 900;
    grid-area: total;
    text-align: right;
    white-space: nowrap;
}

.sis-fact-metric.is-sales .sis-fact-dot { background: #4caf50; }
.sis-fact-metric.is-purchases .sis-fact-dot { background: #2196f3; }
.sis-fact-metric.is-payroll .sis-fact-dot { background: #ffb300; }
.sis-fact-metric.is-tax .sis-fact-dot { background: #ff5722; }

body.sis-sysfacturacion .content > .body,
body.sis-sysfacturacion .content .content-header,
body.sis-sysfacturacion .content .box,
body.sis-sysfacturacion .content .panel,
body.sis-sysfacturacion .content .well {
    background: rgba(255, 255, 255, .92);
    border: 1px solid #d7e5f6;
    border-radius: 18px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
}

body.sis-sysfacturacion .content > .body {
    margin: 18px auto;
    max-width: 1520px;
    padding: 18px;
}

body.sis-sysfacturacion .content .content-header {
    margin: 0 0 16px;
    padding: 18px 20px;
}

body.sis-sysfacturacion .content .box,
body.sis-sysfacturacion .content .panel,
body.sis-sysfacturacion .content .well {
    margin-bottom: 18px;
    padding: 16px;
}

body.sis-sysfacturacion .content .box-header,
body.sis-sysfacturacion .content .panel-heading {
    background: linear-gradient(120deg, #dbeafe, #eef7ff);
    border-bottom: 1px solid #bfdbfe;
    border-radius: 14px 14px 0 0;
    color: #0f2748;
    font-weight: 900;
    margin: -16px -16px 16px;
    padding: 14px 16px;
}

body.sis-sysfacturacion .content .table,
body.sis-sysfacturacion .content table[id*="GridView"],
body.sis-sysfacturacion .content table[id*="Grilla"],
body.sis-sysfacturacion .content table[id*="Grid"],
body.sis-sysfacturacion .content table[id*="Gv"],
body.sis-sysfacturacion .content table[id*="Dt"] {
    background: #ffffff;
    border: 1px solid #dbe7f5;
    border-collapse: collapse;
    border-radius: 14px;
    overflow: hidden;
    width: 100%;
}

body.sis-sysfacturacion .content .table th,
body.sis-sysfacturacion .content table[id*="GridView"] th,
body.sis-sysfacturacion .content table[id*="Grilla"] th,
body.sis-sysfacturacion .content table[id*="Grid"] th,
body.sis-sysfacturacion .content table[id*="Gv"] th,
body.sis-sysfacturacion .content table[id*="Dt"] th {
    background: #0f2748 !important;
    color: #ffffff !important;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .03em;
    padding: 11px 12px;
    text-transform: uppercase;
}

body.sis-sysfacturacion .content .table td,
body.sis-sysfacturacion .content table[id*="GridView"] td,
body.sis-sysfacturacion .content table[id*="Grilla"] td,
body.sis-sysfacturacion .content table[id*="Grid"] td,
body.sis-sysfacturacion .content table[id*="Gv"] td,
body.sis-sysfacturacion .content table[id*="Dt"] td {
    border-color: #dbe7f5;
    color: #0f2748;
    padding: 10px 12px;
    vertical-align: middle;
}

body.sis-sysfacturacion .content input[type="text"],
body.sis-sysfacturacion .content input[type="password"],
body.sis-sysfacturacion .content input[type="number"],
body.sis-sysfacturacion .content input[type="date"],
body.sis-sysfacturacion .content input[type="file"],
body.sis-sysfacturacion .content select,
body.sis-sysfacturacion .content textarea,
body.sis-sysfacturacion .content .form-control {
    border: 1px solid #bfd0e5;
    border-radius: 12px;
    box-shadow: none;
    color: #0f2748;
    min-height: 38px;
}

body.sis-sysfacturacion .content input:focus,
body.sis-sysfacturacion .content select:focus,
body.sis-sysfacturacion .content textarea:focus,
body.sis-sysfacturacion .content .form-control:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .14);
    outline: none;
}

body.sis-sysfacturacion .content .btn,
body.sis-sysfacturacion .content input[type="submit"],
body.sis-sysfacturacion .content input[type="button"],
body.sis-sysfacturacion .content button {
    border-radius: 12px;
    font-weight: 900;
}

body.sis-sysfacturacion .content .btn-primary,
body.sis-sysfacturacion .content input[type="submit"],
body.sis-sysfacturacion .content input[type="button"] {
    background: linear-gradient(135deg, #2563eb, #0ea5e9);
    border: 0;
    color: #ffffff;
}

body.sis-sysfacturacion .content .btn-danger {
    background: linear-gradient(135deg, #ef4444, #dc2626);
    border: 0;
}

body.sis-sysfacturacion .content .btn-success {
    background: linear-gradient(135deg, #10b981, #059669);
    border: 0;
}

body.sis-sysfacturacion .content label {
    color: #102a4c;
    font-weight: 800;
}

body.sis-sysfacturacion .content img {
    max-width: 100%;
    transform: none !important;
}

.sis-frame-modal-backdrop {
    align-items: center;
    background: rgba(15, 23, 42, .58);
    bottom: 0;
    display: none;
    justify-content: center;
    left: 0;
    padding: 20px;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 9998;
}

.sis-frame-modal-backdrop.is-visible {
    display: flex;
}

.sis-frame-modal {
    --sis-frame-width: 1100px;
    --sis-frame-height: 88vh;
    background: #ffffff;
    border: 1px solid #d7e5f6;
    border-radius: 22px;
    box-shadow: 0 28px 80px rgba(15, 23, 42, .28);
    display: flex;
    flex-direction: column;
    height: min(var(--sis-frame-height), calc(100vh - 28px));
    max-height: calc(100vh - 28px);
    overflow: hidden;
    width: min(var(--sis-frame-width), calc(100vw - 28px));
}

.sis-frame-modal-wide {
    --sis-frame-width: 1320px;
    --sis-frame-height: 90vh;
}

.sis-frame-modal-xl {
    --sis-frame-width: 1760px;
    --sis-frame-height: 96vh;
    width: min(var(--sis-frame-width), calc(100vw - 18px));
    height: min(var(--sis-frame-height), calc(100vh - 18px));
    max-height: calc(100vh - 18px);
    border-radius: 18px;
}

.sis-frame-modal-fluid {
    --sis-frame-width: 1880px;
    --sis-frame-height: 96vh;
    width: min(var(--sis-frame-width), calc(100vw - 14px));
    height: min(var(--sis-frame-height), calc(100vh - 14px));
    max-height: calc(100vh - 14px);
    border-radius: 18px;
}

.sis-frame-modal-header {
    align-items: center;
    background: #f2f8ff;
    border-bottom: 1px solid #dbe7f5;
    display: flex;
    justify-content: space-between;
    padding: 14px 18px;
}

.sis-frame-modal-title {
    color: #071833;
    font-weight: 900;
}

.sis-frame-modal-close {
    align-items: center;
    background: #ffffff;
    border: 1px solid #bfd0e5;
    border-radius: 10px;
    color: #0f2748;
    display: inline-flex;
    font-size: 22px;
    height: 34px;
    justify-content: center;
    line-height: 1;
    width: 34px;
}

.sis-frame-modal iframe {
    border: 0;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
}

body.sis-frame-child {
    background: #f8fbff !important;
    overflow: auto !important;
}

body.sis-frame-child > .header,
body.sis-frame-child .left-side,
body.sis-frame-child .main-footer,
body.sis-frame-child .sis-master-title,
body.sis-frame-child #sisMobileBackdrop {
    display: none !important;
}

body.sis-frame-child .wrapper,
body.sis-frame-child .row-offcanvas,
body.sis-frame-child .right-side {
    background: transparent !important;
    margin: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    position: static !important;
    width: 100% !important;
}

body.sis-frame-child .right-side > .content {
    margin: 0 !important;
    max-width: none !important;
    padding: 12px !important;
    width: 100% !important;
}

body.sis-frame-child .content > .body,
body.sis-frame-child .content .content-header,
body.sis-frame-child .content .box,
body.sis-frame-child .content .panel,
body.sis-frame-child .content .well {
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 100% !important;
}

body.sis-frame-child .content-header {
    margin: 10px !important;
}

body.sis-frame-child .box-body {
    overflow-x: auto;
}

/* Pulido global para pantallas heredadas WebForms */
body.sis-sysfacturacion .content {
    color: #102a4c;
}

body.sis-sysfacturacion .content > .body,
body.sis-sysfacturacion .content > form,
body.sis-sysfacturacion .content .box,
body.sis-sysfacturacion .content .panel,
body.sis-sysfacturacion .content .well {
    border-radius: 12px;
}

body.sis-sysfacturacion .content .box,
body.sis-sysfacturacion .content .panel,
body.sis-sysfacturacion .content .well {
    background: #ffffff;
    border: 1px solid #dbe7f5;
    box-shadow: 0 14px 34px rgba(15, 39, 72, .08);
    overflow: hidden;
}

body.sis-sysfacturacion .content .box {
    border-top: 0;
    margin-bottom: 18px;
}

body.sis-sysfacturacion .content .box.box-primary {
    border-top: 0;
}

body.sis-sysfacturacion .content .box-header,
body.sis-sysfacturacion .content .panel-heading {
    background: linear-gradient(135deg, #f8fbff, #eef6ff);
    border-bottom: 1px solid #dbe7f5;
    color: #102a4c;
    font-weight: 900;
    padding: 14px 16px;
}

body.sis-sysfacturacion .content .box-body,
body.sis-sysfacturacion .content .panel-body {
    padding: 16px;
}

body.sis-sysfacturacion .content .form-group {
    margin-bottom: 12px;
}

body.sis-sysfacturacion .content label,
body.sis-sysfacturacion .content .control-label {
    color: #102a4c;
    display: inline-block;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .02em;
    margin-bottom: 6px;
}

body.sis-sysfacturacion .content .form-control,
body.sis-sysfacturacion .content input[type="text"],
body.sis-sysfacturacion .content input[type="date"],
body.sis-sysfacturacion .content input[type="number"],
body.sis-sysfacturacion .content input[type="email"],
body.sis-sysfacturacion .content input[type="password"],
body.sis-sysfacturacion .content input[type="file"],
body.sis-sysfacturacion .content select,
body.sis-sysfacturacion .content textarea {
    background: #ffffff;
    border: 1px solid #c7d7ea;
    border-radius: 9px;
    box-shadow: none;
    color: #0f2748;
    font-size: 13px;
    min-height: 36px;
    outline: none;
    padding: 7px 10px;
    transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

body.sis-sysfacturacion .content input[type="file"] {
    height: auto;
    padding: 8px;
}

body.sis-sysfacturacion .content textarea {
    min-height: 74px;
    resize: vertical;
}

body.sis-sysfacturacion .content .form-control:focus,
body.sis-sysfacturacion .content input[type="text"]:focus,
body.sis-sysfacturacion .content input[type="date"]:focus,
body.sis-sysfacturacion .content input[type="number"]:focus,
body.sis-sysfacturacion .content input[type="email"]:focus,
body.sis-sysfacturacion .content input[type="password"]:focus,
body.sis-sysfacturacion .content select:focus,
body.sis-sysfacturacion .content textarea:focus {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .13);
}

body.sis-sysfacturacion .content input[type="checkbox"],
body.sis-sysfacturacion .content input[type="radio"] {
    accent-color: #2563eb;
    margin-right: 6px;
}

body.sis-sysfacturacion .content .btn,
body.sis-sysfacturacion .content input[type="submit"],
body.sis-sysfacturacion .content input[type="button"],
body.sis-sysfacturacion .content button {
    align-items: center;
    border: 0 !important;
    border-radius: 9px !important;
    box-shadow: 0 10px 22px rgba(37, 99, 235, .18);
    cursor: pointer;
    display: inline-flex;
    font-size: 12px;
    font-weight: 900;
    justify-content: center;
    letter-spacing: 0;
    line-height: 1.1;
    min-height: 34px;
    padding: 8px 13px;
    text-decoration: none !important;
    transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
    white-space: normal;
}

body.sis-sysfacturacion .content .btn:hover,
body.sis-sysfacturacion .content input[type="submit"]:hover,
body.sis-sysfacturacion .content input[type="button"]:hover,
body.sis-sysfacturacion .content button:hover {
    box-shadow: 0 14px 28px rgba(37, 99, 235, .24);
    filter: brightness(1.02);
    transform: translateY(-1px);
}

body.sis-sysfacturacion .content .btn:active,
body.sis-sysfacturacion .content input[type="submit"]:active,
body.sis-sysfacturacion .content input[type="button"]:active,
body.sis-sysfacturacion .content button:active {
    transform: translateY(0);
}

body.sis-sysfacturacion .content .btn-primary,
body.sis-sysfacturacion .content input.btn-primary,
body.sis-sysfacturacion .content input[type="submit"] {
    background: linear-gradient(135deg, #2563eb, #0ea5e9) !important;
    color: #ffffff !important;
}

body.sis-sysfacturacion .content .btn-danger,
body.sis-sysfacturacion .content input.btn-danger {
    background: linear-gradient(135deg, #ef4444, #dc2626) !important;
    box-shadow: 0 10px 22px rgba(220, 38, 38, .17);
    color: #ffffff !important;
}

body.sis-sysfacturacion .content .btn-success,
body.sis-sysfacturacion .content input.btn-success {
    background: linear-gradient(135deg, #10b981, #059669) !important;
    box-shadow: 0 10px 22px rgba(5, 150, 105, .17);
    color: #ffffff !important;
}

body.sis-sysfacturacion .content .btn-default,
body.sis-sysfacturacion .content input.btn-default {
    background: #ffffff !important;
    border: 1px solid #c7d7ea !important;
    box-shadow: 0 8px 18px rgba(15, 39, 72, .08);
    color: #102a4c !important;
}

body.sis-sysfacturacion .content table:not(.table) {
    border-collapse: separate;
    border-spacing: 0;
}

body.sis-sysfacturacion .content .box-body > table,
body.sis-sysfacturacion .content .panel-body > table,
body.sis-sysfacturacion .content table[id*="Grid"],
body.sis-sysfacturacion .content table[id*="GridView"] {
    background: #ffffff;
    border: 1px solid #dbe7f5 !important;
    border-radius: 12px;
    box-shadow: 0 12px 28px rgba(15, 39, 72, .07);
    overflow: hidden;
}

body.sis-sysfacturacion .content .table,
body.sis-sysfacturacion .content table[id*="Grid"],
body.sis-sysfacturacion .content table[id*="GridView"] {
    color: #0f2748;
    font-size: 12px;
}

body.sis-sysfacturacion .content .table th,
body.sis-sysfacturacion .content table[id*="Grid"] th,
body.sis-sysfacturacion .content table[id*="GridView"] th {
    background: #0f2748 !important;
    border-color: rgba(255, 255, 255, .14) !important;
    color: #ffffff !important;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .02em;
    padding: 10px 9px !important;
    text-transform: uppercase;
    vertical-align: middle;
}

body.sis-sysfacturacion .content .table th a,
body.sis-sysfacturacion .content table[id*="Grid"] th a,
body.sis-sysfacturacion .content table[id*="GridView"] th a {
    color: #ffffff !important;
}

body.sis-sysfacturacion .content .table td,
body.sis-sysfacturacion .content table[id*="Grid"] td,
body.sis-sysfacturacion .content table[id*="GridView"] td {
    border-color: #e5edf7 !important;
    padding: 9px !important;
    vertical-align: middle;
}

body.sis-sysfacturacion .content .table tr:nth-child(even) td,
body.sis-sysfacturacion .content table[id*="Grid"] tr:nth-child(even) td,
body.sis-sysfacturacion .content table[id*="GridView"] tr:nth-child(even) td {
    background: #f8fbff !important;
}

body.sis-sysfacturacion .content .table tr:hover td,
body.sis-sysfacturacion .content table[id*="Grid"] tr:hover td,
body.sis-sysfacturacion .content table[id*="GridView"] tr:hover td {
    background: #eef6ff !important;
}

body.sis-sysfacturacion .content table[id*="Grid"] input[type="submit"],
body.sis-sysfacturacion .content table[id*="Grid"] input[type="button"],
body.sis-sysfacturacion .content table[id*="GridView"] input[type="submit"],
body.sis-sysfacturacion .content table[id*="GridView"] input[type="button"] {
    min-height: 29px;
    padding: 6px 10px;
}

body.sis-frame-child {
    background: #f4f8fc !important;
}

body.sis-frame-child .right-side > .content {
    padding: 16px !important;
}

body.sis-frame-child .content .box,
body.sis-frame-child .content .panel,
body.sis-frame-child .content .well {
    box-shadow: 0 10px 26px rgba(15, 39, 72, .07);
}

body.sis-frame-child .content > .row {
    margin-left: -8px;
    margin-right: -8px;
}

body.sis-frame-child .content > .row > [class*="col-"] {
    padding-left: 8px;
    padding-right: 8px;
}

/* Vistas operativas modernas */
body.sis-sysfacturacion .sis-search-page {
    display: grid;
    gap: 18px;
}

body.sis-sysfacturacion .sis-search-hero,
body.sis-sysfacturacion .sis-search-card {
    background: #ffffff;
    border: 1px solid #cfe3ff;
    border-radius: 14px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
}

body.sis-sysfacturacion .sis-search-hero {
    align-items: center;
    background: linear-gradient(115deg, #ffffff 0%, #f7fbff 58%, #dff4ff 100%);
    display: flex;
    justify-content: space-between;
    min-height: 138px;
    overflow: hidden;
    padding: 26px 32px;
}

body.sis-sysfacturacion .sis-search-kicker {
    color: #2563eb;
    display: block;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .10em;
    margin-bottom: 7px;
    text-transform: uppercase;
}

body.sis-sysfacturacion .sis-search-hero h1 {
    color: #07152f;
    font-size: clamp(25px, 3vw, 36px);
    font-weight: 900;
    margin: 0;
}

body.sis-sysfacturacion .sis-search-hero p {
    color: #39506f;
    font-size: 14px;
    margin: 9px 0 0;
    max-width: 680px;
}

body.sis-sysfacturacion .sis-search-icon {
    align-items: center;
    background: rgba(14, 165, 233, .12);
    border: 1px solid rgba(14, 165, 233, .22);
    border-radius: 22px;
    color: #0ea5e9;
    display: flex;
    font-size: 38px;
    height: 86px;
    justify-content: center;
    width: 86px;
}

body.sis-sysfacturacion .sis-search-card {
    padding: 18px;
}

body.sis-sysfacturacion .sis-search-card h2 {
    color: #102a4c;
    font-size: 18px;
    font-weight: 900;
    margin: 0 0 14px;
}

body.sis-sysfacturacion .sis-search-filter {
    align-items: end;
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

body.sis-sysfacturacion .sis-search-filter .btn,
body.sis-sysfacturacion .sis-search-filter input[type="submit"],
body.sis-sysfacturacion .sis-search-filter input[type="button"] {
    width: auto !important;
}

body.sis-sysfacturacion .sis-field label {
    color: #0f2344;
    display: block;
    font-size: 12px;
    font-weight: 900;
    margin-bottom: 7px;
}

body.sis-sysfacturacion .sis-field input,
body.sis-sysfacturacion .sis-field select {
    min-height: 38px;
    width: 100% !important;
}

body.sis-sysfacturacion .sis-search-summary {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

body.sis-sysfacturacion .sis-search-metric {
    background: #f8fbff;
    border: 1px solid #d7e6fb;
    border-radius: 12px;
    border-top: 4px solid #2563eb;
    padding: 13px 15px;
}

body.sis-sysfacturacion .sis-search-metric.is-danger {
    border-top-color: #ef4444;
}

body.sis-sysfacturacion .sis-search-metric.is-success {
    border-top-color: #10b981;
}

body.sis-sysfacturacion .sis-search-metric span {
    color: #39506f;
    display: block;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

body.sis-sysfacturacion .sis-search-metric .btn {
    cursor: default;
    margin-top: 8px;
    min-width: 110px;
    width: auto !important;
}

body.sis-sysfacturacion .sis-search-results {
    overflow-x: auto;
}

body.sis-sysfacturacion .sis-search-results table {
    min-width: 980px;
}

body.sis-sysfacturacion .sis-empty-state {
    color: #39506f;
    font-weight: 800;
    padding: 18px;
    text-align: center;
}

body.sis-sysfacturacion .sis-status-paid,
body.sis-sysfacturacion .sis-status-pending {
    border-radius: 999px;
    font-weight: 900;
    text-align: center;
}

body.sis-sysfacturacion .sis-status-paid {
    background: #dcfce7 !important;
    color: #047857 !important;
}

body.sis-sysfacturacion .sis-status-pending {
    background: #fef3c7 !important;
    color: #92400e !important;
}

@media (max-width: 991px) {
    .sis-login-shell {
        grid-template-columns: 1fr;
    }

    .sis-login-copy {
        margin: 22px 0 0;
        text-align: left;
    }

    .sis-fact-charts {
        grid-template-columns: 1fr;
    }

    .sis-fact-summary-body {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .sis-frame-modal-backdrop {
        padding: 8px;
    }

    .sis-frame-modal {
        border-radius: 16px;
        height: calc(100vh - 16px);
        max-height: calc(100vh - 16px);
        width: calc(100vw - 16px);
    }

    .sis-frame-modal-header {
        padding: 10px 12px;
    }

    body.sis-sysfacturacion .main-footer {
        align-items: flex-start;
        flex-direction: column;
        padding: 12px 14px;
    }

    .sis-fact-hero {
        align-items: flex-start;
        flex-direction: column;
        padding: 22px;
    }

    .sis-fact-filters {
        align-items: stretch;
        flex-direction: column;
    }

    .sis-fact-filters input[type="submit"],
    .sis-fact-filters input[type="button"] {
        width: 100%;
    }

    .sis-fact-chart {
        height: 320px;
    }

    .sis-fact-summary-body {
        padding: 12px;
    }

    .sis-fact-main-chart {
        height: 300px;
    }

    .sis-fact-metric {
        grid-template-columns: 14px minmax(0, 1fr);
        grid-template-areas:
            "dot title"
            ". label1"
            ". count"
            ". label2"
            ". total";
    }

    .sis-fact-count,
    .sis-fact-total {
        text-align: left;
    }
}
