.btn-header,
.btn-3d,
.btn,
.btn-icon,
.btn-action,
.btn-action-large,
.btn-submit,
.btn-ghost,
.btn-back,
.btn-action-modern,
.quick-search-filter__btn,
.quick-filter-btn,
.btn-compare-action,
.control-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 38px;
    padding: 9px 13px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface);
    color: var(--text);
    box-shadow: var(--shadow-sm);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    transition:
        transform      0.15s cubic-bezier(0.34, 1.56, 0.64, 1),
        border-color   0.16s ease,
        background     0.16s ease,
        color          0.16s ease,
        box-shadow     0.16s ease;
}

.btn-header:hover,
.btn-3d:hover,
.btn:hover,
.btn-action:hover,
.btn-action-large:hover,
.btn-submit:hover,
.btn-ghost:hover,
.btn-back:hover,
.btn-action-modern:hover,
.quick-search-filter__btn:hover,
.quick-filter-btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.btn-header:active,
.btn-3d:active,
.btn:active,
.btn-action:active,
.btn-submit:active,
.btn-ghost:active,
.btn-back:active,
.quick-search-filter__btn:active,
.quick-filter-btn:active {
    transform: translateY(0) scale(0.97);
    box-shadow: var(--shadow-sm);
}

.btn-primary,
.btn-submit,
.btn-success,
.btn-view,
.btn-action.success,
.quick-search-filter__btn--primary,
.btn-action-modern.active,
.btn-print-receipts,
.btn-print {
    color: #fff;
    background: var(--primary);
    border-color: var(--primary);
}

.btn-primary:hover,
.btn-submit:hover,
.btn-success:hover,
.btn-view:hover,
.quick-search-filter__btn--primary:hover,
.btn-print-receipts:hover:not(:disabled),
.btn-print:hover {
    background: var(--primary-600);
    border-color: var(--primary-600);
}

.btn-secondary,
.btn-ghost,
.btn-back,
.btn-outline-secondary,
.quick-search-filter__btn--secondary,
.btn-close {
    color: var(--text);
    background: var(--surface-soft);
}

.btn-edit,
.btn-edit-custom {
    color: var(--accent-blue);
    background: #eff6ff;
    border-color: #bfdbfe;
}

.btn-danger,
.btn-action.danger,
.btn-delete-custom,
.btn-table-danger,
.btn-modal-danger {
    color: var(--danger);
    background: #fef2f2;
    border-color: #fecaca;
}

.btn-warning-action,
.btn-action.warning,
.btn-table-success {
    color: var(--warning);
    background: #fffbeb;
    border-color: #fde68a;
}

.btn-info-action {
    color: var(--info);
    background: #f0f9ff;
    border-color: #bae6fd;
}

.btn-icon {
    width: 36px;
    height: 36px;
    padding: 0;
}

.btn-action.success,
.btn-success {
    color: #fff;
    background: var(--primary);
    border-color: var(--primary);
}

.btn-action.warning {
    color: var(--warning);
    background: #fffbeb;
    border-color: #fde68a;
}

.btn-action.danger {
    color: var(--danger);
    background: #fef2f2;
    border-color: #fecaca;
}

.btn-back {
    font-weight: 800;
}

.btn-sm {
    min-height: 32px;
    padding: 7px 10px;
    font-size: 12px;
}

button:disabled,
.btn[disabled],
.btn-action-modern:disabled {
    opacity: 0.48;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
}

.btn-action-large {
    min-width: 74px;
    min-height: 36px;
}
