#loginContainer, #registrationContainer {
    display: flex;
    flex-direction: column;
    justify-content: center;
    z-index: 2;
    position: relative;
}

body::before,
body::after {
    content: '';
    position: fixed;
    inset: -20vh -20vw;
    pointer-events: none;
    z-index: 0;
}

body::before {
    background:
        radial-gradient(900px 520px at 15% 20%, var(--tg-primary-soft) 0%, transparent 60%),
        radial-gradient(820px 520px at 85% 15%, rgba(42, 171, 238, 0.10) 0%, transparent 62%),
        radial-gradient(780px 540px at 70% 90%, rgba(29, 155, 240, 0.10) 0%, transparent 62%);
    filter: blur(1px);
}

body::after {
    background:
        radial-gradient(640px 420px at 25% 85%, rgba(42, 171, 238, 0.08) 0%, transparent 60%),
        radial-gradient(520px 380px at 90% 70%, rgba(42, 171, 238, 0.06) 0%, transparent 62%);
    opacity: 0.9;
}

.loginContainer,
.registrationContainer {
    max-width: 420px;
    margin: 0 auto;
    padding: 24px;
    border-radius: var(--tg-radius-lg);
    background-color: var(--tg-surface);
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.00) 100%);
    border: 1px solid rgba(148, 163, 184, 0.22);
    box-shadow: var(--tg-shadow);
    box-sizing: border-box;
}

.loginContainer {
    position: relative;
}

.registrationContainer {
    position: relative;
}

.loginContainer .titlePage,
.registrationContainer .titlePage,
.registrationContainer #h1Page {
    margin-top: 0;
    margin-bottom: 16px;
    text-align: center;
}

.loginContainer .form-control,
.registrationContainer .form-control {
    height: 44px;
    border-radius: 12px;
    border-color: var(--tg-border);
    background-color: var(--tg-surface);
    color: var(--tg-text);
}

.loginContainer .input-group,
.registrationContainer .input-group {
    align-items: stretch;
}

.loginContainer .input-group-text,
.registrationContainer .input-group-text {
    background-color: rgba(148, 163, 184, 0.10);
    border-color: var(--tg-border);
    color: var(--tg-muted);
    border-top-left-radius: 12px;
    border-bottom-left-radius: 12px;
}

.loginContainer .input-group .form-control,
.registrationContainer .input-group .form-control {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.loginContainer .input-group-text i,
.registrationContainer .input-group-text i {
    font-size: 16px;
    line-height: 1;
}

.loginContainer .form-control:focus,
.registrationContainer .form-control:focus {
    border-color: rgba(42, 171, 238, 0.55);
    box-shadow: var(--tg-focus);
}

.loginContainer .input-group:focus-within .input-group-text,
.registrationContainer .input-group:focus-within .input-group-text {
    border-color: rgba(42, 171, 238, 0.55);
    color: var(--tg-primary);
}

.loginContainer .form-label,
.registrationContainer .form-label {
    font-weight: 600;
    color: var(--tg-text);
}

.loginContainer .form-group,
.registrationContainer .form-group {
    margin-top: 12px;
}

.loginContainer .help-block,
.registrationContainer .help-block,
.loginContainer .invalid-feedback,
.registrationContainer .invalid-feedback {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    color: #b91c1c;
}

.loginContainer .form-text,
.registrationContainer .form-text {
    margin-top: 6px;
    font-size: 13px;
    color: var(--tg-muted);
    line-height: 1.35;
}

.loginContainer .help-block,
.registrationContainer .help-block {
    line-height: 1.35;
}

.loginContainer .has-error .form-control,
.registrationContainer .has-error .form-control,
.loginContainer .is-invalid,
.registrationContainer .is-invalid {
    border-color: rgba(239, 68, 68, 0.65);
    box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.12);
}

.loginContainer .btn,
.registrationContainer .btn {
    width: 100%;
    height: 44px;
    border-radius: 12px;
    font-weight: 600;
}

.loginContainer .btn.btn-primary,
.registrationContainer .btn.btn-primary {
    border: 0;
    background: linear-gradient(90deg, var(--tg-primary) 0%, var(--tg-primary-2) 100%);
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.16);
}

.loginContainer .btn.btn-primary:hover,
.registrationContainer .btn.btn-primary:hover {
    filter: brightness(1.05);
    transform: translateY(-1px);
}

.loginContainer .btn.btn-primary:active,
.registrationContainer .btn.btn-primary:active {
    transform: translateY(0px);
    box-shadow: 0 6px 14px rgba(15, 23, 42, 0.14);
}

.loginContainer p,
.registrationContainer p {
    margin-top: 14px;
    text-align: center;
    color: var(--tg-muted);
}

#registrationContainer {
    display: none;
    transition: opacity 0.3s;
    opacity: 0;
}

@media (max-width: 576px) {
    .loginContainer,
    .registrationContainer {
        max-width: 100%;
        margin: 0 12px;
        padding: 18px;
        border-radius: 18px;
    }

    .loginContainer .titlePage,
    .registrationContainer .titlePage,
    .registrationContainer #h1Page {
        font-size: 24px;
    }
}