Py-detect / src /app /homepage /sign-in /sign-in.component.css
RajalashmiNagarajan
homepage
e94898e
/* root colors and variables remain unchanged */
.signin-popup {
position: fixed;
top:0;
left:0;
width:100vw;
height:100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
z-index:1000;
/* Use a reliable semi-transparent overlay instead of backdrop-filter */
background: rgba(30,41,59,0.35); /* softly dim the homepage */
/* Remove flaky backdrop filters */
-webkit-backdrop-filter: none;
backdrop-filter: none;
}
/* Ensure no solid white background is set anywhere */
.signin-header {
width: 420px;
max-width: 95vw;
display: flex;
justify-content: flex-end;
align-items: flex-start;
padding: 0;
position: absolute;
top: -28px;
right: 12px;
pointer-events: none;
z-index: 2;
}
.signin-logo {
display: flex;
align-items: center;
gap: 12px;
pointer-events: auto;
}
.signin-login-link {
font-size: 1.1rem;
color: #fff;
margin-top: 0;
pointer-events: auto;
background: #18314a;
border-radius: 0 0 12px 12px;
padding: 8px 18px 4px 18px;
box-shadow: 0 2px 8px #0002;
position: relative;
right: 0;
top: 0;
}
.signin-login-link a {
color: #1de9b6;
text-decoration: underline;
margin-left: 6px;
font-weight: 600;
cursor: pointer;
}
.signin-box {
margin: 0 auto;
/* Center the box horizontally and vertically */
position: relative;
left: 0;
right: 0;
top: 0;
bottom: 0;
background: #18314a;
border-radius: 22px;
box-shadow: 0 12px 48px #000a;
padding: 48px 38px 32px 38px;
width: 420px;
max-width: 95vw;
display: flex;
flex-direction: column;
align-items: center;
}
.signin-title {
color: #38bdf8;
font-size: 2.1rem;
font-weight: 800;
margin-bottom: 12px;
text-align: center;
letter-spacing: 1px;
text-shadow: 0 2px 8px #0008;
}
form {
width: 100%;
}
/* Narrower form and consistent spacing */
.signin-form {
width: 86%;
max-width: 420px;
margin: 0 auto;
}
.signin-row {
display: flex;
gap: 22px;
margin-bottom: 18px;
}
.signin-field {
flex: 1;
display: flex;
flex-direction: column;
}
/* New wrapper so input and eye toggle stay aligned */
.password-wrapper {
position: relative;
display: flex;
align-items: center;
}
.password-wrapper input {
flex:1;
}
/* Position the eye toggle only within sign-in password wrapper */
.signin-popup .password-wrapper .eye-toggle {
position: absolute;
right:10px;
top:46%;
transform: translateY(-50%);
background: rgba(255,255,255,0.06);
border: none;
width:24px;
height:24px;
display: flex;
align-items: center;
justify-content: center;
border-radius:6px;
cursor: pointer;
color: inherit;
}
/* Slightly larger icon in sign-in */
.signin-popup .password-wrapper .eye-toggle i { font-size:0.85rem; }
.signin-field label {
color: #e6f7f9; /* slightly darker than pure white for better contrast */
font-weight: 600;
margin-bottom: 10px;
font-size: 1rem;
letter-spacing: 0.5px;
}
/* Inputs: use consistent 8px radius */
.signin-field input,
.forgot-modal input[type="email"],
.forgot-modal .otp-modal input[type="text"],
.panel-left .signin-field input,
.panel-left .signin-field select {
background: #fff;
color: #18314a;
border: none;
border-radius: 8px; /* updated to 8px for consistency */
padding: 14px 16px;
font-size: 1rem;
margin-bottom: 8px;
box-shadow: 0 1px 6px #0002;
transition: border 0.2s, box-shadow 0.2s;
}
.signin-field input:focus,
.forgot-modal input[type="email"]:focus,
.forgot-modal .otp-modal input[type="text"]:focus,
.panel-left .signin-field input:focus,
.panel-left .signin-field select:focus {
outline: 2px solid #1de9b6;
border-color: #1de9b6;
box-shadow: 0 0 0 2px #1de9b688;
}
.signin-field input::placeholder {
color: #b0b8c1;
opacity: 1;
}
.signin-field small.error {
color: #ff5252;
font-size: 0.85rem;
margin-top: 6px;
text-shadow: 0 1px 2px #0008;
}
.signin-options-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 28px;
margin-top: -4px;
}
.remember-me {
display: flex;
align-items: center;
gap: 8px;
font-size: 1rem;
color: #e6f7f9;
}
.remember-me input[type="checkbox"] {
width: 18px;
height: 18px;
accent-color: var(--primary-accent, #14263c);
cursor: pointer;
}
.remember-me label {
cursor: pointer;
color: #e6f7f9;
user-select: none;
}
.forgot-password {
font-size: 1rem;
}
.forgot-link {
color: #38bdf8;
text-decoration: underline;
font-weight: 500;
cursor: pointer;
}
.signin-btn {
width: 100%;
background: #18314a;
color: #fff;
border: none;
border-radius: 10px;
padding: 14px 0;
font-size: 1.05rem;
font-weight: 700;
margin-bottom: 18px;
cursor: pointer;
transition: background 0.2s, color 0.2s;
}
.signin-btn:hover {
background: #38bdf8;
}
.signin-footer {
color: #b0b8c1;
font-size: 0.95rem;
text-align: center;
margin-top: 8px;
}
.signin-footer .footer-sep {
display: block;
height: 16px;
}
.signin-footer a {
color: #38bdf8;
text-decoration: underline;
margin-left: 4px;
font-weight: 600;
cursor: pointer;
}
.signin-close {
position: absolute;
top: 18px;
right: 18px;
width: 38px;
height: 38px;
border: none;
background: #14263c;
color: #fff;
border-radius: 50%;
font-size: 2rem;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
z-index: 10;
transition: background 0.2s, color 0.2s;
box-shadow: 0 2px 8px #0005;
}
.signin-close:hover {
background: #38bdf8;
color: #18314a;
}
@media (max-width: 700px) {
.signin-box {
padding: 18px 6vw 18px 6vw;
width: 98vw;
}
.signin-header {
flex-direction: column;
align-items: flex-start;
width: 98vw;
padding: 0 0 12px 0;
}
.signin-title {
font-size: 1.3rem;
}
.signin-row {
flex-direction: column;
gap: 10px;
}
.signin-form {
width: 92%;
}
}
.ai-particle-bg {
position: absolute;
inset: 0;
pointer-events: none;
z-index: 0;
background: url('/assets/particles.svg');
opacity: 0.18;
animation: particleDrift 18s linear infinite;
}
@keyframes particleDrift {
0% { background-position: 0 0; }
100% { background-position: 120px 80px; }
}
.spinner {
display: inline-block;
width: 18px;
height: 18px;
border: 3px solid #fff;
border-top: 3px solid #38bdf8;
border-radius: 50%;
animation: spin 0.7s linear infinite;
vertical-align: middle;
margin-right: 10px;
}
@keyframes spin {
0% { transform: rotate(0deg);}
100% { transform: rotate(360deg);}
}
.py-logo-glow {
width: 54px;
height: 54px;
border-radius: 50%;
box-shadow: 0 0 24px #38bdf8, 0 0 12px #13bfa6;
animation: logoGlow 3.5s ease-in-out infinite alternate;
}
@keyframes logoGlow {
0% { box-shadow: 0 0 12px #38bdf8, 0 0 6px #13bfa6; }
100% { box-shadow: 0 0 32px #38bdf8, 0 0 18px #13bfa6; }
}
.ai-scan-line {
display: none;
}
.ai-slide-in {
animation: slideInBox 0.8s cubic-bezier(.39,.58,.57,1) both;
}
@keyframes slideInBox {
0% { opacity: 0; transform: translateY(40px) scale(0.98); }
100% { opacity: 1; transform: translateY(0) scale(1); }
}
.lock-icon {
color: #38bdf8;
font-size: 1.2em;
margin-right: 8px;
vertical-align: middle;
}
.signin-tagline {
color: #b0b8c1;
font-size: 1.08em;
text-align: center;
margin-bottom: 8px;
font-weight: 600;
}
.signin-welcome {
color: #fff;
font-size: 1.05em;
text-align: center;
margin-bottom: 18px;
font-weight: 600;
}
.switch {
position: relative;
display: inline-block;
width: 38px;
height: 22px;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0; left: 0; right: 0; bottom: 0;
background: #b0b8c1;
border-radius: 22px;
transition: .4s;
}
.switch input:checked + .slider {
background: #38bdf8;
}
.slider:before {
position: absolute;
content: "";
height: 16px;
width: 16px;
left: 3px;
bottom: 3px;
background: #fff;
border-radius: 50%;
transition: .4s;
}
.switch input:checked + .slider:before {
transform: translateX(16px);
}
.signin-hint {
color: #b0b8c1;
font-size: 0.95em;
text-align: right;
margin-bottom: 8px;
}
.ai-pulse {
animation: aiPulseGlow 1.5s infinite alternate;
}
@keyframes aiPulseGlow {
0% { box-shadow: 0 2px 12px #38bdf844; }
100% { box-shadow: 0 2px 24px #38bdf888; }
}
.signin-session-tip {
color: #b0b8c1;
font-size: 0.95em;
text-align: center;
margin-bottom: 8px;
}
.signin-security-note {
color: #ff5252;
font-size: 0.95em;
font-weight: 600;
display: block;
margin-bottom: 4px;
}
.signin-error-toast {
background: #ff5252;
color: #fff;
font-weight: 700;
border-radius: 8px;
padding: 8px 18px;
margin: 12px 0;
text-align: center;
animation: shakeError 0.3s cubic-bezier(.39,.58,.57,1);
}
@keyframes shakeError {
0% { transform: translateX(0); }
20% { transform: translateX(-8px); }
40% { transform: translateX(8px); }
60% { transform: translateX(-8px); }
80% { transform: translateX(8px); }
100% { transform: translateX(0); }
}
.forgot-modal-bg {
position: fixed;
inset: 0;
background: rgba(30,41,59,0.9);
z-index: 2000;
display: flex;
align-items: center;
justify-content: center;
animation: fadeInModalBg 0.4s;
}
@keyframes fadeInModalBg {
from { opacity: 0; }
to { opacity: 1; }
}
.forgot-modal {
background: #18314a;
padding: 20px;
border-radius: 12px;
color: #fff;
width: 360px;
max-width: 92vw;
box-shadow: 0 8px 32px #0008;
}
.forgot-modal input[type="email"] {
width: 100%;
padding: 10px 0px;
border-radius: 8px;
border: none;
margin-bottom: 12px;
}
.forgot-modal .modal-close {
display: block;
margin: 12px auto 0 auto; /* center horizontally under the primary button */
background: #00000070;
color: #e6f7f9;
border: 1px solid rgba(255,255,255,0.08);
padding: 10px 14px;
border-radius: 8px;
font-size: 1.2rem;
}
.forgot-modal .modal-close:hover {
background: #38bdf8;
color: #18314a;
}
/* Forgot modal send button: prominent background and border */
.forgot-modal .send-reset-btn {
display: inline-block;
width:100%;
background: #38bdf8; /* bright cyan */
color: #18314a; /* dark text for contrast */
border:2px solid #0b57a4; /* darker blue border */
padding:12px 14px;
border-radius:8px;
font-weight:700;
cursor: pointer;
box-shadow:0 6px 18px rgba(3,20,36,0.12);
transition: background 0.18s ease, transform 0.12s ease;
}
.forgot-modal .send-reset-btn:hover {
background: #1dc4ff;
transform: translateY(-1px);
}
/* OTP modal centered over entire page with blurred backdrop */
.otp-modal-bg {
position: fixed; /* full viewport */
inset:0;
display: flex;
align-items: center;
justify-content: center;
pointer-events: auto; /* capture clicks on backdrop */
z-index:3000; /* above other modals */
background: rgba(2,6,23,0.45); /* dark translucent */
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
}
.otp-modal {
pointer-events: auto;
background: #18314a;
padding:20px 22px;
border-radius:12px;
width:360px;
max-width:86vw;
box-shadow:0 8px 28px rgba(0,0,0,0.45);
color: #fff;
}
.forgot-modal .otp-modal input[type="text"] {
width:100%;
padding:10px 12px;
border-radius:8px;
border: none;
margin-top:8px;
}
.forgot-modal .otp-modal .modal-close {
background: transparent;
color: #fff;
border:1px solid rgba(255,255,255,0.06);
padding:8px 12px;
border-radius:8px;
}
.autologin-checkbox {
display: flex;
align-items: center;
gap: 8px;
color: #b0b8c1;
font-size: 0.9rem;
margin-bottom: 12px;
}
.autologin-checkbox input {
accent-color: #38bdf8;
transform: scale(1.2);
}
.auto-login-desc {
color: #e6f7f9;
font-size: 0.9rem;
margin-left: 4px;
}
/* Ensure otp modal sits centered relative to auth-card */
.auth-card { position: relative; }
/* keep existing forgot-modal-bg style for full-screen modals */
.forgot-modal-bg { position: fixed; inset:0; background: rgba(30,41,59,0.9); z-index:2000; }
/* Security indicator styles */
.lock-icon-inline {
color: #38bdf8;
margin-right: 8px;
font-size: 1rem;
vertical-align: middle;
}
.security-row .security-info {
display: flex;
align-items: center;
gap: 8px;
color: #b0c7d4;
font-size: 0.95rem;
}
.security-text {
/* Brighter color for better contrast on dark background */
color: #23395d;
font-weight: 600;
}
/* Make Need help line match and be more visible */
.signin-help {
color: #23395d;
font-weight: 600;
margin-right: 74px;
}
.signin-help a {
color: #e6f7f9;
text-decoration: underline;
margin-left: 6px;
font-weight: 600;
cursor: pointer;
}
/* Google button */
.google-btn {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
background: #0f1724;
color: #fff;
border-radius: 10px;
padding: 12px 14px;
box-shadow: 0 6px 0 rgba(0,0,0,0.12);
border: none;
}
.google-logo { width: 18px; height: 18px; }
/* small responsive tweaks */
@media (max-width: 480px) {
.security-row .security-info { flex-direction: column; align-items: flex-start; gap: 6px; }
}
/* --- UI DESIGN UPDATE TO MATCH SCREENSHOT --- */
.auth-box {
display: grid;
grid-template-columns: 1fr 1fr;
width: 820px;
max-width: 98vw;
min-width: 340px;
border-radius: 18px;
box-shadow: 0 8px 32px #0002;
overflow: hidden;
background: none;
}
.panel-left {
background: #fff;
color: #222;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 48px 32px;
}
.panel-left .signin-title {
font-size: 2.1rem;
font-weight: 800;
margin-bottom: 12px;
text-align: center;
color: #222;
}
.panel-left .signin-desc {
font-size: 1.05rem;
margin-bottom: 24px;
text-align: center;
color: #555;
}
.panel-left .signin-btn {
background: var(--primary-cyan-mid);
color: #fff;
border: none;
border-radius: 999px;
padding: 12px 32px;
font-size: 1.1rem;
font-weight: 700;
cursor: pointer;
transition: background 0.2s, color 0.2s;
box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.panel-left .signin-btn:hover {
background: var(--primary-cyan-dark);
color: #fff;
}
.panel-right {
background: linear-gradient(135deg, var(--primary-cyan-dark) 0%, var(--primary-cyan-mid) 100%);
color: #fff;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 48px 32px;
}
.panel-right .signup-title {
font-size: 2rem;
font-weight: 800;
margin-bottom: 18px;
text-align: left;
color: #fff;
}
.panel-right .signup-desc {
font-size: 1.05rem;
margin-bottom: 24px;
text-align: center;
color: #fff;
}
.panel-right .signup-btn {
background: none;
color: #fff;
border: 2px solid #fff;
border-radius: 999px;
padding: 12px 32px;
font-size: 1.1rem;
font-weight: 700;
cursor: pointer;
transition: background 0.2s, color 0.2s;
box-shadow: none;
}
/* Input fields and buttons for left panel */
.panel-left .signin-field input,
.panel-left .signin-field select {
background: #f5f5f5;
color: #222;
border: 1px solid #ddd;
border-radius: 8px;
padding: 12px 14px;
font-size: 1rem;
margin-bottom: 2px;
box-shadow: 0 1px 4px #0001;
transition: border 0.2s, box-shadow 0.2s;
}
.panel-left .signin-field input:focus,
.panel-left .signin-field select:focus {
outline: 2px solid #ff416c;
border-color: #ff416c;
box-shadow: 0 0 0 2px #ff416c44;
}
/* Social buttons row for left panel */
.panel-left .social-row {
display: flex;
gap: 12px;
margin-bottom: 18px;
justify-content: center;
}
.panel-left .social-btn {
width: 38px;
height: 38px;
border-radius: 50%;
background: #f5f5f5;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.3em;
color: var(--primary-cyan-dark);
border: none;
cursor: pointer;
box-shadow: 0 2px 8px #0001;
transition: background 0.2s, color 0.2s;
}
.panel-left .social-btn:hover {
background: var(--primary-cyan-dark);
color: #fff;
}
/* Professional shadow and rounded corners for the whole box */
.auth-box {
box-shadow: 0 8px 32px #0002;
border-radius: 18px;
}
/* Ensure identical size and prevent clipping */
.auth-box {
display: grid;
grid-template-columns: 420px 600px; /* match sign-up columns */
width: 1020px; /* increased to accommodate both panels */
height: 620px; /* increased height to avoid overflow */
max-width: 98vw;
min-width: 340px;
border-radius: 18px;
box-shadow: 0 8px 32px #0002;
overflow: visible; /* ensure no content is clipped */
background: none;
position: relative;
box-sizing: border-box;
}
/* Reduce right panel width to make it less large */
.auth-box {
display: grid;
grid-template-columns: 360px 840px; /* reduced right panel from 600px to 520px */
width: 850px; /* adjusted to match columns */
height: 820px;
max-width: 98vw;
min-width: 340px;
border-radius: 18px;
box-shadow: 0 8px 32px #0002;
overflow: visible; /* ensure no content is clipped */
background: none;
position: relative;
box-sizing: border-box;
justify-content: end;
align-items: baseline;
justify-items: start;
}
/* Ensure panels occupy full height and use box-sizing */
.panel-left, .panel-right {
height: 100%;
box-sizing: border-box;
}
/* Card viewport and sliding inner container */
.auth-card {
width: 1140px; /* viewport width remains */
height: 700px; /* increased height to accommodate content and remove scroll */
perspective: none;
overflow: hidden;
border-radius: 12px;
box-shadow: 0 8px 24px rgba(0,0,0,0.12);
margin: 0 auto;
}
.card-inner {
width:200%; /* contains both faces side-by-side */
height:100%;
display: flex; /* place front and back side-by-side */
/* much slower transition so flip is clearly visible to users */
transition: transform 0.7s cubic-bezier(.22, .9, .32,1);
will-change: transform;
}
.auth-card.flipped .card-inner {
transform: translate3d(-50%,0,0);
}
.auth-card:not(.flipped) .card-inner {
transform: translate3d(0,0,0);
}
/* panel fade with proper syntax */
.card-front .main-panel,
.card-back .main-panel {
transition: opacity 1s ease 0.15s;
}
.card-front[aria-hidden="true"] .main-panel,
.card-back[aria-hidden="true"] .main-panel {
opacity:0;
}
.card-front[aria-hidden="false"] .main-panel,
.card-back[aria-hidden="false"] .main-panel {
opacity:1;
}
/* faces: each takes 50% of the inner width (i.e. the viewport) */
.card-front, .card-back {
width: 50%;
height: 100%;
flex: 0 0 50%;
box-sizing: border-box;
position: relative; /* allow absolute children inside */
overflow: hidden;
}
/* layout inside each face: side-panel + main-panel split */
.card-content {
display: flex;
height: 100%;
flex-direction: row-reverse;
}
.side-panel { width: 48%; display:flex; align-items:center; justify-content:center; }
.main-panel { width: 60%; padding: 1px 1px; box-sizing:border-box; background:#fff; overflow: visible; }
.side-right {
background: linear-gradient(135deg,#137ec4 0%,#137ec4 100%);
}
.side-left {
background: linear-gradient(135deg, #137ec4 0%, #38bdf8 100%);
}
.side-inner { color:#fff; text-align:center; padding: 32px; }
.side-inner h3 { font-size: 1.6rem; margin-bottom:12px; }
.side-text { opacity: 0.95; }
.panel-cta { background:none; border:2px solid #fff; color:#fff; padding:10px 22px; border-radius:999px; cursor:pointer; margin-top:12px; }
.card-front .main-panel .signin-title { color: #222; }
.card-back .main-panel .signup-title { color: #222; }
/* Maintain previous smaller-screen behavior (stack panels) */
@media (max-width: 900px){
.auth-card{ width:92vw; height:auto; }
.card-inner{ width: 200%; /* still double width but we'll stack */ }
.card-content{ flex-direction: column; }
.side-panel{ width:100%; height:200px; }
.main-panel{ width:100%; overflow: visible; }
}
/* Page-specific eye-toggle for sign-in: scoped to .signin-field to override shared component defaults */
.signin-field .eye-toggle {
position: absolute;
right:8px;
top:66%;
transform: translateY(-50%);
background: rgba(255,255,255,0.06);
border: none;
width:20px;
height:20px;
display: flex;
align-items: center;
justify-content: center;
border-radius:6px;
cursor: pointer;
color: inherit;
z-index:0; /* ensure modals and popups sit above */
}
/* Slightly larger icon inside sign-in toggle for clarity */
.signin-field .eye-toggle i { font-size:0.85rem; }
/* keep existing control styles unchanged (inputs/buttons/etc.) */
/* minimal overwrite of previous rules that used absolute positioning */
.m, .signin-close, .card-back .signin-close { position: absolute; top: 5px; right: 5px; z-index: 10; }
/* accessibility: hide offscreen face from assistive tech when sliding */
.card-front[aria-hidden="true"], .card-back[aria-hidden="true"] {
pointer-events: none;
}
/* Change right panel gradient to blue/cyan */
.side-panel.side-right {
background: linear-gradient(135deg, #1d608b 0%, #1d608b 100%);
}
/* Info box styling for right panel */
.side-info-box {
position: absolute;
top: 164px;
left: 0;
width: 88%;
padding: 0 32px;
z-index: 2;
color: #fff;
text-align: left;
}
.side-info-title {
font-size: 1.35rem;
font-weight: 800;
color: #fff;
margin-bottom: 6px;
letter-spacing: 0.5px;
}
.side-info-desc {
font-size: 1.08rem;
color: #e0f7fa;
margin-bottom: 8px;
}
.side-info-link {
color: #fff;
font-weight: 700;
text-decoration: underline;
cursor: pointer;
transition: color 0.2s;
}
.side-info-link:hover {
color: #23395d;
}
/* Ensure info box is above image */
.side-panel {
position: relative;
}
/* Google button row spacing */
.google-signin-row {
width: 100%;
display: flex;
justify-content: center;
margin-bottom: 12px;
}
#google-btn-div {
width: 100%;
display: flex;
justify-content: center;
}
.g-signin2 {
margin: 0 auto;
}
/* Ensure main-panel text is black (readable on white background) */
.card-front .main-panel,
.card-front .main-panel .signin-title,
.card-front .main-panel .signin-tagline,
.card-front .main-panel .signin-welcome,
.card-front .main-panel .signin-session-tip,
.card-front .main-panel .signin-hint,
.card-front .main-panel .signin-footer,
.card-front .main-panel label,
.card-front .main-panel .signin-field small,
.card-front .main-panel .signin-field label {
color: #23395d !important;
}
/* Keep links styled but darken slightly for contrast */
.card-front .main-panel a {
color: #0b57a4 !important;
}
.signin-divider-row {
display: flex;
align-items: center;
justify-content: center;
width:100%;
margin:12px 0 18px 0;
}
.divider {
flex:1;
height:1px;
background: #b0b8c1;
margin:0 8px;
}
.divider-or {
color: #23395d;
font-size:1.08em;
font-weight:600;
margin:0 8px;
}
.google-btn {
width: 100%;
height: 45px;
background: #18314a;
color: #fff;
border: none;
border-radius: 8px;
padding: 14px 0;
font-size: 1.1rem;
font-weight: 700;
margin-bottom: 18px;
cursor: pointer;
box-shadow: 0 2px 8px #0003;
display: flex;
align-items: center;
justify-content: center;
gap: 12px;
transition: background 0.2s, color 0.2s;
}
.google-btn:hover {
background: #38bdf8;
}
.google-logo {
width:24px;
height:24px;
}
.fact-rotator {
font-size:1.18rem;
font-weight:700;
color: #fff;
margin-bottom:8px;
min-height:32px;
text-align: left;
transition: opacity 0.6s;
letter-spacing:0.5px;
animation: fadeFact 0.6s;
}
@keyframes fadeFact {
from { opacity:0; }
to { opacity:1; }
}
.side-panel.side-left {
position: relative;
overflow: hidden;
background: #1d608b; /* Strong blue for contrast */
min-height: 400px;
}
.side-img {
position: absolute;
top:0; left:0;
width:100%; height:100%;
object-fit: cover;
z-index:1;
opacity:100;
}
/* Sign-in: ensure left-side welcome overlay sits above the left image and is styled like sign-up */
.side-panel.side-left .side-img {
z-index:0 !important; /* image underlay */
position: absolute;
top:0;
left:0;
width:100%;
height:100%;
object-fit: cover;
opacity:0.98;
}
.side-panel.side-left .side-welcome-overlay,
.side-panel.side-left .side-info-box {
position: relative !important;
z-index:12 !important; /* bring overlay above image */
max-width:78% !important;
padding:18px 20px !important;
border-radius:10px !important;
color: #ffffff !important;
}
.side-panel.side-left .side-welcome-overlay .welcome-back-title,
.side-panel.side-left .side-info-box .side-info-title,
.side-panel.side-left .welcome-back-title {
font-size:1.6rem !important;
font-weight:800 !important;
margin:0 0 8px 0 !important;
line-height:1.05 !important;
color: #ffffff !important;
}
.side-panel.side-left .side-welcome-overlay .welcome-back-desc,
.side-panel.side-left .side-info-box .side-info-desc,
.side-panel.side-left .welcome-back-desc {
font-size:1rem !important;
line-height:1.6 !important;
margin:0 0 12px 0 !important;
color: rgba(255,255,255,0.95) !important;
}
.side-panel.side-left .side-welcome-overlay .action-btn,
.side-panel.side-left .side-info-box .action-btn {
display: inline-block !important;
background: #010207 !important;
color: #ffffff !important;
border: 1px solid rgba(255, 255, 255, 0.92) !important;
padding: 8px 14px !important;
border-radius: 10px !important;
font-weight: 700 !important;
cursor: pointer !important;
margin-top: 357px !important;
margin-left: 25px;
width: 293px;
height: 58px;
font-size: 2.28rem;
}
.side-panel.side-left .side-welcome-overlay .action-btn:hover,
.side-panel.side-left .side-info-box .action-btn:hover {
background: rgba(255,255,255,0.08) !important;
}
.side-panel.side-left .side-welcome-overlay a,
.side-panel.side-left .side-info-box a {
color: #ffffff !important;
text-decoration: underline !important;
font-weight:700 !important;
}
@media (max-width:900px) {
.side-panel.side-left .side-welcome-overlay,
.side-panel.side-left .side-info-box { max-width:92% !important; padding:12px !important; }
.side-panel.side-left .side-welcome-overlay .welcome-back-title { font-size:1.25rem !important; }
.side-panel.side-left .side-welcome-overlay .welcome-back-desc { font-size:0.98rem !important; }
.side-panel.side-left .side-welcome-overlay .action-btn { padding:8px 12px !important; }
}
/* Sign-up: style side-info-box like sign-in overlay */
.side-panel.side-right .side-info-box,
.side-panel.side-right .side-welcome-overlay,
.welcome-info-box {
position: relative !important;
z-index: 12 !important; /* bring overlay above image */
max-width: 78% !important;
padding: 18px 20px !important;
border-radius: 10px !important;
;
color: #ffffff !important;
}
.side-panel.side-right .side-info-box .side-info-title,
.welcome-info-box .welcome-info-title {
font-size: 1.6rem !important;
font-weight: 800 !important;
margin: 0 0 8px 0 !important;
line-height: 1.05 !important;
color: #ffffff !important;
}
.side-panel.side-right .side-info-box .side-info-desc,
.welcome-info-box .welcome-info-desc {
font-size: 1rem !important;
line-height: 1.6 !important;
margin: 0 0 12px 0 !important;
color: rgba(255,255,255,0.95) !important;
}
.side-panel.side-right .side-info-box .action-btn,
.welcome-info-box .action-btn,
.side-panel.side-right .side-info-box .panel-cta {
display: inline-block !important;
background: #010207 !important;
color: #fff !important;
border: 1px solid rgba(255, 255, 255, 0.92) !important;
padding: 8px 14px !important;
border-radius: 10px !important;
font-weight: 700 !important;
cursor: pointer !important;
margin-top: 30px !important;
margin-left: 50px;
width: 293px;
height: 58px;
font-size: 2.28rem;
}
.side-panel.side-right .side-info-box .action-btn:hover,
.welcome-info-box .action-btn:hover,
.side-panel.side-right .side-info-box .panel-cta:hover {
background: rgba(255,255,255,0.08) !important;
}
.side-panel.side-right .side-info-box a,
.welcome-info-box a {
color: #ffffff !important;
text-decoration: underline !important;
font-weight: 700 !important;
}
.welcome-back-title.welcome-line-1 {
font-size: 1.6rem !important;
font-weight: 800 !important;
margin: 0 0 8px 0 !important;
line-height: 1.05 !important;
color: #ffffff !important;
}
.forgot-modal-bg { /* existing styles assumed */ }
/* Support modal uses same styling as forgot password */
.forgot-modal h3 { margin-top:0; }
.support-modal-bg {
position: fixed;
inset:0;
background: rgba(2,6,23,0.55);
z-index:2200;
display: flex;
align-items: center;
justify-content: center;
animation: fadeInModalBg0.4s;
backdrop-filter: blur(6px);
}
.support-modal {
background: #0f1724;
padding: 27px 47px;
border-radius: 12px;
color: #e6f7f9;
width: 486px;
max-width: 92vw;
box-shadow: 0 10px 36px rgba(0, 0, 0, 0.45);
margin-right: 1090px;
}
.support-modal h3 { margin-top:0; color:#38bdf8; }
.support-modal a { color:#38bdf8; text-decoration: underline; }
.support-modal-close {
display: inline-block;
margin-top:12px;
background: transparent;
color: #e6f7f9;
border:1px solid rgba(255,255,255,0.12);
padding:8px 12px;
border-radius:8px;
font-size:1rem;
}
.support-modal-close:hover { background: rgba(255,255,255,0.08); color:#fff; }