:root {
    --erp-sidebar-bg: #0e7490;
    --erp-sidebar-border: rgba(255, 255, 255, .12);
    --erp-sidebar-accent: rgba(6, 182, 212, .22);
    --erp-sidebar-primary: #67e8f9;
    --erp-page-bg: #f6f8ff;
    --erp-card-bg: #ffffff;
    --erp-soft-bg: #f0f2ff;
    --erp-border: #e0e4ff;
    --erp-text: #1e1b4b;
    --erp-muted: #64748b;
    --erp-primary: #4f46e5;
    --erp-accent: #7c3aed;
    --erp-success: #16a34a;
    --erp-warning: #d97706;
    --erp-danger: #ef4444;
    --erp-shadow: 0 1px 3px rgba(79, 70, 229, .06), 0 4px 16px rgba(79, 70, 229, .04);
    --erp-shadow-md: 0 4px 16px rgba(79, 70, 229, .1), 0 12px 36px rgba(79, 70, 229, .06);
    --brand: var(--erp-primary);
}

* {
    letter-spacing: 0;
}

body {
    background: var(--erp-page-bg);
    color: var(--erp-text);
    font-family: var(--tblr-font-sans-serif);
    font-size: .84rem;
}

a:hover {
    text-decoration: none;
}

.shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 248px minmax(0, 1fr);
    background: var(--erp-page-bg);
}

/* ── Sidebar ───────────────────────────────────────────────── */
.sidebar {
    background: linear-gradient(180deg, #0e7490 0%, #06b6d4 100%);
    color: #e2e8f0;
    padding: 0;
    display: flex;
    flex-direction: column;
    border-right: 1px solid rgba(255, 255, 255, .10);
    box-shadow: 2px 0 14px rgba(6, 182, 212, .24);
}

.sidebar a {
    color: rgba(226, 232, 240, .78) !important;
}

.sidebar .brand {
    margin: 0;
    min-height: 3.75rem;
    padding: .82rem .9rem;
    border-bottom: 1px solid var(--erp-sidebar-border);
    color: #ffffff;
    display: flex;
    align-items: center;
    gap: .68rem;
}

.brand-mark {
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #0891b2 0%, #22d3ee 100%);
    color: #ffffff;
    font-size: .72rem;
    font-weight: 800;
    flex: 0 0 2.1rem;
    box-shadow: 0 2px 8px rgba(6, 182, 212, .45);
}

.brand-title,
.brand-subtitle {
    display: block;
    line-height: 1.2;
}

.brand-title {
    font-size: .84rem;
    font-weight: 800;
    letter-spacing: .01em;
    color: #ffffff;
}

.brand-subtitle {
    margin-top: .08rem;
    color: rgba(226, 232, 240, .48);
    font-size: .62rem;
    font-weight: 600;
}

.nav {
    display: grid;
    gap: .12rem;
    padding: .55rem;
    overflow-y: auto;
}

/* ── Sidebar section labels ── */
.nav-section-label {
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(148, 163, 184, .55);
    padding: .7rem .6rem .2rem;
    margin-top: .3rem;
    pointer-events: none;
    user-select: none;
}
.nav-section-label:first-child { margin-top: 0; }

/* ── Table amount alignment (right-align numeric cols) ── */
table td.num,
table th.num { text-align: right !important; white-space: nowrap; font-variant-numeric: tabular-nums; }
table td:last-child .btn,
table td .table-actions { justify-content: flex-end; }

.nav a {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: .5rem;
    min-height: 2.05rem;
    padding: .42rem .6rem;
    border-radius: 8px;
    color: rgba(226, 232, 240, .72) !important;
    font-size: .8rem;
    font-weight: 600;
    transition: background-color .14s ease, color .14s ease, border-color .14s ease;
    border-left: 2px solid transparent;
}

.nav a:hover {
    background: rgba(255, 255, 255, .07);
    color: #ffffff !important;
}

.nav a.active {
    background: rgba(6, 182, 212, .22);
    color: #ffffff !important;
    border-left-color: #67e8f9;
    padding-left: calc(.6rem - 2px);
}

.nav-icon {
    width: 1rem;
    height: 1rem;
    flex: 0 0 1rem;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.nav-group {
    border-top: 1px solid var(--erp-sidebar-border);
    padding-top: .22rem;
    margin-top: .1rem;
}

.nav-group:first-of-type {
    border-top: 0;
    margin-top: 0;
    padding-top: 0;
}

.nav-group summary {
    list-style: none;
    cursor: pointer;
    min-height: 2.1rem;
    padding: .5rem .6rem;
    border-radius: 8px;
    color: rgba(226, 232, 240, .75) !important;
    font-size: .72rem;
    font-weight: 700;
    text-transform: none;
    letter-spacing: .01em;
    display: flex;
    justify-content: flex-start;
    gap: .5rem;
    align-items: center;
    transition: background .14s ease;
}

.nav-group summary::-webkit-details-marker {
    display: none;
}

.nav-group summary::after {
    content: '';
    width: .5rem;
    height: .5rem;
    border-right: 1.5px solid rgba(226, 232, 240, .45);
    border-bottom: 1.5px solid rgba(226, 232, 240, .45);
    transform: rotate(45deg) translateY(-2px);
    margin-left: auto;
    flex-shrink: 0;
    transition: transform .18s ease;
}

.nav-group[open] summary::after {
    transform: rotate(225deg) translateY(-2px);
}

.nav-group[open] summary {
    background: rgba(255, 255, 255, .06);
    color: #ffffff !important;
}

.nav-sub {
    display: grid;
    gap: .08rem;
    margin-left: .82rem;
    padding: .2rem 0 .35rem .52rem;
    border-left: 1px solid rgba(255, 255, 255, .15);
    overflow: hidden;
    transition: max-height 0.32s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.26s ease;
}

.nav-sub a {
    min-height: 1.85rem;
    padding: .32rem .48rem;
    color: rgba(226, 232, 240, .58) !important;
    font-size: .78rem;
    font-weight: 600;
    border-radius: 7px;
}

.nav-sub a:hover {
    color: #ffffff !important;
    background: rgba(255, 255, 255, .06);
}

.nav-sub a.active {
    color: #a5f3fc !important;
    background: rgba(6, 182, 212, .16);
    border-left-color: transparent;
}

@keyframes erp-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(6, 182, 212, .60); }
    50%       { box-shadow: 0 0 0 4px rgba(6, 182, 212, .0); }
}

.notification-count {
    background: #0891b2 !important;
    color: #ffffff !important;
    margin-left: auto;
    animation: erp-pulse 2s ease-in-out infinite;
}

.erp-icon {
    width: 1rem;
    height: 1rem;
    flex: 0 0 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: currentColor;
}

.erp-icon svg {
    width: 100%;
    height: 100%;
    display: block;
}

.nav .erp-icon {
    width: .98rem;
    height: .98rem;
    opacity: .88;
}

.nav-group > summary > .erp-icon {
    color: var(--erp-sidebar-primary);
    opacity: 1;
}

.nav a.active .erp-icon,
.nav a:hover .erp-icon {
    color: #ffffff;
    opacity: 1;
}

.sidebar-user {
    margin-top: auto;
    padding: .85rem .9rem;
    border-top: 1px solid var(--erp-sidebar-border);
    color: rgba(226, 232, 240, .72);
    background: rgba(0, 0, 0, .15);
}

.sidebar-user__name {
    color: #ffffff;
    font-weight: 800;
    font-size: .8rem;
}

.sidebar-user__role {
    margin-top: .1rem;
    font-size: .68rem;
    color: rgba(226, 232, 240, .5);
    text-transform: capitalize;
}

.sidebar-user form {
    margin-top: .65rem;
}

.sidebar-logout {
    width: 100%;
    justify-content: center;
    background: rgba(255, 255, 255, .08) !important;
    border-color: rgba(255, 255, 255, .12) !important;
    color: rgba(226, 232, 240, .9) !important;
    font-size: .76rem;
}

.sidebar-logout:hover {
    background: rgba(255, 255, 255, .14) !important;
    color: #ffffff !important;
}

/* ── Main content ──────────────────────────────────────────── */
.main {
    min-width: 0;
    padding: 1.1rem;
}

.company-context {
    display: flex;
    align-items: center;
    gap: .55rem;
    justify-content: flex-end;
    flex-wrap: wrap;
    margin: 0 0 .9rem;
    padding: .65rem .8rem;
    background: linear-gradient(135deg, #ede9fe 0%, #f0f2ff 100%);
    border: 1px solid #ddd6fe;
    border-radius: 10px;
    box-shadow: var(--erp-shadow);
}

.company-context form {
    margin: 0;
}

.company-context select,
.company-context input {
    min-height: 2.1rem;
}

.company-context select {
    width: auto;
    min-width: 210px;
}

.context-badge {
    display: inline-flex;
    align-items: center;
    min-height: 2.1rem;
    border: 1px solid var(--erp-border);
    background: var(--erp-soft-bg);
    border-radius: 999px;
    padding: .34rem .72rem;
    color: var(--erp-muted);
    font-size: .72rem;
    font-weight: 700;
}

.global-search {
    margin-right: auto !important;
    flex: 1 1 320px;
    max-width: 560px;
}

.global-search input {
    min-width: 260px;
}

/* ── Topbar ────────────────────────────────────────────────── */
.topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .85rem;
    margin-bottom: 1rem;
    padding: 1rem 1.1rem;
    background: linear-gradient(to bottom, #faf9ff 0%, #ffffff 100%);
    border: 1px solid var(--erp-border);
    border-top: 2px solid #e0e4ff;
    border-radius: 10px;
    box-shadow: var(--erp-shadow);
}

.page-header {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: center;
    gap: .85rem;
    margin-bottom: 1rem;
    padding: 1rem 1.1rem;
    background: linear-gradient(to bottom, #faf9ff 0%, #ffffff 100%);
    border: 1px solid var(--erp-border);
    border-top: 2px solid #e0e4ff;
    border-radius: 10px;
    box-shadow: var(--erp-shadow);
}

.page-header > :first-child {
    min-width: 0;
    flex: 1 1 auto;
}

.page-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .48rem;
}

.topbar .actions,
.page-header .actions,
.page-actions {
    margin-top: 0;
}

h1,
.topbar h1,
.page-header h1 {
    margin: 0;
    color: var(--erp-text);
    font-size: 1.28rem;
    font-weight: 800;
}

h2 {
    color: var(--erp-text);
    font-size: .96rem;
    font-weight: 800;
}

.subtitle,
.muted {
    color: var(--erp-muted);
}

/* ── Buttons ───────────────────────────────────────────────── */
.btn {
    border: 1px solid var(--erp-primary);
    border-radius: 8px;
    background: linear-gradient(135deg, #7c3aed 0%, var(--erp-primary) 100%);
    color: #ffffff;
    padding: .46rem .78rem;
    min-height: 2.15rem;
    display: inline-flex;
    gap: .42rem;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-weight: 700;
    font-size: .78rem;
    line-height: 1.2;
    box-shadow: 0 1px 3px rgba(79, 70, 229, .25);
    transition: background .14s ease, box-shadow .14s ease, transform .1s ease;
}

.btn .erp-icon {
    width: .92rem;
    height: .92rem;
}

.owner-btn {
    gap: .4rem;
}

.owner-btn .erp-icon {
    width: .92rem;
    height: .92rem;
}

td .btn .erp-icon,
th .btn .erp-icon,
.line-table .btn .erp-icon {
    width: .78rem;
    height: .78rem;
}

.btn:hover {
    background: linear-gradient(135deg, #6d28d9 0%, #4338ca 100%);
    border-color: #4338ca;
    color: #ffffff;
    box-shadow: 0 3px 8px rgba(79, 70, 229, .30);
    transform: translateY(-1px);
}

.btn:active {
    transform: translateY(0);
    box-shadow: 0 1px 3px rgba(79, 70, 229, .20);
}

.btn.secondary {
    background: #ede9fe;
    border-color: #c4b5fd;
    color: #4f46e5;
    box-shadow: none;
}

.btn.secondary:hover {
    background: #ddd6fe;
    border-color: #a78bfa;
    color: #4338ca;
    transform: translateY(-1px);
    box-shadow: 0 2px 6px rgba(99, 102, 241, .18);
}

.btn.danger {
    background: linear-gradient(135deg, #ef4444 0%, var(--erp-danger) 100%);
    border-color: var(--erp-danger);
    color: #ffffff;
}

.btn.danger:hover {
    background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
    border-color: #b91c1c;
    transform: translateY(-1px);
}

.btn-sm {
    min-height: 1.72rem;
    padding: .26rem .5rem;
    font-size: .72rem;
}

td .btn,
th .btn,
.line-table .btn {
    min-height: 1.72rem;
    padding: .26rem .46rem;
    font-size: .72rem;
}

/* ── Cards / Panels ────────────────────────────────────────── */
.panel,
.stat,
.total-box {
    background: var(--erp-card-bg);
    border: 1px solid var(--erp-border);
    border-radius: 10px;
    box-shadow: var(--erp-shadow);
}

.panel {
    padding: .95rem;
}

.inline-summary-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.inline-summary-row > * {
    min-width: 0;
}

.soft-section {
    margin-top: 1rem;
    margin-bottom: 1rem;
    background: #fafbfd;
}

.section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .85rem;
}

.section-heading h2 {
    margin: 0;
}

.section-heading .muted {
    margin-top: .15rem;
}

.grid.cols-4 > .panel[style*="min-height"],
.grid.cols-3 > .panel[style*="min-height"],
.grid.cols-2 > .panel[style*="min-height"] {
    min-height: 8rem !important;
}

.grid {
    display: grid;
    gap: .8rem;
}

.grid.cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.grid.cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid.cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* ── Stat cards ────────────────────────────────────────────── */
.stat {
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    min-height: 4.05rem;
    padding: .62rem 2.65rem .62rem .78rem;
    transition: transform .14s ease, box-shadow .14s ease;
    border-top: 3px solid transparent;
}

.stat:first-child { border-top-color: var(--erp-accent); }
.stat:nth-child(2) { border-top-color: var(--erp-success); }
.stat:nth-child(3) { border-top-color: var(--erp-warning); }
.stat:nth-child(4) { border-top-color: var(--erp-danger); }

.notification-summary {
    margin-bottom: .8rem;
}

.notification-filter-card {
    color: var(--erp-text) !important;
    text-decoration: none;
}

.notification-filter-card.active {
    border-color: rgba(99, 102, 241, .42);
    box-shadow: 0 8px 24px rgba(99, 102, 241, .12);
}

.approval-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin: .55rem 0 .75rem;
}

.approval-tabs .btn {
    min-height: 2rem;
    gap: .35rem;
}

.approval-tabs .btn.active,
.btn.secondary.active {
    border-color: rgba(37, 99, 235, .42);
    background: rgba(37, 99, 235, .10);
    color: var(--erp-primary);
}

.sales-analysis-tabs {
    margin-top: -.25rem;
}

.sales-analysis-filter {
    margin-top: .25rem;
}

.sales-analysis-toggle {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-height: 1.92rem;
    padding: .31rem .58rem;
    border: 1px solid var(--erp-border);
    border-radius: 8px;
    background: #f8fafc;
    font-size: .72rem !important;
    font-weight: 700;
    color: var(--erp-text);
    white-space: nowrap;
}

.sales-analysis-toggle input {
    width: .9rem;
    height: .9rem;
    min-height: 0;
    padding: 0;
}

.sales-analysis-note {
    margin: .55rem 0;
    padding: .52rem .7rem;
    border: 1px solid rgba(37, 99, 235, .18);
    border-left: 3px solid var(--erp-primary);
    border-radius: 8px;
    background: rgba(37, 99, 235, .06);
    color: var(--erp-muted);
    font-size: .76rem;
}

.stat-icon {
    position: absolute;
    top: .62rem;
    right: .65rem;
    width: 1.72rem;
    height: 1.72rem;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(99, 102, 241, .1);
    color: var(--erp-primary);
}

.stat-icon .erp-icon {
    width: 1rem;
    height: 1rem;
}

a.stat:hover {
    transform: translateY(-2px);
    box-shadow: var(--erp-shadow-md);
}

.stat .label,
.total-box .label {
    color: var(--erp-muted);
    font-size: .65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.stat .value,
.total-box .value {
    color: var(--erp-text);
    font-size: .98rem;
    font-weight: 800;
    margin-top: .18rem;
    overflow-wrap: anywhere;
}

/* ── Tables ────────────────────────────────────────────────── */
table {
    width: 100%;
    background: #ffffff;
    border: 1px solid var(--erp-border);
    border-radius: 10px;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    box-shadow: var(--erp-shadow);
    font-size: .78rem;
}

table.line-table {
    overflow: visible;
}

th,
td {
    text-align: left;
    padding: .52rem .62rem;
    border-bottom: 1px solid var(--erp-border);
    vertical-align: top;
}

th {
    background: var(--erp-soft-bg);
    color: var(--erp-primary);
    font-size: .65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

tbody tr:nth-child(even) > td {
    background: #fafbff;
}

tbody tr:hover > td {
    background: #f0efff !important;
}

tr:last-child td {
    border-bottom: 0;
}

/* ── Forms ─────────────────────────────────────────────────── */
label {
    display: block;
    margin-bottom: .28rem;
    color: var(--erp-text);
    font-weight: 700;
    font-size: .78rem;
}

input,
select,
textarea {
    width: 100%;
    border: 1px solid #d4d6f5;
    border-radius: 10px;
    padding: .48rem .56rem;
    background: #ffffff;
    color: var(--erp-text);
    font: inherit;
    line-height: 1.35;
    box-shadow: none;
    transition: border-color .14s ease, box-shadow .14s ease;
}

input:focus,
select:focus,
textarea:focus {
    border-color: rgba(99, 102, 241, .7);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(99, 102, 241, .12);
}

input[type="checkbox"],
input[type="radio"] {
    width: auto;
    padding: 0;
}

.checkbox-grid {
    display: grid;
    gap: .32rem;
}

.checkbox-grid.compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.checkbox-line {
    display: inline-flex;
    align-items: center;
    gap: .38rem;
    margin: 0;
    color: var(--erp-text);
    font-size: .74rem;
    font-weight: 700;
}

.checkbox-line input {
    flex: 0 0 auto;
}

textarea {
    min-height: 74px;
    resize: vertical;
}

.form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: .75rem;
}

.form-row.three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.erp-compact-form .form-row,
.erp-compact-form .form-row.three,
.erp-compact-form .form-row.is-tight {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .62rem;
    margin-bottom: .62rem;
}

.erp-compact-form .form-row > * {
    min-width: 0;
}

.erp-compact-form .transaction-flow-stack.is-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.erp-compact-form .transaction-flow-card > .lookup,
.erp-compact-form .transaction-flow-card > input,
.erp-compact-form .transaction-flow-card > select,
.erp-compact-form .transaction-flow-card .lookup,
.erp-compact-form .transaction-flow-card input,
.erp-compact-form .transaction-flow-card select {
    width: 100%;
}

.erp-compact-form .span-2 {
    grid-column: span 2;
}

.erp-compact-form label {
    margin-bottom: .22rem;
}

.erp-compact-form input,
.erp-compact-form select {
    min-height: 34px;
}

.erp-compact-form textarea {
    min-height: 62px;
}

@media (max-width: 1100px) {
    .erp-compact-form .form-row,
    .erp-compact-form .form-row.three,
    .erp-compact-form .form-row.is-tight {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .erp-compact-form .form-row,
    .erp-compact-form .form-row.three,
    .erp-compact-form .form-row.is-tight,
    .erp-compact-form .transaction-flow-stack.is-compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .erp-compact-form .form-row,
    .erp-compact-form .form-row.three,
    .erp-compact-form .form-row.is-tight,
    .erp-compact-form .transaction-flow-stack.is-compact {
        grid-template-columns: minmax(0, 1fr);
    }
}

.form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    align-items: center;
    margin-top: .9rem;
}

details {
    border-radius: var(--tblr-border-radius);
}

details > summary {
    cursor: pointer;
    color: var(--erp-primary) !important;
    font-size: .8rem;
}

/* ── Filters ───────────────────────────────────────────────── */
.filters {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .65rem;
    margin-bottom: .85rem;
    padding: .9rem;
    background: #ffffff;
    border: 1px solid #e0e4ff;
    border-top: 3px solid #c4b5fd;
    border-radius: 10px;
    box-shadow: var(--erp-shadow);
}

.filters.erp-filter-form {
    position: relative;
}

.filters .erp-filter-actions {
    display: flex;
    align-items: end;
    gap: .48rem;
}

.filters-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: .65rem;
    align-items: end;
}

.button-row {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.button-row.compact {
    gap: .35rem;
}

.row-critical td {
    background: #fff7ed;
}

.empty-cell {
    color: var(--erp-muted);
    padding: 1.5rem !important;
    text-align: center;
}

.empty-state.success {
    color: var(--erp-success);
}

.filters.is-collapsed .erp-filter-field.is-extra-filter {
    display: none;
}

.erp-filter-toggle {
    justify-self: start;
}

.erp-filter-toggle .erp-icon {
    width: .82rem;
    height: .82rem;
}

/* ── Actions ───────────────────────────────────────────────── */
.actions {
    display: flex;
    flex-wrap: wrap;
    gap: .48rem;
    align-items: center;
    margin-top: .75rem;
}

/* ── Pagination ────────────────────────────────────────────── */
.erp-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-top: .9rem;
    padding: .58rem .7rem;
    background: #ffffff;
    border: 1px solid var(--erp-border);
    border-radius: 10px;
    box-shadow: var(--erp-shadow);
    font-size: .78rem;
}

.erp-pagination__summary {
    color: var(--erp-muted);
    white-space: nowrap;
}

.erp-pagination__summary strong {
    color: var(--erp-text);
}

.erp-pagination__pages {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .25rem;
}

.erp-page-btn {
    min-width: 2rem;
    min-height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .28rem .55rem;
    border: 1px solid var(--erp-border);
    border-radius: 7px;
    background: var(--erp-soft-bg);
    color: var(--erp-text) !important;
    font-weight: 700;
    line-height: 1;
    transition: background .12s ease, border-color .12s ease;
}

.erp-page-btn:hover {
    background: rgba(99, 102, 241, .1);
    border-color: rgba(99, 102, 241, .35);
}

.erp-page-btn.is-active {
    background: var(--erp-primary);
    border-color: var(--erp-primary);
    color: #ffffff !important;
    box-shadow: 0 2px 6px rgba(79, 70, 229, .28);
}

.erp-page-btn.is-disabled,
.erp-page-btn.is-gap {
    color: var(--erp-muted) !important;
    background: #ffffff;
    cursor: not-allowed;
    opacity: .62;
}

.erp-pagination__per-page {
    display: flex;
    align-items: center;
    gap: .45rem;
    white-space: nowrap;
}

.erp-pagination__per-page label {
    margin: 0;
    color: var(--erp-muted);
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
}

.erp-pagination__per-page select {
    width: auto;
    min-width: 72px;
    min-height: 2rem;
    padding: .28rem 1.6rem .28rem .5rem;
}

/* ── Alerts ────────────────────────────────────────────────── */
.alert {
    border-radius: 10px;
    padding: .68rem .82rem;
    margin-bottom: .85rem;
    border: 1px solid var(--erp-border);
    border-left: 4px solid var(--erp-border);
    background: #ffffff;
    box-shadow: var(--erp-shadow);
}

.alert.ok {
    background: #f0fdf4;
    color: #15803d;
    border-color: #bbf7d0;
    border-left-color: var(--erp-success);
}

.alert.error {
    background: #fef2f2;
    color: var(--erp-danger);
    border-color: #fecaca;
    border-left-color: var(--erp-danger);
}

.alert.warning {
    background: #fffbeb;
    color: #92400e;
    border-color: #fde68a;
    border-left-color: var(--erp-warning);
}

.approval-decision-panel,
.approval-readonly-alert {
    margin-top: 1rem;
}

.erp-error-list {
    margin: .45rem 0 0;
    padding-left: 1.15rem;
}

.erp-error-list li + li {
    margin-top: .25rem;
}

/* ── Badges ────────────────────────────────────────────────── */
.badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: rgba(180, 83, 9, .1);
    color: #92400e;
    padding: .24rem .62rem;
    font-size: .7rem;
    font-weight: 700;
    line-height: 1.2;
}

.badge.ok,
.badge.success,
.badge.paid,
.badge.posted,
.badge.completed,
.badge.cleared {
    background: rgba(21, 128, 61, .1);
    color: var(--erp-success);
}

.badge.warn,
.badge.warning,
.badge.pending,
.badge.unpaid,
.badge.draft {
    background: rgba(180, 83, 9, .1);
    color: #92400e;
}

.badge.danger,
.badge.error,
.badge.cancelled,
.badge.rejected,
.badge.bounced {
    background: rgba(220, 38, 38, .1);
    color: var(--erp-danger);
}

.badge.badge-compact {
    font-size: .62rem;
    padding: .14rem .42rem;
}

/* ── Checkboxes / radio groups ─────────────────────────────── */
.checks {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem;
}

.checks label {
    display: flex;
    gap: .45rem;
    align-items: center;
    margin: 0;
    font-weight: 500;
}

/* ── Permission UI ─────────────────────────────────────────── */
.permission-toolbar {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto minmax(220px, 320px);
    gap: .75rem;
    align-items: end;
    margin: 1rem 0;
    padding: .9rem;
    background: var(--erp-soft-bg);
    border: 1px solid var(--erp-border);
    border-radius: 10px;
}

.permission-toolbar__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    justify-content: flex-end;
}

.permission-search label {
    font-size: .7rem;
    text-transform: uppercase;
    color: var(--erp-muted);
}

.permission-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    gap: .9rem;
    align-items: start;
}

.permission-main,
.permission-access {
    display: grid;
    gap: .65rem;
}

.permission-group,
.permission-access-panel {
    background: #ffffff;
    border: 1px solid var(--erp-border);
    border-radius: 10px;
    box-shadow: var(--erp-shadow);
    overflow: hidden;
}

.permission-group > summary,
.permission-access-panel > summary {
    min-height: 3rem;
    display: flex;
    align-items: center;
    gap: .75rem;
    justify-content: space-between;
    padding: .75rem .9rem;
    background: #ffffff;
    color: var(--erp-text) !important;
    list-style: none;
}

.permission-group > summary::-webkit-details-marker,
.permission-access-panel > summary::-webkit-details-marker {
    display: none;
}

.permission-group[open] > summary,
.permission-access-panel[open] > summary {
    border-bottom: 1px solid var(--erp-border);
    background: var(--erp-soft-bg);
}

.permission-group__title {
    display: block;
    font-weight: 800;
    color: var(--erp-text);
}

.permission-group__note {
    display: block;
    margin-top: .12rem;
    color: var(--erp-muted);
    font-size: .72rem;
    font-weight: 500;
    text-transform: none;
}

.permission-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3.4rem;
    padding: .25rem .55rem;
    border-radius: 999px;
    background: rgba(99, 102, 241, .12);
    color: var(--erp-primary);
    font-size: .72rem;
    font-weight: 800;
    white-space: nowrap;
}

.permission-group.is-empty .permission-count {
    background: rgba(100, 116, 139, .1);
    color: var(--erp-muted);
}

.permission-group__body,
.permission-access-panel > .muted,
.permission-access-panel > .permission-check-list {
    padding: .75rem .9rem;
}

.permission-access-panel > .muted {
    padding-bottom: 0;
}

.permission-group-actions {
    display: flex;
    gap: .45rem;
    justify-content: flex-end;
    margin-bottom: .65rem;
}

.permission-group-actions .btn {
    min-height: 1.8rem;
    padding: .28rem .55rem;
    font-size: .72rem;
}

.permission-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: .45rem;
}

.permission-row,
.permission-check-list label {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    min-height: 2.55rem;
    margin: 0;
    padding: .55rem;
    border: 1px solid var(--erp-border);
    border-radius: 8px;
    background: #ffffff;
    font-weight: 500;
    transition: border-color .12s ease, background .12s ease;
}

.permission-row:hover,
.permission-check-list label:hover {
    border-color: rgba(99, 102, 241, .35);
    background: #f8faff;
}

.permission-row input,
.permission-check-list input {
    margin-top: .15rem;
    flex: 0 0 auto;
}

.permission-text {
    display: grid;
    gap: .1rem;
    min-width: 0;
}

.permission-text strong {
    color: var(--erp-text);
    font-size: .8rem;
}

.permission-text small {
    color: var(--erp-muted);
    font-size: .66rem;
    overflow-wrap: anywhere;
}

.permission-check-list {
    display: grid;
    gap: .45rem;
}

/* ── Settings UI ───────────────────────────────────────────── */
.settings-shell {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: .9rem;
    align-items: start;
}

.settings-nav {
    position: sticky;
    top: .9rem;
    display: grid;
    gap: .4rem;
    padding: .72rem;
}

.settings-nav__title {
    padding: .25rem .38rem .45rem;
    color: var(--erp-muted);
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.settings-nav a {
    display: grid;
    gap: .08rem;
    padding: .62rem .68rem;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--erp-text);
    transition: background .12s ease, border-color .12s ease;
}

.settings-nav a:hover {
    background: var(--erp-soft-bg);
    border-color: var(--erp-border);
}

.settings-nav a strong {
    font-size: .8rem;
    font-weight: 800;
}

.settings-nav a span {
    color: var(--erp-muted);
    font-size: .69rem;
    line-height: 1.25;
}

.settings-content {
    display: grid;
    gap: .9rem;
    min-width: 0;
}

.settings-content > * {
    min-width: 0;
}

.settings-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
}

.settings-summary-card,
.settings-card,
.settings-savebar {
    background: var(--erp-card-bg);
    border: 1px solid var(--erp-border);
    border-radius: 10px;
    box-shadow: var(--erp-shadow);
    min-width: 0;
}

.settings-summary-card {
    min-height: 4.2rem;
    display: grid;
    align-content: center;
    gap: .25rem;
    padding: .7rem .82rem;
}

.settings-summary-card span {
    color: var(--erp-muted);
    font-size: .66rem;
    font-weight: 800;
    text-transform: uppercase;
}

.settings-summary-card strong {
    color: var(--erp-text);
    font-size: .98rem;
    font-weight: 900;
    overflow-wrap: anywhere;
}

.settings-card {
    padding: .95rem;
    scroll-margin-top: 1rem;
}

.settings-card__head {
    display: flex;
    justify-content: space-between;
    gap: .8rem;
    align-items: flex-start;
    margin-bottom: .85rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--erp-border);
}

.settings-card__head h2 {
    margin: .1rem 0 .16rem;
    font-size: 1rem;
}

.settings-card__head p {
    margin: 0;
    max-width: 760px;
    color: var(--erp-muted);
}

.settings-kicker {
    color: var(--erp-accent);
    font-size: .66rem;
    font-weight: 900;
    text-transform: uppercase;
}

.settings-field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .72rem;
}

.settings-field-grid.three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.settings-field-grid.compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.settings-field {
    min-width: 0;
}

.settings-field label {
    color: var(--erp-text);
    font-size: .72rem;
    font-weight: 800;
}

.settings-field small,
.settings-mapping-row small {
    display: block;
    margin-top: .28rem;
    color: var(--erp-muted);
    font-size: .68rem;
    line-height: 1.35;
}

.settings-help-card {
    display: grid;
    align-content: center;
    gap: .25rem;
    min-height: 4.8rem;
    padding: .75rem;
    border: 1px solid rgba(99, 102, 241, .18);
    border-radius: 10px;
    background: rgba(99, 102, 241, .05);
}

.settings-help-card strong {
    color: var(--erp-primary);
    font-weight: 900;
}

.settings-help-card span {
    color: var(--erp-muted);
    font-size: .74rem;
}

.settings-status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.8rem;
    padding: .28rem .65rem;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 900;
    white-space: nowrap;
}

.settings-status-pill.is-on {
    background: rgba(21, 128, 61, .1);
    color: var(--erp-success);
}

.settings-status-pill.is-off {
    background: rgba(100, 116, 139, .12);
    color: var(--erp-muted);
}

.settings-mapping-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: .55rem;
}

.settings-mapping-row {
    display: grid;
    grid-template-columns: minmax(170px, .72fr) minmax(0, 1fr);
    gap: .65rem;
    align-items: center;
    padding: .65rem;
    border: 1px solid var(--erp-border);
    border-radius: 8px;
    background: #ffffff;
}

.settings-mapping-row strong {
    color: var(--erp-text);
    font-size: .78rem;
}

.approval-module-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: .7rem;
    margin-top: .85rem;
}

.approval-module-card {
    padding: .75rem;
    border: 1px solid var(--erp-border);
    border-radius: 9px;
    background: #ffffff;
}

.approval-module-card__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 116px;
    gap: .65rem;
    align-items: start;
    margin-bottom: .62rem;
}

.approval-module-card__head strong {
    display: block;
    color: var(--erp-text);
    font-weight: 900;
}

.approval-module-card__head span {
    display: block;
    margin-top: .12rem;
    color: var(--erp-muted);
    font-size: .66rem;
    overflow-wrap: anywhere;
}

.approval-role-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .48rem;
}

.approval-check-list {
    display: grid;
    gap: .35rem;
    margin-top: .65rem;
    padding-top: .58rem;
    border-top: 1px solid var(--erp-border);
}

.approval-check-list > span {
    color: var(--erp-muted);
    font-size: .68rem;
    font-weight: 900;
    text-transform: uppercase;
}

.approval-check-list > div {
    display: flex;
    flex-wrap: wrap;
    gap: .38rem;
}

.approval-check-list label {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin: 0;
    padding: .32rem .52rem;
    border: 1px solid var(--erp-border);
    border-radius: 999px;
    background: var(--erp-soft-bg);
    font-size: .72rem;
    font-weight: 800;
}

.settings-override-list {
    margin-top: .8rem;
}

.settings-override-list__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    margin-bottom: .45rem;
}

.settings-override-list__head span {
    color: var(--erp-muted);
    font-size: .72rem;
    font-weight: 800;
}

.settings-savebar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .85rem;
    padding: .72rem .82rem;
}

.settings-savebar strong {
    display: block;
    font-weight: 900;
}

.settings-savebar span {
    display: block;
    color: var(--erp-muted);
    font-size: .72rem;
}

/* ── Line table (invoice form) ─────────────────────────────── */
.line-table th,
.line-table td {
    padding: .34rem .42rem;
}

.line-table input,
.line-table select {
    min-width: 110px;
    padding: .34rem .42rem;
}

.serial-cell {
    width: 42px;
    text-align: center;
    color: var(--erp-muted);
}

.icon-btn {
    min-width: 1.95rem;
    height: 1.95rem;
    border: 1px solid var(--erp-primary);
    border-radius: 8px;
    background: linear-gradient(135deg, #7c3aed 0%, var(--erp-primary) 100%);
    color: #ffffff;
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 .62rem;
    transition: background .14s ease;
}

.icon-btn.secondary {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: var(--erp-primary);
}

.add-row-btn {
    gap: .45rem;
    font-size: .82rem;
}

.add-row-btn .plus {
    font-size: 1.2rem;
    line-height: 1;
}

/* ── Lookup autocomplete ───────────────────────────────────── */
.lookup {
    position: relative;
}

.lookup-menu {
    display: none;
    position: absolute;
    z-index: 2147483000;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    max-height: 220px;
    overflow-y: auto;
    overflow-x: hidden;
    background: #ffffff;
    border: 1px solid var(--erp-border);
    border-radius: 9px;
    box-shadow: 0 .75rem 2.5rem rgba(15, 23, 42, .16);
}

.lookup.open .lookup-menu {
    display: block;
}

.lookup.open {
    z-index: 2147483000;
}

.lookup.is-positioned .lookup-menu {
    position: fixed;
    right: auto;
}

.lookup.is-loading::after {
    content: '';
    position: absolute;
    top: .72rem;
    right: .7rem;
    width: .78rem;
    height: .78rem;
    border: 2px solid rgba(99, 102, 241, .24);
    border-top-color: var(--erp-accent);
    border-radius: 50%;
    animation: erpSpin .72s linear infinite;
}

.lookup-option {
    width: 100%;
    border: 0;
    background: #ffffff;
    text-align: left;
    padding: .55rem .72rem;
    color: var(--erp-text);
    cursor: pointer;
    border-bottom: 1px solid var(--erp-border);
    transition: background .1s ease;
}

.lookup-option:hover,
.lookup-option.active {
    background: rgba(99, 102, 241, .08);
    color: var(--erp-primary);
}

.lookup-empty {
    padding: .55rem .72rem;
    color: var(--erp-muted);
}

/* ── Purchase source preview modal ─────────────────────────── */
.po-preview-link {
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--erp-primary);
    font: inherit;
    font-weight: 800;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.po-preview-link:hover {
    color: var(--erp-primary-dark);
}

/* ── Purchase Order screens ───────────────────────────────── */
.required-mark {
    color: var(--erp-danger);
}

.span-full {
    grid-column: 1 / -1;
}

.po-form {
    display: grid;
    gap: 1rem;
}

.po-form-card,
.po-items-card,
.po-list-panel {
    overflow: visible;
}

.po-items-card {
    padding: 0;
}

.po-items-card > .section-heading,
.po-list-head {
    padding: .95rem 1rem;
    border-bottom: 1px solid var(--erp-border);
}

.po-list-head h2 {
    margin: 0;
    font-size: 1rem;
}

.po-table-wrap {
    overflow-x: auto;
    padding: 0;
}

.po-lines-table {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.po-lines-table th,
.po-lines-table td {
    vertical-align: middle;
}

.po-lines-table .lookup-menu {
    min-width: 260px;
}

.po-col-qty { width: 90px; }
.po-col-uom { width: 110px; }
.po-col-price { width: 140px; }
.po-col-total { width: 130px; }
.po-col-notes { width: 150px; }
.po-col-remove { width: 42px; }

.po-price-hint {
    min-height: 1rem;
    color: var(--erp-muted);
    overflow-wrap: anywhere;
}

.po-items-footer {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 1rem 1rem;
    border-top: 1px solid var(--erp-border);
    background: #fafbfd;
}

.po-items-footer .actions {
    margin-top: 0;
}

.po-subtotal-box {
    min-width: 240px;
    border: 1px solid var(--erp-border);
    border-radius: 10px;
    background: #ffffff;
    padding: .62rem .72rem;
}

.po-subtotal-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    color: var(--erp-text);
    font-weight: 800;
}

.po-subtotal-line strong {
    color: var(--erp-primary);
}

.po-savebar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .85rem;
    margin-top: 0;
}

.po-savebar strong,
.po-savebar span {
    display: block;
}

.po-savebar span {
    margin-top: .15rem;
    color: var(--erp-muted);
    font-size: .74rem;
}

.po-savebar .actions {
    margin-top: 0;
    justify-content: flex-end;
}

.po-status-panel {
    margin-bottom: 1rem;
    padding: .72rem;
}

.po-status-row {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.po-filter-card .form-row {
    margin-bottom: 0;
}

.po-filter-grid {
    grid-template-columns: minmax(180px, 1.1fr) minmax(200px, 1.2fr) minmax(140px, .8fr) minmax(140px, .8fr) auto;
    align-items: end;
}

.po-filter-actions {
    display: flex;
    gap: .48rem;
    align-items: end;
}

.po-number-link {
    color: var(--erp-primary);
    font-weight: 800;
    text-decoration: none;
}

.po-number-link:hover {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.po-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
}

.table-actions,
.action-cell {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: .35rem;
    flex-wrap: wrap;
}

.table-actions .btn,
.action-cell .btn {
    white-space: nowrap;
}

.table-actions form,
.action-cell form {
    display: inline-flex;
    margin: 0;
}

.table-actions.is-vertical,
.action-cell.is-vertical {
    align-items: stretch;
    flex-direction: column;
}

.filter-actions {
    display: flex;
    align-items: end;
    gap: .48rem;
    flex-wrap: wrap;
}

.rpt-filter-card.filters {
    margin-bottom: .78rem;
}

.index-table-head {
    width: 1%;
    white-space: nowrap;
}

.empty-state {
    padding: 2rem !important;
    text-align: center;
}

.empty-state a {
    color: var(--erp-primary);
    font-weight: 800;
}

@media (max-width: 980px) {
    .po-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .po-filter-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 720px) {
    .page-header,
    .po-savebar,
    .po-items-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .page-actions,
    .po-savebar .actions {
        justify-content: flex-start;
    }

    .po-filter-grid {
        grid-template-columns: 1fr;
    }

    .po-subtotal-box {
        width: 100%;
    }
}

.po-preview-backdrop {
    position: fixed;
    inset: 0;
    z-index: 850;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(15, 23, 42, .42);
}

.po-preview-backdrop[hidden] {
    display: none;
}

.po-preview-modal {
    width: min(920px, 100%);
    max-height: min(88vh, 760px);
    overflow: auto;
    border: 1px solid var(--erp-border);
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 1.5rem 4rem rgba(15, 23, 42, .24);
}

.po-preview-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border-bottom: 1px solid var(--erp-border);
}

.po-preview-head h2 {
    margin: 0;
    font-size: 1rem;
}

.po-preview-close {
    display: inline-flex;
    width: 2rem;
    height: 2rem;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--erp-border);
    border-radius: 8px;
    background: #ffffff;
    color: var(--erp-muted);
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
}

.po-preview-close:hover {
    color: var(--erp-text);
    background: var(--erp-soft-bg);
}

.po-preview-meta {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .6rem;
    padding: 1rem 1.1rem .6rem;
}

.po-preview-meta > div {
    border: 1px solid var(--erp-border);
    border-radius: 10px;
    padding: .6rem .7rem;
    background: var(--erp-soft-bg);
}

.po-preview-meta span {
    display: block;
    margin-bottom: .25rem;
    color: var(--erp-muted);
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.po-preview-meta strong {
    color: var(--erp-text);
    font-size: .82rem;
}

.po-preview-modal .table-responsive {
    padding: 0 1.1rem 1rem;
}

.po-preview-actions {
    display: flex;
    justify-content: flex-end;
    gap: .6rem;
    padding: 0 1.1rem 1rem;
}

@media (max-width: 900px) {
    .po-preview-meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .po-preview-meta {
        grid-template-columns: 1fr;
    }
}

/* ── Totals ────────────────────────────────────────────────── */
.totals {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
    margin-top: .8rem;
}

.total-box {
    padding: .65rem;
    background: var(--erp-soft-bg);
    border-radius: 10px;
}

.summary-compact {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: .55rem;
    margin-bottom: .62rem;
}

.summary-pair {
    min-height: 2.95rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .38rem;
    align-items: stretch;
    padding: .38rem .56rem;
    background: #ffffff;
    border: 1px solid var(--erp-border);
    border-radius: 10px;
    box-shadow: var(--erp-shadow);
}

.summary-pair.is-single {
    grid-template-columns: 1fr;
}

.summary-metric {
    display: grid;
    align-content: center;
    gap: .06rem;
    min-width: 0;
}

.summary-metric + .summary-metric {
    padding-left: .42rem;
    border-left: 1px solid var(--erp-border);
}

.summary-metric span {
    color: var(--erp-muted);
    font-size: .54rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.summary-metric strong {
    color: var(--erp-text);
    font-size: .82rem;
    font-weight: 900;
    overflow-wrap: anywhere;
}

.summary-metric small {
    color: var(--erp-muted);
    font-size: .54rem;
    line-height: 1.25;
}

.balance-positive {
    color: var(--erp-primary);
    font-weight: 700;
}

.balance-negative {
    color: #b52020;
    font-weight: 700;
}

.balance-hint {
    font-size: .65rem;
}

/* ── Sales invoice index compact controls ─────────────────── */
.sales-index-topbar {
    align-items: center;
    margin-bottom: .56rem;
    padding: .58rem .9rem;
}

.sales-index-topbar h1 {
    font-size: 1.06rem;
}

.sales-index-topbar .subtitle {
    margin-top: .08rem;
    font-size: .68rem;
}

.sales-index-topbar .actions {
    gap: .4rem;
}

.sales-index-topbar .btn {
    min-height: 2rem;
    padding: .34rem .68rem;
    font-size: .72rem;
}

.sales-invoice-filters {
    align-items: end;
    grid-template-columns:
        minmax(145px, 1.2fr)
        minmax(145px, 1.2fr)
        minmax(104px, .72fr)
        minmax(104px, .72fr)
        minmax(82px, .5fr)
        minmax(102px, .6fr)
        max-content;
    gap: .48rem;
    padding: .62rem .72rem;
}

.sales-invoice-filters label {
    margin-bottom: .18rem;
    font-size: .64rem;
}

.sales-invoice-filters input,
.sales-invoice-filters select {
    min-height: 1.95rem;
    padding: .32rem .5rem;
    font-size: .75rem;
}

.sales-invoice-filters .filter-actions {
    align-items: end;
    flex-wrap: nowrap;
    gap: .34rem;
}

.sales-invoice-filters .btn {
    min-height: 1.95rem;
    padding: .32rem .58rem;
    font-size: .72rem;
}

.payment-ref-line {
    min-width: 9.5rem;
    line-height: 1.35;
}

.payment-ref-line + .payment-ref-line {
    margin-top: .42rem;
    padding-top: .42rem;
    border-top: 1px solid var(--erp-border);
}

/* ── Inventory index/report compact controls ─────────────── */
.inventory-filter-card {
    padding: .6rem .72rem;
}

.inventory-filter-card label {
    margin-bottom: .16rem;
    font-size: .63rem;
}

.inventory-filter-card input,
.inventory-filter-card select {
    min-height: 1.92rem;
    padding: .31rem .5rem;
    font-size: .74rem;
}

.inventory-filter-card .lookup-menu {
    font-size: .75rem;
}

.inventory-filter-card .filter-actions,
.inventory-filter-actions {
    align-items: end;
    flex-wrap: nowrap;
    gap: .34rem;
    margin-top: 0;
}

.inventory-filter-card .btn {
    min-height: 1.92rem;
    padding: .31rem .58rem;
    font-size: .72rem;
}

.purchase-invoice-filter {
    align-items: end;
    grid-template-columns:
        minmax(175px, 1.15fr)
        minmax(118px, .58fr)
        minmax(116px, .55fr)
        minmax(116px, .55fr)
        minmax(175px, 1fr)
        max-content;
    gap: .46rem;
}

.delivery-challan-filter {
    align-items: end;
    grid-template-columns:
        minmax(150px, 1fr)
        minmax(160px, 1.05fr)
        minmax(112px, .55fr)
        minmax(112px, .55fr)
        minmax(126px, .7fr)
        minmax(104px, .55fr)
        minmax(140px, .8fr)
        max-content;
    gap: .44rem;
}

.stock-report-filter .inventory-filter-grid {
    display: grid;
    grid-template-columns: minmax(240px, 1.3fr) minmax(165px, .72fr) max-content;
    gap: .46rem;
    align-items: end;
}

.item-purchase-filter {
    display: grid;
    grid-template-columns:
        minmax(245px, .9fr)
        minmax(112px, .5fr)
        minmax(112px, .5fr)
        minmax(165px, .78fr)
        minmax(165px, .78fr)
        max-content;
    gap: .42rem .5rem;
    align-items: end;
}

.item-purchase-filter .erp-date-presets {
    grid-column: 1 / 2;
    grid-row: 1;
    align-self: end;
    gap: .24rem;
}

.item-purchase-filter .erp-preset-btn {
    padding: .14rem .34rem !important;
    font-size: .6rem !important;
}

.item-purchase-from {
    grid-column: 2 / 3;
    grid-row: 1;
}

.item-purchase-to {
    grid-column: 3 / 4;
    grid-row: 1;
}

.item-purchase-item {
    grid-column: 4 / 5;
    grid-row: 1;
}

.item-purchase-vendor {
    grid-column: 5 / 6;
    grid-row: 1;
}

.item-purchase-warehouse {
    grid-column: 1 / 2;
    grid-row: 2;
}

.item-purchase-project {
    grid-column: 2 / 4;
    grid-row: 2;
}

.item-purchase-invoice {
    grid-column: 4 / 5;
    grid-row: 2;
}

.item-purchase-columns {
    grid-column: 5 / 6;
    grid-row: 2;
    margin-top: 0 !important;
    align-self: end;
}

.item-purchase-columns summary {
    display: inline-flex;
    align-items: center;
    min-height: 1.92rem;
    border: 1px solid var(--erp-border);
    border-radius: 8px;
    background: #f8fafc;
    padding: .31rem .58rem;
    white-space: nowrap;
}

.item-purchase-columns[open] {
    grid-column: 1 / -1;
    grid-row: auto;
}

.item-purchase-actions {
    grid-column: 6 / 7;
    grid-row: 2;
    align-self: end;
    flex-wrap: nowrap;
    margin-top: 0 !important;
}

.item-purchase-actions .btn {
    white-space: nowrap;
}

.erp-compact-filter {
    display: grid;
    grid-template-columns: repeat(5, minmax(120px, 1fr)) max-content;
    gap: .42rem .5rem;
    align-items: end;
}

.erp-compact-filter > .form-row,
.erp-compact-filter > .form-row.three {
    display: contents;
}

.erp-compact-filter > .form-row > div {
    min-width: 0;
}

.erp-compact-filter label {
    margin-bottom: .16rem;
    font-size: .63rem;
}

.erp-compact-filter input,
.erp-compact-filter select {
    min-height: 1.92rem;
    padding: .31rem .5rem;
    font-size: .74rem;
}

.erp-compact-filter > .actions,
.erp-compact-filter > .filter-actions {
    align-self: end;
    flex-wrap: nowrap;
    gap: .34rem;
    margin-top: 0 !important;
}

.erp-compact-filter > .actions .btn,
.erp-compact-filter > .filter-actions .btn {
    min-height: 1.92rem;
    padding: .31rem .58rem;
    font-size: .72rem;
    white-space: nowrap;
}

.erp-compact-filter > .rpt-details,
.erp-compact-filter > .rpt-details-lg,
.erp-compact-filter > details {
    align-self: end;
    margin-top: 0 !important;
}

.erp-compact-filter > .rpt-details > summary,
.erp-compact-filter > .rpt-details-lg > summary,
.erp-compact-filter > details > summary {
    display: inline-flex;
    align-items: center;
    min-height: 1.92rem;
    border: 1px solid var(--erp-border);
    border-radius: 8px;
    background: #f8fafc;
    padding: .31rem .58rem;
    white-space: nowrap;
}

.erp-compact-filter > .rpt-details[open],
.erp-compact-filter > .rpt-details-lg[open],
.erp-compact-filter > details[open] {
    grid-column: 1 / -1;
}

.erp-compact-filter > .rpt-details[open] > summary,
.erp-compact-filter > .rpt-details-lg[open] > summary,
.erp-compact-filter > details[open] > summary {
    margin-bottom: .35rem;
}

.erp-compact-filter > .rpt-preset-row {
    grid-column: 1 / -1;
    margin-bottom: .08rem;
}

.erp-compact-filter .erp-date-presets {
    grid-column: auto;
    align-self: end;
    gap: .24rem;
}

.erp-compact-filter .erp-preset-btn {
    padding: .14rem .4rem !important;
    font-size: .62rem !important;
}

.stock-breakdown {
    min-width: 13rem;
}

.sales-order-summary-selector {
    grid-column: 1 / -1;
}

.sales-order-summary-filter {
    grid-template-columns: repeat(6, minmax(105px, 1fr));
}

.sales-order-summary-filter > .sales-order-summary-actions {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    margin-top: .05rem !important;
}

.sales-order-summary-filter > .sales-order-summary-actions .btn {
    min-width: max-content;
}

.sales-order-summary-picker {
    grid-column: 1 / -1;
    margin: 0;
}

.sales-order-summary-help {
    margin-bottom: .55rem;
    font-size: .74rem;
}

.so-order-picker-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
    gap: .45rem;
}

.so-order-picker-card {
    display: flex;
    align-items: flex-start;
    gap: .45rem;
    min-width: 0;
    padding: .5rem .56rem;
    border: 1px solid var(--erp-border);
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
}

.so-order-picker-card input {
    width: auto;
    min-height: auto;
    margin-top: .18rem;
}

.so-order-picker-card span {
    display: grid;
    gap: .1rem;
    min-width: 0;
}

.so-order-picker-card strong {
    font-size: .78rem;
}

.so-order-picker-card small {
    color: var(--erp-muted);
    font-size: .68rem;
    line-height: 1.35;
}

.sales-order-summary-panel table th:nth-child(1) {
    width: 22%;
}

.sales-order-summary-use-col {
    width: 44px;
}

.sales-order-summary-panel table th:nth-child(2),
.sales-order-summary-panel table th:nth-child(3) {
    width: 8.5rem;
}

.sales-order-summary-detail {
    display: grid;
    gap: .26rem;
}

.sales-order-summary-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .22rem;
    line-height: 1.35;
}

.sales-order-summary-status-blank {
    min-width: 5rem;
}

.posting-matrix-note {
    margin: .75rem 0 1rem;
    padding: .7rem .85rem;
    border: 1px solid var(--border);
    border-left: 3px solid var(--brand);
    border-radius: var(--radius);
    background: var(--surface);
    color: var(--muted);
    font-size: .84rem;
}

.posting-matrix-section {
    margin-top: 1rem;
}

.posting-matrix-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    margin-bottom: .5rem;
}

.posting-matrix-section-head h2 {
    margin: 0;
    font-size: 1rem;
}

.posting-matrix-table,
.posting-matrix-map-table {
    min-width: 980px;
}

.posting-matrix-table th,
.posting-matrix-table td,
.posting-matrix-map-table th,
.posting-matrix-map-table td {
    vertical-align: top;
}

.posting-matrix-line {
    display: flex;
    gap: .45rem;
    align-items: flex-start;
    margin-bottom: .35rem;
}

.posting-matrix-line small {
    display: block;
    color: var(--muted);
    margin-top: .08rem;
}

.posting-matrix-side {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1.55rem;
    height: 1.25rem;
    border-radius: 999px;
    font-size: .66rem;
    font-weight: 800;
}

.posting-matrix-side.debit {
    color: #166534;
    background: #dcfce7;
}

.posting-matrix-side.credit {
    color: #9a3412;
    background: #ffedd5;
}

.sales-order-summary-print-meta {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .65rem;
    color: var(--erp-muted);
    font-size: .78rem;
}

.stock-breakdown summary {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    list-style: none;
}

.stock-breakdown summary::-webkit-details-marker {
    display: none;
}

.stock-breakdown summary::before {
    content: "›";
    color: var(--erp-primary);
    font-size: 1rem;
    font-weight: 900;
    line-height: 1;
    transform: rotate(0deg);
    transition: transform .16s ease;
}

.stock-breakdown[open] summary::before {
    transform: rotate(90deg);
}

.stock-breakdown summary span {
    flex: 1;
    min-width: 0;
    color: var(--erp-primary);
    font-weight: 800;
}

.stock-breakdown summary em {
    flex: 0 0 auto;
    border-radius: 999px;
    background: var(--erp-soft-bg);
    color: var(--erp-muted);
    font-size: .62rem;
    font-style: normal;
    font-weight: 800;
    padding: .12rem .45rem;
    white-space: nowrap;
}

.stock-breakdown-list {
    display: grid;
    gap: .28rem;
    margin: .45rem 0 .08rem 1.2rem;
    max-width: 30rem;
}

.stock-breakdown-list div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    border: 1px solid var(--erp-border);
    border-radius: 7px;
    background: #f8fafc;
    padding: .34rem .48rem;
}

.stock-breakdown-list span {
    color: var(--erp-text);
    font-size: .72rem;
    font-weight: 700;
}

.stock-breakdown-list strong {
    color: var(--erp-primary);
    font-size: .72rem;
    white-space: nowrap;
}

.inventory-columns-details {
    margin-top: .5rem !important;
}

.inventory-summary-strip {
    grid-template-columns: minmax(230px, 1fr) minmax(230px, 1fr) minmax(180px, .8fr);
}

.inventory-table-panel table {
    margin-bottom: 0;
}

.rpt-filter-card.is-dense {
    padding: .65rem .78rem;
    margin-bottom: .68rem;
}

.rpt-filter-card.is-dense .rpt-details-content,
.rpt-filter-card.is-dense .rpt-columns-grid {
    margin-top: .55rem;
}

.rpt-filter-card.is-dense .form-row,
.rpt-filter-card.is-dense .form-row.three {
    margin-bottom: .48rem;
}

.rpt-filter-card.is-dense .actions,
.rpt-filter-card.is-dense .filter-actions,
.rpt-filter-card.is-dense .rpt-filter-actions {
    margin-top: .45rem;
}

.rpt-filter-card.inventory-filter-card .filter-actions,
.rpt-filter-card.inventory-filter-card .actions,
.rpt-filter-card.inventory-filter-card .rpt-filter-actions {
    margin-top: 0;
}

.topbar.is-compact {
    padding: .68rem .9rem;
    margin-bottom: .56rem;
}

.topbar.is-compact .actions {
    gap: .35rem;
}

.compact-h2,
h2.compact-h2 {
    margin-top: 0;
}

.alert-loose {
    margin-bottom: 1rem;
    line-height: 1.5;
}

.actions.is-compact {
    margin-top: .38rem;
}

.actions-space-between {
    justify-content: space-between;
}

.actions-grow {
    flex: 1;
}

.align-end {
    align-items: end;
}

.align-start {
    align-items: start;
}

.search-form {
    margin-bottom: 1rem;
}

.w-70 {
    width: 70px;
}

.w-105 {
    width: 105px;
}

.w-110 {
    width: 110px;
}

.w-130 {
    width: 130px;
}

.w-140 {
    width: 140px;
}

.rpt-mt {
    margin-top: 1.38rem;
}

.mb-0 {
    margin-bottom: 0 !important;
}

.mt-0 {
    margin-top: 0 !important;
}

.mt-2 {
    margin-top: .5rem !important;
}

.mt-3 {
    margin-top: .75rem !important;
}

.mb-3 {
    margin-bottom: .9rem !important;
}

.rpt-split-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 18px;
}

.rpt-split-grid .rpt-tbl-wrap {
    margin-bottom: 0;
}

.rpt-columns-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
}

.report-sort-grid {
    display: grid;
    grid-template-columns: 1fr 90px;
    gap: .5rem;
    align-items: end;
}

.report-columns-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: .5rem;
}

.report-column-check {
    display: flex;
    gap: .5rem;
    align-items: center;
    font-weight: 600;
}

.report-save-grid {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: .5rem;
    align-items: end;
}

.rpt-columns-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
}

.rpt-unstyled-checkbox {
    width: auto;
}

.rpt-row-pending {
    background: #fffbe6;
}

.rpt-row-cleared {
    background: #eaf6f0;
}

.rpt-row-alert {
    background: #fdf0f0;
}

.rpt-cards {
    margin-bottom: .68rem;
}

.text-right {
    text-align: right;
}

.amount-tabular {
    font-variant-numeric: tabular-nums;
}

.amount-emphasis {
    font-weight: 600;
}

.inline-form {
    display: inline;
}

.rpt-card {
    padding: .52rem .68rem;
}

.rpt-card-label {
    margin-bottom: .1rem;
}

.rpt-card-value {
    font-size: .92rem;
}

.rpt-card-hint {
    margin-top: .12rem;
}

@media (max-width: 900px) {
    .sales-invoice-filters {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sales-invoice-filters .filter-actions {
        grid-column: 1 / -1;
    }

    .purchase-invoice-filter,
    .delivery-challan-filter,
    .erp-compact-filter,
    .item-purchase-filter,
    .stock-report-filter .inventory-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .purchase-invoice-filter .filter-actions,
    .delivery-challan-filter .filter-actions,
    .item-purchase-filter .erp-date-presets,
    .item-purchase-from,
    .item-purchase-to,
    .item-purchase-item,
    .item-purchase-vendor,
    .item-purchase-warehouse,
    .item-purchase-project,
    .item-purchase-invoice,
    .item-purchase-columns,
    .item-purchase-actions,
    .erp-compact-filter > .rpt-preset-row,
    .erp-compact-filter > .actions,
    .erp-compact-filter > .filter-actions,
    .erp-compact-filter > .rpt-details,
    .erp-compact-filter > .rpt-details-lg,
    .erp-compact-filter > details,
    .stock-report-filter .inventory-filter-actions {
        grid-column: 1 / -1;
        grid-row: auto;
        justify-content: flex-start;
    }

    .inventory-summary-strip {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .sales-index-topbar,
    .sales-index-topbar .actions {
        align-items: stretch;
        flex-direction: column;
    }

    .sales-invoice-filters {
        grid-template-columns: 1fr;
    }

    .sales-invoice-filters .filter-actions {
        grid-column: auto;
    }

    .purchase-invoice-filter,
    .delivery-challan-filter,
    .erp-compact-filter,
    .item-purchase-filter,
    .stock-report-filter .inventory-filter-grid {
        grid-template-columns: 1fr;
    }

    .purchase-invoice-filter .filter-actions,
    .delivery-challan-filter .filter-actions,
    .item-purchase-actions,
    .erp-compact-filter > .actions,
    .erp-compact-filter > .filter-actions,
    .stock-report-filter .inventory-filter-actions {
        grid-column: auto;
        flex-wrap: wrap;
    }
}

@media (max-width: 640px) {
    .summary-pair {
        grid-template-columns: 1fr;
    }

    .summary-metric + .summary-metric {
        padding-left: 0;
        padding-top: .55rem;
        border-left: 0;
        border-top: 1px solid var(--erp-border);
    }
}

.form-advanced {
    margin-top: .9rem;
    border: 1px solid var(--erp-border);
    border-radius: 10px;
    background: #fafbfd;
}

.form-advanced > summary {
    cursor: pointer;
    padding: .72rem .82rem;
    font-weight: 800;
}

.form-advanced__body {
    display: grid;
    gap: .75rem;
    padding: 0 .82rem .82rem;
}

.table-responsive {
    width: 100%;
    overflow-x: auto;
    border-radius: 10px;
}

.table-responsive.has-floating-lookup {
    overflow: visible;
}

.table-responsive.has-floating-lookup > table {
    overflow: visible;
}

.table-responsive > table {
    min-width: 760px;
    margin: 0;
}

.erp-empty-cell {
    text-align: center !important;
    padding: 1.25rem !important;
    color: var(--erp-muted);
    background: #ffffff;
}

.erp-empty-state {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    color: var(--erp-muted);
    font-weight: 700;
}

.erp-empty-state .erp-icon {
    width: 1rem;
    height: 1rem;
    color: var(--erp-accent);
}

/* ── Notification count ────────────────────────────────────── */
.notification-count {
    display: inline-flex;
    min-width: 1.35rem;
    height: 1.35rem;
    align-items: center;
    justify-content: center;
    margin-left: .4rem;
    padding: 0 .4rem;
    border-radius: 999px;
    background: var(--erp-sidebar-primary);
    color: #ffffff;
    font-size: .68rem;
    font-weight: 700;
}

/* ── Toast notifications ───────────────────────────────────── */
.notification-toast-wrap {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 200;
    display: grid;
    gap: .7rem;
    width: min(360px, calc(100vw - 2rem));
    pointer-events: none;
}

.notification-toast {
    pointer-events: auto;
    background: #ffffff;
    border: 1px solid var(--erp-border);
    border-left: 4px solid var(--erp-accent);
    border-radius: 10px;
    padding: .85rem .95rem;
    box-shadow: var(--erp-shadow-md);
}

.notification-toast strong {
    display: block;
    margin-bottom: .25rem;
}

.notification-toast .toast-meta {
    margin-top: .55rem;
    font-size: .75rem;
    color: var(--erp-muted);
    display: flex;
    justify-content: space-between;
    gap: .7rem;
}

.erp-toast-wrap {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 240;
    display: grid;
    gap: .65rem;
    width: min(360px, calc(100vw - 2rem));
    pointer-events: none;
}

.erp-toast {
    pointer-events: auto;
    padding: .82rem .95rem;
    border: 1px solid var(--erp-border);
    border-left: 4px solid var(--erp-accent);
    border-radius: 10px;
    background: #ffffff;
    box-shadow: var(--erp-shadow-md);
    transition: opacity .18s ease, transform .18s ease;
}

.erp-toast strong {
    display: block;
    margin-bottom: .22rem;
}

.erp-toast--success {
    border-left-color: var(--erp-success);
}

.erp-toast--error {
    border-left-color: var(--erp-danger);
}

.erp-toast--warning {
    border-left-color: var(--erp-warning);
}

.erp-toast.is-hiding {
    opacity: 0;
    transform: translateX(12px);
}

/* ── Modal ─────────────────────────────────────────────────── */
.erp-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 520;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(15, 23, 42, .52);
    backdrop-filter: blur(3px);
}

.erp-modal {
    width: min(540px, 100%);
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    gap: .9rem;
    padding: 1.1rem;
    border: 1px solid var(--erp-border);
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 1.5rem 4rem rgba(15, 23, 42, .3);
    animation: erpModalIn .16s ease-out;
}

.erp-modal__icon {
    width: 2.65rem;
    height: 2.65rem;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(220, 38, 38, .1);
    color: var(--erp-danger);
}

.erp-modal__icon .erp-icon {
    width: 1.25rem;
    height: 1.25rem;
}

.erp-modal--warning .erp-modal__icon {
    background: rgba(180, 83, 9, .12);
    color: var(--erp-warning);
}

.erp-modal__content h2 {
    margin: 0;
    font-size: 1rem;
}

.erp-modal__content p {
    margin: .3rem 0 .75rem;
    color: var(--erp-muted);
}

.transaction-flow {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
    align-items: stretch;
    margin-bottom: .9rem;
}

.transaction-flow.is-transfer {
    grid-template-columns: minmax(0, 1fr);
}

.transaction-flow-card {
    min-width: 0;
    display: grid;
    gap: .65rem;
    align-items: start;
    align-content: start;
    padding: .75rem;
    border: 1px solid var(--erp-border);
    border-radius: 10px;
    background: #f8fafc;
}

.transaction-flow-label {
    display: inline-flex;
    align-items: center;
    align-self: start;
    justify-self: start;
    width: fit-content;
    height: max-content;
    min-height: 0;
    max-width: 100%;
    padding: .22rem .48rem;
    border: 1px solid #c7d2fe;
    border-radius: 999px;
    background: #eef2ff;
    color: var(--erp-primary);
    font-size: .68rem;
    font-weight: 800;
    line-height: 1.1;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.cash-voucher-form .transaction-flow-card {
    align-items: start;
}

.cash-voucher-form .transaction-flow-label {
    align-self: start;
    justify-self: start;
    height: max-content;
}

.transaction-flow-stack {
    display: grid;
    gap: .55rem;
}

.transaction-flow-stack.is-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.transaction-flow-stack label {
    margin-bottom: .22rem;
}

.flow-fixed-account {
    display: grid;
    gap: .18rem;
    padding: .58rem .68rem;
    border: 1px solid var(--erp-border);
    border-radius: 8px;
    background: #ffffff;
}

.flow-fixed-account strong {
    color: var(--erp-text);
}

.flow-fixed-account span {
    color: var(--erp-muted);
    font-size: .78rem;
}

@media (max-width: 900px) {
    .transaction-flow {
        grid-template-columns: minmax(0, 1fr);
    }

    .erp-compact-form .span-2 {
        grid-column: auto;
    }
}

.advance-ledger-meta {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .5rem;
    margin: .7rem 0 .8rem;
}

.advance-ledger-meta div {
    min-width: 0;
    padding: .55rem .65rem;
    border: 1px solid var(--erp-border);
    border-radius: 8px;
    background: #f8fafc;
}

.advance-ledger-meta span,
.advance-ledger-option small {
    display: block;
    color: var(--erp-muted);
    font-size: .72rem;
}

.advance-ledger-meta strong {
    display: block;
    margin-top: .15rem;
    overflow-wrap: anywhere;
    color: var(--erp-text);
    font-size: .84rem;
}

.advance-ledger-options {
    display: grid;
    gap: .55rem;
}

.advance-ledger-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .6rem;
    align-items: flex-start;
    padding: .7rem .75rem;
    border: 1px solid var(--erp-border);
    border-radius: 10px;
    background: #ffffff;
    cursor: pointer;
}

.advance-ledger-option:has(input:checked) {
    border-color: var(--erp-primary);
    background: #eef2ff;
}

.advance-ledger-option input {
    margin-top: .15rem;
}

.advance-ledger-option strong {
    display: block;
    color: var(--erp-text);
    font-size: .88rem;
}

@media (max-width: 720px) {
    .advance-ledger-meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.erp-shortage-list {
    display: grid;
    gap: .45rem;
    max-height: 260px;
    overflow: auto;
}

.erp-validation-list {
    display: grid;
    gap: .45rem;
    max-height: 260px;
    overflow: auto;
}

.erp-shortage-list div {
    padding: .58rem .68rem;
    border: 1px solid #fecaca;
    border-radius: 8px;
    background: #fef2f2;
    color: #991b1b;
    font-weight: 700;
}

.erp-validation-list div {
    padding: .58rem .68rem;
    border: 1px solid rgba(180, 83, 9, .28);
    border-radius: 8px;
    background: rgba(180, 83, 9, .07);
    color: #92400e;
    font-weight: 700;
}

.erp-modal__actions {
    display: flex;
    justify-content: flex-end;
    gap: .55rem;
    margin-top: .95rem;
}

@keyframes erpModalIn {
    from { opacity: 0; transform: translateY(10px) scale(.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes erpSpin {
    to { transform: rotate(360deg); }
}

/* ── Loading states ────────────────────────────────────────── */
.is-loading {
    position: relative;
}

button.is-loading,
.btn.is-loading {
    opacity: .78;
    pointer-events: none;
}

[data-ajax-report-region].is-loading {
    min-height: 8rem;
}

[data-ajax-report-region].is-loading::after {
    content: 'Loading...';
    position: absolute;
    inset: .6rem;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: rgba(255, 255, 255, .78);
    color: var(--erp-muted);
    font-weight: 700;
    z-index: 12;
}

/* ── Activity timeline ─────────────────────────────────────── */
.activity-timeline .timeline-list {
    display: grid;
    gap: .75rem;
}

.activity-timeline .timeline-item {
    border-left: 3px solid var(--erp-border);
    padding: .25rem 0 .25rem .85rem;
}

.activity-timeline .timeline-title {
    font-weight: 700;
}

/* ── Attachments ───────────────────────────────────────────── */
.attachment-section__header {
    margin-bottom: .75rem;
}

.attachment-section__header h1,
.attachment-section__header h2 {
    margin: 0;
}

.attachment-upload {
    margin-bottom: .85rem;
}

.attachment-upload-card {
    margin-bottom: .85rem;
    border: 1px solid var(--erp-border);
    border-radius: 10px;
    background: #fafbfd;
}

.attachment-upload-card > summary {
    cursor: pointer;
    padding: .72rem .82rem;
    font-weight: 800;
}

.attachment-upload-card__body {
    padding: 0 .82rem .82rem;
}

.attachment-upload__grid {
    display: grid;
    grid-template-columns: minmax(210px, 1.25fr) minmax(155px, .75fr) minmax(170px, 1fr) minmax(160px, 1fr) minmax(130px, .65fr) auto;
    gap: .65rem;
    align-items: end;
}

.attachment-upload__field {
    min-width: 0;
}

.attachment-upload__field label:first-child {
    min-height: 1.15rem;
}

.attachment-upload__file input[type="file"] {
    min-height: 2.25rem;
    overflow: hidden;
}

.attachment-upload__privacy {
    align-self: end;
}

.attachment-upload__check {
    min-height: 2.25rem;
    display: flex;
    align-items: center;
    gap: .45rem;
    margin: 0;
    padding: .42rem .5rem;
    border: 1px solid var(--erp-border);
    border-radius: 8px;
    background: #ffffff;
    font-weight: 500;
}

.attachment-upload__actions {
    align-self: end;
    white-space: nowrap;
}

.attachment-upload__actions .btn {
    min-height: 2.25rem;
}

.erp-drop-zone {
    transition: border-color .14s ease, background-color .14s ease;
}

.erp-drop-zone.is-dragging {
    border-color: rgba(99, 102, 241, .7) !important;
    background: rgba(99, 102, 241, .05);
}

.erp-file-name {
    margin-top: .35rem;
    color: var(--erp-muted);
    font-size: .76rem;
    overflow-wrap: anywhere;
}

.attachment-table-wrap {
    overflow-x: auto;
}

.attachment-table-wrap table {
    min-width: 820px;
}

.attachment-file-cell {
    display: flex;
    gap: .65rem;
    align-items: flex-start;
}

.attachment-thumb {
    flex: 0 0 auto;
    width: 74px;
    height: 54px;
    border: 1px solid var(--erp-border);
    border-radius: 7px;
    background: #ffffff;
    object-fit: cover;
}

.attachment-file-meta {
    min-width: 0;
}

.attachment-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

/* ── Party ledger ──────────────────────────────────────────── */
.party-ledger-stack {
    display: grid;
    gap: .9rem;
    min-width: 0;
}

.party-ledger-panel {
    width: 100%;
    min-width: 0;
}

.party-ledger-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .75rem;
}

.party-ledger-heading h2 {
    margin: 0;
}

.party-ledger-heading .muted {
    margin: .25rem 0 0;
}

.party-ledger-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
    margin-bottom: .85rem;
}

.party-ledger-summary .stat-card {
    min-height: 4.1rem;
    padding: .7rem .78rem;
    border: 1px solid var(--erp-border);
    border-radius: 10px;
    background: var(--erp-soft-bg);
}

.party-ledger-summary .stat-card span {
    display: block;
    color: var(--erp-muted);
    font-size: .66rem;
    font-weight: 800;
    text-transform: uppercase;
}

.party-ledger-summary .stat-card strong {
    display: block;
    margin-top: .24rem;
    color: var(--erp-text);
    font-size: .88rem;
    line-height: 1.3;
}

.party-ledger-table-wrap {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
}

.party-ledger-table {
    min-width: 920px;
    box-shadow: none;
}

.party-ledger-table th,
.party-ledger-table td {
    padding: .54rem .62rem;
}

.party-ledger-table .col-date {
    width: 9%;
    white-space: nowrap;
}

.dashboard-shortcuts {
    --owner-card: #ffffff;
    --owner-text: #1e1b4b;
    --owner-muted: #64748b;
    --owner-border: #e0e4ff;
    --owner-primary: #4f46e5;
    --owner-accent: #7c3aed;
    --owner-success: #16a34a;
    --owner-warning: #d97706;
    --owner-danger: #ef4444;
    --owner-soft-blue: #ede9fe;
    padding: .88rem;
}

.party-ledger-table .col-reference {
    width: 12%;
    white-space: nowrap;
}

.party-ledger-table .col-type {
    width: 12%;
    white-space: nowrap;
}

.party-ledger-table .col-payment-source {
    width: 16%;
}

.party-ledger-table .col-description {
    width: 22%;
}

.party-ledger-table .col-money {
    width: 9%;
    text-align: right;
    white-space: nowrap;
}

.party-ledger-table .col-running {
    width: 11%;
    white-space: nowrap;
}

/* ── Login page ────────────────────────────────────────────── */
body:has(.login-shell) {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--erp-bg, #f4f6fb);
    margin: 0;
    padding: 1.5rem;
    box-sizing: border-box;
}

.login-shell {
    width: min(440px, 100%);
}

.login-shell .brand {
    margin-bottom: 1.5rem;
    text-align: center;
}

.login-shell .brand h1 {
    margin: 0;
    font-size: 1.55rem;
    font-weight: 800;
    color: var(--erp-text);
    line-height: 1.25;
}

.login-shell .brand p {
    margin: .4rem 0 0;
    color: var(--erp-muted);
    font-size: .9rem;
}

.login-shell .panel {
    padding: 1.8rem 2rem;
    border-radius: var(--erp-radius, 10px);
    box-shadow: 0 4px 24px rgba(30,58,95,.10);
}

.login-shell .field {
    margin-bottom: 1.1rem;
}

.login-shell .field label {
    display: block;
    font-weight: 600;
    font-size: .82rem;
    margin-bottom: .35rem;
    color: var(--erp-text);
}

.login-shell .field input {
    width: 100%;
    box-sizing: border-box;
}

.login-shell .btn {
    width: 100%;
    margin-top: .4rem;
}

/* ── Mobile sidebar toggle ─────────────────────────────────── */
.sidebar-toggle {
    display: none;
    align-items: center;
    justify-content: center;
}

.sidebar-backdrop {
    display: none;
}

/* ── Print only ────────────────────────────────────────────── */
.print-header { display: none; }

@page {
    size: A4;
    margin: 12mm 15mm;
}

@media print {
    .sidebar,
    .company-context,
    .topbar,
    .topbar .btn,
    .actions,
    .filters,
    .rpt-page-head,
    .rpt-filter-card,
    .rpt-btn-row,
    .rpt-action-group,
    .rpt-pagination,
    .rpt-modal-backdrop,
    .rpt-no-print,
    .print-hide {
        display: none !important;
    }

    .print-show {
        display: inline !important;
    }

    .print-header {
        display: block !important;
        border-bottom: 2px solid #6366f1;
        padding-bottom: 10px;
        margin-bottom: 14px;
    }

    html, body {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        font-size: 11px !important;
    }

    .shell {
        display: block !important;
        grid-template-columns: 1fr !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .main {
        padding: 0.5rem !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    body { background: #fff !important; }

    .panel,
    table,
    .stat {
        border-color: #888888;
        box-shadow: none;
    }

    body { background: #ffffff; }

    table { font-size: 10px !important; width: 100% !important; }
    th, td { padding: 4px 6px !important; }

    .totals { gap: 8px !important; }
    .total-box { padding: 6px 10px !important; box-shadow: none !important; border: 1px solid #ccc !important; }
    .total-box .label { font-size: 8px !important; }
    .total-box .value { font-size: 12px !important; }

    tr { page-break-inside: avoid; }
    .panel { page-break-inside: auto; margin-bottom: 8px !important; padding: 8px !important; }
}

.print-show { display: none; }

/* ── Responsive: 1200px ────────────────────────────────────── */
@media (max-width: 1200px) {
    .grid.cols-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .filters {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .settings-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .approval-role-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ── Responsive: 860px ─────────────────────────────────────── */
@media (max-width: 860px) {
    .shell {
        grid-template-columns: 1fr;
    }

    .sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        width: min(280px, calc(100vw - 64px));
        max-width: 100%;
        z-index: 600;
        transform: translateX(-102%);
        transition: transform .18s ease-out;
        box-shadow: 0 20px 50px rgba(0, 0, 0, .35);
    }

    .main {
        padding: 1rem;
    }

    .company-context .global-search {
        flex: 0 0 auto;
        width: 100%;
        max-width: none;
    }

    .sidebar-toggle {
        display: inline-flex;
    }

    body.erp-sidebar-open .sidebar {
        transform: translateX(0);
    }

    .sidebar-backdrop {
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, .5);
        z-index: 590;
        backdrop-filter: blur(2px);
    }

    body.erp-sidebar-open .sidebar-backdrop {
        display: block;
    }

    .topbar,
    .company-context {
        align-items: stretch;
        flex-direction: column;
    }

    .grid.cols-4,
    .grid.cols-3,
    .grid.cols-2,
    .settings-shell,
    .settings-summary-grid,
    .settings-field-grid,
    .settings-field-grid.three,
    .settings-field-grid.compact,
    .settings-mapping-list,
    .settings-mapping-row,
    .approval-module-grid,
    .approval-role-grid,
    .permission-toolbar,
    .permission-layout,
    .party-ledger-summary,
    .form-row,
    .form-row.three,
    .filters,
    .totals {
        grid-template-columns: 1fr;
    }

    .company-context select,
    .global-search,
    .global-search input {
        width: 100%;
        max-width: none;
        min-width: 0;
    }

    .permission-toolbar__actions {
        justify-content: flex-start;
    }

    .settings-nav {
        position: static;
    }

    .settings-card__head,
    .settings-savebar {
        align-items: stretch;
        flex-direction: column;
    }

    .erp-pagination {
        align-items: stretch;
        flex-direction: column;
    }

    .erp-pagination__summary,
    .erp-pagination__per-page {
        justify-content: center;
        text-align: center;
        white-space: normal;
    }

    .erp-pagination__per-page select {
        flex: 0 0 auto;
    }

    .table-responsive > table {
        min-width: 680px;
    }

    .attachment-upload__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .attachment-upload__file,
    .attachment-upload__actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 620px) {
    .attachment-upload__grid {
        grid-template-columns: 1fr;
    }
}

/* ══════════════════════════════════════════════════════════
   OWNER DASHBOARD
   ══════════════════════════════════════════════════════════ */
.owner-dashboard {
    --owner-card: #ffffff;
    --owner-text: #1e1b4b;
    --owner-muted: #64748b;
    --owner-border: #e0e4ff;
    --owner-primary: #4f46e5;
    --owner-accent: #7c3aed;
    --owner-success: #16a34a;
    --owner-warning: #d97706;
    --owner-danger: #ef4444;
    --owner-soft-blue: #ede9fe;
    color: var(--owner-text);
    display: grid;
    gap: 1rem;
}

.owner-hero,
.owner-panel,
.owner-summary-card {
    background: var(--owner-card);
    border: 1px solid var(--owner-border);
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .06), 0 4px 16px rgba(15, 23, 42, .04);
}

.owner-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.2rem;
    border-left: 4px solid var(--owner-accent);
}

.owner-hero h1 {
    margin: .1rem 0 0;
    font-size: 1.38rem;
    font-weight: 800;
    color: var(--owner-text);
}

.owner-hero p {
    margin: .25rem 0 0;
    color: var(--owner-muted);
    font-size: .86rem;
}

.owner-eyebrow {
    color: var(--owner-accent);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.owner-hero-actions,
.owner-action-grid,
.owner-legend,
.owner-alert-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}

.owner-btn {
    min-height: 2.15rem;
    border-radius: 8px;
    padding: .45rem .72rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .78rem;
    font-weight: 700;
    transition: background .14s ease, transform .1s ease;
}

.owner-btn:hover {
    transform: translateY(-1px);
}

.owner-btn-primary {
    background: linear-gradient(135deg, #7c3aed 0%, var(--owner-primary) 100%);
    color: #fff !important;
    box-shadow: 0 2px 6px rgba(30, 58, 95, .2);
}

.owner-btn-secondary {
    background: var(--owner-soft-blue);
    color: var(--owner-primary) !important;
    border: 1px solid #bfdbfe;
}

.owner-summary-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .8rem;
}

.owner-summary-card {
    min-height: 5.35rem;
    padding: .68rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    color: var(--owner-text) !important;
    transition: transform .14s ease, box-shadow .14s ease;
}

.owner-summary-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(15, 23, 42, .1), 0 12px 32px rgba(15, 23, 42, .06);
}

.owner-summary-card.is-success {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.owner-summary-card.is-warning {
    background: #fffbeb;
    border-color: #fde68a;
}

.owner-summary-card.is-danger {
    background: #fef2f2;
    border-color: #fecaca;
}

.owner-icon {
    width: 2.05rem;
    height: 2.05rem;
    flex: 0 0 2.05rem;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(99, 102, 241, .11);
    color: var(--owner-accent);
    font-size: .68rem;
    font-weight: 800;
}

.owner-icon .erp-icon,
.owner-action span .erp-icon {
    width: 1rem;
    height: 1rem;
}

.owner-summary-card.is-success .owner-icon {
    background: rgba(21, 128, 61, .12);
    color: var(--owner-success);
}

.owner-summary-card.is-warning .owner-icon {
    background: rgba(180, 83, 9, .13);
    color: var(--owner-warning);
}

.owner-summary-card.is-danger .owner-icon {
    background: rgba(220, 38, 38, .11);
    color: var(--owner-danger);
}

.owner-card-copy {
    min-width: 0;
    display: grid;
    gap: .12rem;
}

.owner-card-title,
.owner-card-copy small,
.owner-count,
.owner-panel-head a,
.owner-empty {
    color: var(--owner-muted);
}

.owner-card-title {
    font-size: .72rem;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.owner-card-copy strong {
    color: var(--owner-text);
    font-size: .86rem;
    font-weight: 800;
    line-height: 1.1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.owner-card-copy small {
    font-size: .66rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.owner-panel {
    padding: .92rem;
}

.owner-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .78rem;
}

.owner-panel-head.compact {
    margin: .9rem 0 .55rem;
}

.owner-panel-head h2 {
    margin: 0;
    color: var(--owner-text);
    font-size: .93rem;
    font-weight: 800;
}

.owner-panel-head a {
    font-size: .72rem;
    font-weight: 800;
}

.owner-count,
.owner-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .18rem .5rem;
    font-size: .66rem;
    font-weight: 800;
}

.owner-count {
    background: rgba(220, 38, 38, .09);
    color: var(--owner-danger);
}

.owner-action-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .55rem;
}

.owner-action {
    min-height: 4.6rem;
    border-radius: 9px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: .38rem;
    background: #f1f5f9;
    color: var(--owner-primary) !important;
    border: 1px solid #e2e8f0;
    font-size: .76rem;
    text-align: center;
    transition: transform .14s ease, box-shadow .14s ease, background .14s ease;
}

.owner-action:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(15, 23, 42, .1);
    background: #e8f0ff;
}

.owner-action span {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #ffffff;
    color: inherit;
    font-size: .66rem;
    font-weight: 800;
}

.owner-action.is-primary {
    background: linear-gradient(135deg, #7c3aed 0%, var(--owner-primary) 100%);
    color: #ffffff !important;
    border-color: var(--owner-primary);
}

.owner-action.is-success {
    background: rgba(21, 128, 61, .08);
    color: var(--owner-success) !important;
    border-color: rgba(21, 128, 61, .2);
}

.owner-action.is-warning {
    background: rgba(180, 83, 9, .09);
    color: #92400e !important;
    border-color: rgba(180, 83, 9, .22);
}

.owner-main-grid {
    display: grid;
    grid-template-columns: minmax(260px, .92fr) minmax(0, 2fr);
    gap: 1rem;
}

.owner-alert-list {
    display: grid;
    gap: .55rem;
}

.owner-alert {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    padding: .68rem;
    border: 1px solid var(--owner-border);
    border-left: 4px solid var(--owner-muted);
    border-radius: 9px;
    background: #f8fafc;
}

.owner-alert.is-high {
    border-left-color: var(--owner-danger);
    background: #fef2f2;
}

.owner-alert.is-medium {
    border-left-color: var(--owner-warning);
    background: #fffbeb;
}

.owner-alert.is-low {
    border-left-color: var(--owner-muted);
}

.owner-alert strong {
    display: block;
    color: var(--owner-text);
    font-size: .78rem;
}

.owner-alert p {
    margin: .16rem 0 .45rem;
    color: var(--owner-muted);
    font-size: .7rem;
    line-height: 1.35;
}

.owner-alert > span {
    color: var(--owner-muted);
    font-size: .62rem;
    font-weight: 800;
    text-transform: uppercase;
}

.owner-alert-actions a {
    min-height: 1.55rem;
    border-radius: 6px;
    padding: .22rem .48rem;
    background: #ffffff;
    border: 1px solid var(--owner-border);
    color: var(--owner-primary) !important;
    font-size: .66rem;
    font-weight: 800;
    transition: background .12s ease;
}

.owner-alert-actions a:hover {
    background: var(--owner-soft-blue);
}

.owner-dual-chart {
    height: 12rem;
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .8rem;
    align-items: end;
    padding: .5rem .3rem 0;
}

.owner-chart-month {
    min-width: 0;
    height: 100%;
    display: grid;
    grid-template-rows: 1fr auto;
    gap: .45rem;
    text-align: center;
}

.owner-bars {
    display: flex;
    align-items: end;
    justify-content: center;
    gap: .25rem;
    min-height: 0;
    border-bottom: 1px solid var(--owner-border);
}

.owner-bars span {
    width: 1rem;
    min-height: .3rem;
    border-radius: 6px 6px 0 0;
    display: block;
}

.owner-bars .sales,
.owner-legend i.sales {
    background: var(--owner-accent);
}

.owner-bars .receipts,
.owner-legend i.receipts {
    background: var(--owner-success);
}

.owner-chart-month small,
.owner-legend,
.owner-chart-list,
.owner-progress-row {
    color: var(--owner-muted);
    font-size: .68rem;
}

.owner-legend {
    justify-content: center;
    margin-top: .45rem;
}

.owner-legend i,
.owner-chart-list i {
    width: .58rem;
    height: .58rem;
    border-radius: 999px;
    display: inline-block;
}

.owner-legend span,
.owner-chart-list span {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.owner-chart-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.owner-donut-wrap {
    display: grid;
    grid-template-columns: 5rem minmax(0, 1fr);
    align-items: center;
    gap: .7rem;
}

.owner-donut {
    width: 5rem;
    height: 5rem;
    border-radius: 999px;
    position: relative;
}

.owner-donut::after {
    content: '';
    position: absolute;
    inset: .9rem;
    border-radius: inherit;
    background: #ffffff;
}

.owner-chart-list {
    display: grid;
    gap: .3rem;
}

.owner-chart-list strong {
    color: var(--owner-text);
    font-size: .66rem;
}

.owner-expense-bars {
    margin-top: .15rem;
}

.owner-progress-row {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) auto;
    align-items: center;
    gap: .55rem;
    margin-bottom: .42rem;
}

.owner-progress-row div {
    height: .5rem;
    overflow: hidden;
    border-radius: 999px;
    background: #e8f0f8;
}

.owner-progress-row i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--owner-accent) 0%, #4338ca 100%);
}

.owner-progress-row strong {
    color: var(--owner-text);
    font-size: .68rem;
}

.owner-table-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
}

.owner-table-grid-security {
    grid-template-columns: .9fr 1.1fr;
}

.owner-table-wrap {
    overflow-x: auto;
}

.owner-table {
    box-shadow: none;
    border-color: var(--owner-border);
    font-size: .74rem;
}

.owner-table th {
    font-size: .62rem;
}

.owner-table td {
    padding: .45rem .52rem;
    vertical-align: middle;
}

.owner-table small {
    display: block;
    max-width: 11rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--owner-muted);
    font-size: .62rem;
}

.owner-badge.success {
    background: rgba(21, 128, 61, .1);
    color: var(--owner-success);
}

.owner-badge.warning {
    background: rgba(180, 83, 9, .1);
    color: #92400e;
}

.owner-badge.danger {
    background: rgba(220, 38, 38, .1);
    color: var(--owner-danger);
}

.owner-badge.neutral {
    background: #f1f5f9;
    color: var(--owner-muted);
}

.owner-security-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .55rem;
}

.owner-security-grid a {
    min-height: 4rem;
    display: grid;
    align-content: center;
    gap: .18rem;
    border-radius: 9px;
    border: 1px solid var(--owner-border);
    background: #f8fafc;
    padding: .68rem;
    color: var(--owner-text) !important;
    transition: transform .14s ease, box-shadow .14s ease;
}

.owner-security-grid a:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(15, 23, 42, .08);
}

.owner-security-grid span {
    color: var(--owner-muted);
    font-size: .68rem;
    font-weight: 700;
}

.owner-security-grid strong {
    font-size: 1.1rem;
}

@media (max-width: 1080px) {
    .owner-summary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .owner-table-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 980px) {
    .owner-main-grid,
    .owner-chart-pair,
    .owner-table-grid-security {
        grid-template-columns: 1fr;
    }

    .owner-action-grid,
    .owner-security-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .owner-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .owner-summary-grid {
        grid-template-columns: 1fr;
    }

    .owner-action-grid,
    .owner-security-grid {
        grid-template-columns: 1fr;
    }

    .owner-donut-wrap {
        grid-template-columns: 1fr;
        justify-items: center;
    }
}

/* ══════════════════════════════════════════════════════════
   REPORT DESIGN SYSTEM  (rpt- prefix — safe, no conflicts)
   ══════════════════════════════════════════════════════════ */

/* ── Page header ─────────────────────────────────────────── */
.rpt-page-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.1rem;
    padding-bottom: .9rem;
    border-bottom: 1px solid #e0e4ff;
    flex-wrap: wrap;
}
.rpt-title {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--brand);
    margin: 0;
}
.rpt-subtitle {
    color: #6b7a8d;
    font-size: .78rem;
    margin-top: .18rem;
}
.rpt-btn-row {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    align-items: center;
}

/* ── Buttons ─────────────────────────────────────────────── */
.rpt-btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem .95rem;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    font-size: .8rem;
    font-weight: 700;
    text-decoration: none;
    transition: .13s;
    line-height: 1;
}
.rpt-btn-ghost {
    background: #fff;
    color: #4f46e5;
    border: 1.5px solid #c4b5fd;
}
.rpt-btn-ghost:hover { background: #ede9fe; border-color: #a78bfa; text-decoration: none; }
.rpt-btn-primary { background: var(--brand); color: #fff; }
.rpt-btn-primary:hover { background: #4338ca; }
.rpt-btn-sm { padding: .38rem .75rem; font-size: .75rem; }

/* ── Print / PDF / Email grouped button ─────────────────── */
.rpt-action-group {
    display: flex;
    border: 1.5px solid #c4b5fd;
    border-radius: 9px;
    overflow: hidden;
    background: #fff;
}
.rpt-ag-btn {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    padding: .38rem .8rem;
    font-size: .75rem;
    font-weight: 700;
    border: none;
    background: transparent;
    cursor: pointer;
    color: #4f46e5;
    border-right: 1px solid #ddd6fe;
    transition: .13s;
    white-space: nowrap;
    text-decoration: none;
}
.rpt-ag-btn:last-child { border-right: none; }
.rpt-ag-btn:hover { background: #ede9fe; color: #4338ca; text-decoration: none; }
.rpt-ag-btn svg { width: 13px; height: 13px; }

/* ── Filter card ─────────────────────────────────────────── */
.rpt-filter-card {
    background: #fff;
    border: 1px solid #e0e4ff;
    border-top: 3px solid #c4b5fd;
    border-radius: 10px;
    padding: 1rem 1.1rem;
    margin-bottom: 1.1rem;
    box-shadow: 0 2px 12px rgba(79,70,229,.06);
}
.rpt-filter-card .form-row,
.rpt-filter-card .form-row.three {
    margin-bottom: .65rem;
}

.rpt-filter-card .rpt-details {
    margin-top: .25rem;
}

.rpt-filter-card .rpt-details-lg {
    margin-top: .75rem;
}

.rpt-filter-card .rpt-columns-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    margin-top: .88rem;
}

.rpt-filter-card .rpt-details-content {
    margin-top: .88rem;
}

.rpt-filter-card .rpt-columns-label {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-weight: 700;
}

.erp-auto-columns {
    align-self: end;
    min-width: 170px;
}

.erp-auto-columns__body {
    min-width: min(520px, calc(100vw - 2rem));
}

.erp-auto-columns__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: .45rem .75rem;
}

.erp-auto-columns__label {
    min-height: 28px;
    padding: .28rem .45rem;
    border: 1px solid rgba(99,102,241,.12);
    border-radius: 7px;
    background: rgba(255,255,255,.78);
    font-size: .78rem;
}

.erp-auto-columns__label input {
    flex: 0 0 auto;
}

.erp-auto-columns__actions {
    display: flex;
    gap: .45rem;
    margin-top: .65rem;
}

.erp-column-hidden {
    display: none !important;
}
.rpt-filter-card details summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--brand);
    width: max-content;
    font-size: .82rem;
}

.rpt-print-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

@media screen {
    .print-header,
    .rpt-print-header,
    .erp-print-header {
        display: none !important;
    }
}

.rpt-print-company {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--brand);
}

.rpt-print-title {
    font-size: .85rem;
    font-weight: 700;
    margin-top: .2rem;
}

.rpt-print-subtitle {
    font-size: .7rem;
    color: #6b7a8d;
    margin-top: .15rem;
}

.rpt-print-meta-right {
    text-align: right;
    font-size: .7rem;
    color: #6b7a8d;
}

.rpt-print-generated {
    display: block;
    font-size: .78rem;
    color: #1e1b4b;
}

.rpt-merge-notice {
    border-left: 4px solid #2f7885;
    margin-bottom: 12px;
}

.rpt-merged-card {
    border-left: 4px solid #2f7885;
    margin-bottom: 12px;
}

.rpt-note-card {
    border-left: 4px solid var(--erp-warning);
    margin-bottom: .9rem;
    padding: .8rem 1rem;
}

.rpt-card-stack {
    display: flex;
    flex-direction: column;
    min-height: 168px;
}

.rpt-card-title {
    font-weight: 700;
    font-size: 16px;
}

.rpt-card-body {
    line-height: 1.45;
    flex: 1;
}

.rpt-card-actions {
    margin-top: auto;
}

.rpt-card-collection {
    margin-bottom: 22px;
}

.rpt-card-collection h2 {
    margin: 0 0 10px;
}
.rpt-filter-card .actions {
    margin-top: .75rem;
}

.rpt-preset-row {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-bottom: .85rem;
}

.rpt-preset {
    border: 1px solid #cfd8e6;
    background: #fff;
    color: var(--erp-primary);
    border-radius: 8px;
    min-height: 2rem;
    padding: .38rem .74rem;
    font-weight: 800;
    font-size: .74rem;
    cursor: pointer;
}

.rpt-preset:hover,
.rpt-preset.is-active {
    background: var(--erp-primary);
    border-color: var(--erp-primary);
    color: #fff;
}

/* ── Summary cards ───────────────────────────────────────── */
.rpt-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: .58rem;
    margin-bottom: .85rem;
}
.rpt-card {
    background: #fff;
    border: 1px solid #e0e4ff;
    border-radius: 10px;
    padding: .64rem .82rem;
    box-shadow: 0 2px 12px rgba(79,70,229,.06);
    position: relative;
    overflow: hidden;
}
.rpt-card::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    border-radius: 10px 0 0 10px;
    background: #e0e4ff;
}
.rpt-card-blue::before   { background: #4f46e5; }
.rpt-card-green::before  { background: #16a34a; }
.rpt-card-red::before    { background: #ef4444; }
.rpt-card-warn::before   { background: #f59e0b; }
.rpt-card-label {
    font-size: .61rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #6b7a8d;
    margin-bottom: .16rem;
}
.rpt-card-value {
    font-size: 1rem;
    font-weight: 800;
    color: #1e1b4b;
}
.rpt-card-value.rpt-card-md { font-size: 1rem; }
.rpt-card-hint { font-size: .66rem; color: #6b7a8d; margin-top: .18rem; }
.rpt-pos { color: #16a34a; }
.rpt-neg { color: #ef4444; }

/* ── Table wrapper ───────────────────────────────────────── */
.rpt-tbl-wrap {
    background: #fff;
    border: 1px solid #e0e4ff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(79,70,229,.06);
    margin-bottom: 1rem;
}
.rpt-tbl-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: .65rem 1rem;
    border-bottom: 1px solid #e0e4ff;
    background: #f0f2ff;
}
.rpt-tbl-header strong {
    font-size: .82rem;
    color: #4f46e5;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.rpt-tbl-scroll { overflow-x: auto; }
.rpt-tbl-wrap table { margin: 0; }
.rpt-tbl-wrap thead th {
    background: #f0f2ff;
    font-size: .65rem;
    white-space: nowrap;
}
.rpt-pagination {
    padding: .65rem 1rem;
    border-top: 1px solid #e0e4ff;
    background: #f0f2ff;
}
.rpt-pagination nav { margin: 0; }

/* ── Cash flow statement ─────────────────────────────────── */
.cash-flow-note {
    border-left: 4px solid var(--erp-warning);
    margin-bottom: .9rem;
    padding: .8rem 1rem;
}

.cash-flow-filter-card {
    margin-bottom: .85rem;
    padding: .68rem .8rem;
}

.cash-flow-filter-toolbar {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: .9rem;
}

.cash-flow-presets {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    gap: .42rem;
    padding-bottom: .04rem;
}

.cash-flow-filter-card .rpt-preset {
    min-height: 1.9rem;
    padding: .32rem .68rem;
    border-radius: 999px;
    font-size: .72rem;
}

.cash-flow-date-controls {
    display: grid;
    grid-template-columns: minmax(145px, 170px) minmax(145px, 170px) max-content;
    gap: .55rem;
    align-items: end;
}

.cash-flow-date-controls label {
    margin-bottom: .18rem;
    font-size: .64rem;
}

.cash-flow-date-controls input {
    min-height: 2.05rem;
    padding: .34rem .55rem;
    font-size: .76rem;
}

.cash-flow-date-controls .filter-actions {
    flex-wrap: nowrap;
    gap: .36rem;
}

.cash-flow-date-controls .btn {
    min-height: 2.05rem;
    padding: .34rem .64rem;
    font-size: .72rem;
}

.cash-flow-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .9rem;
    margin-bottom: 1rem;
}

.cash-flow-card {
    padding: 1rem 1.2rem;
    text-align: center;
}

.cash-flow-card-in {
    border-left: 4px solid var(--erp-success);
}

.cash-flow-card-out {
    border-left: 4px solid var(--erp-danger);
}

.cash-flow-card-close {
    border-left: 4px solid var(--erp-primary);
}

.cash-flow-card-label {
    color: var(--erp-muted);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    margin-bottom: .35rem;
    text-transform: uppercase;
}

.cash-flow-card-value {
    color: var(--erp-primary);
    font-size: 1.18rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.cash-flow-card-value.is-in,
.cash-flow-row-amount.is-in {
    color: var(--erp-success);
}

.cash-flow-card-value.is-out,
.cash-flow-row-amount.is-out {
    color: var(--erp-danger);
}

.cash-flow-columns {
    align-items: start;
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 1rem;
}

.cash-flow-panel {
    overflow: hidden;
    padding: 0;
}

.cash-flow-panel-head {
    align-items: center;
    display: flex;
    gap: .8rem;
    justify-content: space-between;
    padding: .8rem 1rem;
}

.cash-flow-panel-head span,
.cash-flow-panel-head strong {
    font-size: .8rem;
    font-weight: 800;
}

.cash-flow-panel-head strong {
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

.cash-flow-panel-in .cash-flow-panel-head {
    background: #eaf6f0;
    border-bottom: 1px solid #c3e6cb;
    color: #155724;
}

.cash-flow-panel-out .cash-flow-panel-head {
    background: #fdecea;
    border-bottom: 1px solid #f5c6cb;
    color: #721c24;
}

.cash-flow-rows {
    width: 100%;
}

.cash-flow-row {
    align-items: center;
    border-bottom: 1px solid var(--erp-border);
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) max-content;
    min-width: 0;
    padding: .72rem 1rem;
}

.cash-flow-row-label {
    min-width: 0;
    overflow-wrap: anywhere;
}

.cash-flow-row-amount {
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

.cash-flow-row-total {
    background: var(--erp-soft-bg);
    border-bottom: 0;
    border-top: 2px solid var(--erp-border);
}

.cash-flow-row-total .cash-flow-row-label {
    font-weight: 800;
}

.cash-flow-empty {
    color: var(--erp-muted);
    padding: .9rem 1rem;
}

.cash-flow-summary {
    padding: 0;
    overflow: hidden;
    border: 2px solid var(--erp-primary);
}

.cash-flow-summary-head {
    background: var(--erp-primary);
    color: #fff;
    padding: 12px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.cash-flow-summary-head .cash-flow-summary-title {
    font-weight: 700;
    font-size: 14px;
}

.cash-flow-summary-body {
    background: #fff;
}

.cash-flow-summary-row {
    display: flex;
    justify-content: space-between;
    padding: 11px 20px;
    border-bottom: 1px solid var(--erp-border);
}

.cash-flow-summary-row.is-total {
    background: var(--erp-soft-bg);
    padding: 14px 20px;
    border-bottom: 0;
}

.cash-flow-summary-row .cash-flow-summary-label {
    font-size: 12px;
    font-weight: 600;
}

.cash-flow-summary-row .cash-flow-summary-value {
    font-weight: 700;
    font-size: 15px;
    font-variant-numeric: tabular-nums;
}

.cash-flow-summary-value.is-positive {
    color: var(--erp-success);
}

.cash-flow-summary-value.is-negative {
    color: var(--erp-danger);
}

.cash-flow-summary-deficit {
    font-size: 12px;
    font-weight: 400;
}

@media (max-width: 1120px) {
    .cash-flow-filter-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .cash-flow-date-controls {
        grid-template-columns: repeat(2, minmax(0, 1fr)) max-content;
    }

    .cash-flow-summary-grid,
    .cash-flow-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .cash-flow-date-controls {
        grid-template-columns: 1fr;
    }

    .cash-flow-date-controls .filter-actions {
        flex-wrap: wrap;
    }

    .cash-flow-summary-grid,
    .cash-flow-columns {
        grid-template-columns: 1fr;
    }
}

/* ── Table row colouring ─────────────────────────────────── */
.rpt-row-dr td  { background: #eaf6f0; }
.rpt-row-dr:hover td { background: #d5eee2; }
.rpt-row-cr td  { background: #fdf0f0; }
.rpt-row-cr:hover td { background: #fce0e0; }
.rpt-row-opening td  { background: #fffbe6; }
.rpt-row-opening:hover td { background: #fff3cc; }
.rpt-row-total td  { background: #f0f4f8; font-weight: 700; }

/* ── Type chips ──────────────────────────────────────────── */
.rpt-type-chip {
    display: inline-block;
    padding: .18rem .5rem;
    border-radius: 6px;
    font-size: .65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .03em;
    white-space: nowrap;
}
.rpt-chip-dr     { background: #e6f5ee; color: #1a7a46; }
.rpt-chip-cr     { background: #fdecea; color: #b52020; }
.rpt-chip-open   { background: #fffbe6; color: #7a5900; }
.rpt-chip-xfer   { background: #ede9fe; color: #4f46e5; }
.rpt-chip-exp    { background: #fff3e0; color: #8a4500; }
.rpt-chip-adj    { background: #f3e8ff; color: #5b21b6; }
.rpt-chip-gray   { background: #eef1f5; color: #6b7a8d; }

/* ── Running balance ─────────────────────────────────────── */
.rpt-bal { font-weight: 800; white-space: nowrap; }
.rpt-bal-pos { color: #1a7a46; }
.rpt-bal-neg { color: #b52020; }
.rpt-amt { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rpt-amt-dr { color: #1a7a46; font-weight: 700; }
.rpt-amt-cr { color: #b52020; font-weight: 700; }

/* ── Account chip ────────────────────────────────────────── */
.rpt-acct-chip {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .28rem .7rem;
    background: #e8f0fa;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
    color: var(--brand);
}

/* ── Party bar (party ledger) ────────────────────────────── */
.rpt-party-bar {
    background: var(--brand);
    color: #fff;
    border-radius: 10px;
    padding: .85rem 1.1rem;
    margin-bottom: 1.1rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}
.rpt-party-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 9px;
    background: rgba(255,255,255,.15);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 800;
    flex-shrink: 0;
}
.rpt-party-name { font-size: 1rem; font-weight: 800; }
.rpt-party-meta { font-size: .72rem; opacity: .72; margin-top: .1rem; }
.rpt-party-pos  { margin-left: auto; text-align: right; }
.rpt-party-pos strong { font-size: 1.1rem; font-weight: 800; display: block; }
.rpt-party-pos small  { font-size: .68rem; opacity: .72; }
.rpt-party-badge {
    display: inline-block;
    padding: .12rem .5rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 700;
    background: rgba(255,255,255,.2);
}

/* ── Analysis panels ─────────────────────────────────────── */
.rpt-analysis-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .9rem;
    margin-bottom: 1.1rem;
}
.rpt-analysis-card {
    background: #fff;
    border: 1px solid #dde3ec;
    border-radius: 10px;
    padding: 1rem;
    box-shadow: 0 2px 12px rgba(30,45,61,.06);
}
.rpt-analysis-card h3 {
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #6b7a8d;
    margin: 0 0 .75rem;
}

/* ── Email modal ─────────────────────────────────────────── */
.rpt-modal-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 9999;
    align-items: center;
    justify-content: center;
}
.rpt-modal-backdrop.open { display: flex; }
.rpt-modal {
    background: #fff;
    border-radius: 14px;
    width: 420px;
    max-width: 95vw;
    box-shadow: 0 20px 60px rgba(0,0,0,.22);
    overflow: hidden;
}
.rpt-modal-head {
    background: var(--brand);
    color: #fff;
    padding: 1rem 1.2rem;
    display: flex;
    align-items: center;
    gap: .6rem;
}
.rpt-modal-head h2 { font-size: .95rem; font-weight: 800; flex: 1; margin: 0; }
.rpt-modal-close {
    background: none;
    border: none;
    color: #fff;
    cursor: pointer;
    opacity: .7;
    font-size: 1.1rem;
    line-height: 1;
    padding: 0;
}
.rpt-modal-close:hover { opacity: 1; }
.rpt-modal-body { padding: 1.2rem; }
.rpt-modal-body label {
    display: block;
    font-size: .72rem;
    font-weight: 700;
    color: #6b7a8d;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin: .75rem 0 .3rem;
}
.rpt-modal-body label:first-child { margin-top: 0; }
.rpt-modal-body input,
.rpt-modal-body select,
.rpt-modal-body textarea {
    width: 100%;
    padding: .5rem .7rem;
    border: 1.5px solid #dde3ec;
    border-radius: 8px;
    font: inherit;
    font-size: .82rem;
    outline: none;
    resize: vertical;
}
.rpt-modal-body input:focus,
.rpt-modal-body select:focus,
.rpt-modal-body textarea:focus { border-color: var(--brand); }
.rpt-modal-body textarea { min-height: 60px; }
.rpt-modal-attach {
    background: #f7fafc;
    border: 1px solid #dde3ec;
    border-radius: 9px;
    padding: .6rem .85rem;
    margin-top: .75rem;
    display: flex;
    align-items: center;
    gap: .6rem;
    font-size: .78rem;
}
.rpt-modal-attach .pdf-icon {
    width: 2rem;
    height: 2rem;
    background: #fdecea;
    border-radius: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .75rem;
    font-weight: 800;
    color: #b52020;
    flex-shrink: 0;
}
.rpt-modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    padding: .9rem 1.2rem;
    border-top: 1px solid #dde3ec;
    background: #f7fafc;
}

/* ── Print overrides for rpt- classes ────────────────────── */
@media print {
    .rpt-page-head,
    .rpt-filter-card,
    .rpt-btn-row,
    .rpt-action-group,
    .rpt-tbl-header .rpt-acct-chip,
    .rpt-pagination,
    .rpt-modal-backdrop,
    .rpt-no-print {
        display: none !important;
    }

    body { background: #fff !important; font-size: 11px; }
    .rpt-tbl-wrap { box-shadow: none; border: 1px solid #ccc; border-radius: 0; margin-bottom: .5rem; }
    .rpt-tbl-wrap table { font-size: 9px; }
    .rpt-tbl-wrap thead th { font-size: 8px; padding: .3rem .4rem; }
    .rpt-tbl-wrap tbody td { padding: .3rem .4rem; }

    .rpt-cards { grid-template-columns: repeat(3, 1fr); gap: .4rem; }
    .rpt-card  { padding: .5rem .65rem; box-shadow: none; border: 1px solid #ccc; }
    .rpt-card-value { font-size: .88rem; }
    .rpt-card-label { font-size: .6rem; }

    .rpt-analysis-grid { gap: .5rem; }
    .rpt-analysis-card { box-shadow: none; border: 1px solid #ccc; }

    .rpt-party-bar {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
        background: #4f46e5 !important;
        color: #fff !important;
        border-radius: 5px;
        padding: .5rem .75rem;
    }

    .rpt-row-dr td      { -webkit-print-color-adjust: exact; print-color-adjust: exact; background: #eaf6f0 !important; }
    .rpt-row-cr td      { -webkit-print-color-adjust: exact; print-color-adjust: exact; background: #fdf0f0 !important; }
    .rpt-row-opening td { -webkit-print-color-adjust: exact; print-color-adjust: exact; background: #fffbe6 !important; }
    .rpt-row-total td   { -webkit-print-color-adjust: exact; print-color-adjust: exact; background: #f0f4f8 !important; font-weight: 700; }
    .rpt-tbl-wrap thead th { -webkit-print-color-adjust: exact; print-color-adjust: exact; background: #f2f6fb !important; }

    .rpt-tbl-wrap { page-break-inside: auto; }
    tr { page-break-inside: avoid; }
}

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 860px) {
    .rpt-analysis-grid { grid-template-columns: 1fr; }
    .rpt-page-head { flex-direction: column; align-items: flex-start; }
    .rpt-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
    .rpt-cards { grid-template-columns: 1fr; }
    .rpt-action-group { flex-wrap: wrap; }
}

/* ── Date presets ────────────────────────────────────────── */
.erp-date-presets {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
    grid-column: 1 / -1;
}

.erp-preset-btn {
    font-size: .72rem !important;
    padding: .22rem .7rem !important;
    min-height: 0 !important;
    height: auto !important;
    border-radius: 999px !important;
    font-weight: 700 !important;
    white-space: nowrap;
}

/* ── Required field indicator ────────────────────────────── */
label.required::after,
.form-field.required > label::after,
.field.required > label::after {
    content: ' *';
    color: var(--erp-danger);
    font-weight: 700;
}

/* ── Confirm modal variant ───────────────────────────────── */
.erp-modal--confirm .erp-modal__icon {
    background: rgba(220, 38, 38, .08);
    color: var(--erp-danger);
}

/* ── Badge — extra state colors ──────────────────────────── */
.badge.partial,
.badge.approved {
    background: rgba(99, 102, 241, .12);
    color: #1e40af;
}

.badge.reversed,
.badge.voided {
    background: rgba(100, 116, 139, .12);
    color: #475569;
}

.badge.neutral {
    background: rgba(100, 116, 139, .1);
    color: #475569;
}

/* ── Table row hover improvement ─────────────────────────── */
table tbody tr { transition: background .1s ease; }

/* ── Focus ring consistency ──────────────────────────────── */
input:focus,
select:focus,
textarea:focus {
    outline: 2px solid var(--erp-accent);
    outline-offset: 0;
}

/* ── Page title responsive ───────────────────────────────── */
@media (max-width: 860px) {
    .erp-date-presets { gap: .25rem; }
    .erp-preset-btn { font-size: .68rem !important; padding: .2rem .55rem !important; }
}

/* ── Scroll to top button ────────────────────────────────── */
.erp-scroll-top {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    background: var(--erp-primary);
    color: #fff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(30, 45, 61, .22);
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .22s ease, transform .22s ease;
    z-index: 90;
    pointer-events: none;
}

.erp-scroll-top.is-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.erp-scroll-top:hover {
    background: var(--erp-accent);
}

@media print { .erp-scroll-top { display: none !important; } }

/* ── Keyboard shortcut modal ─────────────────────────────── */
.erp-shortcut-list {
    display: grid;
    gap: .5rem;
    margin: .75rem 0 .25rem;
    min-width: 280px;
}

.erp-shortcut-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1.5rem;
    font-size: .84rem;
    padding: .3rem 0;
    border-bottom: 1px solid var(--erp-border);
}

.erp-shortcut-row:last-child { border-bottom: none; }

.erp-shortcut-desc { color: var(--erp-text); }

.erp-shortcut-keys {
    display: flex;
    gap: .3rem;
    align-items: center;
    flex-shrink: 0;
}

kbd {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .18rem .5rem;
    border-radius: 5px;
    background: var(--erp-soft-bg);
    border: 1px solid var(--erp-border);
    border-bottom-width: 2px;
    font-size: .7rem;
    font-family: ui-monospace, 'SFMono-Regular', Consolas, monospace;
    font-weight: 700;
    color: var(--erp-text);
    white-space: nowrap;
}

/* ── Active filter count badge ───────────────────────────── */
.erp-filter-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.2rem;
    height: 1.2rem;
    border-radius: 999px;
    background: #fff;
    color: var(--erp-primary);
    font-size: .65rem;
    font-weight: 800;
    padding: 0 .25rem;
    margin-left: .35rem;
    line-height: 1;
}

/* ── Print header ────────────────────────────────────────── */
.erp-print-header {
    display: none;
}

@media print {
    .erp-print-header {
        display: block;
        padding-bottom: 6px;
        margin-bottom: 10px;
        border-bottom: 1.5px solid #4f46e5;
        font-size: 9px;
        color: #555;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .erp-print-header strong {
        font-size: 11px;
        font-weight: 800;
        color: #4f46e5;
    }

    .company-context { display: none !important; }
}

/* ── Ask ERP report assistant ───────────────────────────── */
.ask-erp-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 1rem;
    align-items: start;
}

.ask-erp-chat,
.ask-erp-side {
    min-height: 0;
}

.ask-erp-thread {
    height: calc(100vh - 19rem);
    min-height: 420px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: .8rem;
    padding-right: .25rem;
}

.ask-bubble {
    max-width: 92%;
    padding: .85rem 1rem;
    border-radius: 10px;
    border: 1px solid var(--erp-border);
    background: #fff;
    box-shadow: var(--erp-shadow-soft);
}

.ask-bubble p {
    margin: .25rem 0 0;
}

.ask-bubble-user {
    align-self: flex-end;
    background: var(--erp-primary);
    color: #fff;
    border-color: var(--erp-primary);
}

.ask-bubble-ai {
    align-self: flex-start;
}

.ask-bubble-title {
    font-size: .78rem;
    font-weight: 800;
    color: inherit;
    margin-bottom: .25rem;
}

.ask-engine {
    display: inline-flex;
    margin-left: .45rem;
    padding: .12rem .38rem;
    border-radius: 999px;
    background: #eef6ff;
    color: #2f5f91;
    font-size: .68rem;
    font-weight: 800;
    vertical-align: middle;
}

.ask-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: .55rem;
    margin-top: .8rem;
}

.ask-verification {
    margin-top: .7rem;
    border: 1px solid #bdd7ff;
    background: #f5f9ff;
    border-radius: 8px;
    padding: .65rem .75rem;
    color: var(--erp-text);
}

.ask-verification-needs_review {
    border-color: #f4c98b;
    background: #fff8ee;
}

.ask-verification-line {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
    font-size: .72rem;
    line-height: 1.45;
}

.ask-verification-line strong {
    color: #1d4f83;
}

.ask-verification-line > span {
    color: var(--erp-muted);
}

.ask-verification-line a,
.ask-verification-tool {
    border: 1px solid var(--erp-border);
    background: #fff;
    border-radius: 999px;
    padding: .12rem .42rem;
    color: #1d4f83;
    font-weight: 700;
}

.ask-verification-head,
.ask-verification-meta,
.ask-filter-chips {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
}

.ask-verification-head {
    justify-content: space-between;
}

.ask-verification-head strong {
    font-size: .78rem;
    color: #1d4f83;
}

.ask-verification-head small,
.ask-verification p,
.ask-verification-meta,
.ask-filter-chips,
.ask-verification li {
    font-size: .7rem;
}

.ask-verification p {
    margin: .25rem 0 .45rem;
    color: var(--erp-muted);
}

.ask-verification-meta span,
.ask-filter-chips span {
    border: 1px solid var(--erp-border);
    background: #fff;
    border-radius: 999px;
    padding: .16rem .45rem;
}

.ask-filter-chips {
    margin-top: .45rem;
}

.ask-verification ul {
    margin: .45rem 0 0;
    padding-left: 1rem;
    color: var(--erp-muted);
}

.ask-verification li.passed::marker {
    color: #168a45;
}

.ask-summary-card {
    border: 1px solid var(--erp-border);
    border-radius: 8px;
    padding: .65rem .75rem;
    background: var(--erp-soft-bg);
}

.ask-summary-card span {
    display: block;
    color: var(--erp-muted);
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.ask-summary-card strong {
    display: block;
    margin-top: .2rem;
    font-size: .95rem;
}

.ask-table-wrap {
    margin-top: .8rem;
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid var(--erp-border);
    border-radius: 8px;
}

.ask-table-wrap table {
    margin: 0;
    min-width: 760px;
}

.ask-suggestions {
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
    margin-top: .8rem;
}

.ask-suggestion,
.ask-example {
    border: 1px solid var(--erp-border);
    background: #fff;
    color: var(--erp-text);
    border-radius: 8px;
    cursor: pointer;
}

.ask-suggestion {
    padding: .35rem .55rem;
    font-size: .72rem;
}

.ask-erp-side h2 {
    margin-top: 0;
}

.ask-erp-mode {
    display: grid;
    gap: .2rem;
    padding: .75rem;
    margin-bottom: .75rem;
    border: 1px solid var(--erp-border);
    border-radius: 8px;
    background: var(--erp-soft-bg);
}

.ask-erp-mode span,
.ask-erp-mode small {
    color: var(--erp-muted);
    font-size: .72rem;
}

.ask-erp-mode strong {
    color: var(--erp-text);
    font-size: .9rem;
}

.ask-model-control {
    display: grid;
    gap: .3rem;
    margin-top: .35rem;
}

.ask-model-control select {
    width: 100%;
    min-height: 2.15rem;
}

.ask-token-panel {
    padding: .75rem;
    margin-bottom: .75rem;
    border: 1px solid var(--erp-border);
    border-radius: 8px;
    background: #fff;
}

.ask-token-panel h2 {
    margin: 0 0 .55rem;
    font-size: .9rem;
}

.ask-token-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .4rem .75rem;
    align-items: baseline;
}

.ask-token-grid span,
.ask-token-panel small {
    color: var(--erp-muted);
    font-size: .72rem;
}

.ask-token-grid strong {
    color: var(--erp-heading);
    font-size: .8rem;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.ask-token-panel small {
    display: block;
    margin-top: .6rem;
    line-height: 1.35;
}

.ask-example {
    width: 100%;
    text-align: left;
    padding: .65rem .75rem;
    margin-bottom: .45rem;
    font-weight: 700;
}

.ask-example:hover,
.ask-suggestion:hover {
    border-color: var(--erp-primary);
    color: var(--erp-primary);
}

.ask-erp-note {
    margin-top: 1rem;
    border-top: 1px solid var(--erp-border);
    padding-top: .85rem;
    color: var(--erp-muted);
    display: grid;
    gap: .25rem;
}

.ask-erp-note strong {
    color: var(--erp-text);
}

.ask-erp-compose {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .65rem;
    margin-top: .9rem;
    align-items: end;
}

.ask-erp-compose textarea {
    resize: vertical;
    min-height: 54px;
}

@media (max-width: 980px) {
    .ask-erp-shell {
        grid-template-columns: 1fr;
    }

    .ask-erp-thread {
        height: auto;
        max-height: 70vh;
    }
}

/* ══════════════════════════════════════════════════════════════
   ✦  BEAUTY PASS — Comprehensive polish & delight layer
   ══════════════════════════════════════════════════════════════ */

/* ── Custom scrollbar ──────────────────────────────────────── */
::-webkit-scrollbar              { width: 5px; height: 5px; }
::-webkit-scrollbar-track        { background: transparent; }
::-webkit-scrollbar-thumb        { background: #c4b5fd; border-radius: 999px; }
::-webkit-scrollbar-thumb:hover  { background: #a78bfa; }
.sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.25); }
.sidebar::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.40); }

/* ── Smooth base transitions ───────────────────────────────── */
a, button, input, select, textarea, .btn, .panel, .stat,
.rpt-card, .rpt-tbl-wrap, .rpt-action-group {
    transition-duration: .18s;
    transition-timing-function: cubic-bezier(.4, 0, .2, 1);
}

/* ── Sidebar — polished glass brand area ───────────────────── */
.sidebar .brand {
    background: rgba(0,0,0,.12);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.brand-title {
    font-size: .88rem;
    font-weight: 900;
    letter-spacing: .02em;
}
.brand-mark {
    border-radius: 12px;
    font-size: .75rem;
    font-weight: 900;
}

/* Nav group summary — show a subtle right chevron badge when closed */
.nav-group summary {
    position: relative;
}
.nav-group > summary::before {
    content: '';
    position: absolute;
    right: .55rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1.4rem;
    height: 1.4rem;
    background: rgba(255,255,255,.06);
    border-radius: 5px;
    opacity: 0;
    transition: opacity .18s;
}
.nav-group:not([open]) > summary:hover::before { opacity: 1; }

/* Nav link — animated left indicator bar ──────────────────── */
.nav > a,
.nav-sub > a {
    position: relative;
    overflow: hidden;
}
.nav > a::after {
    content: '';
    position: absolute;
    left: 0; top: 50%; bottom: 50%;
    width: 2px;
    background: var(--erp-sidebar-primary);
    border-radius: 2px;
    transition: top .22s cubic-bezier(.4,0,.2,1), bottom .22s cubic-bezier(.4,0,.2,1);
    opacity: .7;
}
.nav > a:hover::after,
.nav > a.active::after {
    top: 12%; bottom: 12%;
    opacity: 1;
}

/* Sidebar user section */
.sidebar-user {
    border-radius: 0 0 0 0;
    background: rgba(0,0,0,.18);
}
.sidebar-user__name { font-size: .82rem; font-weight: 800; }

/* ── Company context bar — gradient glass ──────────────────── */
.company-context {
    background: linear-gradient(135deg, #eef2ff 0%, #f0fdf4 100%) !important;
    border-color: #ddd6fe !important;
}
.context-badge {
    background: rgba(99,102,241,.08);
    border-color: rgba(99,102,241,.20);
    color: var(--erp-primary);
    font-weight: 800;
}

/* ── rpt-page-head title — gradient text ───────────────────── */
.rpt-title {
    background: linear-gradient(135deg, #4f46e5 0%, #06b6d4 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    font-size: 1.35rem;
    font-weight: 900;
    letter-spacing: -.01em;
}

/* ── rpt-cards — colored gradient backgrounds ──────────────── */
.rpt-card {
    transition: transform .18s cubic-bezier(.4,0,.2,1),
                box-shadow .18s cubic-bezier(.4,0,.2,1);
}
.rpt-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(79,70,229,.12);
}
.rpt-card-blue  { background: linear-gradient(135deg, #eff6ff 0%, #ffffff 60%); }
.rpt-card-green { background: linear-gradient(135deg, #f0fdf4 0%, #ffffff 60%); }
.rpt-card-red   { background: linear-gradient(135deg, #fef2f2 0%, #ffffff 60%); }
.rpt-card-warn  { background: linear-gradient(135deg, #fffbeb 0%, #ffffff 60%); }

/* ── rpt-tbl-wrap — softer look ────────────────────────────── */
.rpt-tbl-wrap {
    box-shadow: 0 1px 3px rgba(79,70,229,.05),
                0 8px 24px rgba(79,70,229,.07);
    border-radius: 14px;
}
.rpt-tbl-header {
    border-radius: 14px 14px 0 0;
    padding: .75rem 1.1rem;
}
.rpt-pagination { border-radius: 0 0 14px 14px; }

/* ── Table — richer header + row hover indicator ───────────── */
.rpt-tbl-wrap thead th {
    background: linear-gradient(180deg, #eef2ff 0%, #e8edff 100%);
    color: #4338ca;
    letter-spacing: .05em;
    font-size: .63rem;
}
.rpt-tbl-wrap tbody tr {
    transition: background .12s ease;
    position: relative;
}
.rpt-tbl-wrap tbody tr:hover > td:first-child {
    border-left: 3px solid var(--erp-primary);
    padding-left: calc(.62rem - 3px);
}

/* General th also gets the gradient */
th {
    background: linear-gradient(180deg, #f0f2ff 0%, #eaedff 100%);
}

/* ── Panel — subtle gradient feel ─────────────────────────── */
.panel {
    background: linear-gradient(160deg, #ffffff 0%, #fafbff 100%);
}

/* ── Stat cards — icon accent colors & hover lift ─────────── */
.stat {
    transition: transform .18s cubic-bezier(.4,0,.2,1),
                box-shadow .18s cubic-bezier(.4,0,.2,1);
    background: linear-gradient(160deg, #ffffff 0%, #fafbff 100%);
}
.stat:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(79,70,229,.10);
}
.stat:first-child  { border-top-color: #6366f1; }
.stat:nth-child(2) { border-top-color: #16a34a; }
.stat:nth-child(3) { border-top-color: #f59e0b; }
.stat:nth-child(4) { border-top-color: #ef4444; }

/* ── Buttons — glow effect on hover ────────────────────────── */
.btn:hover {
    box-shadow: 0 4px 16px rgba(79,70,229,.30), 0 2px 6px rgba(79,70,229,.20) !important;
}
.btn.secondary:hover {
    box-shadow: 0 4px 12px rgba(99,102,241,.15) !important;
}

/* ── Input / Select — glass style focus ────────────────────── */
input:focus,
select:focus,
textarea:focus {
    border-color: #a78bfa;
    box-shadow: 0 0 0 3px rgba(99,102,241,.10), 0 1px 4px rgba(99,102,241,.08);
}
input, select {
    background: linear-gradient(180deg, #ffffff 0%, #fafbff 100%);
}

/* ── Badges — more polished pill ───────────────────────────── */
.badge {
    letter-spacing: .04em;
    font-size: .68rem;
    padding: .26rem .72rem;
    font-weight: 800;
}
.badge.ok, .badge.success, .badge.cleared, .badge.paid, .badge.posted, .badge.completed {
    background: linear-gradient(135deg, #dcfce7 0%, #d1fae5 100%);
    color: #15803d;
    box-shadow: inset 0 0 0 1px rgba(21,128,61,.15);
}
.badge.warn, .badge.warning, .badge.pending, .badge.unpaid, .badge.draft {
    background: linear-gradient(135deg, #fef9c3 0%, #fef3c7 100%);
    color: #92400e;
    box-shadow: inset 0 0 0 1px rgba(146,64,14,.15);
}
.badge.danger, .badge.error, .badge.cancelled, .badge.rejected, .badge.bounced {
    background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);
    color: #b91c1c;
    box-shadow: inset 0 0 0 1px rgba(185,28,28,.15);
}

/* ── Alert — more beautiful ────────────────────────────────── */
.alert {
    border-radius: 12px;
}
.alert.ok   { box-shadow: 0 1px 4px rgba(21,128,61,.08); }
.alert.error { box-shadow: 0 1px 4px rgba(239,68,68,.08); }

/* ── rpt-action-group hover per button ─────────────────────── */
.rpt-ag-btn:hover {
    background: linear-gradient(135deg, #ede9fe 0%, #e0e7ff 100%) !important;
    color: #4338ca !important;
}
.rpt-action-group {
    box-shadow: 0 1px 4px rgba(99,102,241,.08);
}

/* ── topbar / page-header — gradient glass ─────────────────── */
.topbar, .page-header {
    background: linear-gradient(135deg, #faf9ff 0%, #ffffff 60%, #f6f8ff 100%) !important;
}

/* ── rpt-filter-card — glass look ──────────────────────────── */
.rpt-filter-card {
    background: linear-gradient(160deg, #ffffff 0%, #fafbff 100%);
}

/* ── Empty state — centered message ────────────────────────── */
.erp-empty-state {
    padding: 2.5rem 1rem;
    text-align: center;
    color: var(--erp-muted);
}
.erp-empty-state strong {
    display: block;
    font-size: .9rem;
    font-weight: 800;
    color: var(--erp-text);
    margin-bottom: .4rem;
}
.erp-empty-state::before {
    content: '📋';
    display: block;
    font-size: 2.2rem;
    margin-bottom: .65rem;
    opacity: .55;
}
td.muted.erp-empty-state,
tr .erp-empty-state {
    padding: 2.2rem 1rem;
}

/* ── Pagination active button glow ─────────────────────────── */
.erp-page-btn.is-active {
    box-shadow: 0 2px 10px rgba(79,70,229,.28), 0 0 0 2px rgba(79,70,229,.10) !important;
}

/* ── Summary compact cards — better look ───────────────────── */
.summary-pair {
    background: linear-gradient(160deg, #ffffff 0%, #fafbff 100%);
    border-color: #ddd6fe;
    box-shadow: 0 2px 8px rgba(79,70,229,.06);
    transition: box-shadow .16s ease, transform .16s ease;
}
.summary-pair:hover {
    box-shadow: 0 6px 20px rgba(79,70,229,.10);
    transform: translateY(-1px);
}

/* ── h1/h2 typography polish ───────────────────────────────── */
h1 { font-weight: 900; letter-spacing: -.01em; }
h2 { font-weight: 800; letter-spacing: -.005em; }

/* ── Topbar h1 — not gradient (keep readable) ──────────────── */
.topbar h1, .page-header h1 {
    background: none;
    -webkit-text-fill-color: var(--erp-text);
    color: var(--erp-text);
    font-size: 1.3rem;
    font-weight: 900;
}

/* ── rpt-subtitle polish ────────────────────────────────────── */
.rpt-subtitle {
    color: #8b8fa8;
    font-size: .8rem;
    margin-top: .22rem;
}

/* ── Page background — subtle dot grid ─────────────────────── */
body {
    background-image: radial-gradient(circle, rgba(99,102,241,.035) 1px, transparent 1px);
    background-size: 24px 24px;
}

/* ── rpt-cards container hover ─────────────────────────────── */
.rpt-cards { gap: .72rem; }

/* ── Smooth page load fade ─────────────────────────────────── */
@keyframes erp-fadein {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}
.main > * {
    animation: erp-fadein .28s cubic-bezier(.4, 0, .2, 1) both;
}
.main > *:nth-child(1) { animation-delay: .02s; }
.main > *:nth-child(2) { animation-delay: .05s; }
.main > *:nth-child(3) { animation-delay: .08s; }
.main > *:nth-child(4) { animation-delay: .10s; }
.main > *:nth-child(5) { animation-delay: .12s; }

/* ── Notification toast polish ──────────────────────────────── */
.notification-toast,
.erp-toast {
    border-radius: 12px;
    box-shadow: 0 8px 28px rgba(6,182,212,.14), 0 2px 8px rgba(0,0,0,.06);
    border-left: 4px solid #06b6d4;
}

/* ── table border-radius fix for rpt ───────────────────────── */
.rpt-tbl-scroll table {
    border-radius: 0;
    box-shadow: none;
    border: none;
}
.rpt-tbl-wrap table thead tr:first-child th:first-child { border-radius: 0; }
.rpt-tbl-wrap table thead tr:first-child th:last-child  { border-radius: 0; }

/* ── Filter card details/summary ───────────────────────────── */
.rpt-filter-card details summary {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .3rem .6rem;
    background: rgba(99,102,241,.06);
    border-radius: 7px;
    border: 1px solid rgba(99,102,241,.12);
    color: var(--erp-primary);
    font-size: .78rem;
    font-weight: 700;
    transition: background .14s;
}
.rpt-filter-card details summary:hover {
    background: rgba(99,102,241,.12);
}

/* ── Card / panel — polished hover ─────────────────────────── */
.panel {
    transition: box-shadow .18s ease, transform .18s ease;
}
.panel:hover {
    box-shadow: 0 4px 18px rgba(79,70,229,.09);
}

/* ── Bottom fade on sidebar nav overflow ───────────────────── */
.nav {
    position: relative;
}

/* ── rpt-tbl-header separator ───────────────────────────────── */
.rpt-tbl-header {
    background: linear-gradient(135deg, #eef2ff 0%, #e8edff 100%);
}

/* ── Lookup dropdown polish ─────────────────────────────────── */
.lookup-menu {
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(79,70,229,.14);
    border-color: #e0e4ff;
    overflow-y: auto;
    overflow-x: hidden;
}
.lookup-option {
    transition: background .12s ease;
}
.lookup-option:hover {
    background: #ede9fe;
    color: var(--erp-primary);
}

/* ── Context badge number pill ──────────────────────────────── */
.erp-page-btn {
    font-weight: 800;
    border-radius: 8px;
    transition: background .14s, border-color .14s, box-shadow .14s;
}

/* ── Print: hide dot grid background ─────────���─────────────── */
@media print {
    body {
        background-image: none !important;
    }
}

/* ══════════════════════════════════════════════════════════════
   LIVE SEARCH DROPDOWN
   ══════════════════════════════════════════════════════════════ */

.global-search {
    flex: 1 1 320px;
    max-width: 560px;
}

/* The dropdown panel — position:fixed set by JS to bypass all stacking contexts */
.erp-search-dropdown {
    position: fixed;
    background: #ffffff;
    border: 1.5px solid #e0e4ff;
    border-radius: 14px;
    box-shadow: 0 16px 48px rgba(79,70,229,.18), 0 4px 12px rgba(0,0,0,.08);
    z-index: 99999;
    max-height: 480px;
    overflow-y: auto;
    overflow-x: hidden;
    animation: erp-fadein .14s cubic-bezier(.4,0,.2,1) both;
}
.erp-search-dropdown::-webkit-scrollbar       { width: 4px; }
.erp-search-dropdown::-webkit-scrollbar-thumb { background: #c4b5fd; border-radius: 999px; }

/* Each result row — simple flexbox layout */
.erp-search-item {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .62rem 1rem;
    border-bottom: 1px solid #f0f2ff;
    text-decoration: none !important;
    color: var(--erp-text) !important;
    cursor: pointer;
    transition: background .1s ease;
    min-width: 0;
}
.erp-search-item:last-of-type { border-bottom: none; }
.erp-search-item:hover,
.erp-search-item.is-active    { background: #f5f3ff; }

/* Type badge */
.erp-search-type {
    flex: 0 0 auto;
    font-size: .58rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: .22rem .52rem;
    border-radius: 6px;
    white-space: nowrap;
}

/* Middle: title + subtitle */
.erp-search-body {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .06rem;
}

/* Title */
.erp-search-title {
    font-weight: 700;
    font-size: .82rem;
    color: var(--erp-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Subtitle */
.erp-search-sub {
    font-size: .71rem;
    color: var(--erp-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Meta — right side */
.erp-search-meta {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .12rem;
}
.erp-search-meta-amount {
    font-size: .75rem;
    font-weight: 800;
    color: var(--erp-primary);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.erp-search-meta-date {
    font-size: .64rem;
    color: var(--erp-muted);
    white-space: nowrap;
}
.erp-search-meta-status {
    font-size: .6rem;
    font-weight: 700;
    padding: .1rem .38rem;
    border-radius: 5px;
    background: #f0f2ff;
    color: #4f46e5;
    white-space: nowrap;
}

/* "View all results" footer link */
.erp-search-all {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    padding: .62rem .9rem;
    font-size: .76rem;
    font-weight: 700;
    color: var(--erp-primary) !important;
    text-decoration: none !important;
    border-top: 1.5px solid #e0e4ff;
    background: #fafbff;
    border-radius: 0 0 14px 14px;
    transition: background .12s;
}
.erp-search-all:hover { background: #ede9fe; }
.erp-search-all svg   { opacity: .7; }

/* Loading / empty states */
.erp-search-loading,
.erp-search-empty {
    padding: 1.4rem 1rem;
    text-align: center;
    color: var(--erp-muted);
    font-size: .8rem;
}
.erp-search-loading::before {
    content: '';
    display: inline-block;
    width: 1rem; height: 1rem;
    border: 2px solid #e0e4ff;
    border-top-color: #6366f1;
    border-radius: 50%;
    animation: erp-spin .6s linear infinite;
    margin-right: .5rem;
    vertical-align: middle;
}
@keyframes erp-spin {
    to { transform: rotate(360deg); }
}

/* Section group header (e.g. "Sale Invoices") */
.erp-search-group-head {
    padding: .42rem .9rem .2rem;
    font-size: .6rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: #9896b0;
    background: #fafbff;
    border-bottom: 1px solid #f0f2ff;
}

/* ── Type badge color variants ─────────────────────────────── */
.erp-badge-sale-invoice      { background: #dcfce7; color: #15803d; }
.erp-badge-purchase-invoice  { background: #dbeafe; color: #1d4ed8; }
.erp-badge-delivery-challan  { background: #e0f2fe; color: #0369a1; }
.erp-badge-customer-receipt  { background: #d1fae5; color: #065f46; }
.erp-badge-transaction       { background: #fef3c7; color: #92400e; }
.erp-badge-expense           { background: #fee2e2; color: #b91c1c; }
.erp-badge-party             { background: #ede9fe; color: #6d28d9; }
.erp-badge-item              { background: #cffafe; color: #0e7490; }
.erp-badge-task              { background: #ffedd5; color: #c2410c; }
.erp-badge-account           { background: #f1f5f9; color: #475569; }

/* Search input when active/focused */
.global-search input:focus {
    border-color: #a78bfa;
    box-shadow: 0 0 0 3px rgba(99,102,241,.12);
}

/* Highlight matched text in results */
.erp-search-highlight {
    background: #fef9c3;
    border-radius: 2px;
    padding: 0 1px;
}

/* Mobile: full-width dropdown */
@media (max-width: 720px) {
    .erp-search-dropdown {
        min-width: unset;
        left: -8px;
        right: -8px;
    }
}

/* ── Sales Order Summary: keep selector page compact and printable ─ */
form.sales-order-summary-filter {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: .44rem .55rem !important;
    align-items: end !important;
    padding: .72rem .82rem !important;
}

form.sales-order-summary-filter > div:not(.sales-order-summary-actions):not(.sales-order-summary-picker) {
    min-width: 0;
}

form.sales-order-summary-filter .sales-order-summary-actions {
    grid-column: 1 / -1 !important;
    display: flex !important;
    justify-content: flex-start !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: .4rem !important;
    margin-top: .05rem !important;
}

form.sales-order-summary-filter .sales-order-summary-actions .btn {
    min-width: max-content !important;
    min-height: 1.92rem !important;
    padding: .31rem .62rem !important;
    white-space: nowrap !important;
}

form.sales-order-summary-filter .sales-order-summary-picker {
    grid-column: 1 / -1 !important;
    margin-top: .18rem !important;
}

.sales-order-summary-picker .table-responsive {
    max-height: none;
}

.sales-order-index-panel {
    padding: .78rem .86rem;
}

.sales-order-index-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .8rem;
    margin-bottom: .65rem;
}

.sales-order-index-panel-head > div:first-child {
    min-width: 0;
}

.sales-order-index-panel-head .table-actions {
    flex-shrink: 0;
}

.sales-order-index-summary-form {
    margin: 0;
}

.sales-order-index-panel table th,
.sales-order-index-panel table td {
    padding-top: .42rem;
    padding-bottom: .42rem;
    vertical-align: middle;
    white-space: nowrap;
}

.sales-order-index-panel table {
    min-width: 1120px;
}

.sales-order-actions-head,
.sales-order-actions-cell {
    width: 11.5rem;
    min-width: 11.5rem;
}

.sales-order-row-actions {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-end !important;
    gap: .3rem !important;
}

.sales-order-row-actions .btn {
    min-height: 1.55rem !important;
    padding: .2rem .45rem !important;
    font-size: .66rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

.sales-order-summary-use-col {
    width: 44px;
    text-align: center !important;
}

.sales-order-summary-status-blank {
    min-width: 5rem;
}

@media (max-width: 1180px) {
    form.sales-order-summary-filter {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 560px) {
    form.sales-order-summary-filter {
        grid-template-columns: 1fr !important;
    }

    form.sales-order-summary-filter .sales-order-summary-actions {
        align-items: stretch !important;
        flex-direction: column !important;
    }

    form.sales-order-summary-filter .sales-order-summary-actions .btn {
        width: 100%;
    }

    .sales-order-index-panel-head {
        align-items: stretch;
        flex-direction: column;
    }

    .sales-order-index-panel-head .table-actions,
    .sales-order-index-panel-head .btn {
        width: 100%;
    }
}

/* ════════════════════════════════════════════════════════════════
   ERP UX polish layer
   Compact filters, calmer action cells, sticky report tables and
   clearer empty states. This section is intentionally late in the
   file so it normalizes older page-specific rules without changing
   business logic.
   ════════════════════════════════════════════════════════════════ */

.rpt-filter-card.filters.is-dense,
.rpt-filter-card.inventory-filter-card.is-dense {
    display: grid;
    grid-template-columns: repeat(6, minmax(128px, 1fr)) max-content;
    gap: .38rem .48rem;
    align-items: end;
    padding: .5rem .6rem !important;
}

.rpt-filter-card.filters.is-dense > div:not(.filter-actions),
.rpt-filter-card.inventory-filter-card.is-dense > div:not(.filter-actions) {
    min-width: 0;
}

.rpt-filter-card.filters.is-dense label,
.rpt-filter-card.inventory-filter-card.is-dense label,
.erp-compact-filter label {
    color: #334155;
    font-size: .62rem !important;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.1;
    margin-bottom: .14rem !important;
}

.rpt-filter-card.filters.is-dense input,
.rpt-filter-card.filters.is-dense select,
.rpt-filter-card.inventory-filter-card.is-dense input,
.rpt-filter-card.inventory-filter-card.is-dense select,
.erp-compact-filter input,
.erp-compact-filter select {
    min-height: 1.78rem !important;
    padding: .28rem .46rem !important;
    font-size: .73rem !important;
}

.rpt-filter-card.filters.is-dense .filter-actions,
.rpt-filter-card.inventory-filter-card.is-dense .filter-actions,
.erp-compact-filter > .filter-actions,
.erp-compact-filter > .actions {
    align-self: end;
    display: inline-flex;
    flex-wrap: nowrap !important;
    gap: .32rem;
    margin-top: 0 !important;
}

.rpt-filter-card.filters.is-dense .filter-actions .btn,
.rpt-filter-card.inventory-filter-card.is-dense .filter-actions .btn,
.erp-compact-filter > .filter-actions .btn,
.erp-compact-filter > .actions .btn {
    min-height: 1.78rem !important;
    padding: .28rem .55rem !important;
    font-size: .7rem !important;
    line-height: 1 !important;
    white-space: nowrap;
}

.rpt-filter-card .lookup,
.erp-compact-filter .lookup {
    min-width: 0;
}

.rpt-filter-card.is-dense > .erp-auto-columns,
.item-purchase-filter .item-purchase-columns {
    align-self: end;
    margin-top: 0 !important;
}

.rpt-filter-card.is-dense > .erp-auto-columns > summary,
.item-purchase-filter .item-purchase-columns > summary {
    min-height: 1.78rem;
    padding: .28rem .5rem !important;
    font-size: .68rem !important;
    line-height: 1 !important;
}

.rpt-filter-card.is-dense > .erp-auto-columns:not([open]) > summary,
.item-purchase-filter .item-purchase-columns:not([open]) > summary {
    margin-bottom: 0 !important;
}

.stock-report-filter.rpt-filter-card.inventory-filter-card.is-dense {
    display: grid;
    grid-template-columns: minmax(260px, 1.35fr) minmax(180px, .62fr) max-content max-content;
    gap: .38rem .48rem;
    align-items: end;
}

.stock-report-filter .inventory-filter-grid {
    display: contents;
}

.stock-report-filter .inventory-columns-details {
    display: inline-block;
    margin-top: 0 !important;
    max-width: 100%;
    align-self: end;
}

.stock-report-filter .inventory-columns-details > summary {
    min-height: 1.78rem;
    padding: .28rem .55rem !important;
    font-size: .68rem !important;
    line-height: 1 !important;
    border: 1px solid var(--erp-border);
    border-radius: 8px;
    background: #f8fafc;
}

.stock-report-filter .inventory-columns-details[open] {
    display: block;
    grid-column: 1 / -1;
    width: 100%;
}

.po-pending-head {
    margin-bottom: .62rem;
}

.po-pending-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: .62rem;
}

.po-pending-filter.rpt-filter-card.is-dense {
    display: grid;
    grid-template-columns:
        minmax(145px, 1.05fr)
        minmax(130px, .9fr)
        minmax(130px, .9fr)
        minmax(104px, .62fr)
        minmax(112px, .68fr)
        max-content
        max-content;
    gap: .38rem .48rem;
    align-items: end;
    padding: .5rem .6rem !important;
}

.po-pending-filter > div:not(.filter-actions) {
    min-width: 0;
}

.po-pending-filter label {
    color: #334155;
    font-size: .62rem !important;
    font-weight: 800;
    line-height: 1.1;
    margin-bottom: .14rem !important;
}

.po-pending-filter input,
.po-pending-filter select {
    min-height: 1.78rem !important;
    padding: .28rem .46rem !important;
    font-size: .73rem !important;
}

.po-pending-filter .filter-actions {
    align-self: end;
    display: inline-flex;
    flex-wrap: nowrap;
    gap: .32rem;
    justify-content: flex-end;
    margin-top: 0 !important;
}

.po-pending-filter .filter-actions .btn {
    min-height: 1.78rem !important;
    padding: .28rem .55rem !important;
    font-size: .7rem !important;
    white-space: nowrap;
}

.po-pending-filter > .erp-auto-columns > summary {
    min-width: 4.25rem;
    justify-content: center;
}

.po-pending-panel table {
    min-width: 1260px;
}

.po-pending-table-head {
    display: flex;
    justify-content: space-between;
    gap: .7rem;
    align-items: center;
}

.po-pending-group-row > td {
    background: #f8fbff;
    border-top: 1px solid #cbd5e1;
    border-bottom-color: #cbd5e1;
    font-weight: 800;
}

.po-pending-detail-row > td:first-child {
    padding-left: 1.55rem;
}

.po-pending-item-cell {
    min-width: 13rem;
}

.po-pending-item-cell strong,
.po-pending-item-cell span {
    display: block;
}

.po-pending-item-cell strong {
    color: var(--erp-primary);
    font-size: .78rem;
    font-weight: 850;
    line-height: 1.2;
}

.po-pending-group-row .po-pending-item-cell strong {
    color: var(--erp-text);
}

.po-pending-item-cell span {
    color: var(--erp-muted);
    font-size: .68rem;
    line-height: 1.25;
    margin-top: .08rem;
}

.po-pending-progress {
    width: 100%;
    max-width: 9.5rem;
    height: .32rem;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
    margin-top: .32rem;
}

.po-pending-progress i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #16a34a, #22c55e);
}

.po-pending-action-head,
.po-pending-actions {
    width: 5.8rem;
    min-width: 5.8rem;
}

.po-pending-actions {
    justify-content: flex-end;
}

.po-pending-actions .btn {
    min-width: 4.7rem;
}

.panel > .table-responsive,
.inventory-table-panel,
.po-list-panel,
.sales-order-index-panel {
    overflow: hidden;
}

.table-responsive,
.rpt-tbl-scroll {
    scrollbar-width: thin;
}

.table-responsive table,
.inventory-table-panel table,
.po-list-panel table,
.sales-order-index-panel table {
    margin-bottom: 0;
}

.table-responsive thead th,
.panel > table thead th,
.inventory-table-panel thead th,
.po-list-panel thead th,
.sales-order-index-panel thead th,
.rpt-tbl-wrap thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    border-bottom: 1px solid var(--erp-border);
}

.table-actions,
.action-cell {
    flex-wrap: nowrap !important;
    gap: .28rem !important;
    min-width: max-content;
}

td .table-actions,
td.action-cell {
    justify-content: flex-end;
}

.table-actions .btn,
.action-cell .btn {
    min-height: 1.58rem !important;
    padding: .22rem .44rem !important;
    font-size: .68rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

.table-actions .erp-icon,
.action-cell .erp-icon {
    width: .8rem;
    height: .8rem;
}

.cheque-clearing-page {
    max-width: 100%;
    overflow-x: hidden;
}

.cheque-clearing-page .rpt-page-head,
.cheque-clearing-page .rpt-filter-card,
.cheque-clearing-page .summary-compact,
.cheque-clearing-page .rpt-tbl-wrap {
    min-width: 0;
}

.cheque-clearing-page .rpt-split-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.cheque-clearing-page .rpt-tbl-scroll {
    max-width: 100%;
    overflow-x: hidden;
}

.cheque-clearing-page .rpt-tbl-scroll table {
    width: 100%;
    table-layout: fixed;
}

.cheque-clearing-page .rpt-tbl-wrap th,
.cheque-clearing-page .rpt-tbl-wrap td {
    padding: .46rem .5rem;
    font-size: .72rem;
    line-height: 1.25;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
    vertical-align: top;
}

.cheque-clearing-page .rpt-tbl-wrap thead th {
    white-space: nowrap;
    overflow-wrap: normal;
}

.cheque-clearing-page .muted {
    line-height: 1.25;
}

.cheque-clearing-page .badge {
    white-space: nowrap;
}

.cheque-clearing-page .table-actions,
.cheque-clearing-page td .table-actions {
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    gap: .22rem !important;
    min-width: 0 !important;
}

.cheque-clearing-page .table-actions .btn,
.cheque-clearing-page td > .btn.btn-sm {
    min-width: 0 !important;
    padding: .28rem .42rem !important;
    font-size: .66rem !important;
}

.cheque-clearing-page .index-table-head {
    width: 7.25rem;
    min-width: 7.25rem;
    text-align: left;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
}

@media (max-width: 1100px) {
    .cheque-clearing-page .rpt-split-grid {
        grid-template-columns: 1fr;
    }
}

.sales-order-actions-head,
.sales-order-actions-cell {
    width: 18.5rem !important;
    min-width: 18.5rem !important;
}

.sales-order-row-actions {
    width: 100%;
}

.sales-order-row-actions .btn {
    flex: 0 0 auto;
}

td[colspan].muted,
td.empty-state {
    color: #64748b !important;
    padding: 1.45rem 1rem !important;
    text-align: center !important;
}

td[colspan].muted::first-line,
td.empty-state::first-line {
    color: var(--erp-text);
    font-weight: 800;
}

.amount-tabular,
.text-right,
td:has(> .amount-emphasis) {
    font-variant-numeric: tabular-nums;
}

.badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.28rem;
    white-space: nowrap;
}

.page-header,
.topbar {
    gap: .85rem;
}

.sales-invoice-filters.rpt-filter-card.filters.is-dense {
    grid-template-columns:
        minmax(150px, 1.15fr)
        minmax(135px, 1fr)
        minmax(135px, 1fr)
        minmax(102px, .68fr)
        minmax(102px, .68fr)
        minmax(82px, .52fr)
        minmax(96px, .58fr)
        max-content;
}

@media (max-width: 1180px) {
    .rpt-filter-card.filters.is-dense,
    .rpt-filter-card.inventory-filter-card.is-dense {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .rpt-filter-card.filters.is-dense .filter-actions,
    .rpt-filter-card.inventory-filter-card.is-dense .filter-actions {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }
}

@media (max-width: 760px) {
    .rpt-filter-card.filters.is-dense,
    .rpt-filter-card.inventory-filter-card.is-dense {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .erp-compact-filter {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .rpt-filter-card.filters.is-dense .filter-actions,
    .rpt-filter-card.inventory-filter-card.is-dense .filter-actions,
    .erp-compact-filter > .filter-actions,
    .erp-compact-filter > .actions {
        grid-column: 1 / -1;
        flex-wrap: wrap !important;
    }

    .table-actions,
    .action-cell {
        flex-wrap: wrap !important;
        justify-content: flex-start;
        min-width: 0;
    }

    .sales-order-actions-head,
    .sales-order-actions-cell {
        width: 18.5rem !important;
        min-width: 18.5rem !important;
    }

    td .table-actions,
    td.action-cell,
    .sales-order-row-actions {
        flex-wrap: nowrap !important;
        justify-content: flex-end;
        min-width: max-content;
    }
}

@media (max-width: 420px) {
    .rpt-filter-card.filters.is-dense,
    .rpt-filter-card.inventory-filter-card.is-dense,
    .erp-compact-filter {
        grid-template-columns: 1fr !important;
    }
}
