/* ERP VISION action palette. Shared by admin, modal and authentication pages. */
body .btn-primary,
body .btn-dark {
    --bs-btn-bg: #007f96;
    --bs-btn-color: #FFFFFF;
    --bs-btn-hover-bg: #008ba5;
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-active-bg: #008ba5;
    --bs-btn-active-color: #FFFFFF;
    background: #007f96 !important;
    color: #FFFFFF !important;
    border-color: #007f96 !important;
}
body .btn-primary:is(:hover, :active, .active),
body .btn-dark:is(:hover, :active, .active) { background: #008ba5 !important; }
body .btn-secondary,
body .btn-info,
body .btn-warning {
    --bs-btn-bg: #e5f5f8;
    --bs-btn-color: #007f96;
    --bs-btn-hover-bg: #d5e9ed;
    --bs-btn-hover-color: #007f96;
    --bs-btn-active-bg: #d5e9ed;
    --bs-btn-active-color: #007f96;
    background: #e5f5f8 !important;
    color: #007f96 !important;
    border-color: #e5f5f8 !important;
}
body .btn-secondary:is(:hover, :active, .active),
body .btn-info:is(:hover, :active, .active),
body .btn-warning:is(:hover, :active, .active) { background: #d5e9ed !important; }
body .btn-success {
    --bs-btn-bg: #007f96;
    --bs-btn-color: #FFFFFF;
    --bs-btn-hover-bg: #008ba5;
    --bs-btn-hover-color: #FFFFFF;
    --bs-btn-active-bg: #008ba5;
    --bs-btn-active-color: #FFFFFF;
    background: #007f96 !important;
    color: #FFFFFF !important;
    border-color: #007f96 !important;
}
body .btn-success:is(:hover, :active, .active) { background: #008ba5 !important; }
body .btn-danger {
    --bs-btn-bg: #FEE2E2;
    --bs-btn-color: #B91C1C;
    --bs-btn-hover-bg: #FECACA;
    --bs-btn-hover-color: #B91C1C;
    --bs-btn-active-bg: #FECACA;
    --bs-btn-active-color: #B91C1C;
    background: #FEE2E2 !important;
    color: #B91C1C !important;
    border-color: #FEE2E2 !important;
}
body .btn-danger:is(:hover, :active, .active) { background: #FECACA !important; }
body .btn-outline-primary,
body .btn-outline-secondary,
body .btn-outline-info,
body .btn-outline-dark {
    --bs-btn-bg: #FFFFFF;
    --bs-btn-color: #007f96;
    --bs-btn-hover-bg: #e5f5f8;
    --bs-btn-hover-color: #007f96;
    --bs-btn-active-bg: #e5f5f8;
    --bs-btn-active-color: #007f96;
    background: #FFFFFF !important;
    color: #007f96 !important;
    border-color: #cce2e6 !important;
}
body .btn-outline-primary:is(:hover, :active, .active),
body .btn-outline-secondary:is(:hover, :active, .active),
body .btn-outline-info:is(:hover, :active, .active),
body .btn-outline-dark:is(:hover, :active, .active) { background: #e5f5f8 !important; }
body .btn-outline-success {
    --bs-btn-bg: #FFFFFF;
    --bs-btn-color: #007f96;
    --bs-btn-hover-bg: #e5f5f8;
    --bs-btn-hover-color: #007f96;
    --bs-btn-active-bg: #e5f5f8;
    --bs-btn-active-color: #007f96;
    background: #FFFFFF !important;
    color: #007f96 !important;
    border-color: #cce2e6 !important;
}
body .btn-outline-success:is(:hover, :active, .active) { background: #e5f5f8 !important; }
body .btn-outline-danger {
    --bs-btn-bg: #FFFFFF;
    --bs-btn-color: #B91C1C;
    --bs-btn-hover-bg: #FEE2E2;
    --bs-btn-hover-color: #B91C1C;
    --bs-btn-active-bg: #FEE2E2;
    --bs-btn-active-color: #B91C1C;
    background: #FFFFFF !important;
    color: #B91C1C !important;
    border-color: #cce2e6 !important;
}
body .btn-outline-danger:is(:hover, :active, .active) { background: #FEE2E2 !important; }

body .action-btn:is(.bg-primary, .bg-dark) {
    --action-bg: #007f96;
    --action-fg: #FFFFFF;
    --action-hover: #008ba5;
}
body .action-btn:is(.bg-warning, .bg-info, .bg-secondary) {
    --action-bg: #e5f5f8;
    --action-fg: #007f96;
    --action-hover: #d5e9ed;
}
body .action-btn.bg-success {
    --action-bg: #e5f5f8;
    --action-fg: #007f96;
    --action-hover: #D5E8D2;
}
body .action-btn.bg-danger {
    --action-bg: #FEE2E2;
    --action-fg: #B91C1C;
    --action-hover: #FECACA;
}
body .action-btn:is(.bg-primary, .bg-dark, .bg-warning, .bg-info, .bg-secondary, .bg-success, .bg-danger) {
    background: var(--action-bg) !important;
    color: var(--action-fg) !important;
}
body .action-btn:has(:is(a, button):hover:not(:disabled):not(.disabled)) {
    background: var(--action-hover, #d5e9ed) !important;
}
body .action-btn :is(a.btn, button.btn) {
    background: transparent !important;
    border-color: transparent !important;
    color: var(--action-fg, inherit) !important;
}
body .action-btn :is(a, button) > i.text-white {
    color: var(--action-fg, #FFFFFF) !important;
}
body .btn:focus-visible {
    outline: 2px solid #007f96;
    outline-offset: 3px;
}
body .btn:is(:disabled, .disabled) {
    opacity: 0.5;
}
body .badge.bg-success {
    background: #e5f5f8 !important;
    color: #007f96 !important;
}

/* Distinct document actions: view, edit, print and approve/save. */
body .action-btn.bg-warning {
    --action-bg: #E0F2FE;
    --action-fg: #075985;
    --action-hover: #BAE6FD;
}
body .action-btn.bg-info {
    --action-bg: #FEF3C7;
    --action-fg: #92400E;
    --action-hover: #FDE68A;
}
body .action-btn.bg-primary {
    --action-bg: #f1f5f6;
    --action-fg: #219db6;
    --action-hover: #d6f7fe;
}
body .action-btn.bg-dark {
    --action-bg: #DCFCE7;
    --action-fg: #166534;
    --action-hover: #BBF7D0;
}

/* Close actions stay in the card flow instead of using negative offsets. */
body .gb-close {
    box-sizing: border-box;
    position: static;
    transform: none;
    margin: 0 !important;
    min-width: 0;
    max-width: 100% !important;
    min-height: 30px;
    padding: 4px 12px;
    gap: 6px;
    border: 1px solid #AF003D;
    border-radius: 8px;
    background: #AF003D;
    color: #FFFFFF;
    font-size: 13px;
    font-weight: 500;
    line-height: 20px;
    white-space: normal;
    text-decoration: none;
    align-items: center;
    justify-content: center;
}
body .gb-close:hover {
    background: #8F0032;
    border-color: #8F0032;
    color: #FFFFFF;
}
body .gb-close:focus-visible {
    outline: 2px solid #AF003D;
    outline-offset: 2px;
}
body .gb-close .icon-circle {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    border: 0;
}
body .gb-close .x-icon {
    width: 16px;
    height: 16px;
}

/* Legacy tables put the action color on the link instead of its wrapper. */
body .action-btn:has(.btn.bg-info) { --action-bg: #FEF3C7; --action-fg: #92400E; --action-hover: #FDE68A; }
body .action-btn:has(.btn.bg-danger) { --action-bg: #FEE2E2; --action-fg: #B91C1C; --action-hover: #FECACA; }
body .action-btn:has(.btn.bg-warning) { --action-bg: #E0F2FE; --action-fg: #075985; --action-hover: #BAE6FD; }
body .action-btn:has(.btn.bg-primary) { --action-bg: #f1f5f6; --action-fg: #219db6; --action-hover: #d6f7fe; }
body .action-btn:has(.btn.bg-success) { --action-bg: #e5f5f8; --action-fg: #007f96; --action-hover: #d5e9ed; }
body .action-btn:has(.btn.bg-dark) { --action-bg: #007f96; --action-fg: #FFFFFF; --action-hover: #008ba5; }
body .action-btn:has(.btn:is(.bg-info, .bg-danger, .bg-warning, .bg-primary, .bg-success, .bg-dark)) {
    background: var(--action-bg) !important;
}
body .action-btn:has(.btn:is(.bg-info, .bg-danger, .bg-warning, .bg-primary, .bg-success, .bg-dark):hover:not(.disabled):not(:disabled)) {
    background: var(--action-hover) !important;
}

/* Semantic actions in the admin shell, including dynamically inserted modals. */
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="paid"] { --semantic-bg: #d1fae5; --semantic-fg: #065f46; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="approve"] { --semantic-bg: #15803d; --semantic-fg: #ffffff; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="print"] { --semantic-bg: #e0e7ff; --semantic-fg: #3730a3; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="save"] { --semantic-bg: #007f96; --semantic-fg: #ffffff; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="edit"] { --semantic-bg: #fef3c7; --semantic-fg: #92400e; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="back"] { --semantic-bg: #e2e8f0; --semantic-fg: #334155; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="search"] { --semantic-bg: #0369a1; --semantic-fg: #ffffff; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="reset"] { --semantic-bg: #f1f5f9; --semantic-fg: #475569; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="customer"] { --semantic-bg: #f3e8ff; --semantic-fg: #6b21a8; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="lookup"] { --semantic-bg: #cffafe; --semantic-fg: #155e75; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="confirm"] { --semantic-bg: #115e59; --semantic-fg: #ffffff; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="cancel"] { --semantic-bg: #ffe4e6; --semantic-fg: #9f1239; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn:is([data-ui-action="paid"],[data-ui-action="approve"],[data-ui-action="print"],[data-ui-action="save"],[data-ui-action="edit"],[data-ui-action="back"],[data-ui-action="search"],[data-ui-action="reset"],[data-ui-action="customer"],[data-ui-action="lookup"],[data-ui-action="confirm"],[data-ui-action="cancel"]) {
    background: var(--semantic-bg) !important;
    border-color: var(--semantic-bg) !important;
    color: var(--semantic-fg) !important;
}
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn:is([data-ui-action="paid"],[data-ui-action="approve"],[data-ui-action="print"],[data-ui-action="save"],[data-ui-action="edit"],[data-ui-action="back"],[data-ui-action="search"],[data-ui-action="reset"],[data-ui-action="customer"],[data-ui-action="lookup"],[data-ui-action="confirm"],[data-ui-action="cancel"]) :is(i, svg, span) { color: inherit !important; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn:is([data-ui-action="paid"],[data-ui-action="approve"],[data-ui-action="print"],[data-ui-action="save"],[data-ui-action="edit"],[data-ui-action="back"],[data-ui-action="search"],[data-ui-action="reset"],[data-ui-action="customer"],[data-ui-action="lookup"],[data-ui-action="confirm"],[data-ui-action="cancel"]):hover:not(:disabled):not(.disabled) {
    background: var(--semantic-bg) !important;
    color: var(--semantic-fg) !important;
    filter: brightness(.94);
}
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn:is([data-ui-action="paid"],[data-ui-action="approve"],[data-ui-action="print"],[data-ui-action="save"],[data-ui-action="edit"],[data-ui-action="back"],[data-ui-action="search"],[data-ui-action="reset"],[data-ui-action="customer"],[data-ui-action="lookup"],[data-ui-action="confirm"],[data-ui-action="cancel"]):focus-visible { outline: 2px solid #007f96; outline-offset: 3px; }

/* Asset opening-register toolbar: distinct colors for every operation. */
html[data-erp-admin-page] body .asset-toolbar .asset-action[data-bs-target="#printFilterModal"] { --asset-bg:#e0e7ff; --asset-fg:#3730a3; }
html[data-erp-admin-page] body .asset-toolbar .asset-action[data-bs-target="#depreciationModal"] { --asset-bg:#007f96; --asset-fg:#ffffff; }
html[data-erp-admin-page] body .asset-toolbar .asset-action[data-bs-target="#closePeriodModal"] { --asset-bg:#dcfce7; --asset-fg:#166534; }
html[data-erp-admin-page] body .asset-toolbar .asset-action[data-bs-target="#cancelDepreciationModal"] { --asset-bg:#ffe4e6; --asset-fg:#9f1239; }
html[data-erp-admin-page] body .asset-toolbar .asset-action[data-bs-target="#postJournalModal"] { --asset-bg:#fef3c7; --asset-fg:#92400e; }
html[data-erp-admin-page] body .asset-toolbar .asset-action[href$="#asset-depreciation-chart"] { --asset-bg:#e0f2fe; --asset-fg:#075985; }
html[data-erp-admin-page] body .asset-toolbar .asset-action.asset-action-create { --asset-bg:#af003d; --asset-fg:#ffffff; }
html[data-erp-admin-page] body .asset-toolbar .btn.asset-action {
    background:var(--asset-bg,#e5f5f8)!important;
    border-color:var(--asset-bg,#cce2e6)!important;
    color:var(--asset-fg,#007f96)!important;
}
html[data-erp-admin-page] body .asset-toolbar .btn.asset-action:is(:hover,:active) {
    background:var(--asset-bg,#e5f5f8)!important;
    color:var(--asset-fg,#007f96)!important;
    filter:brightness(.94);
}
html[data-erp-admin-page] body .asset-toolbar .btn.asset-action :is(i,svg,span) { color:inherit!important; }

/* Shared document form palette: distinguish editing rows and save outcomes. */
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="add-item"] { --semantic-bg: #0369a1; --semantic-fg: #ffffff; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="add-heading"] { --semantic-bg: #f3e8ff; --semantic-fg: #6b21a8; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="draft"] { --semantic-bg: #e2e8f0; --semantic-fg: #334155; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="draft-new"] { --semantic-bg: #e5f5f8; --semantic-fg: #007085; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn[data-ui-action="approve-new"] { --semantic-bg: #115e59; --semantic-fg: #ffffff; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn:is([data-ui-action="add-item"], [data-ui-action="add-heading"], [data-ui-action="draft"], [data-ui-action="draft-new"], [data-ui-action="approve-new"]) {
 background: var(--semantic-bg) !important;
 border-color: var(--semantic-bg) !important;
 color: var(--semantic-fg) !important;
}
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn:is([data-ui-action="add-item"], [data-ui-action="add-heading"], [data-ui-action="draft"], [data-ui-action="draft-new"], [data-ui-action="approve-new"]) :is(i, svg, span) { color: inherit !important; }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn:is([data-ui-action="add-item"], [data-ui-action="add-heading"], [data-ui-action="draft"], [data-ui-action="draft-new"], [data-ui-action="approve-new"]):hover:not(:disabled):not(.disabled) { filter: brightness(.94); }
html[data-erp-admin-page] body :is(#appvue, .modal, .table-popup) .btn:is([data-ui-action="add-item"], [data-ui-action="add-heading"], [data-ui-action="draft"], [data-ui-action="draft-new"], [data-ui-action="approve-new"]):focus-visible { outline: 2px solid #007f96; outline-offset: 3px; }
