:is(button, input[type="submit"], input[type="button"], a.button, a.app-button, a.bg-indigo-600, a.border, a.print-button, a[role="button"]):not(.smart-search-option):not(.source-mode-button):not(.line-remove-button) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 40px;
    max-width: 100%;
    padding: 9px 16px;
    border: 1px solid var(--button-border, #3157c8);
    border-radius: 8px;
    background: var(--button-background, #3157c8);
    color: var(--button-text, #fff);
    font-family: inherit;
    font-size: 14px;
    font-weight: 650;
    line-height: 20px;
    text-align: center;
    text-decoration: none;
    vertical-align: middle;
    cursor: pointer;
    transition: background-color 150ms, border-color 150ms, box-shadow 150ms;
}

:is(button, input[type="submit"], input[type="button"], a.button, a.app-button, a.bg-indigo-600, a.border, a.print-button, a[role="button"]):not(.smart-search-option):not(.source-mode-button):not(.line-remove-button):hover {
    background: var(--button-hover, #2445a9);
    border-color: var(--button-hover-border, #2445a9);
    color: var(--button-text, #fff);
    text-decoration: none;
}

:is(button, input[type="submit"], input[type="button"], a.button, a.app-button, a.bg-indigo-600, a.border, a.print-button, a[role="button"]):focus-visible {
    outline: 3px solid #2563eb;
    outline-offset: 3px;
}

:is(button, input[type="submit"], input[type="button"], a.button, a.app-button, a.bg-indigo-600, a.border, a.print-button, a[role="button"]):not(.smart-search-option):not(.source-mode-button):not(.line-remove-button):is(:disabled, [aria-disabled="true"]) {
    background: #e5e7eb;
    border-color: #9ca3af;
    color: #4b5563;
    box-shadow: none;
    cursor: not-allowed;
    opacity: 1;
}

:is(button, a, input):is(.bg-white, .secondary, .print-button, .workspace-signout, .plain-button, .app-button-secondary),
a.border,
[data-hsn-cancel],
[data-charge-cancel] {
    --button-background: #fff;
    --button-text: #243247;
    --button-border: #8a99ae;
    --button-hover: #edf2f7;
    --button-hover-border: #52647e;
}

:is(button, a, input):is(.text-red-700, .text-red-800, .danger, .app-button-danger),
button[name="action"]:is([value="cancel"], [value="reject"], [value="delete"], [value="disable"]),
[data-formset-remove] {
    --button-background: #b42318;
    --button-text: #fff;
    --button-border: #b42318;
    --button-hover: #8f1d14;
    --button-hover-border: #8f1d14;
}

:is(button, a, input):is(.app-button-primary, [data-formset-add], [data-hsn-save], [data-charge-save]) {
    --button-background: #3157c8;
    --button-text: #fff;
    --button-border: #3157c8;
    --button-hover: #2445a9;
    --button-hover-border: #2445a9;
}

.tenant-entry-form button {
    --button-background: #17675f;
    --button-border: #17675f;
    --button-hover: #105149;
    --button-hover-border: #105149;
}

button.source-mode-button {
    min-height: 40px;
    border: 1px solid #8a99ae;
    background: #fff;
    color: #243247;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
}
button.source-mode-button:hover { background: #edf2f7; color: #243247; }
button.source-mode-button.is-active { background: #3157c8; border-color: #3157c8; color: #fff; }
button.source-mode-button:disabled { background: #e5e7eb; color: #4b5563; cursor: not-allowed; }

button[hidden], input[type="submit"][hidden], input[type="button"][hidden], a[hidden] { display: none !important; }

@media (prefers-reduced-motion: reduce) {
    button, input[type="submit"], input[type="button"], a.app-button, a.button { transition: none; }
}

@media print {
    button, input[type="submit"], input[type="button"], a.app-button, a.button, a.bg-indigo-600, a.border, a.print-button, a[role="button"] { display: none !important; }
}
