

        /* 1. ESTILO "CLEAN & LIGHT" */
        .light-mode {
            --bg-main: #ffffff; 
            --card-bg: #ffffff; 
            --input-bg: #f8fafc;
            --text-main: #0f172a; 
            --text-muted: #64748b; 
            --border-color: #e2e8f0; 
            
            --brand-glow: color-mix(in srgb, var(--brand-green) 15%, transparent);
            --brand-glow-subtle: color-mix(in srgb, var(--brand-green) 5%, transparent);
            --card-shadow: 0 20px 40px rgba(0, 0, 0, 0.04), 0 1px 3px rgba(0,0,0,0.02);
            --card-top-line: linear-gradient(90deg, transparent, var(--brand-green), transparent);
            --btn-text: #ffffff;
            
            background-image: radial-gradient(circle at 50% -20%, var(--brand-glow-subtle), transparent 70%);
        }

        /* 2. ESTILO "PREMIUM ATMOSPHERIC DARK" */
        .dark-mode {
            --bg-main: #070b14; 
            --input-bg: #161e2e;
            --text-main: #e2e8f0; 
            --text-muted: #94a3b8; 
            --border-color: #212c40; 

            --card-bg: rgba(28, 36, 51, 0.9); 
            backdrop-filter: blur(15px);
            -webkit-backdrop-filter: blur(15px);
            
            --brand-glow: color-mix(in srgb, var(--brand-green) 25%, transparent);
            --brand-glow-subtle: color-mix(in srgb, var(--brand-green) 10%, transparent);
            --card-shadow: 0 0 50px rgba(0,0,0,0.4), inset 0 1px 1px rgba(255,255,255,0.02);
            --card-top-line: linear-gradient(90deg, transparent, var(--brand-green), transparent);
            --btn-text: #ffffff;

            background-image:
                radial-gradient(at 10% 20%, var(--brand-glow-subtle) 0px, transparent 50%),
                radial-gradient(at 90% 80%, rgba(30, 41, 59, 0.4) 0px, transparent 50%),
                linear-gradient(var(--bg-main), var(--bg-main));
        }

        /* 3. CSS ESTRUTURAL */
        * { box-sizing: border-box; }

        body { 
            font-family: var(--font-family); 
            background-color: var(--bg-main); 
            color: var(--text-main); 
            display: flex; justify-content: center; align-items: center; 
            min-height: 100vh; margin: 0; 
            background-size: 100% 100%;
            background-attachment: fixed;
            position: relative;
            transition: background-color 0.3s ease;
        }

        body::before {
            content: ''; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgdmlld0JveD0iMCAwIDYwIDYwIj48ZyBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGZpbGw9IiM5NGEzYjgiIGZpbGwtb3BhY2l0eT0iMC4wMiI+PHBhdGggZD0iTTM2IDM0djZoLTR2LTRoLTR2LTRoNHYtNGg0djRoNHY0aC00em0wLTQwaDR2NGgtNHY0aC00vi00aC00vi00aDR2LTRoNHY0em0wIDYwaDR2LTRoLTR2LTRoLTR2NGgtNHY0aDR2LTRoNHY0em0tMjQtNDBoNHY0aC00djRoLTR2LTRoLTR2LTRoNHYtNGg0djR6bS00IDYwaDR2LTRoLTR2LTRoLTR2NGgtNHY0aDR2LTRoNHY0em0tMjAtNDBoNHY0aC00djRoLTR2LTRoLTR2LTRoNHYtNGg0djR6bS00IDYwaDR2LTRoLTR2LTRoLTR2NGgtNHY0aDR2LTRoNHY0em00LTQwdjZoLTR2LTRoLTR2LTRoNHYtNGg0djRoNHY0aC00em0tMjAgMzR2Nmg0vi00aDR2LTRoLTR2LTRoLTR2LTRoNHYtNGg0djRoLTR2LTRoLTR2NHYtNHYtNHY0em0wLTIwVjZoLTR2LTRoLTR2LTRoNHYtNGg0djRoNHY0aC00em00LTQwdjZoLTR2LTRoLTR2LTRoNHYtNGg0djRoNHY0aC00eiIgLz482g+PC9nPjwvc3ZnPg==');
            background-size: 60px 60px;
            z-index: 1;
            opacity: 0.8;
        }

        .theme-switcher {
            position: fixed; top: 20px; right: 20px;
            background: var(--card-bg); border: 1px solid var(--border-color);
            color: var(--brand-green); width: 45px; height: 45px; border-radius: 12px;
            display: flex; align-items: center; justify-content: center;
            cursor: pointer; z-index: 100; transition: var(--transition);
            box-shadow: var(--card-shadow);
        }
        .theme-switcher:hover { transform: translateY(-3px); box-shadow: 0 5px 15px var(--brand-glow); }
        .theme-switcher i { font-size: 1.4rem; }
        
        .light-mode .theme-switcher #theme-icon-sun { display: none; }
        .dark-mode .theme-switcher #theme-icon-moon { display: none; }

        .login-wrapper { width: 100%; max-width: 440px; padding: 20px; z-index: 10; animation: fadeUp 0.6s ease-out forwards; }
        
        @keyframes fadeUp {
            from { opacity: 0; transform: translateY(20px); }
            to { opacity: 1; transform: translateY(0); }
        }

        .login-card { 
            background: var(--card-bg); padding: 45px 40px; border-radius: 24px; 
            box-shadow: var(--card-shadow); border: 1px solid var(--border-color); 
            position: relative; overflow: hidden; transition: var(--transition);
        }

        .login-card::before {
            content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
            background: var(--card-top-line);
        }

        .logo-container { text-align: center; margin-bottom: 35px; }
        .logo-img { max-width: 190px; max-height: 80px; object-fit: contain; height: auto; margin: 0 auto 20px auto; display: block; }
        .logo-container h2 { color: var(--text-main); margin: 0 0 5px 0; font-size: 1.7rem; font-weight: 800; letter-spacing: -0.5px; }
        .logo-container p { color: var(--text-muted); font-size: 0.95rem; margin: 0; font-weight: 400;}

        .erro-msg { 
            background: rgba(239, 68, 68, 0.08); color: var(--danger-red); 
            padding: 14px; border-radius: 12px; border: 1px solid rgba(239, 68, 68, 0.15);
            text-align: center; margin-bottom: 25px; font-weight: 500; font-size: 0.9rem;
            display: flex; align-items: center; justify-content: center; gap: 8px;
            animation: shake 0.4s ease-in-out;
        }
        @keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }

        .form-group { position: relative; margin-bottom: 20px; }
        .form-group i.icon-left { 
            position: absolute; left: 18px; top: 50%; transform: translateY(-50%); 
            color: var(--text-muted); font-size: 1.3rem; transition: var(--transition);
        }

        .form-group input { 
            width: 100%; padding: 16px 20px 16px 50px; 
            background: var(--input-bg); border: 1px solid var(--border-color); 
            color: var(--text-main); border-radius: 14px; 
            font-family: var(--font-family); font-size: 1rem; font-weight: 500;
            outline: none; transition: var(--transition);
        }
        .form-group input::placeholder { color: #5a6b82; font-weight: 300; }
        
        .form-group input:focus { 
            border-color: var(--brand-glow); 
            background: var(--card-bg);
            box-shadow: 0 0 10px var(--brand-glow-subtle); 
        }
        .form-group:focus-within i.icon-left { color: var(--brand-green); }

        .toggle-password {
            position: absolute; right: 15px; top: 50%; transform: translateY(-50%); 
            color: var(--text-muted); cursor: pointer; font-size: 1.3rem; 
            background: none; border: none; display: flex; padding: 5px; transition: var(--transition);
        }
        .toggle-password:hover { color: var(--text-main); }

        .btn-login { 
            width: 100%; padding: 16px; 
            background-color: var(--brand-green); color: var(--btn-text); 
            border: none; border-radius: 14px; cursor: pointer; 
            font-size: 1.05rem; font-weight: 700; letter-spacing: 0.5px;
            transition: var(--transition); margin-top: 15px; display: flex; 
            justify-content: center; align-items: center; gap: 10px;
            font-family: var(--font-family);
        }
        
        .btn-login:hover { 
            background-color: var(--brand-green-hover); 
            box-shadow: 0 0 30px var(--brand-glow); 
            transform: translateY(-2px);
        }
        .btn-login:active { transform: translateY(1px); }

        .login-footer { 
            text-align: center; margin-top: 30px; 
            color: #5a6b82; font-size: 0.85rem; font-weight: 500;
        }

        @media (max-width: 480px) {
            body { align-items: flex-start; padding-top: 10vh; background-image: none !important; }
            .login-card { padding: 40px 25px; border-radius: 20px; box-shadow: none !important; border: none !important; background: transparent !important; backdrop-filter: none !important;}
            .login-wrapper { padding: 0; }
            .logo-img { max-width: 170px; }
            .logo-container h2 { font-size: 1.5rem; }
            .theme-switcher { top: 10px; right: 10px; width: 40px; height: 40px; }
        }
    