/*
 * AksaErp global visual foundation.
 * Single-file theme layer loaded after Metronic, Radzen, css isolation, and existing Aksa overrides.
 * Keep this file focused on shell/Radzen/common ERP surfaces; page-specific workflows stay in their own routed pages.
 */

:root {
    --aksa-primary: #1d4ed8;
    --aksa-primary-hover: #1e40af;
    --aksa-primary-soft: #e8f0ff;
    --aksa-page-bg: #f5f7fb;
    --aksa-surface: #ffffff;
    --aksa-surface-muted: #f8fafc;
    --aksa-border: #e4e7ec;
    --aksa-border-strong: #d0d5dd;
    --aksa-text: #111827;
    --aksa-text-muted: #667085;
    --aksa-shadow-sm: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .04);
    --aksa-shadow-md: 0 6px 16px rgba(16, 24, 40, .06), 0 14px 32px rgba(15, 23, 42, .08);
    --aksa-shadow-lg: 0 12px 32px rgba(16, 24, 40, .10), 0 24px 56px rgba(15, 23, 42, .10);
    --aksa-ring: 0 0 0 3px color-mix(in srgb, var(--aksa-primary) 20%, transparent);
    --aksa-on-primary: #ffffff;
    --aksa-radius-sm: .475rem;
    --aksa-radius: .75rem;
    --aksa-radius-lg: 1rem;
    --aksa-control-height: 2.45rem;
    --aksa-grid-row-height: 2.75rem;
    --aksa-page-gap: 1rem;
    --aksa-workspace-max-width: 1720px;
    --aksa-workspace-gutter: clamp(.75rem, 1.15vw, 1.25rem);
    --aksa-workspace-gutter-sm: .75rem;
}


[data-bs-theme="dark"] {
    --aksa-page-bg: #101418;
    --aksa-surface: #171c22;
    --aksa-surface-muted: #1f252d;
    --aksa-border: #2a313b;
    --aksa-border-strong: #3a4452;
    --aksa-text: #f5f7fb;
    --aksa-text-muted: #a4adba;
    --aksa-primary-soft: rgba(59, 130, 246, .18);
    --aksa-shadow-sm: 0 1px 2px rgba(0, 0, 0, .45);
    --aksa-shadow-md: 0 8px 24px rgba(0, 0, 0, .5);
    --aksa-shadow-lg: 0 16px 40px rgba(0, 0, 0, .55);
    --aksa-ring: 0 0 0 3px color-mix(in srgb, var(--aksa-primary) 38%, transparent);
}

html,
body {
    background: var(--aksa-page-bg);
}

body,
.app-default {
    color: var(--aksa-text);
}

[data-aksa-layout="admin"] .app-main,
[data-aksa-layout="admin"] .app-content,
[data-aksa-layout="admin"] #kt_app_content,
[data-aksa-layout="admin"] #kt_app_content_container {
    color: var(--aksa-text);
}

[data-aksa-layout="admin"] .app-main,
[data-aksa-layout="admin"] .app-content,
[data-aksa-layout="admin"] #kt_app_content {
    background: var(--aksa-page-bg);
}

/* Central ERP workspace frame.
   Keep every routed screen on the same visual rail, while preserving Metronic header/footer containers. */
[data-aksa-layout="admin"] #kt_app_content {
    padding-block: var(--aksa-workspace-gutter);
}

[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container {
    width: 100%;
    max-width: var(--aksa-workspace-max-width);
    margin-inline: auto;
    padding-inline: var(--aksa-workspace-gutter) !important;
    padding-bottom: 1.5rem;
}

[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container > * {
    min-width: 0;
}

[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .container,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .container-sm,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .container-md,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .container-lg,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .container-xl,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .container-xxl,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .container-fluid {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    padding-inline: 0;
}

[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .row {
    --bs-gutter-x: 1rem;
}

[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .aksa-page,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .erp-page,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .document-page,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .process-page,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .list-page,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .aksa-settings-page,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .sales-invoice-list-view,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .sales-order-list-view,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .sales-return-list-view,
[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container .purchase-list-shell {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
}

@media (max-width: 991.98px) {
    [data-aksa-layout="admin"] #kt_app_content {
        padding-block: var(--aksa-workspace-gutter-sm);
    }

    [data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container {
        padding-inline: var(--aksa-workspace-gutter-sm) !important;
    }
}

.card,
.card-flush,
.rz-card,
.aksa-card,
.aksa-page-card,
.kt-portlet {
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius-lg);
    box-shadow: var(--aksa-shadow-sm);
    background: var(--aksa-surface);
}

.card .card-header,
.rz-card .rz-card-header,
.aksa-page-header,
.section-header,
.kt_js_header {
    border-bottom: 1px solid var(--aksa-border);
    background: linear-gradient(180deg, var(--aksa-surface), var(--aksa-surface-muted));
}

.card .card-title,
.aksa-page-title,
.section-header h1,
.section-header h2,
.section-header h3 {
    color: var(--aksa-text);
    letter-spacing: -.01em;
}

.text-muted,
.card .card-subtitle,
.aksa-muted,
.aksa-page-subtitle,
.rz-column-title,
.rz-grid-filter-label {
    color: var(--aksa-text-muted) !important;
}

.btn,
.rz-button,
.form-control,
.form-select,
.rz-inputtext,
.rz-dropdown,
.rz-numeric,
.rz-datepicker,
.rz-multiselect,
.rz-textarea {
    border-radius: var(--aksa-radius-sm);
}

.form-control,
.form-select,
.rz-inputtext,
.rz-dropdown,
.rz-numeric,
.rz-datepicker,
.rz-multiselect,
.rz-textarea,
.rz-spinner input,
.rz-dropdown-label {
    min-height: var(--aksa-control-height);
}

.form-control,
.form-select,
.rz-inputtext,
.rz-dropdown,
.rz-numeric,
.rz-datepicker,
.rz-multiselect,
.rz-textarea {
    border-color: var(--aksa-border-strong);
    background-color: var(--aksa-surface);
    color: var(--aksa-text);
    box-shadow: none;
}

.form-control:focus,
.form-select:focus,
.rz-inputtext:focus,
.rz-dropdown:focus-within,
.rz-numeric:focus-within,
.rz-datepicker:focus-within,
.rz-multiselect:focus-within,
.rz-textarea:focus {
    border-color: var(--aksa-primary);
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--aksa-primary) 14%, transparent);
}

.btn-primary,
.rz-button.rz-primary,
.rz-button.rz-button-md.rz-primary {
    border-color: var(--aksa-primary);
    background-color: var(--aksa-primary);
}

.btn-primary:hover,
.rz-button.rz-primary:hover {
    border-color: var(--aksa-primary-hover);
    background-color: var(--aksa-primary-hover);
}

.rz-datatable,
.rz-grid,
.aksa-grid-shell,
.aksa-data-grid-shell {
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius);
    overflow: hidden;
    background: var(--aksa-surface);
}

.rz-datatable-thead th,
.rz-grid-table thead th,
.rz-datatable-table thead th {
    background: var(--aksa-surface-muted);
    color: var(--aksa-text-muted);
    border-bottom: 1px solid var(--aksa-border);
    font-weight: 700;
}

.rz-datatable-data td,
.rz-grid-table td,
.rz-datatable-table td {
    min-height: var(--aksa-grid-row-height);
    border-bottom-color: var(--aksa-border);
    vertical-align: middle;
}

.rz-datatable-data tr:hover td,
.rz-grid-table tbody tr:hover td,
.rz-datatable-table tbody tr:hover td {
    background: var(--aksa-primary-soft);
}

.rz-paginator,
.rz-pager,
.aksa-grid-footer {
    border-top: 1px solid var(--aksa-border);
    background: var(--aksa-surface-muted);
}

.rz-tabview,
.rz-tabview-panels,
.rz-dialog,
.rz-popup,
.rz-dropdown-panel,
.rz-multiselect-panel {
    border-radius: var(--aksa-radius);
}

.rz-dialog,
.rz-popup,
.rz-dropdown-panel,
.rz-multiselect-panel,
.menu-sub-dropdown {
    border: 1px solid var(--aksa-border);
    box-shadow: var(--aksa-shadow-md);
    background: var(--aksa-surface);
}

.menu .menu-link {
    border-radius: var(--aksa-radius-sm);
}

.menu .menu-link:hover,
.menu .menu-link.active,
.menu .menu-item.hover > .menu-link {
    background-color: var(--aksa-primary-soft);
    color: var(--aksa-primary);
}

.badge,
.status-badge,
.aksa-status-badge,
.rz-badge {
    border-radius: 999px;
    font-weight: 700;
    letter-spacing: .01em;
}

.aksa-page,
.erp-page,
.document-page,
.process-page,
.list-page {
    display: flex;
    flex-direction: column;
    gap: var(--aksa-page-gap);
}

.aksa-page-toolbar,
.erp-page-toolbar,
.document-toolbar,
.sales-list-controlbar,
.purchase-list-controlbar,
.stock-list-controlbar {
    position: sticky;
    top: var(--aksa-sticky-header-offset, 0px);
    z-index: 9;
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius-lg);
    background: color-mix(in srgb, var(--aksa-surface) 92%, transparent);
    box-shadow: var(--aksa-shadow-sm);
    backdrop-filter: blur(8px);
}

.aksa-filter-panel,
.erp-filter-panel,
.document-filter-panel,
.sales-filter-panel,
.purchase-filter-panel,
.stock-filter-panel {
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius);
    background: var(--aksa-surface);
}

.aksa-document-sheet,
.erp-document-sheet,
.sales-sheet,
.purchase-document-sheet,
.stock-document-sheet {
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius-lg);
    background: var(--aksa-surface);
    box-shadow: var(--aksa-shadow-sm);
}

.aksa-summary-panel,
.erp-summary-panel,
.document-summary,
.sales-summary,
.purchase-summary,
.stock-summary {
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius);
    background: var(--aksa-surface-muted);
}

@media (max-width: 991.98px) {
    .aksa-page-toolbar,
    .erp-page-toolbar,
    .document-toolbar,
    .sales-list-controlbar,
    .purchase-list-controlbar,
    .stock-list-controlbar {
        position: static;
        border-radius: var(--aksa-radius);
    }
}


/* Settings pages: compact, consistent admin forms without page-specific inline spacing. */
.aksa-settings-page {
    --aksa-settings-row-gap: .625rem;
}

.aksa-settings-page .card-header,
.aksa-settings-header,
.cs-header {
    min-height: 4rem;
    gap: .75rem;
}

.aksa-settings-page .card-body,
.aksa-settings-body,
.cs-body {
    padding: 1rem 1.25rem;
}

.aksa-settings-page .rz-tabview-panels,
.aksa-settings-page .rz-tabview-panel {
    background: transparent;
}

.aksa-settings-page .rz-fieldset,
.aksa-settings-page .rz-card,
.aksa-settings-card {
    width: 100%;
    border-color: var(--aksa-border);
    border-radius: var(--aksa-radius);
    background: var(--aksa-surface);
    box-shadow: none;
}

.aksa-settings-page .aksa-setting-row {
    margin-inline: 0;
}

.aksa-settings-page .row > .col-3 {
    color: var(--aksa-text-muted);
    font-weight: 600;
}

.aksa-settings-page .row > .col-9,
.aksa-settings-page .adminData.wide {
    min-width: 0;
}

.aksa-settings-page .admin-config-group,
.aksa-settings-page .admin-config-group .title,
.aksa-settings-page .admin-config-group .card-title {
    margin: 0;
}

.aksa-settings-page .admin-config-group .title,
.aksa-settings-page .admin-config-group .card-title {
    padding: .45rem .75rem;
    border-radius: var(--aksa-radius-sm);
    background: var(--aksa-surface-muted);
    color: var(--aksa-text);
    font-weight: 700;
}

.aksa-settings-page .rz-form-field,
.aksa-settings-page .rz-form-field-content,
.aksa-settings-page .rz-dropdown,
.aksa-settings-page .rz-numeric,
.aksa-settings-page .rz-datepicker,
.aksa-settings-page .rz-inputtext,
.aksa-settings-page .rz-textarea,
.aksa-settings-page .rz-spinner,
.aksa-settings-page .rz-multiselect {
    width: 100%;
}

@media (max-width: 991.98px) {
    .aksa-settings-page .row > .col-3,
    .aksa-settings-page .row > .col-9 {
        width: 100%;
    }
}

/* Sales/Purchases routed list pages: centralize duplicated list CSS and keep page CSS isolation light. */
.sales-invoice-list-view,
.sales-order-list-view,
.sales-return-list-view,
.purchase-list-shell {
    min-width: 0;
}

.sales-invoice-list-view,
.sales-order-list-view,
.sales-return-list-view {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.sales-list-controlbar,
.sales-order-list-controlbar,
.sales-return-list-controlbar,
.purchase-list-control {
    position: sticky;
    top: var(--aksa-sticky-header-offset, 0px);
    z-index: 20;
    display: grid;
    grid-template-columns: minmax(13rem, .85fr) minmax(18rem, 30rem) minmax(18rem, auto);
    grid-template-areas: "title search actions";
    align-items: center;
    gap: .625rem;
    min-height: 3.45rem;
    padding: .625rem .75rem;
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius);
    background: var(--aksa-surface);
    box-shadow: var(--aksa-shadow-sm);
}

.purchase-list-control {
    border-radius: var(--aksa-radius) var(--aksa-radius) 0 0;
    border-inline: 0;
    border-top: 0;
}

.sales-list-title-block,
.sales-order-list-title-block,
.sales-return-list-title-block,
.purchase-list-title {
    grid-area: title;
    min-width: 0;
}

.sales-list-search,
.sales-order-list-search,
.sales-return-list-search,
.purchase-list-search {
    grid-area: search;
    position: relative;
    min-width: 0;
    width: 100%;
}

.purchase-list-search--scoped {
    display: grid;
    grid-template-columns: minmax(8.5rem, 10.5rem) minmax(12rem, 1fr);
    align-items: center;
    gap: .375rem;
}

.purchase-list-search-input {
    position: relative;
    min-width: 0;
}

.purchase-list-search-scope,
.purchase-list-search-scope.rz-dropdown {
    width: 100% !important;
    min-height: var(--aksa-control-height);
}


.sales-list-actions,
.sales-order-list-actions,
.sales-return-list-actions,
.purchase-list-actions {
    grid-area: actions;
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: .375rem;
    min-width: 0;
    max-width: 100%;
    flex-wrap: wrap;
}

.sales-list-app-label,
.sales-order-list-app-label,
.sales-return-list-app-label,
.purchase-list-title-text span,
.purchase-list-meta {
    color: var(--aksa-text-muted);
    font-size: .72rem;
    font-weight: 700;
    line-height: 1.2;
}

.sales-list-title-row,
.sales-order-list-title-row,
.sales-return-list-title-row,
.purchase-list-title {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}

.sales-list-title-row h1,
.sales-order-list-title-row h1,
.sales-return-list-title-row h1,
.purchase-list-title-text h3 {
    margin: 0;
    color: var(--aksa-text);
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.15;
    white-space: nowrap;
}

.sales-list-counter,
.sales-order-list-counter,
.sales-return-list-counter,
.sales-list-facet,
.sales-order-list-facet,
.sales-return-list-facet,
.sales-status-chip,
.sales-payment-chip,
.sales-order-status,
.sales-return-status,
.purchase-list-meta,
.purchase-list-grid .badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    min-height: 1.45rem;
    padding: .12rem .5rem;
    border: 1px solid var(--aksa-border);
    border-radius: 999px;
    background: var(--aksa-surface-muted);
    color: var(--aksa-text);
    font-size: .72rem;
    font-weight: 750;
    white-space: nowrap;
}

.sales-list-counter,
.sales-order-list-counter,
.sales-return-list-counter {
    color: var(--aksa-primary);
    background: var(--aksa-primary-soft);
}

.sales-list-search .form-control,
.sales-order-list-search .rz-inputtext,
.sales-return-list-search .rz-inputtext,
.purchase-list-search .rz-textbox,
.purchase-list-search .form-control {
    width: 100%;
    min-height: var(--aksa-control-height);
    border-radius: var(--aksa-radius-sm);
    font-size: .825rem;
}

.sales-list-search .form-control {
    padding-inline-end: 2rem;
}

.purchase-list-search > i {
    position: absolute;
    inset-inline-start: .7rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--aksa-text-muted);
    pointer-events: none;
}

.purchase-list-search .rz-textbox,
.purchase-list-search .form-control {
    padding-inline-start: 2.1rem;
}

.sales-list-search__clear {
    position: absolute;
    inset-inline-end: .3rem;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.55rem;
    height: 1.55rem;
    border: 0;
    border-radius: var(--aksa-radius-sm);
    background: transparent;
    color: var(--aksa-text-muted);
    line-height: 1;
}

.sales-list-search__clear:hover:not(:disabled) {
    background: var(--aksa-surface-muted);
    color: var(--aksa-text);
}

.sales-list-primary-action,
.sales-list-secondary-action,
.sales-order-list-primary-action,
.sales-order-list-secondary-action,
.sales-return-list-primary-action,
.sales-return-list-secondary-action,
.sales-order-icon-action,
.sales-return-icon-action,
.purchase-row-actions .rz-button,
.purchase-row-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.15rem;
    border-radius: var(--aksa-radius-sm);
    font-weight: 750;
    white-space: nowrap;
}

.sales-list-primary-action,
.sales-order-list-primary-action,
.sales-return-list-primary-action {
    gap: .35rem;
}

.purchase-list-actions .btn,
.purchase-list-actions .rz-button,
.purchase-list-actions .rz-dropdown {
    min-height: var(--aksa-control-height);
}

.purchase-list-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    border-radius: var(--aksa-radius-sm);
    font-weight: 750;
    white-space: nowrap;
}


.sales-list-sheet,
.sales-order-list-sheet,
.sales-return-list-sheet,
.purchase-list-shell,
.purchase-list-grid {
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius);
    background: var(--aksa-surface);
    box-shadow: var(--aksa-shadow-sm);
    overflow: hidden;
}

.sales-list-sheet,
.sales-order-list-sheet,
.sales-return-list-sheet {
    min-width: 0;
}

.purchase-list-shell {
    display: flex;
    flex-direction: column;
}

.purchase-list-grid {
    border: 0;
    border-radius: 0 0 var(--aksa-radius) var(--aksa-radius);
    box-shadow: none;
    min-width: 0;
}

.purchase-list-filters,
.sales-list-filter-sheet {
    padding: .75rem;
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius);
    background: var(--aksa-surface);
    box-shadow: var(--aksa-shadow-sm);
}

.purchase-list-filters {
    border-inline: 0;
    border-radius: 0;
    box-shadow: none;
}

.sales-list-filter-grid,
.purchase-list-filter-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(8.5rem, 1fr));
    gap: .625rem;
}

.sales-list-field,
.purchase-list-field,
.purchase-list-filters .row > [class*="col-"] {
    min-width: 0;
}

.sales-list-field--party,
.purchase-list-field--wide {
    grid-column: span 2;
}

.sales-list-field--type,
.purchase-list-field--long {
    grid-column: span 2;
}

.sales-list-field .form-label,
.purchase-list-field .form-label,
.purchase-list-filters .form-label {
    margin-bottom: .25rem;
    color: var(--aksa-text-muted);
    font-size: .72rem;
    font-weight: 750;
}

.sales-list-field .form-control,
.sales-list-field .form-select,
.purchase-list-field .form-control,
.purchase-list-field .form-select,
.purchase-list-filters .form-control,
.purchase-list-filters .form-select,
.purchase-list-filters .rz-inputtext,
.purchase-list-filters .rz-numeric,
.purchase-list-filters .rz-datepicker {
    min-height: 2.1rem;
    font-size: .8rem;
    border-radius: var(--aksa-radius-sm);
}

.sales-list-filter-actions,
.purchase-list-filter-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .45rem;
    margin-top: .75rem;
}

.sales-list-facets,
.sales-order-list-facets,
.sales-return-list-facets {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: .375rem;
    flex-wrap: wrap;
    min-width: 0;
}

.sales-list-grid,
.sales-order-list-grid,
.sales-return-list-grid,
.purchase-list-grid .rz-data-grid,
.purchase-list-grid .rz-datatable {
    width: 100%;
    border: 0;
    background: transparent;
    font-size: .825rem;
}

.sales-list-grid .rz-grid-table thead th,
.sales-order-list-grid .rz-grid-table thead th,
.sales-return-list-grid .rz-grid-table thead th,
.purchase-list-grid .rz-grid-table thead th {
    height: 2.5rem;
    background: var(--aksa-surface-muted);
    color: var(--aksa-text-muted);
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    vertical-align: middle;
}

.sales-list-grid .rz-grid-table tbody td,
.sales-order-list-grid .rz-grid-table tbody td,
.sales-return-list-grid .rz-grid-table tbody td,
.purchase-list-grid .rz-grid-table tbody td {
    height: var(--aksa-grid-row-height);
    padding-block: .35rem;
    vertical-align: middle;
}

.sales-list-grid .rz-grid-table tbody tr:hover,
.sales-order-list-grid .rz-grid-table tbody tr:hover,
.sales-return-list-grid .rz-grid-table tbody tr:hover,
.purchase-list-grid .rz-grid-table tbody tr:hover {
    background: var(--aksa-surface-muted);
}

.sales-document-link,
.sales-order-document-link,
.sales-return-document-link {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .1rem;
    max-width: 100%;
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--aksa-primary);
    text-align: start;
    font-weight: 800;
}

.sales-document-number,
.sales-order-document-number,
.sales-return-document-number,
.sales-order-main-text,
.sales-return-main-text {
    color: var(--aksa-text);
    font-weight: 800;
}

.sales-document-subnumber,
.sales-order-document-subline,
.sales-return-document-subline,
.sales-muted-cell,
.sales-party-cell span,
.sales-muted-money {
    color: var(--aksa-text-muted);
    font-size: .74rem;
    font-weight: 600;
}

.sales-party-cell {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-width: 0;
}

.sales-money-cell,
.sales-muted-money,
.sales-order-amount,
.sales-return-amount {
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    white-space: nowrap;
}

.sales-status-chip--posted,
.sales-order-status--converted {
    color: var(--bs-success);
    background: rgba(var(--bs-success-rgb), .1);
    border-color: rgba(var(--bs-success-rgb), .25);
}

.sales-status-chip--danger,
.sales-return-icon-action--danger,
.sales-order-status--closed {
    color: var(--bs-danger);
    background: rgba(var(--bs-danger-rgb), .1);
    border-color: rgba(var(--bs-danger-rgb), .25);
}

.sales-status-chip--draft,
.sales-order-status--open,
.sales-return-status,
.sales-payment-chip {
    color: var(--bs-warning);
    background: rgba(var(--bs-warning-rgb), .12);
    border-color: rgba(var(--bs-warning-rgb), .25);
}

.sales-row-actions,
.sales-order-row-actions,
.sales-return-row-actions,
.purchase-row-actions {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    white-space: nowrap;
}

.sales-row-action-btn,
.sales-order-icon-action,
.sales-return-icon-action,
.purchase-row-actions .rz-button,
.purchase-row-actions .btn {
    width: 2.05rem;
    height: 2.05rem;
    padding: 0;
}

@media (max-width: 1199.98px) {
    .sales-list-controlbar,
    .sales-order-list-controlbar,
    .sales-return-list-controlbar,
    .purchase-list-control {
        grid-template-columns: 1fr;
        grid-template-areas:
            "title"
            "search"
            "actions";
    }

    .sales-list-actions,
    .sales-order-list-actions,
    .sales-return-list-actions,
    .purchase-list-actions {
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .sales-list-filter-grid,
    .purchase-list-filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sales-list-field--party,
    .sales-list-field--type,
    .purchase-list-field--wide,
    .purchase-list-field--long {
        grid-column: span 1;
    }
}

@media (max-width: 767.98px) {
    .sales-list-filter-grid,
    .purchase-list-filter-grid {
        grid-template-columns: 1fr;
    }

    .purchase-list-search--scoped {
        grid-template-columns: 1fr;
    }
}

/* AksaErp v8 - grid row actions must be visible, compact and fixed like SaleMasterList. */
.sales-row-actions,
.sales-order-row-actions,
.sales-return-row-actions,
.purchase-row-actions {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    opacity: 1 !important;
    visibility: visible !important;
    white-space: nowrap;
}

.sales-row-actions > *,
.sales-order-row-actions > *,
.sales-return-row-actions > *,
.purchase-row-actions > * {
    opacity: 1 !important;
    visibility: visible !important;
}

.sales-row-action-btn,
.sales-order-icon-action,
.sales-return-icon-action,
.purchase-row-action-btn,
.purchase-row-actions .purchase-row-action-btn,
.purchase-row-actions .rz-button.purchase-row-action-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 2.05rem;
    min-width: 2.05rem;
    height: 2.05rem;
    min-height: 2.05rem;
    padding: 0 !important;
    border: 0;
    border-radius: var(--aksa-radius-sm);
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: none;
}

.sales-order-icon-action,
.sales-return-icon-action,
.purchase-row-action-btn--edit,
.purchase-row-actions .purchase-row-action-btn--edit {
    color: var(--aksa-primary) !important;
    background: color-mix(in srgb, var(--aksa-primary) 11%, transparent) !important;
}

.sales-order-icon-action:hover,
.sales-return-icon-action:hover,
.purchase-row-action-btn--edit:hover,
.purchase-row-actions .purchase-row-action-btn--edit:hover {
    color: #fff !important;
    background: var(--aksa-primary) !important;
}

.sales-return-icon-action--danger,
.purchase-row-action-btn--delete,
.purchase-row-actions .purchase-row-action-btn--delete {
    color: var(--bs-danger) !important;
    background: rgba(var(--bs-danger-rgb), .1) !important;
}

.sales-return-icon-action--danger:hover:not(:disabled),
.purchase-row-action-btn--delete:hover:not(:disabled),
.purchase-row-actions .purchase-row-action-btn--delete:hover:not(:disabled) {
    color: #fff !important;
    background: var(--bs-danger) !important;
}

.sales-row-action-btn:disabled,
.sales-order-icon-action:disabled,
.sales-return-icon-action:disabled,
.purchase-row-action-btn:disabled,
.purchase-row-actions .purchase-row-action-btn:disabled,
.purchase-row-actions .rz-button.purchase-row-action-btn:disabled,
.purchase-row-actions .rz-button.purchase-row-action-btn.rz-state-disabled {
    opacity: .45 !important;
    cursor: not-allowed;
}

.purchase-row-actions .rz-button-box,
.purchase-row-actions .rz-button-icon {
    margin: 0 !important;
    line-height: 1;
}

.rz-grid-table td:has(.sales-row-actions),
.rz-grid-table td:has(.sales-order-row-actions),
.rz-grid-table td:has(.sales-return-row-actions),
.rz-grid-table td:has(.purchase-row-actions),
.rz-datatable-table td:has(.sales-row-actions),
.rz-datatable-table td:has(.sales-order-row-actions),
.rz-datatable-table td:has(.sales-return-row-actions),
.rz-datatable-table td:has(.purchase-row-actions) {
    overflow: visible;
}

/* AksaErp v9 - action column must stay in the visible edge of horizontally scrollable grids. */
.sales-list-grid .aksa-list-action-cell,
.sales-order-list-grid .aksa-list-action-cell,
.sales-return-list-grid .aksa-list-action-cell,
.purchase-list-grid .aksa-list-action-cell {
    background: var(--aksa-surface) !important;
    z-index: 8;
}

.sales-list-grid th.aksa-list-action-cell,
.sales-order-list-grid th.aksa-list-action-cell,
.sales-return-list-grid th.aksa-list-action-cell,
.purchase-list-grid th.aksa-list-action-cell {
    z-index: 9;
}

[dir="rtl"] .sales-list-grid .aksa-list-action-cell,
[dir="rtl"] .sales-order-list-grid .aksa-list-action-cell,
[dir="rtl"] .sales-return-list-grid .aksa-list-action-cell,
[dir="rtl"] .purchase-list-grid .aksa-list-action-cell {
    box-shadow: 1px 0 0 var(--aksa-border), 10px 0 18px rgba(15, 23, 42, .04);
}

[dir="ltr"] .sales-list-grid .aksa-list-action-cell,
[dir="ltr"] .sales-order-list-grid .aksa-list-action-cell,
[dir="ltr"] .sales-return-list-grid .aksa-list-action-cell,
[dir="ltr"] .purchase-list-grid .aksa-list-action-cell {
    box-shadow: -1px 0 0 var(--aksa-border), -10px 0 18px rgba(15, 23, 42, .04);
}

/* AksaErp v11 - Purchase invoice list fallback: keep row action column visible even when Radzen frozen column is neutralized by grid width/RTL scroll state. */
.purchase-list-grid .rz-grid-table th.aksa-list-action-cell,
.purchase-list-grid .rz-grid-table td.aksa-list-action-cell,
.purchase-list-grid .rz-datatable-table th.aksa-list-action-cell,
.purchase-list-grid .rz-datatable-table td.aksa-list-action-cell {
    position: sticky !important;
    left: 0 !important;
    right: auto !important;
    width: 92px !important;
    min-width: 92px !important;
    max-width: 92px !important;
    background: var(--aksa-surface) !important;
    z-index: 14 !important;
    box-shadow: 1px 0 0 var(--aksa-border), 10px 0 18px rgba(15, 23, 42, .05) !important;
}

.purchase-list-grid .rz-grid-table thead th.aksa-list-action-cell,
.purchase-list-grid .rz-datatable-table thead th.aksa-list-action-cell {
    background: var(--aksa-surface-muted) !important;
    z-index: 15 !important;
}

[dir="ltr"] .purchase-list-grid .rz-grid-table th.aksa-list-action-cell,
[dir="ltr"] .purchase-list-grid .rz-grid-table td.aksa-list-action-cell,
[dir="ltr"] .purchase-list-grid .rz-datatable-table th.aksa-list-action-cell,
[dir="ltr"] .purchase-list-grid .rz-datatable-table td.aksa-list-action-cell {
    left: auto !important;
    right: 0 !important;
    box-shadow: -1px 0 0 var(--aksa-border), -10px 0 18px rgba(15, 23, 42, .05) !important;
}

/* ===== v21: Radzen DataGrid page-size dropdown only =====
   Keep normal Radzen DropDown/DropDownList untouched.  The DataGrid
   pager page-size selector must not inherit full-row input behavior. */
.rz-paginator,
.rz-pager,
.rz-datatable .rz-paginator,
.rz-grid .rz-paginator {
    align-items: center;
    row-gap: .35rem;
}

.rz-paginator :where(.rz-dropdown, .rz-multiselect),
.rz-pager :where(.rz-dropdown, .rz-multiselect),
.rz-datatable .rz-paginator :where(.rz-dropdown, .rz-multiselect),
.rz-grid .rz-paginator :where(.rz-dropdown, .rz-multiselect),
.rz-datatable .rz-pager :where(.rz-dropdown, .rz-multiselect),
.rz-grid .rz-pager :where(.rz-dropdown, .rz-multiselect) {
    flex: 0 0 5.25rem !important;
    width: 5.25rem !important;
    min-width: 5.25rem !important;
    max-width: 5.25rem !important;
    align-self: center;
}

.rz-paginator :where(.rz-dropdown-label, .rz-multiselect-label),
.rz-pager :where(.rz-dropdown-label, .rz-multiselect-label),
.rz-datatable .rz-paginator :where(.rz-dropdown-label, .rz-multiselect-label),
.rz-grid .rz-paginator :where(.rz-dropdown-label, .rz-multiselect-label),
.rz-datatable .rz-pager :where(.rz-dropdown-label, .rz-multiselect-label),
.rz-grid .rz-pager :where(.rz-dropdown-label, .rz-multiselect-label) {
    min-height: 1.85rem;
    line-height: 1.85rem;
    padding-block: 0;
    font-size: .78rem;
    text-align: center;
}

.rz-paginator :where(.rz-dropdown-trigger, .rz-multiselect-trigger),
.rz-pager :where(.rz-dropdown-trigger, .rz-multiselect-trigger),
.rz-datatable .rz-paginator :where(.rz-dropdown-trigger, .rz-multiselect-trigger),
.rz-grid .rz-paginator :where(.rz-dropdown-trigger, .rz-multiselect-trigger),
.rz-datatable .rz-pager :where(.rz-dropdown-trigger, .rz-multiselect-trigger),
.rz-grid .rz-pager :where(.rz-dropdown-trigger, .rz-multiselect-trigger) {
    width: 1.55rem;
    min-width: 1.55rem;
}

.rz-paginator :where(.rz-dropdown[style], .rz-multiselect[style]),
.rz-pager :where(.rz-dropdown[style], .rz-multiselect[style]),
.rz-datatable .rz-paginator :where(.rz-dropdown[style], .rz-multiselect[style]),
.rz-grid .rz-paginator :where(.rz-dropdown[style], .rz-multiselect[style]),
.rz-datatable .rz-pager :where(.rz-dropdown[style], .rz-multiselect[style]),
.rz-grid .rz-pager :where(.rz-dropdown[style], .rz-multiselect[style]) {
    inline-size: 5.25rem !important;
}

/* ============================================================================
   v22 — global premium polish.
   Purely additive on top of the token system: font smoothing, a single shared
   focus ring, restrained motion, primary-action depth, themed scrollbars and
   reduced-motion support. No page structure is altered.
   ============================================================================ */

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

::selection {
    background: var(--aksa-primary-soft);
    color: var(--aksa-primary-hover);
}

/* one consistent focus ring for keyboard navigation */
.btn:focus-visible,
.rz-button:focus-visible,
.menu .menu-link:focus-visible,
a:focus-visible {
    outline: none;
    box-shadow: var(--aksa-ring);
}

/* align field focus to the shared ring token (overrides the earlier rule) */
.form-control:focus,
.form-select:focus,
.rz-inputtext:focus,
.rz-dropdown:focus-within,
.rz-numeric:focus-within,
.rz-datepicker:focus-within,
.rz-multiselect:focus-within,
.rz-textarea:focus {
    border-color: var(--aksa-primary);
    box-shadow: var(--aksa-ring);
}

/* restrained motion on interactive surfaces */
.btn,
.rz-button,
.form-control,
.form-select,
.rz-inputtext,
.rz-dropdown,
.rz-numeric,
.rz-datepicker,
.rz-multiselect,
.rz-textarea,
.menu .menu-link,
.card,
.rz-card {
    transition: background-color .15s ease, border-color .15s ease,
                color .15s ease, box-shadow .15s ease;
}

/* gentle depth + lift on the primary action */
.btn-primary,
.rz-button.rz-primary {
    box-shadow: 0 1px 2px color-mix(in srgb, var(--aksa-primary) 35%, transparent);
}

.btn-primary:hover,
.rz-button.rz-primary:hover {
    box-shadow: 0 2px 7px color-mix(in srgb, var(--aksa-primary) 32%, transparent);
}

/* smoother data-grid row feedback */
.rz-datatable-data tr,
.rz-grid-table tbody tr {
    transition: background-color .12s ease;
}

/* elevated popovers / dialogs use the deepest shadow */
.rz-dialog,
.rz-popup,
.rz-dropdown-panel,
.rz-multiselect-panel,
.menu-sub-dropdown {
    box-shadow: var(--aksa-shadow-lg);
}

/* themed, slim scrollbars */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--aksa-border-strong) transparent;
}

*::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

*::-webkit-scrollbar-thumb {
    background: var(--aksa-border-strong);
    border: 2px solid transparent;
    background-clip: padding-box;
    border-radius: 999px;
}

*::-webkit-scrollbar-thumb:hover {
    background: var(--aksa-text-muted);
    background-clip: padding-box;
}

*::-webkit-scrollbar-track {
    background: transparent;
}

@media (prefers-reduced-motion: reduce) {
    * {
        transition: none !important;
        scroll-behavior: auto !important;
        animation-duration: .001ms !important;
    }
}

/* ============================================================================
   v23 — Document editor (shared across Sales + Purchases process pages).
   One source of truth for the editor look. Two layers:
     1) a Bootstrap->aksa colour bridge for pages still painted with --bs-*,
        so they follow the theme + dark mode (defined here once, not per page);
     2) the shared "document chrome" (sheet, number, totals hero, workflow,
        banner) keyed to the common class contract used by every editor
        (sales-* and purchase-*), so new pages inherit the look for free.
   Per-page scoped CSS only needs page-specific layout from here on.
   ============================================================================ */

/* 1 — colour bridge for --bs-* based editor pages (Purchases + wizard) */
.purchase-editor-header,
.purchase-editor-workspace,
.pdn-page {
    --bs-body-color: var(--aksa-text);
    --bs-heading-color: var(--aksa-text);
    --bs-card-bg: var(--aksa-surface);
    --bs-body-bg: var(--aksa-surface);
    --bs-border-color: var(--aksa-border);
    --bs-border-color-translucent: var(--aksa-border);
    --bs-primary: var(--aksa-primary);
    --bs-primary-rgb: 29, 78, 216;            /* rgb of --aksa-primary (#1d4ed8) */
    --bs-gray-100: var(--aksa-surface-muted);
    --bs-gray-200: var(--aksa-border);
    --bs-gray-300: var(--aksa-border-strong);
    --bs-gray-400: var(--aksa-border-strong);
    --bs-gray-500: var(--aksa-text-muted);
    --bs-gray-600: var(--aksa-text-muted);
    --bs-gray-700: var(--aksa-text);
    --bs-gray-800: var(--aksa-text);
    --bs-gray-900: var(--aksa-text);
}

/* 2 — shared document chrome (applies to any editor using the class contract) */
.aksa-doc-sheet,
.sales-sheet,
.purchase-sheet {
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius-lg);
    background: var(--aksa-surface);
    box-shadow: var(--aksa-shadow-sm);
}

.aksa-doc-type,
.sales-doc-type,
.purchase-doc-type {
    color: var(--aksa-primary);
    font-size: .82rem;
    font-weight: 700;
    line-height: 1.1;
}

.aksa-doc-number,
.sales-doc-number,
.purchase-doc-number {
    margin: 0;
    color: var(--aksa-text);
    font-size: clamp(1.6rem, 2.3vw, 2.5rem);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -.015em;
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
}

/* grand total as the hero figure */
.aksa-summary-row-total,
.sales-summary-row-total,
.purchase-summary-row-total {
    border-top: 2px solid color-mix(in srgb, var(--aksa-primary) 35%, var(--aksa-border));
}

.aksa-summary-row-total strong,
.sales-summary-row-total strong,
.purchase-summary-row-total strong {
    color: var(--aksa-primary);
    font-size: 1.4rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

/* workflow ribbon: active = primary, done = success tint */
.sales-workflow-step.is-active,
.purchase-workflow-step.is-active {
    background: var(--aksa-primary);
    color: var(--aksa-on-primary);
}

.sales-workflow-step.is-done,
.purchase-workflow-step.is-done {
    background: rgba(var(--bs-success-rgb), .14);
    color: var(--bs-success);
}

/* document banners */
.sales-banner-warning,
.purchase-banner-warning {
    border: 1px solid rgba(var(--bs-warning-rgb), .35);
    background: rgba(var(--bs-warning-rgb), .12);
    color: var(--bs-warning-text-emphasis, var(--bs-warning));
}

.purchase-banner-info {
    border: 1px solid rgba(var(--bs-info-rgb), .35);
    background: rgba(var(--bs-info-rgb), .12);
    color: var(--bs-info-text-emphasis, var(--bs-info));
}

/* Shared operation-editor structure. Page CSS owns business-specific sections;
   this contract keeps the document chrome and responsive rhythm identical. */
.aksa-operation-editor,
.aksa-operation-workspace {
    min-width: 0;
    color: var(--aksa-text);
    font-variant-numeric: tabular-nums;
}

.aksa-operation-workspace {
    display: grid;
    gap: .75rem;
}

.aksa-operation-header,
.sales-document-header.aksa-operation-header,
.purchase-editor-header.aksa-operation-header {
    position: sticky;
    top: var(--aksa-sticky-header-offset, 0px);
    z-index: 12;
    min-width: 0;
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius);
    background: var(--aksa-surface);
    box-shadow: var(--aksa-shadow-sm);
    padding: .45rem .65rem;
}

.aksa-operation-controlpanel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .45rem .65rem;
    min-width: 0;
}

.aksa-operation-actions,
.aksa-operation-status {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem;
    min-width: 0;
}

.aksa-operation-status {
    justify-content: flex-end;
    margin-inline-start: auto;
}

.aksa-operation-header .rz-button,
.aksa-operation-header .btn {
    min-height: 1.8rem;
    padding-block: .25rem !important;
    padding-inline: .55rem !important;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.1;
}

.aksa-operation-sheet,
.sales-sheet.aksa-operation-sheet,
.purchase-sheet.aksa-operation-sheet {
    --aksa-operation-sheet-pad: clamp(.75rem, 1.25vw, 1.25rem);
    min-width: 0;
    padding: var(--aksa-operation-sheet-pad);
}

.aksa-operation-identity {
    min-width: 0;
    margin-block-end: .75rem;
    padding-block-end: .65rem;
    border-block-end: 1px solid var(--aksa-border);
}

@media (max-width: 991.98px) {
    .aksa-operation-controlpanel {
        align-items: stretch;
    }

    .aksa-operation-actions,
    .aksa-operation-status {
        width: 100%;
        justify-content: flex-start;
        margin-inline-start: 0;
    }
}

@media (max-width: 767.98px) {
    .aksa-operation-header,
    .sales-document-header.aksa-operation-header,
    .purchase-editor-header.aksa-operation-header {
        position: static;
        padding: .5rem .6rem;
    }

    .aksa-operation-sheet,
    .sales-sheet.aksa-operation-sheet,
    .purchase-sheet.aksa-operation-sheet {
        --aksa-operation-sheet-pad: .75rem;
    }

    .aksa-operation-identity {
        margin-block-end: .6rem;
        padding-block-end: .55rem;
    }
}

@media (max-width: 575.98px) {
    .aksa-operation-actions .rz-button,
    .aksa-operation-actions .btn {
        width: auto !important;
        flex: 0 1 auto;
    }
}

/* =====================================================================
   AKSA ERP — POS Terminal UI
   A cashier-first skin for the POS terminal components.

   Design intent
   - Tactile "register" feel: pressable controls, crisp active states.
   - Calm cool-slate surfaces so product imagery + the green CTA pop.
   - Deep teal is the ONE interaction accent. Green means "money confirmed".
   - Tabular numerals everywhere money appears (prices, totals, keypad).
   - Finger-first: 48px minimum touch targets, generous hit areas.
   - RTL-native via CSS logical properties.

   Layers on top of Bootstrap/Metronic + Radzen without fighting them.
   Scope: everything is namespaced under .pos-terminal.
   ===================================================================== */

.pos-terminal {
    /* ---- palette ---------------------------------------------------- */
    --pos-bg: #eef1f6;
    --pos-surface: #ffffff;
    --pos-surface-2: #f5f8fb;
    --pos-surface-3: #eef2f7;
    --pos-ink: #16202e;
    --pos-ink-soft: #3a4757;
    --pos-muted: #5c6b7a;
    --pos-faint: #8b97a5;
    --pos-line: #dde4ec;
    --pos-line-strong: #c7d1dd;
    --pos-brand: #0e7c86; /* teal — interaction, selection, focus */
    --pos-brand-strong: #0a5c64;
    --pos-brand-tint: #e2f1f2;
    --pos-brand-ring: rgba(14, 124, 134, .32);
    --pos-success: #1e8e5a; /* money confirmed / complete sale only */
    --pos-success-strong: #16744a;
    --pos-success-tint: #e5f3ea;
    --pos-danger: #d2483f;
    --pos-danger-tint: #fbe9e7;
    --pos-warn: #b8730f;
    --pos-warn-tint: #fbf0db;
    /* ---- shape & depth ---------------------------------------------- */
    --pos-radius: 14px;
    --pos-radius-sm: 10px;
    --pos-radius-lg: 18px;
    --pos-radius-pill: 999px;
    --pos-shadow-sm: 0 1px 2px rgba(16,32,46,.06), 0 1px 1px rgba(16,32,46,.04);
    --pos-shadow: 0 6px 18px -8px rgba(16,32,46,.20);
    --pos-shadow-lg: 0 18px 42px -16px rgba(16,32,46,.30);
    --pos-touch: 48px;
    --pos-gap: 12px;
    /* tune this if the page chrome above the panels changes height */
    --pos-panel-offset: 248px;
    --pos-ease: cubic-bezier(.2, .7, .3, 1);
    color: var(--pos-ink);
}

    /* Tabular figures wherever money or quantities are shown */
    .pos-terminal .pos-product-price,
    .pos-terminal .pos-cart-line,
    .pos-terminal .pos-left-footer,
    .pos-terminal .pos-keypad-grid,
    .pos-terminal .pos-keypad-value,
    .pos-terminal .pos-terminal-cashier-card {
        font-variant-numeric: tabular-nums;
        font-feature-settings: "tnum" 1, "lnum" 1;
    }

    /* ---- shared card chrome inside the terminal ---------------------- */
    .pos-terminal .card {
        border: 1px solid var(--pos-line);
        border-radius: var(--pos-radius-lg);
        background: var(--pos-surface);
        box-shadow: var(--pos-shadow-sm);
    }

/* =====================================================================
   HEADER
   ===================================================================== */
.pos-terminal-header-card {
    overflow: hidden;
}

.pos-terminal-header-card__header {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 18px 20px;
    border-bottom: 1px solid var(--pos-line);
    background: linear-gradient(180deg, var(--pos-surface) 0%, var(--pos-surface-2) 100%);
}

    .pos-terminal-header-card__header .card-title {
        gap: 2px;
    }

    .pos-terminal-header-card__header h3 {
        font-size: 1.5rem;
        font-weight: 750;
        letter-spacing: -.01em;
        color: var(--pos-ink);
        display: flex;
        align-items: center;
        gap: 10px;
    }

.pos-header-icon {
    display: inline-grid;
    place-items: center;
    inline-size: 34px;
    block-size: 34px;
    border-radius: 10px;
    background: var(--pos-brand-tint);
    color: var(--pos-brand-strong);
    font-size: 1.05rem;
}

.pos-terminal-header-card__header .text-muted {
    color: var(--pos-muted) !important;
}

/* nav toolbar buttons (Radzen Light) */
.pos-terminal-header-card .card-toolbar {
    align-items: center;
}

    .pos-terminal-header-card .card-toolbar .rz-button {
        border-radius: var(--pos-radius-sm);
        min-block-size: 42px;
        font-weight: 600;
    }

.pos-terminal-header-card__body {
    padding: 18px 20px;
}

/* search + cashier grid */
.pos-terminal-search-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1.4fr) minmax(190px, auto);
    gap: 16px;
    align-items: end;
}

    .pos-terminal-search-grid .form-label {
        color: var(--pos-ink-soft);
        font-size: .82rem;
        margin-bottom: 6px;
    }

    /* unified, tall, touch-friendly search fields */
    .pos-terminal-search-grid .input-group {
        border: 1px solid var(--pos-line-strong);
        border-radius: var(--pos-radius);
        background: var(--pos-surface);
        overflow: hidden;
        transition: border-color .15s var(--pos-ease), box-shadow .15s var(--pos-ease);
    }

        .pos-terminal-search-grid .input-group:focus-within {
            border-color: var(--pos-brand);
            box-shadow: 0 0 0 4px var(--pos-brand-ring);
        }

    .pos-terminal-search-grid .input-group-text {
        border: 0;
        background: var(--pos-surface-2);
        color: var(--pos-brand-strong);
        font-size: 1.05rem;
        padding-inline: 14px;
    }

    .pos-terminal-search-grid .form-control {
        border: 0;
        background: transparent;
        min-block-size: var(--pos-touch);
        font-size: 1rem;
        box-shadow: none !important;
    }

        .pos-terminal-search-grid .form-control::placeholder {
            color: var(--pos-faint);
        }

/* cashier card */
.pos-terminal-cashier-card {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    column-gap: 12px;
    align-items: center;
    padding: 10px 14px;
    border-radius: var(--pos-radius);
    background: var(--pos-brand-tint);
    border: 1px solid color-mix(in srgb, var(--pos-brand) 18%, transparent);
}

.pos-cashier-avatar {
    grid-row: 1 / span 2;
    inline-size: 40px;
    block-size: 40px;
    border-radius: var(--pos-radius-pill);
    display: grid;
    place-items: center;
    background: var(--pos-brand);
    color: #fff;
    font-size: 1.2rem;
}

.pos-terminal-cashier-card .pos-cashier-label {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--pos-brand-strong);
}

.pos-terminal-cashier-card .pos-cashier-name {
    font-weight: 700;
    color: var(--pos-ink);
    line-height: 1.1;
}

.pos-terminal-cashier-card .pos-cashier-time {
    grid-column: 2;
    font-size: .82rem;
    color: var(--pos-ink-soft);
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

/* =====================================================================
   PRODUCTS PANEL
   ===================================================================== */
.pos-products-panel > .card {
    height: 100%;
}

.pos-products-panel .card-body {
    padding: 16px;
    min-height: 0;
}

@media (min-width: 992px) {
    .pos-products-panel > .card,
    .pos-cart-panel > .card {
        block-size: clamp(540px, calc(100vh - var(--pos-panel-offset)), 1040px);
    }
}

/* category tabs — horizontal scroll strip of pills */
.pos-category-tabs {
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
}

    .pos-category-tabs::-webkit-scrollbar {
        height: 6px;
    }

    .pos-category-tabs::-webkit-scrollbar-thumb {
        background: var(--pos-line-strong);
        border-radius: 999px;
    }

.pos-category-tab {
    flex: 0 0 auto;
    scroll-snap-align: start;
    min-block-size: 42px;
    padding: 8px 18px;
    border-radius: var(--pos-radius-pill);
    border: 1px solid var(--pos-line-strong);
    background: var(--pos-surface);
    color: var(--pos-ink-soft);
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    transition: transform .12s var(--pos-ease), background .15s var(--pos-ease), color .15s var(--pos-ease), border-color .15s var(--pos-ease);
}

    .pos-category-tab:hover {
        border-color: var(--pos-brand);
        color: var(--pos-brand-strong);
    }

    .pos-category-tab:active {
        transform: translateY(1px);
    }

    .pos-category-tab.active {
        background: var(--pos-brand);
        border-color: var(--pos-brand);
        color: #fff;
        box-shadow: var(--pos-shadow-sm);
    }

/* product grid — scrolls independently under the pinned tabs */
.pos-products-grid {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    align-content: start;
    padding: 2px 4px 4px;
    margin: 0 -4px -4px;
    scrollbar-width: thin;
}

    .pos-products-grid::-webkit-scrollbar {
        width: 8px;
    }

    .pos-products-grid::-webkit-scrollbar-thumb {
        background: var(--pos-line-strong);
        border-radius: 999px;
    }

/* product card — the tactile tap target */
.pos-product-card {
    display: flex;
    flex-direction: column;
    block-size: 100%;
    padding: 12px;
    border: 1px solid var(--pos-line);
    border-radius: var(--pos-radius);
    background: var(--pos-surface);
    cursor: pointer;
    position: relative;
    transition: transform .12s var(--pos-ease), border-color .15s var(--pos-ease), box-shadow .15s var(--pos-ease);
}

    .pos-product-card:hover {
        border-color: var(--pos-brand);
        box-shadow: var(--pos-shadow);
        transform: translateY(-2px);
    }

    .pos-product-card:active {
        transform: translateY(0);
        box-shadow: var(--pos-shadow-sm);
    }

.pos-product-icon {
    aspect-ratio: 1 / 1;
    display: grid;
    place-items: center;
    border-radius: var(--pos-radius-sm);
    background: var(--pos-surface-2);
    overflow: hidden;
    color: var(--pos-faint);
    font-size: 2rem;
}

.pos-product-image {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
}

.pos-product-name {
    color: var(--pos-ink);
    font-size: .95rem;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    white-space: normal !important; /* override .text-truncate to allow 2 lines */
    min-block-size: 2.4em;
}

.pos-product-price {
    margin-top: 2px;
    font-size: 1.1rem;
    font-weight: 750;
    color: var(--pos-brand-strong);
}

    .pos-product-price .icon-saudi_riyal {
        color: var(--pos-faint);
        font-weight: 400;
    }

.pos-product-stock {
    color: var(--pos-muted) !important;
}

/* out-of-stock chip (display only — does not block adding) */
.pos-product-flag {
    position: absolute;
    inset-block-start: 8px;
    inset-inline-end: 8px;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .02em;
    padding: 3px 8px;
    border-radius: var(--pos-radius-pill);
    background: var(--pos-warn-tint);
    color: var(--pos-warn);
}

/* empty state */
.pos-products-grid-empty,
.pos-cart-empty {
    display: grid;
    place-items: center;
    text-align: center;
    gap: 8px;
    min-block-size: 220px;
    padding: 32px;
    color: var(--pos-muted);
    border: 1.5px dashed var(--pos-line-strong);
    border-radius: var(--pos-radius);
    background: var(--pos-surface-2);
}

.pos-empty-icon {
    font-size: 2.4rem;
    color: var(--pos-faint);
}

/* =====================================================================
   CART PANEL
   ===================================================================== */
.pos-cart-panel > .card {
    height: 100%;
}

.pos-left-card {
    overflow: hidden;
}

.pos-left-body {
    padding: 16px;
    gap: 4px;
    height: 100%;
    min-height: 0;
}

/* compact cart header */
.pos-cart-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

    .pos-cart-head .pos-cart-title {
        font-weight: 700;
        font-size: 1.05rem;
        color: var(--pos-ink);
        display: inline-flex;
        align-items: center;
        gap: 8px;
    }

.pos-cart-count {
    font-variant-numeric: tabular-nums;
    font-size: .78rem;
    font-weight: 700;
    padding: 2px 9px;
    border-radius: var(--pos-radius-pill);
    background: var(--pos-brand-tint);
    color: var(--pos-brand-strong);
}

/* scrollable line list */
.pos-cart-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-inline-end: 2px;
    scrollbar-width: thin;
}

    .pos-cart-list::-webkit-scrollbar {
        width: 8px;
    }

    .pos-cart-list::-webkit-scrollbar-thumb {
        background: var(--pos-line-strong);
        border-radius: 999px;
    }

.pos-cart-empty {
    min-block-size: 160px;
}

/* a single cart line */
.pos-cart-line {
    position: relative;
    padding: 12px;
    border: 1px solid var(--pos-line);
    border-radius: var(--pos-radius);
    background: var(--pos-surface);
    cursor: pointer;
    transition: border-color .15s var(--pos-ease), background .15s var(--pos-ease), box-shadow .15s var(--pos-ease);
}

    .pos-cart-line:hover {
        border-color: var(--pos-line-strong);
    }

    .pos-cart-line.selected {
        border-color: var(--pos-brand);
        background: var(--pos-brand-tint);
        box-shadow: inset 0 0 0 1px var(--pos-brand);
    }
        /* inline-start accent bar on the selected line (RTL-safe) */
        .pos-cart-line.selected::before {
            content: "";
            position: absolute;
            inset-block: 10px;
            inset-inline-start: 0;
            inline-size: 3px;
            border-radius: 999px;
            background: var(--pos-brand);
        }

    .pos-cart-line .fw-semibold {
        color: var(--pos-ink);
    }

    .pos-cart-line .fw-bold {
        color: var(--pos-ink);
        font-size: 1.02rem;
    }

    /* line remove button → proper icon button */
    .pos-cart-line .btn-link.text-danger {
        display: inline-grid;
        place-items: center;
        inline-size: 32px;
        block-size: 32px;
        border-radius: var(--pos-radius-sm);
        color: var(--pos-danger) !important;
        text-decoration: none;
        transition: background .15s var(--pos-ease);
    }

        .pos-cart-line .btn-link.text-danger:hover {
            background: var(--pos-danger-tint);
        }

    /* segmented controls (qty stepper + discount/price) */
    .pos-cart-line .btn-group .btn {
        min-block-size: 40px;
        min-inline-size: 40px;
        font-weight: 600;
        border-color: var(--pos-line-strong);
        --bs-btn-active-bg: var(--pos-brand);
    }

        .pos-cart-line .btn-group .btn.btn-light {
            background: var(--pos-surface-2);
            color: var(--pos-ink);
        }

            .pos-cart-line .btn-group .btn.btn-light:hover {
                background: var(--pos-surface-3);
            }

        .pos-cart-line .btn-group .btn.btn-outline-secondary {
            color: var(--pos-ink-soft);
            background: var(--pos-surface);
        }

            .pos-cart-line .btn-group .btn.btn-outline-secondary:hover {
                background: var(--pos-surface-2);
                border-color: var(--pos-brand);
                color: var(--pos-brand-strong);
            }

        .pos-cart-line .btn-group .btn:active {
            transform: translateY(1px);
        }

        .pos-cart-line .btn-group .btn:disabled {
            opacity: .5;
        }

/* =====================================================================
   FOOTER — register display (totals, payment, actions)
   ===================================================================== */
.pos-left-footer {
    flex: 0 0 auto;
    margin-top: 12px;
    padding-top: 14px;
    border-top: 1px solid var(--pos-line);
}

    .pos-left-footer .text-muted {
        color: var(--pos-muted) !important;
    }

    .pos-left-footer > .d-flex.small {
        padding-block: 2px;
    }

    .pos-left-footer hr {
        border-color: var(--pos-line);
        opacity: 1;
    }

/* grand total — the loudest number on the screen */
.pos-grand-total .fw-bold {
    color: var(--pos-ink);
}

.pos-grand-total .fs-4 {
    font-size: 1.9rem !important;
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--pos-ink);
}

.pos-grand-total .icon-saudi_riyal {
    color: var(--pos-faint);
}

/* inline error */
.pos-left-footer .alert-danger {
    border: 1px solid color-mix(in srgb, var(--pos-danger) 30%, transparent);
    background: var(--pos-danger-tint);
    color: var(--pos-danger);
    border-radius: var(--pos-radius-sm);
    font-size: .88rem;
}

/* payments trigger panel */
.pos-pay-wrap {
    border: 1px solid var(--pos-line) !important;
    border-radius: var(--pos-radius) !important;
    background: var(--pos-surface-2);
    padding: 10px !important;
}

.pos-pay-trigger {
    border: 1px solid var(--pos-line-strong) !important;
    border-radius: var(--pos-radius-sm) !important;
    background: var(--pos-surface) !important;
    min-block-size: 60px;
    transition: border-color .15s var(--pos-ease), box-shadow .15s var(--pos-ease);
}

    .pos-pay-trigger:hover:not(:disabled) {
        border-color: var(--pos-brand) !important;
        box-shadow: var(--pos-shadow-sm);
    }

    .pos-pay-trigger:disabled {
        opacity: .55;
    }

    .pos-pay-trigger .bi {
        display: inline-grid;
        place-items: center;
        inline-size: 38px;
        block-size: 38px;
        border-radius: var(--pos-radius-sm);
        background: var(--pos-brand-tint);
        color: var(--pos-brand-strong);
    }

    .pos-pay-trigger .fw-bold {
        font-variant-numeric: tabular-nums;
        color: var(--pos-ink);
    }

.pos-left-footer .badge.bg-success {
    background: var(--pos-success) !important;
}

.pos-left-footer .badge.bg-secondary {
    background: var(--pos-warn) !important; /* "incomplete" reads as a warning */
}

/* primary action buttons (Radzen) — beat Radzen's own theme deliberately */
.pos-terminal .pos-btn .rz-button,
.pos-terminal button.pos-btn {
    min-block-size: 56px !important;
    border-radius: var(--pos-radius) !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    box-shadow: var(--pos-shadow-sm);
    transition: transform .12s var(--pos-ease), filter .15s var(--pos-ease);
}

.pos-terminal .pos-btn:active {
    transform: translateY(1px);
}

.pos-terminal .pos-btn--complete.rz-button,
.pos-terminal button.pos-btn--complete {
    background: var(--pos-success) !important;
    border-color: var(--pos-success) !important;
    color: #fff !important;
}

.pos-terminal .pos-btn--complete:hover {
    filter: brightness(.96);
}

.pos-terminal .pos-btn--draft.rz-button,
.pos-terminal button.pos-btn--draft {
    background: var(--pos-surface) !important;
    border: 1px solid var(--pos-line-strong) !important;
    color: var(--pos-ink-soft) !important;
    box-shadow: none;
}

.pos-terminal .pos-btn--draft:hover {
    background: var(--pos-surface-2) !important;
}

/* =====================================================================
   KEYPAD
   ===================================================================== */
.pos-keypad {
    padding: 12px;
    border: 1px solid var(--pos-line-strong);
    border-radius: var(--pos-radius);
    background: var(--pos-surface-2);
    box-shadow: var(--pos-shadow-sm);
}

.pos-keypad-label {
    color: var(--pos-muted);
    font-size: .85rem;
}

.pos-keypad-value {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--pos-ink);
    letter-spacing: -.01em;
}

.pos-keypad-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-top: 8px;
}

    .pos-keypad-grid .btn {
        min-block-size: 54px;
        font-size: 1.25rem;
        font-weight: 600;
        border: 1px solid var(--pos-line-strong);
        background: var(--pos-surface);
        color: var(--pos-ink);
        border-radius: var(--pos-radius-sm);
        transition: transform .1s var(--pos-ease), background .12s var(--pos-ease);
    }

        .pos-keypad-grid .btn:hover {
            background: var(--pos-surface-3);
        }

        .pos-keypad-grid .btn:active {
            transform: translateY(1px);
            background: var(--pos-brand-tint);
        }

.pos-keypad-actions .btn {
    min-block-size: 46px;
    border-radius: var(--pos-radius-sm);
    font-weight: 600;
}

.pos-keypad-actions .btn-primary {
    background: var(--pos-brand);
    border-color: var(--pos-brand);
}

    .pos-keypad-actions .btn-primary:hover {
        background: var(--pos-brand-strong);
        border-color: var(--pos-brand-strong);
    }

.pos-keypad-actions .btn-outline-secondary {
    color: var(--pos-ink-soft);
    border-color: var(--pos-line-strong);
}

/* =====================================================================
   BLOCKED PANEL
   ===================================================================== */
.pos-blocked-card .card-body {
    display: grid;
    place-items: center;
    text-align: center;
    gap: 6px;
    padding: 40px 24px;
}

.pos-blocked-icon {
    inline-size: 64px;
    block-size: 64px;
    display: grid;
    place-items: center;
    border-radius: var(--pos-radius-pill);
    background: var(--pos-warn-tint);
    color: var(--pos-warn);
    font-size: 1.9rem;
    margin-bottom: 6px;
}

.pos-blocked-card h5 {
    font-weight: 750;
    color: var(--pos-ink);
    margin: 0;
}

.pos-blocked-card .pos-blocked-reason {
    color: var(--pos-muted);
    max-inline-size: 46ch;
    margin: 2px auto 0;
}

.pos-blocked-actions {
    margin-top: 18px;
}

    .pos-blocked-actions .rz-button {
        min-block-size: 48px;
        border-radius: var(--pos-radius-sm);
        font-weight: 600;
    }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 991.98px) {
    .pos-terminal-search-grid {
        grid-template-columns: 1fr;
    }

    .pos-terminal-cashier-card {
        grid-template-columns: auto 1fr auto;
    }

    .pos-products-panel > .card,
    .pos-cart-panel > .card {
        block-size: auto;
    }

    .pos-products-grid {
        overflow: visible;
        max-block-size: none;
    }
}

@media (max-width: 575.98px) {
    .pos-terminal-header-card__header {
        padding: 14px;
    }

    .pos-terminal-header-card__body {
        padding: 14px;
    }

    .pos-grand-total .fs-4 {
        font-size: 1.6rem !important;
    }
}

/* =====================================================================
   ACCESSIBILITY — focus + reduced motion
   ===================================================================== */
.pos-terminal :is(button, a, .pos-cart-line):focus-visible {
    outline: 3px solid var(--pos-brand-ring);
    outline-offset: 2px;
    border-radius: var(--pos-radius-sm);
}

.pos-terminal .pos-product-card:focus-visible,
.pos-terminal .pos-category-tab:focus-visible {
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .pos-terminal * {
        transition: none !important;
    }

        .pos-terminal *:active {
            transform: none !important;
        }
}

/* ===== Unified page stacking contract =====
   App header (Metronic) stays at z-index 100. Page-local sticky surfaces stay
   below it and above DataGrid frozen/header cells. Picker suggestions use the
   browser top layer through aksa-overlays.css and are intentionally outside
   this numeric stack. */
.aksa-page-toolbar,
.erp-page-toolbar,
.document-toolbar,
.sales-list-controlbar,
.sales-order-list-controlbar,
.sales-return-list-controlbar,
.purchase-list-controlbar,
.stock-list-controlbar,
.purchase-list-control,
.aksa-operation-header,
.sales-document-header.aksa-operation-header,
.purchase-editor-header.aksa-operation-header,
.aksa-journal-modern-header,
.aksa-report-titlebar {
    z-index: var(--aksa-z-page-sticky, 80) !important;
    overflow: visible;
}

/* ===== AKSA ERP PROFESSIONAL THEME REFINEMENT v20260708_8 =====
   Visual-only pass: token refinement, surfaces, controls, grids, dialogs, and
   dashboard/report chrome. Does not change Sidebar/KTMenu behavior or page data flows. */
:root {
    --aksa-brand: #1d4ed8;
    --aksa-brand-600: #2563eb;
    --aksa-brand-700: #1d4ed8;
    --aksa-brand-800: #1e40af;
    --aksa-accent: #f97316;
    --aksa-accent-soft: #fff3e8;
    --aksa-info: #2563eb;
    --aksa-info-soft: #eaf2ff;
    --aksa-success: #12805c;
    --aksa-success-soft: #e8f7f0;
    --aksa-warning: #b7791f;
    --aksa-warning-soft: #fff7e6;
    --aksa-danger: #c24135;
    --aksa-danger-soft: #fff0ef;
    --aksa-page-bg: #f3f6fb;
    --aksa-surface: #ffffff;
    --aksa-surface-raised: #ffffff;
    --aksa-surface-muted: #f8fafc;
    --aksa-surface-soft: #f1f5f9;
    --aksa-border: #e2e8f0;
    --aksa-border-strong: #cbd5e1;
    --aksa-text: #0f172a;
    --aksa-text-muted: #64748b;
    --aksa-text-soft: #94a3b8;
    --aksa-shadow-xs: 0 1px 2px rgba(15, 23, 42, .035);
    --aksa-shadow-sm: 0 1px 2px rgba(15, 23, 42, .05), 0 1px 3px rgba(15, 23, 42, .055);
    --aksa-shadow-md: 0 10px 28px rgba(15, 23, 42, .075);
    --aksa-shadow-popover: 0 18px 48px rgba(15, 23, 42, .16);
    --aksa-ring: 0 0 0 3px color-mix(in srgb, var(--aksa-brand) 18%, transparent);
    --aksa-radius-xs: .375rem;
    --aksa-radius-sm: .55rem;
    --aksa-radius: .75rem;
    --aksa-radius-lg: 1rem;
    --aksa-radius-xl: 1.25rem;
    --aksa-control-height: 2.5rem;
    --aksa-grid-row-height: 2.65rem;
    --aksa-toolbar-height: 3.35rem;
    --aksa-density-gap: .75rem;
    --aksa-transition: 160ms cubic-bezier(.2, .8, .2, 1);
    --aksa-tree-hover-bg: color-mix(in srgb, var(--aksa-brand) 7%, var(--aksa-surface));
    --aksa-tree-selected-bg: color-mix(in srgb, var(--aksa-brand) 12%, var(--aksa-surface));
    --aksa-tree-line: var(--aksa-border-strong);
    --aksa-tree-success: var(--aksa-success);
    --aksa-tree-danger: var(--aksa-danger);
    --aksa-tree-surface: var(--aksa-surface);
    --border-radius-md: var(--aksa-radius-sm);
    --drawer-bg-soft: var(--aksa-surface-muted);
}

[data-bs-theme="dark"] {
    --aksa-page-bg: #0f141b;
    --aksa-surface: #161c24;
    --aksa-surface-raised: #1b222c;
    --aksa-surface-muted: #202834;
    --aksa-surface-soft: #111820;
    --aksa-border: #293241;
    --aksa-border-strong: #3a4657;
    --aksa-text: #f8fafc;
    --aksa-text-muted: #a8b3c2;
    --aksa-text-soft: #7f8b9a;
    --aksa-accent-soft: rgba(249, 115, 22, .16);
    --aksa-info-soft: rgba(37, 99, 235, .18);
    --aksa-success-soft: rgba(18, 128, 92, .2);
    --aksa-warning-soft: rgba(183, 121, 31, .2);
    --aksa-danger-soft: rgba(194, 65, 53, .2);
    --aksa-shadow-xs: 0 1px 2px rgba(0, 0, 0, .28);
    --aksa-shadow-sm: 0 1px 3px rgba(0, 0, 0, .32);
    --aksa-shadow-md: 0 14px 36px rgba(0, 0, 0, .38);
    --aksa-shadow-popover: 0 18px 48px rgba(0, 0, 0, .52);
    --aksa-ring: 0 0 0 3px color-mix(in srgb, var(--aksa-brand-600) 34%, transparent);
}

html {
    background: var(--aksa-page-bg);
    color-scheme: light dark;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

body {
    background:
        radial-gradient(circle at top inline-start, color-mix(in srgb, var(--aksa-brand) 5%, transparent) 0, transparent 24rem),
        linear-gradient(180deg, color-mix(in srgb, var(--aksa-page-bg) 90%, #fff 10%), var(--aksa-page-bg) 18rem);
    color: var(--aksa-text);
}

[data-bs-theme="dark"] body {
    background:
        radial-gradient(circle at top inline-start, color-mix(in srgb, var(--aksa-brand-600) 11%, transparent) 0, transparent 24rem),
        linear-gradient(180deg, color-mix(in srgb, var(--aksa-page-bg) 88%, #000 12%), var(--aksa-page-bg) 18rem);
}

::selection {
    background: color-mix(in srgb, var(--aksa-brand) 22%, transparent);
    color: var(--aksa-text);
}

[data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container,
.aksa-customer-portal .aksa-customer-main {
    isolation: isolate;
}

.card,
.card-flush,
.rz-card,
.aksa-card,
.aksa-page-card,
.kt-portlet,
.aksa-panel,
.erp-card,
.dashboard-card,
.portal-card {
    border-color: var(--aksa-border) !important;
    border-radius: var(--aksa-radius-lg) !important;
    background: var(--aksa-surface-raised) !important;
    box-shadow: var(--aksa-shadow-xs) !important;
}

.card:hover,
.rz-card:hover,
.aksa-card:hover,
.dashboard-card:hover,
.portal-card:hover {
    box-shadow: var(--aksa-shadow-sm) !important;
}

.card .card-header,
.rz-card .rz-card-header,
.aksa-page-header,
.aksa-section-header,
.section-header,
.kt_js_header {
    min-height: var(--aksa-toolbar-height);
    border-bottom-color: var(--aksa-border) !important;
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--aksa-surface-raised) 96%, #fff 4%), var(--aksa-surface-muted)) !important;
}

.aksa-page-title,
.card .card-title,
.section-header h1,
.section-header h2,
.section-header h3,
.rz-dialog-title {
    color: var(--aksa-text) !important;
    font-weight: 800;
    letter-spacing: -.018em;
}

.aksa-page-subtitle,
.card .card-subtitle,
.text-muted,
.rz-grid-filter-label,
.rz-column-title,
.small.text-muted {
    color: var(--aksa-text-muted) !important;
}

.btn,
.rz-button,
.form-control,
.form-select,
.rz-inputtext,
.rz-dropdown,
.rz-numeric,
.rz-datepicker,
.rz-multiselect,
.rz-textarea,
.rz-spinner input {
    transition:
        border-color var(--aksa-transition),
        background-color var(--aksa-transition),
        color var(--aksa-transition),
        box-shadow var(--aksa-transition),
        transform var(--aksa-transition);
}

.form-control,
.form-select,
.rz-inputtext,
.rz-dropdown,
.rz-numeric,
.rz-datepicker,
.rz-multiselect,
.rz-textarea,
.rz-spinner input {
    border-color: var(--aksa-border-strong) !important;
    background: var(--aksa-surface) !important;
    color: var(--aksa-text) !important;
    min-height: var(--aksa-control-height);
}

.form-control:hover,
.form-select:hover,
.rz-inputtext:hover,
.rz-dropdown:hover,
.rz-numeric:hover,
.rz-datepicker:hover,
.rz-multiselect:hover,
.rz-textarea:hover {
    border-color: color-mix(in srgb, var(--aksa-brand) 42%, var(--aksa-border-strong)) !important;
}

.form-control:focus,
.form-select:focus,
.rz-inputtext:focus,
.rz-dropdown:focus-within,
.rz-numeric:focus-within,
.rz-datepicker:focus-within,
.rz-multiselect:focus-within,
.rz-textarea:focus-within {
    border-color: var(--aksa-brand-600) !important;
    box-shadow: var(--aksa-ring) !important;
}

.rz-dropdown-panel,
.rz-multiselect-panel,
.rz-datepicker-calendar-container,
.rz-context-menu,
.rz-menu-popup,
.dropdown-menu {
    border: 1px solid var(--aksa-border) !important;
    border-radius: var(--aksa-radius) !important;
    background: var(--aksa-surface-raised) !important;
    color: var(--aksa-text) !important;
    box-shadow: var(--aksa-shadow-popover) !important;
}

.btn-primary,
.rz-button.rz-primary,
.rz-button-md.rz-primary,
.rz-primary.rz-button {
    border-color: var(--aksa-brand-700) !important;
    background: linear-gradient(180deg, var(--aksa-brand-600), var(--aksa-brand-800)) !important;
    color: #fff !important;
    box-shadow: 0 1px 2px rgba(29, 78, 216, .18) !important;
}

.btn-primary:hover,
.rz-button.rz-primary:hover,
.rz-primary.rz-button:hover {
    filter: brightness(1.03);
    transform: translateY(-1px);
    box-shadow: 0 9px 18px rgba(29, 78, 216, .18) !important;
}

.btn-light,
.btn-secondary,
.rz-button.rz-secondary,
.rz-button.rz-light {
    border-color: var(--aksa-border) !important;
    background: var(--aksa-surface-muted) !important;
    color: var(--aksa-text) !important;
    box-shadow: none !important;
}

.btn-light:hover,
.btn-secondary:hover,
.rz-button.rz-secondary:hover,
.rz-button.rz-light:hover {
    background: color-mix(in srgb, var(--aksa-brand) 7%, var(--aksa-surface-muted)) !important;
    border-color: color-mix(in srgb, var(--aksa-brand) 30%, var(--aksa-border)) !important;
}

.badge,
.rz-badge,
.aksa-chip,
.aksa-filter-chip,
.rz-chip,
.label,
.status-badge {
    border-radius: 999px !important;
    font-weight: 700;
    letter-spacing: -.01em;
}

.aksa-status-success,
.badge-light-success,
.rz-badge-success {
    background: var(--aksa-success-soft) !important;
    color: var(--aksa-success) !important;
}

.aksa-status-warning,
.badge-light-warning,
.rz-badge-warning {
    background: var(--aksa-warning-soft) !important;
    color: var(--aksa-warning) !important;
}

.aksa-status-danger,
.badge-light-danger,
.rz-badge-danger {
    background: var(--aksa-danger-soft) !important;
    color: var(--aksa-danger) !important;
}

.rz-grid,
.rz-data-grid,
.aksa-grid,
.aksa-report-grid {
    border-color: var(--aksa-border) !important;
    border-radius: var(--aksa-radius-lg) !important;
    background: var(--aksa-surface-raised) !important;
    overflow: clip;
    box-shadow: var(--aksa-shadow-xs);
}

.rz-grid-table thead th,
.rz-grid-table .rz-column-title-content,
.rz-datatable-thead th,
.aksa-report-grid thead th {
    color: var(--aksa-text-muted) !important;
    font-size: .77rem;
    font-weight: 800;
    text-transform: none;
    background: var(--aksa-surface-muted) !important;
}

.rz-grid-table tbody td,
.rz-datatable-data td,
.aksa-report-grid tbody td {
    border-color: var(--aksa-border) !important;
    color: var(--aksa-text);
}

.rz-grid-table tbody tr:hover > td,
.rz-datatable-data tr:hover > td,
.aksa-report-grid tbody tr:hover > td {
    background: color-mix(in srgb, var(--aksa-brand) 5%, var(--aksa-surface)) !important;
}

.rz-paginator,
.rz-pager,
.aksa-pager {
    border-top-color: var(--aksa-border) !important;
    background: var(--aksa-surface-muted) !important;
}

.rz-dialog-wrapper .rz-dialog,
.rz-dialog,
.modal-content,
.offcanvas {
    border: 1px solid var(--aksa-border) !important;
    border-radius: var(--aksa-radius-xl) !important;
    background: var(--aksa-surface-raised) !important;
    color: var(--aksa-text) !important;
    box-shadow: var(--aksa-shadow-popover) !important;
}

.rz-dialog-titlebar,
.modal-header,
.offcanvas-header {
    border-bottom: 1px solid var(--aksa-border) !important;
    background: linear-gradient(180deg, var(--aksa-surface-raised), var(--aksa-surface-muted)) !important;
}

.aksa-page-toolbar,
.erp-page-toolbar,
.document-toolbar,
.aksa-operation-header,
.sales-document-header.aksa-operation-header,
.purchase-editor-header.aksa-operation-header,
.aksa-journal-modern-header,
.aksa-report-titlebar,
.aksa-report-control-panel,
.aksa-report-toolbar,
.sales-list-controlbar,
.purchase-list-controlbar,
.stock-list-controlbar {
    border: 1px solid var(--aksa-border) !important;
    border-radius: var(--aksa-radius-lg) !important;
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--aksa-surface-raised) 96%, #fff 4%), var(--aksa-surface-raised)) !important;
    box-shadow: var(--aksa-shadow-xs) !important;
}

.aksa-page-toolbar .btn,
.erp-page-toolbar .btn,
.document-toolbar .btn,
.aksa-operation-header .btn,
.aksa-report-control-panel .btn,
.aksa-report-toolbar .btn,
.sales-list-controlbar .btn,
.purchase-list-controlbar .btn,
.stock-list-controlbar .btn {
    min-height: 2.25rem;
    font-weight: 750;
}

.aksa-empty-state,
.empty-state,
.rz-empty-message,
.aksa-no-data,
.report-empty-state {
    color: var(--aksa-text-muted) !important;
}

.aksa-empty-state,
.empty-state,
.aksa-no-data,
.report-empty-state {
    border: 1px dashed var(--aksa-border-strong);
    border-radius: var(--aksa-radius-xl);
    background: color-mix(in srgb, var(--aksa-surface-muted) 78%, transparent);
}

.aksa-kpi-card,
.aksa-metric-card,
.dashboard-widget,
.portal-kpi-card,
.widget-card,
.stat-card {
    position: relative;
    border: 1px solid var(--aksa-border) !important;
    border-radius: var(--aksa-radius-xl) !important;
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--aksa-surface-raised) 97%, var(--aksa-brand) 3%), var(--aksa-surface-raised)) !important;
    box-shadow: var(--aksa-shadow-xs) !important;
    overflow: hidden;
}

.aksa-kpi-card::before,
.aksa-metric-card::before,
.dashboard-widget::before,
.portal-kpi-card::before,
.widget-card::before,
.stat-card::before {
    content: "";
    position: absolute;
    inset-block-start: 0;
    inset-inline: 0;
    block-size: 3px;
    background: linear-gradient(90deg, var(--aksa-brand-600), var(--aksa-accent));
    opacity: .85;
}

.aksa-customer-portal,
[data-aksa-layout="customer-portal"] {
    --aksa-page-bg: #f4f7fb;
    --aksa-customer-sidebar-bg: #0f2d4a;
    --aksa-customer-sidebar-bg-2: #123a5f;
    --aksa-customer-sidebar-active: rgba(255, 255, 255, .12);
}

[data-bs-theme="dark"] .aksa-customer-portal,
[data-bs-theme="dark"] [data-aksa-layout="customer-portal"] {
    --aksa-page-bg: #101820;
    --aksa-customer-sidebar-bg: #0b1724;
    --aksa-customer-sidebar-bg-2: #102134;
    --aksa-customer-sidebar-active: rgba(96, 165, 250, .18);
}

.aksa-customer-portal .aksa-customer-shell,
[data-aksa-layout="customer-portal"] .aksa-customer-shell {
    background:
        radial-gradient(circle at top inline-end, rgba(249, 115, 22, .12), transparent 22rem),
        var(--aksa-page-bg);
}

.aksa-customer-portal .aksa-customer-sidebar,
[data-aksa-layout="customer-portal"] .aksa-customer-sidebar {
    background:
        linear-gradient(180deg, var(--aksa-customer-sidebar-bg-2), var(--aksa-customer-sidebar-bg)) !important;
    box-shadow: 0 18px 48px rgba(15, 23, 42, .22);
}

.aksa-customer-portal .aksa-customer-topbar,
[data-aksa-layout="customer-portal"] .aksa-customer-topbar {
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius-xl);
    background: color-mix(in srgb, var(--aksa-surface-raised) 92%, transparent);
    box-shadow: var(--aksa-shadow-xs);
    backdrop-filter: blur(12px);
}

.aksa-customer-portal .aksa-customer-content,
[data-aksa-layout="customer-portal"] .aksa-customer-content {
    padding: clamp(.85rem, 1.25vw, 1.25rem);
}

@media (max-width: 767.98px) {
    :root {
        --aksa-control-height: 2.75rem;
        --aksa-toolbar-height: auto;
    }

    [data-aksa-layout="admin"] #kt_app_content_container.aksa-app-content-container {
        padding-inline: .75rem !important;
    }

    .aksa-page-toolbar,
    .erp-page-toolbar,
    .document-toolbar,
    .aksa-operation-header,
    .aksa-report-control-panel,
    .aksa-report-toolbar {
        border-radius: var(--aksa-radius) !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
    }
}

@media print {
    :root,
    [data-bs-theme="dark"] {
        --aksa-page-bg: #ffffff;
        --aksa-surface: #ffffff;
        --aksa-surface-raised: #ffffff;
        --aksa-surface-muted: #ffffff;
        --aksa-border: #d0d5dd;
        --aksa-border-strong: #98a2b3;
        --aksa-text: #111827;
        --aksa-text-muted: #475467;
    }

    html,
    body,
    .app-main,
    .app-content,
    #kt_app_content,
    #kt_app_content_container,
    .card,
    .rz-card,
    .aksa-card,
    .aksa-page-card,
    .aksa-report-grid,
    .rz-grid {
        background: #fff !important;
        color: #111827 !important;
        box-shadow: none !important;
    }
}


/* =====================================================================
   AKSA ERP BUTTON COLOR CONTRACT FIX v20260708_9
   Visual-only correction after the global polish pass.
   Scope: Bootstrap/Radzen action colors, disabled/read-only actions, POS
   settings toolbars, and tabs. No layout, Sidebar, KTMenu, or JS behavior.
   ===================================================================== */
:root {
    --aksa-action-primary: #2563eb;
    --aksa-action-primary-hover: #1d4ed8;
    --aksa-action-primary-border: #1d4ed8;
    --aksa-action-primary-text: #ffffff;

    --aksa-action-neutral-bg: #ffffff;
    --aksa-action-neutral-hover: #f8fafc;
    --aksa-action-neutral-border: #cbd5e1;
    --aksa-action-neutral-text: #334155;

    --aksa-action-muted-bg: #f8fafc;
    --aksa-action-muted-border: #e2e8f0;
    --aksa-action-muted-text: #64748b;

    --aksa-action-info-bg: #eff6ff;
    --aksa-action-info-border: #bfdbfe;
    --aksa-action-info-text: #1d4ed8;

    --aksa-action-success-bg: #ecfdf5;
    --aksa-action-success-border: #bbf7d0;
    --aksa-action-success-text: #047857;

    --aksa-action-warning-bg: #fff7ed;
    --aksa-action-warning-border: #fed7aa;
    --aksa-action-warning-text: #c2410c;

    --aksa-action-danger-bg: #fef2f2;
    --aksa-action-danger-border: #fecaca;
    --aksa-action-danger-text: #b91c1c;
}

[data-bs-theme="dark"] {
    --aksa-action-neutral-bg: #1f2937;
    --aksa-action-neutral-hover: #273244;
    --aksa-action-neutral-border: #3b4758;
    --aksa-action-neutral-text: #e5edf7;

    --aksa-action-muted-bg: #18202b;
    --aksa-action-muted-border: #2b3646;
    --aksa-action-muted-text: #9aa8ba;

    --aksa-action-info-bg: rgba(37, 99, 235, .18);
    --aksa-action-info-border: rgba(96, 165, 250, .32);
    --aksa-action-info-text: #93c5fd;

    --aksa-action-success-bg: rgba(4, 120, 87, .18);
    --aksa-action-success-border: rgba(52, 211, 153, .28);
    --aksa-action-success-text: #86efac;

    --aksa-action-warning-bg: rgba(194, 65, 12, .18);
    --aksa-action-warning-border: rgba(251, 146, 60, .3);
    --aksa-action-warning-text: #fdba74;

    --aksa-action-danger-bg: rgba(185, 28, 28, .18);
    --aksa-action-danger-border: rgba(248, 113, 113, .3);
    --aksa-action-danger-text: #fca5a5;
}

.btn,
.rz-button {
    border-radius: var(--aksa-radius-sm) !important;
    font-weight: 700 !important;
    letter-spacing: -.01em;
}

.btn .svg-icon,
.btn i,
.btn .ki-duotone,
.rz-button .rz-button-icon,
.rz-button .rz-button-text,
.rz-button .rz-button-box {
    color: inherit !important;
}

.btn-primary,
.btn.btn-primary,
.rz-button.rz-primary,
.rz-button.rz-button-md.rz-primary,
.rz-primary.rz-button {
    border-color: var(--aksa-action-primary-border) !important;
    background: var(--aksa-action-primary) !important;
    color: var(--aksa-action-primary-text) !important;
    box-shadow: 0 1px 2px rgba(37, 99, 235, .18) !important;
    filter: none !important;
}

.btn-primary:hover:not(:disabled),
.btn.btn-primary:hover:not(:disabled),
.rz-button.rz-primary:hover:not(:disabled),
.rz-primary.rz-button:hover:not(:disabled) {
    border-color: var(--aksa-action-primary-hover) !important;
    background: var(--aksa-action-primary-hover) !important;
    color: var(--aksa-action-primary-text) !important;
    box-shadow: 0 6px 14px rgba(37, 99, 235, .18) !important;
    transform: none !important;
}

.btn-light,
.btn-secondary,
.btn.btn-light,
.btn.btn-secondary,
.btn-outline-secondary,
.rz-button,
.rz-button.rz-secondary,
.rz-button.rz-light,
.rz-button.rz-button-md.rz-secondary,
.rz-secondary.rz-button,
.rz-light.rz-button {
    border-color: var(--aksa-action-neutral-border) !important;
    background: var(--aksa-action-neutral-bg) !important;
    color: var(--aksa-action-neutral-text) !important;
    box-shadow: none !important;
}

.btn-light:hover:not(:disabled),
.btn-secondary:hover:not(:disabled),
.btn.btn-light:hover:not(:disabled),
.btn.btn-secondary:hover:not(:disabled),
.btn-outline-secondary:hover:not(:disabled),
.rz-button:hover:not(:disabled):not(.rz-primary):not(.rz-success):not(.rz-danger):not(.rz-warning):not(.rz-info),
.rz-button.rz-secondary:hover:not(:disabled),
.rz-button.rz-light:hover:not(:disabled),
.rz-secondary.rz-button:hover:not(:disabled),
.rz-light.rz-button:hover:not(:disabled) {
    border-color: color-mix(in srgb, var(--aksa-action-primary) 24%, var(--aksa-action-neutral-border)) !important;
    background: var(--aksa-action-neutral-hover) !important;
    color: var(--aksa-text) !important;
    transform: none !important;
}

.btn-info,
.btn-outline-info,
.rz-button.rz-info,
.rz-info.rz-button {
    border-color: var(--aksa-action-info-border) !important;
    background: var(--aksa-action-info-bg) !important;
    color: var(--aksa-action-info-text) !important;
    box-shadow: none !important;
}

.btn-success,
.btn-outline-success,
.rz-button.rz-success,
.rz-success.rz-button {
    border-color: var(--aksa-action-success-border) !important;
    background: var(--aksa-action-success-bg) !important;
    color: var(--aksa-action-success-text) !important;
    box-shadow: none !important;
}

.btn-warning,
.btn-outline-warning,
.rz-button.rz-warning,
.rz-warning.rz-button {
    border-color: var(--aksa-action-warning-border) !important;
    background: var(--aksa-action-warning-bg) !important;
    color: var(--aksa-action-warning-text) !important;
    box-shadow: none !important;
}

.btn-danger,
.btn-outline-danger,
.rz-button.rz-danger,
.rz-danger.rz-button {
    border-color: var(--aksa-action-danger-border) !important;
    background: var(--aksa-action-danger-bg) !important;
    color: var(--aksa-action-danger-text) !important;
    box-shadow: none !important;
}

.btn-info:hover:not(:disabled),
.btn-outline-info:hover:not(:disabled),
.rz-button.rz-info:hover:not(:disabled),
.btn-success:hover:not(:disabled),
.btn-outline-success:hover:not(:disabled),
.rz-button.rz-success:hover:not(:disabled),
.btn-warning:hover:not(:disabled),
.btn-outline-warning:hover:not(:disabled),
.rz-button.rz-warning:hover:not(:disabled),
.btn-danger:hover:not(:disabled),
.btn-outline-danger:hover:not(:disabled),
.rz-button.rz-danger:hover:not(:disabled) {
    filter: brightness(.98);
    transform: none !important;
}

.btn-link,
.rz-button.rz-button-link {
    border-color: transparent !important;
    background: transparent !important;
    color: var(--aksa-action-info-text) !important;
    box-shadow: none !important;
}

.btn:disabled,
.btn.disabled,
fieldset:disabled .btn,
.rz-button:disabled,
.rz-button[disabled],
.rz-button.rz-state-disabled,
.rz-state-disabled.rz-button {
    opacity: 1 !important;
    border-color: var(--aksa-action-muted-border) !important;
    background: var(--aksa-action-muted-bg) !important;
    color: var(--aksa-action-muted-text) !important;
    box-shadow: none !important;
    filter: none !important;
    transform: none !important;
    cursor: not-allowed !important;
}

.btn:disabled .svg-icon,
.btn.disabled .svg-icon,
.btn:disabled i,
.btn.disabled i,
.btn:disabled .ki-duotone,
.btn.disabled .ki-duotone,
.rz-button:disabled .rz-button-icon,
.rz-button[disabled] .rz-button-icon,
.rz-button.rz-state-disabled .rz-button-icon,
.rz-button:disabled .rz-button-text,
.rz-button[disabled] .rz-button-text,
.rz-button.rz-state-disabled .rz-button-text {
    color: inherit !important;
    opacity: .9 !important;
}

.rz-tabview .rz-tabview-nav li a,
.rz-tabview .rz-tabview-nav .rz-tabview-title,
.nav-tabs .nav-link {
    color: var(--aksa-action-neutral-text) !important;
    font-weight: 700;
}

.rz-tabview .rz-tabview-nav li.rz-tabview-selected a,
.rz-tabview .rz-tabview-nav li.rz-state-active a,
.nav-tabs .nav-link.active {
    color: var(--aksa-action-primary) !important;
}

/* POS settings pages should not inherit the POS terminal teal/yellow action palette. */
.pos-terminal-settings,
.pos-sale-settings,
.pos-settings-shell,
.pos-admin-settings,
.aksa-pos-settings {
    --pos-brand: var(--aksa-action-primary);
    --pos-brand-strong: var(--aksa-action-primary-hover);
    --pos-brand-tint: var(--aksa-action-info-bg);
    --pos-warn: var(--aksa-action-warning-text);
    --pos-warn-tint: var(--aksa-action-warning-bg);
    --pos-success: var(--aksa-action-success-text);
    --pos-success-tint: var(--aksa-action-success-bg);
    --pos-danger: var(--aksa-action-danger-text);
    --pos-danger-tint: var(--aksa-action-danger-bg);
}

/* =====================================================================
   AKSA ERP — Inventory document/list contract v20260726
   Reuses the existing operation editor/list chrome used by sales and
   purchases. Business behavior remains owned by the current Razor pages
   and warehouse services; this section only standardizes hierarchy,
   spacing, states, responsive behavior, and line-workspace presentation.
   ===================================================================== */
.aksa-inventory-document,
.aksa-inventory-list {
    --aksa-inventory-accent-rgb: 37, 99, 235;
    min-width: 0;
    color: var(--aksa-text);
    font-variant-numeric: tabular-nums;
}

.aksa-inventory-document--stock-in,
.aksa-inventory-list--stock-in {
    --aksa-inventory-accent-rgb: 18, 128, 92;
}

.aksa-inventory-document--stock-out,
.aksa-inventory-list--stock-out {
    --aksa-inventory-accent-rgb: 194, 65, 53;
}

.aksa-inventory-document--transfer,
.aksa-inventory-list--transfer {
    --aksa-inventory-accent-rgb: 37, 99, 235;
}

.aksa-inventory-document .aksa-operation-header {
    border-block-start: 3px solid rgba(var(--aksa-inventory-accent-rgb), .78) !important;
}

.aksa-inventory-document .aksa-operation-controlpanel,
.aksa-inventory-document .st-process-controlbar {
    min-width: 0;
}

.aksa-inventory-document .aksa-operation-actions,
.aksa-inventory-document .aksa-operation-status {
    min-width: 0;
}

.aksa-inventory-document .aksa-operation-status {
    padding-inline: .15rem;
}

.aksa-inventory-document .aksa-operation-sheet {
    position: relative;
    border: 1px solid var(--aksa-border) !important;
    border-radius: var(--aksa-radius-xl) !important;
    background: var(--aksa-surface-raised) !important;
    box-shadow: var(--aksa-shadow-sm) !important;
}

.aksa-inventory-sheet-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    min-width: 0;
}

.aksa-inventory-sheet-heading {
    min-width: 0;
}

.aksa-inventory-sheet-kicker {
    display: block;
    margin-block-end: .18rem;
    color: rgba(var(--aksa-inventory-accent-rgb), .94);
    font-size: .69rem;
    font-weight: 850;
    letter-spacing: .035em;
    line-height: 1.2;
    text-transform: uppercase;
}

.aksa-inventory-sheet-heading h1 {
    overflow: hidden;
    margin: 0;
    color: var(--aksa-text);
    font-size: clamp(1.15rem, 1.65vw, 1.55rem);
    font-weight: 880;
    letter-spacing: -.022em;
    line-height: 1.18;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.aksa-inventory-sheet-facts {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .3rem .5rem;
    margin-block-start: .42rem;
    color: var(--aksa-text-muted);
    font-size: .72rem;
    font-weight: 650;
    line-height: 1.35;
}

.aksa-inventory-sheet-facts strong {
    color: var(--aksa-text);
    font-weight: 800;
}

.aksa-inventory-fact-dot {
    width: .24rem;
    height: .24rem;
    flex: 0 0 .24rem;
    border-radius: 999px;
    background: var(--aksa-border-strong);
}

.aksa-inventory-sheet-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(5.5rem, auto));
    gap: .4rem;
    min-width: 0;
}

.aksa-inventory-metric {
    display: grid;
    align-content: center;
    gap: .1rem;
    min-height: 3.45rem;
    padding: .5rem .65rem;
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius-lg);
    background: var(--aksa-surface-muted);
    text-align: start;
}

.aksa-inventory-metric > span {
    color: var(--aksa-text-muted);
    font-size: .65rem;
    font-weight: 760;
    line-height: 1.2;
}

.aksa-inventory-metric > strong {
    color: var(--aksa-text);
    font-size: .91rem;
    font-weight: 870;
    line-height: 1.2;
}

.aksa-inventory-metric--status {
    min-width: 7rem;
}

.aksa-inventory-metric--status > strong.badge {
    width: max-content;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.aksa-inventory-document .aksa-warehouse-form-columns,
.aksa-inventory-document .st-form-groups {
    margin-block-start: .15rem;
}

.aksa-inventory-document .aksa-warehouse-form-row,
.aksa-inventory-document .st-form-cell {
    min-height: 2.5rem;
}

.aksa-inventory-document .aksa-warehouse-owner-toggle,
.aksa-inventory-document .st-owner-switch {
    border-color: var(--aksa-border-strong);
    background: var(--aksa-surface-muted);
}

.aksa-inventory-document .aksa-warehouse-owner-toggle .btn-primary,
.aksa-inventory-document .st-owner-switch__btn.is-active {
    border-color: rgba(var(--aksa-inventory-accent-rgb), .22) !important;
    background: rgba(var(--aksa-inventory-accent-rgb), .1) !important;
    color: rgb(var(--aksa-inventory-accent-rgb)) !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .06) !important;
}

.aksa-inventory-lines {
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius-xl);
    background: var(--aksa-surface-raised);
    box-shadow: var(--aksa-shadow-xs);
}

.aksa-inventory-lines .warehouse-component-shell,
.aksa-inventory-lines .warehouse-lines-panel,
.aksa-inventory-lines .warehouse-lines-board {
    border-radius: inherit;
}

.aksa-inventory-document details.aksa-warehouse-secondary-section,
.aksa-inventory-document details.st-secondary-section,
.aksa-inventory-document details.aksa-warehouse-audit-details,
.aksa-inventory-document details.st-audit-details {
    border-color: var(--aksa-border) !important;
    border-radius: var(--aksa-radius-lg) !important;
    background: var(--aksa-surface-raised) !important;
    box-shadow: var(--aksa-shadow-xs);
}

.aksa-inventory-document details > summary {
    min-height: 2.6rem;
    color: var(--aksa-text-muted);
    font-weight: 780;
}

/* Inventory list pages: same toolbar rhythm as sales/purchases, with a
   restrained process-specific accent rather than three unrelated designs. */
.aksa-inventory-list {
    display: grid;
    gap: .75rem;
}

.aksa-inventory-list__toolbar {
    border-block-start: 3px solid rgba(var(--aksa-inventory-accent-rgb), .78) !important;
}

.aksa-inventory-list .inventory-list-filterstrip {
    display: flex;
    align-items: end;
    flex-wrap: wrap;
    gap: .6rem .75rem;
    padding: .65rem .75rem;
    border: 1px solid var(--aksa-border);
    border-radius: var(--aksa-radius-lg);
    background: var(--aksa-surface-raised);
    box-shadow: var(--aksa-shadow-xs);
}

.aksa-inventory-list .inventory-list-filterstrip__field {
    display: grid;
    gap: .25rem;
    min-width: 10.5rem;
}

.aksa-inventory-list .inventory-list-filterstrip__field label {
    margin: 0;
    color: var(--aksa-text-muted);
    font-size: .68rem;
    font-weight: 780;
}

.aksa-inventory-list .inventory-list-filterstrip__actions {
    display: flex;
    align-items: center;
    gap: .35rem;
    margin-inline-start: auto;
}

.aksa-inventory-list__grid {
    border-color: var(--aksa-border) !important;
    border-radius: var(--aksa-radius-xl) !important;
    background: var(--aksa-surface-raised) !important;
    box-shadow: var(--aksa-shadow-xs);
}

.aksa-inventory-list__grid .rz-grid-table thead th,
.aksa-inventory-list__grid .rz-datatable-thead th {
    background: linear-gradient(180deg, var(--aksa-surface-muted), var(--aksa-surface-soft)) !important;
    color: var(--aksa-text-muted) !important;
}

.aksa-inventory-list__grid .rz-grid-table tbody tr:hover td,
.aksa-inventory-list__grid .rz-datatable-data tr:hover td {
    background: rgba(var(--aksa-inventory-accent-rgb), .045) !important;
}

.aksa-inventory-list .aksa-stock-primary-cell__main {
    color: rgb(var(--aksa-inventory-accent-rgb));
}

.aksa-inventory-list .aksa-stock-document-link:focus-visible {
    border-radius: .3rem;
    outline: 2px solid rgba(var(--aksa-inventory-accent-rgb), .35);
    outline-offset: .18rem;
}

@media (max-width: 1199.98px) {
    .aksa-inventory-sheet-header {
        align-items: stretch;
        flex-direction: column;
    }

    .aksa-inventory-sheet-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: 100%;
    }
}

@media (max-width: 991.98px) {
    .aksa-inventory-list__toolbar {
        grid-template-columns: 1fr !important;
        align-items: stretch !important;
    }

    .aksa-inventory-list__toolbar > * {
        width: 100%;
    }
}

@media (max-width: 767.98px) {
    .aksa-inventory-sheet-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .aksa-inventory-metric--status {
        grid-column: 1 / -1;
    }

    .aksa-inventory-document .aksa-warehouse-form-columns,
    .aksa-inventory-document .st-form-groups {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .aksa-inventory-document .aksa-warehouse-form-group + .aksa-warehouse-form-group,
    .aksa-inventory-document .st-form-group--document {
        padding-inline-start: 0 !important;
        padding-block-start: .75rem;
        border-inline-start: 0 !important;
        border-block-start: 1px solid var(--aksa-border);
    }

    .aksa-inventory-list .inventory-list-filterstrip__field {
        flex: 1 1 10rem;
    }

    .aksa-inventory-list .inventory-list-filterstrip__actions {
        width: 100%;
        margin-inline-start: 0;
    }
}

@media (max-width: 575.98px) {
    .aksa-inventory-sheet-heading h1 {
        white-space: normal;
    }

    .aksa-inventory-sheet-facts {
        align-items: flex-start;
        flex-direction: column;
        gap: .22rem;
    }

    .aksa-inventory-fact-dot {
        display: none;
    }

    .aksa-inventory-sheet-metrics {
        grid-template-columns: minmax(0, 1fr);
    }

    .aksa-inventory-metric--status {
        grid-column: auto;
    }

    .aksa-inventory-document .aksa-warehouse-form-row,
    .aksa-inventory-document .st-form-cell,
    .aksa-inventory-document .st-form-group--party,
    .aksa-inventory-document .st-form-group--delivery,
    .aksa-inventory-document .st-form-group--source-reference {
        grid-template-columns: minmax(0, 1fr) !important;
        align-items: stretch !important;
        gap: .28rem !important;
    }

    .aksa-inventory-list .inventory-list-filterstrip__field,
    .aksa-inventory-list .inventory-list-filterstrip__actions {
        width: 100%;
        flex-basis: 100%;
    }

    .aksa-inventory-list .inventory-list-filterstrip__actions .btn {
        flex: 1 1 0;
    }
}
