/* ═══════════════════════════════════════════════════════════════════════════
   DS-SITE — Global Styles
   ═══════════════════════════════════════════════════════════════════════════ */

/* ─── Custom Table: Truncated Cell ───────────────────────────────────────── */

.custom-cell.cell-truncate {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    min-width: 0;
    display: block;
    line-height: 38px;
}

/* ─── Context menu: danger option ────────────────────────────────────────── */

.text-menu-option.text-danger,
.text-menu-option.text-danger p,
.text-menu-option.text-danger i {
    color: #b91c1c !important;
}

.text-menu-option.text-danger:hover {
    background-color: #fef2f2;
}

/* ─── Status Tabs (Activos / Inactivos) ──────────────────────────────────── */

.ds-status-tabs-host {
    background: #fff;
    box-shadow: 0 0 13px 0 rgba(62, 44, 90, .08);
    margin-bottom: 1rem;
    border-radius: 4px;
    border: 1px solid rgba(0, 0, 0, .09);
    border-bottom: 1px solid #e0e0e0;
    padding: 12px 16px;
}

.ds-status-tabs-host .ds-nav-tabs {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    gap: 4px;
}

.ds-status-tabs-host .ds-nav-item {
    display: flex;
    align-items: center;
}

.ds-status-tabs-host .ds-nav-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border: none;
    border-radius: 4px;
    background: transparent;
    color: inherit;
    font-size: 0.8125rem;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
    transition: 0.4s;
}

.ds-status-tabs-host .ds-nav-link:hover:not(.active) {
    background: rgba(0, 0, 0, .04);
}

.ds-status-tabs-host .ds-nav-link.active {
    background: #008fd3;
    color: #fff;
}

.ds-status-tabs-host .ds-nav-link.active[data-tab="inactive"] {
    background: #b91c1c;
    color: #fff;
}

.ds-status-tabs-host .ds-tab-badge {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 1px 8px;
    border-radius: 10px;
    background: rgba(0, 0, 0, .08);
    color: inherit;
}

.ds-status-tabs-host .ds-nav-link.active .ds-tab-badge {
    background: rgba(255, 255, 255, .25);
}

/* ─── Associate Profile Pic (1:1 ratio) ──────────────────────────────────── */

.associate-profile-pic,
.associate-profile-pic.h-95 {
    height: auto !important;
    aspect-ratio: 1 / 1;
    max-width: 170px;
    margin-left: auto;
    margin-right: auto;
}

.associate-profile-pic > img {
    object-fit: cover;
}

/* ─── DS Switch (Apple-style) ─────────────────────────────────────────────── */

.ds-switch {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
    flex-shrink: 0;
}

.ds-switch input {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute;
}

.ds-switch__track {
    position: absolute;
    inset: 0;
    background: #d1d5db;
    border-radius: 12px;
    transition: background .25s ease;
    cursor: pointer;
}

.ds-switch__track::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .15);
    transition: transform .25s cubic-bezier(.4, .0, .2, 1);
}

.ds-switch input:checked + .ds-switch__track {
    background: #1a73e8;
}

.ds-switch input:checked + .ds-switch__track::after {
    transform: translateX(20px);
}

.ds-switch input:disabled + .ds-switch__track {
    opacity: .5;
    cursor: not-allowed;
}

/* ─── Section Header (Saving Types / global) ──────────────────────────────── */

.st-section-header {
    display:         flex;
    align-items:     center;
    gap:             8px;
    background:      #f8f9fa;
    border-left:     3px solid #1a73e8;
    border-radius:   0 4px 4px 0;
    padding:         8px 14px;
    margin-bottom:   16px;
    font-weight:     600;
    font-size:       0.85rem;
    color:           #343a40;
    letter-spacing:  0.02em;
    text-transform:  uppercase;
}

.st-section-header i {
    font-size:    1rem;
    color:        #1a73e8;
    margin-right: 8px;
}

/* ─── Skeleton Loading ─────────────────────────────────────────────────────── */

.lr-skeleton-table {
    width: 100%;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    overflow: hidden;
}

.lr-skeleton-row {
    display: flex;
    gap: 1px;
    background: #dee2e6;
}

.lr-skeleton-row + .lr-skeleton-row {
    border-top: 1px solid #dee2e6;
}

.lr-skeleton-row.lr-skeleton-header .lr-skeleton-cell {
    background: #f1f3f5;
    height: 36px;
}

.lr-skeleton-cell {
    flex: 1;
    height: 42px;
    background: #fff;
    position: relative;
    overflow: hidden;
}

.lr-skeleton-cell::after {
    content: '';
    position: absolute;
    inset: 10px 14px;
    border-radius: 4px;
    background: linear-gradient(90deg, #edf0f2 25%, #f5f6f8 50%, #edf0f2 75%);
    background-size: 200% 100%;
    animation: lr-shimmer 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes lr-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* ─── Loan Request — View crossfade ───────────────────────────────────────── */

.lr-view--leaving {
    opacity: 0 !important;
    transform: translateY(8px);
    transition: opacity .25s ease, transform .25s ease;
}

/* ─── Loan Request — Tab transitions ──────────────────────────────────────── */

#lr_tabs .nav-link {
    transition: color .2s ease, border-color .2s ease, background .2s ease;
}

#lr_tabs .nav-link:not(.disabled):hover {
    background: rgba(26, 115, 232, .04);
}

#lr_tabs .nav-link.disabled {
    opacity: .45;
    cursor: not-allowed;
}

#lr_tab_general,
#lr_tab_detail,
#lr_tab_optional,
#lr_tab_disbursement,
#lr_tab_amortization,
#lr_tab_analysis,
#lr_tab_comments {
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .25s ease, transform .25s ease;
}

#lr_tab_general.show,
#lr_tab_detail.show,
#lr_tab_optional.show,
#lr_tab_disbursement.show,
#lr_tab_amortization.show,
#lr_tab_analysis.show,
#lr_tab_comments.show {
    opacity: 1;
    transform: translateY(0);
}

/* ─── Loan Request — Detail tab divider ───────────────────────────────────── */

#lr_tab_detail .col-lg-6:first-child {
    border-right: 1px solid #e9ecef;
    padding-right: 1.5rem;
}

#lr_tab_detail .col-lg-6:last-child {
    padding-left: 1.5rem;
}

/* ─── Loan Request — Button micro-feedback ────────────────────────────────── */

#lr_btn_new,
#lr_btn_back,
#lr_btn_next,
#lr_btn_search_associate,
#lr_btn_refresh_guarantees {
    transition: transform .12s ease, box-shadow .12s ease;
}

#lr_btn_new:active,
#lr_btn_back:active,
#lr_btn_next:active:not(:disabled),
#lr_btn_search_associate:active,
#lr_btn_refresh_guarantees:active {
    transform: scale(0.97);
}

#lr_btn_next:not(:disabled) {
    box-shadow: 0 2px 8px -2px rgba(26, 115, 232, .25);
}

/* ─── Loan Request — Applicable Amount Total ──────────────────────────────── */

.lr-applicable-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(135deg, #1a73e8 0%, #1557b0 100%);
    border-radius: 8px;
    padding: .65rem 1rem;
    margin-top: 10px;
}

.lr-applicable-total__label {
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: rgba(255, 255, 255, .7);
}

.lr-applicable-total__value {
    font-size: 1.15rem;
    font-weight: 800;
    color: #fff;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.02em;
}

.lr-applicable-total--danger {
    background: linear-gradient(135deg, #c62828 0%, #b71c1c 100%);
}

.lr-order-total {
    background: linear-gradient(135deg, #f9a825 0%, #f57f17 100%);
}

.lr-order-remaining {
    background: linear-gradient(135deg, #e65100 0%, #bf360c 100%);
}

.lr-order-remaining--done {
    background: linear-gradient(135deg, #2e7d32 0%, #1b5e20 100%);
}

/* ─── Loan Request — Annual Rate highlight ────────────────────────────────── */

.lr-annual-rate {
    font-size: 20px;
    font-weight: 700;
    color: #1a73e8;
    line-height: 1.2;
    padding: 4px 0;
}

/* ─── Loan Request Summary — Bento Grid ───────────────────────────────────── */

.lr-summary {
    border-top: 1px solid #dee2e6;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
}

.lr-summary__header {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #868e96;
    margin-bottom: 1rem;
}

.lr-summary__header i {
    font-size: .85rem;
    color: #1a73e8;
}

/* ── Bento container ─────────────────────────────────────────────────────── */

.lr-bento {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: auto auto;
    gap: 8px;
}

/* ── Base tile ────────────────────────────────────────────────────────────── */

.lr-bento__tile {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: .5rem .75rem;
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    transition: box-shadow .15s ease, transform .15s ease;
}

.lr-bento__tile:hover {
    box-shadow: 0 4px 14px -6px rgba(0, 0, 0, .08);
    transform: translateY(-1px);
}

/* ── Hero tile — spans 2 cols, full left side ────────────────────────────── */

.lr-bento__tile--hero {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
    background: linear-gradient(135deg, #1a73e8 0%, #1557b0 100%);
    border-color: transparent;
    padding: .75rem 1rem;
    justify-content: flex-end;
    min-height: 90px;
}

.lr-bento__tile--hero .lr-bento__label {
    color: rgba(255, 255, 255, .7);
    font-size: .7rem;
}

.lr-bento__tile--hero .lr-bento__hero-value {
    font-size: 1.3rem;
    font-weight: 800;
    color: #fff;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.02em;
    line-height: 1.1;
    margin: 2px 0 4px;
}

.lr-bento__tile--hero .lr-bento__sub {
    font-size: .72rem;
    color: rgba(255, 255, 255, .55);
    display: flex;
    align-items: center;
    gap: 4px;
}

.lr-bento__tile--hero .lr-bento__sub span {
    color: rgba(255, 255, 255, .8);
    font-weight: 600;
}

.lr-bento__tile--hero:hover {
    box-shadow: 0 8px 24px -8px rgba(26, 115, 232, .35);
}

/* ── Primary tiles — slightly larger value ───────────────────────────────── */

.lr-bento__tile--primary .lr-bento__value {
    font-size: 1rem;
    color: #1a73e8;
}

/* ── Icon ─────────────────────────────────────────────────────────────────── */

.lr-bento__icon {
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 5px;
    background: #f1f3f5;
    color: #495057;
    font-size: .65rem;
    margin-bottom: 4px;
    flex-shrink: 0;
}

.lr-bento__tile--primary .lr-bento__icon {
    background: rgba(26, 115, 232, .08);
    color: #1a73e8;
}

/* ── Label ────────────────────────────────────────────────────────────────── */

.lr-bento__label {
    font-size: .65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #868e96;
    margin-bottom: 2px;
    white-space: nowrap;
}

/* ── Value ────────────────────────────────────────────────────────────────── */

.lr-bento__value {
    font-size: .82rem;
    font-weight: 700;
    color: #212529;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.01em;
}

/* ─── Loan Request — Associate search input polish ────────────────────────── */

#lr_associate_search_container .form-control[readonly] {
    background: #fff;
    cursor: pointer;
    border-color: #ced4da;
    transition: border-color .15s ease, box-shadow .15s ease;
}

#lr_associate_search_container .form-control[readonly]:hover {
    border-color: #a0aec0;
    box-shadow: 0 1px 4px -1px rgba(0, 0, 0, .06);
}

/* ─── Associate Summary Card (global) ─────────────────────────────────────── */

.asc-summary-card {
    background: #fff;
    border: 1px solid #e2e5e9;
    border-radius: 10px;
    margin-top: .75rem;
    overflow: hidden;
    transition: box-shadow .2s ease;
}

.asc-summary-card:hover {
    box-shadow: 0 6px 20px -8px rgba(0, 0, 0, .1);
}

/* ── Top section: avatar + name + badge ──────────────────────────────────── */

.asc-card__top {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: .75rem 1rem;
    background: linear-gradient(135deg, #f8f9fb 0%, #f1f4f8 100%);
    border-bottom: 1px solid #e9ecef;
}

.asc-card__avatar {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: linear-gradient(135deg, #1a73e8 0%, #1557b0 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .95rem;
    flex-shrink: 0;
}

.asc-card__identity {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.asc-card__name {
    font-size: .9rem;
    font-weight: 700;
    color: #1a1d21;
    letter-spacing: -.01em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.asc-card__id-line {
    font-size: .72rem;
    color: #6c757d;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}

.asc-card__badge {
    flex-shrink: 0;
    font-size: .65rem;
    padding: 3px 8px;
    border-radius: 20px;
    letter-spacing: .02em;
}

.asc-card__deselect {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    background: none;
    color: #868e96;
    font-size: .7rem;
    cursor: pointer;
    flex-shrink: 0;
    margin-left: 4px;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
}

.asc-card__deselect:hover {
    color: #dc3545;
    border-color: #dc3545;
    background: rgba(220, 53, 69, .05);
}

/* ── Details: bento mini-grid ─────────────────────────────────────────────── */

.asc-card__bento {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 0;
    padding: .6rem .85rem;
}

.asc-card__cell {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: .35rem .5rem;
    border-left: 1px solid #e9ecef;
}

.asc-card__cell:nth-child(3n + 1) {
    border-left: none;
    padding-left: 0;
}

.asc-card__cell--wide {
    grid-column: span 1;
}

.asc-card__cell-label {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: .6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #adb5bd;
    line-height: 1;
}

.asc-card__cell > i {
    display: none;
}

.asc-card__cell-label i {
    font-size: .58rem;
    color: #1a73e8;
    opacity: .55;
}

.asc-card__cell-value {
    font-size: .78rem;
    font-weight: 600;
    color: #212529;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}

/* ─── Supplier Summary Card (Yellow theme) ──────────────────────────────── */

.spl-summary-card {
    border: 1px solid #e2e5e9;
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
    transition: box-shadow .2s ease;
    margin-top: .5rem;
}

.spl-summary-card:hover { box-shadow: 0 2px 8px rgba(0, 0, 0, .06); }

.spl-card__top {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: .6rem .85rem;
    background: linear-gradient(135deg, #fff8e1 0%, #ffffff 60%);
    border-bottom: 1px solid #e9ecef;
}

.spl-card__avatar {
    width: 38px; height: 38px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 8px;
    background: linear-gradient(135deg, #f9a825, #fbc02d);
    color: #fff;
    font-size: .95rem;
    flex-shrink: 0;
}

.spl-card__identity {
    display: flex; flex-direction: column; gap: 1px;
    min-width: 0; flex: 1;
}

.spl-card__name {
    font-size: .88rem; font-weight: 700; color: #1a1d21;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.spl-card__id-line {
    font-size: .72rem; color: #6c757d;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.spl-card__badge { font-size: .6rem; flex-shrink: 0; }

.spl-card__deselect {
    background: none; border: 1px solid #dee2e6; border-radius: 50%;
    width: 26px; height: 26px;
    display: flex; align-items: center; justify-content: center;
    color: #868e96; font-size: .7rem; cursor: pointer;
    flex-shrink: 0; margin-left: 4px;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
}

.spl-card__deselect:hover {
    color: #dc3545; border-color: #dc3545;
    background: rgba(220, 53, 69, .05);
}

.spl-card__bento {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 0;
    padding: .6rem .85rem;
}

.spl-card__cell {
    display: flex; flex-direction: column; gap: 2px;
    padding: .35rem .5rem;
    border-left: 1px solid #e9ecef;
}

.spl-card__cell:nth-child(3n + 1) { border-left: none; padding-left: 0; }
.spl-card__cell--wide { grid-column: span 1; }

.spl-card__cell-label {
    display: flex; align-items: center; gap: 4px;
    font-size: .6rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .04em;
    color: #adb5bd; line-height: 1;
}

.spl-card__cell-label i {
    font-size: .58rem; color: #f9a825; opacity: .7;
}

.spl-card__cell-value {
    font-size: .78rem; font-weight: 600; color: #212529;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    line-height: 1.3;
}

/* ─── Certificate Summary Card (Gold theme) ─────────────────────────────── */

.cert-summary-card {
    border: 1px solid #e2e5e9;
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
    transition: box-shadow .2s ease;
    margin-top: .5rem;
}

.cert-summary-card:hover { box-shadow: 0 2px 8px rgba(0, 0, 0, .06); }

.cert-card__top {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: .6rem .85rem;
    background: linear-gradient(135deg, #fdf6e3 0%, #ffffff 60%);
    border-bottom: 1px solid #e9ecef;
}

.cert-card__avatar {
    width: 38px; height: 38px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 8px;
    background: linear-gradient(135deg, #c98a0c, #e6a817);
    color: #fff;
    font-size: .95rem;
    flex-shrink: 0;
}

.cert-card__identity {
    display: flex; flex-direction: column; gap: 1px;
    min-width: 0; flex: 1;
}

.cert-card__name {
    font-size: .88rem; font-weight: 700; color: #1a1d21;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.cert-card__id-line {
    font-size: .72rem; color: #6c757d;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.cert-card__badge { font-size: .6rem; flex-shrink: 0; }

.cert-card__deselect {
    background: none; border: 1px solid #dee2e6; border-radius: 50%;
    width: 26px; height: 26px;
    display: flex; align-items: center; justify-content: center;
    color: #868e96; font-size: .7rem; cursor: pointer;
    flex-shrink: 0; margin-left: 4px;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
}

.cert-card__deselect:hover {
    color: #dc3545; border-color: #dc3545;
    background: rgba(220, 53, 69, .05);
}

.cert-card__bento {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 0;
    padding: .6rem .85rem;
}

.cert-card__cell {
    display: flex; flex-direction: column; gap: 2px;
    padding: .35rem .5rem;
    border-left: 1px solid #e9ecef;
}

.cert-card__cell:nth-child(3n + 1) { border-left: none; padding-left: 0; }
.cert-card__cell--wide { grid-column: span 1; }

.cert-card__cell-label {
    display: flex; align-items: center; gap: 4px;
    font-size: .6rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .04em;
    color: #adb5bd; line-height: 1;
}

.cert-card__cell-label i {
    font-size: .58rem; color: #c98a0c; opacity: .7;
}

.cert-card__cell-value {
    font-size: .78rem; font-weight: 600; color: #212529;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    line-height: 1.3;
}

/* ─── Responsive ──────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
    .lr-bento {
        grid-template-columns: 1fr 1fr;
    }

    .lr-bento__tile--hero {
        grid-column: 1 / -1;
        grid-row: auto;
        min-height: 100px;
    }

    .lr-bento__tile--hero .lr-bento__hero-value {
        font-size: 1.35rem;
    }

    #lr_tab_detail .col-lg-6:first-child {
        border-right: none;
        border-bottom: 1px solid #e9ecef;
        padding-right: 15px;
        padding-bottom: 1rem;
        margin-bottom: 1rem;
    }

    #lr_tab_detail .col-lg-6:last-child {
        padding-left: 15px;
    }

    .asc-card__bento {
        grid-template-columns: 1fr 1fr;
    }

    .asc-card__cell--wide {
        grid-column: span 2;
    }

    .spl-card__bento {
        grid-template-columns: 1fr 1fr;
    }

    .spl-card__cell--wide {
        grid-column: span 2;
    }

    .cert-card__bento {
        grid-template-columns: 1fr 1fr;
    }

    .cert-card__cell--wide {
        grid-column: span 2;
    }

    .lr-disb-cards {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ─── Loan Request — Disbursement Cards ──────────────────────────────────── */

.lr-disb-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.lr-disb-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1rem;
    background: #fff;
    border: 2px solid #e9ecef;
    border-radius: 10px;
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .2s ease, transform .15s ease;
    user-select: none;
}

.lr-disb-card:hover {
    border-color: #a0c4f1;
    box-shadow: 0 4px 14px -6px rgba(26, 115, 232, .15);
    transform: translateY(-1px);
}

.lr-disb-card--active {
    border-color: #1a73e8;
    background: #f0f7ff;
}

.lr-disb-card--disabled {
    position: relative;
    pointer-events: none;
    user-select: none;
}

.lr-disb-card--disabled::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    border-radius: 8px;
    z-index: 1;
}

.lr-disb-card__icon {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: #f1f3f5;
    color: #495057;
    font-size: 1rem;
    margin-bottom: 6px;
    transition: background .2s ease, color .2s ease;
}

.lr-disb-card--active .lr-disb-card__icon {
    background: rgba(26, 115, 232, .12);
    color: #1a73e8;
}

.lr-disb-card__label {
    font-size: .78rem;
    font-weight: 600;
    color: #495057;
    margin-bottom: 8px;
}

.lr-disb-card--active .lr-disb-card__label {
    color: #1a73e8;
}

.lr-disb-card__input {
    width: 100%;
    text-align: center;
    font-size: .85rem;
}

/* ─── Bank Account Selector ──────────────────────────────────────────────── */

.ds-bank-selector {
    width: 100%;
    margin-top: 6px;
}

.ds-bank-selector__btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 6px 10px;
    background: none;
    border: 1px dashed #adb5bd;
    border-radius: 6px;
    color: #6c757d;
    font-size: .72rem;
    font-weight: 500;
    cursor: pointer;
    transition: border-color .15s ease, color .15s ease;
}

.ds-bank-selector__btn:hover {
    border-color: #1a73e8;
    color: #1a73e8;
}

.ds-bank-selector__card {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 8px;
    background: #f8f9fb;
    border: 1px solid #e2e5e9;
    border-radius: 6px;
    cursor: pointer;
    transition: box-shadow .15s ease;
}

.ds-bank-selector__card:hover {
    box-shadow: 0 2px 8px -3px rgba(0,0,0,.08);
}

.ds-bank-selector__logo {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    object-fit: contain;
    flex-shrink: 0;
}

.ds-bank-selector__logo-placeholder {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: #e9ecef;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #868e96;
    font-size: .7rem;
    flex-shrink: 0;
}

.ds-bank-selector__info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.ds-bank-selector__name {
    font-size: .72rem;
    font-weight: 600;
    color: #212529;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ds-bank-selector__account {
    font-size: .65rem;
    color: #868e96;
    font-variant-numeric: tabular-nums;
}

.ds-bank-selector__change {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #dee2e6;
    border-radius: 4px;
    background: none;
    color: #868e96;
    font-size: .6rem;
    cursor: pointer;
    flex-shrink: 0;
    transition: color .12s ease, border-color .12s ease;
}

.ds-bank-selector__change:hover {
    color: #dc3545;
    border-color: #dc3545;
}

/* ── Bank modal ──────────────────────────────────────────────────────────── */

.ds-bank-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0,0,0,.45);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ds-bank-modal__dialog {
    background: #fff;
    border-radius: 10px;
    width: 480px;
    max-width: 92vw;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px -15px rgba(0,0,0,.25);
    overflow: hidden;
}

.ds-bank-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .75rem 1rem;
    border-bottom: 1px solid #e9ecef;
}

.ds-bank-modal__header h5 {
    font-size: .9rem;
    font-weight: 700;
    color: #212529;
    margin: 0;
}

.ds-bank-modal__close {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 6px;
    background: #f1f3f5;
    color: #495057;
    font-size: .8rem;
    cursor: pointer;
}

.ds-bank-modal__close:hover { background: #e9ecef; }

.ds-bank-modal__search {
    padding: .5rem 1rem;
    border-bottom: 1px solid #f1f3f5;
}

.ds-bank-modal__search input {
    font-size: .78rem;
}

.ds-bank-modal__list {
    flex: 1;
    overflow-y: auto;
    padding: .5rem;
}

.ds-bank-modal__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: .5rem .65rem;
    border-radius: 8px;
    cursor: pointer;
    transition: background .12s ease;
}

.ds-bank-modal__item:hover {
    background: #f1f3f5;
}

.ds-bank-modal__item--active {
    background: rgba(26, 115, 232, .06);
    border: 1px solid rgba(26, 115, 232, .2);
}

.ds-bank-modal__logo {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    object-fit: contain;
    flex-shrink: 0;
}

.ds-bank-modal__logo-ph {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    background: #e9ecef;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #868e96;
    font-size: .8rem;
    flex-shrink: 0;
}

.ds-bank-modal__item-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.ds-bank-modal__item-name {
    font-size: .78rem;
    font-weight: 600;
    color: #212529;
}

.ds-bank-modal__item-acc {
    font-size: .68rem;
    color: #868e96;
    font-variant-numeric: tabular-nums;
}

.ds-bank-modal__item-desc {
    font-size: .68rem;
    color: #adb5bd;
    white-space: nowrap;
}

.lr-disb-card__select {
    width: 100%;
    font-size: .72rem;
    border-radius: 4px;
}

.lr-disb-card__fill-btn {
    margin-top: 6px;
    padding: 3px 10px;
    font-size: .68rem;
    font-weight: 600;
    color: #6c757d;
    background: none;
    border: 1px solid #dee2e6;
    border-radius: 5px;
    cursor: pointer;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
    white-space: nowrap;
}

.lr-disb-card__fill-btn:hover {
    color: #1a73e8;
    border-color: #1a73e8;
    background: rgba(26, 115, 232, .04);
}

.lr-disb-card__fill-btn:active {
    transform: scale(0.97);
}

/* ─── Loan Request — Amortization Table ──────────────────────────────────── */

.lr-amort-summary {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

.lr-amort-stat {
    padding: .6rem .85rem;
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 8px;
}

.lr-amort-stat__label {
    font-size: .6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #868e96;
    margin-bottom: 2px;
}

.lr-amort-stat__value {
    font-size: .95rem;
    font-weight: 700;
    color: #212529;
    font-variant-numeric: tabular-nums;
}

.lr-amort-stat--highlight {
    background: linear-gradient(135deg, #1a73e8 0%, #1557b0 100%);
    border-color: transparent;
}

.lr-amort-stat--highlight .lr-amort-stat__label { color: rgba(255,255,255,.65); }
.lr-amort-stat--highlight .lr-amort-stat__value { color: #fff; }

.lr-amort-table-wrap {
    max-height: 500px;
    overflow-y: auto;
    border: 1px solid #e9ecef;
    border-radius: 8px;
}

.lr-amort-table-wrap table {
    margin: 0;
    font-size: .78rem;
}

.lr-amort-table-wrap thead th {
    position: sticky;
    top: 0;
    background: #f1f3f5;
    z-index: 1;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #495057;
    padding: .5rem .6rem;
    border-bottom: 2px solid #dee2e6;
}

.lr-amort-table-wrap tbody td {
    padding: .4rem .6rem;
    font-variant-numeric: tabular-nums;
    border-color: #f1f3f5;
}

.lr-amort-table-wrap tbody tr:hover {
    background: rgba(26, 115, 232, .03);
}

.lr-amort-table-wrap tbody tr:last-child {
    font-weight: 700;
    background: #f8f9fa;
    border-top: 2px solid #dee2e6;
}

/* ─── Loan Request — Analysis Charts ─────────────────────────────────────── */

.lr-chart-card {
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 10px;
    padding: .75rem;
    margin-bottom: .75rem;
    max-height: 220px;
    overflow: hidden;
}

.lr-chart-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: .5rem;
    padding-bottom: .4rem;
    border-bottom: 1px solid #f1f3f5;
}

.lr-chart-card__title {
    font-size: .72rem;
    font-weight: 700;
    color: #495057;
    margin: 0;
}

.lr-chart-card__expand {
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #dee2e6;
    border-radius: 5px;
    background: none;
    color: #868e96;
    font-size: .6rem;
    cursor: pointer;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
    flex-shrink: 0;
}

.lr-chart-card__expand:hover {
    color: #1a73e8;
    border-color: #1a73e8;
    background: rgba(26, 115, 232, .04);
}

/* ── Chart expand modal ──────────────────────────────────────────────────── */

.lr-chart-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 1060;
    background: rgba(0, 0, 0, .55);
    align-items: center;
    justify-content: center;
}

.lr-chart-modal.active {
    display: flex;
}

.lr-chart-modal__dialog {
    background: #fff;
    border-radius: 12px;
    width: 860px;
    max-width: 92vw;
    max-height: 88vh;
    overflow-y: auto;
    box-shadow: 0 24px 80px -16px rgba(0, 0, 0, .3);
}

.lr-chart-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid #e9ecef;
}

.lr-chart-modal__header h5 {
    font-size: .95rem;
    font-weight: 700;
    color: #212529;
    margin: 0;
}

.lr-chart-modal__close {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 6px;
    background: #f1f3f5;
    color: #495057;
    font-size: .85rem;
    cursor: pointer;
    transition: background .15s ease;
}

.lr-chart-modal__close:hover {
    background: #e9ecef;
}

.lr-chart-modal__body {
    padding: 1.25rem;
}

.lr-chart-modal__info {
    padding: 0 1.25rem 1.25rem;
    font-size: .78rem;
    color: #495057;
    line-height: 1.5;
}

.lr-chart-modal__info-row {
    display: flex;
    gap: 8px;
    margin-bottom: 4px;
}

.lr-chart-modal__info-label {
    font-weight: 600;
    color: #868e96;
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    min-width: 120px;
}

.lr-chart-modal__info-value {
    color: #212529;
}

/* ─── Loan Request — Comments Chat ───────────────────────────────────────── */

.lr-chat {
    display: flex;
    flex-direction: column;
    height: 420px;
    border: 1px solid #e9ecef;
    border-radius: 10px;
    overflow: hidden;
    margin-top: .75rem;
}

.lr-chat__messages {
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
    background: #f8f9fb;
}

.lr-chat__bubble {
    max-width: 70%;
    padding: .5rem .85rem;
    border-radius: 12px;
    margin-bottom: .5rem;
    font-size: .82rem;
    line-height: 1.4;
    position: relative;
}

.lr-chat__bubble--mine {
    margin-left: auto;
    background: #1a73e8;
    color: #fff;
    border-bottom-right-radius: 4px;
}

.lr-chat__bubble--other {
    margin-right: auto;
    background: #fff;
    color: #212529;
    border: 1px solid #e9ecef;
    border-bottom-left-radius: 4px;
}

.lr-chat__bubble-author {
    font-size: .65rem;
    font-weight: 600;
    margin-bottom: 2px;
    opacity: .7;
}

.lr-chat__bubble-time {
    font-size: .58rem;
    opacity: .55;
    margin-top: 3px;
    text-align: right;
}

.lr-chat__input-area {
    display: flex;
    gap: 8px;
    padding: .65rem .85rem;
    background: #fff;
    border-top: 1px solid #e9ecef;
}

.lr-chat__input-area .form-control {
    font-size: .82rem;
}

/* ─── Savings Withdrawal — Summary Footer (bento tiles) ──────────────────── */

.wd-summary-footer {
    border-top: 1px solid #dee2e6;
    padding: .75rem 1rem;
    display: flex;
    justify-content: flex-end;
}

.wd-summary-tiles {
    display: flex;
    gap: 8px;
}

.wd-summary-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: .5rem 1rem;
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    min-width: 110px;
}

.wd-summary-tile__label {
    font-size: .6rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #868e96;
    margin-bottom: 2px;
}

.wd-summary-tile__value {
    font-size: .9rem;
    font-weight: 700;
    color: #212529;
    font-variant-numeric: tabular-nums;
}

.wd-summary-tile--primary {
    background: linear-gradient(135deg, #1a73e8 0%, #1557b0 100%);
    border-color: transparent;
}

.wd-summary-tile--primary .wd-summary-tile__label {
    color: rgba(255, 255, 255, .65);
}

.wd-summary-tile--primary .wd-summary-tile__value {
    color: #fff;
}

.wd-summary-tile--highlight {
    border-color: #28a745;
    background: rgba(40, 167, 69, .04);
}

.wd-summary-tile--highlight .wd-summary-tile__label {
    color: #28a745;
}

.wd-summary-tile--highlight .wd-summary-tile__value {
    color: #1b5e20;
}

/* ─── DS Toolbar Context Menu ─────────────────────────────────────────────── */

.ds-ctx-menu-wrap {
    position: relative;
    display: inline-block;
}

.ds-ctx-menu-btn {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    background: none;
    color: #495057;
    font-size: .85rem;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
}

.ds-ctx-menu-btn:hover {
    background: #f1f3f5;
    border-color: #adb5bd;
}

.ds-ctx-menu {
    display: none;
    position: fixed;
    min-width: 200px;
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    box-shadow: 0 8px 24px -8px rgba(0, 0, 0, .15);
    z-index: 9999;
    padding: 4px 0;
    overflow: hidden;
}

.ds-ctx-menu.active {
    display: block;
}

.ds-ctx-menu__item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    font-size: .78rem;
    font-weight: 500;
    color: #343a40;
    cursor: pointer;
    transition: background .12s ease;
    white-space: nowrap;
}

.ds-ctx-menu__item:hover {
    background: #f1f3f5;
}

.ds-ctx-menu__item--danger {
    color: #dc3545;
}

.ds-ctx-menu__item--danger:hover {
    background: rgba(220, 53, 69, .06);
}

.ds-ctx-menu__item.disabled {
    opacity: .4;
    pointer-events: none;
}

.ds-ctx-menu__item i {
    width: 16px;
    text-align: center;
    font-size: .75rem;
    color: #868e96;
}

.ds-ctx-menu__item--danger i {
    color: #dc3545;
}

.ds-ctx-menu__divider {
    height: 1px;
    background: #e9ecef;
    margin: 4px 0;
}

/* ─── Withdrawal — Loan Payment Cards ─────────────────────────────────────── */

.wd-loan-payment-card {
    border: 1px solid #e9ecef;
    border-radius: 8px;
    margin-bottom: 10px;
    overflow: hidden;
}

.wd-loan-payment-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .5rem .85rem;
    background: #f8f9fa;
    border-bottom: 1px solid #e9ecef;
}

.wd-loan-payment-card__title {
    font-size: .82rem;
    font-weight: 700;
    color: #212529;
}

.wd-loan-payment-card__body {
    padding: .5rem .85rem;
}

.wd-loan-payment-card__row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 3px 0;
}

.wd-loan-payment-card__label {
    font-size: .75rem;
    font-weight: 600;
    color: #495057;
    min-width: 70px;
}

.wd-loan-payment-card__ref {
    font-size: .75rem;
    color: #868e96;
    font-variant-numeric: tabular-nums;
    min-width: 80px;
    text-align: right;
}

/* Sub-row for loan payment inputs */
.wd-loan-inputs-row {
    background: #f8f9fb;
    border-top: none !important;
    padding-top: 0 !important;
    min-height: auto !important;
}

.wd-loan-inputs-cell {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 8px 16px 12px;
    justify-content: flex-end;
}

.wd-loan-inp-group {
    flex: 1;
    min-width: 130px;
    max-width: 180px;
}

.wd-loan-inp-label {
    display: block;
    font-size: .7rem;
    font-weight: 600;
    color: #495057;
    margin-bottom: 2px;
}

.wd-loan-inp-label .text-muted {
    font-weight: 400;
    font-size: .62rem;
}

.wd-loan-payment-card__info {
    padding: .5rem .85rem;
    border-bottom: 1px solid #f0f0f0;
}

.wd-loan-payment-card__info-row {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    font-size: .75rem;
    color: #4a5568;
    line-height: 1.6;
}

.wd-loan-payment-card__info-row strong {
    color: #2d3748;
}

.wd-loan-payment-card__inputs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: .6rem .85rem;
}

.wd-loan-payment-card__inp-group {
    flex: 1;
    min-width: 120px;
}

.wd-loan-payment-card__inp-group label {
    display: block;
    font-size: .7rem;
    font-weight: 600;
    color: #495057;
    margin-bottom: 2px;
}

.wd-loan-payment-card__inp-group label .text-muted {
    font-weight: 400;
    font-size: .65rem;
}

.wd-loan-payment-card__footer {
    padding: .35rem .85rem;
    background: #f8f9fa;
    border-top: 1px solid #e9ecef;
    font-size: .72rem;
    color: #868e96;
    text-align: right;
}

@media (max-width: 768px) {
    .lr-amort-summary {
        grid-template-columns: repeat(2, 1fr);
    }

    .wd-summary-footer {
        justify-content: center;
    }

    .wd-summary-tiles {
        flex-wrap: wrap;
    }
}

/* ─── Loans Disbursement ─────────────────────────────────────────────────── */

.ld-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ld-record-count {
    font-size: 0.78rem;
    color: #8a9aaa;
    margin-left: auto;
}

/* Switch cell in table */
.ld-sw-cell {
    max-width: 50px !important;
    min-width: 50px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent !important;
}

.ld-row-switch {
    margin: 0 !important;
    padding-left: 10px;
}

/* Sub-row for disbursement methods */
/* ─── DGII Certificates ─────────────────────────────────────────────────── */

.dc-file-drop {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 28px 16px;
    border: 2px dashed #cdd5de;
    border-radius: 8px;
    background: #f8f9fb;
    cursor: pointer;
    transition: border-color .2s, background .2s;
    text-align: center;
}

.dc-file-drop:hover,
.dc-file-drop--hover {
    border-color: #1a73e8;
    background: #eef4fd;
}

.dc-file-drop--filled {
    border-color: #28a745;
    background: #f0faf3;
}

.dc-file-drop.validate-input {
    border-color: #dc3545;
    background: #fef2f2;
}

.dc-file-drop__icon {
    font-size: 2rem;
    color: #8e99a8;
}

.dc-file-drop--filled .dc-file-drop__icon {
    color: #28a745;
}

.dc-file-drop__text {
    font-size: .9rem;
    font-weight: 500;
    color: #3a4a5a;
}

.dc-file-drop__hint {
    font-size: .75rem;
    color: #8e99a8;
}

/* ─── ECF Document Cards ────────────────────────────────────────────────── */

.ed-doc-card {
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fff;
    margin-bottom: 14px;
    transition: box-shadow .2s;
}

.ed-doc-card:hover { box-shadow: 0 3px 12px rgba(0,0,0,.07); }

.ed-doc-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    background: #f8fafc;
    border-bottom: 1px solid transparent;
    border-radius: 10px;
    cursor: pointer;
    user-select: none;
    gap: 12px;
    transition: border-color .15s, border-radius .15s;
}

.ed-doc-card--open .ed-doc-card__header {
    border-bottom-color: #e2e8f0;
    border-radius: 10px 10px 0 0;
}

.ed-doc-card__header:hover { background: #eef2f7; }

.ed-doc-card__left {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
}

.ed-doc-card__toggle {
    font-size: .8rem;
    color: #94a3b8;
    transition: transform .2s;
    flex-shrink: 0;
}

.ed-doc-card__toggle--open { transform: rotate(90deg); }

.ed-doc-card__index {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 22px;
    padding: 0 8px;
    border-radius: 6px;
    background: #e2e8f0;
    color: #475569;
    font-size: .72rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: .02em;
    line-height: 1;
    flex-shrink: 0;
}

.ed-doc-card--open .ed-doc-card__index {
    background: #2563eb;
    color: #ffffff;
}

.ed-doc-card__encf {
    font-weight: 700;
    font-size: .9rem;
    color: #0f172a;
    white-space: nowrap;
}

.ed-doc-card__date {
    font-size: .75rem;
    color: #94a3b8;
}

.ed-doc-card__right {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.ed-doc-card__amount {
    font-size: 1.05rem;
    font-weight: 800;
    color: #0f172a;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.3px;
}

.ed-doc-card__ctx {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    background: #fff;
    color: #64748b;
    font-size: .85rem;
    cursor: pointer;
    transition: background .15s;
    position: relative;
}

.ed-doc-card__ctx:hover { background: #f1f5f9; }

.ed-doc-card__body {
    display: none;
    padding: 20px;
    border-radius: 0 0 10px 10px;
}

.ed-doc-card__body--open { display: block; }

/* Top row: QR left + info right */
.ed-doc-top {
    display: flex;
    gap: 24px;
    margin-bottom: 20px;
}

.ed-doc-qr {
    flex-shrink: 0;
}

.ed-doc-qr img {
    width: 120px;
    height: 120px;
    border: 1px solid #e4e7ea;
    border-radius: 8px;
    padding: 4px;
    background: #fff;
}

.ed-doc-top-info {
    flex: 1;
    min-width: 0;
}

.ed-doc-buyer {
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 4px;
}

.ed-doc-buyer-rnc {
    font-size: .78rem;
    color: #64748b;
    margin-bottom: 10px;
}

.ed-doc-tag-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 8px;
}

.ed-doc-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .2px;
}

.ed-doc-tag i { font-size: .68rem; }
.ed-doc-tag--blue   { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; }
.ed-doc-tag--green  { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
.ed-doc-tag--yellow { background: #fffbeb; color: #a16207; border: 1px solid #fde68a; }
.ed-doc-tag--red    { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.ed-doc-tag--gray   { background: #f8fafc; color: #64748b; border: 1px solid #e2e8f0; }

.ed-doc-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    font-size: .78rem;
    color: #64748b;
}

.ed-doc-meta-row strong { color: #334155; font-weight: 600; }

/* Money tiles */
.ed-doc-money-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}

.ed-doc-money-tile {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 10px 12px;
    text-align: center;
}

.ed-doc-money-tile__label {
    font-size: .68rem;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .5px;
    font-weight: 600;
    margin-bottom: 2px;
}

.ed-doc-money-tile__value {
    font-size: .95rem;
    font-weight: 700;
    color: #0f172a;
    font-variant-numeric: tabular-nums;
}

.ed-doc-money-tile--accent {
    background: #eff6ff;
    border-color: #bfdbfe;
}

.ed-doc-money-tile--accent .ed-doc-money-tile__value { color: #1a73e8; }

/* Error box */
.ed-doc-error {
    padding: 10px 14px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 8px;
    font-size: .82rem;
    color: #991b1b;
    margin-bottom: 16px;
}

.ed-doc-error i { margin-right: 6px; }

.ed-doc-section-title {
    font-size: .8rem;
    font-weight: 700;
    color: #475569;
    margin: 16px 0 8px;
    padding-bottom: 4px;
    border-bottom: 2px solid #e2e8f0;
    text-transform: uppercase;
    letter-spacing: .4px;
}

.ed-doc-section-title i { margin-right: 6px; color: #94a3b8; }

.ed-env-empty {
    text-align: center;
    padding: 32px;
    color: #94a3b8;
    font-size: .88rem;
}

.ed-env-empty i { font-size: 2.2rem; display: block; margin-bottom: 10px; }

/* Context menu dropdown */
.ed-ctx-menu {
    position: absolute;
    right: 0;
    top: 32px;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0,0,0,.1);
    min-width: 180px;
    z-index: 50;
    overflow: hidden;
    display: none;
}

.ed-ctx-menu--open { display: block; }

.ed-ctx-menu__item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    font-size: .82rem;
    color: #334155;
    cursor: pointer;
    transition: background .12s;
    text-decoration: none;
}

.ed-ctx-menu__item:hover { background: #f1f5f9; color: #334155; }
.ed-ctx-menu__item i { color: #64748b; width: 16px; text-align: center; }

/* ─── Environment toolbar (expand-all switch) ───────────────────────────── */

.ed-env-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    margin-bottom: 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    gap: 12px;
}

.ed-env-toolbar__info {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: .8rem;
    font-weight: 600;
    color: #475569;
}

.ed-env-toolbar__info i {
    color: #64748b;
    font-size: .9rem;
}

.ed-env-cards { display: block; }

/* ─── Switch (generic, DGII screen scope) ───────────────────────────────── */

.ed-switch {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    user-select: none;
    margin: 0;
}

.ed-switch__input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 0;
    height: 0;
}

.ed-switch__track {
    position: relative;
    width: 38px;
    height: 22px;
    background: #cbd5e1;
    border-radius: 999px;
    transition: background-color .2s ease;
    flex-shrink: 0;
}

.ed-switch__thumb {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 18px;
    height: 18px;
    background: #ffffff;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .25);
    transition: transform .2s ease;
}

.ed-switch__input:checked + .ed-switch__track {
    background: #2563eb;
}

.ed-switch__input:checked + .ed-switch__track .ed-switch__thumb {
    transform: translateX(16px);
}

.ed-switch__input:focus-visible + .ed-switch__track {
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .25);
}

.ed-switch__label {
    font-size: .82rem;
    font-weight: 600;
    color: #334155;
}

/* ─── Send-by-email modal ───────────────────────────────────────────────── */

.ed-email-modal__overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0);
    backdrop-filter: blur(0);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1060;
    opacity: 0;
    pointer-events: none;
    transition: opacity .18s ease, background-color .18s ease, backdrop-filter .18s ease;
}

.ed-email-modal__overlay--open {
    opacity: 1;
    pointer-events: auto;
    background: rgba(15, 23, 42, .45);
    backdrop-filter: blur(4px);
}

.ed-email-modal {
    width: min(460px, calc(100vw - 32px));
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    box-shadow: 0 20px 48px rgba(15, 23, 42, .22);
    overflow: hidden;
    transform: translateY(8px) scale(.98);
    opacity: 0;
    transition: transform .22s ease, opacity .22s ease;
}

.ed-email-modal__overlay--open .ed-email-modal {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.ed-email-modal__header {
    display: grid;
    grid-template-columns: 44px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    border-bottom: 1px solid #f1f5f9;
}

.ed-email-modal__icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: #eff6ff;
    color: #2563eb;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.ed-email-modal__titles { min-width: 0; }

.ed-email-modal__title {
    font-size: 1rem;
    font-weight: 600;
    color: #0f172a;
    line-height: 1.2;
}

.ed-email-modal__subtitle {
    font-size: .78rem;
    color: #64748b;
    margin-top: 2px;
    line-height: 1.35;
}

.ed-email-modal__subtitle b { color: #0f172a; font-weight: 600; }

.ed-email-modal__close {
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    color: #94a3b8;
    border-radius: 8px;
    cursor: pointer;
    transition: background .15s, color .15s;
}

.ed-email-modal__close:hover { background: #f1f5f9; color: #334155; }

.ed-email-modal__body { padding: 18px; }

.ed-email-modal__label {
    display: block;
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 6px;
}

.ed-email-modal__input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.ed-email-modal__input-wrap i {
    position: absolute;
    left: 12px;
    color: #94a3b8;
    pointer-events: none;
}

.ed-email-modal__input {
    width: 100%;
    height: 42px;
    padding: 0 12px 0 36px;
    font-size: .9rem;
    color: #0f172a;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    outline: none;
    transition: border-color .15s, box-shadow .15s, background-color .15s;
}

.ed-email-modal__input::placeholder { color: #94a3b8; }

.ed-email-modal__input:focus {
    border-color: #2563eb;
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .15);
}

.ed-email-modal__input--error {
    border-color: #dc2626;
    background: #fef2f2;
}

.ed-email-modal__input--error:focus {
    box-shadow: 0 0 0 3px rgba(220, 38, 38, .15);
}

.ed-email-modal__error {
    min-height: 18px;
    margin-top: 6px;
    font-size: .76rem;
    color: #dc2626;
}

.ed-email-modal__footer {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 14px 18px;
    background: #f8fafc;
    border-top: 1px solid #f1f5f9;
}

/* ─── Track status modal ───────────────────────────────────────────────── */

.ed-track-modal { width: min(540px, calc(100vw - 32px)); }

.ed-track-modal__body {
    max-height: min(70vh, 560px);
    overflow-y: auto;
}

.ed-track-modal__loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 28px 12px;
    color: #64748b;
    font-size: .88rem;
}

.ed-track-modal__loading i { font-size: 1.1rem; color: #2563eb; }

.ed-track-modal__error {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 12px;
    padding: 14px 16px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
    border-radius: 10px;
    align-items: center;
}

.ed-track-modal__error i { font-size: 1.4rem; color: #dc2626; justify-self: center; }
.ed-track-modal__error-title { font-weight: 700; font-size: .9rem; }
.ed-track-modal__error-msg   { font-size: .8rem; margin-top: 2px; color: #7f1d1d; }

.ed-track-modal__status {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 14px 16px;
    border-radius: 12px;
    border: 1px solid;
    margin-bottom: 14px;
}

.ed-track-modal__status-code {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ed-track-modal__status-label {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.2;
}

.ed-track-modal__status--green {
    background: #f0fdf4; border-color: #bbf7d0; color: #166534;
}
.ed-track-modal__status--amber {
    background: #fffbeb; border-color: #fde68a; color: #92400e;
}
.ed-track-modal__status--red {
    background: #fef2f2; border-color: #fecaca; color: #991b1b;
}
.ed-track-modal__status--slate {
    background: #f1f5f9; border-color: #cbd5e1; color: #334155;
}

.ed-track-modal__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-bottom: 16px;
}

.ed-track-modal__cell {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 10px 12px;
}

.ed-track-modal__cell-label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 4px;
}

.ed-track-modal__cell-val {
    font-size: .88rem;
    color: #0f172a;
    font-weight: 600;
    word-break: break-all;
}

.ed-track-modal__cell-val--mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-weight: 500;
    font-size: .82rem;
}

.ed-track-modal__msgs-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .78rem;
    font-weight: 700;
    color: #334155;
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.ed-track-modal__msgs-title i { color: #2563eb; }

.ed-track-modal__msgs {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ed-track-modal__msg {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 10px;
    align-items: start;
    padding: 10px 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
}

.ed-track-modal__msg-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 22px;
    padding: 2px 6px;
    border-radius: 6px;
    background: #0f172a;
    color: #f1f5f9;
    font-size: .72rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.ed-track-modal__msg-val {
    font-size: .84rem;
    color: #334155;
    line-height: 1.4;
}

/* ─── DGII Dashboard — Layout, sections, KPIs, charts ──────────────────── */

.dd-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 16px;
    padding: 16px;
}

.dd-section {
    grid-column: span 6;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: box-shadow .2s;
}

.dd-section:hover { box-shadow: 0 8px 24px rgba(15, 23, 42, .06); }

.dd-section--full { grid-column: span 12; }

@media (max-width: 1100px) {
    .dd-section, .dd-section--full { grid-column: span 12; }
}

.dd-section__hdr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid #f1f5f9;
    gap: 12px;
}

.dd-section__title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: .92rem;
    font-weight: 700;
    color: #0f172a;
}

.dd-section__title i { color: #2563eb; font-size: 1rem; }

.dd-section__meta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.dd-cd {
    font-size: .72rem;
    font-weight: 600;
    color: #166534;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    padding: 3px 8px;
    border-radius: 999px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.dd-cd--paused {
    color: #64748b;
    background: #f1f5f9;
    border-color: #e2e8f0;
}

.dd-btn-refresh {
    width: 28px;
    height: 28px;
    border: 1px solid #e2e8f0;
    background: #ffffff;
    color: #475569;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: .82rem;
    transition: background-color .15s, color .15s, border-color .15s, transform .15s;
}

.dd-btn-refresh:hover {
    background: #2563eb; color: #ffffff; border-color: #2563eb;
    transform: rotate(90deg);
}

.dd-section__body {
    padding: 16px;
    min-height: 140px;
    display: block;
}

/* ── Chart area ── */

.dd-chart {
    padding: 12px 12px 16px;
    overflow: hidden;
}

.dd-chart svg {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
}

.dd-chart--short { min-height: 180px; }

.dd-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 28px 12px;
    color: #94a3b8;
    font-size: .85rem;
    text-align: center;
}

.dd-empty i { font-size: 1.8rem; color: #cbd5e1; }

/* ── KPI grid ── */

.dd-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.dd-kpi {
    position: relative;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 14px 16px;
    overflow: hidden;
    transition: border-color .15s, transform .15s;
}

.dd-kpi:hover { border-color: #cbd5e1; transform: translateY(-1px); }

.dd-kpi__icon {
    position: absolute;
    top: 12px; right: 12px;
    width: 30px; height: 30px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .85rem;
    background: #f1f5f9;
    color: #475569;
}

.dd-kpi__label {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #64748b;
    margin-bottom: 6px;
}

.dd-kpi__value {
    font-size: 1.35rem;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.01em;
    word-break: break-all;
}

.dd-kpi__sub {
    margin-top: 4px;
    font-size: .7rem;
    color: #94a3b8;
}

.dd-kpi--blue   .dd-kpi__icon { background: #eff6ff; color: #2563eb; }
.dd-kpi--green  .dd-kpi__icon { background: #f0fdf4; color: #16a34a; }
.dd-kpi--amber  .dd-kpi__icon { background: #fffbeb; color: #d97706; }
.dd-kpi--red    .dd-kpi__icon { background: #fef2f2; color: #dc2626; }
.dd-kpi--violet .dd-kpi__icon { background: #f5f3ff; color: #7c3aed; }
.dd-kpi--teal   .dd-kpi__icon { background: #f0fdfa; color: #0d9488; }
.dd-kpi--slate  .dd-kpi__icon { background: #f1f5f9; color: #475569; }

/* ── Donut legend ── */

.dd-legend {
    margin-top: 10px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 6px;
}

.dd-legend__row {
    display: grid;
    grid-template-columns: 12px 1fr auto;
    align-items: center;
    gap: 8px;
    padding: 4px 8px;
    border-radius: 6px;
    background: #f8fafc;
    border: 1px solid #f1f5f9;
    font-size: .78rem;
}

.dd-legend__swatch {
    width: 12px; height: 12px;
    border-radius: 3px;
}

.dd-legend__label {
    color: #334155;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dd-legend__val {
    color: #0f172a;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* ─── DGII Tokens — Environment grid & cards ───────────────────────────── */

.dt-env-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 16px;
}

.dt-env-card {
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s, transform .15s;
}

.dt-env-card:hover {
    box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
    transform: translateY(-1px);
}

.dt-env-card__header {
    display: grid;
    grid-template-columns: 44px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid #f1f5f9;
    position: relative;
}

.dt-env-card__header::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: #94a3b8;
}

.dt-env-card--green  .dt-env-card__header::before { background: #16a34a; }
.dt-env-card--amber  .dt-env-card__header::before { background: #d97706; }
.dt-env-card--blue   .dt-env-card__header::before { background: #2563eb; }
.dt-env-card--slate  .dt-env-card__header::before { background: #64748b; }

.dt-env-card__ico {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    background: #f1f5f9;
    color: #475569;
}

.dt-env-card--green  .dt-env-card__ico { background: #f0fdf4; color: #16a34a; }
.dt-env-card--amber  .dt-env-card__ico { background: #fffbeb; color: #d97706; }
.dt-env-card--blue   .dt-env-card__ico { background: #eff6ff; color: #2563eb; }

.dt-env-card__titles { min-width: 0; }

.dt-env-card__title {
    font-size: 1rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.2;
}

.dt-env-card__env {
    font-size: .72rem;
    color: #94a3b8;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    letter-spacing: .04em;
    margin-top: 3px;
    text-transform: uppercase;
}

.dt-env-card__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: .72rem;
    font-weight: 700;
}

.dt-env-card--green  .dt-env-card__badge { background: #dcfce7; color: #166534; }
.dt-env-card--amber  .dt-env-card__badge { background: #fef3c7; color: #92400e; }
.dt-env-card--blue   .dt-env-card__badge { background: #dbeafe; color: #1e40af; }

.dt-env-card__body {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}

.dt-env-card__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 28px 12px;
    color: #94a3b8;
    font-size: .85rem;
    text-align: center;
}

.dt-env-card__empty i { font-size: 1.6rem; color: #cbd5e1; }

/* ─── DGII Tokens — Individual token row ────────────────────────────────── */

.dt-token {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: border-color .15s;
}

.dt-token:hover { border-color: #cbd5e1; }

.dt-token__top {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.dt-token__label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #475569;
}

.dt-token__label i { color: #64748b; }

.dt-token__actions { display: inline-flex; gap: 6px; }

.dt-token__btn {
    width: 28px;
    height: 28px;
    border: 1px solid #e2e8f0;
    background: #ffffff;
    color: #475569;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: .82rem;
    transition: background-color .15s, color .15s, border-color .15s;
}

.dt-token__btn:hover {
    background: #2563eb;
    color: #ffffff;
    border-color: #2563eb;
}

.dt-token__val {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .88rem;
    color: #0f172a;
    background: #ffffff;
    border: 1px dashed #cbd5e1;
    border-radius: 8px;
    padding: 8px 10px;
    word-break: break-all;
    letter-spacing: .02em;
}

.dt-token__meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 10px;
}

.dt-token__meta-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.dt-token__meta-item span {
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #94a3b8;
}

.dt-token__meta-item b {
    font-size: .82rem;
    color: #334155;
    font-weight: 600;
    word-break: break-all;
}

.dt-token__mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace !important;
    font-weight: 500 !important;
    font-size: .76rem !important;
    color: #475569 !important;
}

/* ─── Documents list — infinite scroll sentinel ─────────────────────────── */

.ed-scroll-sentinel {
    display: block;
    height: 1px;
    width: 100%;
    pointer-events: none;
}

/* ─── Documents list — skeleton rows (carga infinita) ───────────────────── */

.ed-skel-cell {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    transition: opacity .2s ease, transform .2s ease;
}

.ed-skel-bar {
    display: block;
    height: 12px;
    width: 100%;
    border-radius: 6px;
    background: linear-gradient(90deg, #eef2f7 0%, #f8fafc 40%, #eef2f7 80%);
    background-size: 200% 100%;
    animation: ed-skel-shimmer 1.3s ease-in-out infinite;
}

.ed-skel-bar--pill   { height: 14px; width: 72px; border-radius: 999px; }
.ed-skel-bar--amount { height: 11px; width: 60%; }
.ed-skel-bar--date   { height: 10px; width: 50%; }
.ed-skel-bar--menu   { width: 18px; height: 18px; margin: 0 auto; border-radius: 4px; }

.ed-skel-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    width: 100%;
}

@keyframes ed-skel-shimmer {
    0%   { background-position:  100% 0; }
    100% { background-position: -100% 0; }
}

.ed-row-skeleton--leave .ed-skel-cell {
    opacity: 0;
    transform: translateY(-4px);
}

/* ─── Documents list — new rows fade-in (tras paginación) ──────────────── */

.ed-row-enter {
    animation: ed-row-enter .36s cubic-bezier(.2, .7, .25, 1) both;
    will-change: opacity, transform;
}

@keyframes ed-row-enter {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0);   }
}

/* ─── Documents list — column widths & env cells ────────────────────────── */

#ed_table_container .table-col-7 .custom-header,
#ed_table_container .table-col-7 .custom-tbody {
    grid-template-columns: minmax(180px, 1.4fr) 1fr .9fr 1.1fr 1.1fr 1.1fr 70px;
}

.ed-env-cell { padding-top: 8px !important; padding-bottom: 8px !important; }

.ed-env-cell__stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    line-height: 1.2;
    width: 100%;
}

.ed-env-cell__pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 600;
}

.ed-env-cell__pill i { font-size: .72rem; }

.ed-env-cell__pill--green { background: #dcfce7; color: #166534; }
.ed-env-cell__pill--amber { background: #fef3c7; color: #92400e; }
.ed-env-cell__pill--red   { background: #fee2e2; color: #991b1b; }

.ed-env-cell__amount {
    font-size: .78rem;
    font-weight: 700;
    color: #0f172a;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.01em;
}

.ed-env-cell__date {
    font-size: .7rem;
    color: #64748b;
    font-variant-numeric: tabular-nums;
}

.ed-env-cell__empty {
    display: inline-block;
    color: #cbd5e1;
    font-size: 1rem;
    font-weight: 700;
}

/* ─── Auto-refresh chip ─────────────────────────────────────────────────── */

.ed-auto-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
    border-radius: 999px;
    font-size: .76rem;
    font-weight: 600;
    color: #475569;
    transition: background-color .2s, border-color .2s, color .2s;
}

.ed-auto-chip__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #94a3b8;
    flex-shrink: 0;
    position: relative;
}

.ed-auto-chip__text {
    white-space: nowrap;
}

.ed-auto-chip__cd {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 999px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    font-size: .7rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: #334155;
}

.ed-auto-chip--active {
    background: #f0fdf4;
    border-color: #bbf7d0;
    color: #166534;
}

.ed-auto-chip--active .ed-auto-chip__dot {
    background: #16a34a;
    box-shadow: 0 0 0 0 rgba(22, 163, 74, .55);
    animation: ed-auto-pulse 2s infinite;
}

.ed-auto-chip--active .ed-auto-chip__cd {
    background: #ffffff;
    border-color: #bbf7d0;
    color: #166534;
}

.ed-auto-chip--paused {
    background: #f1f5f9;
    border-color: #e2e8f0;
    color: #64748b;
}

.ed-auto-chip--paused .ed-auto-chip__dot {
    background: #94a3b8;
    animation: none;
}

@keyframes ed-auto-pulse {
    0%   { box-shadow: 0 0 0 0   rgba(22, 163, 74, .55); }
    70%  { box-shadow: 0 0 0 8px rgba(22, 163, 74, 0);   }
    100% { box-shadow: 0 0 0 0   rgba(22, 163, 74, 0);   }
}

/* ─── Tab count badge ───────────────────────────────────────────────────── */

.ed-tab-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 7px;
    margin-left: 6px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #475569;
    font-size: .72rem;
    font-weight: 600;
    line-height: 1;
    transition: background-color .2s, color .2s;
}

.nav-link.active .ed-tab-count {
    background: #2563eb;
    color: #ffffff;
}

.nav-link.disabled .ed-tab-count {
    background: #f1f5f9;
    color: #94a3b8;
}

/* ─── Bento grid system ─────────────────────────────────────────────────── */

.ed-bento {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 16px;
}

.ed-bento__tile {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 14px 16px;
    position: relative;
    overflow: hidden;
    transition: border-color .2s;
}

.ed-bento__tile:hover { border-color: #cbd5e1; }

.ed-bento__tile--span2 { grid-column: span 2; }
.ed-bento__tile--span3 { grid-column: span 3; }
.ed-bento__tile--span4 { grid-column: span 4; }

.ed-bento__tile--highlight {
    background: linear-gradient(135deg, #f0f7ff 0%, #f8fafc 100%);
    border-color: #bfdbfe;
}

.ed-bento__tile--dark {
    background: #0f172a;
    border-color: #1e293b;
}

.ed-bento__tile--dark .ed-bento__label { color: #64748b; }
.ed-bento__tile--dark .ed-bento__val   { color: #f1f5f9; }

.ed-bento__action {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(148, 163, 184, .25);
    background: rgba(255, 255, 255, .06);
    color: #cbd5e1;
    border-radius: 8px;
    cursor: pointer;
    font-size: .82rem;
    transition: background-color .15s, color .15s, border-color .15s, transform .15s;
}

.ed-bento__action:hover {
    background: #2563eb;
    color: #ffffff;
    border-color: #2563eb;
    transform: translateY(-1px);
}

.ed-bento__tile:not(.ed-bento__tile--dark) .ed-bento__action {
    background: #ffffff;
    color: #475569;
    border-color: #e2e8f0;
}

.ed-bento__tile:not(.ed-bento__tile--dark) .ed-bento__action:hover {
    background: #2563eb;
    color: #ffffff;
    border-color: #2563eb;
}

.ed-bento__icon {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: .8rem;
    margin-bottom: 8px;
}

.ed-bento__icon--blue   { background: #eff6ff; color: #2563eb; }
.ed-bento__icon--green  { background: #f0fdf4; color: #16a34a; }
.ed-bento__icon--amber  { background: #fffbeb; color: #d97706; }
.ed-bento__icon--slate  { background: #f1f5f9; color: #475569; }
.ed-bento__icon--red    { background: #fef2f2; color: #dc2626; }
.ed-bento__icon--white  { background: rgba(255,255,255,.1); color: #94a3b8; }

.ed-bento__label {
    font-size: .65rem;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .6px;
    font-weight: 700;
    margin-bottom: 4px;
    line-height: 1;
}

.ed-bento__val {
    font-size: .88rem;
    font-weight: 600;
    color: #1e293b;
    line-height: 1.2;
}

.ed-bento__val--lg {
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: -.3px;
}

.ed-bento__val--mono {
    font-family: 'Courier New', monospace;
    font-size: .78rem;
    letter-spacing: .4px;
    word-break: break-all;
}

.ed-bento__val--money {
    font-size: 1.1rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.3px;
}

.ed-bento__val--accent  { color: #2563eb; }
.ed-bento__val--green   { color: #16a34a; }
.ed-bento__val--red     { color: #dc2626; }

.ed-bento__sub {
    font-size: .7rem;
    color: #94a3b8;
    margin-top: 2px;
}

/* Inline pair: label + value side by side */
.ed-bento__pair {
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.ed-bento__pair + .ed-bento__pair { margin-top: 4px; }

.ed-bento__pair-label {
    font-size: .7rem;
    color: #94a3b8;
    font-weight: 600;
    white-space: nowrap;
}

.ed-bento__pair-val {
    font-size: .82rem;
    color: #334155;
    font-weight: 600;
}

/* ─── Refinancing checkbox ──────────────────────────────────────────────── */

.lr-refinance-check {
    width: 18px;
    height: 18px;
    cursor: pointer;
    accent-color: #1a73e8;
}

.ld-methods-cell {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
    overflow: visible !important;
    min-width: 120px;
}

.ld-method-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #eef2f7;
    border: 1px solid #dde3ea;
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 0.75rem;
    color: #3a4a5a;
    white-space: nowrap;
}

.ld-method-badge i {
    color: #6a7a8a;
    font-size: 0.7rem;
}

.ld-method-badge--order {
    background: #fff8e1;
    border-color: #ffe082;
    color: #e65100;
}

.ld-method-badge--order i {
    color: #f9a825;
}

/* ─── Loan Type ──────────────────────────────────────────────────────────── */

/* Toggle Switch */
.lt-switch {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    cursor: pointer;
    margin: 0;
    user-select: none;
}
.lt-switch__input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.lt-switch__track {
    position: relative;
    width: 40px;
    height: 22px;
    background: #ced4da;
    border-radius: 11px;
    transition: background .2s;
    flex-shrink: 0;
}
.lt-switch__input:checked + .lt-switch__track {
    background: #28a745;
}
.lt-switch__thumb {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    transition: left .18s;
    box-shadow: 0 1px 3px rgba(0,0,0,.25);
}
.lt-switch__input:checked + .lt-switch__track .lt-switch__thumb {
    left: 21px;
}
.lt-switch__label {
    font-size: .875rem;
    color: #4a5568;
}

/* Conditional sub-section */
.lt-conditional {
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 5px;
    padding: .75rem;
    margin-top: .75rem;
}

/* Toggle row layout */
.lt-toggle-row {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1.5rem;
}
.lt-toggle-cell {
    display: flex;
    align-items: center;
    min-width: 200px;
}

/* Accounting input */
.lt-acct-label {
    font-size: .78rem;
    color: #6c757d;
    margin-bottom: .3rem;
    display: block;
}

/* Calculator modal */
.lt-calc-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.5);
    z-index: 100050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}
.lt-calc-modal {
    background: #fff;
    border-radius: 10px;
    width: 95%;
    max-width: 1100px;
    max-height: 90vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 24px 80px rgba(0,0,0,.3);
}
.lt-calc-modal__header {
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e9ecef;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-shrink: 0;
}
.lt-calc-modal__title {
    font-size: 1.05rem;
    font-weight: 600;
    color: #1a202c;
    margin: 0;
}
.lt-calc-modal__body {
    flex: 1;
    overflow-y: auto;
    padding: 1.25rem 1.5rem;
}

/* Calculator cards */
.lt-calc-cards-list {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}
.lt-calc-card-full {
    border: 2px solid #e9ecef;
    border-radius: 8px;
    padding: 1rem 1.25rem;
    transition: border-color .15s, box-shadow .15s;
    position: relative;
}
.lt-calc-card-full:not(.is-assigned) {
    cursor: pointer;
}
.lt-calc-card-full:not(.is-assigned):hover {
    border-color: #4299e1;
    box-shadow: 0 4px 14px rgba(66,153,225,.18);
}
.lt-calc-card-full.is-assigned {
    border-color: #28a745;
    background: #f0fff4;
    cursor: default;
}
.lt-calc-card-full.is-pending {
    border-color: #f6ad55;
    background: #fffbf0;
}
.lt-calc-card-full__header {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
}
.lt-calc-card-full__info { flex: 1; }
.lt-calc-card__check {
    color: #28a745;
    font-size: 1rem;
    display: none;
    margin-top: .15rem;
    flex-shrink: 0;
}
.lt-calc-card-full.is-assigned .lt-calc-card__check { display: inline; }
.lt-calc-card__pending-icon {
    color: #ed8936;
    font-size: 1rem;
    display: none;
    margin-top: .15rem;
    flex-shrink: 0;
}
.lt-calc-card-full.is-pending .lt-calc-card__pending-icon { display: inline; }
.lt-calc-card__name {
    font-weight: 700;
    font-size: .95rem;
    color: #1a202c;
    margin-bottom: .2rem;
}
.lt-calc-card__desc {
    font-size: .82rem;
    color: #718096;
    line-height: 1.4;
    margin-bottom: .4rem;
}
.lt-calc-card__badges { display: flex; gap: .3rem; flex-wrap: wrap; margin-top: .2rem; }

/* Calculator param list */
.lt-cparam-block {
    margin-top: .85rem;
    padding-top: .75rem;
    border-top: 1px solid #e9ecef;
}
.lt-cparam-title {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #6c757d;
    margin-bottom: .4rem;
}
.lt-cparam-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: .25rem;
}
.lt-cparam-item {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .2rem;
    font-size: .82rem;
    color: #4a5568;
}
.lt-cparam-bullet {
    color: #a0aec0;
    font-size: .6rem;
    flex-shrink: 0;
    margin-right: .1rem;
}
.lt-cparam-name { font-weight: 500; }
.lt-cparam-desc {
    display: block;
    width: 100%;
    font-size: .75rem;
    color: #718096;
    margin-left: .9rem;
}

/* Badges */
.lt-badge {
    font-size: .65rem;
    font-weight: 600;
    padding: .15rem .45rem;
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.lt-badge--blue   { background: #ebf8ff; color: #2b6cb0; }
.lt-badge--green  { background: #f0fff4; color: #276749; }
.lt-badge--red    { background: #fff5f5; color: #9b2c2c; }
.lt-badge--purple { background: #faf5ff; color: #553c9a; }
.lt-badge--orange { background: #fffbeb; color: #92400e; }

/* Disbursement type list */
.lt-disb-list {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    margin-top: .5rem;
}
.lt-disb-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .6rem .9rem;
    border: 1px solid #e9ecef;
    border-radius: 6px;
    cursor: pointer;
    transition: background .12s, border-color .12s;
    user-select: none;
    margin: 0;
}
.lt-disb-item:hover {
    background: #f0f7ff;
    border-color: #bee3f8;
}
.lt-disb-item__checkbox {
    width: 16px;
    height: 16px;
    cursor: pointer;
    flex-shrink: 0;
    accent-color: #4299e1;
}
.lt-disb-item__label {
    font-size: .875rem;
    font-weight: 500;
    color: #2d3748;
}

/* Assigned calculators list */
.lt-assignment-block {
    border: 1px solid #e9ecef;
    border-radius: 8px;
    margin-bottom: .75rem;
    overflow: hidden;
}
.lt-assignment-block:last-child { margin-bottom: 0; }
.lt-assignment-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .7rem 1rem;
    background: #f8f9fa;
}
.lt-assignment-order {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #4299e1;
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.lt-assignment-name { font-weight: 600; font-size: .875rem; flex: 1; }
.lt-assignment-meta { font-size: .75rem; color: #718096; }
.lt-assignment-params {
    padding: .9rem 1rem 1rem;
    border-top: 1px solid #e9ecef;
    background: #fff;
}
.lt-aparam-title {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #6c757d;
    margin-bottom: .75rem;
}

/* Pending assignment */
.lt-assignment-block--pending {
    border-color: #f6ad55;
}
.lt-assignment-item--pending {
    background: #fffbf0;
}
.lt-assignment-order--pending {
    background: #ed8936;
}
.lt-assignment-delete {
    background: none;
    border: 1px solid #dee2e6;
    border-radius: 50%;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #868e96;
    font-size: .7rem;
    cursor: pointer;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
}

.lt-assignment-delete:hover {
    color: #dc3545;
    border-color: #dc3545;
    background: rgba(220, 53, 69, .05);
}

.lt-assignment-save-row {
    padding: .6rem 1rem .75rem;
    background: #fffbf0;
    border-top: 1px solid #f6ad55;
}

/* Calculator tab: narrower centered container */
#lt_tab_calc > .p-3 {
    max-width: 80%;
    margin: 0 auto;
}

#lt_tab_calc .mt-3.mb-4 {
    display: flex;
    flex-direction: column;
    align-items: center;
}

#lt_tab_calc .mt-3.mb-4 > div[id^="lt_calc_section_"] {
    width: 100%;
}

/* Type group headers */
.lt-type-group { margin-bottom: 1.25rem; }
.lt-type-group:last-child { margin-bottom: 0; }
.lt-type-group__header {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: .35rem .75rem;
    border-radius: 5px;
    margin-bottom: .5rem;
}
.lt-type-group__header--blue   { background: #ebf8ff; color: #2b6cb0; }
.lt-type-group__header--yellow { background: #fffbeb; color: #92400e; }
.lt-type-group__header--green  { background: #f0fff4; color: #276749; }
.lt-type-group__header--purple { background: #faf5ff; color: #553c9a; }
.lt-type-group__header--gray   { background: #f7fafc; color: #4a5568; }

/* ─── Collection Calendar ────────────────────────────────────────────────── */

/* ─── Electronic Transfer Info Bar ────────────────────────────────────────── */

.elt-info-bar {
    background: #f8f9fb;
    border: 1px solid #e9ecef;
    border-radius: 6px;
    margin-bottom: .75rem;
}

.elt-info-bar__desc {
    font-size: .85rem;
    font-weight: 600;
    color: #2d3748;
}

.elt-info-bar__total {
    font-size: .82rem;
    font-weight: 600;
    color: #4a5568;
}

.cc-calendar {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    background: #e9ecef;
    border: 1px solid #e9ecef;
    border-radius: 6px;
    overflow: hidden;
}

.cc-calendar__header {
    background: #f1f3f5;
    padding: 8px 4px;
    text-align: center;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #6c757d;
}

.cc-calendar__day {
    background: #fff;
    min-height: 90px;
    padding: 6px 8px;
    cursor: pointer;
    transition: background .12s;
    position: relative;
}

.cc-calendar__day:hover {
    background: #f0f7ff;
}

.cc-calendar__day--other {
    background: #f8f9fa;
    color: #adb5bd;
    cursor: default;
}

.cc-calendar__day--other:hover {
    background: #f8f9fa;
}

.cc-calendar__day--today {
    border: 2px solid #1a73e8;
}

.cc-calendar__day-number {
    font-size: .78rem;
    font-weight: 600;
    color: #2d3748;
    margin-bottom: 4px;
}

.cc-calendar__day--other .cc-calendar__day-number {
    color: #ced4da;
}

.cc-calendar__dot {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    margin-right: 2px;
}

.cc-calendar__dot--created  { background: #4299e1; }
.cc-calendar__dot--pending  { background: #ecc94b; }
.cc-calendar__dot--paid     { background: #48bb78; }

.cc-calendar__summary {
    font-size: .68rem;
    color: #718096;
    line-height: 1.3;
}

.cc-calendar__badge {
    display: inline-block;
    font-size: .62rem;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: 3px;
    margin-top: 2px;
}

.cc-calendar__badge--amount {
    background: #ebf8ff;
    color: #2b6cb0;
}

/* Day detail cards */
.cc-day-card {
    border: 1px solid #e9ecef;
    border-radius: 6px;
    padding: .75rem 1rem;
    margin-bottom: .75rem;
    background: #fff;
}

.cc-day-card__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: .5rem;
}

.cc-day-card__title {
    font-weight: 600;
    font-size: .85rem;
    color: #2d3748;
}

.cc-day-card__row {
    display: flex;
    justify-content: space-between;
    font-size: .78rem;
    color: #4a5568;
    padding: 2px 0;
}

.cc-day-card__row--total {
    font-weight: 700;
    border-top: 1px solid #e9ecef;
    padding-top: 4px;
    margin-top: 4px;
}

/* ─── Config Loan & Saving ───────────────────────────────────────────────────── */

.cfg-section-card {
    border: 1px solid #e4e7ea;
    border-radius: 6px;
    background: #fff;
    padding: 1.25rem;
}

.cfg-section-card .content-table-responsive {
    min-height: auto;
    padding: 0;
}

.cfg-section-card--disabled {
    position: relative;
    pointer-events: none;
    user-select: none;
}

.cfg-section-overlay {
    position: absolute;
    inset: 0;
    z-index: 100;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: rgba(255, 255, 255, .8);
    border-radius: 6px;
    color: #6c757d;
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: .3px;
}

.cfg-section-overlay i {
    font-size: 1.6rem;
}

.cfg-section-card__add {
    display: flex;
    gap: .5rem;
    margin-bottom: 1rem;
}

.cfg-section-card__add select2-my {
    flex: 1;
}

.cfg-item {
    padding: .35rem .5rem;
    border-radius: 4px;
    margin-bottom: .3rem;
    background: #f8f9fa;
}

.cfg-item__badge {
    font-size: .8rem;
    padding: .3em .7em;
}

.cfg-item + .cfg-item {
    margin-top: .25rem;
}

.cfg-toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .5rem .65rem;
    border-radius: 4px;
    background: #f8f9fa;
    margin-bottom: .35rem;
    transition: background .15s;
}

.cfg-toggle-row:hover {
    background: #e9ecef;
}

.cfg-toggle-row__label {
    font-size: .85rem;
    color: #2d3748;
}

/* ─── Company Configuration — Custom Calculators ─────────────────────────────── */

/* Steps bar */
.ccalc-steps-bar {
    display: flex;
    align-items: center;
    gap: 0;
    padding: .75rem 1.5rem;
    background: #f8f9fa;
    border-bottom: 1px solid #e4e7ea;
}

.ccalc-step {
    display: flex;
    align-items: center;
    gap: .5rem;
    color: #adb5bd;
    font-size: .85rem;
    padding: .3rem .9rem;
    border-radius: 20px;
    transition: background .2s, color .2s;
    user-select: none;
}

.ccalc-step.active    { background: #d4edda; color: #155724; font-weight: 600; }
.ccalc-step.completed { color: #28a745; cursor: pointer; }
.ccalc-step.completed:hover { background: #f0fdf4; }

.ccalc-step__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: currentColor;
    color: #fff;
    font-size: .75rem;
    font-weight: 700;
    flex-shrink: 0;
}

.ccalc-step.active    .ccalc-step__num { background: #155724; }
.ccalc-step.completed .ccalc-step__num { background: #28a745; }

.ccalc-step + .ccalc-step::before {
    content: '\203A';
    margin-right: .9rem;
    color: #ced4da;
    font-size: 1.1rem;
}

/* Header summary strip */
.ccalc-summary-strip {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem .6rem;
    background: #eef2f7;
    border: 1px solid #c8d6e5;
    border-radius: 6px;
    padding: .45rem 1rem;
    font-size: .8rem;
    margin-bottom: 1.5rem;
}

.ccalc-summary-item {
    display: flex;
    align-items: center;
    gap: .3rem;
}

.ccalc-summary-label {
    color: #6c757d;
    font-weight: 500;
}

.ccalc-summary-value {
    color: #1a202c;
    font-weight: 700;
}

.ccalc-summary-sep {
    color: #ced4da;
    font-weight: 300;
}

.ccalc-summary-badge {
    display: inline-block;
    padding: .1rem .45rem;
    border-radius: 12px;
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.4;
}

.ccalc-summary-badge--green { background: #d4edda; color: #155724; }
.ccalc-summary-badge--red   { background: #f8d7da; color: #721c24; }

/* Param rows (step 2) */
.ccalc-param-row { background: #f8f9fa; border-radius: 4px; }
.ccalc-param-row:hover { background: #e9ecef; }
.ccalc-param-row--editing { background: #fff8e1; border: 1px solid #ffe082; }

/* Section title (used dynamically in JS) */
.ccalc-section-title {
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #6c757d;
    margin-bottom: 1rem;
}

/* Form section separator */
.ccalc-form-section {
    padding: 1.25rem 1.5rem;
    background: #fff;
    border: 1px solid #e9ecef;
    border-radius: 6px;
    margin-bottom: 1.25rem;
}

/* Editor container */
#cc_editor_container {
    height: 384px;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    overflow: hidden;
}

/* Editor toolbar */
.ccalc-editor-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: .5rem;
}

.ccalc-editor-label {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #4a5568;
    display: flex;
    align-items: center;
    gap: .35rem;
}

.ccalc-editor-label i { color: #718096; }

/* Param chips strip (above editor) */
#cc_params_chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
    min-height: 28px;
    margin-bottom: .5rem;
}

#cc_params_chips:empty { display: none; }

/* Chip base */
.ccalc-chip {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .25rem .6rem;
    border-radius: 20px;
    font-size: .75rem;
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    cursor: pointer;
    border: 1px solid transparent;
    transition: background .15s, transform .1s, box-shadow .15s;
    line-height: 1.3;
    white-space: nowrap;
    background: none;
}

.ccalc-chip:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 6px rgba(0, 0, 0, .14);
}

.ccalc-chip:active { transform: translateY(0); }

.ccalc-chip--param {
    background: #e3f8f5;
    border-color: #81e6d9;
    color: #234e52;
}

.ccalc-chip--param:hover { background: #b2f5ea; border-color: #4fd1c5; }

.ccalc-chip__name  { font-weight: 600; }

.ccalc-chip__type {
    font-size: .65rem;
    background: rgba(0, 0, 0, .08);
    border-radius: 10px;
    padding: .1rem .35rem;
    opacity: .8;
}

.ccalc-chips-empty-hint {
    font-size: .75rem;
    color: #adb5bd;
    font-style: italic;
}

/* Test inputs below editor */
#cc_dynamic_inputs { margin-top: .75rem; }

.ccalc-inputs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: .5rem .75rem;
}

.ccalc-input-cell label {
    font-size: .75rem;
    color: #4a5568;
    margin-bottom: .25rem;
    display: flex;
    align-items: center;
    gap: .3rem;
}

.ccalc-input-key {
    font-size: .68rem;
    font-family: monospace;
    background: #edf2f7;
    border-radius: 4px;
    padding: .1rem .3rem;
    color: #4a5568;
}

/* Action bar */
.ccalc-action-bar {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: .75rem;
}

#cc_test_result { font-family: monospace; }

/* Context panel (right) */
.ccalc-context-panel {
    background: #1e2433;
    border-radius: 8px;
    border: 1px solid #2d3748;
    height: 100%;
    min-height: 420px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ccalc-context-panel__header {
    padding: .6rem .9rem;
    background: #2d3748;
    border-bottom: 1px solid #4a5568;
    flex-shrink: 0;
}

.ccalc-context-panel__title {
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: #a0aec0;
    margin: 0;
    display: flex;
    align-items: center;
    gap: .4rem;
}

.ccalc-context-panel__body {
    flex: 1;
    overflow-y: auto;
    padding: .5rem .25rem;
}

.ccalc-context-panel__body::-webkit-scrollbar       { width: 5px; }
.ccalc-context-panel__body::-webkit-scrollbar-track  { background: #1e2433; }
.ccalc-context-panel__body::-webkit-scrollbar-thumb  { background: #4a5568; border-radius: 4px; }

.ccalc-ctx-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .3rem .65rem;
    border-radius: 5px;
    cursor: pointer;
    transition: background .12s;
    gap: .5rem;
}

.ccalc-ctx-row:hover { background: #2d3748; }
.ccalc-ctx-row:hover .ccalc-ctx-key { color: #63b3ed; }

.ccalc-ctx-key {
    font-family: 'SFMono-Regular', Consolas, monospace;
    font-size: .78rem;
    color: #90cdf4;
    white-space: nowrap;
    transition: color .12s;
}

.ccalc-ctx-eq {
    font-family: monospace;
    font-size: .75rem;
    color: #4a5568;
    flex-shrink: 0;
}

.ccalc-ctx-val {
    font-family: 'SFMono-Regular', Consolas, monospace;
    font-size: .78rem;
    color: #68d391;
    text-align: right;
    white-space: nowrap;
}

.ccalc-ctx-insert-hint {
    display: none;
    font-size: .65rem;
    color: #4a5568;
    margin-left: .5rem;
}

.ccalc-ctx-row:hover .ccalc-ctx-insert-hint { display: inline; }

.ccalc-ctx-group-label {
    font-size: .65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #718096;
    padding: .5rem .65rem .2rem;
}

/* ── Custom Filter Global (Notion-style pill bar) ────────────────────────── */
.cgf-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px 0 10px;
    min-height: 38px;
}

.cgf-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

/* Add-filter button */
.cgf-add-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .78rem;
    color: #94a3b8;
    background: none;
    border: 1px dashed transparent;
    padding: 3px 8px;
    border-radius: 20px;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
    line-height: 1.4;
}
.cgf-add-btn:hover {
    background: #f1f5f9;
    color: #475569;
    border-color: #cbd5e1;
}

/* Clear-all button */
.cgf-clear-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .78rem;
    color: #94a3b8;
    background: none;
    border: none;
    padding: 3px 8px;
    border-radius: 4px;
    cursor: pointer;
    transition: background .15s, color .15s;
    line-height: 1.4;
}
.cgf-clear-btn:hover { color: #dc3545; background: #fff5f5; }

/* Active filter pill */
.cgf-pill {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .78rem;
    background: rgba(25,118,210,.07);
    border: 1px solid rgba(25,118,210,.22);
    color: #1565c0;
    border-radius: 20px;
    padding: 3px 6px 3px 9px;
    cursor: pointer;
    transition: background .15s;
    max-width: 260px;
    user-select: none;
}
.cgf-pill:hover { background: rgba(25,118,210,.13); }
.cgf-pill-icon { font-size: .7rem; color: #1976d2; flex-shrink: 0; }
.cgf-pill-label { font-weight: 600; letter-spacing: .02em; white-space: nowrap; }
.cgf-pill-sep { color: rgba(25,118,210,.45); font-size: .72rem; }
.cgf-pill-value {
    max-width: 110px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.cgf-pill-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    color: rgba(21,101,192,.55);
    padding: 0;
    margin-left: 2px;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    border-radius: 50%;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    transition: background .15s, color .15s;
}
.cgf-pill-remove:hover { background: rgba(25,118,210,.18); color: #1565c0; }
.cgf-pill-empty {
    background: rgba(25,118,210,.03);
    border-style: dashed;
    border-color: rgba(25,118,210,.28);
}
.cgf-pill-empty:hover { background: rgba(25,118,210,.08); }
.cgf-pill-placeholder { color: rgba(21,101,192,.45); font-style: italic; }

/* Dropdown panel */
@keyframes cgf-dd-in {
    from { opacity: 0; transform: translateY(-6px) scale(.97); }
    to   { opacity: 1; transform: translateY(0)   scale(1); }
}
.cgf-dropdown {
    position: fixed;
    z-index: 100001;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    box-shadow: 0 8px 32px rgba(0,0,0,.13), 0 2px 8px rgba(0,0,0,.06);
    min-width: 220px;
    max-width: 310px;
    overflow: hidden;
    animation: cgf-dd-in .16s cubic-bezier(.22,.68,0,1.2) both;
    transform-origin: top left;
}
.cgf-dd-header {
    padding: 10px 14px 8px;
    font-size: .69rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: #94a3b8;
    border-bottom: 1px solid #f1f5f9;
    background: #fafbfc;
}
.cgf-dd-field-item {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 14px;
    font-size: .84rem;
    color: #334155;
    cursor: pointer;
    transition: background .12s, color .12s;
}
.cgf-dd-field-item:hover { background: #f0f7ff; color: #1565c0; }
.cgf-dd-field-item:hover i { color: #1976d2; }
.cgf-dd-field-item i { font-size: .76rem; color: #b0bec5; width: 14px; flex-shrink: 0; transition: color .12s; }

/* Search inside dropdown */
.cgf-dd-search {
    padding: 8px 10px;
    border-bottom: 1px solid #f1f5f9;
    background: #fafbfc;
}
.cgf-dd-search input {
    width: 100%;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 5px 9px;
    font-size: .82rem;
    outline: none;
    box-sizing: border-box;
    transition: border-color .15s, box-shadow .15s;
}
.cgf-dd-search input:focus {
    border-color: #1976d2;
    box-shadow: 0 0 0 3px rgba(25,118,210,.1);
}

/* Options list */
.cgf-dd-options {
    max-height: 210px;
    overflow-y: auto;
    padding: 4px 0;
}
.cgf-dd-option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px;
    font-size: .83rem;
    color: #334155;
    cursor: pointer;
    transition: background .1s, color .1s;
}
.cgf-dd-option:hover { background: #f0f7ff; color: #1565c0; }
.cgf-dd-option input[type="checkbox"] { margin: 0; flex-shrink: 0; cursor: pointer; }
.cgf-dd-option.cgf-dd-option-selected { background: #eff6ff; color: #1976d2; font-weight: 600; }

/* Text / date input editor */
.cgf-dd-text-input {
    padding: 12px 14px;
}
.cgf-dd-text-input .input-group { flex-wrap: nowrap; }

/* Footer with action buttons */
.cgf-dd-footer {
    padding: 8px 12px;
    border-top: 1px solid #f1f5f9;
    display: flex;
    justify-content: flex-end;
    gap: 6px;
    background: #fafbfc;
}
.cgf-dd-apply {
    font-size: .78rem;
    padding: 5px 14px;
    border-radius: 6px;
    border: none;
    background: #1976d2;
    color: #fff;
    cursor: pointer;
    font-weight: 600;
    transition: background .15s, box-shadow .15s;
}
.cgf-dd-apply:hover {
    background: #1565c0;
    box-shadow: 0 2px 8px rgba(25,118,210,.3);
}
.cgf-dd-remove {
    font-size: .78rem;
    padding: 5px 12px;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
    background: #fff;
    color: #94a3b8;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}
.cgf-dd-remove:hover { background: #fff5f5; border-color: #fca5a5; color: #dc3545; }

/* Loading state */
.cgf-dd-loading {
    padding: 18px 14px;
    text-align: center;
    font-size: .8rem;
    color: #94a3b8;
}

/* ═══════════════════════════════════════════════════════════════════════════
   CONSOLIDATED MODULE STYLES
   Extracted from www/core/modules/ and inline HBS <style> blocks
═══════════════════════════════════════════════════════════════════════════ */

/* ── bulk-post.css ─────────────────────────────────────────────────────────── */

#bk_table_container .custom-tbody .custom-row { cursor: pointer; }
#bk_table_container .custom-tbody .custom-row.bk-row-unbalanced { background-color: #fff8f0; }
#bk_table_container .custom-tbody .custom-row.bk-row-unbalanced:hover { background-color: #ffeede; }

.bk-badge-ok {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 0.72rem; font-weight: 600; color: #1a7a4a;
    background: #e6f7ee; border-radius: 20px; padding: 2px 8px; white-space: nowrap;
}
.bk-badge-warn {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 0.72rem; font-weight: 600; color: #b95c00;
    background: #fff1e0; border-radius: 20px; padding: 2px 8px; white-space: nowrap;
}
.bk-selection-panel {
    background: #f4f6fb; border: 1px solid #dde3f0; border-radius: 8px;
    padding: 8px 14px 10px; margin-bottom: 10px;
}
.bk-selection-label {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.07em; color: #9aa3b8; margin-bottom: 6px; display: block;
}
.bk-tags-wrap { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.bk-tag {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 0.78rem; padding: 3px 8px; border-radius: 20px;
    background: #1b55e2; color: #fff; font-weight: 500; white-space: nowrap;
}
.bk-tag i { cursor: pointer; opacity: 0.75; font-size: 0.7rem; transition: opacity 0.15s; }
.bk-tag i:hover { opacity: 1; }
@keyframes bk-pop-in {
    0%   { transform: scale(0.4); opacity: 0; }
    65%  { transform: scale(1.12); opacity: 1; }
    100% { transform: scale(1); }
}
.bk-tag-enter { animation: bk-pop-in 0.22s ease forwards; }

/* ── credit-note.css ───────────────────────────────────────────────────────── */

#cn_second_view > .panel-hdr { margin-bottom: 10px; }

.cn-id-bar {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 16px; background: #f0f4ff;
    border: 0.5px solid #d6e0f5; border-radius: 6px;
    margin-bottom: 16px; font-size: 0.9rem;
}
.cn-id-bar .cn-id-label { color: #6c757d; font-weight: 500; }
.cn-id-bar .cn-id-number { font-weight: 700; color: #1a73e8; font-size: 1rem; }
.cn-id-bar .cn-id-seq {
    font-size: 0.78rem; font-weight: 500; color: #8c919a;
    background: #e9ecef; padding: 2px 8px; border-radius: 4px;
}
.cn-section-header {
    display: flex; align-items: center; background: #f8f9fa;
    border-left: 3px solid #1a73e8; border-radius: 0 4px 4px 0;
    padding: 8px 14px; margin-bottom: 16px; font-weight: 600;
    font-size: 0.85rem; color: #343a40; letter-spacing: 0.02em; text-transform: uppercase;
}
.cn-section-header i { font-size: 1rem; color: #1a73e8; margin-right: 8px; }
.cn-form-group {
    border: 1px solid #e9ecef; border-radius: 6px;
    padding: 16px 20px 8px; margin-bottom: 20px; background: #ffffff;
}
.cn-section { border: 1px solid #e9ecef; border-radius: 6px; margin-bottom: 16px; overflow: hidden; }
.cn-section > .cn-section-header { border-radius: 0; margin-bottom: 0; border-left: 3px solid #1a73e8; }
.cn-section > .cn-form-group { border: none; border-radius: 0; margin-bottom: 0; }
.cn-supplier-info {
    display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px;
    padding: 6px 10px; background: #f7f8fa; border: 1px solid #eaedf1;
    border-radius: 6px; font-size: 0.72rem; min-height: 30px;
}
.cn-info-empty { color: #c4c8cc; font-style: italic; }
.cn-supplier-info .cn-si-item { display: flex; align-items: center; gap: 4px; }
.cn-supplier-info .cn-si-item i { color: #adb5bd; font-size: 0.72rem; width: 12px; text-align: center; }
.cn-supplier-info .cn-si-label { color: #8c919a; }
.cn-supplier-info .cn-si-value { color: #1a1d21; font-weight: 600; }
.cn-supplier-info .cn-si-badge {
    display: inline-block; padding: 1px 6px; border-radius: 4px;
    font-size: 0.65rem; font-weight: 600; text-transform: uppercase;
}
.cn-si-badge-active   { background: #eefbf0; color: #1d8939; }
.cn-si-badge-inactive { background: #fef1f1; color: #dc3545; }
.cn-concept-info {
    display: flex; flex-direction: column; gap: 3px; margin-top: 6px;
    padding: 6px 10px; background: #f0f4ff; border: 1px solid #d6e0f5;
    border-radius: 6px; font-size: 0.72rem; min-height: 30px;
}
.cn-ci-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; }
.cn-concept-info .cn-ci-item { display: flex; align-items: center; gap: 4px; }
.cn-concept-info .cn-ci-item i { color: #6c8ebf; font-size: 0.72rem; width: 12px; text-align: center; }
.cn-concept-info .cn-ci-label { color: #8c919a; }
.cn-concept-info .cn-ci-value { color: #1a1d21; font-weight: 600; }
.cn-doc-info {
    display: flex; flex-direction: column; gap: 3px; margin-top: 6px;
    padding: 6px 10px; background: #fffbf0; border: 1px solid #f0e6c8;
    border-radius: 6px; font-size: 0.72rem; min-height: 30px;
}
.cn-di-row { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; }
.cn-doc-info .cn-di-item { display: flex; align-items: center; gap: 4px; }
.cn-doc-info .cn-di-item i { color: #d4a017; font-size: 0.72rem; width: 12px; text-align: center; }
.cn-doc-info .cn-di-label { color: #8c919a; }
.cn-doc-info .cn-di-value { color: #1a1d21; font-weight: 600; }
.cn-doc-info .cn-di-value-red { color: #dc3545; font-weight: 700; }
.cn-summary-panel { border: 1px solid #e9ecef; border-radius: 8px; background: #fff; margin-top: 16px; overflow: hidden; }
.cn-summary-panel-header {
    display: flex; align-items: center; padding: 10px 20px; font-weight: 600;
    font-size: 0.78rem; color: #343a40; letter-spacing: 0.02em; text-transform: uppercase;
    background: #f8f9fa; border-bottom: 1px solid #e9ecef; border-left: 3px solid #1a73e8;
}
.cn-summary-panel-header i { font-size: 0.9rem; color: #1a73e8; margin-right: 8px; }
.cn-footer-row { display: flex; align-items: stretch; gap: 0; }
.cn-footer-col { min-width: 0; }
.cn-footer-journal { flex: 7; border-right: 1px solid #dee2e6; margin-right: 12px; display: flex; flex-direction: column; }
.cn-footer-journal .cn-journal-body { flex: 1; display: flex; flex-direction: column; }
.cn-footer-journal .cn-journal-table { flex: 1; }
.cn-footer-journal .cn-journal-table tbody { vertical-align: bottom; }
.cn-footer-totals { flex: 3; display: flex; flex-direction: column; }
.cn-footer-col-title { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #8c919a; padding: 10px 14px 6px; }
.cn-footer-totals-body { display: flex; flex-direction: column; flex: 1; padding: 6px 20px 0; }
.cn-footer-totals-body .cn-summary-total {
    margin-top: auto; background: #fafbfc; padding: 8px 20px;
    margin-left: -20px; margin-right: -20px; border-top: 2px solid #dee2e6; border-bottom: none !important;
}
.cn-journal-body { padding: 0; }
.cn-journal-table { width: 100%; border-collapse: collapse; font-size: 0.78rem; }
.cn-journal-table thead th {
    padding: 6px 14px; font-size: 0.68rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.04em; color: #8c919a; background: #fafbfc; border-bottom: 1px solid #e9ecef;
}
.cn-journal-table tbody td { padding: 7px 14px; vertical-align: middle; border-bottom: 1px solid #f3f4f6; }
.cn-journal-table tbody tr:last-child td { border-bottom: none; }
.cn-journal-account { font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; font-size: 0.74rem; color: #495057; white-space: nowrap; }
.cn-journal-desc { color: #6c757d; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cn-journal-amount { font-weight: 600; text-align: right; white-space: nowrap; }
.cn-journal-table tfoot td { padding: 8px 14px; font-weight: 700; font-size: 0.8rem; border-top: 2px solid #dee2e6; background: #fafbfc; }
.cn-summary-col { display: flex; flex-direction: column; }
.cn-summary-section-label { font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #adb5bd; margin-bottom: 8px; padding-bottom: 4px; border-bottom: 1px solid #e9ecef; }
.cn-summary-row { display: flex; justify-content: space-between; align-items: center; padding: 4px 0; font-size: 0.8rem; border-bottom: 1px dashed #f0f1f3; }
.cn-summary-row:last-child { border-bottom: none; }
.cn-summary-row .label { color: #8c919a; font-weight: 500; }
.cn-summary-row .value { font-weight: 600; color: #1a1d21; font-size: 0.82rem; }
.cn-summary-col .cn-summary-total { margin-top: auto; }
.cn-summary-total { border-bottom: none !important; border-top: 2px solid #dee2e6; padding-top: 8px; }
.cn-summary-total .label { font-weight: 700; color: #1a1d21; }
.cn-summary-total .value { font-weight: 800; font-size: 0.92rem; color: #1a1d21; }
.cn-balance-text { display: inline-flex; align-items: center; gap: 4px; padding: 6px 16px; border-radius: 20px; font-size: 0.76rem; font-weight: 600; }
.cn-balance-ok    { background: #eefbf0; color: #1d8939; }
.cn-balance-err   { background: #fef1f1; color: #dc3545; }
.cn-balance-empty { background: #f7f8fa; color: #adb5bd; }
.cn-summary-item { display: flex; flex-direction: column; gap: 2px; padding: 6px 0; }
.cn-summary-label { font-size: 0.75rem; color: #6c757d; line-height: 1; }
.cn-summary-value { font-size: 0.95rem; font-weight: 600; color: #343a40; line-height: 1.2; }
.cn-amounts-row { display: flex; align-items: flex-start; gap: 0; }
.cn-amount-cell { flex: 1; min-width: 0; }
.cn-amount-cell .form-label { font-size: 0.75rem; margin-bottom: 4px; }
.cn-op { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 28px; height: 31px; margin-top: 22px; font-size: 1.1rem; font-weight: 700; color: #1a73e8; }
.cn-op-minus { color: #dc3545; }
.cn-op-equals { color: #495057; font-size: 1.2rem; }
.cn-amount-total { background: #f8faf8; border: 1px solid #d4edda; border-radius: 6px; padding: 6px 10px 4px; }
.cn-total-display { font-size: 1.05rem; font-weight: 700; color: #28a745; padding: 4px 0; line-height: 1.5; text-align: right; }
.cn-balance-ref { display: flex; flex-direction: column; gap: 1px; padding: 4px 0 0; }
.cn-balance-ref-label { font-size: 0.65rem; color: #adb5bd; line-height: 1; }
.cn-balance-ref-value { font-size: 0.78rem; font-weight: 600; color: #6c757d; }
.cn-readonly-auto,
input.cn-readonly-auto:disabled,
textarea.cn-readonly-auto:disabled { background-color: #f0f4ff !important; color: #495057; cursor: default; }
@keyframes cn-autofill-flash {
    0%   { background-color: #d4edff; }
    100% { background-color: #f0f4ff; }
}
.cn-autofilled { animation: cn-autofill-flash 0.6s ease-out forwards; }

/* ── document-payable.css ──────────────────────────────────────────────────── */

.dp-section-header {
    display: flex; align-items: center; background: #f8f9fa;
    border-left: 3px solid #1a73e8; padding: 8px 14px; margin: 0;
    font-weight: 600; font-size: 0.78rem; color: #343a40;
    letter-spacing: 0.02em; text-transform: uppercase;
    border-bottom: 1px solid #e9ecef; border-radius: 6px 6px 0 0;
}
.dp-section-header i { font-size: 0.9rem; color: #1a73e8; margin-right: 8px; }
.dp-form-group { border: 1px solid #e9ecef; border-top: none; border-radius: 0 0 6px 6px; padding: 14px 18px 8px; margin-bottom: 0; background: #ffffff; }
.dp-summary-panel { border: 1px solid #e9ecef; border-radius: 8px; background: #fff; margin-top: 16px; overflow: hidden; }
.dp-summary-header {
    display: flex; align-items: center; padding: 10px 20px; font-weight: 600;
    font-size: 0.78rem; color: #343a40; letter-spacing: 0.02em; text-transform: uppercase;
    background: #f8f9fa; border-bottom: 1px solid #e9ecef; border-left: 3px solid #1a73e8;
}
.dp-summary-header i { font-size: 0.9rem; color: #1a73e8; margin-right: 8px; }
.dp-summary-panel > .row { padding: 16px 20px; }
.dp-summary-row { display: flex; justify-content: space-between; align-items: center; padding: 4px 0; font-size: 0.8rem; border-bottom: 1px dashed #f0f1f3; }
.dp-summary-row:last-child { border-bottom: none; }
.dp-summary-row .label { color: #8c919a; font-weight: 500; }
.dp-summary-row .value { font-weight: 600; color: #1a1d21; font-size: 0.82rem; }
.dp-summary-row.dp-row-subtract .label,
.dp-summary-row.dp-row-subtract .value { color: #dc3545; }
.dp-summary-section-label { font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #adb5bd; margin-bottom: 8px; padding-bottom: 4px; border-bottom: 1px solid #e9ecef; }
.dp-summary-total { border-bottom: none !important; border-top: 2px solid #dee2e6; margin-top: 6px; padding-top: 8px; }
.dp-summary-total .label { font-weight: 700; color: #1a1d21; }
.dp-summary-total .value { font-weight: 800; font-size: 0.92rem; color: #1a1d21; }
.dp-summary-col { display: flex; flex-direction: column; }
.dp-summary-col .dp-summary-total { margin-top: auto; }
.dp-balance-indicator { margin-top: 14px; text-align: center; }
.dp-balance-text { display: inline-flex; align-items: center; gap: 4px; padding: 6px 16px; border-radius: 20px; font-size: 0.76rem; font-weight: 600; }
.dp-balance-ok    { background: #eefbf0; color: #1d8939; }
.dp-balance-err   { background: #fef1f1; color: #dc3545; }
.dp-balance-empty { background: #f7f8fa; color: #adb5bd; }
.dp-id-bar {
    display: flex; align-items: center; gap: 10px; padding: 10px 16px;
    background: #f0f4ff; border: 0.5px solid #d6e0f5; border-radius: 6px;
    margin-bottom: 16px; font-size: 0.9rem;
}
.dp-id-bar .dp-id-label { color: #6c757d; font-weight: 500; }
.dp-id-bar .dp-id-number { font-weight: 700; color: #1a73e8; font-size: 1rem; }
.dp-id-bar .dp-id-seq { font-size: 0.78rem; font-weight: 500; color: #8c919a; background: #e9ecef; padding: 2px 8px; border-radius: 4px; }
.dp-footer-row { display: flex; gap: 0; }
.dp-footer-col { min-width: 0; }
.dp-footer-journal { flex: 7; border-right: 1px solid #dee2e6; margin-right: 12px; }
.dp-footer-totals  { flex: 3; display: flex; flex-direction: column; }
.dp-footer-col-title { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #8c919a; padding: 10px 14px 6px; }
.dp-footer-totals-body { display: flex; flex-direction: column; flex: 1; padding: 6px 20px 0; }
.dp-footer-totals-body .dp-summary-total {
    margin-top: auto; background: #fafbfc; padding: 8px 20px;
    margin-left: -20px; margin-right: -20px; border-top: 2px solid #dee2e6; border-bottom: none !important;
}
.dp-journal-table { width: 100%; border-collapse: collapse; font-size: 0.78rem; }
.dp-journal-table thead th { padding: 6px 14px; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #8c919a; background: #fafbfc; border-bottom: 1px solid #e9ecef; }
.dp-journal-table tbody td { padding: 7px 14px; vertical-align: middle; border-bottom: 1px solid #f3f4f6; }
.dp-journal-table tbody tr:last-child td { border-bottom: none; }
.dp-journal-account { font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; font-size: 0.74rem; color: #495057; white-space: nowrap; }
.dp-journal-desc { color: #6c757d; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dp-journal-cc { color: #8c919a; font-size: 0.7rem; white-space: nowrap; }
.dp-journal-amount { font-weight: 600; text-align: right; white-space: nowrap; }
.dp-journal-table tfoot td { padding: 8px 14px; font-weight: 700; font-size: 0.8rem; border-top: 2px solid #dee2e6; background: #fafbfc; }
.dp-identification-band { background: #f8f9fc; border: 1px solid #e2e8f0; border-left: 3px solid #1a73e8; border-radius: 0 6px 6px 0; padding: 14px 20px 12px; margin-bottom: 14px; }
.dp-supplier-info {
    display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px;
    padding: 6px 10px; background: #f7f8fa; border: 1px solid #eaedf1;
    border-radius: 6px; font-size: 0.72rem; animation: dp-info-in .25s ease;
}
@keyframes dp-info-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
.dp-supplier-info-item { display: flex; align-items: center; gap: 4px; }
.dp-supplier-info-item i { color: #adb5bd; font-size: 0.72rem; width: 12px; text-align: center; }
.dp-supplier-info-item .dp-si-label { color: #8c919a; }
.dp-supplier-info-item .dp-si-value { color: #1a1d21; font-weight: 600; }
.dp-supplier-info .dp-si-badge { display: inline-block; padding: 1px 6px; border-radius: 4px; font-size: 0.65rem; font-weight: 600; text-transform: uppercase; }
.dp-si-badge-active   { background: #eefbf0; color: #1d8939; }
.dp-si-badge-inactive { background: #fef1f1; color: #dc3545; }
.dp-section { border: 1px solid #e9ecef; border-radius: 6px; margin-bottom: 16px; overflow: hidden; }
.dp-section > .dp-section-header { border-radius: 0; border-left: 3px solid #1a73e8; }
.dp-section > .dp-form-group { border: none; border-radius: 0; margin-bottom: 0; }
#dp_first_view .panel-hdr { margin-bottom: 10px; }
#dp_second_view .panel-container > .p-3 { padding: 10px 16px !important; }
#dp_second_view .tab-pane.p-3 { padding: 12px 12px 6px !important; }
#dp_second_view .nav-tabs { margin-bottom: 0; }
.dp-form-group .form-label { font-size: 0.78rem; margin-bottom: 3px !important; }
.dp-form-group .form-row { margin-bottom: 0 !important; }
.dp-form-group .col-md-1, .dp-form-group .col-md-2, .dp-form-group .col-md-3,
.dp-form-group .col-md-4, .dp-form-group .col-md-5, .dp-form-group .col-md-12,
.dp-form-group .col { margin-bottom: 8px !important; }
.dp-field-computed { background-color: #f3f4f6 !important; border-color: #e2e5ea !important; cursor: default; }
.dp-field-editable { background-color: #fff !important; border-color: #80bdff !important; box-shadow: inset 0 0 0 1px rgba(26,115,232,.08); }
.dp-inner-label { display: block; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #b0b8c4; margin-bottom: 8px; }
.dp-inner-divider { border: none; border-top: 1px solid #f0f2f5; margin: 10px 0 14px; }
#dp_second_view .panel-hdr { position: relative; z-index: 200; }
#dp_second_view input:disabled,
#dp_second_view textarea:disabled { background-color: #e9ecef !important; color: #6c757d; cursor: not-allowed; opacity: 1; }
#dp_second_view button:disabled { cursor: not-allowed; opacity: 0.5; }
#dp_second_view select2-my .s2m-holder[disabled],
#dp_second_view select2-my[disabled] .s2m-holder { background-color: #e9ecef !important; color: #6c757d !important; cursor: not-allowed; pointer-events: none; }

/* ── electronic-disbursement.css ───────────────────────────────────────────── */

.edf-id-bar { display: flex; align-items: center; gap: 10px; padding: 10px 16px; background: #f0f4ff; border: 0.5px solid #d6e0f5; border-radius: 6px; margin-bottom: 16px; font-size: 0.9rem; }
.edf-id-bar .edf-id-label { color: #6c757d; font-weight: 500; }
.edf-id-bar .edf-id-number { font-weight: 700; color: #1a73e8; font-size: 1rem; }
.edf-id-bar .edf-id-seq { font-size: 0.78rem; font-weight: 500; color: #8c919a; background: #e9ecef; padding: 2px 8px; border-radius: 4px; }
.edf-section { border: 0.5px solid #e9ecef; border-radius: 6px; margin-bottom: 16px; overflow: hidden; }
.edf-section > .edf-section-header { border-radius: 0; margin-bottom: 0; border-left: 3px solid #1a73e8; }
.edf-section > .edf-form-group { border: none; border-radius: 0; margin-bottom: 0; }
.edf-section-header { display: flex; align-items: center; background: #f8f9fa; border-left: 3px solid #1a73e8; border-radius: 0 4px 4px 0; padding: 8px 14px; margin-bottom: 16px; font-weight: 600; font-size: 0.82rem; color: #343a40; letter-spacing: 0.02em; text-transform: uppercase; }
.edf-section-header i { font-size: 0.9rem; color: #1a73e8; margin-right: 8px; }
.edf-form-group { border: 0.5px solid #e9ecef; border-radius: 6px; padding: 16px 20px 8px; margin-bottom: 20px; background: #fff; }
.edf-bank-info { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px; padding: 6px 10px; background: #f0f4ff; border: 1px solid #d6e0f5; border-radius: 6px; font-size: 0.72rem; min-height: 30px; }
.edf-info-empty { color: #c4c8cc; font-style: italic; }
.edf-bank-info .edf-bi-item { display: flex; align-items: center; gap: 4px; }
.edf-bank-info .edf-bi-item i { color: #6c8ebf; font-size: 0.72rem; width: 12px; text-align: center; }
.edf-bank-info .edf-bi-label { color: #8c919a; }
.edf-bank-info .edf-bi-value { color: #1a1d21; font-weight: 600; }
.edf-detail-table { width: 100%; border-collapse: collapse; font-size: 0.78rem; }
.edf-detail-table thead th { padding: 10px 12px; font-size: 0.72rem; font-weight: 600; letter-spacing: .5px; color: #343a40; background: #eee; border-bottom: 1px solid #ccc; }
.edf-detail-table tbody td { padding: 6px 12px; vertical-align: middle; border-bottom: 1px solid #e9ecef; background: #fff; }
.edf-detail-table tbody tr:nth-child(even) td { background: #fafbfe; }
.edf-detail-table tbody tr:hover td { background: rgba(63,106,216,.04); }
.edf-details-empty { text-align: center; color: #adb5bd; padding: 24px !important; font-size: 0.82rem; }
.edf-remove-link, .edf-cancel-link { cursor: pointer; font-size: 0.82rem; transition: color .15s; display: inline-block; padding: 2px 4px; }
.edf-remove-link { color: #c4c8cc; }
.edf-remove-link:hover { color: #1a73e8; }
.edf-cancel-link { color: #c4c8cc; margin-left: 4px; }
.edf-cancel-link:hover { color: #dc3545; }
.edf-summary-panel { border: 0.5px solid #e9ecef; border-radius: 8px; background: #fff; margin-top: 16px; overflow: hidden; }
.edf-summary-header { display: flex; align-items: center; padding: 10px 20px; font-weight: 600; font-size: 0.78rem; color: #343a40; letter-spacing: .02em; text-transform: uppercase; background: #f8f9fa; border-bottom: 0.5px solid #e9ecef; border-left: 3px solid #1a73e8; }
.edf-summary-header i { font-size: 0.9rem; color: #1a73e8; margin-right: 8px; }
.edf-summary-body { display: flex; padding: 0; }
.edf-summary-item { flex: 1; display: flex; flex-direction: column; padding: 12px 16px; border-right: 0.5px solid #f0f1f3; }
.edf-summary-item:last-child { border-right: none; }
.edf-summary-label { font-size: 0.68rem; font-weight: 500; color: #8c919a; }
.edf-summary-value { font-size: 0.9rem; font-weight: 600; color: #1a1d21; margin-top: 2px; }
.edf-summary-item-total { background: #fafbfc; }
.edf-summary-item-total .edf-summary-label { font-weight: 700; color: #495057; }
.edf-summary-item-total .edf-summary-value { font-size: 1.05rem; font-weight: 700; color: #28a745; }
#edf_table_container .custom-row { cursor: pointer; transition: background .12s; }
#edf_table_container .custom-row:hover { background: rgba(26,115,232,.03); }
#edf_table_container .edf-row-expanded { background: #f0f4ff !important; border-left: 3px solid #1a73e8; }
.edf-sub-row { grid-column: 1 / -1; padding: 8px 20px 12px; background: #f8f9fb; border-bottom: 1px solid #e9ecef; animation: edfSlideDown .15s ease-out; }
@keyframes edfSlideDown { from { opacity: 0; max-height: 0; } to { opacity: 1; max-height: 500px; } }
.edf-sub-row .edf-detail-table { margin-bottom: 0; }
.edf-sub-row .edf-detail-table thead th { background: #eef1f5; font-size: 0.68rem; padding: 6px 10px; }
.edf-sub-row .edf-detail-table tbody td { padding: 5px 10px; font-size: 0.75rem; }
.edf-combo-option:hover { background: #f8f9fa; }
.edf-combo-option input[type="radio"] { accent-color: #1a73e8; }

/* ── payment.css ───────────────────────────────────────────────────────────── */

.pmt-section { border: 0.5px solid #e9ecef; border-radius: 6px; margin-bottom: 16px; overflow: hidden; }
.pmt-section > .pmt-section-header { border-radius: 0; margin-bottom: 0; border-left: 3px solid #1a73e8; }
.pmt-section > .pmt-form-group { border: none; border-radius: 0; margin-bottom: 0; }
.pmt-section-header { display: flex; align-items: center; background: #f8f9fa; border-left: 3px solid #1a73e8; border-radius: 0 4px 4px 0; padding: 8px 14px; margin-bottom: 16px; font-weight: 600; font-size: 0.82rem; color: #343a40; letter-spacing: 0.02em; text-transform: uppercase; }
.pmt-section-header i { font-size: 0.9rem; color: #1a73e8; margin-right: 8px; }
.pmt-form-group { border: 0.5px solid #e9ecef; border-radius: 6px; padding: 16px 20px 8px; margin-bottom: 20px; background: #ffffff; }
.pmt-readonly-auto, input.pmt-readonly-auto:disabled, textarea.pmt-readonly-auto:disabled { background-color: #f0f4ff !important; color: #495057; cursor: default; }
@keyframes pmt-autofill-flash { 0% { background-color: #d4edff; } 100% { background-color: #f0f4ff; } }
.pmt-autofilled { animation: pmt-autofill-flash 0.6s ease-out forwards; }
.pmt-details-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 0.82rem; margin-bottom: 0; }
.pmt-details-table thead th { background: #f8f9fa; border-bottom: 2px solid #dee2e6; padding: 6px 8px; font-weight: 600; color: #495057; white-space: nowrap; overflow: hidden; }
.pmt-details-table col.col-num       { width: 4%; }
.pmt-details-table col.col-invoice   { width: 22%; }
.pmt-details-table col.col-date      { width: 11%; }
.pmt-details-table col.col-balance   { width: 10%; }
.pmt-details-table col.col-amount    { width: 18%; }
.pmt-details-table col.col-discount  { width: 14%; }
.pmt-details-table col.col-neto      { width: 13%; }
.pmt-details-table col.col-actions   { width: 8%; }
.pmt-details-table tbody tr { border-bottom: 1px solid #f0f0f0; transition: background 0.15s; }
.pmt-details-table tbody tr:hover { background: #f8f9ff; }
.pmt-details-table tbody td { padding: 4px 6px; vertical-align: middle; overflow: hidden; }
.pmt-details-table .pmt-amount-input, .pmt-details-table .pmt-discount-input { min-width: 0; width: 100%; }
.pmt-details-table .pmt-amount-input { width: 110px; text-align: right; font-weight: 500; }
.pmt-details-table .pmt-balance-after { font-weight: 600; color: #28a745; }
.pmt-details-table .pmt-balance-after.negative { color: #dc3545; }
.pmt-details-table .pmt-remove-btn { background: none; border: none; color: #dc3545; cursor: pointer; padding: 2px 6px; border-radius: 3px; transition: background 0.15s; }
.pmt-details-table .pmt-remove-btn:hover { background: #ffeaea; }
.pmt-details-empty { text-align: center; color: #6c757d; padding: 20px 0; font-size: 0.85rem; }
.pmt-total-bar { display: flex; justify-content: flex-end; align-items: baseline; gap: 16px; padding: 12px 20px; background: #f8f9fa; border: 1px solid #dee2e6; border-radius: 0 0 6px 6px; margin-top: -1px; }
.pmt-total-bar .pmt-total-label { font-weight: 600; color: #343a40; font-size: 0.9rem; }
.pmt-total-bar .pmt-total-value { font-size: 1.3rem; font-weight: 700; color: #1a73e8; min-width: 120px; text-align: right; }
.pmt-id-bar { display: flex; align-items: center; gap: 10px; padding: 8px 16px; background: #eef3ff; border: 1px solid #c7d9f8; border-radius: 6px; margin-bottom: 20px; font-size: 0.9rem; }
.pmt-id-bar .pmt-id-label { color: #6c757d; font-weight: 500; }
.pmt-id-bar .pmt-id-number { font-weight: 700; color: #1a73e8; font-size: 1rem; }
.pmt-id-bar .pmt-id-seq { font-size: 0.78rem; font-weight: 500; color: #8c919a; background: #f0f1f3; padding: 2px 8px; border-radius: 4px; letter-spacing: 0.02em; }
.pmt-add-row { background: #eef3ff !important; border-left: 3px solid #1a73e8; }
.pmt-add-row:hover { background: #e8f0fe !important; }
.pmt-add-row .pmt-add-doc-select { border-color: #c7d9f8; }
.pmt-add-row .pmt-add-doc-select:focus { border-color: #1a73e8; box-shadow: 0 0 0 0.15rem rgba(26,115,232,.2); }
.pmt-modal-search-bar { display: flex; justify-content: flex-end; padding: 8px 12px; background: #fff; }
.pmt-modal-search-bar .pmt-modal-search-group { border: 1px solid #ccc; border-radius: 4px; overflow: hidden; }
.pmt-modal-search-bar .pmt-modal-search-group .input-group-text { background: #fff; border: none; color: #666; font-size: 14px; }
.pmt-modal-search-bar .pmt-modal-search-group .form-control { border: none; box-shadow: none; font-size: 13px; }
.pmt-modal-search-bar .pmt-modal-search-group .form-control:focus { box-shadow: none; }
#dp_lst_cnt table tbody tr:nth-child(even) { background-color: #fafbfe; }
#dp_lst_cnt table tbody tr:hover { background-color: rgba(63,106,216,.04); }
#dp_lst_cnt table tbody tr.selected { background: #eef3ff !important; }
#dp_lst_cnt table input[type="checkbox"] { accent-color: #1a73e8; }
#pmt_details_table tfoot, #pmt_details_table tfoot td, #pmt_details_table tfoot strong, #pmt_details_table tfoot span { font-weight: 700 !important; }
#pmt_details_table tbody tr:nth-child(even) { background-color: #fafbfe; }
#pmt_details_table tbody tr:hover { background-color: rgba(63,106,216,.04); }
.pmt-doc-modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 1055; align-items: center; justify-content: center; }
.pmt-doc-modal-overlay.active { display: flex; }
.pmt-doc-modal { background: #fff; border-radius: 8px; width: 92%; max-width: 860px; max-height: 85vh; display: flex; flex-direction: column; box-shadow: 0 8px 32px rgba(0,0,0,.18); }
.pmt-doc-modal-header { display: flex; justify-content: space-between; align-items: center; padding: 14px 20px; border-bottom: none; background: linear-gradient(135deg, #1a73e8 0%, #0d5bbf 100%); border-radius: 8px 8px 0 0; }
.pmt-doc-modal-header h5 { margin: 0; font-size: 1rem; font-weight: 600; color: #ffffff; }
.pmt-doc-modal-header .btn-outline-danger { border-color: rgba(255,255,255,.6); color: rgba(255,255,255,.9); background: transparent; }
.pmt-doc-modal-header .btn-outline-danger:hover { background: rgba(255,255,255,.15); border-color: #fff; color: #fff; }
.pmt-doc-modal-body { flex: 1; overflow-y: auto; padding: 0; }
.pmt-doc-modal-footer { display: flex; justify-content: flex-end; align-items: center; gap: 12px; padding: 14px 20px; border-top: 1px solid #dee2e6; background: #f8f9fa; border-radius: 0 0 8px 8px; }
.pmt-doc-modal-footer #pmt_doc_modal_selected_count { font-size: 0.82rem; color: #6c757d; flex: 1; }
.pmt-doc-modal-table { width: 100%; border-collapse: collapse; font-size: 0.83rem; }
.pmt-doc-modal-table thead th { background: #f0f4ff; border-bottom: 2px solid #c7d9f8; padding: 7px 10px; font-weight: 600; color: #343a40; white-space: nowrap; position: sticky; top: 0; }
.pmt-doc-modal-table tbody tr { border-bottom: 1px solid #f0f0f0; transition: background .12s; }
.pmt-doc-modal-table tbody tr:hover { background: #f5f8ff; }
.pmt-doc-modal-table tbody tr.selected { background: #e8f0fe; }
.pmt-doc-modal-table tbody td { padding: 6px 10px; vertical-align: middle; }
.pmt-doc-modal-table .pmt-modal-amount-input { width: 110px; text-align: right; }
.pmt-doc-modal-table .pmt-modal-discount-input { width: 80px; text-align: right; }
.pmt-details-table .pmt-action-btn { background: none; border: none; cursor: pointer; padding: 2px 5px; border-radius: 3px; font-size: 0.8rem; transition: background .15s; }
.pmt-details-table .pmt-edit-btn { color: #0d6efd; }
.pmt-details-table .pmt-edit-btn:hover { background: #e8f0fe; }
.pmt-details-table .pmt-neto-cell { font-weight: 600; color: #343a40; }
@keyframes pmt-row-enter { from { opacity: 0; transform: translateY(-6px); background: #d4edff; } 60% { background: #d4edff; } to { opacity: 1; transform: translateY(0); background: transparent; } }
.pmt-row-enter { animation: pmt-row-enter 0.4s ease-out forwards; }
@keyframes pmt-modal-in { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
@keyframes pmt-overlay-in { from { opacity: 0; } to { opacity: 1; } }
.pmt-doc-modal-overlay.active { animation: pmt-overlay-in 0.2s ease-out forwards; }
.pmt-doc-modal-overlay.active .pmt-doc-modal { animation: pmt-modal-in 0.22s ease-out forwards; }
.pmt-remove-link { cursor: pointer; color: #c4c8cc; font-size: 0.82rem; transition: color .15s; }
.pmt-remove-link:hover { color: #dc3545; }
.pmt-detail-table { width: 100%; border-collapse: collapse; font-size: 0.78rem; }
.pmt-detail-table thead th { padding: 10px 12px; font-size: 0.72rem; font-weight: 600; letter-spacing: .5px; color: #343a40; background: #eee; border-bottom: 1px solid #ccc; }
.pmt-detail-table tbody td { padding: 6px 12px; vertical-align: middle; border-bottom: 1px solid #e9ecef; background: #fff; }
.pmt-detail-table tbody tr:nth-child(even) td { background: #fafbfe; }
.pmt-detail-table tbody tr:hover td { background: rgba(63,106,216,.04); }
.pmt-detail-table tfoot td { padding: 0; background: transparent; border: none; }
.pmt-summary-panel { border: 0.5px solid #e9ecef; border-radius: 8px; background: #fff; margin-top: 16px; overflow: hidden; }
.pmt-summary-header { display: flex; align-items: center; padding: 10px 20px; font-weight: 600; font-size: 0.78rem; color: #343a40; letter-spacing: .02em; text-transform: uppercase; background: #f8f9fa; border-bottom: 0.5px solid #e9ecef; border-left: 3px solid #1a73e8; }
.pmt-summary-header i { font-size: 0.9rem; color: #1a73e8; margin-right: 8px; }
.pmt-footer-row { display: flex; gap: 0; }
.pmt-footer-col { min-width: 0; }
.pmt-footer-journal { flex: 7; border-right: 0.5px solid #dee2e6; margin-right: 12px; display: flex; flex-direction: column; }
.pmt-footer-journal #pmt_journal_body { flex: 1; display: flex; flex-direction: column; }
.pmt-footer-journal .pmt-journal-table { flex: 1; }
.pmt-footer-totals { flex: 3; display: flex; flex-direction: column; }
.pmt-footer-col-title { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #8c919a; padding: 10px 14px 6px; }
.pmt-footer-totals-body { display: flex; flex-direction: column; flex: 1; padding: 6px 20px 0; }
.pmt-summary-row { display: flex; justify-content: space-between; align-items: center; padding: 4px 0; font-size: 0.8rem; border-bottom: 1px dashed #f0f1f3; }
.pmt-summary-row:last-child { border-bottom: none; }
.pmt-summary-row .label { color: #8c919a; font-weight: 500; }
.pmt-summary-row .value { font-weight: 600; color: #1a1d21; font-size: 0.82rem; }
.pmt-footer-totals-body .pmt-summary-total { margin-top: auto; background: #fafbfc; padding: 8px 20px; margin-left: -20px; margin-right: -20px; border-top: 2px solid #dee2e6; border-bottom: none !important; }
.pmt-summary-total .label { font-weight: 700; color: #1a1d21; }
.pmt-summary-total .value { font-weight: 700; font-size: 0.92rem; }
.pmt-journal-table { width: 100%; border-collapse: collapse; font-size: 0.78rem; }
.pmt-journal-table thead th { padding: 6px 14px; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #8c919a; background: #fafbfc; border-bottom: 0.5px solid #e9ecef; }
.pmt-journal-table tbody td { padding: 7px 14px; vertical-align: middle; border-bottom: 0.5px solid #f3f4f6; }
.pmt-journal-table tbody tr:last-child td { border-bottom: none; }
.pmt-journal-account { font-family: 'SFMono-Regular', Consolas, monospace; font-size: 0.74rem; color: #495057; white-space: nowrap; }
.pmt-journal-desc { color: #6c757d; }
.pmt-journal-amount { font-weight: 600; text-align: right; white-space: nowrap; }
.pmt-journal-table tfoot td { padding: 8px 14px; font-weight: 700; font-size: 0.8rem; border-top: 2px solid #dee2e6; background: #fafbfc; }
.pmt-balance-text { display: inline-flex; align-items: center; gap: 4px; padding: 6px 16px; border-radius: 20px; font-size: 0.76rem; font-weight: 600; }
.pmt-balance-ok    { background: #eefbf0; color: #1d8939; }
.pmt-balance-empty { background: #f7f8fa; color: #adb5bd; }
.pmt-supplier-info { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px; padding: 6px 10px; background: #f7f8fa; border: 1px solid #eaedf1; border-radius: 6px; font-size: 0.72rem; min-height: 30px; }
.pmt-info-empty { color: #c4c8cc; font-style: italic; }
.pmt-supplier-info .pmt-si-item { display: flex; align-items: center; gap: 4px; }
.pmt-supplier-info .pmt-si-item i { color: #adb5bd; font-size: 0.72rem; width: 12px; text-align: center; }
.pmt-supplier-info .pmt-si-label { color: #8c919a; }
.pmt-supplier-info .pmt-si-value { color: #1a1d21; font-weight: 600; }
.pmt-supplier-info .pmt-si-badge { display: inline-block; padding: 1px 6px; border-radius: 4px; font-size: 0.65rem; font-weight: 600; text-transform: uppercase; }
.pmt-si-badge-active   { background: #eefbf0; color: #1d8939; }
.pmt-si-badge-inactive { background: #fef1f1; color: #dc3545; }
.pmt-discount-badge { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 12px; font-size: 0.72rem; font-weight: 700; background: #FAEEDA; color: #854F0B; border: 1px solid #EF9F27; vertical-align: middle; margin-left: 8px; }
.pmt-dist-bar { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px; background: #FEFAF3; border-bottom: 0.5px solid #f0e6c8; }
.pmt-dist-bar-label { font-size: 11px; font-weight: 600; color: #854F0B; display: flex; align-items: center; }
.pmt-dist-bar-controls { display: flex; align-items: center; gap: 8px; }
.pmt-dist-input { width: 150px !important; text-align: right; font-weight: 600; font-size: 12px; border: 0.5px solid #d6e0f5 !important; border-radius: 6px !important; }
.pmt-dist-input:focus { box-shadow: 0 0 0 2px rgba(26,115,232,.15) !important; border-color: #1a73e8 !important; }
.pmt-modal-table { width: 100%; border-collapse: collapse; font-size: 0.78rem; }
.pmt-modal-table thead th { padding: 8px 10px; font-size: 0.7rem; font-weight: 600; letter-spacing: .4px; color: #495057; background: #f8f9fa; border-bottom: 0.5px solid #e9ecef; }
.pmt-modal-table tbody td { padding: 6px 10px; vertical-align: middle; border-bottom: 0.5px solid #f0f1f3; }
.pmt-modal-table tbody tr:nth-child(even) td { background: #fafbfe; }
.pmt-modal-table tbody tr:hover td { background: rgba(26,115,232,.04); }
.pmt-modal-amount-input { width: 95px; display: inline-block; text-align: right; padding: 3px 8px; height: auto; line-height: 1.4; font-size: 0.78rem; font-weight: 600; color: #28a745; border: 0.5px solid #e9ecef; border-radius: 4px; outline: none; }
.pmt-modal-amount-input:focus { border-color: #1a73e8; box-shadow: 0 0 0 2px rgba(26,115,232,.12); }
.pmt-modal-amount-input:disabled { background: #f7f8fa; color: #adb5bd; cursor: default; }
.pmt-modal-footer { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px; border-top: 0.5px solid #e9ecef; background: #fafbfc; }
.pmt-modal-footer-left { display: flex; align-items: center; gap: 12px; }
.pmt-modal-footer-right { display: flex; align-items: center; gap: 8px; }
.pmt-modal-footer-count { font-size: 11px; font-weight: 500; color: #6c757d; flex: 1; }
.pmt-modal-footer-total { display: flex; align-items: center; gap: 6px; }
.pmt-modal-footer-total-label { font-size: 11px; font-weight: 600; color: #495057; }
.pmt-modal-btn { display: inline-flex; align-items: center; justify-content: center; padding: 6px 16px; border-radius: 4px; font-size: 12px; font-weight: 600; cursor: pointer; border: 1px solid transparent; transition: all .15s; line-height: 1.4; }
.pmt-modal-btn-cancel { color: #6c757d; background: #fff; border-color: #dee2e6; }
.pmt-modal-btn-cancel:hover { background: #f0f1f3; border-color: #cdd1d6; }
.pmt-modal-btn-confirm { color: #28a745; background: #fff; border-color: #28a745; }
.pmt-modal-btn-confirm:hover { background: #28a745; color: #fff; }
.pmt-modal-btn-danger { color: #dc3545; background: #fff; border-color: #dc3545; }
.pmt-modal-btn-danger:hover { background: #dc3545; color: #fff; }
.pmt-modal-btn-dist { color: #17a2b8; background: #fff; border-color: #17a2b8; }
.pmt-modal-btn-dist:hover { background: #17a2b8; color: #fff; }
.pmt-modal-footer-total-value { font-size: 1rem; font-weight: 700; color: #28a745; min-width: 80px; text-align: right; }
.pmt-amount-green { color: #28a745; font-weight: 600; }
.pmt-details-table .pmt-amount-input.pmt-amount-green { color: #28a745; font-weight: 600; }
.pmt-modal-neto-label { font-size: 0.85rem; font-weight: 600; color: #343a40; }
.pmt-modal-neto-value { font-size: 1rem; font-weight: 700; color: #28a745; min-width: 90px; text-align: right; }
.pmt-bank-info { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px; padding: 6px 10px; background: #f0f4ff; border: 1px solid #d6e0f5; border-radius: 6px; font-size: 0.72rem; min-height: 30px; }
.pmt-bank-info .pmt-bi-item { display: flex; align-items: center; gap: 4px; }
.pmt-bank-info .pmt-bi-item i { color: #6c8ebf; font-size: 0.72rem; width: 12px; text-align: center; }
.pmt-bank-info .pmt-bi-label { color: #8c919a; }
.pmt-bank-info .pmt-bi-value { color: #1a1d21; font-weight: 600; }

/* ── report-606.css ────────────────────────────────────────────────────────── */

.r606-toolbar { display: flex; align-items: flex-end; gap: 12px; padding: 16px 20px; background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 6px; margin-bottom: 16px; }
.r606-toolbar .form-group { margin-bottom: 0; }
.r606-toolbar label { font-size: 0.78rem; font-weight: 600; color: #343a40; margin-bottom: 4px; display: block; }
.r606-kpis { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.r606-kpi { flex: 1; min-width: 160px; padding: 12px 16px; background: #fff; border: 1px solid #e9ecef; border-radius: 6px; border-left: 3px solid #1a73e8; }
.r606-kpi-label { font-size: 0.68rem; font-weight: 500; color: #8c919a; text-transform: uppercase; letter-spacing: 0.03em; }
.r606-kpi-value { font-size: 1rem; font-weight: 700; color: #1a1d21; margin-top: 2px; }
.r606-kpi-count .r606-kpi-value { color: #1a73e8; }
.r606-table { width: 100%; border-collapse: collapse; font-size: 0.75rem; }
.r606-table thead th { padding: 8px 6px; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.4px; color: #495057; background: #f8f9fa; border-bottom: 1.5px solid #dee2e6; white-space: nowrap; position: sticky; top: 0; z-index: 1; }
.r606-table tbody td { padding: 5px 6px; vertical-align: middle; border-bottom: 1px solid #f0f1f3; }
.r606-table tbody tr:nth-child(even) td { background: #fafbfe; }
.r606-table tbody tr:hover td { background: rgba(26,115,232,.04); cursor: pointer; }
.r606-table .text-right  { text-align: right; }
.r606-table .text-center { text-align: center; }
.r606-table tfoot td { padding: 8px 6px; font-weight: 700; font-size: 0.78rem; border-top: 2px solid #dee2e6; background: #f8f9fa; }
.r606-empty { text-align: center; color: #adb5bd; padding: 40px; font-size: 0.85rem; }
.r606-empty i { font-size: 2rem; display: block; margin-bottom: 8px; }

/* ── supplier-account-statement.css ───────────────────────────────────────── */

.sas-supplier-bar { margin-bottom: 24px; display: flex; align-items: center; justify-content: space-between; }
.sas-supplier-input-group { display: flex; max-width: 440px; }
.sas-supplier-input-group .form-control { border-radius: 8px 0 0 8px; background: #f7f8fa; font-size: .88rem; border-color: #e0e3e8; cursor: pointer; }
.sas-supplier-input-group .form-control:focus { background: #fff; }
.sas-supplier-input-group .btn { border-radius: 0 8px 8px 0; padding: 6px 16px; font-size: .88rem; }
.sas-skeleton { animation: sas-fade-in .3s ease; }
.sas-skel-card { background: #fff; border: 1px solid #eaedf1; border-radius: 14px; padding: 16px 24px; }
.sas-skel-line { background: linear-gradient(90deg, #eef0f3 25%, #f7f8fa 50%, #eef0f3 75%); background-size: 200% 100%; animation: sas-shimmer 1.5s ease-in-out infinite; border-radius: 6px; }
.sas-skel-circle { background: linear-gradient(90deg, #eef0f3 25%, #f7f8fa 50%, #eef0f3 75%); background-size: 200% 100%; animation: sas-shimmer 1.5s ease-in-out infinite; border-radius: 50%; flex-shrink: 0; }
@keyframes sas-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
@keyframes sas-fade-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes sas-fade-out { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(-6px); } }
.sas-skeleton-exit { animation: sas-fade-out .25s ease forwards; pointer-events: none; }
#sas_dashboard { animation: sas-fade-in .4s ease; }
.sas-supplier-info { margin-bottom: 16px; }
.sas-supplier-card { display: flex; flex-direction: row; background: #fff; border: 0.5px solid #e9ecef; border-radius: 12px; overflow: hidden; }
.sas-supplier-card-accent { width: 4px; flex-shrink: 0; background: #E8820C; }
.sas-supplier-card-body { flex: 1; padding: 14px 20px; }
.sas-supplier-card-header { margin-bottom: 0; }
.sas-supplier-card-name { font-size: 1.05rem; font-weight: 700; color: #1a1d21; line-height: 1.3; display: flex; align-items: center; gap: 8px; }
.sas-supplier-card-code { font-size: 11px; font-weight: 500; color: #6c757d; margin-top: 2px; }
.sas-supplier-card-sep { height: 0.5px; background: #e9ecef; margin: 10px 0; }
.sas-supplier-card-grid { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.sas-supplier-card-item { display: flex; align-items: center; gap: 8px; }
.sas-supplier-card-item-icon { width: 26px; height: 26px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 11px; flex-shrink: 0; background: #f0f1f3; color: #6c757d; }
.sas-supplier-card-item-body { display: flex; flex-direction: column; }
.sas-supplier-card-item-label { font-size: 9px; font-weight: 500; color: #8c919a; }
.sas-supplier-card-item-value { font-size: 12px; font-weight: 600; color: #1a1d21; }
.sas-supplier-status { display: inline-block; padding: 2px 8px; border-radius: 6px; font-size: 9px; font-weight: 600; text-transform: uppercase; }
.sas-supplier-status-active   { background: #EAF3DE; color: #3B6D11; }
.sas-supplier-status-inactive { background: #FCEBEB; color: #A32D2D; }
.sas-hero { display: flex; align-items: stretch; gap: 0; background: #fff; border: 1px solid #eaedf1; border-radius: 14px; margin-bottom: 16px; overflow: hidden; }
.sas-hero-balance { flex-shrink: 0; width: 510px; display: flex; flex-direction: row; overflow: hidden; border-right: 1px solid #eaedf1; }
.sas-hero-balance-accent { width: 4px; flex-shrink: 0; background: #E8820C; }
.sas-hero-balance-body { flex: 1; padding: 18px 28px; }
.sas-hero-balance-label { font-size: 11px; font-weight: 500; color: #6c757d; margin-bottom: 8px; }
.sas-hero-balance-pill { display: flex; align-items: baseline; justify-content: center; gap: 6px; padding: 8px 0; }
.sas-hero-balance-amount { font-size: 40px; font-weight: 700; color: #A32D2D; line-height: 1.1; }
.sas-hero-balance-decimals { font-size: 24px; font-weight: 500; }
.sas-hero-balance-currency { font-size: 14px; font-weight: 500; color: #791F1F; }
.sas-hero-balance-children { margin-top: 10px; }
.sas-hero-balance-sep { height: 0.5px; background: #e9ecef; margin-bottom: 8px; }
.sas-hero-balance-fork { display: flex; flex-direction: column; align-items: center; }
.sas-hero-balance-stem { width: 0.5px; height: 8px; background: #cdd1d6; }
.sas-hero-balance-bar { width: 60%; height: 0.5px; background: #cdd1d6; }
.sas-hero-balance-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 4px; }
.sas-bchild { padding: 4px 8px; text-align: center; }
.sas-bchild-label { font-size: 9px; font-weight: 600; margin-bottom: 2px; }
.sas-bchild-value { font-size: 22px; font-weight: 700; line-height: 1.2; }
.sas-bchild-transit .sas-bchild-label { color: #633806; }
.sas-bchild-transit .sas-bchild-value { color: #854F0B; }
.sas-bchild-available .sas-bchild-label { color: #0C447C; }
.sas-bchild-available .sas-bchild-value { color: #185FA5; }
.sas-hero-kpis { flex: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 14px 16px; align-content: center; }
.sas-kpi { display: flex; flex-direction: row; border: 0.5px solid #e9ecef; border-radius: 12px; overflow: hidden; background: #fff; }
.sas-kpi-accent { width: 4px; flex-shrink: 0; background: #E8820C; }
.sas-kpi-body { flex: 1; padding: 10px 14px; }
.sas-kpi-header { display: flex; align-items: center; justify-content: space-between; }
.sas-kpi-label { font-size: 11px; font-weight: 500; color: #6c757d; line-height: 1.3; }
.sas-kpi-icon { width: 26px; height: 26px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 12px; flex-shrink: 0; }
.sas-kpi-icon-invoiced { background: #FAEEDA; color: #854F0B; }
.sas-kpi-icon-paid     { background: #EAF3DE; color: #3B6D11; }
.sas-kpi-icon-ret      { background: #FCEBEB; color: #A32D2D; }
.sas-kpi-icon-count    { background: #E6F1FB; color: #185FA5; }
.sas-kpi-sep { height: 0.5px; background: #e9ecef; margin: 8px 0; }
.sas-kpi-value { font-size: 1.15rem; font-weight: 500; color: #1a1d21; line-height: 1.2; }
.sas-hero-gauge-area { flex-shrink: 0; display: flex; align-items: center; gap: 10px; padding: 16px 20px; }
.sas-hero-gauge { width: 76px; height: 76px; position: relative; flex-shrink: 0; }
.sas-hero-gauge svg { transform: rotate(-90deg); }
.sas-hero-gauge-center { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); text-align: center; pointer-events: none; }
.sas-hero-gauge-pct { font-size: 1rem; font-weight: 800; color: #1a1d21; line-height: 1; }
.sas-hero-gauge-label { font-size: .48rem; color: #adb5bd; text-transform: uppercase; letter-spacing: .04em; font-weight: 500; margin-top: 2px; }
.sas-hero-gauge-text { font-size: .68rem; color: #6c757d; max-width: 110px; line-height: 1.3; }
.sas-charts-row { display: flex; gap: 16px; margin-bottom: 16px; }
.sas-chart-card { background: #fff; border: 1px solid #eaedf1; border-radius: 14px; overflow: hidden; flex: 1; }
.sas-chart-pie  { flex: 0 0 510px; }
.sas-chart-bars { flex: 1; }
.sas-chart-header { padding: 12px 20px; border-bottom: 1px solid #eaedf1; border-left: 4px solid #E8820C; }
.sas-chart-title { font-size: .82rem; font-weight: 600; color: #1a1d21; }
#sas_pie_chart { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 12px 16px; }
#sas_pie_chart .sas-pie-legend { display: flex; flex-direction: column; gap: 6px; font-size: 11px; }
#sas_pie_chart .sas-pie-legend-item { display: flex; align-items: center; gap: 6px; }
#sas_pie_chart .sas-pie-legend-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
#sas_pie_chart .sas-pie-legend-label { color: #8c919a; }
#sas_pie_chart .sas-pie-legend-value { font-weight: 700; color: #1a1d21; margin-left: auto; }
#sas_pie_chart .sas-pie-arc { transition: opacity .2s; }
#sas_pie_chart .sas-pie-arc:hover { opacity: .75; }
#sas_balance_chart { padding: 10px 16px 8px; }
#sas_balance_chart .bar-group text.bar-label { font-size: 11px; fill: #495057; font-weight: 500; }
#sas_balance_chart .bar-group text.bar-value { font-size: 10px; fill: #8c919a; font-weight: 600; }
#sas_balance_chart .bar-rect { rx: 4; transition: opacity .2s; }
#sas_balance_chart .bar-rect:hover { opacity: .8; }
.sas-table-card { background: #fff; border: 1px solid #eaedf1; border-radius: 14px; overflow: hidden; }
.sas-table-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; border-bottom: 1px solid #eaedf1; }
.sas-table-title { font-size: .92rem; font-weight: 700; color: #1a1d21; }
.sas-details-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.sas-details-table thead th { background: #f7f8fa; padding: 11px 10px; font-weight: 700; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: #6c757d; border-bottom: 2px solid #dee2e6; white-space: nowrap; }
.sas-details-table tbody tr.sas-detail-row { border-bottom: 1px solid #eaedf1; cursor: pointer; background: #fff; }
.sas-details-table tbody tr.sas-detail-row:hover { background: #fffde7; }
.sas-details-table tbody tr.sas-detail-row td { padding: 6px 10px; vertical-align: middle; color: #1a1d21; font-weight: 700; font-size: 11px; }
.sas-details-table .text-right  { text-align: right; }
.sas-details-table .text-center { text-align: center; }
.sas-details-table .sas-cell-ncf { font-weight: 700; color: #1a1d21; font-size: 12.5px; }
.sas-details-table thead th:first-child,
.sas-details-table tbody td:first-child { text-align: right; padding-right: 4px; }
.sas-expand-btn { background: none; border: none; cursor: pointer; color: #adb5bd; padding: 3px 8px; border-radius: 4px; font-size: .88rem; transition: all .15s; }
.sas-expand-btn:hover { color: #1a73e8; background: #eef3ff; }
.sas-detail-row.sas-row-expanded .sas-expand-btn { color: #1a73e8; }
.sas-amount-green { color: #28a745; font-weight: 600; }
.sas-amount-red   { color: #dc3545; font-weight: 700; }
.sas-amount-amber { color: #e67e22; font-weight: 600; }
.sas-amount-blue  { color: #1a73e8; font-weight: 700; }
.sas-ncf-null     { color: #c0c4cc; font-style: italic; font-weight: 400; }
.sas-badge { display: inline-block; padding: 3px 10px; border-radius: 6px; font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.sas-badge-red    { background: #fef1f1; color: #dc3545; }
.sas-badge-yellow { background: #fffbeb; color: #d4a017; }
.sas-badge-orange { background: #fff4e5; color: #e67e22; }
.sas-badge-green  { background: #eefbf0; color: #1d8939; }
.sas-badge-blue   { background: #eef3ff; color: #1a73e8; }
.sas-badge-purple { background: #f5f0ff; color: #7c3aed; }
.sas-details-table tbody tr.sas-child-row { border-bottom: 1px solid #f3f4f6; cursor: default; background: #fafbfc; }
.sas-details-table tbody tr.sas-child-row:hover { background: #fffde7; }
.sas-details-table tbody tr.sas-child-row td { padding: 5px 10px; vertical-align: middle; color: #8c919a; font-weight: 400; font-size: 11px; }
.sas-details-table tbody tr.sas-child-transit { border-left: 2px solid #e67e22; }
.sas-details-table tbody tr.sas-child-transit:hover { background: #fffde7; }
.sas-child-arrow { color: #E8820C; font-size: 13px; }
.sas-child-arrow i { transform: scaleX(-1); display: inline-block; }
.sas-transit-note-cell { padding: 6px 14px !important; background: #fffbeb; font-size: 0.72rem; color: #8c6d1f; border-bottom: 1px solid #f0e6c8; }
.sas-aging-note { padding: 6px 12px; font-size: 0.72rem; color: #8c919a; border-top: 1px solid #f0f1f3; }
.sas-pagination { display: flex; justify-content: space-between; align-items: center; padding: 12px 20px; border-top: 1px solid #eaedf1; }
.sas-pagination-info { font-size: .8rem; color: #8c919a; }
.sas-pagination-btns { display: flex; gap: 6px; }
.sas-pagination-btns .btn { font-size: .8rem; padding: 4px 14px; border-radius: 6px; }
.sas-empty-state { text-align: center; color: #8c919a; padding: 48px 0; font-size: .88rem; }
.sas-empty-state i { display: block; margin-bottom: 8px; color: #c0c4cc; font-size: 2rem; }
.sas-print-modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.35); z-index: 9999; display: flex; align-items: center; justify-content: center; }
.sas-print-modal { background: #fff; border-radius: 12px; width: 420px; overflow: hidden; border: 0.5px solid #e9ecef; }
.sas-print-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; border-bottom: 0.5px solid #e9ecef; border-left: 4px solid #E8820C; font-size: .88rem; font-weight: 600; color: #1a1d21; }
.sas-print-modal-close { background: none; border: none; cursor: pointer; color: #8c919a; font-size: 1rem; padding: 0; }
.sas-print-modal-close:hover { color: #dc3545; }
.sas-print-modal-body { padding: 16px 20px; }
.sas-print-modal-field { margin-bottom: 12px; }
.sas-print-modal-field label { display: block; font-size: 11px; font-weight: 500; color: #6c757d; margin-bottom: 4px; }
.sas-print-modal-row { display: flex; gap: 12px; }
.sas-print-modal-row .sas-print-modal-field { flex: 1; }
.sas-print-modal-footer { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 20px; border-top: 0.5px solid #e9ecef; background: #fafbfc; }
@media (max-width: 992px) {
    .sas-hero { flex-wrap: wrap; gap: 16px; padding: 20px; }
    .sas-hero-details { border-left: none; padding-left: 0; border-top: 1px solid #eaedf1; padding-top: 12px; flex-basis: 100%; }
    .sas-charts-row { flex-direction: column; }
    .sas-chart-pie { flex: unset; }
}
@media (max-width: 768px) {
    .sas-supplier-input-group { max-width: 100%; }
    .sas-details-table { font-size: 11px; }
}

/* ── generalAccountSettings.css ───────────────────────────────────────────── */

.gas-access-denied { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 60px 24px; text-align: center; color: #6c757d; }
.gas-access-denied__icon { font-size: 3.5rem; color: #dee2e6; margin-bottom: 20px; }
.gas-access-denied__title { font-size: 1.15rem; font-weight: 600; color: #495057; margin-bottom: 8px; }
.gas-access-denied__subtitle { font-size: 0.95rem; color: #868e96; margin: 0; }
.gas-tabs-nav { margin-bottom: 0; border-bottom: 2px solid #dee2e6; }
.gas-tabs { display: flex; flex-wrap: wrap; gap: 2px; list-style: none; margin: 0; padding: 0; }
.gas-tab { padding: 9px 18px; cursor: pointer; font-size: 0.875rem; font-weight: 500; color: #6c757d; border: 1px solid transparent; border-bottom: none; border-radius: 4px 4px 0 0; transition: color .15s, background-color .15s, border-color .15s; user-select: none; white-space: nowrap; }
.gas-tab:hover { color: #495057; background-color: #f8f9fa; border-color: #dee2e6 #dee2e6 transparent; }
.gas-tab--active { color: var(--primary-color, #007bff); background-color: #fff; border-color: #dee2e6 #dee2e6 #fff; font-weight: 600; margin-bottom: -2px; border-bottom: 2px solid #fff; }
.gas-tab-content { padding: 20px 0; min-height: 200px; position: relative; }
.gas-module-content { display: flex; flex-wrap: wrap; gap: 24px; }
.gas-section { flex: 1 1 340px; background: #fff; border: 1px solid #dee2e6; border-radius: 6px; overflow: hidden; box-shadow: 0 1px 4px 0 rgba(0,0,0,.06); }
.gas-section__title { display: flex; align-items: center; gap: 8px; margin: 0; padding: 12px 16px; font-size: 0.875rem; font-weight: 600; color: #495057; background-color: #f8f9fa; border-bottom: 1px solid #dee2e6; text-transform: uppercase; letter-spacing: 0.5px; }
.gas-section__icon { color: var(--primary-color, #007bff); font-size: 0.85rem; }
.gas-section__body { padding: 12px 16px; }
.gas-field-row { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid #f1f3f5; }
.gas-field-row:last-child { border-bottom: none; }
.gas-field-row__label { flex: 0 0 220px; max-width: 220px; font-size: 0.84rem; color: #495057; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0; }
.gas-field-row__controls { display: flex; align-items: center; gap: 6px; flex: 1; }
.gas-input { flex: 1; max-width: 140px; font-size: 0.875rem; height: 30px; padding: 4px 8px; }
.gas-input:focus { box-shadow: 0 0 0 0.18rem rgba(0,123,255,.25); }
.gas-save-btn { flex-shrink: 0; width: 30px; height: 30px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; font-size: 0.8rem; transition: opacity .15s; }
.gas-save-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.gas-save-btn:not(:disabled):hover { opacity: 0.85; }
.gl-table-loader { position: absolute; inset: 0; background: rgba(255,255,255,.82); display: flex; align-items: center; justify-content: center; z-index: 10; border-radius: inherit; }
.gl-table-loader__inner { display: flex; flex-direction: column; align-items: center; gap: 8px; color: #6c757d; }
.gl-table-loader__icon { font-size: 1.6rem; color: var(--primary-color, #007bff); }
.gl-table-loader__text { font-size: 0.8rem; font-weight: 500; }
@media (max-width: 768px) {
    .gas-module-content { flex-direction: column; }
    .gas-field-row { flex-wrap: wrap; }
    .gas-field-row__label { flex: 0 0 100%; max-width: 100%; }
    .gas-input { max-width: none; }
}

/* ── associate-loan.css ────────────────────────────────────────────────────── */

.asc-avatar { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background-color: var(--primary, #1e88e5); color: #fff; font-size: 0.75rem; font-weight: 600; flex-shrink: 0; }
.asc-summary-cards { display: flex; gap: 1rem; margin-bottom: 1.25rem; flex-wrap: wrap; }
.asc-card { flex: 1 1 140px; background: #fff; border-radius: 8px; border: 1px solid #e4e7eb; padding: 0.85rem 1rem; display: flex; flex-direction: column; gap: 0.2rem; min-width: 130px; }
.asc-card__label { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: #6b7280; font-weight: 600; }
.asc-card__value { font-size: 1.35rem; font-weight: 700; color: #1f2937; }
.asc-card--active   .asc-card__value { color: #16a34a; }
.asc-card--inactive .asc-card__value { color: #dc2626; }
.asc-card--suspend  .asc-card__value { color: #d97706; }
.asc-toolbar { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.75rem; }
.asc-toolbar .form-control { max-width: 260px; }
.asc-record-count { font-size: 0.78rem; color: #6b7280; margin-left: auto; white-space: nowrap; }
#asc_table_loader { text-align: center; padding: 1rem; color: #6b7280; font-size: 0.85rem; }
.asc-form-section { border-top: 1px solid #e5e7eb; padding-top: 1rem; margin-top: 1rem; }
.asc-form-section__title { font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: #6b7280; margin-bottom: 0.85rem; }
textarea.form-control { resize: vertical; min-height: 72px; }
.req { color: #dc3545; margin-left: 2px; }
.badge-warning { background-color: #fef3c7; color: #92400e; border-radius: 4px; padding: 2px 8px; font-size: 0.72rem; font-weight: 600; }
.content-second-view.show-form { animation: slideInUp 0.25s ease; }
@keyframes slideInUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }

/* ── reporting-service.css ─────────────────────────────────────────────────── */

:root {
    --gray-hover: #00000014;
    --gray: #80808063;
    --secondary-color: #f8942f;
}
.content-report { position: relative; }
.transparent-layer { opacity: 0; display: none; position: fixed; left: 0; top: 0; right: 0; bottom: 0; background-color: rgb(0 0 0 / 53%); z-index: 9999; transition: 0.4s; }
.cnt_rtn_src { position: relative; display: flex; flex-direction: row; min-height: 70vh; }
.cnt-mdl { margin-top: 28px; }
.cnt_rts { width: 100%; min-height: 70vh; padding: 0 5px; position: relative; }
.tle_fml { font-weight: 600; color: var(--primary-color); font-size: 18px; }
.inf_rpt span { font-weight: 300; }
.cnt_frm_rtn { background-color: #ffffff; width: 0%; min-height: 70vh; max-height: 100vh; position: absolute; right: 0; top: 0; bottom: 0; transition: 0.4s; box-shadow: -4px 0 10px rgba(0,0,0,.05); z-index: 99999; display: flex; flex-direction: column; }
.cnt_mdl_bdy { column-gap: 20px; row-gap: 12px; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
@keyframes rpt-msg-shake { 0% { transform: translateX(0); } 15% { transform: translateX(-6px); } 30% { transform: translateX(6px); } 45% { transform: translateX(-5px); } 60% { transform: translateX(5px); } 75% { transform: translateX(-3px); } 90% { transform: translateX(3px); } 100% { transform: translateX(0); } }
.form_panel .msg-inf { display: none; align-items: center; opacity: 0; transition: 0.4s; border-left: 3px solid; padding: 6px 10px; border-radius: 0 4px 4px 0; margin: 0 16px 8px; }
.form_panel .msg-inf.msg-shake { animation: rpt-msg-shake 0.45s ease; }
.form_panel .msg-inf p { font-size: 13px; font-weight: 600; margin: 0; }
.form_panel .msg-inf.msg-error { border-color: #dc3545; background-color: #fff5f5; }
.form_panel .msg-inf.msg-error p { color: #dc3545; }
.form_panel .msg-inf.msg-warning { border-color: #f59e0b; background-color: #fffbeb; }
.form_panel .msg-inf.msg-warning p { color: #b45309; }
.form_panel .title { display: flex; gap: 2px; height: 67px; border-bottom: 1px solid var(--primary-color); align-items: center; width: 94%; margin: auto; }
.form_panel .title .txt { display: flex; align-items: center; }
.form_panel { display: flex; flex-direction: column; height: 100%; overflow: hidden; }
.form_panel #cnt_mdl_bdy { flex: 1; min-height: 0; overflow-y: auto; }
.form_panel .cnt_btn_frm { flex-shrink: 0; padding: 8px 16px 16px; }
.form_panel .cnt_btn_frm button { background-color: #4679cc; border: 1px solid gray; border-radius: 4px; font-size: 16px; color: white; padding: 4px 12px; width: 100%; height: 34px; }
.cnt_mdl_bdy_cnt { min-height: 120px; box-shadow: 0 2px 6px rgb(0 0 0 / 21%); border-radius: 4px; position: relative; }
.cnt_mdl_bdy_cnt .loader-circle { position: absolute; left: 0; top: 0; right: 0; bottom: 0; opacity: 0; background-color: rgb(0 0 0 / 52%); display: none; justify-content: center; align-items: center; transition: 0.4s; }
.cnt_mdl_bdy_cnt .loader-circle.active { display: flex; opacity: 1; }
.cnt_mdl_bdy_cnt .loader-circle img { width: 80px; height: 80px; }
.cnt_mdl_bdy_cnt .hover-card { position: absolute; left: 0; top: 0; right: 0; bottom: 0; transition: 0.4s; cursor: pointer; }
.hover-active { background-color: var(--gray-hover); }
.cnt_mdl_bdy_cnt .hover-card:hover { background-color: var(--gray-hover); }
.burger-menu { right: 16px !important; position: absolute; left: initial; }
.crd_hrd { display: flex; gap: 6px; height: 40%; border-bottom: 1px solid var(--primary-color); justify-content: center; width: 94%; margin: auto; }
.cnt_mdl_hdr { width: fit-content; padding: 2px 12px; background-color: #2b52881c; border-radius: 8px; margin-bottom: 8px; border: 1px solid #2b528838; }
.cnt_mdl_hdr h4 { font-weight: 500; color: var(--primary-color); font-size: 14px; margin: 0; }
.crd_hrd .icon { width: 10%; display: flex; justify-content: center; align-items: center; }
.crd_inf { padding: 8px; font-weight: 400; font-size: 12px; }
.icon i { font-size: 24px; color: var(--secondary-color); }
.rpr_nm { width: 90%; align-items: center; display: flex; }
.rpr_nm h4 { margin: 0; font-weight: 500; color: var(--primary-color); font-size: 14px; display: -webkit-box; -webkit-box-orient: vertical; line-clamp: 2; -webkit-line-clamp: 2; overflow: hidden; }
.disabled-loader { position: absolute; left: 0; top: 0; right: 0; bottom: 0; background-color: rgb(255 255 255 / 52%); display: none; opacity: 0; justify-content: center; align-items: center; transition: 0.4s; }
.loader-login { position: absolute; height: 6px; width: 98%; margin: 0 9px; opacity: 0; --c: no-repeat linear-gradient(#264e72 0 0); background: var(--c), var(--c), #7a93a9; background-size: 60% 100%; animation: l16 4s infinite; z-index: 999; border-radius: 25px 25px 0 0; transition: 0.4s; }
@keyframes l16 { 0% { background-position: -150% 0, -150% 0; } 66% { background-position: 250% 0, -150% 0; } 100% { background-position: 250% 0, 250% 0; } }
.rpt-picker-wrap { display: flex; align-items: center; gap: 6px; }
.rpt-picker-wrap .input-group { flex: 1; min-width: 0; }
.rpt-clr-btn { flex-shrink: 0; background: none; border: none; padding: 0 4px; color: #aaa; font-size: 1.1rem; cursor: pointer; line-height: 1; transition: color .2s; }
.rpt-clr-btn:hover { color: #dc3545; }
.inf_rpt { display: flex; align-items: center; justify-content: space-between; }
.rpt-clr-all-btn { background: none; border: 1px solid #ccc; border-radius: 4px; color: #888; font-size: .85rem; padding: 3px 8px; margin-right: 12px; cursor: pointer; line-height: 1; transition: color .2s, border-color .2s; }
.rpt-clr-all-btn:hover { color: #dc3545; border-color: #dc3545; }

/* ── reporting-service.hbs inline overrides (placed after CSS file to win cascade) ── */

.rpt-filter-bar { display: flex; align-items: center; gap: 10px; }
.rpt-filter-bar__select { flex: 0 0 200px; }
.rpt-filter-bar__search { flex: 1; }
.cnt_mdl_hdr {
    width: 100%;
    background: #f8f9fa;
    border-radius: 0 4px 4px 0;
    border: none;
    border-left: 3px solid #1a73e8;
    padding: 8px 14px;
    margin-bottom: 0;
    cursor: pointer;
    user-select: none;
}
.cnt_mdl_hdr:hover { background: #edf2fb; }
.rpt-toggle-icon { margin-left: auto; font-size: .9rem; color: #1a73e8; transition: transform .25s ease; }
.cnt-mdl:not(.rpt-expanded) .rpt-toggle-icon { transform: rotate(-90deg); }
.cnt_mdl_bdy { overflow: hidden; transition: max-height .3s ease; padding: 10px 4px; }
.cnt_mdl_bdy_cnt { border-radius: 8px !important; transition: box-shadow .2s ease, transform .15s ease !important; }
.cnt_mdl_bdy_cnt:hover { box-shadow: 0 4px 16px rgba(0,0,0,.13) !important; transform: translateY(-2px); }
.crd_hrd .icon i { font-size: 1rem; color: #1a73e8; }
.icon i { font-size: 1rem !important; }
#rpt_period_picker { background: #fff; border: 1px solid #dee2e6; border-radius: 6px; box-shadow: 0 4px 16px rgba(0,0,0,.15); padding: 10px; width: 186px; }
.rpt-pp-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; font-weight: 600; font-size: .9rem; }
.rpt-pp-header button { background: none; border: none; cursor: pointer; color: #1a73e8; padding: 2px 6px; border-radius: 4px; }
.rpt-pp-header button:hover { background: #e8f0fe; }
.rpt-pp-months { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.rpt-pp-month { background: none; border: 1px solid #dee2e6; border-radius: 4px; cursor: pointer; padding: 5px 2px; font-size: .82rem; transition: background .15s, border-color .15s; }
.rpt-pp-month:hover { background: #e8f0fe; border-color: #1a73e8; }

/* ── note-base.css sub-classes only (base .asc-summary-card kept from ds-site.css) ── */

.asc-summary-card__inner { display: flex; align-items: flex-start; gap: 16px; padding: 16px; }
.asc-summary-card__avatar { flex-shrink: 0; color: #6c757d; }
.asc-summary-card__body { flex: 1; min-width: 0; }
.asc-summary-card__name-row { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.asc-summary-card__name { font-size: 1rem; font-weight: 600; color: #343a40; }
.asc-summary-card__row { display: flex; align-items: center; gap: 4px; font-size: 0.85rem; color: #495057; margin-bottom: 4px; }
.asc-summary-card__label { color: #6c757d; white-space: nowrap; }
.asc-summary-card__value { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.note-form-card { border: 1px solid #e9ecef; border-radius: 6px; padding: 20px; background: #fff; }
.note-form-card h6.card-section-title { font-size: 0.82rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: #6c757d; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 1px solid #e9ecef; }
#note_inp_amount { font-size: 1.05rem; font-weight: 600; }
@media (max-width: 768px) {
    .asc-summary-card__inner { flex-direction: column; align-items: center; text-align: center; padding: 12px; }
    .asc-summary-card__name-row { justify-content: center; }
}

/* ── savings-withdrawal.css — .wd-* and .asc-modal-* ──────────────────────── */

.wd-distrib-column { min-height: 300px; padding: 12px !important; }
.wd-distrib-column__title { font-size: 0.9rem; font-weight: 600; color: #495057; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid #dee2e6; }
.wd-distrib-column__content { display: flex; flex-direction: column; gap: 8px; }
.wd-distrib-empty { color: #adb5bd; }
.wd-distrib-section { margin-bottom: 4px; }
.wd-distrib-section__title { font-size: 0.78rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #6c757d; padding: 4px 0 6px; border-bottom: 1px dashed #dee2e6; margin-bottom: 8px; }
.wd-distrib-card { border: 1px solid #dee2e6; border-radius: 6px; background: #fff; overflow: hidden; transition: box-shadow 0.15s; }
.wd-distrib-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.wd-distrib-card[data-zone="assigned"] { border-left: 3px solid #28a745; background: #f9fffe; }
.wd-distrib-card__header { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px; cursor: pointer; user-select: none; background: #f8f9fa; gap: 8px; }
.wd-distrib-card__header:hover { background: #e9ecef; }
.wd-distrib-card__title { display: flex; align-items: center; gap: 4px; font-size: 0.85rem; flex: 1; min-width: 0; flex-wrap: wrap; }
.wd-distrib-card__meta { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
.wd-distrib-card__body { padding: 10px 12px; border-top: 1px solid #dee2e6; font-size: 0.85rem; }
.wd-distrib-card__body.collapse { display: none; }
.wd-distrib-card__body.show { display: block; }
.wd-chevron { transition: transform 0.2s ease; color: #6c757d; font-size: 0.75rem; }
.wd-distrib-card .badge-info { background-color: #e3f2fd; color: #0277bd; border: 1px solid #b3d9f7; }
.wd-distrib-card .badge-primary { background-color: #e8eaf6; color: #3949ab; border: 1px solid #c5cae9; }
.wd-assigned-header { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; background: #f0faf3; gap: 8px; border-radius: 4px; }
.wd-assigned-info { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.wd-assigned-name { font-size: 0.82rem; font-weight: 600; color: #343a40; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wd-assigned-amount { font-size: 0.82rem; font-weight: 700; color: #1a7a3c; white-space: nowrap; margin-left: 8px; }
.btn-xs { padding: 1px 6px; font-size: 0.72rem; line-height: 1.4; border-radius: 3px; }
.wd-loan-fields .form-group label { font-size: 0.78rem; color: #6c757d; margin-bottom: 2px; }
.wd-invoice-fields { padding: 8px 12px 10px; }
.badge-purple { background-color: #ede7f6; color: #6a1b9a; border: 1px solid #d1c4e9; }
.badge-blue   { background-color: #e3f2fd; color: #1565c0; border: 1px solid #bbdefb; }
.wd-totals-bar { position: sticky; bottom: 0; z-index: 10; display: flex; align-items: center; justify-content: flex-end; gap: 12px; background: #fff; border: 1px solid #dee2e6; border-top: 2px solid #c8ced3; border-radius: 0 0 6px 6px; padding: 12px 20px; flex-wrap: wrap; box-shadow: 0 -2px 8px rgba(0,0,0,.06); }
.wd-totals-bar__item { display: flex; flex-direction: column; align-items: flex-end; }
.wd-totals-bar__label { font-size: 0.75rem; color: #6c757d; text-transform: uppercase; letter-spacing: 0.03em; }
.wd-totals-bar__value { font-size: 1.1rem; font-weight: 700; color: #343a40; }
.wd-totals-bar__separator { font-size: 1.3rem; color: #adb5bd; font-weight: 300; padding: 0 4px; }
#wd_tbody_savings td { vertical-align: middle; font-size: 0.875rem; }
.asc-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 9999; display: flex; align-items: center; justify-content: center; animation: asc-fade-in 0.15s ease; }
@keyframes asc-fade-in { from { opacity: 0; } to { opacity: 1; } }
.asc-modal-dialog { background: #fff; border-radius: 8px; box-shadow: 0 8px 32px rgba(0,0,0,.18); width: 680px; max-width: 95vw; max-height: 80vh; display: flex; flex-direction: column; animation: asc-slide-up 0.18s ease; }
@keyframes asc-slide-up { from { transform: translateY(16px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.asc-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px 12px; border-bottom: 1px solid #dee2e6; flex-shrink: 0; }
.asc-modal-title { font-size: 1rem; font-weight: 600; color: #343a40; margin: 0; }
.asc-modal-close { background: none; border: none; font-size: 1.4rem; line-height: 1; color: #6c757d; cursor: pointer; padding: 0 4px; transition: color .15s; }
.asc-modal-close:hover { color: #343a40; }
.asc-modal-search { padding: 12px 18px 10px; flex-shrink: 0; }
.asc-modal-body { overflow-y: auto; flex: 1; padding: 0; }
.asc-modal-table-wrap { min-height: 160px; padding-left: 18px; padding-right: 18px; }
.asc-modal-footer { padding: 10px 18px; border-top: 1px solid #dee2e6; display: flex; justify-content: flex-end; flex-shrink: 0; }
.asc-modal-row { cursor: pointer; transition: background 0.1s; }
.asc-modal-row:hover { background: #e8f4fd !important; }
@media (max-width: 768px) {
    .wd-totals-bar { justify-content: center; padding: 10px; }
    .wd-distrib-card__header { flex-wrap: wrap; }
    .asc-modal-dialog { max-height: 90vh; }
}

/* ── saving-types.css — non-.st-section-header rules ──────────────────────── */

.st-form-group { border: 1px solid #e9ecef; border-radius: 6px; padding: 16px 20px 8px; margin-bottom: 20px; background: #ffffff; }
select.form-control:disabled { background-color: #e9ecef; cursor: not-allowed; opacity: 0.75; }
.st-account-wrapper .help-block { display: block; font-size: 0.78rem; color: #6c757d; margin-top: 3px; }

/* ── banks-branch.css ──────────────────────────────────────────────────────── */

@keyframes bb-fade-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
#bb_banks_container { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; padding: 4px 0; }
.bb-bank-card { border: 1px solid #e9ecef; border-radius: 12px; background: #fff; overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .2s ease, transform .15s ease; animation: bb-fade-in .22s ease both; }
.bb-bank-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.09); transform: translateY(-2px); }
.bb-logo-area { height: 160px; display: flex; align-items: center; justify-content: center; background: #f8f9fa; border-bottom: 1px solid #e9ecef; overflow: hidden; position: relative; cursor: pointer; transition: background .15s ease, border-color .15s ease; }
.bb-logo-area:hover { background: #f1f3f5; }
.bb-logo-area.bb-drag-over { background: #e8f0fe; border-color: #1a73e8; border-style: dashed; border-width: 2px; }
.bb-logo-img { max-width: 85%; max-height: 130px; object-fit: contain; animation: bb-fade-in .25s ease; }
.bb-preview-active { border-radius: 4px; box-shadow: 0 0 0 3px #1a73e833; }
.bb-logo-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 100%; background: repeating-conic-gradient(#e9ecef 0% 25%, #f8f9fa 0% 50%) 0 0 / 16px 16px; user-select: none; }
.bb-logo-placeholder i { font-size: 2.4rem; color: #adb5bd; opacity: .6; filter: drop-shadow(1px 1px 0 #fff); }
.bb-logo-placeholder span { font-size: 0.7rem; color: #adb5bd; letter-spacing: 0.05em; text-transform: uppercase; background: rgba(255,255,255,.7); padding: 2px 8px; border-radius: 20px; }
.bb-bank-info { padding: 12px 14px 6px; flex: 1; }
.bb-bank-name { font-weight: 600; font-size: 0.88rem; color: #212529; margin: 0 0 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bb-bank-code { font-size: 0.72rem; color: #adb5bd; margin: 0; letter-spacing: 0.04em; }
.bb-card-footer { padding: 8px 14px 12px; display: flex; align-items: center; gap: 6px; }
.bb-save-actions { display: flex; gap: 6px; animation: bb-fade-in .2s ease; }
.bb-save-actions:not([hidden]) { display: flex; }
.bb-empty { grid-column: 1 / -1; text-align: center; padding: 56px 24px; color: #adb5bd; }
.bb-empty i { font-size: 3rem; display: block; margin-bottom: 12px; }
.bb-empty p { font-size: 0.9rem; margin: 0; }

/* ── filter-global.css ─────────────────────────────────────────────────────── */

.content-filter { position: absolute; top: 55px; right: -15px; bottom: 0; width: 0; background-color: white; border-radius: 4px; z-index: 999; transition: 0.2s; overflow-y: auto; min-height: 65vh; max-height: 65vh; }
.content-filter .content-btn { display: flex; gap: 8px; margin: 14px; }
.content-filter .content-btn button { height: 30px; width: 30px; display: flex; justify-content: center; align-items: center; border-radius: 4px; border: 1px solid gray; transition: 0.2s; }
.content-filter .content-btn button i { font-size: 20px; }
.content-filter .content-btn .contract-extensor { border: 1px solid #4679cc; }
.content-filter .content-btn .contract-extensor:hover { background-color: #5496ff45; }
.content-filter .content-btn .clear-field { border: 1px solid #df0000; }
.content-filter .content-btn .clear-field:hover { background-color: #ff000021; }
.content-filter .container { height: 90%; overflow: auto; scroll-behavior: smooth; }
.content-filter .filter-footer { padding: 0 14px; position: absolute; bottom: 14px; width: 90%; }
.content-filter .burger-menu { left: initial; right: 14px; }
.content-filter .filter-footer button { background-color: #4679cc; border: 1px solid gray; border-radius: 4px; font-size: 16px; color: white; padding: 4px 12px; width: 100%; height: 34px; }
.content-filter .filter-added { margin: 0 14px; display: flex; gap: 4px; width: 85%; flex-wrap: wrap; margin-bottom: 14px; }
.content-filter .filter { transition: 0.2s; display: flex; align-items: center; font-size: 14px; gap: 4px; padding: 4px 8px; background-color: #4679cc21; border-radius: 4px; font-weight: 600; cursor: pointer; }
.content-filter .filter:hover { background-color: #4679cc; color: white; }
.content-filter .text { margin: 0; cursor: pointer; }
.content-filter .delete-added { font-weight: 600; margin-bottom: 2px; }
.content-filter .elements-filter { margin: 0 14px; }
.content-filter .content-field { font-size: 16px; margin-bottom: 16px; }
.content-filter .check-filter { display: flex; align-items: center; gap: 4px; }
.content-filter .check-filter .input-check { cursor: pointer; }
.content-filter .check-filter .label-filter { margin: 0; cursor: pointer; }
.content-filter .filter-field { margin: 4px 18px; width: 87%; }
.content-filter .filter-field .input-filter { width: 100%; height: 34px; border-radius: 4px; padding: 0 8px; border: 1px solid gray; outline: none; }
.filter-active { box-shadow: -1px 1px 4px 2px #c6c6c6; width: 400px; }
.relative span { position: absolute; top: -19px; left: 18px; font-size: 16px; background: #e8930e; width: 20px; height: 20px; border-radius: 50px; display: flex; color: white; align-items: center; justify-content: center; }
.content-filter .title { margin: 14px; }
.content-filter .title h4 { font-size: 16px; font-weight: 600; }
.table-header { width: 100%; height: auto; display: flex; justify-content: end; font-size: 1rem; margin-bottom: 12px; }
.table-header .content-search { display: flex; align-items: center; padding: 0; gap: 10px; }
.table-header .content-search .btn-filter { cursor: pointer; padding: 4px 12px; border: 1px solid gray; border-radius: 4px; background-color: #4679cc; color: white; height: 40px; display: flex; justify-content: center; align-items: center; width: 120px; gap: 8px; position: relative; }
.btn-filter .filter-active { position: absolute; left: -15px; top: -15px; width: 28px; background-color: white; display: flex; justify-content: center; align-items: center; height: 28px; border-radius: 50%; box-shadow: 0 0 3px 1px red; }
.btn-filter .filter-active p { color: #f40000; font-weight: 600; font-size: 22px; }
.table-header .content-search .btn-filter label { margin: 0; cursor: pointer; font-size: 18px; font-weight: 300; }
.table-header .content-search .input { max-width: 214px; }
.table-header .content-search p { margin: 0; }
.table-header .content-search input { font-size: 0.9rem; height: 24px; border-radius: 6px; border: 1px solid gray; padding: 14px 12px; width: 100%; }
.table-header .content-search select { font-size: 0.9rem; height: 30px; border-radius: 6px; border: 1px solid gray; padding: 2px 12px; cursor: pointer; width: 100%; }
.append-button { border-radius: 4px 0 0 4px !important; }
.cursor-pointer { cursor: pointer; }

/* ── select2my.css ─────────────────────────────────────────────────────────── */

select2-my { display: block; box-sizing: border-box; width: 100%; position: relative; }
select2-my *, select2-my *::before, select2-my *::after { box-sizing: border-box; }
select2-my.s2m-open { z-index: 80; }
select2-my .s2m-holder { width: 100%; height: 34px; border: 1px solid #94949478; display: flex; position: relative; padding: 0 0.875rem; cursor: pointer; color: #495057; background-color: #fff; background-clip: padding-box; border-radius: 4px; }
select2-my .s2m-holder.s2m-disabled { opacity: 0.5; cursor: not-allowed; }
select2-my .s2m-show { width: 90%; overflow: hidden; display: flex; align-items: center; font-weight: 400; line-height: 1.47; }
select2-my p { margin: 0; }
select2-my .s2m-drop { width: 10%; display: flex; justify-content: center; align-items: center; transition: transform 0.2s; }
select2-my.s2m-open .s2m-holder { border-color: #4679cc; }
select2-my.s2m-open .s2m-holder i { color: #4679cc; }
select2-my.s2m-open .s2m-drop { transform: rotate(180deg); }
.s2m-dropdown { display: none; flex-direction: column; align-items: center; gap: 10px; padding: 10px 10px 5px; position: fixed; z-index: 9999; border: 1px solid #ccc; border-radius: 5px; background-color: #fff; overflow: hidden; box-shadow: 0 3px 4px rgba(0,0,0,.2); }
.s2m-dropdown.s2m-active { display: flex; border-color: #4679cc; }
.s2m-dropdown .s2m-search { width: 100%; display: flex; color: #495057; background-color: #fff; border: 2px solid #E5E5E5; border-radius: 4px; overflow: hidden; }
.s2m-dropdown.s2m-active .s2m-search { border-color: #4679cc; }
.s2m-dropdown .s2m-search i { width: 20%; display: flex; justify-content: center; align-items: center; }
.s2m-dropdown .s2m-search-input { width: 80%; color: #495057; background-color: #fff; border: 0; height: calc(1.47em + 1rem + 2px); padding: 0.5rem 0.875rem; font-weight: 400; line-height: 1.47; appearance: none; }
.s2m-dropdown .s2m-search-input:focus { outline: 0; border: 0; }
.s2m-dropdown .s2m-options { overflow-x: hidden; overflow-y: auto; max-height: 200px; display: flex; flex-direction: column; gap: 8px; width: 100%; padding-right: 5px; padding-bottom: 10px; }
.s2m-dropdown .s2m-options::-webkit-scrollbar { width: 8px; }
.s2m-dropdown .s2m-options::-webkit-scrollbar-thumb { background-color: #4679cc; border-radius: 4px; }
.s2m-dropdown .s2m-option { border: 1px solid #ccc; width: 100%; padding: 8px 14px; border-radius: 5px; user-select: none; cursor: pointer; }
.s2m-dropdown .s2m-option p { margin: 0; }
.s2m-dropdown .s2m-option:hover,
.s2m-dropdown .s2m-option.s2m-selected { color: #fff; font-weight: 500; background-color: #4679cc; border-color: #2016ff; transition: background-color 0.2s; }
.s2m-dropdown .s2m-option:active { transform: scale(.98); transition: transform 0.2s; }
select2-my.validate-input .s2m-holder { border-color: #dc3545; }
input.validate-input, textarea.validate-input { border-color: #dc3545 !important; }

/* ═══════════════════════════════════════════════════════════════════════════
   INLINE HBS STYLES (extracted from <style> blocks in template files)
═══════════════════════════════════════════════════════════════════════════ */

/* ── supplier-maintenance-cxp.hbs ──────────────────────────────────────────── */

.spl-param-info { margin-top: 4px; padding: 4px 8px; background: #f0f4ff; border: 1px solid #d6e0f5; border-radius: 4px; font-size: 0.72rem; color: #495057; }
.spl-param-info i { color: #1a73e8; margin-right: 4px; font-size: 0.72rem; }
.spl-param-info .spl-pi-label { color: #8c919a; }
.spl-param-info .spl-pi-value { font-weight: 600; color: #1a1d21; }
.param-form-row .custom-row { background: linear-gradient(135deg, #e8f0fe 0%, #f0f4ff 100%) !important; border-left: 3px solid #1a73e8; border-bottom: 1.5px solid #d6e0f5; }
.param-form-row .param-seq-badge { display: inline-flex; align-items: center; gap: 4px; background: #e8f0fe; color: #1a73e8; font-size: 0.72rem; font-weight: 600; padding: 5px 14px; border-radius: 4px; letter-spacing: 0.02em; border: 1px solid #d0dff8; }

/* ── retentions-type-cxp.hbs ───────────────────────────────────────────────── */

.rt-cell-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.param-row-inactive { opacity: 0.5; }
.param-row-inactive .custom-cell { color: #adb5bd !important; }

/* ── fiscal-year-management.hbs ────────────────────────────────────────────── */

#fym_t1_modal_table .custom-row:hover { background: #f0f4ff; }
#fym_t1_modal_table .custom-row { transition: background .15s; }
.fym-summary { margin-bottom: 1rem; }
.fym-summary__card { background: #ffffff; border: 1px solid #e9ecef; border-radius: 8px; padding: 1rem; text-align: center; margin-bottom: .5rem; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.fym-summary__label { display: block; font-size: .78rem; color: #6c757d; text-transform: uppercase; letter-spacing: .04em; margin-bottom: .25rem; }
.fym-summary__value { display: block; font-size: 1.4rem; font-weight: 600; color: #343a40; }

/* ── news.hbs ───────────────────────────────────────────────────────────────── */

.nf-section-hdr { display: flex; align-items: center; gap: 8px; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: #8a96a3; padding-bottom: 10px; margin-bottom: 18px; border-bottom: 1px solid #f0f1f3; }
.nf-section-hdr i { font-size: .85rem; color: #b8c0cc; }
.news-img-card { position: relative; width: 100%; height: 240px; border: 2px dashed #d0d6de; border-radius: 10px; overflow: hidden; cursor: pointer; background: #f8f9fb; display: flex; align-items: center; justify-content: center; transition: border-color .2s, background .2s, box-shadow .2s; }
.news-img-card:hover { border-color: #4679cc; background: #eef2fb; box-shadow: 0 0 0 4px rgba(70,121,204,.08); }
.news-img-card input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 3; }
.news-img-empty { display: flex; flex-direction: column; align-items: center; gap: 6px; pointer-events: none; z-index: 1; text-align: center; padding: 0 24px; }
.news-img-empty .ni-icon { width: 52px; height: 52px; border-radius: 50%; background: #e8ecf2; display: flex; align-items: center; justify-content: center; margin-bottom: 6px; }
.news-img-empty .ni-icon i { font-size: 1.4rem; color: #9aaab8; }
.news-img-empty .ni-title { font-size: .84rem; font-weight: 600; color: #5a6473; }
.news-img-empty .ni-hint  { font-size: .73rem; color: #adb5bd; }
#news_main_preview { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: none; z-index: 1; }
.news-img-overlay { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(transparent, rgba(0,0,0,.55)); color: #fff; display: none; align-items: center; justify-content: center; gap: 6px; padding: 10px 8px 8px; font-size: .78rem; font-weight: 500; z-index: 2; pointer-events: none; }
.news-img-card.has-image { border-style: solid; border-color: #4679cc; }
.news-img-card.has-image .news-img-empty  { display: none; }
.news-img-card.has-image #news_main_preview { display: block; }
.news-img-card.has-image .news-img-overlay { display: flex; }
.news-img-card.is-invalid { border-style: solid; border-color: #dc3545; box-shadow: 0 0 0 3px rgba(220,53,69,.1); }
.news-sec-drop { border: 2px dashed #d0d6de; border-radius: 10px; background: #f8f9fb; padding: 20px 16px; text-align: center; cursor: pointer; position: relative; transition: border-color .2s, background .2s; min-height: 72px; display: flex; align-items: center; justify-content: center; gap: 10px; }
.news-sec-drop:hover { border-color: #4679cc; background: #eef2fb; }
.news-sec-drop input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.news-sec-drop i    { font-size: 1.1rem; color: #9aaab8; pointer-events: none; }
.news-sec-drop span { font-size: .8rem; color: #6c757d; pointer-events: none; }
.news-sec-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 8px; margin-top: 12px; }
.news-sec-item { position: relative; border-radius: 6px; overflow: hidden; aspect-ratio: 4/3; background: #f0f1f3; }
.news-sec-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.news-sec-item .nsi-remove { position: absolute; top: 3px; right: 3px; width: 20px; height: 20px; border-radius: 50%; background: rgba(0,0,0,.55); color: #fff; border: none; font-size: .6rem; cursor: pointer; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .15s; z-index: 2; }
.news-sec-item:hover .nsi-remove { opacity: 1; }
.news-editor-wrap { border: 1px solid #d0d6de; border-radius: 10px; background: #fff; overflow: hidden; }
.news-editor-toolbar { background: #f8f9fb; border-bottom: 1px solid #eaecef; padding: 8px 16px; display: flex; align-items: center; gap: 8px; }
.news-editor-toolbar span { font-size: .73rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: #9aaab8; }
.news-editor-toolbar i { color: #b8c0cc; }
#news_editor { min-height: 340px; padding: 16px 24px; }
.codex-editor__redactor { padding-bottom: 60px !important; }
.nf-label { font-size: .8rem; font-weight: 600; color: #4a5568; margin-bottom: 6px; display: block; }

/* ── members.hbs ────────────────────────────────────────────────────────────── */

.member-img-card { position: relative; width: 100%; height: 160px; border: 2px dashed #d0d6de; border-radius: 10px; overflow: hidden; cursor: pointer; background: #f8f9fb; display: flex; align-items: center; justify-content: center; transition: border-color .2s, background .2s, box-shadow .2s; }
.member-img-card:hover { border-color: #4679cc; background: #eef2fb; box-shadow: 0 0 0 4px rgba(70,121,204,.08); }
.member-img-card input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 3; }
.member-img-empty { display: flex; flex-direction: column; align-items: center; gap: 6px; pointer-events: none; z-index: 1; text-align: center; padding: 0 24px; }
.member-img-empty .mi-icon { width: 52px; height: 52px; border-radius: 50%; background: #e8ecf2; display: flex; align-items: center; justify-content: center; margin-bottom: 6px; }
.member-img-empty .mi-icon i { font-size: 1.4rem; color: #9aaab8; }
.member-img-empty .mi-title { font-size: .84rem; font-weight: 600; color: #5a6473; }
.member-img-empty .mi-hint  { font-size: .73rem; color: #adb5bd; }
#member_main_preview { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: none; z-index: 1; }
.member-img-overlay { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(transparent, rgba(0,0,0,.55)); color: #fff; display: none; align-items: center; justify-content: center; gap: 6px; padding: 10px 8px 8px; font-size: .78rem; font-weight: 500; z-index: 2; pointer-events: none; }
.member-img-card.has-image { border-style: solid; border-color: #4679cc; }
.member-img-card.has-image .member-img-empty   { display: none; }
.member-img-card.has-image #member_main_preview { display: block; }
.member-img-card.has-image .member-img-overlay  { display: flex; }
.member-img-card.is-invalid { border-style: solid; border-color: #dc3545; box-shadow: 0 0 0 3px rgba(220,53,69,.1); }

/* ── loan-credit-note.view.hbs ──────────────────────────────────────────────── */

.lcn-section-header { display: flex; align-items: center; background: #f8f9fa; border-left: 3px solid #1a73e8; border-radius: 3px; padding: 8px 14px; margin-bottom: 16px; font-size: .82rem; font-weight: 600; color: #343a40; text-transform: uppercase; letter-spacing: .04em; }
.lcn-section-header i { font-size: .95rem; color: #1a73e8; margin-right: 8px; }
.lcn-form-group { border: 1px solid #e9ecef; border-radius: 6px; padding: 16px 20px 12px; margin-bottom: 20px; background: #ffffff; }
.lcn-preview-bar { display: flex; align-items: center; gap: 8px; background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 4px; padding: 5px 10px; min-height: 30px; }
.lcn-preview-bar__icon        { font-size: .85rem; color: #adb5bd; flex-shrink: 0; }
.lcn-preview-bar__placeholder { font-size: .82rem; color: #adb5bd; font-style: italic; }
.lcn-preview-bar__text        { font-size: .82rem; color: #495057; font-weight: 500; }
.lcn-dist-wrapper { display: flex; gap: 12px; align-items: flex-start; }
.lcn-dist-current { flex: 0 0 240px; background: #eef2fc; border: 1px solid #c9d8f5; border-radius: 6px; padding: 12px 16px; }
.lcn-dist-separator { display: flex; align-items: center; color: #adb5bd; padding-top: 48px; font-size: 1rem; flex-shrink: 0; }
.lcn-dist-apply { flex: 0 0 250px; background: #ffffff; border: 1px solid #e9ecef; border-radius: 6px; padding: 12px 16px; }
.lcn-dist-panel-header { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: #6c757d; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid rgba(0,0,0,.08); }
.lcn-dist-item { display: flex; justify-content: space-between; align-items: center; padding: 5px 0; border-bottom: 1px solid rgba(0,0,0,.04); }
.lcn-dist-item:last-child { border-bottom: none; }
.lcn-dist-item--separator { border-top: 1px solid #c9d8f5; margin-top: 4px; padding-top: 8px; }
.lcn-dist-label { font-size: .8rem; color: #6c757d; }
.lcn-dist-value { font-size: .85rem; font-weight: 600; color: #343a40; }
.lcn-dist-value--total   { color: #1a73e8; }
.lcn-dist-value--overdue { color: #dc3545; }
.lcn-dist-apply__rows { display: flex; flex-direction: column; gap: 6px; }
.lcn-apply-row { display: flex; align-items: center; gap: 10px; }
.lcn-apply-row__label { font-size: 0.82rem; color: #6c757d; width: 58px; min-width: 58px; text-align: right; flex-shrink: 0; }
.lcn-apply-row .form-control { flex: 1; }
.lcn-apply-row--total { border-top: 1px solid #dee2e6; padding-top: 6px; margin-top: 2px; }
.lcn-schedule-header { font-size: .8rem; font-weight: 600; color: #495057; text-transform: uppercase; letter-spacing: .03em; }
.lcn-schedule-totals { display: flex; flex-wrap: wrap; gap: 6px 24px; background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 4px; padding: 8px 14px; font-size: .82rem; }
.lcn-schedule-totals__item  { display: flex; gap: 6px; align-items: baseline; }
.lcn-schedule-totals__label { color: #6c757d; }
.lcn-schedule-totals__value { font-weight: 700; color: #343a40; }
#lcn_loan_modal_table .custom-row       { cursor: pointer; transition: background .15s; }
#lcn_loan_modal_table .custom-row:hover { background: #f0f4ff; }

/* ── debit-note-loan.hbs ────────────────────────────────────────────────────── */

.dn-section-header { display: flex; align-items: center; background: #f8f9fa; border-left: 3px solid #1a73e8; border-radius: 3px; padding: 8px 14px; font-size: .82rem; font-weight: 600; color: #343a40; text-transform: uppercase; letter-spacing: .04em; }
.dn-section-header i { font-size: .95rem; color: #1a73e8; margin-right: 8px; }
.dn-form-group { border: 1px solid #e9ecef; border-radius: 6px; padding: 16px 20px 8px; margin-bottom: 20px; background: #ffffff; }
.dn-preview-bar { display: flex; align-items: center; gap: 8px; background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 4px; padding: 5px 10px; min-height: 30px; }
.dn-preview-bar__icon        { font-size: .85rem; color: #adb5bd; flex-shrink: 0; }
.dn-preview-bar__placeholder { font-size: .82rem; color: #adb5bd; font-style: italic; }
.dn-preview-bar__text        { font-size: .82rem; color: #495057; font-weight: 500; }
#dn_loan_modal_table .custom-row       { transition: background .15s; cursor: pointer; }
#dn_loan_modal_table .custom-row:hover { background: #f0f4ff; }

/* ── config-loan-saving.hbs ─────────────────────────────────────────────────── */

.cfg-section-card { border: 1px solid #e4e7ea; border-radius: 6px; background: #fff; padding: 1.25rem; height: 100%; }
.cfg-section-card__title { font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: #6c757d; margin-bottom: 1rem; padding-bottom: .5rem; border-bottom: 1px solid #f0f0f0; }
.cfg-section-card__add { display: flex; gap: .5rem; margin-bottom: 1rem; }
.cfg-section-card__add select2-my { flex: 1; }
.cfg-item { padding: .35rem .5rem; border-radius: 4px; margin-bottom: .3rem; background: #f8f9fa; }
.cfg-item__badge { font-size: .8rem; padding: .3em .7em; }
.cfg-item + .cfg-item { margin-top: .25rem; }

/* ── company-configuration.hbs ──────────────────────────────────────────────── */

.cc-steps-bar { display: flex; align-items: center; gap: 0; padding: .75rem 1.5rem; background: #f8f9fa; border-bottom: 1px solid #e4e7ea; }
.cc-step { display: flex; align-items: center; gap: .5rem; color: #adb5bd; font-size: .85rem; padding: .3rem .9rem; border-radius: 20px; transition: background .2s, color .2s; user-select: none; }
.cc-step.active    { background: #d4edda; color: #155724; font-weight: 600; }
.cc-step.completed { color: #28a745; cursor: pointer; }
.cc-step.completed:hover { background: #f0fdf4; }
.cc-step__num { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: currentColor; color: #fff; font-size: .75rem; font-weight: 700; flex-shrink: 0; }
.cc-step.active    .cc-step__num { background: #155724; }
.cc-step.completed .cc-step__num { background: #28a745; }
.cc-step + .cc-step::before { content: '›'; margin-right: .9rem; color: #ced4da; font-size: 1.1rem; }
.cc-summary-strip { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem .6rem; background: #eef2f7; border: 1px solid #c8d6e5; border-radius: 6px; padding: .45rem 1rem; font-size: .8rem; margin-bottom: 1.5rem; }
.cc-summary-item  { display: flex; align-items: center; gap: .3rem; }
.cc-summary-label { color: #6c757d; font-weight: 500; }
.cc-summary-value { color: #1a202c; font-weight: 700; }
.cc-summary-sep   { color: #ced4da; font-weight: 300; }
.cc-summary-badge { display: inline-block; padding: .1rem .45rem; border-radius: 12px; font-size: .75rem; font-weight: 600; line-height: 1.4; }
.cc-summary-badge--green { background: #d4edda; color: #155724; }
.cc-summary-badge--red   { background: #f8d7da; color: #721c24; }
.cc-param-row { background: #f8f9fa; border-radius: 4px; }
.cc-param-row:hover { background: #e9ecef; }
.cc-param-row--editing { background: #fff8e1; border: 1px solid #ffe082; }
.cc-section-title { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: #6c757d; margin-bottom: 1rem; }
.cc-form-section { padding: 1.25rem 1.5rem; background: #fff; border: 1px solid #e9ecef; border-radius: 6px; margin-bottom: 1.25rem; }
#cc_editor_container { height: 320px; border: 1px solid #dee2e6; border-radius: 6px; overflow: hidden; }
.cc-editor-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; }
.cc-editor-label { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #4a5568; display: flex; align-items: center; gap: .35rem; }
.cc-editor-label i { color: #718096; }
#cc_params_chips { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; min-height: 28px; margin-bottom: .5rem; }
#cc_params_chips:empty { display: none; }
.cc-chip { display: inline-flex; align-items: center; gap: .3rem; padding: .25rem .6rem; border-radius: 20px; font-size: .75rem; font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; cursor: pointer; border: 1px solid transparent; transition: background .15s, transform .1s, box-shadow .15s; line-height: 1.3; white-space: nowrap; background: none; }
.cc-chip:hover { transform: translateY(-1px); box-shadow: 0 2px 6px rgba(0,0,0,.14); }
.cc-chip:active { transform: translateY(0); }
.cc-chip--param { background: #e3f8f5; border-color: #81e6d9; color: #234e52; }
.cc-chip--param:hover { background: #b2f5ea; border-color: #4fd1c5; }
.cc-chip__name { font-weight: 600; }
.cc-chip__type { font-size: .65rem; background: rgba(0,0,0,.08); border-radius: 10px; padding: .1rem .35rem; opacity: .8; }
.cc-chips-empty-hint { font-size: .75rem; color: #adb5bd; font-style: italic; }
#cc_dynamic_inputs { margin-top: .75rem; }
.cc-inputs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .5rem .75rem; }
.cc-input-cell label { font-size: .75rem; color: #4a5568; margin-bottom: .25rem; display: flex; align-items: center; gap: .3rem; }
.cc-input-key { font-size: .68rem; font-family: monospace; background: #edf2f7; border-radius: 4px; padding: .1rem .3rem; color: #4a5568; }
.cc-action-bar { display: flex; align-items: center; gap: .5rem; margin-top: .75rem; }
#cc_test_result { font-family: monospace; }
.cc-context-panel { background: #1e2433; border-radius: 8px; border: 1px solid #2d3748; height: 100%; min-height: 420px; display: flex; flex-direction: column; overflow: hidden; }
.cc-context-panel__header { padding: .6rem .9rem; background: #2d3748; border-bottom: 1px solid #4a5568; flex-shrink: 0; }
.cc-context-panel__title { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: #a0aec0; margin: 0; display: flex; align-items: center; gap: .4rem; }
.cc-context-panel__body { flex: 1; overflow-y: auto; padding: .5rem .25rem; }
.cc-context-panel__body::-webkit-scrollbar       { width: 5px; }
.cc-context-panel__body::-webkit-scrollbar-track  { background: #1e2433; }
.cc-context-panel__body::-webkit-scrollbar-thumb  { background: #4a5568; border-radius: 4px; }
.cc-ctx-row { display: flex; align-items: center; justify-content: space-between; padding: .3rem .65rem; border-radius: 5px; cursor: pointer; transition: background .12s; gap: .5rem; }
.cc-ctx-row:hover { background: #2d3748; }
.cc-ctx-row:hover .cc-ctx-key { color: #63b3ed; }
.cc-ctx-key { font-family: 'SFMono-Regular', Consolas, monospace; font-size: .78rem; color: #90cdf4; white-space: nowrap; transition: color .12s; }
.cc-ctx-eq  { font-family: monospace; font-size: .75rem; color: #4a5568; flex-shrink: 0; }
.cc-ctx-val { font-family: 'SFMono-Regular', Consolas, monospace; font-size: .78rem; color: #68d391; text-align: right; white-space: nowrap; }
.cc-ctx-insert-hint { display: none; font-size: .65rem; color: #4a5568; margin-left: .5rem; }
.cc-ctx-row:hover .cc-ctx-insert-hint { display: inline; }
.param-form-row .custom-cell {
    background: #f4f8ff !important;
    border-bottom: none !important;
}
.param-form-row .custom-cell:first-child {
    border-left: 3px solid #1a73e8;
}