/*
 * BusinessManager centralized CRUD/grid icon actions.
 *
 * INDIVIDUAL ACTION BUTTON STANDARD
 * ---------------------------------
 * Visual baseline: Customers/Details service-location actions.
 *
 * All View/Edit/Delete/Activate/Deactivate/etc. grid actions render as
 * independent rounded-square buttons with semantic outline/icon colors.
 * Future size, radius, gap, hover, or focus changes belong here.
 */

:root {
    --bm-grid-action-size: 42px;
    --bm-grid-action-size-tablet: 44px;
    --bm-grid-action-size-mobile: 46px;
    --bm-grid-action-radius: 12px;
    --bm-grid-action-gap: .45rem;
    --bm-grid-action-bg: #ffffff;
    --bm-grid-action-border-secondary: #94a3b8;
    --bm-grid-action-border-primary: #4263eb;
    --bm-grid-action-border-success: #3f8f5a;
    --bm-grid-action-border-info: #0f8198;
    --bm-grid-action-border-warning: #a16207;
    --bm-grid-action-border-danger: #dc4c55;
    --bm-grid-action-shadow: 0 3px 10px rgba(15, 23, 42, .06);
    --bm-grid-action-hover-shadow: 0 7px 16px rgba(15, 23, 42, .11);
    --bm-grid-action-focus: 0 0 0 3px rgba(37, 99, 235, .16);
}

/* Toolbar is only a layout wrapper.  It must never look like one grouped box. */
.bm-table-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--bm-grid-action-gap) !important;
    max-width: 100%;
    margin: 0;
    padding: 0;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    white-space: nowrap;
    vertical-align: middle;
    overflow: visible;
}

.bm-table-actions > form,
.bm-table-actions form {
    display: inline-flex;
    align-items: center;
    margin: 0 !important;
    padding: 0;
    border: 0;
    background: transparent;
}

/* Every action gets its own Customer-Details-style square.  Target .btn as
   well as .ops-action-btn so older embedded CRUD grids are standardized too. */
.bm-table-actions .btn,
.bm-table-actions .ops-action-btn {
    position: relative;
    display: inline-flex !important;
    width: var(--bm-grid-action-size) !important;
    min-width: var(--bm-grid-action-size) !important;
    height: var(--bm-grid-action-size) !important;
    min-height: var(--bm-grid-action-size) !important;
    flex: 0 0 var(--bm-grid-action-size) !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border-width: 1px !important;
    border-style: solid !important;
    border-radius: var(--bm-grid-action-radius) !important;
    background: var(--bm-grid-action-bg) !important;
    box-shadow: var(--bm-grid-action-shadow) !important;
    font-size: .96rem;
    line-height: 1;
    text-decoration: none !important;
    transition:
        transform .16s ease,
        color .16s ease,
        border-color .16s ease,
        background-color .16s ease,
        box-shadow .16s ease;
}

.bm-table-actions .btn i,
.bm-table-actions .ops-action-btn i {
    display: block;
    margin: 0 !important;
    line-height: 1;
}

/* Semantic outline/icon colors. */
.bm-table-actions .btn-outline-secondary { color: #64748b !important; border-color: var(--bm-grid-action-border-secondary) !important; }
.bm-table-actions .btn-outline-primary   { color: #4263eb !important; border-color: var(--bm-grid-action-border-primary) !important; }
.bm-table-actions .btn-outline-success   { color: #3f8f5a !important; border-color: var(--bm-grid-action-border-success) !important; }
.bm-table-actions .btn-outline-info      { color: #0f8198 !important; border-color: var(--bm-grid-action-border-info) !important; }
.bm-table-actions .btn-outline-warning   { color: #a16207 !important; border-color: var(--bm-grid-action-border-warning) !important; }
.bm-table-actions .btn-outline-danger    { color: #dc4c55 !important; border-color: var(--bm-grid-action-border-danger) !important; }

/* Soft semantic hover treatment; labels/icons never disappear. */
@media (hover: hover) {
    .bm-table-actions .btn:not(:disabled):not(.disabled):hover,
    .bm-table-actions .ops-action-btn:not(:disabled):not(.disabled):hover {
        transform: translateY(-1px);
        box-shadow: var(--bm-grid-action-hover-shadow) !important;
    }

    .bm-table-actions .btn-outline-secondary:hover { color: #334155 !important; border-color: #64748b !important; background: #f8fafc !important; }
    .bm-table-actions .btn-outline-primary:hover   { color: #3151d5 !important; border-color: #3151d5 !important; background: #eef2ff !important; }
    .bm-table-actions .btn-outline-success:hover   { color: #287442 !important; border-color: #287442 !important; background: #f0fdf4 !important; }
    .bm-table-actions .btn-outline-info:hover      { color: #0e7490 !important; border-color: #0e7490 !important; background: #ecfeff !important; }
    .bm-table-actions .btn-outline-warning:hover   { color: #854d0e !important; border-color: #854d0e !important; background: #fffbeb !important; }
    .bm-table-actions .btn-outline-danger:hover    { color: #c93640 !important; border-color: #c93640 !important; background: #fff1f2 !important; }
}

.bm-table-actions .btn:focus-visible,
.bm-table-actions .ops-action-btn:focus-visible {
    z-index: 2;
    outline: 0 !important;
    box-shadow: var(--bm-grid-action-focus), var(--bm-grid-action-hover-shadow) !important;
}

.bm-table-actions .btn:disabled,
.bm-table-actions .btn.disabled,
.bm-table-actions .ops-action-btn:disabled,
.bm-table-actions .ops-action-btn.disabled,
.bm-table-actions .ops-action-btn[aria-disabled="true"] {
    opacity: .42;
    transform: none !important;
    box-shadow: none !important;
    pointer-events: none;
}

/* Alignment contracts. */
.bm-table-actions-header,
.bm-table-actions-cell {
    text-align: right !important;
}

.bm-table-actions-cell {
    vertical-align: middle !important;
}

.bm-table-actions-cell > .bm-table-actions {
    width: auto;
    max-width: 100%;
    margin-left: auto;
    justify-content: flex-end;
}

@media (min-width: 1180.01px) {
    .bm-table-actions-header,
    .bm-table-actions-cell {
        padding-right: .75rem !important;
        white-space: nowrap;
    }
}

@media (max-width: 1180px) {
    .bm-table-actions-cell > .bm-table-actions {
        max-width: 100%;
    }
}

@media (min-width: 768px) and (max-width: 1180px) {
    .bm-table-actions .btn,
    .bm-table-actions .ops-action-btn {
        width: var(--bm-grid-action-size-tablet) !important;
        min-width: var(--bm-grid-action-size-tablet) !important;
        height: var(--bm-grid-action-size-tablet) !important;
        min-height: var(--bm-grid-action-size-tablet) !important;
        flex-basis: var(--bm-grid-action-size-tablet) !important;
    }

    .bm-operational-list .bm-table-actions-cell > .bm-table-actions {
        width: 100%;
        justify-content: flex-start;
    }
}

@media (max-width: 575.98px) {
    .bm-table-actions {
        justify-content: flex-start;
        gap: .5rem !important;
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        padding-block: 2px;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }

    .bm-table-actions .btn,
    .bm-table-actions .ops-action-btn {
        width: var(--bm-grid-action-size-mobile) !important;
        min-width: var(--bm-grid-action-size-mobile) !important;
        height: var(--bm-grid-action-size-mobile) !important;
        min-height: var(--bm-grid-action-size-mobile) !important;
        flex-basis: var(--bm-grid-action-size-mobile) !important;
    }
}

@media (hover: none) {
    .bm-table-actions .btn:hover,
    .bm-table-actions .ops-action-btn:hover {
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bm-table-actions .btn,
    .bm-table-actions .ops-action-btn {
        transition: none !important;
    }
}
