:root {
    --contaya-primary: #26745a;
    --contaya-primary-hover: #1f604b;
    --contaya-primary-soft: #dff1e9;
    --contaya-accent: #ffc83d;
    --contaya-accent-strong: #f5a000;
    --contaya-accent-dark: #c96f00;
    --contaya-bg: #f5f4ef;
    --contaya-paper: #fffdf8;
    --contaya-surface: #ffffff;
    --contaya-border: #dcded7;
    --contaya-border-strong: #cbd0c8;
    --contaya-text: #161b1a;
    --contaya-text-muted: #4e5653;
    --contaya-radius-sm: .5rem;
    --contaya-radius: .75rem;
    --contaya-radius-lg: 1rem;
    --contaya-shadow-sm: 0 .2rem .65rem rgba(23, 29, 27, .07);
    --contaya-shadow: 0 .65rem 1.8rem rgba(23, 29, 27, .09);
    --contaya-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.contaya-app {
    --bs-body-font-family: var(--contaya-font-sans);
    --bs-body-color: var(--contaya-text);
    --bs-body-bg: var(--contaya-bg);
    --bs-border-color: var(--contaya-border);
    --bs-secondary-color: var(--contaya-text-muted);
    --bs-link-color: var(--contaya-primary);
    --bs-link-hover-color: var(--contaya-primary-hover);
    min-height: 100vh;
    color: var(--contaya-text);
    background: var(--contaya-bg);
    font-family: var(--contaya-font-sans);
    font-size: .94rem;
    -webkit-font-smoothing: antialiased;
}

.contaya-skip-link {
    position: fixed;
    z-index: 2000;
    top: .75rem;
    left: .75rem;
    padding: .55rem .85rem;
    color: #fff;
    background: var(--contaya-text);
    border-radius: var(--contaya-radius-sm);
    transform: translateY(-160%);
}
.contaya-skip-link:focus { transform: translateY(0); }
.contaya-app :focus-visible { outline: 2px solid var(--contaya-primary); outline-offset: 2px; }
.contaya-app h1,
.contaya-app h2,
.contaya-app h3,
.contaya-app h4,
.contaya-app h5,
.contaya-app h6 { color: var(--contaya-text); letter-spacing: -.018em; }
.contaya-app .text-secondary { color: var(--contaya-text-muted) !important; }
.contaya-app a { text-underline-offset: .18em; }

.app-navbar {
    min-height: 4rem;
    color: #fff;
    background: var(--contaya-text);
    border-bottom: 3px solid var(--contaya-accent);
    box-shadow: 0 .35rem 1rem rgba(13, 17, 16, .14);
}
.app-navbar .navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-right: 1rem;
    color: #fff;
    text-decoration: none;
}
.app-navbar .navbar-brand:hover,
.app-navbar .navbar-brand:focus { color: #fff; }
.contaya-brand-mark {
    display: inline-grid;
    width: 2rem;
    height: 2rem;
    flex: 0 0 2rem;
    place-items: center;
    color: var(--contaya-text);
    background: var(--contaya-accent);
    border: 2px solid #fff;
    border-radius: .58rem .58rem .58rem .2rem;
    box-shadow: 2px 2px 0 rgba(255, 255, 255, .38);
    font-size: .9rem;
    font-weight: 900;
    line-height: 1;
}
.contaya-brand-name { font-size: 1rem; font-weight: 850; letter-spacing: -.04em; }
.contaya-brand-name > span { color: var(--contaya-accent); }
.app-product-label {
    margin-left: .15rem;
    padding-left: .7rem;
    color: #c6cdca;
    border-left: 1px solid #46504c;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .035em;
}
.app-company-context {
    max-width: 19rem;
    overflow: hidden;
    color: #e8ebe9;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.app-navbar .btn { --bs-btn-border-radius: var(--contaya-radius-sm); font-weight: 650; }
.app-navbar .btn-outline-light {
    --bs-btn-color: #fff;
    --bs-btn-border-color: #68716d;
    --bs-btn-hover-color: var(--contaya-text);
    --bs-btn-hover-bg: var(--contaya-accent);
    --bs-btn-hover-border-color: var(--contaya-accent);
}
.app-navbar .app-config-button {
    --bs-btn-color: var(--contaya-accent);
    --bs-btn-border-color: #68716d;
    --bs-btn-hover-color: var(--contaya-text);
    --bs-btn-hover-bg: var(--contaya-accent);
    --bs-btn-hover-border-color: var(--contaya-accent);
}

/* Autenticación: superficie contenida, directa y consistente con Contaya. */
.auth-page {
    display: grid;
    min-height: 100vh;
    place-items: center;
    background:
        radial-gradient(circle at 50% 0, rgba(255, 200, 61, .13), transparent 34rem),
        var(--contaya-bg);
}
.auth-shell {
    width: 100%;
    max-width: 460px;
    padding: 2rem 1rem;
}
.auth-brand { margin-bottom: 1.25rem; }
.auth-brand-link {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    color: var(--contaya-text);
    text-decoration: none;
}
.auth-brand-link:hover,
.auth-brand-link:focus { color: var(--contaya-text); }
.auth-brand .contaya-brand-mark {
    width: 2.35rem;
    height: 2.35rem;
    flex-basis: 2.35rem;
    border-color: var(--contaya-paper);
    box-shadow: 2px 2px 0 rgba(38, 116, 90, .18);
    font-size: 1rem;
}
.auth-brand .contaya-brand-name { font-size: 1.35rem; }
.auth-brand-caption { margin-top: .35rem; font-size: .8rem; }
.auth-card {
    border-top: 3px solid var(--contaya-primary) !important;
    box-shadow: var(--contaya-shadow);
}
.auth-card .card-body { padding: 1.5rem; }
.auth-heading { margin-bottom: 1.25rem; }
.auth-heading h1 { font-weight: 750; }
.auth-eyebrow {
    margin-bottom: .2rem;
    color: var(--contaya-primary);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.auth-form .form-label { margin-bottom: .3rem; }
.auth-form .form-control { min-height: 2.4rem; }
.auth-form .btn { min-height: 2.4rem; margin-top: .15rem; }
.auth-error {
    margin-bottom: 1rem;
    padding: .65rem .75rem;
    font-size: .86rem;
}
.auth-recovery { font-size: .86rem; }

/* Selección de empresa: misma estructura, con jerarquía y superficies Contaya. */
.company-selection { max-width: 1440px; margin-inline: auto; }
.company-selection-header {
    padding-bottom: .85rem;
    border-bottom: 1px solid var(--contaya-border-strong);
}
.company-selection-header > div:first-child {
    padding-left: .8rem;
    border-left: 4px solid var(--contaya-accent);
}
.company-selection-header h1 { font-weight: 750; }
.company-grid .company-card {
    overflow: hidden;
    border-top: 3px solid var(--contaya-primary);
}
.company-grid .company-card:hover {
    border-color: var(--contaya-primary);
    box-shadow: 0 .45rem 1.15rem rgba(23, 29, 27, .11);
}
.company-grid .company-card-body { padding: 1.15rem !important; }
.company-card .company-name {
    color: var(--contaya-primary);
    font-weight: 750;
}
.company-card .badge { padding: .42rem .62rem; }
.company-meta {
    padding: .65rem .7rem;
    background: var(--contaya-paper);
    border: 1px solid var(--contaya-border);
    border-radius: var(--contaya-radius-sm);
}
.company-meta dt {
    color: var(--contaya-text-muted);
    font-weight: 650;
}
.company-meta dd {
    margin-bottom: .3rem;
    font-variant-numeric: tabular-nums;
    font-weight: 650;
}
.company-meta dt:last-of-type,
.company-meta dd:last-child { margin-bottom: 0; }
.company-empty-state {
    max-width: 720px;
    margin-inline: auto;
    border-top: 3px solid var(--contaya-accent);
}

.app-shell { width: 100%; max-width: 1920px; margin-inline: auto; }
.app-content { min-width: 0; }
.app-config-menu { min-width: 240px; }
.contaya-app .dropdown-menu {
    padding: .4rem;
    background: var(--contaya-surface);
    border-color: var(--contaya-border);
    border-radius: var(--contaya-radius);
    box-shadow: var(--contaya-shadow);
}
.contaya-app .dropdown-item { padding: .48rem .65rem; border-radius: .4rem; }
.contaya-app .dropdown-item:hover,
.contaya-app .dropdown-item:focus { color: var(--contaya-text); background: var(--contaya-primary-soft); }

.contaya-app .btn { --bs-btn-border-radius: var(--contaya-radius-sm); font-weight: 650; }
.contaya-app .btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--contaya-primary);
    --bs-btn-border-color: var(--contaya-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--contaya-primary-hover);
    --bs-btn-hover-border-color: var(--contaya-primary-hover);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--contaya-primary-hover);
    --bs-btn-active-border-color: var(--contaya-primary-hover);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: #6f9487;
    --bs-btn-disabled-border-color: #6f9487;
    --bs-btn-focus-shadow-rgb: 38, 116, 90;
}
.contaya-app .btn-outline-primary {
    --bs-btn-color: var(--contaya-primary);
    --bs-btn-border-color: var(--contaya-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--contaya-primary);
    --bs-btn-hover-border-color: var(--contaya-primary);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--contaya-primary-hover);
    --bs-btn-active-border-color: var(--contaya-primary-hover);
    --bs-btn-focus-shadow-rgb: 38, 116, 90;
}
.contaya-app .btn-dark {
    --bs-btn-bg: var(--contaya-text);
    --bs-btn-border-color: var(--contaya-text);
    --bs-btn-hover-bg: #303735;
    --bs-btn-hover-border-color: #303735;
}

.contaya-app .form-label {
    margin-bottom: .35rem;
    color: #303735;
    font-size: .82rem;
    font-weight: 700;
}
.contaya-app .form-control,
.contaya-app .form-select,
.contaya-app .input-group-text {
    color: var(--contaya-text);
    background-color: var(--contaya-surface);
    border-color: var(--contaya-border-strong);
    border-radius: var(--contaya-radius-sm);
}
.contaya-app .form-control:focus,
.contaya-app .form-select:focus {
    border-color: var(--contaya-primary);
    box-shadow: 0 0 0 .2rem rgba(38, 116, 90, .14);
}
.contaya-app .form-control:disabled,
.contaya-app .form-select:disabled,
.contaya-app .form-control[readonly] {
    color: #68716d;
    background-color: #ecece7;
    border-color: var(--contaya-border);
    opacity: 1;
}
.contaya-app .form-check-input:checked { background-color: var(--contaya-primary); border-color: var(--contaya-primary); }
.contaya-app .input-group-text { background: var(--contaya-paper); font-weight: 700; }

.contaya-app .card {
    background: var(--contaya-surface);
    border-color: var(--contaya-border);
    border-radius: var(--contaya-radius);
    box-shadow: var(--contaya-shadow-sm);
}
.contaya-app .card-header,
.contaya-app .card-footer { background: var(--contaya-paper); border-color: var(--contaya-border); }
.contaya-app .card-header:first-child { border-radius: var(--contaya-radius) var(--contaya-radius) 0 0; }

/* Dashboard de la empresa: conserva la grilla y refuerza solo su jerarquía visual. */
.company-workspace > .d-flex:first-child {
    padding: 1rem 1.15rem;
    background: var(--contaya-paper);
    border: 1px solid var(--contaya-border);
    border-left: 4px solid var(--contaya-accent);
    border-radius: var(--contaya-radius);
    box-shadow: var(--contaya-shadow-sm);
}
.company-workspace > .d-flex:first-child > div > .small:first-child {
    color: var(--contaya-primary) !important;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.company-workspace > .d-flex:first-child h1 {
    margin-top: .1rem;
    font-weight: 750;
}
.company-workspace > .d-flex:first-child .badge {
    padding: .5rem .7rem;
    box-shadow: inset 0 0 0 1px rgba(22, 27, 26, .08);
}
.company-workspace > h2 {
    display: flex;
    align-items: center;
    gap: .55rem;
    font-weight: 750;
}
.company-workspace > h2::before {
    width: .32rem;
    height: 1.15rem;
    content: "";
    background: var(--contaya-accent);
    border-radius: 999px;
}
.company-workspace > h2 + .row .card {
    border-top: 3px solid var(--contaya-primary);
}
.company-workspace > h2 + .row .card:hover {
    border-color: var(--contaya-primary);
    box-shadow: 0 .45rem 1.15rem rgba(23, 29, 27, .11);
}
.company-workspace > h2 + .row .card-body { padding: 1.1rem; }
.company-workspace > h2 + .row h3 {
    color: var(--contaya-primary);
    font-weight: 750;
}
.company-workspace > h2 + .row p { line-height: 1.45; }
.company-workspace > hr {
    border-color: var(--contaya-border-strong);
    opacity: 1;
}
.company-workspace > hr + .row .card { background: var(--contaya-paper); }
.company-workspace > hr + .row .card-body { padding: .9rem 1rem; }
.company-workspace > hr + .row h3 { font-weight: 750; }
.company-workspace .btn-outline-secondary {
    --bs-btn-color: var(--contaya-primary);
    --bs-btn-border-color: var(--contaya-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--contaya-primary);
    --bs-btn-hover-border-color: var(--contaya-primary);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--contaya-primary-hover);
    --bs-btn-active-border-color: var(--contaya-primary-hover);
    --bs-btn-focus-shadow-rgb: 38, 116, 90;
}

.contaya-app .table-responsive { scrollbar-color: #aeb7b3 var(--contaya-bg); }
.contaya-app .table {
    --bs-table-color: var(--contaya-text);
    --bs-table-striped-bg: rgba(245, 244, 239, .72);
    --bs-table-hover-bg: rgba(223, 241, 233, .62);
}
.contaya-app .table > :not(caption) > * > * { border-bottom-color: var(--contaya-border); }
.contaya-app .table-light {
    --bs-table-bg: var(--contaya-paper);
    --bs-table-color: var(--contaya-text);
    --bs-table-border-color: var(--contaya-border);
}
.contaya-app .table-dark { --bs-table-bg: var(--contaya-text); --bs-table-border-color: #46504c; }
.contaya-app .table th { font-size: .8rem; font-weight: 750; letter-spacing: .012em; }
.contaya-app .table td { font-variant-numeric: tabular-nums; }

.contaya-app .alert {
    border-width: 1px 1px 1px 4px;
    border-radius: var(--contaya-radius);
    box-shadow: 0 .15rem .45rem rgba(23, 29, 27, .04);
}
.contaya-app .badge { border-radius: 999px; font-weight: 700; letter-spacing: .01em; }
.contaya-app .modal-content {
    border-color: var(--contaya-border);
    border-radius: var(--contaya-radius-lg);
    box-shadow: 0 1.5rem 4rem rgba(13, 17, 16, .2);
}
.contaya-app .modal-header,
.contaya-app .modal-footer { border-color: var(--contaya-border); }
.contaya-app .modal-header { background: var(--contaya-paper); }

.smart-lookup-menu {
    position: fixed;
    z-index: 1080;
    max-height: 280px;
    overflow-y: auto;
    background: var(--contaya-surface);
    border-color: var(--contaya-border) !important;
    border-radius: var(--contaya-radius-sm);
    box-shadow: var(--contaya-shadow);
}

.module-drawer-toggle {
    position: fixed;
    z-index: 1035;
    top: 7.25rem;
    left: 0;
    padding: .62rem .52rem;
    border-radius: 0 var(--contaya-radius-sm) var(--contaya-radius-sm) 0 !important;
    box-shadow: var(--contaya-shadow-sm);
}
.module-drawer {
    --bs-offcanvas-width: 330px;
    color: var(--contaya-text);
    background: var(--contaya-paper);
    border-color: var(--contaya-border) !important;
}
.module-drawer .offcanvas-header {
    padding: 1rem 1rem .9rem;
    background: var(--contaya-text);
    border-bottom: 3px solid var(--contaya-accent);
}
.module-drawer .offcanvas-title,
.module-drawer .module-company-name { color: #fff; }
.module-drawer .module-role { color: #c6cdca !important; }
.module-drawer .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
.module-drawer .offcanvas-body { background: var(--contaya-paper); }
.module-navigation-label {
    margin-bottom: .2rem;
    color: var(--contaya-accent);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.module-tree .list-group-item {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-bottom: .15rem;
    padding: .58rem .65rem;
    color: #303735;
    background: transparent;
    border: 0;
    border-radius: var(--contaya-radius-sm);
}
.module-tree .list-group-item:hover,
.module-tree .list-group-item:focus { color: var(--contaya-text); background: var(--contaya-primary-soft); }
.module-tree .list-group-item.active {
    color: #fff;
    background: var(--contaya-primary);
    font-weight: 700;
    box-shadow: inset 4px 0 0 var(--contaya-accent);
}
.module-tree-button { width: 100%; text-align: left; }
.module-tree-button .module-chevron {
    margin-left: auto;
    color: #68716d;
    transition: transform .18s ease;
}
.module-tree-button.active .module-chevron { color: #fff; }
.module-tree-button[aria-expanded="true"] .module-chevron { transform: rotate(90deg); }
.module-tree-level-2 { margin-left: .65rem; padding-left: .5rem; border-left: 2px solid var(--contaya-border); }
.module-tree-level-3 { margin-left: .8rem; padding-left: .5rem; border-left: 1px dashed #aeb7b3; }
.module-tree-level-2 .list-group-item,
.module-tree-level-3 .list-group-item { padding-top: .43rem; padding-bottom: .43rem; }
.module-tree-section {
    display: flex;
    align-items: center;
    gap: .5rem;
    width: 100%;
    font-weight: 650;
}
.sidebar-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 2.05rem;
    min-width: 2.05rem;
    height: 1.75rem;
    color: var(--contaya-text);
    background: #fff0ca;
    border: 1px solid rgba(201, 111, 0, .2);
    border-radius: .38rem;
    font-size: .68rem;
    font-weight: 800;
}
.module-tree .list-group-item.active .sidebar-code {
    color: var(--contaya-text);
    background: var(--contaya-accent);
    border-color: var(--contaya-accent);
}
.sidebar-label { min-width: 0; line-height: 1.25; }

.accounting-lines-table { width: 100%; table-layout: fixed; }
.accounting-lines-table th,
.accounting-lines-table td { min-width: 0; padding: .38rem .42rem; vertical-align: middle; }
.accounting-lines-table th { white-space: normal; line-height: 1.15; font-size: .82rem; }
.accounting-lines-table .form-control {
    min-width: 0;
    width: 100%;
    padding-right: .42rem;
    padding-left: .42rem;
    font-size: .84rem;
}
.accounting-lines-table .col-row-number { width: 3%; }
.accounting-lines-table .col-account { width: 20%; }
.accounting-lines-table .col-party { width: 18%; }
.accounting-lines-table .col-detail { width: 15%; }
.accounting-lines-table .col-description { width: 18%; }
.accounting-lines-table .col-debit { width: 11%; }
.accounting-lines-table .col-credit { width: 11%; }
.accounting-lines-table .col-actions { width: 4%; }
.accounting-lines-table .remove-line { padding: .2rem .35rem; line-height: 1; }
.accounting-lines-table .accounting-row { cursor: pointer; }
.accounting-lines-table .accounting-row.row-selected > td {
    background-color: var(--contaya-primary-soft) !important;
    box-shadow: inset 0 1px 0 rgba(38, 116, 90, .2), inset 0 -1px 0 rgba(38, 116, 90, .2);
}
.accounting-lines-table .accounting-row.row-selected > td:first-child {
    box-shadow: inset 4px 0 0 var(--contaya-primary), inset 0 1px 0 rgba(38, 116, 90, .2), inset 0 -1px 0 rgba(38, 116, 90, .2);
}

/* Formulario documental: alta densidad y lectura contable rápida. */
.document-heading {
    min-height: 3.25rem;
    padding-left: 2.25rem;
}
.document-heading > div:first-child {
    padding-left: .75rem;
    border-left: 3px solid var(--contaya-accent);
}
.document-heading h1 {
    margin-top: .1rem;
    font-weight: 750;
}
.document-heading .text-secondary.small {
    color: var(--contaya-text-muted) !important;
    font-size: .76rem;
    font-weight: 650;
}
.document-status-alert,
.document-period-alert {
    margin-bottom: .75rem;
    font-size: .88rem;
}
.document-period-alert { box-shadow: none; }
.document-entry-form .document-header-card .card-body { padding: .85rem 1rem; }
.document-entry-form .document-header-card .row { --bs-gutter-x: .85rem; --bs-gutter-y: .65rem; }
.document-entry-form .document-header-card .form-label {
    color: var(--contaya-text-muted);
    font-size: .74rem;
    letter-spacing: .025em;
}
.document-entry-form .document-header-card .form-control,
.document-entry-form .document-header-card .form-select,
.document-entry-form .document-header-card .input-group-text { min-height: 2.15rem; }
.document-entry-form .is-invalid {
    border-width: 2px;
}
.document-entry-form .invalid-feedback {
    font-size: .76rem;
    font-weight: 650;
}
.document-section-header {
    min-height: 2.75rem;
    padding: .55rem .75rem;
    background: var(--contaya-paper) !important;
    border-bottom: 1px solid var(--contaya-border-strong);
}
.document-section-header > div:first-child {
    color: var(--contaya-text);
    letter-spacing: .01em;
}
.document-lines-card { overflow: hidden; }
.document-lines-card .table-responsive { overflow-x: auto; }
.document-entry-form .accounting-lines-table {
    border-color: var(--contaya-border-strong);
    font-size: .84rem;
}
.document-entry-form .accounting-lines-table thead th {
    padding: .46rem .42rem;
    color: #303735;
    background: #f0f2ed;
    border-color: var(--contaya-border-strong);
    border-bottom-width: 2px;
    font-size: .73rem;
    font-weight: 800;
    letter-spacing: .025em;
}
.document-entry-form .accounting-lines-table tbody td {
    background: var(--contaya-surface);
    border-color: var(--contaya-border);
}
.document-entry-form .accounting-lines-table tbody tr:hover > td {
    background: rgba(223, 241, 233, .35);
}
.document-entry-form .accounting-lines-table .form-control {
    border-color: #d4d8d1;
    font-variant-numeric: tabular-nums;
}
.document-entry-form .accounting-lines-table .form-control:focus {
    position: relative;
    z-index: 1;
    border-color: var(--contaya-primary);
    box-shadow: 0 0 0 .15rem rgba(38, 116, 90, .14);
}
.document-entry-form .accounting-lines-table .money,
.document-entry-form .source-amount,
.document-entry-form #total-debit,
.document-entry-form #total-credit,
.document-entry-form #difference {
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1;
}
.document-entry-form .accounting-lines-table input.money[type="number"] {
    appearance: textfield;
    -moz-appearance: textfield;
}
.document-entry-form .accounting-lines-table input.money[type="number"]::-webkit-inner-spin-button,
.document-entry-form .accounting-lines-table input.money[type="number"]::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}
.document-entry-form .document-totals td {
    padding-top: .48rem;
    padding-bottom: .48rem;
    background: var(--contaya-paper);
    border-color: var(--contaya-border-strong);
}
.document-entry-form .document-totals-row td {
    border-top: 2px solid var(--contaya-primary);
}
.document-entry-form .document-totals-row td:nth-last-child(n+2),
.document-entry-form .document-difference-row td:nth-last-child(n+2) {
    font-size: .88rem;
}
.document-entry-form .document-difference-row td {
    background: #f6f6f1;
    border-top-width: 2px;
}
.document-entry-form #difference {
    font-size: .95rem;
    letter-spacing: .015em;
}
.document-entry-form #difference.text-danger {
    background: var(--bs-danger-bg-subtle);
    box-shadow: inset 4px 0 0 var(--bs-danger);
}
.document-entry-form #difference.text-success {
    background: var(--bs-success-bg-subtle);
    box-shadow: inset 4px 0 0 var(--bs-success);
}
.document-notes-card .card-body { padding: .75rem 1rem; }
.document-notes-card textarea { min-height: 4.6rem; resize: vertical; }
.document-actions {
    padding-top: .15rem;
    padding-bottom: .25rem;
}
.document-actions .btn { min-width: 0; }
.blocking-error-client-message { white-space: pre-line; }

@media (max-width: 767.98px) {
    .app-product-label { display: none; }
    .app-navbar .container-fluid { flex-wrap: nowrap; }
    .app-navbar .navbar-brand { margin-right: .4rem; }
    .app-navbar .btn-sm { padding: .35rem .48rem; font-size: .72rem; }
    .module-drawer-toggle { top: 6.5rem; }
    .accounting-lines-table { min-width: 900px; table-layout: auto; }
}

@media (max-width: 419.98px) {
    .contaya-brand-mark { width: 1.8rem; height: 1.8rem; flex-basis: 1.8rem; }
    .contaya-brand-name { font-size: .88rem; }
    .app-navbar .btn-sm { padding-inline: .4rem; }
    .auth-shell { padding: 1.25rem .75rem; }
    .auth-card .card-body { padding: 1.15rem; }
    .company-selection-header { align-items: stretch !important; }
    .company-selection-header .btn { width: 100%; }
    .company-card .d-flex.justify-content-between { gap: .65rem !important; }
}

@media (max-width: 991.98px) {
    .document-entry-form .accounting-lines-table {
        min-width: 1050px;
        table-layout: fixed;
    }
    .document-section-header { align-items: flex-start !important; }
    .document-section-header > .d-flex { flex-wrap: wrap; justify-content: flex-end; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
