.btn {
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-weight: 700;
    letter-spacing: 0.01em;
    padding: 12px 18px;
    transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

.btn:hover {
    transform: translateY(-1px);
}

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

.btn-primary {
    background: linear-gradient(130deg, var(--brand-500), var(--brand-700));
    color: #f7fbff;
    box-shadow: 0 14px 24px rgba(21, 85, 216, 0.35);
}

.btn-primary:hover {
    filter: brightness(1.07);
}

.btn-ghost {
    background: #ffffff;
    color: #1a4ea9;
    border: 1px solid rgba(91, 137, 218, 0.35);
}

.btn-block {
    width: 100%;
}

.input,
.select {
    width: 100%;
    border-radius: var(--radius-sm);
    border: 1px solid rgba(111, 151, 220, 0.45);
    background: #ffffff;
    color: #173a77;
    padding: 11px 12px;
}

.input:focus,
.select:focus {
    outline: 0;
    border-color: rgba(95, 148, 255, 0.95);
    box-shadow: 0 0 0 3px rgba(46, 107, 235, 0.25);
}

.status-message {
    margin: 10px 0 0;
    min-height: 20px;
    color: #40649a;
    font-size: 13px;
}

.status-message.is-error {
    color: var(--danger);
}

.status-message.is-success {
    color: var(--success);
}
