.btn-primary,
.btn-ghost,
.btn-outline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 22px;
    font-family: var(--font-mono);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--dur-base) var(--ease-out);
    border: 1px solid transparent;
    text-decoration: none;
    line-height: 1;
}

.btn-primary {
    background: var(--accent);
    color: var(--accent-ink);
    border-color: var(--accent);
}

.btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px var(--accent-glow);
}

.btn-primary:active { transform: translateY(0); }

.btn-ghost {
    background: transparent;
    color: var(--text-primary);
    border-color: var(--border-light);
}

.btn-ghost:hover {
    border-color: var(--border-strong);
    background: var(--bg-tertiary);
}

.btn-outline {
    background: transparent;
    color: var(--text-primary);
    border-color: var(--border-light);
    padding: 10px 18px;
}

.btn-outline:hover {
    border-color: var(--accent);
    color: var(--accent);
}

.btn-primary .material-icons-round,
.btn-ghost .material-icons-round,
.btn-outline .material-icons-round {
    font-size: 16px;
    transition: transform var(--dur-base) var(--ease-out);
}

.btn-primary:hover .material-icons-round { transform: translateX(3px); }

.full-width { width: 100%; justify-content: center; }