// Auth Pages - Warm Tech Theme // Warm color palette with tech-inspired design :root { --auth-primary: #ff6b35; --auth-primary-light: #ff8c5a; --auth-primary-dark: #e55a2b; --auth-secondary: #ffb347; --accent-orange: #ffa500; --accent-coral: #ff7f50; --accent-amber: #ffc107; --bg-gradient-start: #fff5f0; --bg-gradient-end: #ffe8dc; --card-bg: rgba(255, 255, 255, 0.95); --text-primary: #2d1810; --text-secondary: #6b4423; --text-muted: #a67c52; --border-color: #ffd4b8; --shadow-color: rgba(255, 107, 53, 0.15); --success: #28a745; --warning: #ffc107; --error: #dc3545; --tech-blue: #007bff; --tech-purple: #6f42c1; } .auth-container { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--bg-gradient-start) 0%, var(--bg-gradient-end) 100%); position: relative; overflow: hidden; // Tech pattern background &::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: radial-gradient(circle at 20% 50%, rgba(255, 107, 53, 0.03) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(255, 179, 71, 0.05) 0%, transparent 40%), radial-gradient(circle at 40% 80%, rgba(255, 127, 80, 0.04) 0%, transparent 40%); pointer-events: none; } // Animated tech elements &::after { content: ''; position: absolute; width: 600px; height: 600px; background: radial-gradient(circle, rgba(255, 107, 53, 0.08) 0%, transparent 70%); border-radius: 50%; top: -200px; right: -200px; animation: float 20s ease-in-out infinite; pointer-events: none; } } @keyframes float { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(-50px, 50px); } } .auth-card { width: 100%; max-width: 440px; background: var(--card-bg); backdrop-filter: blur(20px); border-radius: 24px; padding: 48px 40px; box-shadow: 0 20px 60px var(--shadow-color), 0 8px 24px rgba(0, 0, 0, 0.08); position: relative; z-index: 1; margin: 20px; // Tech accent line &::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 80px; height: 4px; background: linear-gradient(90deg, var(--auth-primary), var(--auth-secondary)); border-radius: 0 0 4px 4px; } } .auth-header { text-align: center; margin-bottom: 40px; .auth-title { font-size: 28px; font-weight: 700; color: var(--text-primary); margin-bottom: 8px; background: linear-gradient(135deg, var(--auth-primary-dark), var(--auth-primary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .auth-subtitle { font-size: 14px; color: var(--text-secondary); line-height: 1.6; } } .auth-form { .ant-form-item { margin-bottom: 24px; } .ant-input { border-radius: 12px; border: 1px solid var(--border-color); transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(255, 107, 53, 0.08); &:hover { border-color: var(--auth-primary-light); box-shadow: 0 4px 16px rgba(255, 107, 53, 0.15); } &:focus, &.ant-input-focused { border-color: var(--auth-primary); box-shadow: 0 4px 16px rgba(255, 107, 53, 0.15); } } .ant-input-affix-wrapper { border-radius: 12px; border: 1px solid var(--border-color); transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(255, 107, 53, 0.08); &:hover { border-color: var(--auth-primary-light); box-shadow: 0 4px 16px rgba(255, 107, 53, 0.15); } &:focus, &.ant-input-affix-wrapper-focused { border-color: var(--auth-primary); box-shadow: 0 4px 16px rgba(255, 107, 53, 0.15); } .ant-input { border: none; box-shadow: none; } } .ant-input-prefix { color: var(--auth-primary); font-size: 18px; margin-right: 8px; } .ant-input-suffix { color: var(--text-muted); } .ant-btn { height: 48px; font-size: 16px; font-weight: 600; border-radius: 12px; transition: all 0.3s ease; &.ant-btn-primary { background: linear-gradient(135deg, var(--auth-primary), var(--auth-primary-dark)); border: none; box-shadow: 0 8px 24px rgba(255, 107, 53, 0.35); &:hover { background: linear-gradient(135deg, var(--auth-primary-light), var(--auth-primary)); transform: translateY(-2px); box-shadow: 0 12px 32px rgba(255, 107, 53, 0.45); } &:active { transform: translateY(0); } } } } .auth-links { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; .remember-me { .ant-checkbox-inner { border-radius: 4px; border-color: var(--border-color); } .ant-checkbox-wrapper { color: var(--text-secondary); font-size: 14px; } &.ant-checkbox-wrapper-checked { .ant-checkbox-inner { background-color: var(--auth-primary); border-color: var(--auth-primary); } } } .forgot-password { color: var(--auth-primary); font-size: 14px; text-decoration: none; transition: color 0.3s ease; &:hover { color: var(--auth-primary-dark); } } } .auth-divider { display: flex; align-items: center; margin: 32px 0; color: var(--text-muted); font-size: 13px; &::before, &::after { content: ''; flex: 1; height: 1px; background: var(--border-color); } span { padding: 0 16px; } } .auth-footer { text-align: center; margin-top: 24px; .auth-footer-text { color: var(--text-secondary); font-size: 14px; .auth-link { color: var(--auth-primary); text-decoration: none; font-weight: 600; margin-left: 4px; transition: color 0.3s ease; &:hover { color: var(--auth-primary-dark); } } } } .tech-decoration { position: absolute; width: 100%; height: 100%; top: 0; left: 0; pointer-events: none; overflow: hidden; .tech-circle { position: absolute; border: 2px solid rgba(255, 107, 53, 0.1); border-radius: 50%; animation: pulse 4s ease-in-out infinite; } .tech-circle:nth-child(1) { width: 300px; height: 300px; top: -150px; left: -150px; animation-delay: 0s; } .tech-circle:nth-child(2) { width: 200px; height: 200px; bottom: -100px; right: -100px; animation-delay: 1s; } .tech-circle:nth-child(3) { width: 150px; height: 150px; bottom: 20%; left: -75px; animation-delay: 2s; } } @keyframes pulse { 0%, 100% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.05); } } // Responsive design @media (max-width: 768px) { .auth-card { padding: 40px 24px; margin: 16px; } .auth-header { .auth-title { font-size: 24px; } } }