:root { --primary: #6366f1; --primary-soft: rgba(99, 102, 241, 0.08); --surface: #ffffff; --background: #fcfdfe; } body { font-family: 'Plus Jakarta Sans', 'Noto Sans SC', sans-serif; background-color: var(--background); color: #1e293b; letter-spacing: -0.01em; } /* 布局装饰 */ .bg-mesh { position: fixed; inset: 0; z-index: -1; background-image: radial-gradient(at 0% 0%, rgba(99, 102, 241, 0.03) 0px, transparent 50%), radial-gradient(at 100% 100%, rgba(139, 92, 246, 0.03) 0px, transparent 50%); } /* 侧边栏玻璃拟态 */ .glass-sidebar { background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(20px) saturate(180%); } .auth-overlay { position: fixed; inset: 0; background: rgba(15, 23, 42, 0.6); backdrop-filter: blur(8px); z-index: 100; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; } .auth-card { background: white; width: 100%; max-width: 400px; padding: 2.5rem; border-radius: 2.5rem; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); } .custom-scrollbar::-webkit-scrollbar { width: 4px; } .custom-scrollbar::-webkit-scrollbar-thumb { background: #e2e8f0; border-radius: 10px; } .btn-primary { background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%); display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; transition: all 0.3s ease; } .logo-box { display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .image-frame { background: #ffffff; padding: 12px; border-radius: 3rem; box-shadow: 0 20px 50px -10px rgba(0,0,0,0.1); } /* 现代化通知系统 */ .toast-container { position: fixed; top: 2rem; right: 2rem; z-index: 9999; display: flex; flex-direction: column; gap: 1rem; pointer-events: none; } .toast { background: white; padding: 1rem 1.5rem; border-radius: 1rem; box-shadow: 0 10px 40px -10px rgba(0,0,0,0.2); border-left: 4px solid #6366f1; min-width: 300px; max-width: 400px; pointer-events: auto; animation: slideInRight 0.3s ease-out; display: flex; align-items: center; gap: 0.75rem; } .toast.success { border-left-color: #10b981; } .toast.error { border-left-color: #ef4444; } .toast.warning { border-left-color: #f59e0b; } .toast.info { border-left-color: #3b82f6; } @keyframes slideInRight { from { transform: translateX(400px); opacity: 0; } to { transform: translateX(0); opacity: 1; } } @keyframes slideOutRight { from { transform: translateX(0); opacity: 1; } to { transform: translateX(400px); opacity: 0; } }