:root{--primary-color: #0071e3;--text-primary: #1d1d1f;--text-secondary: #86868b;--bg-color: #fbfbfd;--card-bg: rgba(255, 255, 255, .65);--input-bg: rgba(255, 255, 255, .8);--border-color: #d2d2d7;--success-color: #34c759}*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,sans-serif;background-color:var(--bg-color);color:var(--text-primary)}.login-container{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow:hidden}.background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:0;background:#fff}.bg-orb{position:absolute;border-radius:50%;filter:blur(100px);opacity:.6;mix-blend-mode:multiply}.bg-orb-1{width:800px;height:800px;background:radial-gradient(circle,#e0c3fc,#8ec5fc);top:-300px;right:-200px}.bg-orb-2{width:700px;height:700px;background:radial-gradient(circle,#ff9a9e,#fecfef);bottom:-200px;left:-200px}.bg-orb-3{width:600px;height:600px;background:radial-gradient(circle,#a18cd1,#fbc2eb);top:40%;left:40%;transform:translate(-50%,-50%)}.bg-gradient-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#fff6;-webkit-backdrop-filter:blur(60px);backdrop-filter:blur(60px)}.success-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#fffc;display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.success-check{transform:scale(0);opacity:0}.success-circle{stroke:var(--success-color);stroke-width:2}.success-checkmark{stroke:var(--success-color);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:50;stroke-dashoffset:50;animation:checkmarkDraw .6s ease forwards .3s}@keyframes checkmarkDraw{to{stroke-dashoffset:0}}.login-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;position:relative;z-index:1}.brand-section{text-align:center;margin-bottom:40px}.brand-icon{width:64px;height:64px;margin:0 auto 16px;border-radius:14px;overflow:hidden;box-shadow:0 10px 20px #0000001a}.brand-icon svg{width:100%;height:100%}.brand-title{font-size:28px;font-weight:600;color:var(--text-primary);letter-spacing:-.01em;margin-bottom:8px}.brand-subtitle{font-size:15px;color:var(--text-secondary);font-weight:400}.app-welcome{margin-top:16px;padding:8px 16px;background:#ffffff80;border-radius:20px;border:1px solid rgba(0,0,0,.05);display:inline-flex;align-items:center;animation:fadeInUp .5s ease forwards;animation-delay:.3s;opacity:0;box-shadow:0 2px 10px #00000005}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.app-welcome-text{font-size:13px;color:var(--text-secondary);margin-right:6px}.app-name{font-size:13px;font-weight:500;color:var(--primary-color)}.services-loading{margin-top:16px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--text-secondary);font-size:13px}.loading-spinner{width:14px;height:14px;border:2px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-card{background:var(--card-bg);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);border-radius:20px;padding:40px;width:100%;max-width:380px;box-shadow:0 4px 24px -1px #0000000d,0 0 0 1px #fff6 inset,0 0 0 1px #00000005}.wechat-login-btn{width:100%;height:50px;background:#07c160;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:10px;color:#fff;font-size:16px;font-weight:500;border:none;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.wechat-login-btn:hover{background:#06ad56;transform:scale(1.01)}.wechat-login-btn:active{transform:scale(.98)}.wechat-icon{width:24px;height:24px}.wechat-icon svg{width:100%;height:100%}.btn-arrow{margin-left:4px;font-size:14px;opacity:.8;transition:transform .3s}.wechat-login-btn:hover .btn-arrow{transform:translate(3px)}.divider{display:flex;align-items:center;gap:16px;margin:24px 0}.divider-line{flex:1;height:1px;background:#e5e5ea}.divider-text{font-size:12px;color:var(--text-secondary);white-space:nowrap}.phone-form{display:flex;flex-direction:column;gap:16px}.input-group{position:relative}.input-group input{width:100%;height:50px;padding:0 16px;font-size:16px;border:1px solid transparent;border-radius:12px;background:var(--input-bg);color:var(--text-primary);transition:all .2s ease;box-shadow:0 0 0 1px #0000000d}.input-group input::placeholder{color:#a1a1a6}.input-group input:hover{background:#fff}.input-group input:focus{background:#fff;border-color:var(--primary-color);box-shadow:0 0 0 4px #0071e326;outline:none}.submit-btn{width:100%;height:50px;background:var(--primary-color);color:#fff;font-size:16px;font-weight:500;border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;margin-top:8px}.submit-btn:hover{background:#0077ed;transform:translateY(-1px);box-shadow:0 4px 12px #0071e333}.submit-btn:active{transform:translateY(0);background:#006edb}.submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.footer-links{display:flex;justify-content:center;gap:8px;margin-top:24px;font-size:13px}.footer-links a{color:var(--text-secondary);text-decoration:none;transition:color .2s}.footer-links a:hover{color:var(--primary-color)}.footer-links .divider{margin:0;color:#e5e5ea}.services-list{margin-top:32px;width:100%;max-width:380px;text-align:center}.services-title{font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.service-item{background:#ffffff80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.4);padding:12px;border-radius:12px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:all .2s ease}.service-item:hover{background:#fffc;transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.service-status{font-size:10px}.service-item.online .service-status{color:var(--success-color)}.service-item.offline .service-status{color:var(--text-secondary)}.service-name{font-size:13px;color:var(--text-primary);flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.service-badge{font-size:10px;background:#0000000d;padding:2px 6px;border-radius:4px;color:var(--text-secondary)}.page-footer{padding:24px;text-align:center;position:relative;z-index:1}.page-footer p{font-size:12px;color:#a1a1a6}@media (max-width: 480px){.login-content{padding:20px}.brand-title{font-size:24px}.login-card{padding:30px 24px;box-shadow:none;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.input-group input{background:#fff}.bg-orb{opacity:.4}}.fade-in{animation:fadeIn .5s ease forwards}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #007AFF;--primary-hover: #0056CC;--text-primary: #1D1D1F;--text-secondary: #86868B;--background: #F5F5F7;--surface: #FFFFFF;--border: #D2D2D7;--success: #34C759;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .04);--shadow-md: 0 4px 20px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .08);--transition-fast: .2s cubic-bezier(.4, 0, .2, 1);--transition-medium: .35s cubic-bezier(.4, 0, .2, 1);--transition-slow: .5s cubic-bezier(.4, 0, .2, 1)}body{font-family:SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--background);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0003;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#0000004d}::selection{background:var(--primary-color);color:#fff}*:focus{outline:none}*:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}button{font-family:inherit;cursor:pointer;border:none;background:none}input{font-family:inherit}a{color:inherit;text-decoration:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer{background:linear-gradient(90deg,#fff0,#ffffff80,#fff0);background-size:200% 100%;animation:shimmer 1.5s infinite}
