/**
 * Button Component
 *
 * Reusable button styles for actions and navigation.
 */

@layer admin-components {
    .admin-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: var(--admin-spacing-sm);
        padding: var(--admin-spacing-sm) var(--admin-spacing-md);
        font-family: var(--admin-font-family-base);
        font-size: var(--admin-font-size-sm);
        font-weight: var(--admin-font-weight-medium);
        line-height: 1;
        text-decoration: none;
        border: 1px solid transparent;
        border-radius: var(--admin-radius-md);
        cursor: pointer;
        transition: all var(--admin-transition-base);
        white-space: nowrap;
    }

    .admin-btn:focus-visible {
        outline: 2px solid var(--admin-focus-ring);
        outline-offset: 2px;
    }

    /* Primary button */
    .admin-btn--primary {
        background-color: var(--admin-accent-primary);
        color: white;
    }

    .admin-btn--primary:hover {
        background-color: oklch(from var(--admin-accent-primary) calc(l * 0.9) c h);
    }

    /* Secondary button */
    .admin-btn--secondary {
        background-color: var(--admin-sidebar-bg);
        color: var(--admin-sidebar-text-hover);
    }

    .admin-btn--secondary:hover {
        background-color: oklch(from var(--admin-sidebar-bg) calc(l * 1.1) c h);
    }

    /* Accent button */
    .admin-btn--accent {
        background-color: var(--admin-accent-info);
        color: white;
    }

    .admin-btn--accent:hover {
        background-color: oklch(from var(--admin-accent-info) calc(l * 0.9) c h);
    }

    /* Success button */
    .admin-btn--success {
        background-color: var(--admin-accent-success);
        color: white;
    }

    .admin-btn--success:hover {
        background-color: oklch(from var(--admin-accent-success) calc(l * 0.9) c h);
    }

    /* Danger button */
    .admin-btn--danger {
        background-color: var(--admin-accent-error);
        color: white;
    }

    .admin-btn--danger:hover {
        background-color: oklch(from var(--admin-accent-error) calc(l * 0.9) c h);
    }

    /* Ghost button */
    .admin-btn--ghost {
        background-color: transparent;
        color: var(--admin-content-text);
        border-color: var(--admin-border-medium);
    }

    .admin-btn--ghost:hover {
        background-color: var(--admin-bg-secondary);
    }

    /* Size variants */
    .admin-btn--sm {
        padding: var(--admin-spacing-xs) var(--admin-spacing-sm);
        font-size: var(--admin-font-size-xs);
    }

    .admin-btn--lg {
        padding: var(--admin-spacing-md) var(--admin-spacing-lg);
        font-size: var(--admin-font-size-base);
    }

    /* Icon button */
    .admin-btn__icon {
        width: 18px;
        height: 18px;
        flex-shrink: 0;
    }
}
