/* Google UI Variables */ :root { --google-blue: #1a73e8; --google-blue-dark: #1669c1; --google-grey-text: #202124; --google-grey-subtle: #5f6368; --google-grey-background: #f1f3f4; --google-white: #fff; --google-border-color: #dadce0; --google-shadow-1: 0 1px 2px 0 rgba(60,64,67,.3), 0 1px 3px 1px rgba(60,64,67,.15); /* Standard card shadow */ --google-shadow-2: 0 4px 8px 3px rgba(60,64,67,.15), 0 6px 12px 0 rgba(60,64,67,.15); /* Slightly lifted shadow on hover/focus */ --ripple-color: rgba(0, 0, 0, 0.08); /* Light ripple for white backgrounds */ --ripple-color-dark: rgba(255, 255, 255, 0.3); /* Dark ripple for blue backgrounds */ /* Increased curvature variable */ --large-border-radius: 24px; /* More prominent curve */ --input-border-radius: 8px; /* Standard Google input curve */ --button-border-radius: 8px; /* Standard Google button curve */ } /* Base Styles */ html, body { height: 100%; margin: 0; font-family: 'Google Sans', sans-serif; background-color: var(--google-grey-background); color: var(--google-grey-text); display: flex; justify-content: center; align-items: center; overflow: hidden; /* Prevent scrollbars */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; box-sizing: border-box; /* Include padding/border in element's total width/height */ } /* Mobile-first approach: Container fills width, adapts on larger screens */ .google-login-wrapper { width: 100%; /* Take full width on mobile */ max-width: 480px; /* Max width for tablets/desktops to keep it centered */ height: 100%; /* Take full height on mobile for the "reaching edges" effect */ display: flex; align-items: center; /* Center content vertically */ justify-content: center; /* Center content horizontally */ padding: 0; /* No horizontal padding on wrapper for edge-to-edge */ /* Only on larger screens, add some padding around the wrapper */ @media (min-width: 600px) { padding: 24px; /* Space around the box on larger screens */ height: auto; /* Auto height on larger screens */ } } /* Google Login Box Container */ .google-login-container { background-color: var(--google-white); border-radius: var(--large-border-radius); box-shadow: none; padding: 48px 16px 36px; /* Slightly reduced side padding for mobile */ text-align: center; width: 100vw; /* Full viewport width */ max-width: 100vw; /* Ensures it doesn’t exceed the viewport */ margin: 0; /* Remove side margin */ box-sizing: border-box; position: relative; animation: fadeInScale 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) forwards; transform-origin: center; border: 1px solid var(--google-border-color); overflow-y: auto; max-height: 95vh; } /* Styles for larger screens */ @media (min-width: 600px) { .google-login-container { border-radius: var(--large-border-radius); /* Keep the larger border-radius for desktop */ box-shadow: var(--google-shadow-1); /* Standard card shadow on desktop */ border: 1px solid var(--google-border-color); /* Subtle border on desktop */ padding: 48px 40px 36px; /* Restore desktop padding */ max-width: 450px; /* Limit max-width on desktop */ margin: auto; /* Center on desktop */ height: auto; /* Auto height on desktop */ } } /* Header Section of the Login Box */ .google-login-header { display: flex; flex-direction: column; align-items: center; margin-bottom: 24px; } /* --- MODIFIED for GIF --- */ .google-login-icon { width: 80px; /* Adjust width as needed for your GIF */ height: 80px; /* Adjust height as needed for your GIF */ margin-bottom: 16px; } /* --- END MODIFIED --- */ .google-login-title { font-size: 24px; font-weight: 500; color: var(--google-grey-text); margin-bottom: 8px; line-height: 1.3333; } .google-login-subtitle { font-size: 16px; color: var(--google-grey-subtle); line-height: 1.5; margin-top: 0; } /* Input Fields */ .input-group { margin-bottom: 20px; position: relative; } .google-input { width: 100%; padding: 13px 15px; border: 1px solid var(--google-border-color); border-radius: 20px; /* Using Google standard radius */ font-family: 'Google Sans', sans-serif; font-size: 16px; color: var(--google-grey-text); box-sizing: border-box; transition: border-color 0.2s ease, box-shadow 0.2s ease; -webkit-appearance: none; -moz-appearance: none; appearance: none; } .google-input:focus { outline: none; border-color: var(--google-blue); box-shadow: 0 0 0 1px var(--google-blue); } .input-label { position: absolute; left: 15px; top: 13px; color: #80868b; font-size: 16px; pointer-events: none; transition: all 0.2s ease; background-color: var(--google-white); padding: 0 4px; transform-origin: left top; z-index: 1; } .google-input:focus + .input-label, .google-input:not(:placeholder-shown) + .input-label { top: -9px; font-size: 12px; color: var(--google-blue); transform: translateX(-4px); z-index: 2; } /* Submit Button */ .google-button { background-color: var(--google-blue); color: var(--google-white); padding: 10px 24px; border: none; border-radius: 20px; /* Using Google standard radius */ cursor: pointer; font-family: 'Google Sans', sans-serif; font-size: 16px; font-weight: 500; transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease; outline: none; min-width: 96px; box-sizing: border-box; display: inline-flex; justify-content: center; align-items: center; position: relative; overflow: hidden; -webkit-tap-highlight-color: transparent; width: 30%; } .google-button:hover { background-color: var(--google-blue-dark); box-shadow: var(--google-shadow-1); } .google-button:focus-visible { box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.4); } .google-button:active { transform: translateY(1px); } /* Ripple Effect */ .ripple { position: absolute; border-radius: 50%; background-color: var(--ripple-color-dark); transform: scale(0); animation: ripple 1.2s linear forwards; /* Increased duration to 1.2s for slower animation */ opacity: 1; } /* Ripple for elements with white background (e.g., clickable cards if any) */ .ripple.light { background-color: var(--ripple-color); } @keyframes ripple { to { transform: scale(4); opacity: 0; } } /* Animations */ @keyframes fadeInScale { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } form { margin-top: 0; margin-bottom: 0; } .login-footer-text { margin-top: 24px; text-align: center; font-size: 14px; color: var(--google-grey-subtle); } /* Status message style - initially hidden */ .status-message { margin-top: 12px; color: red; font-size: 14px; min-height: 1.5em; /* Reserve space for the message */ visibility: hidden; /* Hidden by default */ opacity: 0; transition: opacity 0.3s ease-in-out; } .status-message.visible { visibility: visible; opacity: 1; } .login-footer-image { margin-top: 24px; text-align: center; } .login-footer-image img { width: 70px; height: 24px; opacity: 0.7; }