/* Shared action component. Sizing exceptions are limited to icon and table actions.
 * Classified by erp-layout.js without replacing controls or changing submitted values.
 */
:root {
    --erp-button-height: 36px;
    --erp-button-width: 148px;
    --erp-button-radius: 6px;
    --erp-button-gap: 8px;
}
@media screen {
    body :is(#erp-layout-page-body, .modal) .erp-button {
        --erp-button-bg: var(--erp-theme-accent);
        --erp-button-bg: color-mix(in srgb, var(--erp-theme-accent) 88%, #475569);
        --erp-button-fg: var(--erp-theme-on-accent);
        --erp-button-border: var(--erp-theme-accent);
        --erp-button-border: color-mix(in srgb, var(--erp-theme-accent) 88%, #475569);
        --erp-button-hover-bg: var(--erp-theme-hover);
        --erp-button-hover-fg: var(--erp-theme-on-hover);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        box-sizing: border-box;
        width: var(--erp-button-width) !important;
        min-width: max-content !important;
        max-width: 100%;
        height: var(--erp-button-height) !important;
        min-height: var(--erp-button-height) !important;
        padding: 0 14px !important;
        border: 1px solid var(--erp-button-border) !important;
        border-radius: var(--erp-button-radius) !important;
        background: var(--erp-button-bg) !important;
        color: var(--erp-button-fg) !important;
        font-family: inherit !important;
        font-size: 13px !important;
        font-weight: 500 !important;
        line-height: 34px !important;
        letter-spacing: normal !important;
        text-align: center;
        text-transform: none !important;
        text-decoration: none;
        white-space: nowrap;
        vertical-align: middle;
        box-shadow: none !important;
        transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
        cursor: pointer;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button:is(.btn-secondary, .btn-default, .btn-light, .btn-outline-primary, .btn-outline-secondary, .erp-table-icon, [data-erp-clear-filters]) {
        --erp-button-bg: #fff;
        --erp-button-fg: var(--erp-theme-ink);
        --erp-button-border: var(--erp-theme-border);
        --erp-button-hover-bg: var(--erp-theme-selected);
        --erp-button-hover-fg: var(--erp-theme-ink);
    }
    body :is(#erp-layout-page-body, .modal) .erp-button:is(.btn-danger, .btn-outline-danger) {
        --erp-button-bg: #fff5f6;
        --erp-button-fg: #b42335;
        --erp-button-border: #f2b8c1;
        --erp-button-hover-bg: #b42335;
        --erp-button-hover-fg: #fff;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button.btn-warning {
        --erp-button-bg: #fff5da;
        --erp-button-fg: #6b4a00;
        --erp-button-border: #e4c66e;
        --erp-button-hover-bg: #f5df9d;
        --erp-button-hover-fg: #513800;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button:not(:disabled):not(.disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, :active) {
        background: var(--erp-button-hover-bg) !important;
        border-color: var(--erp-theme-focus) !important;
        color: var(--erp-button-hover-fg) !important;
        box-shadow: none !important;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button:focus-visible {
        outline: 2px solid var(--erp-theme-ink) !important;
        outline-offset: 2px;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button:is(:disabled, .disabled, [aria-disabled="true"]) {
        opacity: .55;
        cursor: not-allowed;
        box-shadow: none !important;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button > :is(i, svg, .glyphicon) {
        flex-shrink: 0;
        margin: 0 !important;
        padding: 0 !important;
        color: inherit !important;
        font-size: 14px !important;
        line-height: 1 !important;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button > svg { width: 15px; height: 15px; }
    body :is(#erp-layout-page-body, .modal) .erp-button.erp-button-table {
        width: auto !important;
        min-width: 72px !important;
        padding: 0 10px !important;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button.erp-button-icon {
        width: var(--erp-button-height) !important;
        min-width: var(--erp-button-height) !important;
        padding: 0 !important;
    }
    /* Download-only controls share the quiet, compact footprint of row actions. */
    body :is(#erp-layout-page-body, .modal) .erp-button.erp-button-download {
        --erp-button-bg: transparent;
        --erp-button-fg: var(--erp-theme-ink);
        --erp-button-border: transparent;
        --erp-button-hover-bg: var(--erp-theme-selected);
        --erp-button-hover-fg: var(--erp-theme-ink);
        width: 24px !important; min-width: 24px !important;
        height: 24px !important; min-height: 24px !important;
        padding: 0 !important; border-radius: 5px !important; line-height: 1 !important;
        box-shadow: none !important;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button.erp-button-download > :is(i, svg, .glyphicon) {
        font-size: 13px !important; width: 13px; height: 13px;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button.erp-button-download:not(:disabled):not(.disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, :active) {
        border-color: var(--erp-theme-border) !important;
        box-shadow: none !important;
    }
    body #erp-layout-page-body summary.erp-table-icon {
        display: inline-flex; align-items: center; justify-content: center;
        box-sizing: border-box; width: var(--erp-button-height); height: var(--erp-button-height);
        min-height: var(--erp-button-height); padding: 0; border-radius: var(--erp-button-radius);
        border: 1px solid var(--erp-theme-border); background: #fff; color: var(--erp-theme-ink);
    }
    body #erp-layout-page-body summary.erp-table-icon:is(:hover, :focus-visible) {
        background: var(--erp-theme-selected); border-color: var(--erp-theme-focus);
        box-shadow: 0 0 0 2px var(--erp-theme-soft);
    }
    body :is(#erp-layout-page-body, .modal) .erp-button-bar {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;
        gap: var(--erp-button-gap) !important;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button-bar > .erp-button { margin: 0 !important; }
    body #erp-layout-page-body .erp-search-panel-actions.erp-button-bar { justify-content: flex-end; }
    body :is(#erp-layout-page-body, .modal) input.erp-button { text-transform: capitalize !important; }
    /* Native input buttons retain their original submit values and PDF icon wrapper. */
    body.erp-report-screen #erp-layout-page-body .erp-report-action-wrap > input.erp-button { padding-left: 32px !important; }
    body.erp-report-screen #erp-layout-page-body .erp-report-action-wrap { height: var(--erp-button-height); }
    body.erp-report-screen #erp-layout-page-body .erp-report-action-wrap > .erp-report-action-icon { top: 50%; transform: translateY(-50%); }
    body :is(#erp-layout-page-body, .modal) .erp-button[hidden],
    body :is(#erp-layout-page-body, .modal) .erp-button-bar[hidden] { display: none !important; }
}
@media screen and (max-width: 479px) {
    body :is(#erp-layout-page-body, .modal) .erp-button { max-width: 100%; }
    body #erp-layout-page-body summary.erp-table-icon {
        display: inline-flex; align-items: center; justify-content: center;
        box-sizing: border-box; width: var(--erp-button-height); height: var(--erp-button-height);
        min-height: var(--erp-button-height); padding: 0; border-radius: var(--erp-button-radius);
        border: 1px solid var(--erp-theme-border); background: #fff; color: var(--erp-theme-ink);
    }
    body #erp-layout-page-body summary.erp-table-icon:is(:hover, :focus-visible) {
        background: var(--erp-theme-selected); border-color: var(--erp-theme-focus);
        box-shadow: 0 0 0 2px var(--erp-theme-soft);
    }
    body :is(#erp-layout-page-body, .modal) .erp-button-bar { gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
    body :is(#erp-layout-page-body, .modal) .erp-button { transition: none !important; }
}
@media (forced-colors: active) {
    body :is(#erp-layout-page-body, .modal) .erp-button { box-shadow: none !important; border: 1px solid ButtonText !important; }
}

/* Add Row is a secondary table action, independent of the main form actions. */
@media screen {
    body :is(#erp-layout-page-body, .modal) .erp-table-row-actions {
        display: flex; align-items: center; justify-content: flex-end;
        box-sizing: border-box; width: 100%; min-width: 0; clear: both;
        grid-column: 1 / -1; flex-basis: 100%; margin: 8px 0; gap: 8px;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button.erp-button-add-row {
        --erp-button-bg: transparent;
        --erp-button-fg: var(--erp-theme-ink);
        --erp-button-border: var(--erp-theme-border);
        --erp-button-hover-bg: var(--erp-theme-selected);
        --erp-button-hover-fg: var(--erp-theme-ink);
        width: auto !important; min-width: 92px !important;
        height: 32px !important; min-height: 32px !important;
        margin: 0 !important; padding: 0 12px !important; float: none !important;
        border-radius: 6px !important; font-size: 12px !important; line-height: 30px !important;
        box-shadow: none !important;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button.erp-button-add-row:not(:disabled):not(.disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, :active) {
        background: var(--erp-theme-selected) !important; color: var(--erp-theme-ink) !important;
        border-color: var(--erp-theme-focus) !important; box-shadow: none !important;
    }
}

/* Standard entry-form actions: primary Save, secondary follow-up actions and neutral Reset. */
@media screen {
    body #erp-layout-page-body :is(.card-footer, .panel-footer, .form-actions).erp-form-action-bar,
    body #erp-layout-page-body .erp-form-action-bar {
        display: flex !important; flex-wrap: wrap; align-items: center; justify-content: center;
        grid-column: 1 / -1; box-sizing: border-box; width: 100%; min-width: 0;
        gap: 8px !important; margin: 16px 0 0 !important; padding: 14px 0 0 !important;
        background: transparent !important; border: 0 !important;
        border-top: 1px solid var(--erp-theme-border, #e2e8f0) !important; box-shadow: none !important;
    }
    /* Permission-controlled button groups share the outer action row. */
    body #erp-layout-page-body .erp-form-action-bar > .erp-form-action-bar {
        flex: 0 1 auto; width: auto; margin: 0 !important;
        padding: 0 !important; border: 0 !important;
    }
    body #erp-layout-page-body .erp-form-action-bar[hidden],
    body #erp-layout-page-body .erp-form-action-bar[style*="display: none"],
    body #erp-layout-page-body .erp-form-action-bar[style*="display:none"] {
        display: none !important;
    }
    body #erp-layout-page-body .erp-form-action-bar > br { display: none; }
    body #erp-layout-page-body .erp-button.erp-form-action {
        --erp-button-bg: #fff;
        --erp-button-fg: var(--erp-theme-ink);
        --erp-button-border: var(--erp-theme-border);
        --erp-button-hover-bg: var(--erp-theme-selected);
        --erp-button-hover-fg: var(--erp-theme-ink);
        width: 120px !important; min-width: 120px !important;
        height: 36px !important; min-height: 36px !important;
        margin: 0 !important; padding: 0 12px !important; float: none !important;
        border-radius: 6px !important; line-height: 34px !important; box-shadow: none !important;
    }
    body #erp-layout-page-body .erp-button.erp-form-action[data-erp-action="save"] {
        --erp-button-bg: var(--erp-theme-accent);
        --erp-button-bg: color-mix(in srgb, var(--erp-theme-accent) 88%, #475569);
        --erp-button-fg: var(--erp-theme-on-accent);
        --erp-button-border: var(--erp-theme-accent);
        --erp-button-border: color-mix(in srgb, var(--erp-theme-accent) 88%, #475569);
        --erp-button-hover-bg: var(--erp-theme-hover);
        --erp-button-hover-fg: var(--erp-theme-on-hover);
    }
    body #erp-layout-page-body .erp-button.erp-form-action[data-erp-action="reset"] {
        --erp-button-fg: var(--erp-theme-ink); --erp-button-border: var(--erp-theme-border);
        --erp-button-hover-bg: var(--erp-theme-selected); --erp-button-hover-fg: var(--erp-theme-ink);
    }
    body #erp-layout-page-body .erp-button.erp-form-action:not(:disabled):not(.disabled):not([aria-disabled="true"]):is(:hover, :focus-visible, :active) {
        box-shadow: none !important;
    }
    body #erp-layout-page-body .erp-form-action-wrap {
        position: relative; display: inline-flex; flex: 0 0 auto; vertical-align: middle;
        max-width: 100%; margin: 0 !important; color: var(--erp-theme-ink);
    }
    body #erp-layout-page-body .erp-form-action-wrap > input.erp-form-action { padding-left: 30px !important; }
    body #erp-layout-page-body .erp-form-action-icon {
        display: inline-block; flex: 0 0 14px; width: 14px; height: 14px;
        background: currentColor; pointer-events: none;
        -webkit-mask: var(--erp-action-icon) center / contain no-repeat;
        mask: var(--erp-action-icon) center / contain no-repeat;
    }
    body #erp-layout-page-body .erp-form-action-wrap > .erp-form-action-icon {
        position: absolute; top: 50%; left: 12px; transform: translateY(-50%);
    }
    body #erp-layout-page-body .erp-form-action-wrap[data-erp-action="save"] { color: var(--erp-theme-on-accent); }
    body #erp-layout-page-body .erp-form-action-wrap[data-erp-action="save"]:has(input:is(:hover, :focus-visible, :active)) { color: var(--erp-theme-on-hover); }
    body #erp-layout-page-body .erp-form-action-wrap[data-erp-action="reset"] { color: var(--erp-theme-ink); }
    body #erp-layout-page-body .erp-form-action-wrap:has(input:is(:disabled, .disabled, [aria-disabled="true"])) > .erp-form-action-icon { opacity: .55; }
    body #erp-layout-page-body [data-erp-action="save"] { --erp-action-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%203h12l4%204v14H3V3h2Z%22%2F%3E%3Cpath%20d%3D%22M7%203v6h10V3M7%2021v-8h10v8%22%2F%3E%3C%2Fsvg%3E"); }
    body #erp-layout-page-body [data-erp-action="save-view"] { --erp-action-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2013V3h13l4%204v4M7%203v6h9V3%22%2F%3E%3Cpath%20d%3D%22M8%2017s3-4%207-4%207%204%207%204-3%204-7%204-7-4-7-4Z%22%2F%3E%3Ccircle%20cx%3D%2215%22%20cy%3D%2217%22%20r%3D%221.5%22%2F%3E%3C%2Fsvg%3E"); }
    body #erp-layout-page-body [data-erp-action="save-print"] { --erp-action-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M7%208V3h10v5M7%2017H3V9h18v8h-4M7%2014h10v7H7Z%22%2F%3E%3Cpath%20d%3D%22M17%2011h1%22%2F%3E%3C%2Fsvg%3E"); }
    body #erp-layout-page-body [data-erp-action="print"] { --erp-action-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M7%208V3h10v5M7%2017H3V9h18v8h-4M7%2014h10v7H7Z%22%2F%3E%3Cpath%20d%3D%22M17%2011h1%22%2F%3E%3C%2Fsvg%3E"); }
    body #erp-layout-page-body [data-erp-action="view"] { --erp-action-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%2012s4-7%2010-7%2010%207%2010%207-4%207-10%207S2%2012%202%2012Z%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E"); }
    body #erp-layout-page-body [data-erp-action="reset"] { --erp-action-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2010a9%209%200%201%201%202%208M3%204v6h6%22%2F%3E%3C%2Fsvg%3E"); }
}
@media screen and (max-width: 479px) {
    body #erp-layout-page-body .erp-form-action-bar { gap: 8px !important; }
}

/* Shared outline treatment, matching the compact Excel/Toll upload actions. */
@media screen {
    body :is(#erp-layout-page-body, .modal) .erp-button:not(.btn-danger, .btn-outline-danger, .btn-warning, .erp-button-download) {
        --erp-button-bg: #fff;
        --erp-button-fg: var(--erp-theme-ink, #334155);
        --erp-button-border: var(--erp-theme-border, #cbd5e1);
        --erp-button-hover-bg: var(--erp-theme-selected, #edf2fa);
        --erp-button-hover-fg: var(--erp-theme-ink, #334155);
        background: var(--erp-button-bg) !important;
        border: 1px solid var(--erp-button-border) !important;
        color: var(--erp-button-fg) !important;
        border-radius: 6px !important;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button:not(.btn-danger, .btn-outline-danger, .btn-warning, .erp-button-download):not(:disabled, .disabled, [aria-disabled="true"]):is(:hover, :focus-visible, :active) {
        background: var(--erp-button-hover-bg) !important;
        border-color: var(--erp-theme-accent, #64748b) !important;
        color: var(--erp-button-hover-fg) !important;
    }
    body :is(#erp-layout-page-body, .modal) .erp-button:not(.erp-button-icon, .erp-button-download, .erp-button-table) {
        width: auto !important;
        min-width: max-content !important;
        height: 32px !important;
        min-height: 32px !important;
        padding: 0 12px !important;
        font-size: 13px !important;
        line-height: 30px !important;
        gap: 6px;
    }
}
@media screen and (max-width: 767px) {
    body :is(#erp-layout-page-body, .modal) .erp-button:not(.erp-button-icon, .erp-button-download, .erp-button-table) {
        height: 36px !important;
        min-height: 36px !important;
        line-height: 34px !important;
    }
}
