/* JADA · lenguaje visual compartido por todas las vistas del backend. */
:root {
    --jada-accent: #ffc701;
    --jada-ink: #20242b;
    --jada-surface: #fff;
    --jada-canvas: #f3f4f6;
    --jada-muted: #68717e;
    --jada-line: #e4e7eb;
    --jada-soft: #f7f8fa;
    --jada-shadow: 0 4px 24px rgba(23, 31, 44, .045);
    --vz-primary: #35465c;
    --vz-primary-rgb: 53, 70, 92;
    --vz-link-color: #35465c;
    --vz-link-hover-color: #121c29;
    --vz-body-bg: var(--jada-canvas);
    --vz-body-color: var(--jada-ink);
}
[data-bs-theme="dark"] {
    --jada-ink: #e5e9ef;
    --jada-surface: #20262e;
    --jada-canvas: #171c23;
    --jada-muted: #abb5c3;
    --jada-line: #36404d;
    --jada-soft: #272f39;
    --jada-shadow: 0 4px 24px rgba(0, 0, 0, .12);
    --vz-primary: #aec5e2;
    --vz-primary-rgb: 174, 197, 226;
    --vz-link-color: #aec5e2;
    --vz-link-hover-color: #dae8fa;
}
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--jada-canvas); color: var(--jada-ink); -webkit-font-smoothing: antialiased; }
.erp-page { max-width: 1760px; padding-inline: clamp(16px, 2.2vw, 38px); line-height: 1.6; }
.erp-page h1, .erp-page h2, .erp-page h3, .erp-acceso h1 { font-family: inherit; color: var(--jada-ink); }
.erp-page h2.h5, .erp-page h2.h4 { margin: 1.8rem 0 1rem; font-size: 1.06rem; font-weight: 650; letter-spacing: -.015em; }
.erp-page > p { max-width: 1100px; }
/* Navegación persistente: marca de alto contraste y selección inequívoca. */
[data-sidebar="dark"] .navbar-menu { background: #1a1f26; border-right: 1px solid #303640; }
.navbar-brand-box { padding-block: 18px; }
.navbar-menu .navbar-nav .menu-title { padding-top: 22px; padding-bottom: 9px; }
.navbar-menu .navbar-nav .menu-title span { color: #9ba4b2; font-size: .65rem; letter-spacing: .12em; }
.navbar-menu .navbar-nav .nav-link.menu-link { margin: 2px 10px; border-radius: 8px; padding: .7rem .85rem; }
[data-sidebar="dark"] .navbar-menu .navbar-nav .nav-link.menu-link { color: #cbd1da; }
[data-sidebar="dark"] .navbar-menu .navbar-nav .nav-link.menu-link.active { color: #ffe17a; background: #ffc70114; box-shadow: inset 3px 0 #ffc701; }
[data-sidebar="dark"] .navbar-menu .navbar-nav .nav-sm .nav-link { color: #adb7c5; padding-block: .48rem; }
[data-sidebar="dark"] .navbar-menu .navbar-nav .nav-sm .nav-link.active { color: #ffe17a; font-weight: 600; }
[data-sidebar="dark"] .navbar-menu .navbar-nav .nav-link:hover { color: #fff; background: #ffffff08; }
#page-topbar { border-bottom: 1px solid var(--jada-line); box-shadow: none; }
.erp-sidebar-note { line-height: 1.6; padding-block: 16px; }
/* Encabezado de cada pantalla. */
.erp-page-heading { --heading-color: #946200; --heading-rgb: 216, 155, 0; display: flex; justify-content: space-between; gap: 12px 24px; align-items: center; padding: 10px 16px; margin-bottom: 16px; border: 1px solid var(--jada-line); border-left: 4px solid rgb(var(--heading-rgb)); border-radius: 12px; background: linear-gradient(110deg, rgba(var(--heading-rgb), .12), rgba(var(--heading-rgb), .025) 65%), var(--jada-surface); box-shadow: 0 2px 8px rgba(23, 31, 44, .025); }
.erp-page-heading[data-tono="azul"] { --heading-color: #245bb2; --heading-rgb: 49, 111, 214; }
.erp-page-heading[data-tono="violeta"] { --heading-color: #7443b6; --heading-rgb: 133, 80, 201; }
.erp-page-heading[data-tono="turquesa"] { --heading-color: #087775; --heading-rgb: 10, 142, 137; }
.erp-page-heading[data-tono="naranja"] { --heading-color: #a84c16; --heading-rgb: 205, 102, 33; }
.erp-page-heading[data-tono="verde"] { --heading-color: #197348; --heading-rgb: 30, 143, 89; }
.erp-page-heading[data-tono="rosa"] { --heading-color: #ad3972; --heading-rgb: 194, 65, 128; }
.erp-page-heading[data-tono="indigo"] { --heading-color: #5351b5; --heading-rgb: 104, 101, 200; }
.erp-heading-main { display: flex; align-items: center; gap: 12px; min-width: 0; }
.erp-heading-icon { width: 40px; height: 40px; border-radius: 11px; background: var(--heading-color); color: #fff; display: grid; place-items: center; font-size: 22px; box-shadow: 0 3px 8px rgba(var(--heading-rgb), .2); flex-shrink: 0; }
.erp-heading-copy { min-width: 0; }
.erp-heading-area { color: var(--heading-color); font-size: .62rem; font-weight: 750; letter-spacing: .075em; text-transform: uppercase; line-height: 1.4; margin-bottom: 2px; }
.erp-eyebrow { color: var(--jada-muted); font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 4px; }
.erp-page-heading h1 { font-size: clamp(1.1rem, 1.5vw, 1.4rem); font-weight: 700; letter-spacing: -.025em; line-height: 1.25; margin: 0; overflow-wrap: anywhere; }
.erp-page-heading .page-title-right { min-width: 0; max-width: 48%; }
.erp-page-heading .breadcrumb { font-size: .72rem; justify-content: flex-end; line-height: 1.5; overflow-wrap: anywhere; }
.erp-page-heading .breadcrumb-item { color: var(--jada-muted); }
.erp-page-heading .breadcrumb a { color: var(--jada-ink); text-decoration: none; border-radius: 3px; }
.erp-page-heading .breadcrumb a:hover { color: var(--heading-color); text-decoration: underline; text-underline-offset: 3px; }
.erp-page-heading .breadcrumb a:focus-visible { outline: 2px solid rgb(var(--heading-rgb)); outline-offset: 3px; }
[data-bs-theme="dark"] .erp-page-heading { background: linear-gradient(110deg, rgba(var(--heading-rgb), .17), transparent 70%), var(--jada-surface); }
[data-bs-theme="dark"] .erp-heading-area { color: var(--jada-ink); }
[data-bs-theme="dark"] .erp-page-heading .breadcrumb a:hover { color: #fff; }
/* Acciones: texto legible, área táctil y movimiento discreto. */
:is(.erp-page, .erp-acceso, #page-topbar) .btn { border-radius: 9px; font-weight: 600; font-size: .8rem; padding: .65rem 1rem; transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease, border-color .16s ease; }
:is(.erp-page, .erp-acceso) .btn:not(:disabled):not(.disabled):hover { transform: translateY(-2px); box-shadow: 0 5px 12px rgba(20, 28, 40, .1); }
:is(.erp-page, .erp-acceso) .btn:not(:disabled):not(.disabled):active { transform: translateY(0); box-shadow: none; }
:is(.erp-page, .erp-acceso, #page-topbar) .btn-primary { --vz-btn-bg: #ffc701; --vz-btn-border-color: #ffc701; --vz-btn-color: #20242b; --vz-btn-hover-bg: #efbb00; --vz-btn-hover-border-color: #efbb00; --vz-btn-hover-color: #15191f; --vz-btn-active-bg: #dfaf00; --vz-btn-active-border-color: #dfaf00; --vz-btn-active-color: #15191f; --vz-btn-disabled-bg: #ffe38a; --vz-btn-disabled-border-color: #ffe38a; --vz-btn-disabled-color: #5f552f; }
.erp-page .btn-soft-primary { background: var(--jada-soft); color: var(--jada-ink); border: 1px solid var(--jada-line); }
.erp-page .btn-soft-primary:hover { background: var(--jada-ink); border-color: var(--jada-ink); color: var(--jada-surface); }
.erp-page .btn-light { background: var(--jada-surface); color: var(--jada-muted); border: 1px solid var(--jada-line); }
.erp-page .btn-light:hover { color: var(--jada-ink); background: var(--jada-soft); }
.erp-page .btn-sm { padding: .38rem .65rem; font-size: .75rem; border-radius: 7px; }
.erp-page .btn-icon { padding: 0; }
.erp-action-icon { display: inline-block; margin-right: .4rem; vertical-align: -.12em; font-size: 1.1em; font-weight: 400; }
.erp-page .btn:focus-visible, .erp-acceso .btn:focus-visible { outline: 3px solid #b48800; outline-offset: 3px; box-shadow: none; }
/* Tarjetas, filtros, tablas y formularios. */
.erp-page .card { border: 1px solid var(--jada-line); border-radius: 14px; box-shadow: var(--jada-shadow); background-color: var(--jada-surface); }
.erp-page .card-header { border-radius: 14px 14px 0 0; padding: 1.1rem 1.35rem; background: transparent; border-bottom-color: var(--jada-line); }
.erp-page .card-body { padding: 1.35rem; }
.erp-page form.card, .erp-page .card.card-body { padding: clamp(20px, 2.5vw, 32px); }
.erp-page .form-label, .erp-acceso .form-label { color: var(--jada-ink); font-size: .8rem; font-weight: 600; margin-bottom: .45rem; }
:is(.erp-page, .erp-acceso) :is(.form-control, .form-select) { border-radius: 8px; border-color: var(--jada-line); background-color: var(--jada-surface); color: var(--jada-ink); min-height: 41px; padding-block: .6rem; }
:is(.erp-page, .erp-acceso) :is(.form-control, .form-select):focus { border-color: #b89320; box-shadow: 0 0 0 3px #ffc70124; }
:is(.erp-page, .erp-acceso) :is(.form-control, .form-select):disabled { background-color: var(--jada-soft); color: var(--jada-muted); }
:is(.erp-page, .erp-acceso) .form-control.is-invalid { border-color: var(--vz-danger); }
.erp-page textarea.form-control { min-height: 110px; }
.erp-page .form-check-input:checked { background-color: #35465c; border-color: #35465c; }
.erp-page fieldset { border: 1px solid var(--jada-line); border-radius: 10px; padding: 18px; margin-block: 12px; }
.erp-page legend { float: none; width: auto; padding: 0 8px; font-size: .9rem; font-weight: 600; }
.erp-page form[role="search"] { padding: 18px 20px; border: 1px solid var(--jada-line); border-radius: 12px; box-shadow: none; background: var(--jada-surface); gap: .4rem 0; }
.erp-page form[role="search"] .form-label { font-size: .73rem; color: var(--jada-muted); }
.erp-page .table-responsive { border: 1px solid var(--jada-line); border-radius: 14px; box-shadow: var(--jada-shadow); padding: 0; background: var(--jada-surface); }
.erp-page .card .table-responsive { border: 0; border-radius: 0; }
.erp-page .grid-view { min-width: 0; }
.erp-page .grid-view .summary { padding: 16px 20px; margin: 0; border-bottom: 1px solid var(--jada-line); font-size: .76rem; }
.erp-page .table { margin-bottom: 0; --vz-table-striped-bg: transparent; --vz-table-hover-bg: var(--jada-soft); }
.erp-page .table > thead > tr > th { padding: 13px 18px; background: var(--jada-soft); color: var(--jada-muted); font-size: .65rem; font-weight: 700; letter-spacing: .055em; }
.erp-page .table > tbody > tr > td { padding: 14px 18px; border-bottom-color: var(--jada-line); font-size: .8rem; font-variant-numeric: tabular-nums; }
.erp-page .table > tbody > tr:last-child > td { border-bottom: 0; }
.erp-page .table .btn { white-space: nowrap; margin-bottom: 0; }
.erp-page .grid-view .pagination { padding: 14px 20px; margin: 0; border-top: 1px solid var(--jada-line); gap: 4px; }
.erp-page .page-link { border-radius: 7px !important; border-color: transparent; background: transparent; color: var(--jada-muted); }
.erp-page .active > .page-link { background: #ffc701; color: #20242b; border-color: #ffc701; }
.erp-page .grid-view .empty { padding: 50px 24px; font-size: .9rem; }
.erp-page .grid-view .empty::before { content: "\f3a9"; font-family: remixicon; display: block; font-size: 2rem; color: var(--jada-muted); margin-bottom: 10px; }
/* Fichas: estructura de definición accesible, agrupada por contenido. */
.erp-record { margin-bottom: 24px; }
.erp-record-section { background: var(--jada-surface); border: 1px solid var(--jada-line); border-radius: 14px; margin-bottom: 18px; box-shadow: var(--jada-shadow); overflow: hidden; }
.erp-record-section-title { display: flex; align-items: center; gap: 10px; margin: 0; padding: 18px 24px; font-size: .88rem; font-weight: 650; border-bottom: 1px solid var(--jada-line); }
.erp-record-section-title i { color: #8a6b00; font-size: 1.15rem; }
[data-bs-theme="dark"] .erp-record-section-title i { color: #ffd855; }
.erp-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 8px 24px; gap: 0 28px; }
.erp-field { padding: 18px 0; min-width: 0; border-bottom: 1px solid var(--jada-line); }
.erp-field dt { color: var(--jada-muted); display: flex; gap: 7px; align-items: baseline; font-size: .7rem; font-weight: 500; margin-bottom: 7px; }
.erp-field dt i { color: var(--jada-muted); font-size: .9rem; }
.erp-field dd { color: var(--jada-ink); font-size: .9rem; font-weight: 550; margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.erp-field-wide { grid-column: 1 / -1; }
.erp-field-wide dd { font-weight: 400; line-height: 1.7; }
.erp-field-empty { color: var(--jada-muted); font-weight: 400; font-size: .8rem; }
/* Las fichas manuales mantienen sus condiciones, enlaces y valores originales. */
.erp-page dl.erp-fields-manual { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 24px; padding: 8px 24px; gap: 0 28px; border: 1px solid var(--jada-line); border-radius: 14px; background: var(--jada-surface); box-shadow: var(--jada-shadow); }
.erp-page .erp-fields-manual .erp-field > :is(dt, dd) { width: auto; padding: 0; }
.erp-page .card .erp-fields-manual { grid-template-columns: repeat(2, minmax(0, 1fr)); border: 0; box-shadow: none; padding: 0; }
.erp-page pre { padding: 20px !important; border-radius: 12px !important; font-size: .78rem; line-height: 1.7; border-color: var(--jada-line) !important; overflow-wrap: anywhere; }
.erp-page .alert { border-radius: 10px; font-size: .82rem; padding: 16px 20px; }
.erp-page .badge { padding: .42em .7em; font-weight: 600; letter-spacing: .01em; }
/* Inicio y acceso. */
.erp-page .erp-hero { background: #20262e; border: 0; position: relative; }
.erp-hero::before { content: ""; width: 8px; position: absolute; inset: 0 auto 0 0; background: #ffc701; }
.erp-page .erp-hero p { color: #bfc7d1; }
.erp-hero .erp-hero-icono { color: #ffc70118; }
.erp-modulo { transition: border-color .2s, box-shadow .2s; }
.erp-modulo:hover { border-color: #bda34a; box-shadow: 0 8px 28px rgba(25, 32, 42, .09); }
.erp-modulo .list-group-item { padding: .8rem 1.35rem; }
.erp-modulo .list-group-item a { align-items: center; }
.erp-modulo .list-group-item a:hover { color: var(--jada-ink); }
.erp-modulo .list-group-item:hover { background: var(--jada-soft); }
.erp-acceso-marca { background: #1a1f26; }
.erp-acceso-caja { max-width: 440px; padding: 32px; background: var(--jada-surface); border: 1px solid var(--jada-line); border-radius: 20px; box-shadow: var(--jada-shadow); }
.erp-acceso-lema-titulo { font-size: clamp(2rem, 3vw, 3.2rem); letter-spacing: -.04em; }
.login-split-card { width: 100%; max-width: 940px; }
.login-brand-panel { background: #1a1f26; border-bottom: 5px solid #ffc701; }
.login-brand-panel h2 { color: #fff; }
.erp-page .login-btn { background: #ffc701; color: #20242b !important; }
.footer { background: transparent; border-top: 1px solid var(--jada-line); color: var(--jada-muted); }
/* Adaptación: controles táctiles, textos largos y modo de impresión. */
@media (max-width: 1199.98px) {
    .erp-fields, .erp-page dl.erp-fields-manual { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .erp-page { padding-inline: 14px; }
    .erp-page-heading { flex-direction: column; align-items: stretch; gap: 8px; padding: 10px 12px; margin-bottom: 14px; }
    .erp-heading-icon { width: 36px; height: 36px; border-radius: 10px; font-size: 20px; }
    .erp-heading-main { gap: 10px; }
    .erp-page-heading .page-title-right { max-width: 100%; }
    .erp-page-heading .breadcrumb { justify-content: flex-start; font-size: .68rem; }
    .erp-fields, .erp-page dl.erp-fields-manual, .erp-page .card .erp-fields-manual { grid-template-columns: minmax(0, 1fr); padding-inline: 18px; }
    .erp-page .card .erp-fields-manual { padding-inline: 0; }
    .erp-record-section-title { padding-inline: 18px; }
    .erp-field { padding-block: 14px; }
    .erp-page form[role="search"] > [class*="col"]:last-child { flex-basis: 100%; }
    .erp-page .btn { min-height: 42px; }
    .erp-page .table > tbody > tr > td { padding: 12px; }
    .erp-acceso-caja { padding: 24px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .erp-page .btn:hover, .erp-acceso .btn:hover, .card-animate:hover { transform: none !important; }
}
@media print {
    .erp-page-heading, .erp-page .btn, .erp-page form[role="search"] { display: none !important; }
    body, .erp-page { background: white; color: black; }
    .erp-record-section, .erp-page dl.erp-fields-manual, .erp-page .card { box-shadow: none; border-color: #ddd; }
    .erp-field { break-inside: avoid; }
    .erp-page .table-responsive { overflow: visible; box-shadow: none; }
    .erp-fields, .erp-page dl.erp-fields-manual { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Información histórica y técnica legible sin bloques de JSON. */
.erp-document-data { padding: 24px; border: 1px solid var(--jada-line); border-radius: 14px; background: var(--jada-surface); margin-bottom: 24px; }
.erp-document-level { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.erp-document-item { margin: 0; padding: 12px 0; border-bottom: 1px solid var(--jada-line); min-width: 0; }
.erp-document-item dt { font-size: .72rem; font-weight: 500; color: var(--jada-muted); margin-bottom: 5px; }
.erp-document-item dd { margin: 0; font-size: .82rem; }
.erp-document-value { white-space: pre-wrap; overflow-wrap: anywhere; }
.erp-document-group { grid-column: 1 / -1; border-left: 2px solid var(--jada-line); padding-left: 18px; margin-top: 16px; }
.erp-document-group summary { cursor: pointer; font-weight: 600; font-size: .83rem; padding: 6px 0; }
.erp-document-group summary:focus-visible { outline: 2px solid #b48800; outline-offset: 3px; }
@media (max-width: 575.98px) { .erp-document-level { grid-template-columns: minmax(0, 1fr); } .erp-document-data { padding: 18px; } }
.erp-status { display: inline-flex; align-items: center; gap: 7px; padding: 4px 10px; border-radius: 6px; font-size: .75rem; font-weight: 600; background: var(--jada-soft); color: var(--jada-muted); }
.erp-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.erp-status-success { color: #19734f; background: #e9f6ee; }
.erp-status-warning { color: #886000; background: #fff4ce; }
.erp-status-danger { color: #ab3643; background: #ffedf0; }
[data-bs-theme="dark"] .erp-status-success { color: #8ae0af; background: #204333; }
[data-bs-theme="dark"] .erp-status-warning { color: #ffdb73; background: #473d23; }
[data-bs-theme="dark"] .erp-status-danger { color: #ffadb5; background: #4c2932; }
.erp-page .tablero-hero { background: radial-gradient(circle at 100% 0, #ffc70118, transparent 45%), #20262e; border-top: 3px solid #ffc701; }
.erp-page .tablero-hero h1, .erp-page .tablero-hero h2 { color: #fff; }
.erp-page .tablero-kpi { border-top: 3px solid #b89320; }
.erp-page .tablero-kpi-danger { border-top-color: var(--vz-danger); }
.erp-page .tablero-kpi-success { border-top-color: var(--vz-success); }
.erp-page .tablero-kpi-info { border-top-color: var(--vz-info); }
@media (max-width: 767.98px) { .footer .text-sm-end { display: none !important; } }
.erp-page .grid-view { overflow-x: auto; }
/* Acciones siempre al final y visibles al desplazar cualquier GridView. */
.grid-view .table > :is(thead, tbody, tfoot) > tr > .erp-grid-actions {
    position: sticky;
    right: 0;
    z-index: 2;
    min-width: 9rem;
    max-width: min(24rem, 70vw);
    background-color: var(--jada-surface) !important;
    box-shadow: -9px 0 14px -12px rgba(0, 0, 0, .45) !important;
    border-left: 1px solid var(--jada-line);
}
.grid-view .table > thead > tr > .erp-grid-actions {
    z-index: 3;
    background-color: var(--jada-soft) !important;
}
.grid-view .table > tbody > tr:hover > .erp-grid-actions {
    background-color: var(--jada-soft) !important;
}
/* Un mismo formato para las acciones de todas las filas y módulos. */
.erp-page .grid-view .erp-grid-actions {
    --erp-action-width: 12.5rem;
    vertical-align: middle;
}
.erp-page .grid-view th.erp-grid-actions { text-align: center; }
.erp-page .grid-view .erp-grid-actions .client-row-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: var(--erp-action-width);
    min-width: 0;
    max-width: none;
}
.erp-page .grid-view .erp-grid-actions .btn,
.erp-page .grid-view .erp-grid-actions > a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    box-sizing: border-box;
    width: var(--erp-action-width);
    min-width: var(--erp-action-width);
    height: 3rem;
    min-height: 3rem;
    margin: .2rem 0 !important;
    padding: .4rem .75rem;
    border: 1px solid var(--jada-line);
    border-radius: 9px;
    background: var(--jada-surface);
    color: var(--jada-ink);
    font-size: .74rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    white-space: normal !important;
    overflow-wrap: anywhere;
    transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.erp-page .grid-view .erp-grid-actions :is(.btn, a) > :is(i, svg, .glyphicon) {
    flex: 0 0 1.1rem;
    margin: 0 !important;
    font-size: 1rem;
}
.erp-page .grid-view .erp-grid-actions :is(.btn, a):not(:disabled):not(.disabled):hover {
    color: var(--jada-ink);
    background: var(--jada-soft);
    border-color: #b88d14;
    box-shadow: 0 2px 6px rgba(20, 28, 40, .08);
    transform: none;
}
.erp-page .grid-view .erp-grid-actions :is(.btn, a):focus-visible {
    outline: 2px solid #b48800;
    outline-offset: 2px;
}
.erp-page .grid-view .erp-grid-actions :is(.btn-danger, .btn-soft-danger, .btn-outline-danger) {
    color: var(--vz-danger, #b42336);
    border-color: currentColor;
}
.erp-page .grid-view .erp-grid-actions :is(.btn-danger, .btn-soft-danger, .btn-outline-danger):hover {
    color: var(--vz-danger, #b42336);
    border-color: currentColor;
}
@media (prefers-reduced-motion: reduce) {
    .erp-page .grid-view .erp-grid-actions :is(.btn, a) { transition: none; }
}
@media print {
    .grid-view .table > :is(thead, tbody, tfoot) > tr > .erp-grid-actions { position: static; box-shadow: none !important; }
}
.erp-page > .grid-view { border: 1px solid var(--jada-line); border-radius: 14px; background: var(--jada-surface); margin-bottom: 24px; }
.erp-page > form:not([role="search"]):not(.card):not(.m-0) { padding: 24px; background: var(--jada-surface); border: 1px solid var(--jada-line); border-radius: 14px; margin-bottom: 24px; }
@media (max-width: 575.98px) { .erp-page > form:not([role="search"]):not(.card):not(.m-0) { padding: 18px; } }
/* Select2 de Krajee: buscador, foco y listas coherentes con los dos temas. */
.select2-container--krajee-bs5 { font-family: inherit; font-size: .83rem; }
.select2-container--krajee-bs5 .select2-selection { background-color: var(--jada-surface); border: 1px solid var(--jada-line); color: var(--jada-ink); border-radius: 8px; box-shadow: none; min-height: 41px; }
.select2-container--krajee-bs5 .select2-selection--single { height: auto; padding: .6rem 2.4rem .6rem .8rem; }
.select2-container--krajee-bs5 .select2-selection--single .select2-selection__rendered { padding: 0; color: var(--jada-ink); line-height: 1.55; }
.select2-container--krajee-bs5 .select2-selection--single .select2-selection__arrow { border: 0; height: 100%; }
.select2-container--krajee-bs5 .select2-selection__placeholder { color: var(--jada-muted); }
.select2-container--krajee-bs5.select2-container--focus .select2-selection, .select2-container--krajee-bs5.select2-container--open .select2-selection { border-color: #b89320; box-shadow: 0 0 0 3px #ffc70124; }
.select2-container--krajee-bs5 .select2-dropdown { background: var(--jada-surface); border: 1px solid var(--jada-line); border-radius: 10px; box-shadow: 0 10px 28px #11182722; color: var(--jada-ink); overflow: hidden; }
.select2-container--krajee-bs5 .select2-search--dropdown { padding: 10px; }
.select2-container--krajee-bs5 .select2-search--dropdown .select2-search__field { background: var(--jada-soft); border: 1px solid var(--jada-line); border-radius: 6px; color: var(--jada-ink); padding: .5rem .65rem; outline-color: #b89320; }
.select2-container--krajee-bs5 .select2-results__option { padding: .65rem .85rem; font-size: .82rem; overflow-wrap: anywhere; }
.select2-container--krajee-bs5 .select2-results__option--highlighted[aria-selected] { color: var(--jada-ink); background: var(--jada-soft); }
.select2-container--krajee-bs5 .select2-results__option[aria-selected="true"] { color: #302a15; background: #fff4ce; }
.select2-container--krajee-bs5.select2-container--disabled .select2-selection { background: var(--jada-soft); opacity: .7; cursor: not-allowed; }
.select2-container--krajee-bs5 .select2-selection__choice { background: var(--jada-soft); color: var(--jada-ink); border-color: var(--jada-line); }
select.mb-3 + .select2-container { margin-bottom: 1rem; }
select.is-invalid + .select2-container .select2-selection, .has-error .select2-selection { border-color: var(--vz-danger); }
.erp-select-error { display: block; color: var(--vz-danger); font-size: .78rem; margin-top: 5px; }
/* Interruptores nativos: teclado y valor 0 al desactivar. */
.erp-switch-control { display: inline-flex; align-items: center; min-height: 32px; padding: 0; margin: 0 .7rem 0 0; vertical-align: middle; }
.erp-switch-control .form-check-input { float: none; margin: 0; width: 2.6rem; height: 1.4rem; cursor: pointer; border-color: var(--jada-muted); }
.erp-switch-control .form-check-input:checked { background-color: #35465c; border-color: #35465c; }
.erp-switch-control .form-check-input:focus-visible { outline: 3px solid #b48800; outline-offset: 3px; box-shadow: none; }
.erp-switch-control .form-check-input:disabled { cursor: not-allowed; opacity: .5; }
[data-bs-theme="dark"] .erp-switch-control .form-check-input:checked { background-color: #d3aa20; border-color: #d3aa20; }
@media (max-width: 575.98px) { .select2-container--krajee-bs5 .select2-results__option { min-height: 44px; } }
.select2-container--krajee-bs5 .select2-selection--single { position: relative; background-image: none; }
.select2-container--krajee-bs5 .select2-selection--single::after { content: ""; position: absolute; right: 16px; top: 44%; width: 7px; height: 7px; border-right: 1.5px solid var(--jada-muted); border-bottom: 1.5px solid var(--jada-muted); transform: rotate(45deg); pointer-events: none; }
.select2-container--krajee-bs5.select2-container--open .select2-selection--single::after { top: 50%; transform: rotate(225deg); }
.select2-container--krajee-bs5 .select2-results__option[aria-selected] { background: var(--jada-surface); color: var(--jada-ink); }
.select2-container--krajee-bs5 .select2-results__option--highlighted[aria-selected] { background: var(--jada-soft); color: var(--jada-ink); }
.select2-container--krajee-bs5 .select2-results__option[aria-selected="true"], .select2-container--krajee-bs5 .select2-results__option--selected { background: #fff4ce; color: #302a15; }
.select2-container--krajee-bs5 .select2-results__option[aria-disabled="true"] { background: var(--jada-surface); color: var(--jada-muted); }
.select2-container--krajee-bs5 .select2-results__message { color: var(--jada-muted); background: var(--jada-surface); }
/* Paleta de módulos y submódulos · Ctrl / Cmd + K. */
.erp-search-trigger { display: flex; align-items: center; gap: 9px; width: 100%; padding: 10px; border: 1px solid #ffffff26; border-radius: 9px; background: #ffffff08; color: #cbd1da; font: inherit; font-size: .76rem; text-align: left; cursor: pointer; }
.erp-search-trigger:hover { background: #ffffff12; color: #fff; border-color: #ffffff45; }
.erp-search-trigger span { flex: 1; }
.erp-search-trigger kbd { color: #b7c0cd; background: #ffffff0a; padding: 2px 5px; border: 1px solid #ffffff20; border-radius: 4px; font: inherit; font-size: .64rem; white-space: nowrap; }
[data-sidebar="light"] .erp-search-trigger { background: var(--jada-soft); color: var(--jada-ink); border-color: var(--jada-line); }
[data-sidebar="light"] .erp-search-trigger kbd { color: var(--jada-muted); border-color: var(--jada-line); }
.erp-command { padding: 0; width: min(680px, calc(100vw - 32px)); max-height: min(720px, calc(100dvh - 64px)); margin: min(12vh, 100px) auto auto; border: 1px solid var(--jada-line); border-radius: 18px; background: var(--jada-surface); color: var(--jada-ink); box-shadow: 0 24px 90px #0005; overflow: hidden; }
.erp-command[open] { display: flex; flex-direction: column; }
.erp-command::backdrop { background: #11182799; backdrop-filter: blur(4px); }
.erp-command-open { overflow: hidden; }
.erp-command-head { display: flex; align-items: center; gap: 16px; padding: 22px 24px; border-bottom: 1px solid var(--jada-line); }
.erp-command-head > i { color: #9b7800; font-size: 25px; }
.erp-command-search { flex: 1; min-width: 0; }
.erp-command-search label { display: block; color: var(--jada-muted); font-size: .69rem; font-weight: 600; margin-bottom: 5px; }
.erp-command-search input { width: 100%; padding: 0; border: 0; outline: 0; background: transparent; color: var(--jada-ink); font: inherit; font-size: 1rem; box-shadow: none; }
.erp-command-search input::placeholder { color: var(--jada-muted); }
.erp-command-search input:focus-visible { outline: 0; }
.erp-command-head:focus-within { box-shadow: inset 0 -2px #c79c13; }
.erp-command-close { border: 1px solid var(--jada-line); background: var(--jada-soft); color: var(--jada-muted); border-radius: 6px; padding: 5px 8px; font-size: .7rem; cursor: pointer; }
.erp-command-caption { display: flex; justify-content: space-between; padding: 14px 24px 8px; color: var(--jada-muted); font-size: .71rem; flex-shrink: 0; }
.erp-command-results { overflow-y: auto; overscroll-behavior: contain; padding: 4px 10px 12px; min-height: 0; }
.erp-command-option { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 10px; cursor: pointer; border: 1px solid transparent; }
.erp-command-option[aria-selected="true"] { background: var(--jada-soft); border-color: var(--jada-line); }
.erp-command-option[aria-selected="true"] .erp-command-icon { background: #ffc701; color: #20242b; }
.erp-command-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--jada-soft); color: var(--jada-muted); font-size: 18px; flex-shrink: 0; }
.erp-command-text { display: flex; flex-direction: column; min-width: 0; flex: 1; gap: 3px; }
.erp-command-text strong { font-size: .85rem; font-weight: 600; overflow-wrap: anywhere; }
.erp-command-text small { font-size: .7rem; color: var(--jada-muted); overflow-wrap: anywhere; }
.erp-command-type { font-size: .64rem; color: var(--jada-muted); background: var(--jada-soft); padding: 3px 7px; border-radius: 5px; flex-shrink: 0; }
.erp-command-empty { text-align: center; padding: 45px 24px; }
.erp-command-empty i { font-size: 32px; color: var(--jada-muted); }
.erp-command-empty p { font-weight: 600; margin: 12px 0 5px; }
.erp-command-empty span { color: var(--jada-muted); font-size: .8rem; }
.erp-command-footer { display: flex; flex-wrap: wrap; gap: 16px; padding: 12px 24px; border-top: 1px solid var(--jada-line); color: var(--jada-muted); background: var(--jada-soft); font-size: .68rem; flex-shrink: 0; }
.erp-command-footer kbd { border: 1px solid var(--jada-line); border-radius: 4px; padding: 2px 5px; color: var(--jada-muted); background: var(--jada-surface); font: inherit; }
@media (max-width: 575.98px) { .erp-command { margin-top: 20px; max-height: calc(100dvh - 40px); } .erp-command-head { padding: 18px 16px; gap: 10px; } .erp-command-caption { padding-inline: 16px; } .erp-command-type { display: none; } .erp-command-footer { padding-inline: 16px; gap: 10px; } }
@media print { .erp-command { display: none !important; } }
.erp-articulo-form .card-header h2 { margin:0; font-size:.95rem; }
.erp-type-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.erp-type-option { display:flex; align-items:flex-start; gap:12px; border:1px solid var(--jada-line); border-radius:12px; padding:18px; cursor:pointer; }
.erp-type-option:has(input:checked) { border-color:#b48d16; background:#ffc7010c; box-shadow:inset 0 0 0 1px #b48d16; }
.erp-type-option i { font-size:25px; color:var(--jada-muted); }
.erp-type-option strong,.erp-type-option small { display:block; }
.erp-type-option strong { margin-bottom:6px; }
.erp-type-option small { color:var(--jada-muted); font-size:.77rem; line-height:1.55; }
.erp-type-option .form-check-input { flex-shrink:0; margin-top:5px; }
.erp-product-switches { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.erp-product-switches > div { display:flex; align-items:center; }
.erp-product-actions { padding:18px 0 24px; }
.erp-page form.erp-articulo-form { padding:0; background:transparent; border:0; }
@media(max-width:767.98px){.erp-type-options,.erp-product-switches {grid-template-columns:minmax(0,1fr);} }
.erp-page > form.erp-articulo-form:not([role="search"]):not(.card):not(.m-0) { padding:0; background:transparent; border:0; border-radius:0; }

/* Formularios de gestión: una misma jerarquía, con espacio para capturar y revisar. */
.erp-page > form.erp-form:not([role="search"]):not(.card):not(.m-0) {
    padding: 0;
    border: 0;
    background: transparent;
}
.erp-form-panel {
    container-type: inline-size;
    min-width: 0;
    border: 1px solid var(--jada-line);
    border-radius: 16px;
    background: var(--jada-surface);
    box-shadow: var(--jada-shadow);
    margin-bottom: 24px;
}
.erp-form-heading {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 24px 28px;
    border-bottom: 1px solid var(--jada-line);
    border-radius: 16px 16px 0 0;
    background: linear-gradient(115deg, #ffc70110, transparent 65%), var(--jada-soft);
}
.erp-form-icon {
    display: grid;
    place-items: center;
    flex: 0 0 46px;
    height: 46px;
    border: 1px solid #ffc70160;
    border-radius: 13px;
    background: #ffc70120;
    color: var(--jada-ink);
    font-size: 23px;
}
.erp-form-eyebrow { color: var(--jada-muted); font-size: .64rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.erp-page .erp-form-title { margin: 3px 0 5px; font-size: 1.08rem; font-weight: 700; letter-spacing: -.025em; line-height: 1.4; }
.erp-form-heading p { margin: 0; color: var(--jada-muted); font-size: .8rem; }
.erp-form-required { margin-left: auto; flex-shrink: 0; color: var(--jada-muted); font-size: .72rem; }
.erp-form-required > span { color: var(--vz-danger, #c23b3b); font-weight: 700; }
.erp-form-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px 26px; padding: 28px; }
.erp-form-grid > * { grid-column: 1 / -1; min-width: 0; }
.erp-form-grid > input[type="hidden"],
.erp-form-grid > .erp-form-field:has(input[type="hidden"]):not(:has(input:not([type="hidden"]), select, textarea, fieldset)) { display: none; }
.erp-form-grid > .erp-form-field { grid-column: auto; margin: 0; }
.erp-form-grid > .erp-form-field:has(textarea, input[type="file"], fieldset),
.erp-form-grid > .erp-form-field--reason { grid-column: 1 / -1; }
.erp-form-field > .form-label { display: block; line-height: 1.5; margin-bottom: 8px; }
.erp-form-field:has(:required:not(:disabled):not([readonly])) > .form-label::after { content: ' *'; color: var(--vz-danger, #c23b3b); }
.erp-form-field :is(.form-control, .form-select) { width: 100%; min-height: 44px; }
.erp-form-field :is(.form-control, .form-select), .erp-form-field > .mb-3 { margin-bottom: 0 !important; }
.erp-form-field textarea.form-control { min-height: 112px; resize: vertical; }
.erp-form-field .form-control[readonly] { background: var(--jada-soft); color: var(--jada-muted); border-style: dashed; }
.erp-form-field .form-text { display: block; margin: 8px 0 0; font-size: .74rem; line-height: 1.6; }
.erp-form-field .select2-container { max-width: 100%; min-width: 0; margin-bottom: 0; }
.erp-form-field .select2-container--krajee-bs5 .select2-selection {
    min-height: 44px;
    border: 1px solid var(--jada-line);
    border-radius: 8px;
    background: var(--jada-surface);
    color: var(--jada-ink);
}
.erp-form-field .select2-container--krajee-bs5 .select2-selection--single .select2-selection__rendered { color: var(--jada-ink); }
.erp-form-field .select2-container--krajee-bs5 .select2-selection__placeholder { color: var(--jada-muted); }
.erp-form-field .select2-selection__arrow b { display: none; }
.erp-form-field .select2-container--focus .select2-selection,
.erp-form-field .select2-container--open .select2-selection { border-color: #b89320; box-shadow: 0 0 0 3px #ffc70124; }
.erp-form-field .select2-container--disabled .select2-selection { background: var(--jada-soft); }
.erp-form-field :is(.is-invalid, .has-error) ~ .select2-container .select2-selection,
.erp-form-field.has-error .select2-selection { border-color: var(--vz-danger); }
.erp-form-field .select2-selection__rendered { overflow: hidden; text-overflow: ellipsis; }
.erp-form-field .invalid-feedback { margin-top: 7px; }
.erp-form-field--reason { padding: 22px; border: 1px solid var(--jada-line); border-left: 3px solid var(--jada-accent); border-radius: 12px; background: var(--jada-soft); }
.erp-form-grid > p { margin: 0; padding: 12px 16px; border-radius: 8px; background: var(--jada-soft); color: var(--jada-muted); font-size: .8rem; }
.erp-form-grid > fieldset:has(.form-check) { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 12px 20px; margin: 0; }
.erp-form-grid > fieldset .form-check { margin: 0; padding-block: 6px; }
.erp-form-grid > .erp-form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin: 6px -28px -28px;
    padding: 20px 28px;
    border-top: 1px solid var(--jada-line);
    border-radius: 0 0 16px 16px;
    background: var(--jada-soft);
}
.erp-form-actions > .btn-primary { min-width: 160px; }
@container (min-width: 640px) {
    .erp-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container (min-width: 1120px) {
    .erp-form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .erp-form-heading { padding: 20px; gap: 12px; flex-wrap: wrap; }
    .erp-form-heading > div { flex: 1; min-width: 0; }
    .erp-form-required { width: calc(100% - 58px); margin-left: 58px; }
    .erp-form-grid { padding: 20px; gap: 20px; }
    .erp-form-field--reason { padding: 16px; }
    .erp-form-grid > .erp-form-actions { margin: 4px -20px -20px; padding: 18px 20px; }
}
@media (max-width: 479.98px) {
    .erp-form-actions > .btn { width: 100%; text-align: center; }
    .erp-form-heading .erp-form-title { font-size: 1rem; }
}

/* Selector de columnas: las preferencias pertenecen a cada cuenta y listado. */
.erp-page .grid-view .erp-grid-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 14px 20px; border-bottom: 1px solid var(--jada-line); background: var(--jada-soft); }
.erp-grid-toolbar > span { font-size: .76rem; color: var(--jada-muted); }
.erp-columns-dialog { width: min(650px, calc(100vw - 32px)); max-height: calc(100dvh - 40px); padding: 0; color: var(--jada-ink); background: var(--jada-surface); border: 1px solid var(--jada-line); border-radius: 16px; box-shadow: 0 24px 80px #0004; }
.erp-columns-dialog::backdrop { background: #151c2b80; backdrop-filter: blur(3px); }
.erp-columns-dialog > header { display: flex; gap: 20px; justify-content: space-between; padding: 24px; border-bottom: 1px solid var(--jada-line); }
.erp-page .erp-columns-dialog h2 { margin: 0 0 8px; font-size: 1.2rem; font-weight: 700; }
.erp-columns-dialog header p { margin: 0; color: var(--jada-muted); font-size: .8rem; line-height: 1.6; }
.erp-columns-close { border: 0; background: transparent; color: var(--jada-muted); font-size: 26px; align-self: flex-start; line-height: 1; border-radius: 5px; padding: 4px 7px; }
.erp-columns-body { padding: 22px 24px; }
.erp-columns-tools { display: flex; flex-wrap: wrap; gap: 14px; margin: 15px 0; }
.erp-columns-tools button { border: 0; background: transparent; padding: 0; color: var(--jada-ink); font-size: .76rem; text-decoration: underline; text-underline-offset: 3px; }
.erp-columns-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-height: 40dvh; overflow-y: auto; overscroll-behavior: contain; }
.erp-column-option { display: flex; align-items: flex-start; gap: 10px; padding: 11px 12px; margin: 0; border: 1px solid var(--jada-line); border-radius: 8px; font-size: .8rem; line-height: 1.5; cursor: pointer; overflow-wrap: anywhere; }
.erp-column-option[hidden] { display: none; }
.erp-column-option:has(:checked) { border-color: #b48d22; background: #ffc70112; }
.erp-column-option input { flex-shrink: 0; width: 16px; height: 16px; margin-top: 2px; accent-color: #8b6b00; }
.erp-columns-dialog button:focus-visible, .erp-column-option:has(:focus-visible) { outline: 3px solid #b48d22; outline-offset: 2px; }
.erp-columns-status, .erp-columns-empty { margin: 14px 0 0; color: var(--jada-muted); font-size: .78rem; }
.erp-columns-dialog > footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 18px 24px; background: var(--jada-soft); border-top: 1px solid var(--jada-line); }
@media (max-width: 479.98px) {
    .erp-columns-list { grid-template-columns: minmax(0, 1fr); }
    .erp-columns-dialog > header, .erp-columns-body { padding: 18px; }
    .erp-columns-dialog > footer { padding: 18px; }
    .erp-columns-dialog > footer .btn { width: 100%; }
}

/* Expediente de clientes: identidad, navegación y operación en una misma ficha. */
.client-profile { --client-accent: #b88d14; }
.client-topline { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:18px; }
.client-topline > span { display:flex; gap:8px; align-items:center; color:var(--jada-muted); font-size:.78rem; }
.client-hero { display:flex; justify-content:space-between; gap:28px; padding:30px; border:1px solid var(--jada-line); border-top:3px solid var(--jada-accent); border-radius:16px; background:radial-gradient(ellipse at top left,#ffc70114,transparent 65%),var(--jada-surface); box-shadow:var(--jada-shadow); }
.client-identity { display:flex; gap:22px; align-items:center; min-width:0; }
.client-avatar { width:88px; height:88px; flex:0 0 88px; display:grid; place-items:center; border:1px solid #ffc70170; border-radius:22px; background:#ffc7011c; color:var(--jada-ink); font-size:2rem; font-weight:750; overflow:hidden; }
.client-avatar img { width:100%; height:100%; object-fit:cover; }
.client-identity-copy { min-width:0; }
.client-eyebrow { display:block; color:var(--jada-muted); font-size:.63rem; font-weight:750; letter-spacing:.09em; text-transform:uppercase; }
.erp-page .client-identity h2 { margin:6px 0 6px; font-size:clamp(1.3rem,2vw,1.9rem); letter-spacing:-.035em; font-weight:750; line-height:1.2; overflow-wrap:anywhere; }
.client-identity p { margin:0 0 14px; color:var(--jada-muted); font-size:.87rem; }
.client-tags { display:flex; gap:7px; flex-wrap:wrap; }
.client-tag { display:inline-flex; align-items:center; gap:6px; padding:5px 9px; border:1px solid var(--jada-line); background:var(--jada-soft); border-radius:6px; color:var(--jada-muted); font-size:.65rem; font-weight:600; line-height:1.5; }
.client-tag.is-success { background:#20a36b0d; border-color:#20a36b38; color:#198457; }
.client-tag.is-warning { background:#d89c1010; border-color:#d89c1040; color:#967111; }
[data-bs-theme="dark"] .client-tag.is-success { color:#80d6a8; }
[data-bs-theme="dark"] .client-tag.is-warning { color:#e5c06d; }
.client-hero-side { display:flex; flex-direction:column; justify-content:center; gap:10px; flex:0 0 260px; border-left:1px solid var(--jada-line); padding-left:28px; }
.client-hero-side > strong, .client-hero-side > span:not(.client-eyebrow) { display:flex; align-items:center; gap:8px; font-size:.78rem; }
.client-hero-side > span:not(.client-eyebrow) { color:var(--jada-muted); }
.client-hero-buttons { display:flex; gap:8px; margin-top:5px; flex-wrap:wrap; }
.client-hero-buttons .btn { padding:.55rem .8rem; font-size:.75rem; }
.client-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:20px 0 24px; }
.client-metric { display:flex; align-items:center; gap:13px; padding:18px; min-width:0; border:1px solid var(--jada-line); border-radius:12px; background:var(--jada-surface); color:var(--jada-ink); text-decoration:none; transition:border-color .15s,transform .15s; }
.client-metric:hover { color:var(--jada-ink); border-color:#b89320; transform:translateY(-2px); }
.client-metric-icon, .client-section-icon { display:grid; place-items:center; width:42px; height:42px; flex:0 0 42px; border-radius:11px; font-size:20px; background:var(--jada-soft); color:var(--jada-ink); }
.tone-azul { background:#4884d815; color:#4674bc; }
.tone-verde { background:#20a36b13; color:#2a996b; }
.tone-violeta { background:#8652c813; color:#935bd6; }
.tone-ambar { background:#e5a60013; color:#b88a12; }
.client-metric strong { display:block; font-size:1.55rem; line-height:1.15; letter-spacing:-.03em; }
.client-metric small { display:block; color:var(--jada-muted); margin-top:5px; font-size:.74rem; }
.client-metric-arrow { margin-left:auto; color:var(--jada-muted); }
.client-tabs { display:flex; overflow-x:auto; gap:4px; padding:0 14px; background:var(--jada-surface); border:1px solid var(--jada-line); border-radius:12px; scrollbar-width:thin; scroll-padding-inline:14px; }
.client-tab { display:flex; align-items:center; gap:8px; flex-shrink:0; padding:17px 13px 14px; border-bottom:3px solid transparent; color:var(--jada-muted); font-size:.79rem; font-weight:600; text-decoration:none; }
.client-tab > i { font-size:18px; }
.client-tab:hover { color:var(--jada-ink); background:var(--jada-soft); }
.client-tab.active { color:var(--jada-ink); border-bottom-color:var(--jada-accent); }
.client-tab-count { padding:1px 6px; border-radius:5px; font-size:.64rem; background:var(--jada-soft); border:1px solid var(--jada-line); }
.client-tab.active .client-tab-count { border-color:#b88d1450; background:#ffc70115; }
.client-content { padding-top:24px; }
.client-overview { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr); gap:22px; }
.client-info-card, .client-credit-card, .client-list-card { background:var(--jada-surface); border:1px solid var(--jada-line); border-radius:14px; margin-bottom:20px; overflow:hidden; }
.client-info-card > header { display:flex; align-items:center; gap:12px; padding:20px 24px; border-bottom:1px solid var(--jada-line); }
.erp-page .client-info-card h2 { margin:0 0 3px; font-size:.95rem; font-weight:700; }
.client-info-card header p { margin:0; color:var(--jada-muted); font-size:.74rem; }
.client-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 26px; margin:0; padding:24px; }
.client-facts > div { min-width:0; }
.client-facts dt { display:flex; align-items:center; gap:7px; color:var(--jada-muted); font-size:.73rem; font-weight:500; margin-bottom:7px; }
.client-facts dd { margin:0; color:var(--jada-ink); font-weight:600; font-size:.83rem; overflow-wrap:anywhere; }
.client-facts .client-fact-wide { grid-column:1 / -1; border-top:1px solid var(--jada-line); padding-top:18px; }
.client-facts .client-fact-wide dd { font-weight:400; line-height:1.7; }
.client-credit-card { padding:24px; background:linear-gradient(145deg,#20a36b0c,transparent),var(--jada-surface); }
.client-credit-card.is-blocked { background:linear-gradient(145deg,#ffc70114,transparent),var(--jada-surface); }
.client-credit-card > .client-section-icon { margin-bottom:20px; }
.erp-page .client-credit-card h2 { margin:8px 0 12px; font-size:1.2rem; font-weight:700; }
.client-credit-card p { color:var(--jada-muted); font-size:.8rem; line-height:1.8; margin-bottom:18px; }
.client-credit-card .client-credit-reason { border-left:2px solid var(--jada-accent); padding-left:12px; }
.client-quick-actions > a { display:flex; align-items:center; gap:10px; padding:15px 24px; border-bottom:1px solid var(--jada-line); text-decoration:none; color:var(--jada-ink); font-size:.78rem; }
.client-quick-actions > a:last-child { border-bottom:0; }
.client-quick-actions > a:hover { background:var(--jada-soft); }
.client-quick-actions > a > i:last-child { margin-left:auto; color:var(--jada-muted); }
.client-section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 20px; }
.erp-page .client-section-heading h2 { display:flex; align-items:center; gap:9px; margin:7px 0; font-size:1.25rem; font-weight:700; letter-spacing:-.025em; }
.client-section-heading p { color:var(--jada-muted); font-size:.8rem; margin:0; }
.client-subtabs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px; }
.client-subtabs a { display:flex; align-items:center; gap:9px; border:1px solid var(--jada-line); border-radius:8px; background:var(--jada-surface); color:var(--jada-muted); padding:9px 12px; font-size:.74rem; text-decoration:none; }
.client-subtabs a.active { background:#ffc70113; border-color:#b88d14; color:var(--jada-ink); font-weight:600; }
.client-subtabs a > span { padding:1px 5px; border-radius:4px; background:var(--jada-soft); font-size:.65rem; }
.client-list-card > header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 24px; }
.erp-page .client-list-card h3 { margin:0 0 5px; font-size:.96rem; font-weight:700; }
.client-list-card header p { color:var(--jada-muted); margin:0; font-size:.75rem; }
.client-list-icon { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; background:var(--jada-soft); color:var(--jada-muted); font-size:20px; }
.client-list-card .grid-view { margin:0; border:0; border-radius:0; box-shadow:none; }
.client-row-actions { display:flex; flex-wrap:wrap; gap:6px; min-width:180px; max-width:340px; }
.client-action-catalog { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.client-action-card { display:flex; align-items:flex-start; gap:14px; padding:22px; border:1px solid var(--jada-line); border-radius:13px; background:var(--jada-surface); color:var(--jada-ink); text-decoration:none; transition:border-color .15s,transform .15s; }
.client-action-card:hover { color:var(--jada-ink); border-color:#b88d14; transform:translateY(-2px); }
.client-action-icon { display:grid; place-items:center; flex:0 0 40px; height:40px; border-radius:10px; background:#ffc70115; font-size:21px; }
.client-action-card > span:nth-child(2) { display:flex; flex-direction:column; gap:8px; min-width:0; }
.client-action-card small { font-size:.61rem; color:var(--jada-muted); text-transform:uppercase; letter-spacing:.06em; }
.client-action-card strong { font-size:.87rem; }
.client-action-card span span { color:var(--jada-muted); font-size:.75rem; line-height:1.7; }
.client-action-card > i:last-child { color:var(--jada-muted); margin-left:auto; }
.client-empty { padding:32px; text-align:center; color:var(--jada-muted); }
.client-empty > i { font-size:30px; }
.client-scope-note { display:flex; align-items:flex-start; justify-content:center; gap:7px; color:var(--jada-muted); font-size:.73rem; margin:12px 0 24px; }
.client-profile a:focus-visible { outline:3px solid #b88d14; outline-offset:3px; }
@media (max-width:1399.98px) {
    .client-overview { grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr); }
    .client-hero { flex-wrap:wrap; }
    .client-hero-side { flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:flex-start; flex-basis:100%; border-left:0; border-top:1px solid var(--jada-line); padding:18px 0 0; gap:12px 22px; }
    .client-hero-side .client-eyebrow { width:100%; }
    .client-hero-buttons { margin:0 0 0 auto; }
    .client-action-catalog { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:991.98px) {
    .client-overview { grid-template-columns:minmax(0,1fr); }
    .client-overview-side { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:start; }
    .client-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .client-section-heading { flex-wrap:wrap; }
}
@media (max-width:575.98px) {
    .client-hero { padding:20px; gap:20px; }
    .client-identity { align-items:flex-start; gap:14px; }
    .client-avatar { width:58px; height:58px; flex-basis:58px; border-radius:15px; font-size:1.4rem; }
    .client-identity h2 { font-size:1.3rem; }
    .client-hero-buttons { width:100%; margin-top:4px; }
    .client-metric { padding:14px; gap:9px; }
    .client-metric-icon { width:34px; height:34px; flex-basis:34px; font-size:18px; }
    .client-metric-arrow { display:none; }
    .client-overview-side, .client-action-catalog, .client-facts { grid-template-columns:minmax(0,1fr); }
    .client-info-card > header, .client-facts, .client-credit-card { padding:20px; }
    .client-section-actions, .client-section-actions > .btn { width:100%; }
    .client-tabs { padding-inline:5px; }
    .client-tab { padding-inline:10px; }
}
.client-tabs { margin-top:20px; scroll-margin-top:90px; }
.client-tabs + .client-metrics { margin-bottom:0; }
.client-records-heading { display:flex; justify-content:space-between; margin-bottom:14px; color:var(--jada-muted); font-size:.78rem; }
.client-contact-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr)); gap:20px; align-items:start; }
.client-contact-card { border:1px solid var(--jada-line); border-radius:14px; background:var(--jada-surface); overflow:hidden; }
.client-contact-card > header { display:flex; align-items:center; gap:12px; padding:22px; border-bottom:1px solid var(--jada-line); }
.client-contact-avatar { display:grid; place-items:center; flex:0 0 42px; height:42px; border-radius:12px; background:#4884d812; color:#4674bc; font-size:22px; }
.client-contact-card header > div { flex:1; min-width:0; }
.erp-page .client-contact-card h3 { font-size:1rem; font-weight:700; margin:0 0 5px; overflow-wrap:anywhere; }
.client-contact-card header p { margin:0; color:var(--jada-muted); font-size:.76rem; }
.client-contact-body { padding:22px; }
.client-contact-body > p { display:flex; gap:12px; align-items:flex-start; margin:0 0 18px; color:var(--jada-ink); font-size:.85rem; overflow-wrap:anywhere; }
.client-contact-body > p:last-child { margin-bottom:0; }
.client-contact-body > p > i { color:var(--jada-muted); font-size:18px; margin-top:2px; }
.client-contact-body > p > span { min-width:0; }
.client-contact-body small { display:block; margin-bottom:5px; font-size:.71rem; color:var(--jada-muted); }
.client-primary-label { display:inline-flex; align-items:center; gap:6px; margin-bottom:20px; padding:4px 9px; background:#ffc70114; color:var(--jada-ink); border:1px solid #b88d1435; border-radius:6px; font-size:.68rem; }
.client-contact-note { padding:14px; border-radius:8px; background:var(--jada-soft); font-size:.79rem; line-height:1.7; overflow-wrap:anywhere; }
.client-contact-card > footer { display:flex; flex-wrap:wrap; gap:8px; padding:15px 22px; background:var(--jada-soft); border-top:1px solid var(--jada-line); }

/* Navegación secundaria del expediente: panel de apartados y contenido independiente. */
.client-workspace { min-width:0; }
.client-workspace.has-explorer { display:grid; grid-template-columns:238px minmax(0,1fr); gap:22px; align-items:start; }
.client-workspace-body { min-width:0; }
.client-explorer { border:1px solid var(--jada-line); border-radius:14px; background:var(--jada-surface); overflow:hidden; }
.client-explorer-heading { padding:19px 18px 16px; border-bottom:1px solid var(--jada-line); background:var(--jada-soft); }
.client-explorer-heading > span:last-child { display:block; color:var(--jada-muted); font-size:.73rem; margin-top:5px; }
.client-block-list { display:flex; flex-direction:column; gap:5px; padding:10px; }
.client-block-group { padding:13px 10px 5px; font-size:.59rem; font-weight:750; letter-spacing:.08em; text-transform:uppercase; color:var(--jada-muted); }
.client-block-link { position:relative; display:flex; align-items:center; gap:10px; padding:11px 10px; border:1px solid transparent; border-radius:9px; text-decoration:none; color:var(--jada-muted); transition:background .15s,border-color .15s; }
.client-block-link:hover { background:var(--jada-soft); color:var(--jada-ink); }
.client-block-link.active { background:#ffc70110; border-color:#b88d1438; color:var(--jada-ink); }
.client-block-link.active::before { content:''; position:absolute; left:-1px; top:11px; bottom:11px; width:3px; border-radius:3px; background:var(--jada-accent); }
.client-block-icon { display:grid; place-items:center; flex:0 0 28px; height:28px; font-size:18px; }
.client-block-copy { flex:1; min-width:0; font-size:.77rem; font-weight:550; line-height:1.45; }
.client-block-count { flex-shrink:0; display:grid; place-items:center; min-width:23px; height:23px; padding:0 5px; border:1px solid var(--jada-line); border-radius:7px; background:var(--jada-soft); color:var(--jada-muted); font-size:.65rem; font-weight:600; }
.client-block-link.active .client-block-count { border-color:#b88d1440; background:#ffc70118; color:var(--jada-ink); }
.client-mobile-explorer { display:none; }
.client-profile[aria-busy="true"] .client-content { opacity:.48; pointer-events:none; transition:opacity .12s; }
.client-profile[aria-busy="true"] .client-tabs::after { content:''; flex:0 0 14px; height:14px; align-self:center; margin-inline:12px; border:2px solid var(--jada-line); border-top-color:var(--client-accent); border-radius:50%; animation:client-spin .65s linear infinite; }
.client-tabs:focus { outline:none; }
.client-live-notice { position:fixed; z-index:1080; right:26px; bottom:26px; display:flex; align-items:center; gap:12px; max-width:min(620px,calc(100vw - 32px)); padding:16px 18px; border:1px solid var(--jada-line); border-left:4px solid #25a36d; border-radius:12px; box-shadow:0 12px 40px #0002; background:var(--jada-surface); color:var(--jada-ink); font-size:.8rem; }
.client-live-notice[hidden] { display:none; }
.client-live-notice > i { color:#25a36d; font-size:22px; }
.client-live-notice[data-tone="error"], .client-live-notice[data-tone="warning"] { border-left-color:#ba8b16; }
.client-live-notice[data-tone="error"] > i, .client-live-notice[data-tone="warning"] > i { color:#ba8b16; }
.client-live-notice button { flex-shrink:0; border:0; background:transparent; color:var(--jada-ink); font-weight:600; padding:5px; border-radius:5px; }
.client-live-notice button:last-child { font-size:22px; line-height:1; color:var(--jada-muted); }
/* Ventana rápida: mantiene el formulario completo y su validación en un documento aislado. */
.client-quick-dialog { width:min(1180px,calc(100vw - 48px)); height:min(90dvh,1040px); max-width:none; max-height:none; padding:0; border:1px solid var(--jada-line); border-radius:18px; background:var(--jada-surface); color:var(--jada-ink); box-shadow:0 30px 110px #0005; overflow:hidden; }
.client-quick-dialog[open] { display:flex; flex-direction:column; }
.client-quick-dialog::backdrop { background:#1018278c; backdrop-filter:blur(5px); }
.client-quick-header { display:flex; align-items:center; gap:14px; padding:22px 26px; border-bottom:1px solid var(--jada-line); background:linear-gradient(115deg,#ffc7010c,transparent 65%),var(--jada-surface); }
.client-quick-icon { display:grid; place-items:center; flex:0 0 44px; height:44px; border-radius:12px; background:#ffc70117; border:1px solid #b88d1435; font-size:23px; }
.erp-page .client-quick-header h2 { margin:4px 0 5px; font-size:1.12rem; font-weight:700; letter-spacing:-.02em; }
.client-quick-header p { margin:0; color:var(--jada-muted); font-size:.76rem; }
.client-quick-close { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; padding:0; margin-left:auto; border:1px solid var(--jada-line); border-radius:9px; background:var(--jada-surface); color:var(--jada-muted); font-size:22px; }
.client-quick-body { position:relative; flex:1; min-height:0; overflow:hidden; background:var(--jada-canvas); }
.client-quick-body iframe { width:100%; height:100%; display:block; border:0; background:var(--jada-surface); }
.client-quick-loading { position:absolute; inset:0; z-index:1; display:flex; align-items:center; justify-content:center; gap:12px; background:var(--jada-surface); color:var(--jada-muted); font-size:.85rem; }
.client-quick-loading[hidden] { display:none; }
.client-quick-footer { display:flex; align-items:center; gap:14px; padding:18px 26px; border-top:1px solid var(--jada-line); background:var(--jada-soft); }
.client-quick-footer > div { display:flex; gap:10px; margin-left:auto; }
.client-quick-footer .btn { white-space:normal; }
.client-quick-footer [hidden] { display:none; }
.client-quick-full { font-size:.75rem; color:var(--jada-muted); text-decoration:none; }
.client-quick-full:hover { color:var(--jada-ink); text-decoration:underline; }
.client-quick-status { color:var(--jada-muted); font-size:.73rem; }
.client-quick-dialog button:focus-visible { outline:3px solid #b88d14; outline-offset:3px; }
.client-quick-dialog[data-saving] .client-quick-close { opacity:.5; }
.client-modal-document { margin:0; background:var(--jada-surface); }
.client-quick-page.erp-page { max-width:100%; padding:22px 26px; }
.client-quick-page .erp-form-heading { display:none; }
.client-quick-page .erp-form-panel { border:0; border-radius:0; box-shadow:none; margin-bottom:0; }
.client-quick-page .erp-form-grid { padding:8px 0 12px; }
.client-quick-page .erp-form-actions { display:none !important; }
.client-quick-page > p { font-size:.81rem; line-height:1.7; }
@keyframes client-spin { to { transform:rotate(360deg); } }
@media (max-width:1199.98px) {
    .client-workspace.has-explorer { grid-template-columns:210px minmax(0,1fr); gap:16px; }
    .client-block-link { padding:10px 8px; gap:7px; }
}
@media (max-width:991.98px) {
    .client-workspace.has-explorer { display:block; }
    .client-explorer { display:none; }
    .client-mobile-explorer { display:block; padding:16px 18px; margin-bottom:18px; border:1px solid var(--jada-line); border-radius:12px; background:var(--jada-surface); }
    .client-mobile-explorer .form-label { display:block; font-size:.7rem; color:var(--jada-muted); margin-bottom:8px; }
    .client-mobile-explorer select { font-weight:600; font-size:.81rem; }
}
@media (max-width:575.98px) {
    .client-quick-dialog { width:100vw; height:100dvh; margin:0; border:0; border-radius:0; }
    .client-quick-header { padding:17px; gap:10px; }
    .client-quick-icon { flex-basis:36px; height:36px; font-size:20px; }
    .client-quick-header p { display:none; }
    .erp-page .client-quick-header h2 { font-size:1rem; }
    .client-quick-footer { flex-wrap:wrap; gap:10px; padding:14px 17px; }
    .client-quick-footer > div { width:100%; }
    .client-quick-footer .btn { flex:1; }
    .client-quick-page.erp-page { padding:17px; }
    .client-live-notice { right:16px; bottom:16px; flex-wrap:wrap; }
}
@media (prefers-reduced-motion:reduce) { .client-profile *, .client-quick-dialog * { scroll-behavior:auto !important; transition:none !important; } }
.client-tabs { scrollbar-color:var(--jada-line) transparent; }
.client-list-card .erp-grid-toolbar { padding:10px 20px; background:transparent; border-top:1px solid var(--jada-line); }
.client-list-card .erp-grid-toolbar > span { font-size:.7rem; }
.client-list-card .grid-view > .summary { padding-block:8px; font-size:.72rem; }
.client-modal-standalone .erp-form-actions { display:flex !important; }
.client-quick-dialog[data-saving] [data-client-modal-submit] { opacity:.7; cursor:wait; }
/* Expediente bancario: identidad, verificación y relaciones. */
.bank-profile .client-avatar { font-size: 2.25rem; }
.bank-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0; padding: .5rem 1.5rem 1.5rem; }
.bank-detail-grid > div { min-width: 0; padding: 1.1rem 1rem; border-bottom: 1px solid var(--jada-line); }
.bank-detail-grid dt { color: var(--jada-muted); font-size: .75rem; font-weight: 500; margin-bottom: .5rem; }
.bank-detail-grid dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.bank-profile .client-hero-buttons { flex-wrap: wrap; }
@media (max-width: 1100px) { .bank-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .bank-detail-grid { grid-template-columns: minmax(0, 1fr); padding: .25rem .75rem 1rem; } }
