*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

        body {
            font-family: 'Inter', sans-serif;
            background: #0f172a;
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 20px;
            position: relative;
            overflow: hidden;
        }

        /* Background decoration */
        body::before {
            content: '';
            position: fixed;
            top: -30%;
            left: -10%;
            width: 60%;
            height: 70%;
            background: radial-gradient(ellipse, rgba(99,102,241,.18) 0%, transparent 70%);
            pointer-events: none;
        }
        body::after {
            content: '';
            position: fixed;
            bottom: -20%;
            right: -10%;
            width: 50%;
            height: 60%;
            background: radial-gradient(ellipse, rgba(16,185,129,.12) 0%, transparent 70%);
            pointer-events: none;
        }

        .ext-wrap {
            width: 100%;
            max-width: 460px;
            position: relative;
            z-index: 1;
        }

        .ext-card {
            background: rgba(255,255,255,.04);
            border: 1px solid rgba(255,255,255,.1);
            border-radius: 20px;
            padding: 44px 40px 40px;
            backdrop-filter: blur(20px);
            box-shadow: 0 25px 50px rgba(0,0,0,.4);
        }

        .ext-brand {
            text-align: center;
        }
        .ext-brand img {
            height: 100px;
            filter: brightness(0) invert(1);
            opacity: .9;
        }

        .ext-title {
            text-align: center;
            font-size: 22px;
            font-weight: 700;
            color: #f1f5f9;
            margin-bottom: 6px;
            letter-spacing: -.3px;
        }
        .ext-subtitle {
            text-align: center;
            font-size: 13.5px;
            color: #94a3b8;
            margin-bottom: 28px;
            line-height: 1.5;
        }

        /* Type badges row */
        .ext-types {
            display: flex;
            gap: 8px;
            justify-content: center;
            margin-bottom: 28px;
            flex-wrap: wrap;
        }
        .ext-type-badge {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            padding: 4px 11px;
            border-radius: 20px;
            font-size: 11.5px;
            font-weight: 500;
            border: 1px solid;
        }
        .ext-type-badge.client    { background: rgba(59,130,246,.12); border-color: rgba(59,130,246,.3); color: #93c5fd; }
        .ext-type-badge.freelancer{ background: rgba(16,185,129,.12); border-color: rgba(16,185,129,.3); color: #6ee7b7; }
        .ext-type-badge.vendor    { background: rgba(245,158,11,.12);  border-color: rgba(245,158,11,.3);  color: #fcd34d; }
        .ext-type-badge.qa        { background: rgba(168,85,247,.12);  border-color: rgba(168,85,247,.3);  color: #d8b4fe; }

        /* Alert */
        .ext-alert {
            display: flex;
            align-items: flex-start;
            gap: 10px;
            padding: 12px 14px;
            border-radius: 10px;
            font-size: 13.5px;
            margin-bottom: 20px;
            line-height: 1.45;
        }
        .ext-alert i { margin-top: 1px; flex-shrink: 0; }
        .ext-alert-danger  { background: rgba(239,68,68,.12);  border: 1px solid rgba(239,68,68,.25);  color: #fca5a5; }
        .ext-alert-success { background: rgba(16,185,129,.12); border: 1px solid rgba(16,185,129,.25); color: #6ee7b7; }

        /* Form */
        .ext-field { margin-bottom: 18px; }
        .ext-label {
            display: block;
            font-size: 13px;
            font-weight: 500;
            color: #cbd5e1;
            margin-bottom: 7px;
        }
        .ext-input-wrap {
            position: relative;
        }
        .ext-input-icon {
            position: absolute;
            left: 14px;
            top: 50%;
            transform: translateY(-50%);
            color: #64748b;
            font-size: 14px;
            pointer-events: none;
        }
        .ext-input {
            width: 100%;
            padding: 11px 14px 11px 40px;
            background: rgba(255,255,255,.06);
            border: 1px solid rgba(255,255,255,.12);
            border-radius: 10px;
            color: #f1f5f9;
            font-size: 14.5px;
            font-family: 'Inter', sans-serif;
            transition: border-color .2s, background .2s;
            outline: none;
        }
        .ext-input::placeholder { color: #475569; }
        .ext-input:focus {
            border-color: rgba(99,102,241,.6);
            background: rgba(255,255,255,.09);
            box-shadow: 0 0 0 3px rgba(99,102,241,.15);
        }
        .ext-input.is-invalid {
            border-color: rgba(239,68,68,.5);
        }
        .ext-field-error {
            font-size: 12.5px;
            color: #f87171;
            margin-top: 6px;
        }

        /* Submit */
        .ext-btn {
            width: 100%;
            padding: 12px 20px;
            background: linear-gradient(135deg, #6366f1, #4f46e5);
            border: none;
            border-radius: 10px;
            color: #fff;
            font-size: 14.5px;
            font-weight: 600;
            font-family: 'Inter', sans-serif;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            transition: opacity .2s, transform .15s;
        }
        .ext-btn:hover  { opacity: .92; transform: translateY(-1px); }
        .ext-btn:active { transform: translateY(0); }
        .ext-btn:disabled { opacity: .6; cursor: not-allowed; transform: none; }

        .ext-divider {
            display: flex;
            align-items: center;
            gap: 12px;
            margin: 22px 0;
            color: #334155;
            font-size: 12px;
        }
        .ext-divider::before, .ext-divider::after {
            content: '';
            flex: 1;
            height: 1px;
            background: rgba(255,255,255,.08);
        }

        .ext-hint {
            background: rgba(255,255,255,.03);
            border: 1px solid rgba(255,255,255,.07);
            border-radius: 10px;
            padding: 13px 15px;
            font-size: 12.5px;
            color: #64748b;
            display: flex;
            gap: 9px;
            align-items: flex-start;
            line-height: 1.5;
        }
        .ext-hint i { color: #475569; margin-top: 1px; flex-shrink: 0; }

        /* Eye toggle button inside password field */
        .ext-eye-btn {
            position: absolute;
            right: 14px;
            top: 50%;
            transform: translateY(-50%);
            background: none;
            border: none;
            cursor: pointer;
            color: #64748b;
            font-size: 14px;
            padding: 0;
            line-height: 1;
        }
        .ext-eye-btn:hover { color: #94a3b8; }

        /* Password input needs right padding for eye button */
        input[type="password"].ext-input,
        input[type="text"].ext-input {
            padding-right: 40px;
        }

        /* Forgot password row */
        .ext-forgot-row {
            display: flex;
            justify-content: flex-end;
            margin-top: -10px;
            margin-bottom: 18px;
        }
        .ext-forgot-link {
            font-size: 12.5px;
            color: #818cf8;
            text-decoration: none;
            transition: color .15s;
        }
        .ext-forgot-link:hover { color: #a5b4fc; text-decoration: underline; }

        .ext-footer {
            text-align: center;
            margin-top: 24px;
            font-size: 12px;
            color: #334155;
        }

        @media (max-width: 480px) {
            .ext-card { padding: 32px 24px 28px; }
        }