.crm-dynamic-button-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .4rem;
    box-sizing: border-box;
    min-height: var(--crm-panel-bar-height,3rem);
    padding: .4rem .75rem;
    border-bottom: 1px solid #ddd;
}

.crm-dynamic-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 1.875rem;
    padding: .25rem .65rem;
    border: 1px solid var(--active-module-color, var(--module-color-default));
    border-radius: .2rem;
    background: var(--active-module-color, var(--module-color-default));
    color: #fff;
    font: inherit;
    font-size: .875rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
}

.crm-dynamic-button:hover,
.crm-dynamic-button.is-loading,
.crm-dynamic-button[aria-busy="true"],
.crm-dynamic-button:focus-visible {
    color: #fff;
    filter: brightness(.88);
}

.crm-dynamic-button.is-secondary {
    background: #fff;
    color: var(--active-module-color, var(--module-color-default));
}

.crm-dynamic-button.is-secondary:hover,
.crm-dynamic-button.is-secondary.is-loading,
.crm-dynamic-button.is-secondary[aria-busy="true"],
.crm-dynamic-button.is-secondary:focus-visible {
    background: var(--active-module-color, var(--module-color-default));
    color: #fff;
    filter: none;
}

.crm-dynamic-button.is-destructive {
    background: #fff;
    border-color: #a61b1b;
    color: #a61b1b;
}

.crm-dynamic-button.is-destructive:hover,
.crm-dynamic-button.is-destructive.is-loading,
.crm-dynamic-button.is-destructive[aria-busy="true"],
.crm-dynamic-button.is-destructive:focus-visible {
    background: #a61b1b;
    color: #fff;
    filter: none;
}

.crm-edit-component-dialog {
    width: min(96vw, 110rem);
    max-height: 92vh;
    padding: 0;
    border: 1px solid var(--active-module-color, var(--module-color-default));
    background: #fff;
}

.crm-edit-component-dialog::backdrop {
    background: rgb(0 0 0 / 45%);
}

.crm-edit-component-dialog-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .65rem .85rem;
    background: var(--active-module-color, var(--module-color-default));
    color: #fff;
}

.crm-edit-component-dialog-bar button {
    border: 0;
    background: transparent;
    color: inherit;
    font-size: 1.5rem;
    line-height: 1;
}

.crm-edit-component-dialog [data-content] {
    max-height: calc(92vh - 3rem);
    overflow: auto;
}

[data-edit-component-host]:not(:empty) {
    margin-block: .75rem;
}

.crm-grid-field-action {
    padding: 0;
    border: 0;
    background: transparent;
    font: inherit;
    text-align: inherit;
    cursor: pointer;
}

/* Inline row actions must not inherit the page/panel toolbar height. */
:is(.is-relationship-grid, .crm-activities-section) tbody .crm-dynamic-button-bar {
    min-height: 0;
    flex-wrap: nowrap;
    gap: 4px;
    padding: 0;
    border: 0;
}

:is(.is-relationship-grid, .crm-activities-section) tbody .crm-dynamic-button {
    --crm-row-button-color: var(--crm-grid-accent, var(--active-module-color, var(--module-color-default)));
    min-height: 24px;
    padding: 3px 7px;
    border-color: var(--crm-row-button-color);
    background: #fff;
    color: var(--crm-row-button-color);
    font-size: 12px;
    line-height: 16px;
    white-space: nowrap;
}

:is(.is-relationship-grid, .crm-activities-section) tbody .crm-dynamic-button:hover,
:is(.is-relationship-grid, .crm-activities-section) tbody .crm-dynamic-button.is-loading,
:is(.is-relationship-grid, .crm-activities-section) tbody .crm-dynamic-button[aria-busy="true"],
:is(.is-relationship-grid, .crm-activities-section) tbody .crm-dynamic-button:focus-visible {
    background: var(--crm-row-button-color);
    color: #fff;
    filter: none;
}

:is(.is-relationship-grid, .crm-activities-section) tbody .crm-dynamic-button.is-destructive {
    --crm-row-button-color: #a61b1b;
}

.crm-activity-tools-close .crm-dynamic-button-bar,
.crm-activity-tools-right .crm-dynamic-button-bar {
    min-height: 0;
    padding: 0;
    margin: 0;
    box-shadow: none;
    background: transparent;
}

.crm-activity-tools-close .crm-dynamic-button-bar { justify-content: center; }
.crm-activity-tools-right .crm-dynamic-button-bar { justify-content: flex-end; }

/* Keep the label/name/value intact, including native form submitters. */
:is(button,a,input).is-loading,
:is(button,a)[aria-busy="true"] { cursor:progress; }
:is(button,a).is-loading::after,
:is(button,a)[aria-busy="true"]::after {
    content:"";
    display:inline-block;
    flex:none;
    width:.85em;
    height:.85em;
    margin-inline-start:.45em;
    border:2px solid currentColor;
    border-inline-end-color:transparent;
    border-radius:50%;
    vertical-align:-.1em;
    animation:crm-button-loading .75s linear infinite;
}
.btn:is(.btn-primary,.btn-secondary,.btn-outline-primary,.btn-outline-secondary,.btn-danger,.btn-outline-danger).is-loading {
    color:var(--bs-btn-hover-color);
    background-color:var(--bs-btn-hover-bg);
    border-color:var(--bs-btn-hover-border-color);
}
@keyframes crm-button-loading { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) {
    :is(button,a).is-loading::after,:is(button,a)[aria-busy="true"]::after { animation:none; }
}
