.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 36px;
    padding: 8px 14px;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    font-size: var(--font-size-md);
    font-weight: 600;
    line-height: 1.2;
    transition:
        background var(--transition-fast),
        color var(--transition-fast),
        border-color var(--transition-fast),
        opacity var(--transition-fast);
}

.button:disabled {
    opacity: .55;
    cursor: not-allowed;
}

.button-primary {
    background: var(--accent);
    color: #ffffff;
}

.button-primary:hover:not(:disabled) {
    background: var(--accent-hover);
}

.button-secondary {
    background: var(--surface-secondary);
    color: var(--text);
    border-color: var(--border);
}

.button-secondary:hover:not(:disabled) {
    background: var(--surface-hover);
}

.button-danger {
    background: var(--danger);
    color: #ffffff;
}

.button-danger:hover:not(:disabled) {
    filter: brightness(.92);
}

.button-ghost {
    background: transparent;
    color: var(--text-secondary);
    border-color: transparent;
}

.button-ghost:hover:not(:disabled) {
    background: var(--surface-hover);
    color: var(--text);
}

.button-sm {
    min-height: 29px;
    padding: 5px 10px;
    font-size: var(--font-size-sm);
}

.button-lg {
    min-height: 44px;
    padding: 11px 20px;
    font-size: var(--font-size-lg);
}

.button-block {
    width: 100%;
}
