        :root {
            color-scheme: dark light;
            --accent-rgb: var(--sgc-auth-accent-rgb, var(--sgc-accent-rgb, 85, 217, 255));
            --bg-start: var(--sgc-auth-bg-start, #03111f);
            --bg-mid: var(--sgc-auth-bg-mid, #061826);
            --bg-end: var(--sgc-auth-bg-end, #04101b);
            --card: var(--sgc-auth-card, rgba(8, 22, 38, 0.9));
            --border: var(--sgc-auth-border, var(--sgc-border, rgba(122, 200, 255, 0.24)));
            --field-bg: var(--sgc-auth-field-bg, rgba(3, 14, 24, 0.92));
            --field-bg-hover: var(--sgc-auth-field-bg-hover, rgba(7, 19, 33, 0.96));
            --menu-bg: var(--sgc-auth-menu-bg, rgba(2, 11, 19, 0.97));
            --text: var(--sgc-auth-text, var(--sgc-ink-text, #eaf7ff));
            --muted: var(--sgc-auth-muted, var(--sgc-ink-muted, rgba(214, 233, 245, 0.72)));
            --label: var(--sgc-auth-label, #c5e4f8);
            --brand: var(--sgc-auth-brand, var(--sgc-ink-text, #c7ecff));
            --accent: var(--sgc-auth-accent, var(--sgc-accent, #55d9ff));
            --danger: var(--sgc-auth-danger, #ff8ea0);
            --ok: var(--sgc-auth-ok, #7effc4);
            --brand-login-bg: none;
            --shadow: 0 22px 44px rgba(0, 0, 0, 0.34);
        }

        html[data-mode='dark'] {
            color-scheme: dark;
        }

        html[data-mode='light'] {
            color-scheme: light;
            --bg-start: #f8fbff;
            --bg-mid: #eef4fb;
            --bg-end: #e6edf8;
            --card: rgba(255, 255, 255, 0.92);
            --border: rgba(15, 23, 42, 0.12);
            --field-bg: rgba(248, 250, 252, 0.94);
            --field-bg-hover: rgba(241, 245, 249, 0.98);
            --menu-bg: rgba(255, 255, 255, 0.98);
            --text: #0f172a;
            --muted: #475569;
            --label: #334155;
            --brand: #0f172a;
            --danger: #dc2626;
            --ok: #16a34a;
            --shadow: 0 22px 44px rgba(15, 23, 42, 0.12);
        }

        * {
            box-sizing: border-box;
        }

        body {
            margin: 0;
            min-height: 100vh;
            min-height: 100svh;
            min-height: 100dvh;
            font-family: "Manrope", "Segoe UI", sans-serif;
            color: var(--text);
            background:
                linear-gradient(160deg, rgba(3, 17, 31, 0.62), rgba(6, 24, 38, 0.72)),
                var(--brand-login-bg),
                radial-gradient(circle at 15% 10%, rgba(var(--accent-rgb), 0.18), transparent 35%),
                radial-gradient(circle at 84% 12%, rgba(var(--accent-rgb), 0.1), transparent 32%),
                linear-gradient(160deg, var(--bg-start) 0%, var(--bg-mid) 45%, var(--bg-end) 100%);
            background-position: center, center, center, center, center;
            background-size: cover, cover, auto, auto, auto;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: max(20px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
            overflow-x: hidden;
        }

        body.auth-screen [popover] {
            inset: auto !important;
            margin: 0 !important;
            padding: 0 !important;
            border: 0 !important;
            border-radius: 0 !important;
            background: transparent !important;
            box-shadow: none !important;
            overflow: visible !important;
            min-width: 0 !important;
            min-height: 0 !important;
            max-width: none !important;
            max-height: none !important;
            color-scheme: inherit !important;
        }

        body.auth-screen [popover]::backdrop {
            display: none !important;
            background: transparent !important;
        }

        body.auth-screen [popover] iframe {
            background: transparent !important;
            border: 0 !important;
            box-shadow: none !important;
        }

        .auth {
            width: 100%;
            max-width: 420px;
            border: 1px solid var(--border);
            border-radius: 16px;
            background: var(--card);
            padding: 26px;
            box-shadow: var(--shadow);
        }

        .auth-head {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            gap: 12px;
            margin-bottom: 14px;
        }

        .brand {
            display: inline-flex;
            align-items: center;
            gap: 12px;
            margin: 0;
            font: 700 14px/1.3 "IBM Plex Mono", monospace;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            color: var(--brand);
        }

        .brand img {
            width: 34px;
            height: 34px;
            border-radius: 12px;
            object-fit: cover;
            border: 1px solid rgba(var(--accent-rgb), 0.24);
            background: rgba(var(--accent-rgb), 0.08);
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
        }

        h1 {
            margin: 0 0 16px;
            max-width: 100%;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            font-size: clamp(18px, 4.8vw, 26px);
            line-height: 1.15;
            letter-spacing: -0.01em;
        }

        .auth-head-actions {
            margin-left: auto;
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }

        .lang-picker {
            position: relative;
        }

        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            white-space: nowrap;
            border: 0;
        }

        .lang-trigger {
            width: 42px;
            height: 34px;
            padding: 0;
            border-radius: 10px;
            border: 1px solid var(--border);
            background: var(--field-bg);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            text-transform: none;
            letter-spacing: normal;
            font: 600 12px/1 "IBM Plex Mono", monospace;
            color: var(--text);
            box-shadow: none;
        }

        .lang-trigger:hover {
            border-color: rgba(var(--accent-rgb), 0.45);
            background: var(--field-bg-hover);
        }

        .mode-toggle {
            position: relative;
            width: 58px;
            height: 34px;
            padding: 0;
            border-radius: 10px;
            border: 1px solid var(--border);
            background: linear-gradient(180deg, rgba(var(--accent-rgb), 0.12), rgba(255, 255, 255, 0.02));
            display: inline-flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            overflow: hidden;
            transition: border-color 0.18s ease, background 0.18s ease;
        }

        .mode-toggle:hover {
            border-color: rgba(var(--accent-rgb), 0.45);
            background: linear-gradient(180deg, rgba(var(--accent-rgb), 0.18), rgba(255, 255, 255, 0.04));
        }

        .mode-toggle:focus-visible {
            border-color: rgba(var(--accent-rgb), 0.6);
            box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.13);
            outline: none;
        }

        .mode-toggle-track {
            position: relative;
            width: 100%;
            height: 100%;
        }

        .mode-toggle-thumb {
            position: absolute;
            top: 3px;
            left: 3px;
            width: 26px;
            height: 26px;
            border-radius: 8px;
            background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(226,232,240,0.92));
            box-shadow: 0 8px 18px rgba(2, 6, 23, 0.22);
            transition: transform 0.22s ease, background 0.22s ease;
        }

        .mode-toggle-icon {
            position: absolute;
            top: 50%;
            width: 14px;
            height: 14px;
            transform: translateY(-50%);
            color: var(--muted);
            z-index: 1;
            transition: color 0.18s ease, opacity 0.18s ease;
            pointer-events: none;
        }

        .mode-toggle-icon svg {
            width: 100%;
            height: 100%;
            display: block;
        }

        .mode-toggle-icon-sun {
            left: 9px;
        }

        .mode-toggle-icon-moon {
            right: 9px;
        }

        .mode-toggle.is-light .mode-toggle-thumb {
            transform: translateX(0);
            background: linear-gradient(180deg, #ffffff, #e2e8f0);
        }

        .mode-toggle.is-dark .mode-toggle-thumb {
            transform: translateX(26px);
            background: linear-gradient(180deg, rgba(15, 23, 42, 0.96), rgba(30, 41, 59, 0.92));
        }

        .mode-toggle.is-light .mode-toggle-icon-sun,
        .mode-toggle.is-dark .mode-toggle-icon-moon {
            color: var(--text);
            opacity: 1;
        }

        .mode-toggle.is-light .mode-toggle-icon-moon,
        .mode-toggle.is-dark .mode-toggle-icon-sun {
            opacity: 0.74;
        }

        .lang-trigger:focus-visible {
            border-color: rgba(var(--accent-rgb), 0.6);
            box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.13);
            outline: none;
        }

        .lang-flag {
            width: 18px;
            height: 14px;
            border-radius: 2px;
            object-fit: cover;
            border: 1px solid rgba(255, 255, 255, 0.22);
            background: rgba(4, 13, 20, 0.8);
        }

        .lang-menu {
            position: absolute;
            right: 0;
            top: calc(100% + 8px);
            min-width: 160px;
            padding: 4px;
            border-radius: 12px;
            border: 1px solid var(--border);
            background: var(--menu-bg);
            box-shadow: 0 14px 30px rgba(0, 0, 0, 0.36);
            z-index: 30;
        }

        .lang-option {
            width: 100%;
            height: auto;
            border: 0;
            border-radius: 8px;
            padding: 8px 10px;
            display: flex;
            align-items: center;
            gap: 8px;
            color: var(--text);
            background: transparent;
            text-transform: none;
            letter-spacing: normal;
            font: 600 12px/1.25 "IBM Plex Mono", monospace;
            text-align: left;
            cursor: pointer;
        }

        .lang-option:hover {
            background: rgba(var(--accent-rgb), 0.14);
        }

        .lang-option.active {
            background: rgba(var(--accent-rgb), 0.16);
            color: var(--text);
        }

        .banner {
            min-height: 18px;
            margin-bottom: 12px;
            color: var(--muted);
            font-size: 14px;
            line-height: 1.45;
        }

        .banner.error {
            color: var(--danger);
        }

        .banner.info {
            color: var(--muted);
        }

        .field {
            display: grid;
            gap: 6px;
            margin-bottom: 12px;
        }

        .auth-input-shell {
            position: relative;
            display: block;
            overflow: hidden;
            border-radius: 10px;
            isolation: isolate;
        }

        .auth-input-shell::before {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: 10px;
            border: 1px solid var(--border);
            background: var(--field-bg);
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.02);
        }

        .auth-input-shell > :not(input):not([popover]),
        .auth-input-shell > [popover]:not(:popover-open) {
            position: absolute !important;
            top: 1px !important;
            bottom: 1px !important;
            right: 0 !important;
            left: auto !important;
            transform: none !important;
            z-index: 3 !important;
            max-height: none;
            height: auto !important;
            border: 0 !important;
            border-radius: 0 10px 10px 0 !important;
            background: transparent !important;
            box-shadow: none !important;
            margin: 0 !important;
            padding: 0 !important;
        }

        .auth-input-shell > iframe,
        .auth-input-shell > [popover]:not(:popover-open) {
            width: auto !important;
            min-width: 0 !important;
            background: transparent !important;
            overflow: visible !important;
        }

        .auth-input-shell > [popover]:popover-open {
            top: auto !important;
            right: auto !important;
            bottom: auto !important;
            left: auto !important;
            height: auto !important;
            border-radius: 0 !important;
            z-index: 40 !important;
        }

        .auth-input-shell > :not(input):not([popover]) *,
        .auth-input-shell > [popover]:not(:popover-open) * {
            background: transparent !important;
            background-image: none !important;
            box-shadow: none !important;
            border-color: transparent !important;
            margin-right: 0 !important;
        }

        label {
            font: 600 12px/1 "IBM Plex Mono", monospace;
            letter-spacing: 0.1em;
            text-transform: uppercase;
            color: var(--label);
        }

        input {
            width: 100%;
            height: 46px;
            border-radius: 10px;
            border: 1px solid var(--border);
            background: var(--field-bg);
            color: var(--text);
            padding: 0 13px;
            font-size: 15px;
            outline: none;
            appearance: none;
        }

        .auth-input-shell input {
            position: relative;
            z-index: 1;
            border-color: transparent;
            background: transparent;
            box-shadow: none;
            padding-right: 13px;
        }

        .auth-input-shell:focus-within::before {
            border-color: rgba(var(--accent-rgb), 0.6);
            box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.13);
        }

        input:-webkit-autofill,
        input:-webkit-autofill:hover,
        input:-webkit-autofill:focus {
            -webkit-text-fill-color: var(--text);
            box-shadow: inset 0 0 0 1000px var(--field-bg), 0 0 0 1px transparent;
            transition: background-color 9999s ease-in-out 0s;
        }

        input::-ms-reveal,
        input::-ms-clear,
        input::-webkit-credentials-auto-fill-button,
        input::-webkit-contacts-auto-fill-button {
            display: none !important;
            visibility: hidden;
            pointer-events: none;
        }

        input:focus {
            border-color: rgba(var(--accent-rgb), 0.6);
            box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.13);
        }

        .auth-input-shell input:focus {
            border-color: transparent;
            box-shadow: none;
        }

        .actions {
            margin-top: 8px;
        }

        .social-auth {
            margin-top: 18px;
            display: grid;
            gap: 10px;
        }

        .social-auth[hidden] {
            display: none;
        }

        .social-divider {
            position: relative;
            display: grid;
            place-items: center;
            min-height: 20px;
            margin-bottom: 2px;
        }

        .social-divider::before {
            content: '';
            position: absolute;
            left: 0;
            right: 0;
            top: 50%;
            height: 1px;
            background: linear-gradient(90deg, transparent 0%, rgba(var(--accent-rgb), 0.28) 18%, rgba(var(--accent-rgb), 0.28) 82%, transparent 100%);
        }

        .social-divider span {
            position: relative;
            z-index: 1;
            padding: 0 10px;
            background: var(--card);
            color: var(--muted);
            font: 600 11px/1 "IBM Plex Mono", monospace;
            letter-spacing: 0.1em;
            text-transform: uppercase;
        }

        .social-grid {
            display: grid;
            grid-template-columns: 1fr;
            gap: 7px;
        }

        .social-btn {
            width: 100%;
            height: 42px;
            border-radius: 10px;
            border: 1px solid rgba(var(--accent-rgb), 0.35);
            background: linear-gradient(135deg, rgba(7, 22, 38, 0.98), rgba(4, 13, 24, 0.98));
            color: var(--text);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            font: 600 13px/1.1 "Manrope", "Segoe UI", sans-serif;
            letter-spacing: 0.01em;
            text-transform: none;
            cursor: pointer;
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.22);
            transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
        }

        .social-btn[data-provider='google'] {
            background: linear-gradient(135deg, #ffffff 0%, #eef5ff 100%);
            color: #0f172a;
            border-color: rgba(255, 255, 255, 0.85);
        }

        .social-btn[data-provider='telegram'] {
            background: linear-gradient(135deg, #2ca5e0 0%, #1f7fcf 100%);
            color: #f5fbff;
            border-color: rgba(130, 212, 255, 0.78);
        }

        .social-btn[data-provider='steam'] {
            background: linear-gradient(135deg, #1b2838 0%, #0d1724 100%);
            color: #e6f3ff;
            border-color: rgba(121, 181, 227, 0.52);
        }

        .social-btn[data-provider='discord'] {
            background: linear-gradient(135deg, #5865f2 0%, #3843be 100%);
            color: #f4f6ff;
            border-color: rgba(153, 168, 255, 0.62);
        }

        .social-btn[data-provider='github'] {
            background: linear-gradient(135deg, #1f2937 0%, #111827 100%);
            color: #f4f7ff;
            border-color: rgba(183, 194, 214, 0.44);
        }

        .social-btn:hover {
            border-color: rgba(var(--accent-rgb), 0.52);
            transform: translateY(-1px);
            box-shadow: 0 14px 26px rgba(0, 0, 0, 0.3);
            filter: brightness(1.04);
        }

        .social-btn:focus-visible {
            border-color: rgba(var(--accent-rgb), 0.7);
            box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.24);
            outline: none;
        }

        .social-btn-icon {
            width: 22px;
            height: 22px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex: 0 0 22px;
            border-radius: 7px;
            background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(236, 244, 255, 0.96));
            border: 1px solid rgba(15, 23, 42, 0.2);
            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78), 0 2px 6px rgba(0, 0, 0, 0.22);
        }

        .social-btn-icon img {
            width: 15px;
            height: 15px;
            object-fit: contain;
            display: block;
            filter: none;
        }

        .social-btn-label {
            white-space: nowrap;
        }

        button {
            width: 100%;
            height: 48px;
            border: 0;
            border-radius: 10px;
            cursor: pointer;
            font: 700 14px/1 "IBM Plex Mono", monospace;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            color: #042132;
            background: linear-gradient(135deg, var(--accent), #17b8ff);
        }

        button:disabled {
            opacity: 0.72;
            cursor: wait;
        }

        .totp-step {
            display: none;
        }

        .totp-step.active {
            display: block;
        }

        .footer {
            position: fixed;
            left: 0;
            right: 0;
            bottom: max(14px, env(safe-area-inset-bottom));
            padding: 0 max(16px, env(safe-area-inset-right)) 0 max(16px, env(safe-area-inset-left));
            color: var(--muted);
            font-size: 12px;
            line-height: 1.5;
            text-align: center;
            pointer-events: none;
        }

        @media (max-width: 760px), (max-height: 760px) {
            body {
                align-items: flex-start;
                justify-content: flex-start;
            }

            .auth {
                margin-top: clamp(18px, 6vh, 44px);
                max-width: 100%;
                padding: 22px 18px;
            }

            h1 {
                white-space: normal;
            }

            .footer {
                position: static;
                margin-top: 14px;
                padding: 0;
            }
        }
