/* ===== Auth Layout ===== */
    .pp-auth-page {
        min-height: 100vh;
        min-height: 100dvh;
        display: flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(160deg, #0d0d1f 0%, #16103a 45%, #0a1628 100%);
        font-family: 'Plus Jakarta Sans', sans-serif;
        overflow-x: hidden;
        position: relative;
        padding: 24px;
    }

    /* Floating orb animations */
    .pp-auth-page::before {
        content: '';
        position: fixed;
        top: -20%;
        right: -10%;
        width: min(600px, 80vw);
        height: min(600px, 80vw);
        background: radial-gradient(circle, rgba(34,211,238,0.12) 0%, transparent 70%);
        border-radius: 50%;
        pointer-events: none;
        animation: ppFloatOrb 8s ease-in-out infinite;
    }
    .pp-auth-page::after {
        content: '';
        position: fixed;
        bottom: -20%;
        left: -10%;
        width: min(500px, 70vw);
        height: min(500px, 70vw);
        background: radial-gradient(circle, rgba(167,139,250,0.1) 0%, transparent 70%);
        border-radius: 50%;
        pointer-events: none;
        animation: ppFloatOrb 10s ease-in-out infinite reverse;
    }
    .pp-auth-orb-3 {
        position: fixed;
        top: 50%;
        left: 30%;
        width: 350px;
        height: 350px;
        background: radial-gradient(circle, rgba(34,211,238,0.06) 0%, transparent 70%);
        border-radius: 50%;
        pointer-events: none;
        animation: ppFloatOrb 12s ease-in-out infinite 2s;
    }
    @keyframes ppFloatOrb {
        0%, 100% { transform: translate(0, 0); }
        50% { transform: translate(30px, -20px); }
    }

    /* Two-column layout */
    .pp-auth-wrapper {
        position: relative;
        z-index: 1;
        width: 100%;
        max-width: 1000px;
        display: grid;
        grid-template-columns: 1.1fr 1fr;
        border-radius: 28px;
        overflow: hidden;
        background: rgba(16,12,46,0.6);
        backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);
        border: 1px solid rgba(34,211,238,0.1);
        box-shadow: 0 12px 60px rgba(0,0,0,0.5), 0 0 80px rgba(34,211,238,0.04);
    }

    /* Left side — gradient + background image */
    .pp-auth-visual {
        background: linear-gradient(135deg, rgba(34,211,238,0.2), rgba(167,139,250,0.2)),
                    url("/static/img/ai-background-1.f6a8b4ea2451.webp") center/cover;
        background-size: cover;
        min-height: 520px;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        padding: 40px 36px;
        position: relative;
        overflow: hidden;
    }
    .pp-auth-visual::before {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg, rgba(13,13,31,0.5) 0%, rgba(13,13,31,0.75) 40%, rgba(13,13,31,0.95) 100%);
    }
    .pp-auth-visual-content {
        position: relative;
        z-index: 1;
        background: rgba(13,13,31,0.5);
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
        border-radius: 16px;
        padding: 24px;
        border: 1px solid rgba(255,255,255,0.05);
    }
    .pp-auth-visual-title {
        font-size: 1.6rem;
        font-weight: 900;
        color: #fff;
        margin-bottom: 10px;
        line-height: 1.25;
    }
    .pp-auth-visual-title span {
        background: linear-gradient(135deg, #22d3ee, #34d399);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
    }
    .pp-auth-visual-desc {
        font-size: 0.88rem;
        color: rgba(255,255,255,0.6);
        line-height: 1.6;
    }
    .pp-auth-visual-features {
        margin-top: 20px;
        display: flex;
        flex-direction: column;
        gap: 10px;
    }
    .pp-auth-visual-feature {
        display: flex;
        align-items: center;
        gap: 12px;
        font-size: 0.82rem;
        color: rgba(255,255,255,0.7);
    }
    .pp-auth-visual-feature i {
        color: #22d3ee;
        font-size: 0.7rem;
        width: 24px;
        height: 24px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: rgba(34,211,238,0.1);
        border-radius: 50%;
        flex-shrink: 0;
    }

    /* Right side — form content */
    .pp-auth-form-side {
        padding: 48px 40px;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    /* Brand in form */
    .pp-auth-brand {
        text-align: center;
        margin-bottom: 28px;
    }
    .pp-auth-logo-icon {
        width: 56px;
        height: 56px;
        border-radius: 16px;
        overflow: hidden;
        margin: 0 auto 14px;
    }
    .pp-auth-brand-name {
        font-size: 1.5rem;
        font-weight: 900;
        color: #22d3ee;
        margin-bottom: 4px;
        letter-spacing: -0.01em;
    }
    .pp-auth-brand-tagline {
        font-size: 0.82rem;
        color: rgba(255,255,255,0.45);
        font-weight: 500;
    }
    .pp-auth-brand-company {
        font-size: 0.65rem;
        font-weight: 700;
        color: rgba(255,255,255,0.25);
        margin-top: 8px;
        text-transform: uppercase;
        letter-spacing: 0.08em;
    }
    .pp-auth-brand-ssm {
        font-size: 0.58rem;
        color: rgba(255,255,255,0.15);
        margin-top: 2px;
    }
    .pp-auth-brand-ssm i {
        margin-right: 2px;
    }

    /* Django Messages in auth */
    .pp-auth-form-side .ps-messages { margin-bottom: 16px; }

    /* Auth footer */
    .pp-auth-footer {
        text-align: center;
        margin-top: 24px;
        padding-top: 20px;
        border-top: 1px solid rgba(255,255,255,0.06);
    }
    .pp-auth-footer a {
        color: #22d3ee;
        text-decoration: none;
        font-size: 0.88rem;
        font-weight: 700;
        transition: color 0.2s;
    }
    .pp-auth-footer a:hover {
        color: #67e8f9;
    }
    .pp-auth-footer-text {
        font-size: 0.82rem;
        color: rgba(255,255,255,0.35);
        margin-bottom: 6px;
    }

    /* Company footer */
    .pp-auth-company {
        text-align: center;
        margin-top: 20px;
        font-size: 0.72rem;
        color: rgba(255,255,255,0.2);
    }
    .pp-auth-company p { margin: 0; }
    .pp-auth-company strong { color: rgba(255,255,255,0.35); }
    .pp-auth-company small { font-size: 0.62rem; }

    /* ===== Responsive ===== */

    /* Tablet — hide visual, center form */
    @media (max-width: 768px) {
        .pp-auth-page { padding: 16px; }
        .pp-auth-wrapper {
            grid-template-columns: 1fr;
            max-width: 460px;
            border-radius: 24px;
        }
        .pp-auth-visual {
            display: none;
        }
        .pp-auth-form-side {
            padding: 36px 28px;
        }
    }

    /* Small phone */
    @media (max-width: 400px) {
        .pp-auth-page { padding: 12px; }
        .pp-auth-wrapper { border-radius: 20px; }
        .pp-auth-form-side { padding: 28px 20px; }
        .pp-auth-brand-name { font-size: 1.3rem; }
        .pp-auth-logo-icon { width: 48px; height: 48px; }
        .pp-auth-orb-3 { display: none; }
    }

    /* Safe area for notch phones */
    @supports(padding: env(safe-area-inset-bottom)) {
        @media (max-width: 768px) {
            .pp-auth-page {
                padding-bottom: calc(16px + env(safe-area-inset-bottom));
                padding-top: calc(16px + env(safe-area-inset-top));
            }
        }
    }
