/*!*********************************************************************************************************************************************************************************************************************************************************************!*\ !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./src/app/login/login.css ***! \*********************************************************************************************************************************************************************************************************************************************************************/ /* ============================ 登录页样式 ============================ */ .login-page { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 25%, #312e81 50%, #1e1b4b 75%, #0f172a 100%); background-size: 400% 400%; animation: gradientShift 15s ease infinite; position: relative; overflow: hidden; } @keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } /* 浮动几何形状 */ .login-bg-shapes { position: absolute; inset: 0; overflow: hidden; pointer-events: none; } .login-bg-shapes .shape { position: absolute; border-radius: 50%; opacity: 0.08; animation: floatShape 20s ease-in-out infinite; } .login-bg-shapes .shape:nth-child(1) { width: 300px; height: 300px; background: linear-gradient(135deg, #6366f1, #a78bfa); top: -50px; left: -50px; animation-duration: 18s; } .login-bg-shapes .shape:nth-child(2) { width: 200px; height: 200px; background: linear-gradient(135deg, #06b6d4, #22d3ee); top: 60%; right: -30px; animation-duration: 22s; animation-delay: -5s; } .login-bg-shapes .shape:nth-child(3) { width: 150px; height: 150px; background: linear-gradient(135deg, #f59e0b, #fbbf24); bottom: 10%; left: 15%; animation-duration: 16s; animation-delay: -8s; } .login-bg-shapes .shape:nth-child(4) { width: 250px; height: 250px; background: linear-gradient(135deg, #ec4899, #f472b6); top: 20%; right: 20%; animation-duration: 24s; animation-delay: -3s; } @keyframes floatShape { 0%, 100% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(30px, -40px) rotate(90deg); } 50% { transform: translate(-20px, 30px) rotate(180deg); } 75% { transform: translate(40px, 20px) rotate(270deg); } } /* 登录卡片 */ .login-card { background: rgba(255, 255, 255, 0.08); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 24px; padding: 48px 40px; width: 420px; max-width: 90vw; box-shadow: 0 25px 50px rgba(0, 0, 0, 0.4); position: relative; z-index: 1; animation: cardIn 0.6s ease forwards; transform: translateY(20px); opacity: 0; } @keyframes cardIn { to { transform: translateY(0); opacity: 1; } } .login-logo-area { text-align: center; margin-bottom: 32px; } .login-logo-area img { width: 72px; height: 72px; border-radius: 16px; object-fit: contain; margin-bottom: 12px; box-shadow: 0 4px 14px rgba(99, 102, 241, 0.3); background-color: #ffffff; padding: 6px; } .login-logo-area .default-icon { width: 72px; height: 72px; border-radius: 16px; background: linear-gradient(135deg, #6366f1, #8b5cf6); display: flex; align-items: center; justify-content: center; font-size: 36px; margin: 0 auto 12px; box-shadow: 0 4px 14px rgba(99, 102, 241, 0.3); } .login-logo-area h1 { font-size: 24px; font-weight: 700; color: #f8fafc; letter-spacing: 1px; } .login-logo-area p { font-size: 14px; color: #94a3b8; margin-top: 4px; } /* 表单输入 */ .login-form-group { margin-bottom: 20px; position: relative; } .login-form-group .input-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); font-size: 18px; z-index: 1; opacity: 0.6; } .login-input { width: 100%; padding: 14px 14px 14px 44px; font-size: 15px; font-family: var(--font-sans); color: #f8fafc; background: rgba(255, 255, 255, 0.06); border: 1.5px solid rgba(255, 255, 255, 0.12); border-radius: 12px; outline: none; transition: all 0.3s ease; } .login-input::placeholder { color: #64748b; } .login-input:focus { border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.2), 0 0 20px rgba(99, 102, 241, 0.1); background: rgba(255, 255, 255, 0.1); } /* 登录按钮 */ .login-btn { width: 100%; padding: 14px; font-size: 16px; font-weight: 600; font-family: var(--font-sans); color: white; background: linear-gradient(135deg, #6366f1, #4f46e5); border: none; border-radius: 12px; cursor: pointer; transition: all 0.3s ease; position: relative; overflow: hidden; margin-top: 8px; } .login-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(99, 102, 241, 0.5); } .login-btn:active { transform: translateY(0); } .login-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; } /* 错误信息 */ .login-error { background: rgba(239, 68, 68, 0.15); border: 1px solid rgba(239, 68, 68, 0.3); color: #fca5a5; padding: 10px 14px; border-radius: 10px; font-size: 14px; margin-bottom: 16px; text-align: center; animation: shake 0.4s ease; } @keyframes shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }