    :root {
        --ink: #0b1220;
        --muted: #5b6b7f;
        --accent: #1e40af;
        --accent-2: #1e3a8a;
        --mobile-accent: #0284c7;
        --mobile-accent-2: #075985;
        --card: rgba(255, 255, 255, 0.92);
        --line: rgba(15, 23, 42, 0.12);
        --shadow: 0 30px 80px rgba(15, 23, 42, 0.2);
    }

    html {
        overflow-x: hidden;
    }

    * {
        box-sizing: border-box;
    }

    body {
        font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
        background:
            radial-gradient(1200px 600px at 10% -10%, #e0e9ff 0%, rgba(224, 233, 255, 0) 60%),
            radial-gradient(900px 600px at 110% 10%, #d6e2ff 0%, rgba(214, 226, 255, 0) 55%),
            #f3f5f9;
        min-height: 100vh;
        display: flex;
        flex-direction: column;
        color: var(--ink);
        position: relative;
        overflow-x: hidden;
        padding-bottom: 60px;
    }

    body::before,
    body::after {
        content: '';
        position: fixed;
        width: 420px;
        height: 420px;
        border-radius: 50%;
        filter: blur(60px);
        opacity: 0.35;
        z-index: 0;
        pointer-events: none;
    }

    body::before {
        background: #93c5fd;
        top: -120px;
        right: -100px;
    }

    body::after {
        background: #60a5fa;
        bottom: -160px;
        left: -160px;
    }

    .top-left-logo {
        position: absolute;
        top: 18px;
        left: 18px;
        width: 190px;
        height: auto;
        z-index: 2;
    }

    .footer-logo {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 10;
        background: rgba(5, 8, 20, 0.92);
        backdrop-filter: blur(10px);
        border-top: 1px solid rgba(255, 255, 255, 0.055);
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        padding: 10px 16px;
        font-size: 0.75rem;
        color: rgba(255, 255, 255, 0.55);
    }

    .auth-card {
        background: var(--card);
        border-radius: 24px;
        box-shadow: var(--shadow);
        border: 1px solid rgba(255, 255, 255, 0.7);
        backdrop-filter: blur(12px);
        position: relative;
        z-index: 1;
        animation: floatIn 0.6s ease;
    }

    .auth-title {
        font-family: 'Space Grotesk', system-ui, sans-serif;
        letter-spacing: -0.02em;
    }

    .spinner {
        display: inline-block;
        width: 14px;
        height: 14px;
        border: 2px solid rgba(255, 255, 255, 0.4);
        border-top-color: #fff;
        border-radius: 50%;
        animation: spin 0.65s linear infinite;
    }

    .spinner-dark {
        border-color: rgba(30, 64, 175, 0.25);
        border-top-color: var(--accent-2);
    }

    @keyframes spin {
        to {
            transform: rotate(360deg);
        }
    }

    .step-panel {
        transition: opacity 0.25s ease, transform 0.25s ease;
    }

    .step-panel.hidden {
        display: none;
    }

    .step-dot {
        width: 34px;
        height: 34px;
        border-radius: 999px;
        background: rgba(15, 23, 42, 0.08);
        color: rgba(15, 23, 42, 0.45);
        font-weight: 700;
        font-size: 0.75rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        transition: transform 0.2s, background 0.2s, color 0.2s;
    }

    .step-dot.active {
        background: linear-gradient(135deg, var(--accent), #2563eb);
        color: #fff;
        transform: scale(1.02);
    }

    .step-dot.done {
        background: var(--accent-2);
        color: #fff;
    }

    .step-line {
        flex: 1;
        height: 3px;
        background: rgba(15, 23, 42, 0.1);
        border-radius: 999px;
        overflow: hidden;
    }

    .step-line-fill {
        height: 100%;
        width: 0%;
        background: linear-gradient(90deg, var(--accent), var(--accent-2));
        transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .otp-input {
        letter-spacing: 0.5em;
        font-size: 1.4rem;
        text-align: center;
        font-variant-numeric: tabular-nums;
    }

    .otp-input::placeholder {
        letter-spacing: 0.2em;
        font-size: 0.9rem;
    }

    .input-field {
        width: 100%;
        padding: 0.7rem 0.85rem 0.7rem 2.35rem;
        border: 1px solid var(--line);
        border-radius: 12px;
        font-size: 0.9rem;
        transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
        outline: none;
        background: #fff;
        color: var(--ink);
    }

    .input-field:focus {
        border-color: var(--accent-2);
        box-shadow: 0 0 0 4px rgba(30, 64, 175, 0.16);
        transform: translateY(-1px);
    }

    .input-field.error {
        border-color: #ef4444;
        box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.1);
    }

    .btn-primary {
        width: 100%;
        padding: 0.75rem 1rem;
        border-radius: 12px;
        font-size: 0.9rem;
        font-weight: 600;
        color: #fff;
        border: none;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        background: linear-gradient(135deg, var(--accent), #2563eb);
        box-shadow: 0 12px 30px rgba(30, 64, 175, 0.3);
        transition: transform 0.15s, box-shadow 0.15s, filter 0.15s;
    }

    .btn-primary:hover:not(:disabled) {
        transform: translateY(-1px);
        box-shadow: 0 16px 40px rgba(30, 64, 175, 0.35);
    }

    .btn-primary:disabled {
        background: #d1d5db;
        cursor: not-allowed;
        box-shadow: none;
    }

    .btn-secondary {
        width: 100%;
        padding: 0.75rem 1rem;
        border-radius: 12px;
        font-size: 0.9rem;
        font-weight: 600;
        color: #fff;
        border: none;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        background: linear-gradient(135deg, #1e3a8a, #1d4ed8);
        box-shadow: 0 12px 30px rgba(30, 58, 138, 0.3);
        transition: transform 0.15s, box-shadow 0.15s, filter 0.15s;
    }

    .btn-secondary:hover:not(:disabled) {
        transform: translateY(-1px);
        box-shadow: 0 16px 40px rgba(30, 58, 138, 0.35);
    }

    .btn-secondary:disabled {
        background: #d1d5db;
        cursor: not-allowed;
        box-shadow: none;
    }

    .brand-panel {
        background: linear-gradient(135deg, #0f1a3d 0%, #14265e 45%, #1d4ed8 100%);
        color: #f8fafc;
    }

    .brand-panel .text-red-200 {
        color: rgba(248, 250, 252, 0.7);
    }

    @keyframes floatIn {
        from {
            opacity: 0;
            transform: translateY(18px) scale(0.98);
        }

        to {
            opacity: 1;
            transform: translateY(0) scale(1);
        }
    }

    .verify-card {
        border: 2px solid var(--line);
        border-radius: 16px;
        padding: 1.25rem;
        transition: border-color 0.3s, box-shadow 0.3s;
        background: #fff;
    }

    .verify-card.verified {
        border-color: #22c55e;
        background: #f0fdf4;
        box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.15);
    }

    .verify-card .card-header {
        display: flex;
        align-items: center;
        gap: 0.6rem;
        margin-bottom: 0.75rem;
    }

    .verify-card .card-icon {
        width: 36px;
        height: 36px;
        border-radius: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 0.85rem;
        flex-shrink: 0;
    }

    .verify-card .check-badge {
        width: 22px;
        height: 22px;
        border-radius: 50%;
        background: #22c55e;
        color: #fff;
        display: none;
        align-items: center;
        justify-content: center;
        font-size: 0.6rem;
        margin-left: auto;
        flex-shrink: 0;
    }

    .verify-card.verified .check-badge {
        display: flex;
    }

    .verify-card .otp-row {
        display: flex;
        gap: 0.5rem;
        align-items: stretch;
    }

    .verify-card .otp-row input {
        flex: 1;
        min-width: 0;
    }

    .verify-card .otp-row button {
        padding: 0 1rem;
        border-radius: 10px;
        font-size: 0.8rem;
        font-weight: 600;
        color: #fff;
        border: none;
        cursor: pointer;
        white-space: nowrap;
        transition: transform 0.15s, box-shadow 0.15s;
    }

    .verify-card .otp-row button:disabled {
        background: #d1d5db;
        cursor: not-allowed;
        box-shadow: none;
    }

    .verify-card .timer-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-top: 0.6rem;
        font-size: 0.75rem;
    }

    .verified-overlay {
        display: none;
        align-items: center;
        gap: 0.5rem;
        padding: 0.5rem 0;
        color: #16a34a;
        font-weight: 600;
        font-size: 0.85rem;
    }

    .verify-card.verified .otp-section {
        display: none;
    }

    .verify-card.verified .verified-overlay {
        display: flex;
    }

    @media (max-width: 768px) {
        .top-left-logo {
            width: 130px;
        }

        .max-w-5xl {
            max-width: 100%;
            margin-top: 60px;
            margin-bottom: 16px;
        }

        .right-panel {
            display: none;
        }

        .auth-card {
            border-radius: 18px;
        }
    }
