/* ActionDialog chrome. Loaded on every page after css/app.css.
   Deactivate triggers stay solid btn-warning. Only the confirm button is btn-danger.
   Shipped ActionDialog renders Confirm, then Cancel. Row-reverse shows Cancel first. */

.app-actiondialog .modal-footer {
    display: flex;
    flex-direction: row-reverse;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: stretch;
    gap: 0.5rem;
}

.app-actiondialog .modal-title {
    line-height: 1.3;
    overflow-wrap: anywhere;
    margin-right: 1.5rem;
}

@media (max-width: 576px) {
    .app-actiondialog .modal-content {
        width: calc(100% - 1.5rem);
        max-width: none;
        margin: 4.75rem 0.75rem 0.75rem;
    }

    .app-actiondialog .modal-footer > .btn,
    .app-actiondialog .modal-footer > form {
        flex: 1 1 0;
        min-width: 0;
    }

    .app-actiondialog .modal-footer > form .btn {
        width: 100%;
    }
}

/* Read-only rows render no Deactivate button. Do not keep the empty divider.
   Match only cells that opted into this class. Do not style every table from
   its descendants: that invalidates every table on every Blazor render. */
td.irreversible-actions:not(:has(button)):not(:has(a)):not(:has(.btn)) {
    border: 0 !important;
    padding-inline: 0 !important;
    width: 0;
    min-width: 0 !important;
}
