:root { --pp-accent: var(--auth-accent); --pp-accent-strong: var(--auth-accent-strong); }

/* —— 登录 / 验证 页（Auth）现代化 —— */
        :root {
            --auth-surface: #ffffff;
            --auth-surface-muted: #f8fafc;
            --auth-border: #e5e7eb;
            --auth-border-strong: #cbd5e1;
            --auth-text: #0f172a;
            --auth-text-muted: #475569;
            --auth-text-subtle: #64748b;
            --auth-accent: #0369a1;
            --auth-accent-strong: #0c4a6e;
            --auth-ink: #0f172a;
            --auth-ink-soft: #1e293b;
        }

        body:has(.auth-shell) {
            background:
                radial-gradient(120% 80% at 85% -10%, #e0e7f0 0%, rgba(224, 231, 240, 0) 55%),
                radial-gradient(90% 60% at 5% 110%, #e6eef7 0%, rgba(230, 238, 247, 0) 60%),
                #f5f5f8;
        }

        .container:has(.auth-shell) {
            padding: 2rem 1.5rem;
        }

        .auth-shell {
            width: 100%;
            max-width: 960px;
            display: grid;
            grid-template-columns: 1.05fr 1fr;
            background: var(--auth-surface);
            border: 1px solid var(--auth-border);
            border-radius: 20px;
            overflow: hidden;
            box-shadow:
                0 1px 2px rgba(15, 23, 42, 0.04),
                0 24px 60px -28px rgba(15, 23, 42, 0.28);
        }

        /* —— Hero（品牌介绍侧） —— */
        .auth-hero {
            position: relative;
            padding: 2.25rem 2.25rem 2rem;
            color: #0f172a;
            background:
                radial-gradient(120% 70% at 110% -10%, rgba(14, 165, 233, 0.22) 0%, rgba(14, 165, 233, 0) 58%),
                radial-gradient(90% 65% at -20% 110%, rgba(125, 211, 252, 0.34) 0%, rgba(125, 211, 252, 0) 60%),
                linear-gradient(155deg, rgba(240, 249, 255, 0.96) 0%, rgba(224, 242, 254, 0.78) 48%, rgba(248, 250, 252, 0.94) 100%);
            border-right: 1px solid rgba(186, 230, 253, 0.7);
            overflow: hidden;
            display: flex;
            flex-direction: column;
            isolation: isolate;
        }

        .auth-hero::before {
            content: "";
            position: absolute;
            inset: 0;
            background-image:
                linear-gradient(to right, rgba(14, 116, 144, 0.08) 1px, transparent 1px),
                linear-gradient(to bottom, rgba(14, 116, 144, 0.08) 1px, transparent 1px);
            background-size: 28px 28px;
            mask-image: radial-gradient(120% 80% at 20% 10%, #000 10%, rgba(0, 0, 0, 0) 85%);
            -webkit-mask-image: radial-gradient(120% 80% at 20% 10%, #000 10%, rgba(0, 0, 0, 0) 85%);
            opacity: 0.72;
            pointer-events: none;
            z-index: 0;
        }

        .auth-hero > * {
            position: relative;
            z-index: 1;
        }

        .auth-hero__brand {
            display: inline-flex;
            align-items: center;
            gap: 0.65rem;
        }

        .auth-hero__mark {
            width: 2.25rem;
            height: 2.25rem;
            border-radius: 10px;
            background: linear-gradient(135deg, #38bdf8 0%, #0369a1 70%, #0c4a6e 100%);
            color: #f8fafc;
            font-weight: 700;
            font-size: 1.1rem;
            letter-spacing: -0.02em;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            box-shadow:
                0 1px 0 rgba(255, 255, 255, 0.34) inset,
                0 10px 24px -12px rgba(3, 105, 161, 0.55);
        }

        .auth-hero__brandtext {
            display: flex;
            flex-direction: column;
            line-height: 1.15;
        }

        .auth-hero__brandtitle {
            font-weight: 700;
            font-size: 0.95rem;
            color: #0f172a;
            letter-spacing: -0.01em;
        }

        .auth-hero__brandsub {
            font-size: 0.72rem;
            color: #0369a1;
            letter-spacing: 0.08em;
            text-transform: uppercase;
            font-weight: 500;
        }

        .auth-hero__body {
            margin-top: 2.25rem;
            flex: 1;
            display: flex;
            flex-direction: column;
            min-width: 0;
        }

        .auth-hero__eyebrow {
            display: inline-flex;
            align-items: center;
            gap: 0.45rem;
            font-size: 0.72rem;
            font-weight: 600;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: #0369a1;
            margin-bottom: 0.75rem;
        }

        .auth-hero__eyebrow::before {
            content: "";
            width: 1.25rem;
            height: 1px;
            background: linear-gradient(to right, rgba(3, 105, 161, 0.9), rgba(3, 105, 161, 0));
        }

        .auth-hero__title {
            font-size: 1.9rem;
            line-height: 1.2;
            font-weight: 700;
            letter-spacing: -0.025em;
            color: #0f172a;
            margin: 0 0 0.75rem;
            text-align: left;
        }

        .auth-hero__desc {
            font-size: 0.92rem;
            line-height: 1.6;
            color: #334155;
            margin: 0 0 1.5rem;
            max-width: 32ch;
        }

        .auth-hero__features {
            list-style: none;
            margin: 0 0 1rem;
            padding: 0;
            display: flex;
            flex-direction: column;
            gap: 0.65rem;
        }

        .auth-hero__features li {
            display: flex;
            align-items: flex-start;
            gap: 0.65rem;
            font-size: 0.875rem;
            line-height: 1.45;
            color: #1e293b;
        }

        .auth-hero__features svg {
            flex-shrink: 0;
            width: 1.05rem;
            height: 1.05rem;
            margin-top: 0.15rem;
            color: #0284c7;
        }

        .auth-hero__footer {
            margin: auto 0 0;
            padding-top: 1.25rem;
            font-size: 0.72rem;
            letter-spacing: 0.02em;
            color: #64748b;
        }

        /* —— 表单面板侧 —— */
        .auth-panel {
            padding: 2.25rem 2.25rem 2rem;
            display: flex;
            flex-direction: column;
            background: var(--auth-surface);
            min-width: 0;
        }

        .auth-panel__head {
            margin-bottom: 1.5rem;
        }

        .auth-panel__eyebrow {
            display: inline-block;
            font-size: 0.72rem;
            font-weight: 600;
            letter-spacing: 0.14em;
            text-transform: uppercase;
            color: var(--auth-accent);
            margin-bottom: 0.55rem;
        }

        .auth-panel__title {
            font-size: 1.6rem;
            line-height: 1.2;
            font-weight: 700;
            letter-spacing: -0.02em;
            color: var(--auth-text);
            margin: 0 0 0.5rem;
            text-align: left;
        }

        .auth-panel__desc {
            margin: 0;
            font-size: 0.9rem;
            line-height: 1.6;
            color: var(--auth-text-muted);
        }

        .auth-panel__desc strong {
            color: var(--auth-text);
            font-weight: 600;
            word-break: break-all;
        }

        .auth-form {
            display: flex;
            flex-direction: column;
            gap: 1.1rem;
        }

        .auth-form .form-group {
            margin: 0;
        }

        .auth-form label {
            display: block;
            margin-bottom: 0.4rem;
            font-size: 0.82rem;
            font-weight: 600;
            color: var(--auth-text);
            letter-spacing: 0.01em;
        }

        .auth-form input[type="text"],
        .auth-form input[type="email"] {
            width: 100%;
            padding: 0.75rem 0.95rem;
            background: var(--auth-surface-muted);
            border: 1px solid var(--auth-border);
            border-radius: 12px;
            color: var(--auth-text);
            font-size: 0.95rem;
            line-height: 1.3;
            transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
        }

        .auth-form input[type="text"]:focus,
        .auth-form input[type="email"]:focus {
            outline: none;
            background: #ffffff;
            border-color: var(--auth-accent);
            box-shadow: 0 0 0 3px rgba(3, 105, 161, 0.15);
        }

        .auth-form .qq-email-input {
            display: flex;
            align-items: stretch;
            gap: 0;
            background: var(--auth-surface-muted);
            border: 1px solid var(--auth-border);
            border-radius: 12px;
            padding: 0;
            overflow: hidden;
            transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
        }

        .auth-form .qq-email-input:focus-within {
            background: #ffffff;
            border-color: var(--auth-accent);
            box-shadow: 0 0 0 3px rgba(3, 105, 161, 0.15);
        }

        .auth-form .qq-email-input input {
            flex: 1;
            min-width: 0;
            border: none;
            background: transparent;
            padding: 0.75rem 0.95rem;
            border-radius: 0;
            font-size: 0.95rem;
            box-shadow: none;
        }

        .auth-form .qq-email-input input:focus {
            outline: none;
            box-shadow: none;
            background: transparent;
        }

        .auth-form .qq-email-suffix {
            display: inline-flex;
            align-items: center;
            padding: 0 0.95rem;
            font-size: 0.88rem;
            font-weight: 500;
            color: var(--auth-text-muted);
            background: rgba(15, 23, 42, 0.03);
            border-left: 1px solid var(--auth-border);
            white-space: nowrap;
            letter-spacing: 0.01em;
        }

        .auth-form .form-hint {
            display: block;
            margin-top: 0.45rem;
            font-size: 0.78rem;
            line-height: 1.45;
            color: var(--auth-text-subtle);
        }

        /* 6 位验证码大字号输入 */
        .auth-code-input {
            text-align: center;
            letter-spacing: 0.6em;
            padding-left: 1rem !important;
            padding-right: 0.4rem !important;
            font-size: 1.35rem !important;
            font-weight: 600 !important;
            font-variant-numeric: tabular-nums;
            font-feature-settings: "tnum" 1;
        }

        .auth-form .auth-code-input {
            padding: 0.9rem 1rem !important;
        }

        /* 主提交按钮 */
        .auth-form button,
        .auth-submit {
            width: 100%;
            padding: 0.85rem 1rem;
            background: var(--pp-accent);
            color: #f0f9ff;
            border: 1px solid transparent;
            border-radius: 12px;
            font-size: 0.95rem;
            font-weight: 600;
            letter-spacing: 0.01em;
            cursor: pointer;
            transition: background 0.18s ease, transform 0.08s ease, box-shadow 0.18s ease;
            box-shadow: none;
        }

        .auth-form button:hover,
        .auth-submit:hover {
            background: var(--pp-accent-strong, #075985);
        }

        .auth-form button:active,
        .auth-submit:active {
            transform: translateY(1px);
        }

        .auth-form button:focus-visible,
        .auth-submit:focus-visible {
            outline: none;
            box-shadow: 0 0 0 3px rgba(3, 105, 161, 0.22);
        }

        /* 次级 / 重新发送按钮 */
        .auth-panel .auth-resend-form {
            margin-top: 0.9rem;
        }

        .auth-resend-form button,
        .auth-link-btn {
            width: 100%;
            padding: 0.7rem 1rem;
            background: #ffffff;
            color: var(--auth-text);
            border: 1px solid var(--auth-border-strong);
            border-radius: 12px;
            font-size: 0.88rem;
            font-weight: 600;
            letter-spacing: 0.01em;
            cursor: pointer;
            transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
            box-shadow: none;
        }

        .auth-resend-form button:hover,
        .auth-link-btn:hover {
            background: var(--auth-surface-muted);
            border-color: var(--auth-ink);
            color: var(--auth-ink);
        }

        .auth-resend-form button:focus-visible,
        .auth-link-btn:focus-visible {
            outline: none;
            border-color: var(--auth-accent);
            box-shadow: 0 0 0 3px rgba(3, 105, 161, 0.18);
        }

        /* 错误条 */
        .auth-error {
            display: flex;
            align-items: flex-start;
            gap: 0.6rem;
            margin: 0 0 1.25rem;
            padding: 0.75rem 0.9rem;
            border-radius: 12px;
            background: #fef2f2;
            border: 1px solid #fecaca;
            color: #b91c1c;
            font-size: 0.88rem;
            line-height: 1.5;
        }

        .auth-error svg {
            flex-shrink: 0;
            width: 1.1rem;
            height: 1.1rem;
            margin-top: 0.1rem;
            color: #dc2626;
        }

        .auth-panel__meta {
            margin: 1.35rem 0 0;
            padding-top: 1.1rem;
            border-top: 1px dashed var(--auth-border);
            font-size: 0.78rem;
            line-height: 1.55;
            color: var(--auth-text-subtle);
        }

        .auth-panel__meta a {
            color: var(--auth-accent);
            text-decoration: none;
            font-weight: 600;
        }

        .auth-panel__meta a:hover {
            text-decoration: underline;
        }


@media (max-width: 860px) {
    .container:has(.auth-shell) {
        padding: 1.25rem 1rem;
        align-items: stretch;
    }

    .auth-shell {
        grid-template-columns: 1fr;
        max-width: 520px;
        margin: 0 auto;
    }

    .auth-hero {
        padding: 1.75rem 1.75rem 1.5rem;
        border-right: 0;
        border-bottom: 1px solid rgba(186, 230, 253, 0.75);
    }

    .auth-hero__body {
        margin-top: 1.5rem;
    }

    .auth-hero__title {
        font-size: 1.55rem;
    }

    .auth-hero__desc {
        max-width: none;
    }

    .auth-hero__features,
    .auth-hero__footer {
        display: none;
    }

    .auth-panel {
        padding: 1.75rem;
    }

    .auth-panel__title {
        font-size: 1.4rem;
    }
}

@media (max-width: 420px) {
    .auth-hero,
    .auth-panel {
        padding-left: 1.35rem;
        padding-right: 1.35rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .auth-form input,
    .auth-form button,
    .auth-submit,
    .auth-resend-form button,
    .auth-link-btn {
        transition: none;
    }
}
