/*!
 * SuperAIERP - 登录/星空业务样式（index + dashboard 共用）
 * 基础色变量定义于此，衍生透明度由 CSS color-mix / JS 计算
 */
/*!
 * SuperAIERP - 登录/星空业务样式（index + dashboard 共用）
 * 基础色变量定义于此，衍生透明度由 CSS color-mix / JS 计算
 */:root{--login-star-color: #f0f5ff;--login-star-tint: 255;--login-star-sat: 1;--login-star-tint-mix: 0;--login-moon-base: #c8dcff;--login-moon-shadow: #0f1423;--login-moon-shadow-mid: #141c2d;--login-sun-base: #fff0c8;--login-flow-line: #78b4ff;--login-constellation: #b4dcff;--login-polaris: #fffff0;--login-dipper: #ffd28c;--login-mouse-glow: #b4dcff}[data-theme=light]{--login-star-color: #fff5d2;--login-star-tint: 255;--login-star-sat: .3;--login-star-tint-mix: .3;--login-moon-base: #f0f5fa;--login-moon-shadow: #c8d2e1;--login-moon-shadow-mid: #b4c3d7;--login-sun-base: #ffdc78;--login-flow-line: #78a0c8;--login-constellation: #78a0c8;--login-polaris: #ffe696;--login-dipper: #c88c46;--login-mouse-glow: #ffc864}.index-sky-bg,.index-celestial{display:none}@media(min-width:768px){.index-sky-bg{display:block;position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 20% 20%,rgba(22,93,255,.04) 0%,transparent 60%),radial-gradient(ellipse at 80% 70%,rgba(54,191,255,.03) 0%,transparent 55%),linear-gradient(180deg,#f8fafc,#f0f5ff80,#f8fafc)}.index-sky-bg canvas{z-index:1}.index-celestial{display:block;z-index:999999;pointer-events:none}[data-theme=dark] .index-sky-bg{background:radial-gradient(ellipse at 20% 20%,rgba(22,93,255,.12) 0%,transparent 60%),radial-gradient(ellipse at 80% 70%,rgba(54,191,255,.08) 0%,transparent 55%),linear-gradient(180deg,#0f172a,#141e37,#0f172a)}}.login-watermark{position:absolute;inset:0;pointer-events:none;z-index:0}.login-watermark canvas{display:block;width:100%;height:100%}.login-sun.index-celestial,.login-moon.index-celestial{position:fixed}.login-moon{position:absolute;width:180px;height:180px;pointer-events:none;z-index:999999;opacity:0;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 40% 35%,var(--login-moon-base) 0%,color-mix(in srgb,var(--login-moon-base) 8%,transparent) 30%,color-mix(in srgb,var(--login-moon-base) 3%,transparent) 60%,transparent 70%),radial-gradient(circle at 55% 45%,2px 2px,rgba(255,255,255,.06) 1px,transparent 2px),radial-gradient(circle at 35% 55%,3px 3px,rgba(255,255,255,.04) 1px,transparent 3px),radial-gradient(circle at 50% 38%,4px 4px,rgba(255,255,255,.05) 1px,transparent 4px),radial-gradient(circle at 42% 60%,2px 2px,rgba(255,255,255,.04) 1px,transparent 2px);box-shadow:0 0 40px color-mix(in srgb,var(--login-moon-base) 15%,transparent),0 0 90px color-mix(in srgb,var(--login-moon-base) 8%,transparent),0 0 160px color-mix(in srgb,var(--login-moon-base) 4%,transparent),0 0 280px #3c82be05;animation:moonGlow 4s ease-in-out infinite;transition:left 1.5s cubic-bezier(.4,0,.2,1),top 1.5s cubic-bezier(.4,0,.2,1),opacity 1.5s ease}.login-moon .moon-shadow{position:absolute;inset:-8%;border-radius:50%;background:linear-gradient(90deg,color-mix(in srgb,var(--login-moon-shadow) 85%,transparent) 0%,color-mix(in srgb,var(--login-moon-shadow-mid) 60%,transparent) 50%,rgba(25,35,55,.15) 90%,transparent 100%);transition:transform .8s ease}@keyframes moonGlow{0%,to{box-shadow:0 0 40px color-mix(in srgb,var(--login-moon-base) 15%,transparent),0 0 90px color-mix(in srgb,var(--login-moon-base) 8%,transparent),0 0 160px color-mix(in srgb,var(--login-moon-base) 4%,transparent),0 0 280px #3c82be05}50%{box-shadow:0 0 55px color-mix(in srgb,var(--login-moon-base) 15%,transparent),0 0 120px color-mix(in srgb,var(--login-moon-base) 8%,transparent),0 0 200px color-mix(in srgb,var(--login-moon-base) 4%,transparent),0 0 340px #5091cd08}}.login-sun{position:absolute;width:200px;height:200px;pointer-events:none;z-index:999999;opacity:0;border-radius:50%;background:radial-gradient(circle at 45% 40%,var(--login-sun-base) 0%,color-mix(in srgb,var(--login-sun-base) 12%,transparent) 25%,color-mix(in srgb,var(--login-sun-base) 5%,transparent) 50%,transparent 70%),radial-gradient(circle at 52% 48%,3px 3px,rgba(255,255,220,.08) 1px,transparent 3px),radial-gradient(circle at 38% 42%,5px 5px,rgba(255,255,200,.06) 1px,transparent 5px),radial-gradient(circle at 48% 55%,2px 2px,rgba(255,255,180,.05) 1px,transparent 2px);box-shadow:0 0 50px color-mix(in srgb,var(--login-sun-base) 20%,transparent),0 0 100px color-mix(in srgb,var(--login-sun-base) 12%,transparent),0 0 180px #ff8c140f,0 0 300px #ff780a08;animation:sunGlow 3s ease-in-out infinite;transition:left 1.5s cubic-bezier(.4,0,.2,1),top 1.5s cubic-bezier(.4,0,.2,1),opacity 1.5s ease}@keyframes sunGlow{0%,to{box-shadow:0 0 50px color-mix(in srgb,var(--login-sun-base) 20%,transparent),0 0 100px color-mix(in srgb,var(--login-sun-base) 12%,transparent),0 0 180px #ff8c140f,0 0 300px #ff780a08}50%{box-shadow:0 0 70px color-mix(in srgb,var(--login-sun-base) 20%,transparent),0 0 140px color-mix(in srgb,var(--login-sun-base) 12%,transparent),0 0 230px #ff9b2317,0 0 380px #ff82140d}}html.has-token #loginOverlay{display:none}#loginOverlay{position:fixed;inset:0;z-index:10000;pointer-events:none}.login-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 20% 20%,color-mix(in srgb,var(--primary) 6%,transparent) 0%,transparent 60%),radial-gradient(ellipse at 80% 70%,color-mix(in srgb,var(--accent-cyan) 4%,transparent) 0%,transparent 55%),radial-gradient(ellipse at 50% 40%,color-mix(in srgb,var(--primary) 3%,transparent) 0%,transparent 50%),linear-gradient(160deg,var(--bg-stars) 0%,color-mix(in srgb,var(--bg-stars) 82%,var(--primary) 18%) 30%,color-mix(in srgb,var(--bg-stars) 90%,var(--bg-stars-shade)) 60%,color-mix(in srgb,var(--bg-stars) 55%,var(--bg-stars-shade)) 100%);backdrop-filter:blur(4px)}.login-bg:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 35%,transparent 40%,color-mix(in srgb,var(--bg-stars-shade) 35%,transparent) 85%);z-index:0}.login-glow-top{position:absolute;top:-30%;left:50%;transform:translate(-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(var(--primary-rgb),.08) 0%,transparent 70%);border-radius:50%;pointer-events:none;animation:glowBreathe 4s ease-in-out infinite}.login-glow-bottom{position:absolute;bottom:-20%;right:-10%;width:400px;height:400px;background:radial-gradient(circle,rgba(var(--accent-cyan-rgb),.05) 0%,transparent 70%);border-radius:50%;pointer-events:none;animation:glowBreathe 4s ease-in-out infinite 2s}.login-card{position:fixed;top:45%;left:50%;transform:translate(-50%,-50%);width:400px;max-width:calc(100vw - 2rem);padding:2.5rem 2rem;z-index:10001;pointer-events:auto;background:color-mix(in srgb,var(--bg-stars) 72%,transparent);backdrop-filter:blur(30px) saturate(180%);-webkit-backdrop-filter:blur(30px) saturate(180%);border-radius:16px;border:1px solid color-mix(in srgb,var(--text-primary) 8%,transparent);box-shadow:0 8px 32px color-mix(in srgb,black 40%,transparent),0 0 80px color-mix(in srgb,var(--primary) 8%,transparent),0 0 160px color-mix(in srgb,var(--primary) 8%,transparent),inset 0 1px 1px color-mix(in srgb,white 4%,transparent),inset 0 -1px 1px color-mix(in srgb,black 10%,transparent);animation:cardBreathe 5s ease-in-out infinite}.login-decor{position:absolute;top:0;left:20%;right:20%;height:2px;background:linear-gradient(90deg,transparent,rgba(var(--primary-rgb),.4),rgba(var(--accent-cyan-rgb),.4),transparent);border-radius:0 0 2px 2px;animation:decorBreathe 4s ease-in-out infinite}.login-close{position:absolute;top:.75rem;right:.75rem;width:32px;height:32px;border-radius:50%;border:none;background:transparent;color:var(--text-muted);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .25s;z-index:2}.login-close:hover{background:var(--danger-hover-bg);color:var(--danger);transform:rotate(90deg)}.sep-btn.login-close{position:absolute;top:.75rem;right:.75rem;width:32px;height:32px;border-radius:50%;border:none;background:transparent;color:var(--text-muted);padding:0;gap:0;min-width:unset;display:flex;align-items:center;justify-content:center;transition:all .25s;z-index:2}.sep-btn.login-close:hover{background:var(--danger-hover-bg);color:var(--danger);transform:rotate(90deg)}.sep-btn.login-close .sep-btn-icon{font-size:1.1rem}.login-logo-ring{position:absolute;inset:-6px;background:conic-gradient(from 0deg,var(--primary),var(--accent-cyan),var(--primary));border-radius:18px;opacity:.2;animation:spin 6s linear infinite,ringBreathe 3s ease-in-out infinite}.login-logo-box{position:relative;width:72px;height:72px;background:linear-gradient(135deg,rgba(var(--primary-rgb),.2),rgba(var(--accent-cyan-rgb),.12));border-radius:16px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(var(--primary-rgb),.2);overflow:hidden}.login-center{text-align:center;margin-bottom:1.5rem}.login-logo-wrap{position:relative;width:72px;height:72px;margin:0 auto .75rem}.login-logo-img{width:42px;height:42px;object-fit:contain}.login-title{font-size:1.25rem;font-weight:700;margin-bottom:.25rem;letter-spacing:.02em}.login-subtitle{color:var(--text-muted);font-size:.75rem}.login-input-wrap{margin-bottom:1rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:12px;padding:.1rem 1rem;transition:all .25s}.login-input-wrap:focus-within{border-color:rgba(var(--primary-rgb),.7);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.08);background:rgba(var(--primary-rgb),.04)}#loginBtn{display:flex;justify-content:center}.login-error{color:var(--danger);font-size:.75rem;text-align:center;margin-bottom:.5rem;min-height:1rem;display:none}.login-hint{text-align:center;font-size:.7rem;color:var(--text-secondary);margin-bottom:.6rem}.login-hint-icon{margin-right:.25rem;display:inline-flex;align-items:center;vertical-align:middle}.login-hint-icon svg{width:1em;height:1em}.login-code{color:var(--text-secondary);font-family:monospace}.login-btn-icon{margin-right:.5rem;display:inline-flex;align-items:center;vertical-align:middle}.login-btn-icon svg{width:.9em;height:.9em}.login-spinner{display:inline-block;width:14px;height:14px;border:2px solid color-mix(in srgb,var(--text-on-primary) 25%,transparent);border-top-color:var(--text-on-primary);border-radius:50%;animation:spin .6s linear infinite;margin-right:.5rem;vertical-align:middle}.login-btn.loading{pointer-events:none;position:relative;overflow:hidden}.login-btn.loading:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,white 15%,transparent) 50%,transparent 100%);animation:shimmer 1.5s ease-in-out infinite}.login-btn.loading .login-btn-icon{display:none}.login-btn.loading .login-btn-text:before{content:"";display:inline-block;width:14px;height:14px;border:2px solid color-mix(in srgb,var(--text-on-primary) 25%,transparent);border-top-color:var(--text-on-primary);border-radius:50%;animation:spin .6s linear infinite;margin-right:.5rem;vertical-align:middle}.login-demo-wrap{text-align:center;margin-top:.8rem;font-size:.72rem;color:var(--text-secondary)}.login-demo-badge{background:#f59e0b1f;color:var(--warning);padding:.15rem .6rem;border-radius:4px;border:1px solid rgba(245,158,11,.2)}.login-notice-text{text-align:center;margin:.6rem auto 0;max-width:280px;font-size:.68rem;color:var(--text-secondary);line-height:1.55;padding:.4rem .7rem;background:var(--bg-hover);border:1px solid var(--border-light);border-left:3px solid var(--border-color);border-radius:4px}.login-notice-text .login-notice-icon{color:var(--text-secondary);font-size:.7rem;opacity:.65;margin-right:.2rem;display:inline-flex;align-items:center;vertical-align:middle}.login-notice-text .login-notice-icon svg{width:1em;height:1em}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes glowBreathe{0%,to{opacity:.5}50%{opacity:1}}@keyframes cardBreathe{0%,to{box-shadow:0 8px 32px color-mix(in srgb,black 40%,transparent),0 0 80px color-mix(in srgb,var(--primary) 8%,transparent)}50%{box-shadow:0 8px 32px color-mix(in srgb,black 40%,transparent),0 0 160px color-mix(in srgb,var(--primary) 8%,transparent)}}@keyframes decorBreathe{0%,to{opacity:.5}50%{opacity:1}}@media(max-width:480px){.login-card{padding:1.75rem 1.25rem}.login-center{margin-bottom:1.25rem}.login-logo-wrap{width:60px;height:60px;margin-bottom:.5rem}.login-logo-box{width:60px;height:60px}.login-logo-img{width:36px;height:36px}.login-title{font-size:1.1rem}.login-btn{padding:.65rem;font-size:.9rem}.login-sun{width:100px;height:100px;box-shadow:0 0 25px color-mix(in srgb,var(--login-sun-base) 20%,transparent),0 0 50px color-mix(in srgb,var(--login-sun-base) 12%,transparent),0 0 90px #ff8c140f,0 0 150px #ff780a08}.login-moon{width:90px;height:90px;box-shadow:0 0 20px color-mix(in srgb,var(--login-moon-base) 15%,transparent),0 0 45px color-mix(in srgb,var(--login-moon-base) 8%,transparent),0 0 80px color-mix(in srgb,var(--login-moon-base) 4%,transparent),0 0 140px #3c82be05}@keyframes sunGlowMobile{0%,to{box-shadow:0 0 25px color-mix(in srgb,var(--login-sun-base) 20%,transparent),0 0 50px color-mix(in srgb,var(--login-sun-base) 12%,transparent),0 0 90px #ff8c140f,0 0 150px #ff780a08}50%{box-shadow:0 0 35px color-mix(in srgb,var(--login-sun-base) 20%,transparent),0 0 70px color-mix(in srgb,var(--login-sun-base) 12%,transparent),0 0 115px #ff9b2317,0 0 190px #ff82140d}}@keyframes moonGlowMobile{0%,to{box-shadow:0 0 20px color-mix(in srgb,var(--login-moon-base) 15%,transparent),0 0 45px color-mix(in srgb,var(--login-moon-base) 8%,transparent),0 0 80px color-mix(in srgb,var(--login-moon-base) 4%,transparent),0 0 140px #3c82be05}50%{box-shadow:0 0 28px color-mix(in srgb,var(--login-moon-base) 15%,transparent),0 0 60px color-mix(in srgb,var(--login-moon-base) 8%,transparent),0 0 100px color-mix(in srgb,var(--login-moon-base) 4%,transparent),0 0 170px #5091cd08}}.login-sun{animation-name:sunGlowMobile}.login-moon{animation-name:moonGlowMobile}}
