.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.625rem 1rem;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    font-weight: 100;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s ease;
    min-width: 9rem;
    min-height: 2.75rem;
    line-height: 1.2;
    text-align: center;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
}

.button:hover,
.button:focus-visible {
    transform: translateY(-1px);
    box-shadow: var(--shadow);
    outline: none;
}

.button:active {
    transform: translateY(0);
}

.button-primary {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}

.button-secondary {
    background: var(--secondary);
    border-color: var(--secondary);
    color: #fff;
}

.button-success {
    background: var(--success, var(--success-dark));
    border-color: var(--success, var(--success-dark));
    color: #fff;
}

.button-warning {
    background: var(--warning, var(--warning-dark));
    border-color: var(--warning, var(--warning-dark));
    color: #fff;
}

.button-danger {
    background: var(--danger, var(--danger-dark));
    border-color: var(--danger, var(--danger-dark));
    color: #fff;
}

.button-info {
    background: var(--info, var(--info-dark));
    border-color: var(--info, var(--info-dark));
    color: #fff;
}

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

.button-dark {
    background: var(--text);
    border-color: var(--text);
    color: var(--surface);
}
a.button,
button.button,
input.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;

    min-width: 9rem;
    width: 9rem;
    height: 2.75rem;

    padding: 0.625rem 1rem;
    border-radius: var(--radius-md);

    line-height: 1.2;
    text-align: center;
    appearance: none;
    -webkit-appearance: none;
}