@use '../abstracts' as *;

/**
 * Button Component
 * 
 * Base styles for shared buttons used in both Admin components (when used in frontend)
 * and frontend-specific buttons.
 */

.presszone-comments-btn {
    @extend %presszone-comments-btn-base;

    // Standard Primary Variant
    &--primary {
        background-color: $presszone-comments-accent;
        color: $presszone-comments-bg-primary;
        
        &:hover:not(:disabled) {
            opacity: 0.9;
        }

        @include dark-mode {
            color: $presszone-comments-dark-bg-primary;
        }
    }

    // Warning Variant (used in InfractionModal)
    &--warning {
        background-color: $presszone-comments-warning;
        color: $presszone-comments-text-primary;
        border-color: $presszone-comments-warning;

        &:hover:not(:disabled) {
            opacity: 0.9;
        }
    }

    // Danger Variant
    &--danger {
        background-color: $presszone-comments-error;
        color: $presszone-comments-bg-primary;
        border-color: $presszone-comments-error;

        &:hover:not(:disabled) {
            opacity: 0.9;
        }
    }

    // Ghost/Secondary Variant
    &--ghost {
        background-color: transparent;
        
        @include theme-props((
            'color': 'text-secondary',
            'border-color': 'border'
        ));

        &:hover:not(:disabled) {
            @include theme-props((
                'background-color': 'bg-hover',
                'color': 'text-primary'
            ));
        }
    }
}