        :root {
            --primary: #0288d1;
            --primary-light: #03a9f4;
            --primary-dark: #0277bd;
            --primary-rgb: 2, 136, 209;
            --radius-sm: 10px;
            --radius-md: 14px;
            --radius-lg: 20px;
            --radius-xl: 26px;
        }

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

        body {
            font-family: 'Plus Jakarta Sans', 'Segoe UI', sans-serif;
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            background: #e8f4fd;
            padding: 24px;
        }

        .login-main-page {
            background-image: url('../../images/bg-login.jpg');
            background-position: top center;
            background-size: cover;
            background-repeat: no-repeat;
            background-attachment: fixed;
            min-height: 100vh;
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 24px;
            position: fixed;
            inset: 0;
        }

        .login-main-page::after {
            content: '';
            position: absolute;
            inset: 0;
            background: rgba(1, 42, 74, 0.45);
            backdrop-filter: blur(2px);
        }

        .login-wrapper {
            position: relative;
            z-index: 1;
            width: 100%;
            max-width: 1040px;
            min-height: 600px;
            display: flex;
            border-radius: var(--radius-xl);
            overflow: hidden;
            box-shadow: 0 8px 16px rgba(0,0,0,0.18), 0 32px 72px rgba(0,0,0,0.28);
        }

        .login-aside-left {
            width: 44%;
            background:
                linear-gradient(160deg, rgba(1,87,155,0.82) 0%, rgba(2,136,209,0.78) 60%, rgba(3,169,244,0.72) 100%),
                url('../../images/bgs.png') center/cover no-repeat;
            padding: 52px 44px;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            position: relative;
            overflow: hidden;
        }

        .login-aside-left::before {
            content: '';
            position: absolute;
            width: 380px;
            height: 380px;
            border: 1.5px solid rgba(255,255,255,0.1);
            border-radius: 50%;
            top: -140px;
            right: -130px;
            pointer-events: none;
        }

        .login-aside-left::after {
            content: '';
            position: absolute;
            width: 240px;
            height: 240px;
            border: 1.5px solid rgba(255,255,255,0.08);
            border-radius: 50%;
            bottom: -70px;
            left: -60px;
            pointer-events: none;
        }

        .login-logo {
            display: flex;
            align-items: center;
            gap: 14px;
            text-decoration: none;
            position: relative;
            z-index: 2;
        }

        .login-logo img {
            width: 52px;
            height: 52px;
            object-fit: contain;
            border-radius: 14px;
            background: rgba(255,255,255,0.18);
            padding: 6px;
            border: 1px solid rgba(255,255,255,0.22);
        }

        .login-logo-text {
            font-size: 19px;
            font-weight: 700;
            color: #fff;
            letter-spacing: 0.4px;
        }

        .login-description {
            position: relative;
            z-index: 2;
            flex: 1;
            display: flex;
            flex-direction: column;
            justify-content: center;
            padding: 36px 0 24px;
        }

        .main-title {
            font-size: 30px;
            font-weight: 700;
            color: #fff;
            line-height: 1.28;
            margin-bottom: 16px;
            text-shadow: 0 2px 12px rgba(0,0,0,0.18);
        }

        .login-description > p {
            font-size: 14.5px;
            line-height: 1.72;
            color: rgba(255,255,255,0.84);
            margin-bottom: 26px;
        }

        .feature-pills {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-bottom: 30px;
        }

        .feature-pill {
            background: rgba(255,255,255,0.14);
            border: 1px solid rgba(255,255,255,0.24);
            border-radius: 100px;
            padding: 5px 15px;
            font-size: 12.5px;
            font-weight: 600;
            color: rgba(255,255,255,0.92);
            letter-spacing: 0.1px;
        }

        .social-icons {
            list-style: none;
            display: flex;
            gap: 10px;
        }

        .social-icons li a {
            width: 40px;
            height: 40px;
            background: rgba(255,255,255,0.13);
            border: 1px solid rgba(255,255,255,0.2);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: rgba(255,255,255,0.9);
            text-decoration: none;
            font-size: 14px;
            transition: background 0.22s, transform 0.22s;
        }

        .social-icons li a:hover {
            background: rgba(255,255,255,0.24);
            transform: translateY(-3px);
        }

        .bottom-privacy {
            position: relative;
            z-index: 2;
            font-size: 12px;
            color: rgba(255,255,255,0.52);
        }

        .bottom-privacy a {
            color: rgba(255,255,255,0.65);
            text-decoration: none;
            margin-right: 18px;
            transition: color 0.2s;
        }

        .bottom-privacy a:hover { color: rgba(255,255,255,0.9); }

        .bubbles {
            position: absolute;
            inset: 0;
            overflow: hidden;
            z-index: 0;
            pointer-events: none;
        }

        .bubbles span {
            position: absolute;
            display: block;
            bottom: -60px;
            background: rgba(255,255,255,0.1);
            border-radius: 14px;
            animation: floatUp 14s linear infinite;
        }

        .bubbles span:nth-child(1) { left: 8%;  width: 26px; height: 26px; animation-delay: 0s;   animation-duration: 14s; }
        .bubbles span:nth-child(2) { left: 23%; width: 40px; height: 40px; animation-delay: 2.5s; animation-duration: 16s; }
        .bubbles span:nth-child(3) { left: 43%; width: 34px; height: 34px; animation-delay: 5s;   animation-duration: 13s; }
        .bubbles span:nth-child(4) { left: 63%; width: 46px; height: 46px; animation-delay: 1.5s; animation-duration: 17s; }
        .bubbles span:nth-child(5) { left: 80%; width: 30px; height: 30px; animation-delay: 3.5s; animation-duration: 15s; }

        @keyframes floatUp {
            0%   { transform: translateY(0) rotate(0deg);      opacity: 0; }
            8%   { opacity: 0.25; }
            50%  { opacity: 0.45; }
            100% { transform: translateY(-720px) rotate(360deg); opacity: 0; }
        }

        .login-aside-right {
            flex: 1;
            padding: 56px 52px;
            display: flex;
            align-items: center;
            justify-content: center;
            background: #fff;
        }

        .auth-form-1 { width: 100%; max-width: 400px; }

        .form-eyebrow {
            font-size: 11px;
            font-weight: 700;
            letter-spacing: 1.8px;
            text-transform: uppercase;
            color: var(--primary);
            margin-bottom: 8px;
        }

        .dz-title {
            font-size: 27px;
            font-weight: 700;
            color: #0f172a;
            margin-bottom: 5px;
            line-height: 1.2;
        }

        .form-subtitle {
            font-size: 13.5px;
            color: #64748b;
            margin-bottom: 34px;
            line-height: 1.5;
        }

        .form-group { margin-bottom: 20px; }

        .form-group label {
            display: block;
            font-size: 12.5px;
            font-weight: 600;
            color: #475569;
            margin-bottom: 7px;
            letter-spacing: 0.15px;
        }

        .required { color: #ef4444; margin-left: 2px; }

        .form-control {
            width: 100%;
            height: 48px;
            padding: 0 16px;
            border: 1.5px solid #e2e8f0;
            border-radius: var(--radius-sm);
            font-size: 14.5px;
            font-family: inherit;
            color: #1e293b;
            background: #f8fafc;
            transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
            -webkit-appearance: none;
        }

        .form-control::placeholder { color: #b0bec5; }

        .form-control:focus {
            outline: none;
            border-color: var(--primary);
            background: #fff;
            box-shadow: 0 0 0 3.5px rgba(var(--primary-rgb), 0.13);
        }

        .password-wrapper { position: relative; }
        .password-wrapper .form-control { padding-right: 46px; }

        .toggle-password {
            position: absolute;
            right: 15px;
            top: 50%;
            transform: translateY(-50%);
            cursor: pointer;
            color: #94a3b8;
            font-size: 15px;
            transition: color 0.2s;
            user-select: none;
        }

        .toggle-password:hover { color: var(--primary); }

        .form-check-row {
            display: flex;
            align-items: center;
            margin-bottom: 26px;
        }

        .form-check-row input[type="checkbox"] {
            width: 16px;
            height: 16px;
            accent-color: var(--primary);
            cursor: pointer;
            margin-right: 9px;
            flex-shrink: 0;
        }

        .form-check-row label {
            font-size: 13px;
            color: #64748b;
            cursor: pointer;
        }

        .btn-primary {
            width: 100%;
            height: 50px;
            background: var(--primary);
            color: #fff;
            border: none;
            border-radius: var(--radius-sm);
            font-size: 15px;
            font-weight: 700;
            font-family: inherit;
            cursor: pointer;
            letter-spacing: 0.2px;
            transition: background 0.2s, transform 0.15s;
        }

        .btn-primary:hover { background: var(--primary-dark); }
        .btn-primary:active { transform: scale(0.98); }

        .or-divider {
            display: flex;
            align-items: center;
            gap: 12px;
            margin: 22px 0;
            color: #94a3b8;
            font-size: 12px;
            font-weight: 500;
        }

        .or-divider::before,
        .or-divider::after {
            content: '';
            flex: 1;
            height: 1px;
            background: #e9eef4;
        }

        #btnGoogleLogin {
            width: 100%;
            height: 48px;
            border: 1.5px solid #e2e8f0;
            border-radius: var(--radius-sm);
            background: #fff;
            color: #374151;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            font-family: inherit;
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
            transition: background 0.2s, border-color 0.2s;
        }

        #btnGoogleLogin:hover {
            background: #f8fafc;
            border-color: #cbd5e1;
        }

        #btnGoogleLogin img { width: 18px; height: 18px; }

        .new-account {
            text-align: center;
            margin-top: 24px;
            font-size: 13.5px;
            color: #64748b;
        }

        .new-account a {
            color: var(--primary);
            text-decoration: none;
            font-weight: 700;
        }

        .new-account a:hover { text-decoration: underline; }

        .helpdesk-float {
            position: fixed;
            bottom: 28px;
            right: 28px;
            width: 52px;
            height: 52px;
            background: var(--primary);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            box-shadow: 0 4px 18px rgba(var(--primary-rgb), 0.42);
            transition: transform 0.2s, box-shadow 0.2s;
            z-index: 1000;
            border: none;
        }

        .helpdesk-float:hover {
            transform: scale(1.1);
            box-shadow: 0 6px 24px rgba(var(--primary-rgb), 0.52);
        }

        .helpdesk-float i { color: #fff; font-size: 20px; }

        @media (max-width: 900px) {
            .login-aside-left { display: none; }
            .login-wrapper { max-width: 480px; border-radius: var(--radius-xl); }
            .login-aside-right { padding: 48px 36px; }
        }

        @media (max-width: 500px) {
            body { padding: 0; background: #fff; }
            .login-main-page { padding: 0; }
            .login-main-page::after { display: none; }
            .login-wrapper {
                border-radius: 0;
                min-height: 100vh;
                box-shadow: none;
            }
            .login-aside-right { padding: 48px 24px 36px; }
            .dz-title { font-size: 24px; }
        }
