body {
    font-family: Inter, sans-serif;

    background:
        radial-gradient(circle at top, rgba(var(--bs-primary-rgb), 0.08), transparent 45%), var(--bs-tertiary-bg);
}
a {
    text-decoration: none;
}

.toast {
    border: none;
}

.toast-body {
    font-weight: 500;
}

.custom-toast {
    min-width: 360px;
    max-width: 420px;

    color: #fff;
    border-radius: 14px;

    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(10px);
}

.custom-toast-danger {
    background-color: #dc3545;
}

.custom-toast-success {
    background-color: #198754;
}

.custom-toast-warning {
    background-color: #ffc107;
    color: #212529;
}

.custom-toast-info {
    background-color: #0dcaf0;
    color: #212529;
}

[data-bs-theme="dark"] body {
    background:
        radial-gradient(circle at top, rgba(var(--bs-primary-rgb), 0.12), transparent 45%), var(--bs-tertiary-bg);
}

/* ---------- Logo ---------- */

.logo {
    width: 52px;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.brand-my {
    color: var(--bs-body-color);
}

.brand-vpn {
    color: var(--bs-primary);
}

/* ---------- Card ---------- */

.card {
    overflow: hidden;

    border: none;
    border-radius: 22px;

    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);

    transition:
        transform 0.18s ease,
        box-shadow 0.18s ease;
}

.card:hover {
    transform: translateY(-3px);

    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.1);
}

/* ---------- Buttons ---------- */

.btn {
    transition:
        transform 0.12s,
        box-shadow 0.2s,
        background 0.2s;
}

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

    box-shadow: 0 8px 18px rgba(var(--bs-primary-rgb), 0.2);
}

.btn:active {
    transform: translateY(1px) scale(0.97);

    box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.12);
}

/* ---------- Theme button---------- */

.theme-btn {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    padding: 0;

    border-radius: 50%;

    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    border: 1px solid var(--bs-border-color);

    transition:
        transform 0.15s,
        background 0.2s;
}

.theme-btn:hover {
    transform: rotate(12deg);

    background: rgba(var(--bs-primary-rgb), 0.08);
}

.theme-btn:active {
    transform: scale(0.95);
}

/* ---------- Form controls ---------- */

.form-control {
    min-height: 52px;

    padding: 14px;

    border-radius: 14px;

    transition:
        border-color 0.2s,
        box-shadow 0.2s,
        transform 0.12s;
}
