:root {
    --tg-feedback-surface: rgba(56, 56, 56, 0.85);
    --tg-feedback-border: rgba(255, 255, 255, 0.08);
    --tg-feedback-shadow:
        0 8px 24px rgba(17, 24, 31, 0.14),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
    --tg-feedback-text: #f5f7fb;
    --tg-feedback-muted: rgba(245, 247, 251, 0.76);
}

.tg-snackbar,
.tg-toast,
.tg-callout,
.tg-form-card__alert,
.alert,
.swal-modal {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--tg-feedback-border);
    background: var(--tg-feedback-surface);
    box-shadow: none;
    color: var(--tg-feedback-text);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.tg-snackbar::before,
.tg-toast::before,
.tg-callout::before,
.tg-form-card__alert::before,
.alert::before {
    display: none;
}

.tg-snackbar::after,
.tg-toast::after,
.tg-callout::after,
.tg-form-card__alert::after,
.alert::after {
    display: none;
}

.swal-modal::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.03) 18%, rgba(255, 255, 255, 0) 44%);
    pointer-events: none;
}

.swal-modal::after {
    display: none;
}

.tg-snackbar,
.tg-toast,
.tg-callout,
.alert {
    --tg-feedback-accent: #4da3ff;
    display: flex;
    align-items: center;
    min-width: 0;
    border-radius: 24px;
    gap: 20px;
    padding: 20px 24px 20px 20px;
}

.tg-snackbar-list {
    display: grid;
    gap: 12px;
}

.tg-snackbar--inline,
.tg-snackbar--floating {
    width: 100%;
}

.tg-snackbar__icon-shell,
.tg-toast__icon-shell,
.tg-callout__icon-shell {
    position: relative;
    z-index: 1;
    display: inline-grid;
    place-items: center;
    flex: 0 0 40px;
    width: 40px;
    min-width: 40px;
    max-width: 40px;
    height: 40px;
    min-height: 40px;
    max-height: 40px;
    aspect-ratio: 1 / 1;
    border: 0;
    border-radius: 999px;
    background: var(--tg-feedback-accent);
    color: #fff;
    box-shadow: none;
}

.tg-snackbar--info .tg-snackbar__icon-shell,
.tg-snackbar--success .tg-snackbar__icon-shell,
.tg-snackbar--warning .tg-snackbar__icon-shell,
.tg-snackbar--danger .tg-snackbar__icon-shell,
.tg-snackbar--notice .tg-snackbar__icon-shell,
.tg-snackbar--muted .tg-snackbar__icon-shell,
.tg-toast--info .tg-toast__icon-shell,
.tg-toast--success .tg-toast__icon-shell,
.tg-toast--warning .tg-toast__icon-shell,
.tg-toast--danger .tg-toast__icon-shell {
    background: var(--tg-feedback-accent);
    color: #fff;
}

.tg-callout--warning .tg-callout__icon-shell,
.tg-callout--success .tg-callout__icon-shell,
.tg-callout--notice .tg-callout__icon-shell,
.tg-callout--muted .tg-callout__icon-shell {
    background: var(--tg-feedback-accent);
    color: #fff;
}

.tg-snackbar__body,
.tg-toast__body,
.tg-callout__body,
.swal-title,
.swal-text {
    position: relative;
    z-index: 1;
    min-width: 0;
    flex: 1 1 auto;
}

.tg-snackbar__text,
.tg-toast__text,
.tg-callout__text,
.tg-form-card__alert,
.alert,
.alert-heading {
    color: var(--tg-feedback-text);
}

.tg-snackbar--info,
.tg-snackbar--success,
.tg-snackbar--warning,
.tg-snackbar--danger,
.tg-snackbar--notice,
.tg-snackbar--muted,
.tg-toast--info,
.tg-toast--success,
.tg-toast--warning,
.tg-toast--danger,
.tg-callout--warning,
.tg-callout--success,
.tg-callout--notice,
.tg-callout--muted,
.alert-success,
.alert-warning,
.alert-danger,
.alert-info,
.alert-light {
    color: var(--tg-feedback-text);
}

.tg-snackbar__icon,
.tg-toast__icon,
.tg-callout__icon,
.tg-snackbar__close-icon,
.tg-toast__close-icon {
    width: 18px;
    height: 18px;
    stroke-width: 2.6px;
}

.tg-snackbar__text,
.tg-toast__text,
.tg-callout__text {
    font-size: 17px;
    line-height: 1.34;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.tg-toast {
    border-color: rgba(255, 255, 255, 0.1);
    color: var(--tg-feedback-text);
}

.tg-snackbar--info,
.tg-toast--info {
    --tg-feedback-accent: #3f9cff;
}

.tg-snackbar--success,
.tg-toast--success {
    --tg-feedback-accent: #34b36c;
}

.tg-snackbar--warning,
.tg-toast--warning {
    --tg-feedback-accent: #e8a63a;
}

.tg-snackbar--danger,
.tg-toast--danger {
    --tg-feedback-accent: #ef5844;
}

.tg-snackbar__close,
.tg-toast__close {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: rgba(245, 247, 251, 0.72);
    box-shadow: none;
    cursor: pointer;
}

.tg-snackbar__close:hover,
.tg-snackbar__close:focus,
.tg-toast__close:hover,
.tg-toast__close:focus {
    background: rgba(255, 255, 255, 0.08);
    color: var(--tg-feedback-text);
    outline: none;
}

.tg-snackbar--notice,
.tg-callout--notice {
    --tg-feedback-accent: #e8a63a;
}

.tg-snackbar--muted,
.tg-callout--muted {
    --tg-feedback-accent: #3f9cff;
}

.tg-callout {
    border-color: rgba(255, 255, 255, 0.1);
    color: var(--tg-feedback-text);
}

.tg-callout--warning {
    --tg-feedback-accent: #ef5844;
}

.tg-callout--success {
    --tg-feedback-accent: #34b36c;
}

.tg-form-card__alert {
    position: relative;
    z-index: 1;
    border-color: rgba(255, 255, 255, 0.1);
    border-radius: 20px;
    padding: 18px 20px;
    font-size: 15px;
    line-height: 1.45;
}

.alert {
    --tg-feedback-accent: #3f9cff;
    border-radius: 20px;
    padding: 18px 20px;
    color: var(--tg-feedback-text);
}

.alert-success {
    --tg-feedback-accent: #37b36b;
}

.alert-warning {
    --tg-feedback-accent: #efaa33;
}

.alert-danger {
    --tg-feedback-accent: #ef553f;
}

.alert-info,
.alert-light {
    --tg-feedback-accent: #3f9cff;
}

.alert a,
.alert .alert-link {
    color: inherit;
}

.swal-overlay {
    background: rgba(8, 12, 20, 0.34);
    backdrop-filter: blur(12px) saturate(145%);
    -webkit-backdrop-filter: blur(12px) saturate(145%);
}

.swal-modal {
    width: min(520px, calc(100vw - 24px));
    border-radius: 24px;
    color: var(--tg-feedback-text);
    padding-top: 6px;
}

.swal-title {
    color: var(--tg-feedback-text);
    font-size: 28px;
    letter-spacing: -0.02em;
    padding: 18px 24px 0;
}

.swal-text {
    color: var(--tg-feedback-muted);
    line-height: 1.55;
    max-width: min(100% - 32px, 420px);
    padding: 4px 0 0;
}

.swal-footer {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: stretch;
    justify-content: stretch;
    gap: 12px;
    flex-wrap: nowrap;
    background: transparent;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    margin-top: 18px;
    padding: 18px 20px 20px;
    text-align: initial;
}

.swal-button-container {
    flex: 1 1 0;
    margin: 0;
}

.swal-button {
    width: 100%;
    min-height: 52px;
    padding: 14px 18px;
    border: 0;
    border-radius: 16px;
    background: linear-gradient(180deg, #6ab6ff 0%, #4f92ea 100%);
    font-family: "SF Pro Text", "SF Pro Display", "Segoe UI Variable Text", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.015em;
    box-shadow:
        0 16px 32px rgba(79, 146, 234, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.24);
    transition:
        transform 0.2s ease,
        box-shadow 0.22s ease,
        background-color 0.22s ease,
        opacity 0.22s ease;
}

.swal-button:not([disabled]):hover {
    transform: translateY(-1px);
    box-shadow:
        0 20px 36px rgba(79, 146, 234, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.swal-button:not([disabled]):active {
    transform: translateY(0) scale(0.985);
}

.swal-button:focus {
    box-shadow:
        0 16px 32px rgba(79, 146, 234, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.24),
        0 0 0 4px rgba(106, 182, 255, 0.18);
}

.swal-button--cancel {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0.05) 100%),
        rgba(255, 255, 255, 0.06);
    color: var(--tg-feedback-text);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.14),
        0 10px 22px rgba(10, 14, 24, 0.16);
}

.swal-button--cancel:not([disabled]):hover {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        0 14px 28px rgba(10, 14, 24, 0.2);
}

.swal-button--cancel:focus {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.14),
        0 0 0 4px rgba(255, 255, 255, 0.08);
}

.swal-button--danger {
    background: linear-gradient(180deg, #ff8d83 0%, #f05f67 100%);
    box-shadow:
        0 16px 32px rgba(240, 95, 103, 0.26),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.swal-button--danger:not([disabled]):hover {
    box-shadow:
        0 20px 36px rgba(240, 95, 103, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.swal-overlay--show-modal .swal-modal {
    animation: tgSwalIn 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (max-width: 767.98px) {
    .swal-modal {
        width: min(92vw, 460px);
        border-radius: 22px;
    }

    .swal-title {
        font-size: 24px;
        padding: 16px 20px 0;
    }

    .swal-footer {
        gap: 10px;
        padding: 16px 16px 18px;
    }

    .alert,
    .tg-snackbar,
    .tg-toast,
    .tg-callout {
        border-radius: 20px;
        padding: 16px 18px;
        gap: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .swal-button,
    .swal-overlay,
    .swal-modal {
        transition: none;
        animation: none;
    }
}

@keyframes tgSwalIn {
    0% {
        opacity: 0;
        transform: translateY(18px) scale(0.94);
        filter: blur(14px);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
}
