:root{--primary-50:#eff6ff;--primary-100:#dbeafe;--primary-200:#bfdbfe;--primary-500:#3b82f6;--primary-600:#2563eb;--primary-700:#1d4ed8;--primary-900:#1e3a8a;--accent-cyan:#06b6d4;--accent-sky:#0ea5e9;--accent-emerald:#10b981;--accent-violet:#8b5cf6;--accent-amber:#f59e0b;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--success-50:#f0fdf4;--success-500:#22c55e;--success-600:#16a34a;--warning-50:#fffbeb;--warning-500:#f59e0b;--warning-600:#d97706;--error-50:#fef2f2;--error-500:#ef4444;--error-600:#dc2626;--info-50:#eff6ff;--info-500:#3b82f6;--info-600:#2563eb;--shadow-flat:none;--shadow-low:0 1px 3px rgba(0,0,0,.1);--shadow-medium:0 4px 12px rgba(0,0,0,.1);--shadow-high:0 8px 32px rgba(0,0,0,.12);--shadow-floating:0 16px 48px rgba(0,0,0,.15);--shadow-neu-light:5px 5px 10px rgba(37,99,235,.2),-5px -5px 10px rgba(59,130,246,.2);--shadow-neu-hover:6px 6px 12px rgba(37,99,235,.25),-6px -6px 12px rgba(59,130,246,.25);--glass-bg-light:hsla(0,0%,100%,.95);--glass-bg-dark:rgba(15,23,42,.85);--glass-blur:12px;--glass-border:hsla(0,0%,100%,.3);--font-heading:"Inter",sans-serif;--font-body:"Inter",sans-serif;--font-mono:"JetBrains Mono",monospace;--font-zh:"Noto Sans TC",sans-serif;--text-xs:clamp(0.7rem,0.65rem + 0.25vw,0.75rem);--text-sm:clamp(0.8rem,0.75rem + 0.3vw,0.875rem);--text-base:clamp(0.9rem,0.85rem + 0.4vw,1rem);--text-lg:clamp(1rem,0.95rem + 0.5vw,1.125rem);--text-xl:clamp(1.125rem,1.05rem + 0.6vw,1.25rem);--text-2xl:clamp(1.25rem,1.15rem + 1vw,1.5rem);--text-3xl:clamp(1.5rem,1.4rem + 1.5vw,1.875rem);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--duration-fast:150ms;--duration-normal:250ms;--duration-slow:400ms;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-8:3rem;--space-10:4rem;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px}.galaxy-node-file{background:var(--gray-50);border:1px solid var(--gray-400);border-radius:var(--radius-sm);width:180px;font-size:var(--text-xs);contain:layout style}.galaxy-node-framework{background:var(--success-50);border:2px solid var(--success-600);border-radius:var(--radius-md);width:220px;font-weight:600;contain:layout style}.galaxy-node-data{background:linear-gradient(135deg,rgba(6,182,212,.1),rgba(6,182,212,.05));border:2px solid var(--accent-cyan);box-shadow:0 0 12px rgba(6,182,212,.3)}.galaxy-node-information{background:linear-gradient(135deg,rgba(14,165,233,.1),rgba(14,165,233,.05));border:2px solid var(--accent-sky);box-shadow:0 0 12px rgba(14,165,233,.3)}.galaxy-node-knowledge{background:linear-gradient(135deg,rgba(16,185,129,.1),rgba(16,185,129,.05));border:2px solid var(--accent-emerald);box-shadow:0 0 12px rgba(16,185,129,.3)}.galaxy-node-wisdom{background:linear-gradient(135deg,rgba(139,92,246,.1),rgba(139,92,246,.05));border:2px solid var(--accent-violet);box-shadow:0 0 12px rgba(139,92,246,.3)}.gpu-accelerate{transform:translateZ(0);will-change:transform,opacity;backface-visibility:hidden}.contain-layout{contain:layout}.contain-style{contain:style}.contain-paint{contain:paint}.contain-strict{contain:layout style paint}.glass-light{backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}.glass-critical,.glass-light{background:var(--glass-bg-light);border:1px solid var(--glass-border)}.glass-critical{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow-floating)}.glass-dark{background:var(--glass-bg-dark);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid hsla(0,0%,100%,.1)}.btn-neumorphism{background:linear-gradient(145deg,var(--primary-500),var(--primary-600));box-shadow:var(--shadow-neu-light);transition:all var(--duration-normal) var(--ease-in-out)}.btn-neumorphism:hover{transform:translateY(-1px);box-shadow:var(--shadow-neu-hover)}.btn-neumorphism:active{transform:translateY(0)}.hover-lift{transition:transform var(--duration-normal) var(--ease-in-out),box-shadow var(--duration-normal) var(--ease-in-out)}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-medium)}@keyframes node-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.02)}}.animate-pulse-slow{animation:node-pulse 3s var(--ease-in-out) infinite}@keyframes glow{0%,to{box-shadow:0 0 8px currentColor}50%{box-shadow:0 0 16px currentColor}}.animate-glow{animation:glow 2s var(--ease-in-out) infinite}.galaxy-graph-container{position:relative;overflow:hidden}.galaxy-background{background:radial-gradient(ellipse at 20% 80%,rgba(6,182,212,.08) 0,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(139,92,246,.08) 0,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(16,185,129,.05) 0,transparent 70%),var(--gray-900)}.galaxy-background:before{content:"";position:absolute;inset:0;background-image:radial-gradient(1px 1px at 20px 30px,hsla(0,0%,100%,.15),transparent),radial-gradient(1px 1px at 40px 70px,hsla(0,0%,100%,.1),transparent),radial-gradient(1px 1px at 50px 160px,hsla(0,0%,100%,.12),transparent),radial-gradient(1px 1px at 90px 40px,hsla(0,0%,100%,.08),transparent),radial-gradient(1px 1px at 130px 80px,hsla(0,0%,100%,.1),transparent),radial-gradient(1px 1px at 160px 120px,hsla(0,0%,100%,.15),transparent);background-repeat:repeat;background-size:200px 200px;animation:twinkle 8s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.5}50%{opacity:1}}.galaxy-flow .react-flow__node{transition:transform .2s ease,box-shadow .2s ease}.galaxy-flow .react-flow__node:hover{transform:scale(1.05);z-index:10}.galaxy-flow .react-flow__node.selected{box-shadow:0 0 0 2px var(--accent-violet),0 0 24px rgba(139,92,246,.5)}.galaxy-controls{background:var(--glass-bg-dark)!important;border:1px solid hsla(0,0%,100%,.1)!important;border-radius:var(--radius-md)!important;backdrop-filter:blur(8px)}.galaxy-controls button{background:transparent!important;border-bottom:1px solid hsla(0,0%,100%,.1)!important;color:var(--gray-300)!important}.galaxy-controls button:hover{background:hsla(0,0%,100%,.1)!important}.galaxy-controls button:last-child{border-bottom:none!important}.galaxy-minimap{background:var(--glass-bg-dark)!important;border:1px solid hsla(0,0%,100%,.1)!important;border-radius:var(--radius-md)!important}.galaxy-flow .react-flow__edge-path{stroke-dasharray:5;animation:energy-flow 1s linear infinite}@keyframes energy-flow{0%{stroke-dashoffset:10}to{stroke-dashoffset:0}}.galaxy-flow .react-flow__attribution{background:transparent!important}.galaxy-flow .react-flow__attribution a{color:var(--gray-600)!important;font-size:10px!important}.input-glow:focus{box-shadow:0 0 0 3px rgba(59,130,246,.15);border-color:var(--primary-500);transition:all var(--duration-fast) var(--ease-in-out)}.input-glow:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.2)}.input-success{border-color:var(--success-500)!important;box-shadow:0 0 0 3px rgba(34,197,94,.15)}.input-error{border-color:var(--error-500)!important;box-shadow:0 0 0 3px rgba(239,68,68,.15);animation:shake .4s ease-in-out}@keyframes shake{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:"";position:absolute;inset:0;background:radial-gradient(circle,hsla(0,0%,100%,.3) 0,transparent 70%);transform:scale(0);opacity:0;transition:transform .5s ease,opacity .3s ease}.btn-ripple:active:after{transform:scale(2);opacity:1;transition:transform 0s,opacity 0s}.card-interactive{transition:transform var(--duration-normal) var(--ease-spring),box-shadow var(--duration-normal) var(--ease-in-out)}.card-interactive:hover{transform:translateY(-4px);box-shadow:var(--shadow-high)}.card-interactive:active{transform:translateY(-2px)}@keyframes success-pop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.animate-success{animation:success-pop .4s var(--ease-spring) forwards}.progress-bar{position:relative;overflow:hidden;background:var(--gray-200);border-radius:var(--radius-full)}.progress-bar:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.4) 50%,transparent);animation:shimmer-progress 1.5s infinite}@keyframes shimmer-progress{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-500),var(--accent-violet));border-radius:var(--radius-full);transition:width var(--duration-normal) var(--ease-in-out)}.file-status-pending{position:relative}.file-status-pending:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent-amber),var(--warning-500));animation:status-pulse 1.5s ease-in-out infinite}@keyframes status-pulse{0%,to{opacity:.6}50%{opacity:1}}.file-status-synced:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--success-500)}@keyframes upload-flow{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.upload-flow-border{background:linear-gradient(90deg,var(--accent-cyan),var(--accent-sky),var(--accent-emerald),var(--accent-violet));background-size:300% 100%;animation:upload-flow 3s ease infinite;padding:2px;border-radius:var(--radius-lg)}.upload-flow-border>*{background:var(--gray-50);border-radius:calc(var(--radius-lg) - 2px)}.floating-label{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--gray-400);font-size:var(--text-sm);pointer-events:none;transition:all var(--duration-fast) var(--ease-in-out)}.floating-label-active{top:-8px;transform:translateY(0);font-size:var(--text-xs);color:var(--primary-500);background:#fff;padding:0 4px}.skeleton{background:linear-gradient(90deg,var(--gray-200) 25%,var(--gray-100) 50%,var(--gray-200) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes slide-in-right{0%{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slide-in-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-in-down{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-in-right{animation:slide-in-right .3s var(--ease-spring) forwards}.animate-slide-in-up{animation:slide-in-up .3s var(--ease-spring) forwards}.animate-slide-in-down{animation:slide-in-down .3s var(--ease-spring) forwards}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.glass-card{background:rgba(18,24,46,.7);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:1px solid hsla(0,0%,100%,.1);box-shadow:0 8px 32px 0 rgba(0,0,0,.37),inset 0 1px 0 hsla(0,0%,100%,.1)}.glass-card:hover{box-shadow:0 12px 40px 0 rgba(0,0,0,.4),0 0 20px rgba(0,217,255,.1),inset 0 1px 0 hsla(0,0%,100%,.15)}.glass-modal{background:rgba(26,34,56,.85);backdrop-filter:blur(24px) saturate(200%);-webkit-backdrop-filter:blur(24px) saturate(200%);box-shadow:0 12px 48px 0 rgba(0,0,0,.5),inset 0 1px 0 hsla(0,0%,100%,.15)}.glass-modal,.glass-tooltip{border:1px solid hsla(0,0%,100%,.15)}.glass-tooltip{background:rgba(18,24,46,.9);backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%)}.glass-glow{background:rgba(18,24,46,.7);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:1px solid rgba(0,217,255,.3);box-shadow:0 8px 32px 0 rgba(0,217,255,.2),inset 0 1px 0 rgba(0,217,255,.1)}.glass-glow:hover{border-color:rgba(0,217,255,.5);box-shadow:0 12px 40px 0 rgba(0,217,255,.3),inset 0 1px 0 rgba(0,217,255,.15)}.glass-danger{border:1px solid rgba(255,51,102,.4);box-shadow:0 8px 32px 0 rgba(255,51,102,.15),inset 0 1px 0 rgba(255,51,102,.1)}.glass-danger,.glass-success{background:rgba(18,24,46,.7);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}.glass-success{border:1px solid rgba(0,255,136,.4);box-shadow:0 8px 32px 0 rgba(0,255,136,.15),inset 0 1px 0 rgba(0,255,136,.1)}.glass-warning{border:1px solid rgba(255,184,0,.4);box-shadow:0 8px 32px 0 rgba(255,184,0,.15),inset 0 1px 0 rgba(255,184,0,.1)}.glass-ai,.glass-warning{background:rgba(18,24,46,.7);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}.glass-ai{border:1px solid rgba(167,139,250,.3);box-shadow:0 8px 32px 0 rgba(167,139,250,.2),inset 0 1px 0 rgba(167,139,250,.1)}.war-room-background{position:fixed;inset:0;pointer-events:none;z-index:0}.war-room-gradient{position:absolute;inset:0;background:linear-gradient(to bottom right,#0a0e27,#12182e,#0a0e27);opacity:.8}.war-room-grid{position:absolute;inset:0;opacity:.1;background-image:linear-gradient(rgba(0,217,255,.1) 1px,transparent 0),linear-gradient(90deg,rgba(0,217,255,.1) 1px,transparent 0);background-size:50px 50px}.war-room-glow-1{top:0;left:25%;background:rgba(0,217,255,.1)}.war-room-glow-1,.war-room-glow-2{position:absolute;width:24rem;height:24rem;border-radius:9999px;filter:blur(48px)}.war-room-glow-2{bottom:0;right:25%;background:rgba(167,139,250,.1)}.scanline-effect{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .3s ease}.scanline-effect:before{content:"";position:absolute;width:100%;height:2px;background:linear-gradient(90deg,transparent,rgba(0,217,255,.8),transparent);animation:scanline 3s linear infinite}.group:hover .scanline-effect{opacity:.2}.pulse-ring{position:absolute;inset:-4px;border-radius:inherit;border:2px solid;opacity:0;animation:pulse-ring 2s ease-in-out infinite}@keyframes pulse-ring{0%,to{opacity:0;transform:scale(1)}50%{opacity:.5;transform:scale(1.02)}}@media (prefers-reduced-motion:reduce){.glass-card:hover,.glass-glow:hover,.pulse-ring,.scanline-effect:before{animation:none;transition:none}}