.debate-tree-wrapper{position:relative;width:100%;height:500px;overflow:hidden;cursor:grab;background:linear-gradient(135deg,#0f172a,#1e293b,#0f172a);border-radius:16px;margin:0 auto;max-width:1280px}.debate-tree-wrapper:active{cursor:grabbing}.debate-tree-canvas{position:absolute;transform-origin:0 0;transition:transform .1s ease-out}.debate-tree-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.tree-connector{stroke:#94a3b866;stroke-width:2;fill:none;stroke-dasharray:6 3;animation:dash-flow 1.5s linear infinite}.tree-connector.done{stroke-dasharray:none;stroke:#94a3b833;animation:none}.tree-connector.active{stroke:#38bdf899;stroke-dasharray:6 3}@keyframes dash-flow{to{stroke-dashoffset:-18}}.tree-node{position:absolute;z-index:2;transition:opacity .4s ease,transform .3s ease}.tree-root-node{background:linear-gradient(135deg,#38bdf826,#a855f726);border:1px solid rgba(56,189,248,.4);border-radius:16px;padding:16px 24px;min-width:240px;max-width:400px;transform:translate(-50%)}.tree-root-node .node-icon{font-size:24px}.tree-root-node .node-label{font-size:14px;color:#e2e8f0;font-weight:600;margin-top:6px;word-break:break-word}.tree-perspective-node{background:linear-gradient(135deg,#a855f71a,#38bdf80d);border:1px solid rgba(168,85,247,.35);border-radius:12px;padding:12px 20px;min-width:180px;max-width:280px;transform:translate(-50%);text-align:center}.tree-perspective-node .node-badge{font-size:11px;color:#a855f7;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.tree-perspective-node .node-label{font-size:13px;color:#cbd5e1;font-weight:500;margin-top:4px}.tree-perspective-node .node-focus{font-size:11px;color:#64748b;margin-top:4px}.tree-round-box{position:absolute;background:#1e293b80;border:1px solid rgba(71,85,105,.25);border-radius:10px;padding:6px 12px;transform:translate(-50%);min-width:80px;text-align:center}.tree-round-box .tree-round-label{font-size:11px;color:#64748b;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.tree-round-group{position:absolute;display:flex;gap:14px;transform:translate(-50%);min-height:100px;align-items:flex-start;padding:0 4px}.tree-argument-card{background:#1e293bcc;border:1px solid rgba(71,85,105,.3);border-radius:10px;padding:10px 14px;min-width:140px;max-width:180px;font-size:12px;transition:border-color .3s,box-shadow .3s}.tree-argument-card:hover{box-shadow:0 4px 16px #0000004d}.tree-argument-card .arg-role{font-size:11px;font-weight:600;margin-bottom:6px}.tree-argument-card .arg-text{color:#94a3b8;line-height:1.5;max-height:120px;overflow-y:auto}.tree-argument-card .arg-text::-webkit-scrollbar{width:4px}.tree-argument-card .arg-text::-webkit-scrollbar-thumb{background:#334155;border-radius:2px}.tree-argument-card.streaming .arg-text:after{content:"▌";animation:blink .8s infinite;color:#38bdf8}.tree-argument-card.thinking{display:flex;align-items:center;justify-content:center;min-height:60px}.tree-argument-card.thinking .dots{display:flex;gap:4px}.tree-argument-card.thinking .dots span{width:6px;height:6px;border-radius:50%;background:#475569;animation:dot-bounce 1.2s infinite}.tree-argument-card.thinking .dots span:nth-child(2){animation-delay:.2s}.tree-argument-card.thinking .dots span:nth-child(3){animation-delay:.4s}@keyframes dot-bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}@keyframes blink{50%{opacity:0}}.role-zheng{border-color:#38bdf880!important}.role-zheng .arg-role{color:#38bdf8}.role-fan{border-color:#ef444480!important}.role-fan .arg-role{color:#ef4444}.role-li{border-color:#a855f780!important}.role-li .arg-role{color:#a855f7}.tree-summary-node{background:linear-gradient(135deg,#22d3ee1a,#38bdf80d);border:1px solid rgba(34,211,238,.4);border-radius:10px;padding:10px 16px;min-width:160px;max-width:220px;transform:translate(-50%);text-align:center}.tree-summary-node .summary-label{font-size:10px;color:#22d3ee;text-transform:uppercase}.tree-summary-node .summary-text{font-size:12px;color:#cbd5e1;margin-top:6px;line-height:1.5}.tree-summary-node .summary-text.streaming:after{content:"▌";animation:blink .8s infinite;color:#22d3ee}.tree-final-node{background:linear-gradient(135deg,#34d3991f,#22d3ee14);border:2px solid rgba(52,211,153,.5);border-radius:16px;padding:16px 24px;width:420px;max-width:460px;transform:translate(-50%);animation:final-glow 2s ease-in-out infinite}@keyframes final-glow{0%,to{box-shadow:0 0 20px #34d3991a}50%{box-shadow:0 0 40px #34d39940}}.tree-final-node .final-icon{font-size:20px;text-align:center;color:#22d3ee}.tree-final-node .final-text{font-size:13px;color:#e2e8f0;line-height:1.6;margin-top:8px;word-break:break-word;overflow-wrap:break-word;max-height:360px;overflow-y:auto}.tree-final-node .final-text.streaming:after{content:"▌";animation:blink .8s infinite;color:#34d399}.tree-controls{position:absolute;bottom:16px;right:16px;display:flex;gap:8px;z-index:10}.tree-controls button{width:36px;height:36px;border-radius:8px;border:1px solid rgba(148,163,184,.3);touch-action:manipulation;background:#1e293bcc;color:#94a3b8;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.tree-controls button:hover{background:#38bdf833;border-color:#38bdf866;color:#e2e8f0}.tree-legend{position:absolute;top:12px;right:12px;display:flex;gap:12px;z-index:10;font-size:11px;color:#64748b}.tree-legend span{display:flex;align-items:center;gap:4px}.tree-legend .dot{width:8px;height:8px;border-radius:50%}@media (max-width: 768px){.debate-tree-wrapper{height:400px!important;margin:0 auto;border-radius:0;touch-action:none;-webkit-overflow-scrolling:touch}.debate-tree-canvas{transition:none}.tree-argument-card{min-width:110px;max-width:140px;font-size:11px;padding:8px 10px}.tree-argument-card .arg-role{font-size:10px}.tree-root-node{min-width:180px;max-width:300px;padding:12px 16px}.tree-perspective-node{min-width:140px;max-width:220px;padding:10px 14px}.tree-summary-node{min-width:120px;max-width:180px}.tree-final-node{min-width:200px;max-width:320px}.tree-controls{bottom:10px;right:10px;gap:6px}.tree-controls button{width:32px;height:32px;font-size:16px}}.treehole-page{flex:1;display:flex;flex-direction:column;min-height:0;background:linear-gradient(135deg,#fdf6f0,#fce8f4,#ede9f8);position:relative;overflow:hidden}.treehole-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 60% 40% at 20% 20%,rgba(255,182,193,.25) 0%,transparent 70%),radial-gradient(ellipse 50% 50% at 80% 80%,rgba(186,160,234,.2) 0%,transparent 60%);pointer-events:none}.treehole-header>.btn-back-home{align-self:flex-start;margin-bottom:12px;display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:10px;border:1px solid rgba(0,0,0,.1);background:#fff;color:var(--text-secondary);font-size:13px;font-weight:500;text-decoration:none;transition:all .2s ease;flex-shrink:0}.treehole-header>.btn-back-home:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);box-shadow:0 2px 8px #3b82f61a}.treehole-header{padding:24px 24px 16px;display:flex;flex-direction:column;gap:12px;position:relative;z-index:1;flex-shrink:0}.treehole-header-main{display:flex;align-items:center;gap:16px}.treehole-icon{width:52px;height:52px;background:linear-gradient(135deg,#f9a8d4,#c084fc);border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:26px;box-shadow:0 4px 20px #c084fc59;flex-shrink:0}.treehole-header-text h1{font-size:22px;font-weight:700;color:#4a2040;margin:0 0 4px;letter-spacing:.5px}.treehole-header-text p{font-size:13px;color:#4a20408c;margin:0}.treehole-mood-bar{padding:0 24px 14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:relative;z-index:1;flex-shrink:0}.treehole-mood-label{font-size:13px;color:#4a204080;margin-right:4px}.treehole-mood-btn{padding:5px 14px;border-radius:20px;border:1.5px solid rgba(192,132,252,.3);background:#fff9;color:#4a2040b3;font-size:13px;cursor:pointer;transition:all .18s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);white-space:nowrap}.treehole-mood-btn:hover{border-color:#c084fc99;background:#c084fc1f;color:#7c3aed}.treehole-mood-btn.selected{background:linear-gradient(135deg,#f9a8d4,#c084fc);border-color:transparent;color:#fff;box-shadow:0 2px 10px #c084fc66}.treehole-messages{flex:1;min-height:0;overflow-y:auto;padding:8px 24px 16px;display:flex;flex-direction:column;gap:20px;position:relative;z-index:1;scroll-behavior:smooth}.treehole-messages::-webkit-scrollbar{width:4px}.treehole-messages::-webkit-scrollbar-thumb{background:#c084fc40;border-radius:4px}.treehole-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#4a204066}.treehole-empty-icon{font-size:54px;filter:drop-shadow(0 4px 12px rgba(192,132,252,.3))}.treehole-empty p{font-size:15px;margin:0}.treehole-empty small{font-size:12px;opacity:.7}.treehole-msg{display:flex;flex-direction:column;gap:10px;animation:thMsgIn .35s cubic-bezier(.16,1,.3,1) both}@keyframes thMsgIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.treehole-msg-user{align-self:flex-end;max-width:72%}.treehole-msg-ai{align-self:flex-start;max-width:82%}.treehole-bubble-user{padding:12px 18px;background:linear-gradient(135deg,#f9a8d4,#c084fc);color:#fff;border-radius:18px 18px 4px;font-size:15px;line-height:1.6;box-shadow:0 4px 18px #c084fc4d;word-break:break-word}.treehole-bubble-ai{padding:14px 18px;background:#ffffffd1;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#3d1f38;border-radius:4px 18px 18px;font-size:15px;line-height:1.8;box-shadow:0 4px 20px #0000000f,0 0 0 1px #ffffff80;word-break:break-word;border:1px solid rgba(249,168,212,.2)}.treehole-bubble-ai p{margin:0 0 6px}.treehole-bubble-ai p:last-child{margin-bottom:0}.treehole-bubble-ai .thinking-block{color:#9ca3af;font-style:italic;font-size:13px;line-height:1.6;padding:6px 10px;margin-bottom:10px;border-left:2px solid #d1d5db;background:#9ca3af0f;border-radius:0 6px 6px 0;white-space:pre-wrap;word-break:break-word}.treehole-msg-meta{font-size:11px;color:#4a204059;padding:0 4px}.treehole-msg-user .treehole-msg-meta{text-align:right}.treehole-mood-tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;background:#f9a8d433;color:#be185d;margin-left:6px}.treehole-typing{display:flex;align-items:center;gap:10px;padding:0 4px;animation:thMsgIn .3s ease both}.treehole-typing-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#f9a8d4,#c084fc);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.treehole-typing-dots{display:flex;gap:5px;align-items:center;background:#fffc;padding:10px 16px;border-radius:18px;box-shadow:0 2px 10px #0000000d}.treehole-typing-dots span{width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,#f9a8d4,#c084fc);animation:thDotBounce 1.2s ease-in-out infinite}.treehole-typing-dots span:nth-child(2){animation-delay:.2s}.treehole-typing-dots span:nth-child(3){animation-delay:.4s}@keyframes thDotBounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-7px);opacity:1}}.treehole-input-wrap{padding:16px 24px 20px;position:relative;z-index:1;flex-shrink:0}.treehole-input-box{display:flex;align-items:center;gap:10px;background:#ffffffd9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(249,168,212,.35);border-radius:16px;padding:6px 6px 6px 18px;box-shadow:0 2px 8px #c084fc14;transition:border-color .3s,box-shadow .3s}.treehole-input-box:focus-within{border-color:#c084fc99;box-shadow:0 0 0 3px #c084fc1f}.treehole-textarea{flex:1;border:none;background:transparent;font-size:16px;color:#3d1f38;resize:none;outline:none;line-height:1.5;min-height:40px;max-height:120px;padding:8px 0;font-family:inherit;scrollbar-width:none;overflow-y:auto}.treehole-textarea::-webkit-scrollbar{display:none}.treehole-textarea::placeholder{color:#4a204066;opacity:.7}.treehole-send-btn{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#f9a8d4,#c084fc);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .2s,box-shadow .2s;box-shadow:0 2px 8px #c084fc59}.treehole-send-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 0 16px #c084fc80}.treehole-send-btn:active:not(:disabled){transform:scale(.95)}.treehole-send-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.treehole-send-btn svg{width:18px;height:18px;fill:#fff}.treehole-hint{text-align:center;font-size:11px;color:#4a20404d;margin-top:8px}.treehole-login-prompt{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;position:relative;z-index:1}.treehole-login-card{background:#fffc;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(249,168,212,.3);border-radius:24px;padding:40px 48px;text-align:center;box-shadow:0 8px 40px #c084fc26}.treehole-login-card .treehole-empty-icon{margin-bottom:8px}.treehole-login-card h2{font-size:20px;color:#4a2040;margin:0 0 8px}.treehole-login-card p{font-size:14px;color:#4a20408c;margin:0 0 24px}.treehole-login-btn{padding:11px 36px;background:linear-gradient(135deg,#f9a8d4,#c084fc);border:none;border-radius:14px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .18s ease;box-shadow:0 4px 18px #c084fc66}.treehole-login-btn:hover{transform:translateY(-1px);box-shadow:0 6px 24px #c084fc80}.treehole-error{margin:0 24px 12px;padding:10px 16px;background:#ff646414;border:1px solid rgba(255,100,100,.2);border-radius:12px;font-size:13px;color:#c0392b;position:relative;z-index:1}@media (max-width: 768px){.treehole-header{padding:20px 10px 14px}.treehole-icon{width:44px;height:44px;font-size:22px;border-radius:13px}.treehole-header-text h1{font-size:18px}.treehole-mood-bar{padding:0 10px 12px;gap:6px}.treehole-mood-btn{font-size:12px;padding:4px 11px}.treehole-messages{padding:8px 10px 12px}.treehole-msg-user,.treehole-msg-ai{max-width:85%}.treehole-input-wrap{padding:12px 10px 16px}.treehole-input-box{padding:6px 6px 6px 14px;border-radius:14px}.treehole-textarea{font-size:15px}.treehole-login-card{padding:32px 28px;margin:0 10px}.treehole-error{margin:0 10px 10px}}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #f0f4f8;--bg-secondary: #ffffff;--bg-card: rgba(255, 255, 255, .75);--border-glow: rgba(59, 130, 246, .15);--accent: #3b82f6;--accent-dim: rgba(59, 130, 246, .08);--text-primary: #1a202c;--text-secondary: #64748b;--user-bubble: linear-gradient(135deg, #60a5fa, #3b82f6);--ai-bubble: linear-gradient(135deg, #f1f5f9, #e2e8f0);--danger: #ef4444}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:linear-gradient(160deg,#dbeafe,#e8f0fe,#f0f4f8 30%,#faf5ff 50%,#ede9fe,#e0f2fe 80%,#dbeafe);color:var(--text-primary);min-height:100vh;overflow:hidden}body:before{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 20% 30%,rgba(219,234,254,.6) 0%,transparent 40%),radial-gradient(circle at 80% 70%,rgba(237,233,254,.5) 0%,transparent 45%),radial-gradient(circle at 50% 50%,rgba(224,242,254,.4) 0%,transparent 50%);filter:blur(60px);animation:lightFloat 20s ease-in-out infinite alternate;z-index:0;pointer-events:none}body:after{content:"";position:fixed;top:-30%;left:-30%;width:160%;height:160%;background:radial-gradient(circle at 70% 20%,rgba(191,219,254,.4) 0%,transparent 35%),radial-gradient(circle at 30% 60%,rgba(221,214,254,.35) 0%,transparent 40%);filter:blur(80px);animation:lightFloat2 25s ease-in-out infinite alternate;z-index:0;pointer-events:none}@keyframes lightFloat{0%{transform:translate(0) scale(1);opacity:.7}33%{transform:translate(5%,3%) scale(1.05);opacity:.9}66%{transform:translate(-3%,5%) scale(.95);opacity:.8}to{transform:translate(2%,-2%) scale(1.02);opacity:.7}}@keyframes lightFloat2{0%{transform:translate(0) rotate(0);opacity:.6}50%{transform:translate(-4%,4%) rotate(3deg);opacity:.8}to{transform:translate(3%,-3%) rotate(-2deg);opacity:.6}}#root{position:relative;z-index:1;height:100vh}.app-layout{display:flex;flex-direction:column;height:100vh;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}input,textarea{-webkit-user-select:text;-moz-user-select:text;user-select:text;font-size:16px}.ai-generated-tag{display:inline-block;margin-top:6px;padding:1px 8px;font-size:11px;line-height:1.6;color:#94a3b8;background:#94a3b81a;border:1px solid rgba(148,163,184,.2);border-radius:6px;letter-spacing:.3px;-webkit-user-select:none;user-select:none}.chat-input-wrapper.drag-over{border:2px dashed var(--accent, #3b82f6)!important;background:var(--accent-dim, rgba(59, 130, 246, .08))!important;box-shadow:0 0 0 4px #3b82f61f,0 4px 20px #3b82f62e!important;transform:scale(1.01);transition:all .2s ease}.speak-btn{display:inline-flex;align-items:center;justify-content:center;margin-left:8px;margin-top:6px;padding:1px 8px;font-size:11px;line-height:1.6;color:#94a3b8;background:#94a3b81a;border:1px solid rgba(148,163,184,.2);border-radius:6px;cursor:pointer;vertical-align:middle;transition:all .15s ease;-webkit-user-select:none;user-select:none}.speak-btn:hover{color:var(--accent, #3b82f6);background:#3b82f61a;border-color:#3b82f64d}.speak-btn:active{transform:scale(.92)}.mic-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background:#94a3b826;color:#64748b;cursor:pointer;transition:all .2s ease}.mic-btn:hover{background:#3b82f626;color:var(--accent, #3b82f6)}.mic-btn.mic-listening{background:#ef444426;color:var(--danger, #ef4444);animation:micPulse 1.2s ease-in-out infinite}@keyframes micPulse{0%{box-shadow:0 0 #ef444480}70%{box-shadow:0 0 0 10px #ef444400}to{box-shadow:0 0 #ef444400}}.navbar{display:flex;align-items:center;justify-content:space-between;padding:0 32px;height:64px;background:#f0f4f899;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.3);flex-shrink:0}.navbar-brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;color:var(--text-primary);text-decoration:none;letter-spacing:.5px}.navbar-brand .logo{width:24px;height:24px;object-fit:contain;background:transparent;border-radius:0;display:block}.navbar-links{display:flex;gap:4px}.navbar-links a{color:var(--text-secondary);text-decoration:none;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;transition:all .2s}.navbar-links a:hover,.navbar-links a.active{color:var(--accent);background:var(--accent-dim)}.navbar-mobile-actions{display:none;align-items:center;gap:8px}.navbar-announcement-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:#38bdf81a;border:1px solid rgba(56,189,248,.3);border-radius:12px;font-size:20px;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation;flex-shrink:0;position:relative}.navbar-announcement-desktop{display:flex}.navbar-announcement-btn:hover{background:#38bdf833;border-color:#38bdf880;transform:translateY(-1px)}.navbar-announcement-btn:active{background:#38bdf840;transform:scale(.92);border-color:#38bdf880}.navbar-announcement-badge{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;border-radius:9px;background:#ef4444;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 5px;line-height:1;box-shadow:0 0 0 2px #fff;animation:badgePulse .4s ease-out}@keyframes badgePulse{0%{transform:scale(1.3)}to{transform:scale(1)}}.navbar-hamburger{display:none;flex-direction:row;justify-content:center;align-items:center;gap:6px;width:auto;min-width:44px;height:44px;padding:10px 14px;background:#38bdf81a;border:1px solid rgba(56,189,248,.3);border-radius:12px;cursor:pointer;transition:all .2s ease;position:relative;z-index:1001;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;-webkit-user-select:none}.navbar-hamburger:active{background:#38bdf840;transform:scale(.92);border-color:#38bdf880}.navbar-hamburger-icon{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px}.navbar-hamburger-label{font-size:13px;color:var(--accent);line-height:1;font-weight:500;pointer-events:none}.navbar-hamburger-icon span{display:block;width:20px;height:2px;background:var(--accent);border-radius:2px;transition:all .3s ease;pointer-events:none}.chat-container{flex:1;display:flex;flex-direction:column;max-width:900px;width:100%;margin:0 auto;padding:0 24px;min-height:0}.chat-container>.btn-back-home{align-self:flex-start;margin-bottom:12px}.chat-welcome{text-align:center;padding:60px 0 30px}.chat-welcome h1{font-size:32px;font-weight:700;background:linear-gradient(135deg,var(--accent),#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:12px}.chat-welcome p{color:var(--text-secondary);font-size:16px}.chat-messages{flex:1;overflow-y:auto;padding:8px 0;display:flex;flex-direction:column;gap:12px;min-height:0}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:#38bdf833;border-radius:4px}.msg-row{display:flex;align-items:flex-start;gap:10px;max-width:80%;animation:msgIn .3s ease}.msg-user-row{align-self:flex-end;flex-direction:row-reverse}.msg-other-user-row{align-self:flex-start}.msg-other-ai-row{align-self:flex-end;flex-direction:row-reverse}.msg-ai-row,.msg-auto-q-row{align-self:flex-start}.msg-auto-a-row{align-self:flex-end;flex-direction:row-reverse}.msg-auto-q-avatar{background:linear-gradient(135deg,#fbbf2433,#f59e0b33);border:1px solid rgba(251,191,36,.3);font-size:16px}.msg-auto-a-avatar{background:linear-gradient(135deg,#ec489933,#db277733);border:1px solid rgba(236,72,153,.3);color:#f472b6;font-size:16px;font-weight:700}.msg-avatar{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px}.user-avatar{background:linear-gradient(135deg,#38bdf826,#8b5cf626);border:1px solid rgba(56,189,248,.2);color:var(--accent);overflow:hidden}.other-user-avatar{background:linear-gradient(135deg,#22c55e26,#10b98126);border:1px solid rgba(34,197,94,.2);color:#4ade80;overflow:hidden}.avatar-img{width:100%;height:100%;object-fit:cover;border-radius:10px}.ai-avatar{background:transparent;box-shadow:none;overflow:hidden}.ai-avatar .avatar-img{width:100%;height:100%;object-fit:contain;border-radius:10px}.msg{padding:12px 16px;border-radius:16px;font-size:14px;line-height:1.8;word-break:break-word}@keyframes msgIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.msg.user{background:var(--user-bubble);border:none;border-bottom-right-radius:4px;color:#fff}.msg.ai{background:var(--ai-bubble);border:1px solid rgba(0,0,0,.06);border-bottom-left-radius:4px;color:var(--text-primary)}.thinking-block{color:#6b7280;font-style:italic;font-size:13px;line-height:1.6;padding:6px 10px;margin-bottom:10px;border-left:2px solid #d1d5db;background:#6b72800d;border-radius:0 6px 6px 0;white-space:pre-wrap;word-break:break-word}.msg.system{align-self:center;background:#f43f5e1a;border:1px solid rgba(244,63,94,.2);border-radius:8px;color:var(--danger);font-size:12px;max-width:90%}.msg-auto-wrap{display:flex;flex-direction:column;gap:4px;max-width:80%}.msg-auto-name{font-size:11px;color:var(--text-secondary);opacity:.7;padding:0 2px}.msg.auto-q{background:#fbbf2426;border:1px solid rgba(251,191,36,.3);border-bottom-left-radius:4px;color:#92400e;font-size:14px}.msg.auto-a{background:#ec48991f;border:1px solid rgba(236,72,153,.25);border-bottom-right-radius:4px;color:#9d174d;font-size:14px}.typing-indicator{display:flex;gap:4px;padding:12px 16px;align-self:flex-start;background:var(--ai-bubble);border:1px solid rgba(139,92,246,.15);border-radius:16px 16px 16px 4px}.typing-indicator span{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:typing 1.4s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.chat-input-area{padding:16px 0 20px;flex-shrink:0}.chat-input-wrapper{display:flex;align-items:center;gap:10px;background:var(--bg-secondary);border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:6px 6px 6px 18px;transition:border-color .3s,box-shadow .3s;box-shadow:0 2px 8px #0000000a}.chat-input-wrapper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.chat-input-wrapper input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:16px;padding:8px 0}.chat-input-wrapper input::placeholder{color:var(--text-secondary);opacity:.6}.send-btn{width:40px;height:40px;border-radius:12px;border:none;background:linear-gradient(135deg,var(--accent),#8b5cf6);color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s;flex-shrink:0}.send-btn:hover{transform:scale(1.05);box-shadow:0 0 16px #38bdf866}.send-btn:active{transform:scale(.95)}.ai-toggle-btn{height:36px;padding:0 12px;border-radius:10px;border:1px solid rgba(139,92,246,.3);background:transparent;color:var(--text-secondary);font-size:12px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all .3s}.ai-toggle-btn:hover{border-color:#8b5cf699;color:#8b5cf6;background:#8b5cf614}.ai-toggle-btn.active{border-color:#8b5cf6;color:#fff;background:linear-gradient(135deg,#8b5cf699,#38bdf866);box-shadow:0 0 12px #8b5cf64d}.voice-btn{width:40px;height:40px;border-radius:12px;border:1px solid rgba(56,189,248,.2);background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;flex-shrink:0}.voice-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.voice-btn.recording{border-color:var(--danger);color:var(--danger);background:#f43f5e1f;animation:voicePulse 1.5s infinite}@keyframes voicePulse{0%,to{box-shadow:0 0 #f43f5e66}50%{box-shadow:0 0 0 8px #f43f5e00}}.voice-hint{display:flex;align-items:center;gap:6px;margin-top:8px;padding-left:18px;font-size:12px;color:var(--danger);animation:fadeIn .3s ease}.voice-dot{width:6px;height:6px;border-radius:50%;background:var(--danger);animation:voiceBlink 1s infinite}@keyframes voiceBlink{0%,to{opacity:1}50%{opacity:.3}}.file-preview-bar{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:#38bdf814;border:1px solid rgba(56,189,248,.15);border-radius:8px;margin-bottom:8px}.file-preview-name{color:var(--text-secondary);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:250px}.file-preview-remove{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:4px;transition:all .2s}.file-preview-remove:hover{background:#ef444426;color:#ef4444}.attach-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:8px;display:flex;align-items:center;transition:all .2s}.attach-btn:hover{color:var(--accent);background:#38bdf81a}.admin-root{flex:1;overflow-y:auto;max-width:960px;width:100%;margin:0 auto;padding:32px 16px}.admin-root::-webkit-scrollbar{width:4px}.admin-root::-webkit-scrollbar-track{background:transparent}.admin-root::-webkit-scrollbar-thumb{background:#38bdf833;border-radius:4px}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.admin-header h2{font-size:24px;font-weight:700;background:linear-gradient(135deg,var(--accent),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.admin-subtitle{color:var(--text-secondary);font-size:13px;margin-top:4px}.btn-primary{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border:none;border-radius:10px;background:linear-gradient(135deg,var(--accent),#8b5cf6);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 20px #38bdf859}.btn-primary:active{transform:scale(.97)}.btn-icon{font-size:18px;font-weight:300;line-height:1}.btn-secondary{padding:10px 20px;border:1px solid var(--border-glow);border-radius:10px;background:transparent;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s}.btn-secondary:hover{border-color:var(--accent);color:var(--text-primary)}.btn-ghost{padding:4px 10px;border:none;border-radius:6px;background:transparent;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .2s}.btn-ghost:hover{background:var(--accent-dim);color:var(--accent)}.btn-ghost-danger:hover{background:#f43f5e1f;color:var(--danger)}.model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.model-card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(56,189,248,.12);border-radius:18px;padding:26px;transition:all .3s;animation:cardIn .4s ease both}@keyframes cardIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.model-card:hover{border-color:var(--border-glow);box-shadow:0 0 24px #38bdf814;transform:translateY(-2px)}.model-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.model-provider-icon{font-size:28px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--accent-dim);border-radius:14px}.model-card-actions{display:flex;gap:2px;opacity:0;transition:opacity .2s}.model-card:hover .model-card-actions{opacity:1}.model-name{font-size:20px;font-weight:600;color:var(--text-primary);margin-bottom:12px}.model-desc{font-size:13px;color:var(--text-secondary);line-height:1.8;margin-bottom:16px;opacity:.8}.model-meta{display:flex;align-items:center;gap:10px}.model-tag{padding:4px 14px;border-radius:8px;background:var(--accent-dim);color:var(--accent);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.model-type-badge{padding:3px 10px;border-radius:20px;color:#fff;font-size:11px;font-weight:600;letter-spacing:.3px;opacity:.9}.model-key{font-size:12px;color:var(--text-secondary);font-family:SF Mono,Fira Code,monospace}.empty-state{grid-column:1 / -1;text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-icon{font-size:48px;margin-bottom:12px;opacity:.5}.empty-state p{font-size:16px;margin-bottom:4px;color:var(--text-primary)}.empty-state span{font-size:13px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-panel{width:420px;max-width:90vw;background:var(--bg-secondary);border:1px solid var(--border-glow);border-radius:18px;box-shadow:0 24px 64px #00000080;animation:modalIn .3s ease}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0}.modal-header h3{font-size:18px;font-weight:700;color:var(--text-primary)}.modal-close{width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:16px;cursor:pointer;transition:all .2s}.modal-close:hover{background:#f43f5e1f;color:var(--danger)}.form-body{padding:20px 24px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.form-input{width:100%;padding:10px 14px;border:1px solid rgba(56,189,248,.15);border-radius:10px;background:#0a0e1799;color:var(--text-primary);font-size:14px;outline:none;transition:border-color .3s,box-shadow .3s}.form-input::placeholder{color:var(--text-secondary);opacity:.4}.form-input:focus{border-color:var(--accent);box-shadow:0 0 12px #38bdf81f}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:0 24px 20px}.landing{flex:1;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;background:transparent}.landing::-webkit-scrollbar{width:6px}.landing::-webkit-scrollbar-track{background:transparent}.landing::-webkit-scrollbar-thumb{background:#0000001a;border-radius:3px}.hero{position:relative;text-align:center;padding:80px 20px 24px;overflow:hidden}.hero-badge{display:inline-block;padding:6px 16px;border-radius:20px;border:1px solid var(--border-glow);background:var(--accent-dim);color:var(--accent);font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;margin-bottom:24px;animation:fadeSlideUp .6s ease}.hero-title{display:block;margin-bottom:16px;animation:fadeSlideUp .8s ease;font-size:52px;font-weight:900;letter-spacing:-.5px;line-height:1.2;background:linear-gradient(135deg,#4f46e5,#7c3aed,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-plus{font-size:32px;color:var(--text-secondary);font-weight:300}.hero-line2{font-size:44px;font-weight:800;background:linear-gradient(135deg,#8b5cf6,#6366f1);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero-desc{color:var(--text-secondary);font-size:16px;max-width:480px;margin:0 auto 28px;line-height:1.9;animation:fadeSlideUp 1s ease;opacity:.85;letter-spacing:.2px}.hero-actions{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:42px;animation:fadeSlideUp 1.2s ease}.hero-online-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;border-radius:20px;border:1px solid rgba(34,197,94,.2);background:#22c55e14;color:#4ade80;font-size:13px;font-weight:600;animation:fadeSlideUp .7s ease}.hero-stats-row{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:20px;flex-wrap:wrap}.hero-usage-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;border-radius:20px;border:1px solid rgba(168,85,247,.2);background:#a855f714;color:#c084fc;font-size:13px;font-weight:600;animation:fadeSlideUp .7s ease}.hero-usage-badge .usage-icon{font-size:14px}.hero-online-badge .online-dot{width:8px;height:8px;border-radius:50%;background:#4ade80;animation:onlinePulse 2s infinite}@keyframes onlinePulse{0%,to{opacity:1;box-shadow:0 0 #4ade8066}50%{opacity:.7;box-shadow:0 0 0 6px #4ade8000}}.btn-glow{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border-radius:12px;background:linear-gradient(135deg,var(--accent),#8b5cf6);color:#fff;font-size:15px;font-weight:600;text-decoration:none;transition:all .3s;box-shadow:0 0 20px #38bdf840}.btn-glow:hover{transform:translateY(-2px);box-shadow:0 8px 32px #38bdf866}.btn-arrow{transition:transform .3s}.btn-glow:hover .btn-arrow{transform:translate(4px)}.btn-outline{padding:12px 28px;border-radius:12px;border:1px solid var(--border-glow);color:var(--text-secondary);font-size:15px;text-decoration:none;transition:all .3s}.btn-outline:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.product-intro{padding:16px 20px 10px;max-width:960px;margin:0 auto}.product-intro .feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}@media (max-width: 768px){.product-intro{width:100%;max-width:none;padding:14px 0 8px!important}.product-intro .feature-grid{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:14px;padding:0 16px 16px;margin:0;scrollbar-width:none;flex-wrap:nowrap!important}.product-intro .feature-grid::-webkit-scrollbar{display:none}.product-intro .feature-card{flex:0 0 260px!important;scroll-snap-align:start;width:260px!important;min-width:260px!important}}@media (max-width: 480px){.product-intro{width:100%;max-width:none;padding:12px 0 6px!important}.product-intro .feature-grid{gap:12px!important;padding:0 12px 14px!important;margin:0!important}.product-intro .feature-card{flex:0 0 240px!important;width:240px!important;min-width:240px!important}}.product-tip{font-size:13px;color:var(--text-secondary);text-align:center;margin:-8px auto 24px;opacity:.7;letter-spacing:.3px}.product-lead{color:var(--text-secondary);font-size:15px;line-height:1.8;text-align:center;max-width:700px;margin:0 auto 28px}.hero-visual{position:relative;width:520px;height:520px;margin:0 auto;animation:fadeIn 1.5s ease}.orbit-svg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.orbit-core{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100px;height:100px;border-radius:28px;background:linear-gradient(135deg,var(--accent),#8b5cf6);display:flex;align-items:center;justify-content:center;font-size:38px;font-weight:800;color:#fff;box-shadow:0 0 60px #38bdf880;z-index:2}.history-page{flex:1;overflow-y:auto;min-height:0;padding:0 16px 20px;max-width:900px;width:100%;margin:0 auto}.history-page::-webkit-scrollbar{width:4px}.history-page::-webkit-scrollbar-track{background:transparent}.history-page::-webkit-scrollbar-thumb{background:#38bdf833;border-radius:4px}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px}.history-title{font-size:20px;font-weight:700;background:linear-gradient(135deg,var(--accent),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.btn-refresh{padding:8px 12px;border-radius:8px;border:1px solid rgba(56,189,248,.12);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .12s}.btn-refresh:hover{background:var(--accent-dim);color:var(--accent);transform:translateY(-2px)}.history-list{display:flex;flex-direction:column;gap:12px;margin-top:6px}.history-item{background:var(--bg-card);border:1px solid rgba(56,189,248,.06);padding:14px;border-radius:12px;display:flex;flex-direction:column;gap:8px}.history-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.history-q{font-weight:700;color:var(--text-primary);max-width:78%;word-break:break-word}.history-a{color:var(--text-secondary);font-size:14px;white-space:pre-wrap;max-height:12em;overflow-y:auto;position:relative;line-height:1.6;word-break:break-word}.history-a::-webkit-scrollbar{width:3px}.history-a::-webkit-scrollbar-track{background:transparent}.history-a::-webkit-scrollbar-thumb{background:#38bdf833;border-radius:3px}.history-item:hover{box-shadow:0 8px 30px #38bdf80a;border-color:var(--border-glow)}.history-meta{font-size:12px;color:var(--text-secondary);background:transparent;padding-left:6px}.history-summary{font-weight:700;color:var(--text-primary);font-size:15px;line-height:1.4;margin-bottom:4px}.history-subtitle{font-weight:400;font-size:13px;color:var(--text-secondary);opacity:.75;line-height:1.4}.section-title{text-align:center;font-size:28px;font-weight:600;color:#475569;margin-bottom:24px}.arch-title{display:flex;align-items:baseline;justify-content:center;gap:12px;flex-wrap:wrap}.arch-title-cn{font-size:28px;font-weight:600;color:#475569}.arch-title-en{font-size:16px;font-weight:400;color:#94a3b8;letter-spacing:1.5px}.features{padding:0 20px 12px;max-width:960px;margin:0 auto}.feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.feature-card{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(56,189,248,.1);border-radius:16px;padding:24px;transition:all .3s;display:flex;flex-direction:column;text-decoration:none;cursor:pointer}.feature-card:hover{border-color:var(--border-glow);transform:translateY(-4px);box-shadow:0 8px 32px #38bdf814}.feature-icon{font-size:32px;margin-bottom:14px;width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:var(--accent-dim);border-radius:14px}.feature-card h3{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.feature-card p{font-size:13px;color:var(--text-secondary);line-height:1.6;flex:1}.feature-card-combo{padding:0;overflow:hidden;display:flex;flex-direction:column}.feature-card-inner{display:flex;flex-direction:column;padding:24px 24px 16px;text-decoration:none;color:inherit;flex:1}.feature-card-inner:hover h3{color:var(--accent-blue, #38bdf8)}.feature-card-sub-btn{display:block;margin:0 16px 16px;padding:8px 14px;border-radius:10px;background:#38bdf814;border:1px solid rgba(56,189,248,.18);color:var(--accent-blue, #38bdf8);font-size:13px;font-weight:500;text-decoration:none;text-align:center;transition:background .2s,border-color .2s}.feature-card-sub-btn:hover{background:#38bdf829;border-color:#38bdf866}.arch{padding:12px 20px 32px;max-width:960px;margin:0 auto}.arch-diagram{display:flex;flex-direction:column;align-items:center;gap:14px}.arch-layer{width:100%;background:var(--bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(56,189,248,.1);border-radius:18px;padding:24px 32px}.arch-label{font-size:13px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:14px}.arch-boxes{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;align-items:stretch}.arch-box{padding:12px 16px;border-radius:10px;background:#38bdf814;border:1px solid rgba(56,189,248,.15);color:var(--text-primary);font-size:17px;font-weight:700;text-align:center;min-width:0;height:100%}.arch-box .box-title{font-size:20px!important}.arch-box .box-sub{font-size:14px!important}.arch-frontend{border-color:#06b6d433}.arch-gateway{border-color:#38bdf833}.arch-dual{border-color:#8b5cf633}.arch-infra{border-color:#10b98133}.arch-dual-boxes{display:flex;align-items:center;justify-content:center;gap:18px}.box-java{background:#38bdf81a;border-color:#38bdf840;flex:1;text-align:center;padding:20px 28px}.box-python{background:#8b5cf61a;border-color:#8b5cf640;flex:1;text-align:center;padding:20px 28px}.arch-connector{display:flex;flex-direction:column;align-items:center;gap:6px;padding:0 32px}.connector-line{width:60px;height:2px;background:linear-gradient(90deg,var(--accent),#8b5cf6)}.connector-label{font-size:11px;color:var(--text-secondary);white-space:nowrap;letter-spacing:.5px;font-weight:600}.arch-arrow{display:flex;align-items:center;justify-content:center;gap:40px;height:52px;position:relative}.flow-down,.flow-up{display:flex;flex-direction:column;align-items:center;height:100%}.flow-track{position:relative;width:2px;flex:1;background:#38bdf814;border-radius:1px;overflow:hidden}.flow-track span{position:absolute;left:-1px;width:4px;height:10px;border-radius:2px;background:linear-gradient(to bottom,#38bdf8e6,#38bdf84d);animation:flowDown 1.8s linear infinite}.flow-track span:nth-child(2){animation-delay:.6s}.flow-track span:nth-child(3){animation-delay:1.2s}.flow-up-track span{background:linear-gradient(to top,#8b5cf6e6,#8b5cf64d);animation:flowUp 1.8s linear infinite}.flow-up-track span:nth-child(2){animation-delay:.6s}.flow-up-track span:nth-child(3){animation-delay:1.2s}@keyframes flowDown{0%{top:-10px;opacity:0}15%{opacity:1}85%{opacity:1}to{top:100%;opacity:0}}@keyframes flowUp{0%{bottom:-10px;opacity:0}15%{opacity:1}85%{opacity:1}to{bottom:100%;opacity:0}}.flow-head-down{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid rgba(56,189,248,.5);animation:arrowPulse 1.8s ease-in-out infinite}.flow-head-up{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:8px solid rgba(139,92,246,.5);animation:arrowPulse 1.8s ease-in-out infinite}@keyframes arrowPulse{0%,to{opacity:.3}50%{opacity:1}}.flow-label{font-size:10px;color:#94a3b880;letter-spacing:1px;position:absolute;left:50%;transform:translate(-50%);white-space:nowrap}.landing-disclaimer{margin:40px auto 0;padding:16px 24px;max-width:700px;text-align:center;font-size:12px;color:#8a8a9a;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:10px;line-height:1.8}.landing-footer{font-size:11px;padding:18px 12px;text-align:center;color:var(--text-secondary)}@media (max-width: 768px){.features{padding:0 20px 12px!important}.features .feature-grid{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:14px;padding:0 16px 16px;margin:0;scrollbar-width:none;flex-wrap:nowrap!important}.features .feature-grid::-webkit-scrollbar{display:none}.features .feature-card{flex:0 0 260px!important;scroll-snap-align:start;width:260px!important;min-width:260px!important}}@media (max-width: 480px){.features{padding:0 20px 12px!important}.arch{padding:12px 20px 32px!important}.features .feature-grid{gap:12px!important;padding:0 12px 14px!important;margin:0!important}.features .feature-card{flex:0 0 240px!important;width:240px!important;min-width:240px!important}}@media (max-width: 768px){.arch{padding:12px 20px 32px!important}.arch .section-title{padding:0}.arch-diagram{display:flex!important;flex-direction:row!important;overflow-x:auto!important;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:0;padding:0 16px 16px;margin:0;scrollbar-width:none;flex-wrap:nowrap!important;align-items:stretch}.arch-diagram::-webkit-scrollbar{display:none}.arch-layer{flex:0 0 240px!important;scroll-snap-align:start;width:240px!important;min-width:240px!important;padding:16px 12px!important;border-radius:16px!important;min-height:420px;display:flex;flex-direction:column}.arch-arrow{flex:0 0 40px!important;width:40px!important;min-width:40px!important;height:auto!important;flex-direction:column!important;gap:4px!important;padding:0 4px}.flow-down,.flow-up{flex-direction:row!important;height:auto!important;width:100%}.flow-track{width:100%!important;height:2px!important;flex:1}.flow-track span{top:-1px!important;left:auto!important;width:10px!important;height:4px!important;animation:flowRight 1.8s linear infinite}.flow-up-track span{animation:flowLeft 1.8s linear infinite}.flow-head-down{border-left:none!important;border-right:none!important;border-top:none!important;border-bottom:6px solid transparent!important;border-left:8px solid rgba(56,189,248,.5)!important;width:0!important;height:0!important}.flow-head-up{border-left:none!important;border-right:none!important;border-bottom:none!important;border-top:6px solid transparent!important;border-right:8px solid rgba(139,92,246,.5)!important;width:0!important;height:0!important}.flow-label{position:static!important;transform:none!important;font-size:9px;padding:2px 0}.arch-boxes{display:flex!important;flex-direction:column;justify-content:space-between;gap:12px;width:100%;flex:1}.arch-box{text-align:left;padding:12px 16px;flex:1 1 100%!important;width:100%!important;display:flex;flex-direction:column;justify-content:center}.arch-dual-boxes{flex-direction:column!important;justify-content:flex-start}.arch-connector{flex-direction:row!important;padding:8px 0;gap:8px}.connector-line{width:2px!important;height:20px!important}.arch-box .box-title{font-size:16px!important}.arch-box .box-sub,.arch-label{font-size:12px!important}}@keyframes flowRight{0%{left:-10px;opacity:0}15%{opacity:1}85%{opacity:1}to{left:100%;opacity:0}}@keyframes flowLeft{0%{right:-10px;opacity:0}15%{opacity:1}85%{opacity:1}to{right:100%;opacity:0}}@media (max-width: 480px){.arch-diagram{padding:0 12px 14px!important;margin:0!important}.arch-layer{flex:0 0 220px!important;width:220px!important;min-width:220px!important;min-height:390px}}body:has(.sql-executor),body:has(.sql-login-page){overflow-y:auto;-webkit-overflow-scrolling:touch;height:auto}body:has(.sql-executor) .app-layout,body:has(.sql-login-page) .app-layout{height:auto;min-height:100vh;overflow:visible}.sql-login-page{display:flex;align-items:center;justify-content:center;flex:1;position:relative;overflow:hidden}.sql-login-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.sql-login-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.15}.sql-login-orb1{width:400px;height:400px;background:#3b82f6;top:-100px;left:-100px;animation:sqlOrbFloat1 8s ease-in-out infinite}.sql-login-orb2{width:300px;height:300px;background:#8b5cf6;bottom:-80px;right:-80px;animation:sqlOrbFloat2 10s ease-in-out infinite}@keyframes sqlOrbFloat1{0%,to{transform:translate(0)}50%{transform:translate(40px,30px)}}@keyframes sqlOrbFloat2{0%,to{transform:translate(0)}50%{transform:translate(-30px,-40px)}}.sql-login-box{position:relative;z-index:1;background:#0f172ad9;border:1px solid rgba(56,189,248,.15);border-radius:20px;padding:48px 40px;text-align:center;width:380px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 20px 60px #0006,0 0 40px #38bdf80d}.sql-login-icon{color:#38bdf8;margin-bottom:16px;display:inline-flex;padding:14px;border-radius:16px;background:#38bdf814;border:1px solid rgba(56,189,248,.12)}.sql-login-box h2{color:#e2e8f0;margin:0 0 6px;font-size:22px;font-weight:700}.sql-login-sub{color:#64748b;font-size:13px;margin-bottom:28px}.sql-login-field{margin-bottom:16px}.sql-login-input{width:100%;padding:12px 16px;border:1px solid rgba(148,163,184,.15);border-radius:12px;background:#0f172a99;color:#e2e8f0;font-size:15px;outline:none;box-sizing:border-box;transition:all .2s}.sql-login-input:focus{border-color:#38bdf880;box-shadow:0 0 0 3px #38bdf814}.sql-login-input::placeholder{color:#475569}.sql-login-error{color:#f87171;font-size:12px;margin-top:8px;display:flex;align-items:center;justify-content:center;gap:4px}.sql-login-btn{width:100%;padding:12px;border:none;border-radius:12px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;font-size:15px;cursor:pointer;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s;box-shadow:0 4px 16px #3b82f64d}.sql-login-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #3b82f666}.sql-login-btn:active{transform:translateY(0)}.sql-executor{flex:1;width:100%;max-width:960px;margin:0 auto;padding:28px 24px;display:flex;flex-direction:column}.sql-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.sql-toolbar-left{display:flex;align-items:center;gap:12px}.sql-toolbar-icon{color:#38bdf8;display:flex;padding:8px;border-radius:10px;background:#38bdf814;border:1px solid rgba(56,189,248,.12)}.sql-toolbar h2{color:#e2e8f0;font-size:20px;margin:0;font-weight:700}.sql-logout-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid rgba(248,113,113,.3);border-radius:8px;background:transparent;color:#f87171;cursor:pointer;font-size:13px;transition:all .2s}.sql-logout-btn:hover{background:#f8717114;border-color:#f8717180}.sql-quick-bar{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap;justify-content:center}.sql-quick-btn{padding:6px 14px;border:1px solid rgba(148,163,184,.12);border-radius:8px;background:#1e293b80;color:#94a3b8;cursor:pointer;font-size:12px;transition:all .2s}.sql-quick-btn:hover{background:#38bdf814;border-color:#38bdf840;color:#38bdf8}.sql-editor-wrap{margin-bottom:12px}.sql-editor-label{font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-weight:600}.sql-textarea{width:100%;padding:12px;border:1px solid rgba(148,163,184,.1);border-radius:12px;background:#0f172acc;color:#e2e8f0;font-family:Menlo,Monaco,Courier New,monospace;font-size:14px;resize:vertical;outline:none;box-sizing:border-box;line-height:1.6;transition:border-color .2s,box-shadow .2s}.sql-textarea:focus{border-color:#38bdf866;box-shadow:0 0 0 3px #38bdf80f}.sql-textarea::placeholder{color:#475569}.sql-editor-actions{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.sql-hint{font-size:11px;color:#475569}.sql-execute-btn{display:flex;align-items:center;gap:6px;padding:8px 22px;border:none;border-radius:10px;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;font-size:13px;cursor:pointer;font-weight:600;transition:all .2s;box-shadow:0 4px 12px #22c55e40}.sql-execute-btn:disabled{opacity:.5;cursor:not-allowed}.sql-execute-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #22c55e59}.sql-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:sqlSpin .6s linear infinite}@keyframes sqlSpin{to{transform:rotate(360deg)}}.sql-result{margin-top:12px}.sql-error{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border-radius:10px;background:#f8717114;border:1px solid rgba(248,113,113,.2);color:#f87171;font-size:13px;font-family:monospace;white-space:pre-wrap}.sql-error svg{flex-shrink:0;margin-top:1px}.sql-success{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:10px;background:#22c55e14;border:1px solid rgba(34,197,94,.2);color:#4ade80;font-size:13px}.sql-success svg{flex-shrink:0}.sql-time{margin-left:auto;font-size:11px;color:#64748b;background:#64748b1a;padding:2px 8px;border-radius:4px}.sql-result-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.sql-info-badge{font-size:12px;color:#38bdf8;font-weight:600;background:#38bdf814;padding:4px 12px;border-radius:6px;border:1px solid rgba(56,189,248,.15)}.sql-info{color:#94a3b8;font-size:12px;margin-bottom:8px}.sql-table-wrap{overflow-x:auto;overflow-y:auto;max-height:60vh;border-radius:10px;border:1px solid rgba(148,163,184,.1)}.sql-table{width:100%;border-collapse:collapse;font-size:13px}.sql-table th{background:#1e293bcc;color:#38bdf8;padding:10px 14px;text-align:left;font-weight:600;white-space:nowrap;font-size:12px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(56,189,248,.15)}.sql-table td{padding:10px 14px;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.sql-table tr:hover td{background:#38bdf808}.sql-table tr:last-child td{border-bottom:none}.sql-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:12px;padding:10px 0}.sql-page-btn{padding:6px 16px;border:1px solid rgba(56,189,248,.2);border-radius:6px;background:#38bdf814;color:#38bdf8;cursor:pointer;font-size:13px;transition:all .2s}.sql-page-btn:hover:not(:disabled){background:#38bdf826;border-color:#38bdf866}.sql-page-btn:disabled{opacity:.3;cursor:not-allowed}.sql-page-info{font-size:13px;color:#94a3b8}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.sql-confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:9999;display:flex;align-items:center;justify-content:center;animation:fadeSlideUp .2s ease}.sql-confirm-modal{width:460px;max-width:92vw;max-height:85vh;overflow-y:auto;background:#fffffffa;border-radius:16px;padding:22px 22px 18px;box-shadow:0 12px 48px #0000002e;animation:fadeSlideUp .25s cubic-bezier(.16,1,.3,1)}.sql-confirm-header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.sql-confirm-header h3{font-size:17px;font-weight:700;color:var(--text-primary);margin:0}.sql-confirm-type{display:inline-block;padding:3px 10px;border-radius:8px;font-size:12px;font-weight:600;letter-spacing:.3px}.sql-confirm-type.danger{color:#ef4444;background:#ef44441a;border:1px solid rgba(239,68,68,.25)}.sql-confirm-type.safe{color:#10b981;background:#10b9811a;border:1px solid rgba(16,185,129,.25)}.sql-confirm-type.warn{color:#f59e0b;background:#f59e0b1a;border:1px solid rgba(245,158,11,.25)}.sql-confirm-body{margin-bottom:18px}.sql-confirm-tip{font-size:13px;color:var(--text-secondary);line-height:1.7;margin:0 0 12px}.sql-confirm-sql-preview{background:#0f172a0a;border:1px solid rgba(15,23,42,.08);border-radius:8px;padding:10px 12px;margin-bottom:14px;overflow-x:auto}.sql-confirm-sql-preview code{font-family:SF Mono,Monaco,Cascadia Code,Consolas,monospace;font-size:12px;color:#334155;white-space:pre-wrap;word-break:break-word;line-height:1.6}.sql-confirm-field{margin-top:4px}.sql-confirm-input{width:100%;padding:10px 14px;border:1px solid rgba(56,189,248,.25);border-radius:10px;font-size:14px;background:#38bdf80a;color:var(--text-primary);outline:none;transition:all .2s;box-sizing:border-box}.sql-confirm-input:focus{border-color:#38bdf899;background:#38bdf814;box-shadow:0 0 0 3px #38bdf81a}.sql-confirm-input:disabled{opacity:.6;cursor:not-allowed}.sql-confirm-error{margin-top:8px;font-size:12px;color:#ef4444}.sql-confirm-actions{display:flex;justify-content:flex-end;gap:10px}.sql-confirm-btn{padding:9px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:1px solid transparent;-webkit-tap-highlight-color:transparent}.sql-confirm-btn:disabled{opacity:.6;cursor:not-allowed}.sql-confirm-btn.cancel{background:#0f172a0a;border-color:#0f172a1a;color:var(--text-secondary)}.sql-confirm-btn.cancel:hover:not(:disabled){background:#0f172a14}.sql-confirm-btn.primary{background:linear-gradient(135deg,#38bdf8,#3b82f6);color:#fff;box-shadow:0 4px 14px #38bdf84d}.sql-confirm-btn.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #38bdf866}.sql-confirm-btn.danger{background:linear-gradient(135deg,#f87171,#ef4444);color:#fff;box-shadow:0 4px 14px #ef44444d}.sql-confirm-btn.danger:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #ef444466}.navbar-auth{display:flex;align-items:center;gap:8px}.navbar-auth-btn{padding:6px 16px;border:1px solid rgba(56,189,248,.3);border-radius:8px;background:transparent;color:var(--accent);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.navbar-auth-btn:hover{background:#38bdf81a;border-color:var(--accent)}.navbar-reg-btn{background:linear-gradient(135deg,#38bdf826,#8b5cf626);border-color:#8b5cf64d;color:#a78bfa}.navbar-reg-btn:hover{background:linear-gradient(135deg,#38bdf840,#8b5cf640);border-color:#a78bfa}.navbar-logout-btn{border-color:#f871714d;color:#f87171}.navbar-logout-btn:hover{background:#f871711a;border-color:#f87171}.navbar-user{font-size:13px;color:var(--text-secondary);white-space:nowrap}.auth-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:authFadeIn .25s ease}@keyframes authFadeIn{0%{opacity:0}to{opacity:1}}.auth-modal{position:relative;background:#fffffff2;border:1px solid rgba(0,0,0,.08);border-radius:24px;padding:44px 44px 36px;width:100%;max-width:440px;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);box-shadow:0 24px 80px #0000001f,0 0 60px #3b82f60a;animation:authSlideIn .3s cubic-bezier(.16,1,.3,1)}@keyframes authSlideIn{0%{transform:translateY(-30px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.auth-modal-close{position:absolute;top:16px;right:20px;background:#0000000a;border:1px solid rgba(0,0,0,.06);border-radius:8px;color:var(--text-secondary);font-size:14px;cursor:pointer;transition:all .2s;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.auth-modal-close:hover{color:var(--text-primary);background:#00000014;border-color:#3b82f633}.auth-tabs{display:flex;gap:0;margin-bottom:28px;background:#00000005;border-radius:12px;padding:4px;border:1px solid rgba(0,0,0,.06)}.auth-tab{flex:1;padding:10px 0;background:none;border:none;border-radius:9px;color:var(--text-secondary);font-size:14px;font-weight:600;cursor:pointer;transition:all .25s}.auth-tab.active{background:linear-gradient(135deg,#3b82f61a,#8b5cf61a);color:var(--accent);box-shadow:0 2px 8px #3b82f614}.auth-tab:hover:not(.active){color:var(--text-primary);background:#00000008}.auth-error{background:#f8717114;border:1px solid rgba(248,113,113,.15);border-radius:10px;padding:10px 14px;color:#f87171;font-size:13px;margin-bottom:18px;text-align:center}.auth-field{margin-bottom:20px}.auth-field label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:8px;letter-spacing:.3px}.auth-field input{width:100%;padding:13px 16px;border:1px solid rgba(0,0,0,.1);border-radius:12px;background:#fffc;color:var(--text-primary);font-size:16px;outline:none;transition:all .25s;box-sizing:border-box}.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);background:#fff}.auth-field input::placeholder{color:#94a3b8}.auth-submit{width:100%;padding:14px;border:none;border-radius:12px;background:linear-gradient(135deg,var(--accent),#8b5cf6);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s;margin-top:10px;letter-spacing:1px;box-shadow:0 0 24px #38bdf833}.auth-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 36px #38bdf859}.auth-submit:active:not(:disabled){transform:translateY(0)}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.graph-page{flex:1;width:100%;max-width:900px;margin:0 auto;padding:16px 16px 24px;display:flex;flex-direction:column;box-sizing:border-box;overflow-y:auto;min-height:0;gap:16px}.graph-back-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:10px;border:1px solid rgba(99,102,241,.25);background:#6366f114;color:#a5b4fc;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s}.graph-back-btn:hover{background:#6366f12e;border-color:#6366f166;color:#c7d2fe}.graph-welcome{text-align:center;padding:28px 20px 20px}.graph-welcome-title{font-size:28px;font-weight:800;background:linear-gradient(135deg,#c7d2fe,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:0 0 12px;letter-spacing:-.5px}.graph-welcome-desc{color:var(--text-secondary);font-size:14px;line-height:1.7;margin:0 auto 16px;max-width:500px}.graph-stats{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.stat-badge{padding:5px 14px;border-radius:20px;font-size:13px;font-weight:500;background:#6366f11f;border:1px solid rgba(99,102,241,.25);color:#a5b4fc}.graph-container{position:relative;width:100%;height:550px;border-radius:16px;overflow:hidden;background:radial-gradient(ellipse at center,#1e1b4b,#0f0f23);border:1px solid rgba(99,102,241,.2);flex-shrink:0;touch-action:none}.graph-canvas{width:100%;height:100%;display:block;cursor:grab}.graph-canvas:active{cursor:grabbing}.graph-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0f0f23b3;color:#a5b4fc;font-size:14px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.graph-empty-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:14px;pointer-events:none}.graph-toolbar{display:flex;flex-direction:column;gap:10px}.graph-search-form{display:flex;gap:8px}.graph-search-input{flex:1;padding:10px 16px;border:1px solid rgba(99,102,241,.25);border-radius:12px;background:#ffffff0d;color:var(--text-primary);font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}.graph-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6366f126}.graph-search-input::placeholder{color:var(--text-secondary)}.graph-weight-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.graph-weight-row{display:flex;align-items:center;gap:4px;position:relative}.graph-weight-help{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#ffffff1f;color:#94a3b8;font-size:11px;font-weight:700;cursor:pointer;flex-shrink:0;transition:background .2s,color .2s;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.graph-weight-help:hover,.graph-weight-help.active{background:var(--accent);color:#fff}.graph-help-popup{position:absolute;top:28px;left:0;width:260px;padding:12px 16px;border-radius:10px;background:#1e1b4bfa;border:1px solid rgba(99,102,241,.35);box-shadow:0 8px 24px #0006;color:#c7d2fe;font-size:12px;line-height:1.7;z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:helpFadeIn .2s ease-out}@keyframes helpFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.graph-weight-label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);white-space:nowrap;cursor:default}.graph-weight-input{width:56px;padding:5px 8px;border:1px solid rgba(99,102,241,.3);border-radius:8px;background:#ffffff0f;color:var(--text-primary);font-size:13px;font-weight:500;text-align:center;outline:none;transition:border-color .2s,box-shadow .2s;-moz-appearance:textfield}.graph-weight-input::-webkit-inner-spin-button,.graph-weight-input::-webkit-outer-spin-button{opacity:1;height:24px}.graph-weight-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6366f126}.graph-btn{padding:8px 18px;border:none;border-radius:10px;background:linear-gradient(135deg,#6366f1,#818cf8);color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:opacity .2s;white-space:nowrap}.graph-btn:hover{opacity:.85}.graph-btn:disabled{opacity:.5;cursor:not-allowed}.graph-btn-secondary{background:transparent;border:1.5px solid rgba(255,255,255,.35);color:#e2e8f0}.graph-btn-secondary:hover{background:#ffffff14;border-color:#ffffff8c}.graph-detail-panel{position:absolute;top:12px;right:12px;width:280px;max-height:calc(100% - 24px);background:#1e1b4bf2;border:1px solid rgba(99,102,241,.3);border-radius:14px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 8px 32px #0000004d;overflow:hidden;display:flex;flex-direction:column;z-index:10}.graph-detail-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.graph-detail-header h3{margin:0;font-size:15px;font-weight:600;color:#c7d2fe}.graph-detail-close{background:none;border:none;color:var(--text-secondary);font-size:16px;cursor:pointer;padding:0 4px}.graph-detail-close:hover{color:var(--text-primary)}.graph-detail-body{padding:12px 16px;overflow-y:auto;flex:1}.graph-detail-meta{color:var(--text-secondary);font-size:12px;margin:0 0 10px}.graph-detail-relations h4{color:#a5b4fc;font-size:13px;margin:0 0 8px}.graph-relation-item{padding:8px 10px;margin:5px 0;border-radius:8px;background:#6366f114;border:1px solid rgba(99,102,241,.15);cursor:pointer;transition:all .15s;font-size:13px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.graph-relation-item:hover{background:#6366f126;border-color:#6366f14d}.relation-arrow{color:#818cf8;font-weight:600}.relation-type{color:#c7d2fe;font-size:12px;padding:1px 6px;border-radius:4px;background:#6366f133}.relation-node{color:#e0e7ff;font-weight:500}.relation-source{width:100%;color:var(--text-secondary);font-size:11px;margin-top:4px;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.graph-tooltip{position:absolute;bottom:12px;left:12px;background:#1e1b4bf2;border:1px solid rgba(99,102,241,.3);border-radius:10px;padding:8px 14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;gap:4px;pointer-events:none;z-index:5}.graph-tooltip strong{color:#c7d2fe;font-size:13px}.graph-tooltip span{color:var(--text-secondary);font-size:12px}@media (max-width: 768px){.graph-page{padding:10px 8px 16px;gap:12px}.graph-welcome{padding:16px 8px 12px}.graph-welcome-title{font-size:24px}.graph-welcome-desc{font-size:13px}.graph-container{height:420px;border-radius:12px}.graph-detail-panel{top:8px;right:8px;width:240px;max-height:calc(100% - 16px)}.graph-search-input{font-size:13px;padding:10px 14px}.graph-search-form{flex-wrap:wrap}.graph-weight-filters{gap:8px}}.media-type-selector{display:flex;gap:8px;padding:0 4px 8px}.media-type-btn{padding:6px 16px;border-radius:10px;border:1px solid rgba(56,189,248,.1);background:#0f172a80;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .2s}.media-type-btn.active{background:linear-gradient(135deg,#38bdf81f,#8b5cf61f);border-color:#38bdf84d;color:var(--accent)}.media-type-btn:hover:not(.active){border-color:#38bdf833;color:var(--text-primary)}.media-prompt{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.media-type-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap}.media-type-badge.image{background:#38bdf81a;color:#38bdf8;border:1px solid rgba(56,189,248,.15)}.media-type-badge.video{background:#8b5cf61a;color:#a78bfa;border:1px solid rgba(139,92,246,.15)}.media-type-badge.\={background:#10b9811a;color:#34d399;border:1px solid rgba(16,185,129,.15)}.media-result{display:flex;flex-direction:column;gap:8px}.media-image-wrap{border-radius:12px;overflow:hidden;border:1px solid rgba(56,189,248,.1);max-width:400px}.media-image{width:100%;display:block;border-radius:12px}.media-video-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px;background:#8b5cf60d;border:1px solid rgba(139,92,246,.1);border-radius:12px;max-width:400px;color:var(--text-secondary);font-size:13px}.media-video-icon{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#8b5cf633,#38bdf833);display:flex;align-items:center;justify-content:center;font-size:22px;color:#a78bfa}.media-result-actions{display:flex;gap:6px}.media-action-btn{padding:6px 8px;border-radius:8px;border:1px solid rgba(56,189,248,.1);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s}.media-action-btn:hover{background:#38bdf814;border-color:#38bdf833;color:var(--accent)}.media-generating{display:flex;align-items:center;gap:12px;padding:16px 20px;color:var(--text-secondary);font-size:13px}.media-gen-spinner{width:20px;height:20px;border:2px solid rgba(56,189,248,.15);border-top-color:var(--accent);border-radius:50%;animation:mediaSpin .8s linear infinite}@keyframes mediaSpin{to{transform:rotate(360deg)}}.media-error-result{display:flex;align-items:center;gap:8px;color:#f87171;font-size:13px;padding:10px 14px;background:#f871710f;border:1px solid rgba(248,113,113,.12);border-radius:10px}.media-login-gate{flex:1;display:flex;align-items:center;justify-content:center;padding:40px 20px}.media-gate-card{background:#fffffff2;border:1px solid rgba(0,0,0,.08);border-radius:24px;padding:52px 48px;text-align:center;max-width:440px;width:100%;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 20px 60px #0000001a,0 0 80px #3b82f60a}.media-gate-icon{width:88px;height:88px;margin:0 auto 24px;border-radius:22px;background:linear-gradient(135deg,#3b82f614,#8b5cf614);border:1px solid rgba(59,130,246,.15);display:flex;align-items:center;justify-content:center;color:var(--accent);opacity:.8}.media-gate-title{font-size:22px;font-weight:700;background:linear-gradient(135deg,var(--accent),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:12px}.media-gate-desc{color:var(--text-secondary);font-size:14px;line-height:1.7;margin-bottom:28px}.media-gate-btn{display:inline-flex;align-items:center;gap:8px;padding:13px 32px;border-radius:12px;background:linear-gradient(135deg,var(--accent),#8b5cf6);color:#fff;font-size:15px;font-weight:600;border:none;cursor:pointer;transition:all .3s;box-shadow:0 0 24px #3b82f633}.media-gate-btn:hover{transform:translateY(-2px);box-shadow:0 8px 36px #3b82f659}.media-3d-card{background:linear-gradient(135deg,#10b98114,#8b5cf614);border:1px solid rgba(16,185,129,.2);border-radius:12px;overflow:hidden;max-width:360px}.media-3d-preview{padding:32px 20px;text-align:center;background:radial-gradient(circle at center,rgba(16,185,129,.1) 0%,transparent 70%)}.media-3d-preview-img{max-width:100%;max-height:240px;border-radius:8px;display:block;margin:0 auto}.media-3d-icon{font-size:56px;margin-bottom:8px;animation:media3dFloat 3s ease-in-out infinite}@keyframes media3dFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.media-3d-label{display:block;color:#34d399;font-size:14px;font-weight:600}.media-3d-info{padding:12px 16px;border-top:1px solid rgba(255,255,255,.06)}.media-3d-prompt{font-size:12px;color:#ffffff80}.media-3d-view-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;background:#10b98126;color:#34d399;font-size:13px;font-weight:600;text-decoration:none;transition:all .2s}.media-3d-view-btn:hover{background:#10b98140;transform:translateY(-1px)}.media-3d-locked-tip{text-align:center;padding:10px;margin-bottom:8px;background:#eab3081a;border:1px solid rgba(234,179,8,.2);border-radius:8px;color:#fbbf24;font-size:13px}.mobile-drawer-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;animation:authFadeIn .25s ease;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.mobile-drawer-overlay.active{display:block}.mobile-drawer{position:fixed;top:0;right:0;width:280px;max-width:85vw;height:100%;height:100vh;height:100dvh;background:#fffffffa;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-left:1px solid rgba(0,0,0,.08);padding:20px;display:flex;flex-direction:column;animation:drawerSlideIn .3s cubic-bezier(.16,1,.3,1);box-shadow:-8px 0 40px #0000001a;z-index:1001;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}@keyframes drawerSlideIn{0%{transform:translate(100%);opacity:.8}to{transform:translate(0);opacity:1}}.mobile-drawer-close{align-self:flex-end;background:#0000000a;border:1px solid rgba(0,0,0,.08);border-radius:10px;color:var(--text-secondary);font-size:16px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;margin-bottom:20px;-webkit-tap-highlight-color:transparent}.mobile-drawer-close:active{color:var(--text-primary);background:#00000014;transform:scale(.9)}.mobile-drawer-section{display:flex;align-items:flex-start;gap:12px}.mobile-drawer-title{font-size:12px;font-weight:600;color:var(--text-secondary);opacity:.5;letter-spacing:2px;padding-top:12px;white-space:nowrap;flex-shrink:0}.mobile-drawer-links{display:flex;flex-direction:column;gap:4px;flex:1}.mobile-drawer-links a{color:var(--text-secondary);text-decoration:none;padding:14px 16px;border-radius:12px;font-size:16px;font-weight:500;transition:all .2s;-webkit-tap-highlight-color:transparent}.mobile-drawer-links a:active,.mobile-drawer-links a.active{color:var(--accent);background:#3b82f614}.mobile-drawer-auth{margin-top:auto;padding-top:20px;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-direction:column;gap:12px}.mobile-drawer-user{font-size:15px;color:var(--text-secondary);text-align:center;padding:10px 0}.mobile-drawer-btn{width:100%;padding:14px;border:1px solid rgba(59,130,246,.3);border-radius:12px;background:transparent;color:var(--accent);font-size:15px;font-weight:500;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.mobile-drawer-btn:active{background:#3b82f614;transform:scale(.98)}.mobile-drawer-reg{background:linear-gradient(135deg,#3b82f614,#8b5cf614);border-color:#8b5cf64d;color:#7c3aed}.mobile-drawer-logout{border-color:#f871714d;color:#f87171}.mobile-drawer-logout:active{background:#f8717114}@media (max-width: 768px){.navbar-announcement-desktop{display:none!important}.navbar-mobile-actions{display:flex!important}.navbar-announcement-btn{display:flex!important;align-items:center;justify-content:center}}.announcement-overlay{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1002;display:flex;align-items:center;justify-content:center;animation:authFadeIn .25s ease;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.announcement-modal{position:relative;width:320px;max-width:85vw;max-height:70vh;background:#fffffffa;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-radius:16px;padding:24px 20px;box-shadow:0 8px 40px #0000001f;animation:modalSlideUp .3s cubic-bezier(.16,1,.3,1);overflow-y:auto;-webkit-overflow-scrolling:touch}@keyframes modalSlideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.announcement-close{position:absolute;top:12px;right:12px;background:#0000000a;border:1px solid rgba(0,0,0,.08);border-radius:10px;color:var(--text-secondary);font-size:14px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.announcement-close:active{color:var(--text-primary);background:#00000014;transform:scale(.9)}.announcement-title{font-size:18px;font-weight:700;color:var(--text-primary);margin:0 0 16px;padding-right:32px}.announcement-content{font-size:14px;color:var(--text-secondary);line-height:1.8}.announcement-content p{margin:0 0 12px}.announcement-content p:last-child{margin-bottom:0}.announcement-disclaimer-modal{width:380px;max-width:92vw;max-height:80vh;padding:24px 22px 20px}.announcement-disclaimer-modal .announcement-title{font-size:18px;text-align:center;margin:0 0 16px;padding-right:0}.announcement-disclaimer-modal .announcement-content{font-size:13px;line-height:1.85;color:var(--text-secondary)}.announcement-disclaimer-modal .announcement-content p{margin:0 0 8px}.announcement-ack-btn{display:block;width:100%;margin-top:18px;padding:11px 16px;border-radius:12px;border:1px solid rgba(56,189,248,.25);background:#38bdf814;color:var(--text-secondary);font-size:14px;font-weight:600;cursor:not-allowed;transition:all .25s ease;-webkit-tap-highlight-color:transparent}.announcement-ack-btn.active{background:linear-gradient(135deg,#38bdf8,#8b5cf6);border-color:transparent;color:#fff;cursor:pointer;box-shadow:0 4px 16px #38bdf84d}.announcement-ack-btn.active:hover{transform:translateY(-1px);box-shadow:0 6px 20px #38bdf866}.announcement-ack-btn.active:active{transform:scale(.98)}.profile-page{flex:1;display:flex;justify-content:center;align-items:flex-start;padding:40px 20px}.profile-card{width:100%;max-width:480px;background:var(--bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(56,189,248,.1);border-radius:20px;padding:36px 32px}.profile-title{font-size:22px;font-weight:700;background:linear-gradient(135deg,var(--accent),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-align:center;margin-bottom:28px}.profile-loading{text-align:center;color:var(--text-secondary);padding:40px}.profile-error{background:#f43f5e1a;border:1px solid rgba(244,63,94,.3);color:#f87171;padding:10px 14px;border-radius:10px;font-size:14px;margin-bottom:16px;text-align:center}.profile-success{background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:#34d399;padding:10px 14px;border-radius:10px;font-size:14px;margin-bottom:16px;text-align:center}.profile-field{margin-bottom:18px}.profile-field label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.profile-field input{width:100%;padding:12px 14px;background:#ffffff0a;border:1px solid rgba(56,189,248,.15);border-radius:10px;color:var(--text-primary);font-size:15px;outline:none;transition:all .2s}.profile-field input:focus{border-color:var(--accent);background:#38bdf80a;box-shadow:0 0 0 3px #38bdf81a}.profile-field input::placeholder{color:var(--text-secondary);opacity:.5}.profile-save-btn{width:100%;padding:14px;margin-top:8px;background:linear-gradient(135deg,#38bdf833,#8b5cf633);border:1px solid rgba(56,189,248,.3);border-radius:12px;color:var(--accent);font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.profile-save-btn:hover:not(:disabled){background:linear-gradient(135deg,#38bdf84d,#8b5cf64d);transform:translateY(-1px);box-shadow:0 8px 24px #38bdf833}.profile-save-btn:disabled{opacity:.5;cursor:not-allowed}.profile-login-card{text-align:center;padding:48px 32px}.profile-login-hint{color:var(--text-secondary);font-size:15px;margin-bottom:24px}.profile-login-btn{padding:12px 36px;background:linear-gradient(135deg,#38bdf833,#8b5cf633);border:1px solid rgba(56,189,248,.3);border-radius:12px;color:var(--accent);font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.profile-login-btn:hover{background:linear-gradient(135deg,#38bdf84d,#8b5cf64d);transform:translateY(-1px);box-shadow:0 8px 24px #38bdf833}.profile-input-disabled{width:100%;padding:12px 14px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:10px;color:var(--text-secondary);font-size:15px;opacity:.6;cursor:not-allowed}.navbar-user-link{color:var(--text-secondary);text-decoration:none;cursor:pointer;transition:color .2s}.navbar-user-link:hover{color:var(--accent)}@media (max-width: 480px){.profile-card{padding:24px 18px;border-radius:16px}.profile-title{font-size:19px}}.product-intro{width:100%;max-width:960px;margin:0 auto 40px;padding:0 20px;text-align:left}.product-lead{text-align:center;font-size:15px;color:var(--text-secondary);max-width:680px;margin:-20px auto 32px;line-height:1.8}.chat-online-badge{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:5px 14px;border-radius:20px;background:#38bdf814;border:1px solid rgba(56,189,248,.15);color:var(--accent);font-size:13px}.online-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 6px #22c55e80;animation:onlinePulse 2s infinite}@keyframes onlinePulse{0%,to{opacity:1}50%{opacity:.5}}.chat-input-top{display:flex;justify-content:flex-end;padding:4px 0 6px}.chat-online-mini{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--text-secondary);opacity:.7}.online-dot-small{width:5px;height:5px;border-radius:50%;background:#22c55e;box-shadow:0 0 4px #22c55e66}.online-users-panel{max-height:180px;overflow-y:auto;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:8px 12px;margin-bottom:8px}.online-user-item{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:var(--text-primary)}.online-user-item+.online-user-item{border-top:1px solid var(--border)}.online-user-avatar{font-size:14px}.online-user-name{flex:1}.online-user-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;box-shadow:0 0 4px #22c55e66}.msg-user-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.msg-user-name{font-size:11px;color:var(--text-secondary);opacity:.7;padding-right:2px}.about-avatar-icon{font-size:32px;font-weight:700;background:linear-gradient(135deg,var(--accent),#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.about-avatar-img{width:88px;height:88px;border-radius:14px;object-fit:cover;position:relative;z-index:1;border:2px solid rgba(56,189,248,.3)}.about-avatar-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:16px;border:2px solid transparent;background:linear-gradient(135deg,var(--accent),#8b5cf6) border-box;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:aboutRingSpin 6s linear infinite}.debate-container{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:16px;max-width:900px;width:100%;margin:0 auto}.debate-container.tree-mode{max-width:none;min-height:100dvh;overflow-x:hidden;overflow-y:auto;padding:8px 0 0;align-items:center;-webkit-overflow-scrolling:touch}.debate-container>.btn-back-home{align-self:flex-start;margin-bottom:12px}.btn-back-home{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:10px;border:1px solid rgba(0,0,0,.1);background:#fff;color:var(--text-secondary);font-size:13px;font-weight:500;text-decoration:none;transition:all .2s;box-shadow:0 1px 4px #0000000a}.btn-back-home:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);box-shadow:0 2px 8px #3b82f61a}.debate-content{flex:1;overflow-y:auto;padding:0}.debate-container>.chat-input-area{max-width:900px;width:100%;margin:0 auto;padding:16px 16px 20px;box-sizing:border-box}.debate-models-preview{display:flex;gap:12px;justify-content:center;margin-top:18px;flex-wrap:wrap}.chat-welcome .hero-online-badge{margin-top:16px;margin-bottom:2px}.debate-model-tag{padding:8px 20px;border-radius:20px;font-size:14px;font-weight:600;border:1px solid;background:#fff;box-shadow:0 2px 8px #0000000f;transition:all .2s}.debate-model-tag:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.debate-model-tag:nth-child(1){border-color:#3b82f64d;color:#3b82f6;background:linear-gradient(135deg,#eff6ff,#dbeafe)}.debate-model-tag:nth-child(2){border-color:#8b5cf64d;color:#8b5cf6;background:linear-gradient(135deg,#f5f3ff,#ede9fe)}.debate-model-tag:nth-child(3){border-color:#ef44444d;color:#ef4444;background:linear-gradient(135deg,#fef2f2,#fee2e2)}.debate-progress{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:28px;padding:16px;background:var(--bg-card);border-radius:14px;border:1px solid var(--border-glow)}.debate-progress-step{display:flex;align-items:center;gap:6px;opacity:.35;transition:opacity .3s}.debate-progress-step.done,.debate-progress-step.active{opacity:1}.debate-progress-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:#38bdf81a;border:2px solid rgba(56,189,248,.3);color:var(--accent);transition:all .3s}.debate-progress-step.done .debate-progress-dot{background:var(--accent);color:#fff;border-color:var(--accent)}.debate-progress-step.active .debate-progress-dot{border-color:var(--accent);box-shadow:0 0 10px #38bdf866;animation:debatePulse 1.5s ease-in-out infinite}@keyframes debatePulse{0%,to{box-shadow:0 0 6px #38bdf84d}50%{box-shadow:0 0 16px #38bdf899}}.debate-progress-label{font-size:12px;color:var(--text-secondary);font-weight:500}.debate-round{margin-bottom:24px;animation:debateFadeIn .4s ease}@keyframes debateFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.debate-round-header{margin-bottom:12px}.debate-round-badge{display:inline-block;padding:4px 14px;border-radius:12px;font-size:12px;font-weight:600;background:#38bdf81a;color:var(--accent);border:1px solid rgba(56,189,248,.2)}.debate-responses{display:flex;flex-direction:column;gap:10px}.debate-response-card{border-radius:14px;border:1px solid;padding:16px 18px;animation:debateFadeIn .35s ease}.debate-response-header{font-size:13px;font-weight:700;margin-bottom:10px;letter-spacing:.3px}.debate-response-body p{font-size:14px;line-height:1.8;color:var(--text-primary);opacity:.88;margin:0 0 6px}.debate-response-body p:last-child{margin-bottom:0}.debate-synthesizing{display:flex;align-items:center;justify-content:center;gap:12px;padding:20px;margin:20px 0;border-radius:14px;background:#a855f70f;border:1px solid rgba(168,85,247,.2);color:#a855f7;font-size:14px;font-weight:500;animation:debateFadeIn .4s ease}.debate-synth-spinner{width:20px;height:20px;border:2px solid rgba(168,85,247,.2);border-top-color:#a855f7;border-radius:50%;animation:spin .8s linear infinite}.debate-final{margin:24px 0;border-radius:16px;background:linear-gradient(135deg,#38bdf80f,#a855f70f);border:1px solid rgba(56,189,248,.25);padding:24px;animation:debateFadeIn .5s ease}.debate-final-header{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700;color:var(--accent);margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid rgba(56,189,248,.12)}.debate-final-icon{font-size:22px;background:linear-gradient(135deg,var(--accent),#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.debate-final-body p{font-size:14px;line-height:1.9;color:var(--text-primary);opacity:.9;margin:0 0 8px}.debate-final-body p:last-child{margin-bottom:0}@media (max-width: 640px){.debate-content{padding:12px 10px}.debate-response-card{padding:12px 14px}.debate-progress{gap:4px;padding:12px 8px}.debate-progress-label{font-size:10px}.debate-final{padding:18px 14px}}.debate-error{display:flex;align-items:center;gap:8px;padding:14px 18px;border-radius:12px;background:#ef444414;border:1px solid rgba(239,68,68,.2);color:#f87171;font-size:14px;margin:16px 0}.debate-thinking-card{opacity:.75;animation:debatePulse 2s ease-in-out infinite}.debate-thinking-body{display:flex;align-items:center;gap:5px;padding:6px 0}.debate-thinking-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.4;animation:debateThinkDot 1.4s ease-in-out infinite}.debate-thinking-dot:nth-child(2){animation-delay:.2s}.debate-thinking-dot:nth-child(3){animation-delay:.4s}.debate-thinking-text{font-size:13px;color:var(--text-secondary);opacity:.6;margin-left:4px}@keyframes debateThinkDot{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}.debate-mode-tabs{display:flex;justify-content:center;gap:0;margin:0 auto;padding:6px;max-width:320px;width:100%;background:var(--bg-card);border-radius:14px;border:1px solid var(--border-glow)}.debate-mode-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border:none;border-radius:10px;background:transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .25s;white-space:nowrap}.debate-mode-tab:hover:not(.active):not(:disabled){color:var(--text-primary);background:#94a3b80f}.debate-mode-tab.active{background:linear-gradient(135deg,#38bdf82e,#6366f11f);color:var(--accent);font-weight:600;box-shadow:0 2px 8px #38bdf826}.debate-mode-tab:disabled{opacity:.5;cursor:not-allowed}.debate-mode-tab .tab-icon{font-size:15px}.debate-rounds-picker{display:flex;align-items:center;justify-content:center;gap:6px;margin:10px auto 0;padding:6px 10px;max-width:320px;width:100%;background:var(--bg-card);border-radius:12px;border:1px solid var(--border-glow)}.debate-rounds-label{font-size:13px;color:var(--text-secondary);margin-right:4px;white-space:nowrap}.debate-rounds-btn{padding:5px 12px;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .25s;white-space:nowrap}.debate-rounds-btn:hover:not(.active):not(:disabled){color:var(--text-primary);background:#94a3b80f}.debate-rounds-btn.active{background:linear-gradient(135deg,#38bdf82e,#6366f11f);color:var(--accent);font-weight:600;box-shadow:0 2px 8px #38bdf826}.debate-rounds-btn:disabled{opacity:.5;cursor:not-allowed}.debate-tree-conclusion{margin:12px auto 0;max-width:1280px;width:calc(100% - 32px);max-height:320px;padding:14px 20px 16px;border-radius:10px;background:#ffffffe6;display:flex;flex-direction:column}.debate-tree-conclusion-title{font-size:16px;font-weight:700;color:var(--text-primary);margin-bottom:10px;flex-shrink:0}.debate-tree-conclusion-text{color:var(--text-secondary);font-size:14px;line-height:1.7;overflow-y:auto;flex:1;min-height:0;-webkit-overflow-scrolling:touch}.debate-tree-conclusion-text p{margin:0 0 8px}.debate-tree-conclusion-text p:last-child{margin-bottom:0}.debate-tree-conclusion-pending{color:var(--text-muted, #94a3b8);font-style:italic}.debate-streaming-cursor,.debate-tree-conclusion-cursor{display:inline-block;margin-left:2px;color:var(--accent, #38bdf8);font-weight:700;animation:debateBlink .8s infinite}@keyframes debateBlink{50%{opacity:0}}@media (max-width: 768px){.debate-tree-conclusion{margin:8px 8px 4px;width:calc(100% - 16px);max-width:none;max-height:240px;padding:10px 14px 12px}.debate-tree-conclusion-title{font-size:14px;margin-bottom:6px}.debate-tree-conclusion-text{font-size:13px;line-height:1.6}}.monitor-page{flex:1;width:100%;max-width:900px;margin:0 auto;padding:24px 20px;display:flex;flex-direction:column;align-items:center;box-sizing:border-box}body:has(.monitor-page){overflow-y:auto;-webkit-overflow-scrolling:touch;height:auto}body:has(.monitor-page) .app-layout{height:auto;min-height:100vh;overflow:visible}.monitor-title{font-size:22px;font-weight:700;background:linear-gradient(135deg,#38bdf8,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:12px 0 4px;text-align:center}.monitor-subtitle{color:#94a3b8;font-size:13px;text-align:center;margin-bottom:20px}.monitor-stats{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-bottom:20px;width:100%}.monitor-stat-card{background:#38bdf80d;border:1px solid rgba(56,189,248,.15);border-radius:12px;padding:14px 20px;text-align:center;min-width:100px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.monitor-stat-label{font-size:11px;color:#94a3b8;margin-bottom:6px;font-weight:500}.monitor-stat-value{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.monitor-controls{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap;justify-content:center}.monitor-controls-label{font-size:13px;color:#94a3b8}.monitor-range-select{min-width:120px;padding:8px 12px;border-radius:10px;border:1px solid rgba(56,189,248,.28);background:#0f172ad9;color:#38bdf8;font-size:13px;font-weight:600;outline:none;transition:border-color .2s,box-shadow .2s}.monitor-range-select:focus{background:#38bdf826;border-color:#38bdf8;box-shadow:0 0 0 3px #38bdf81f}.monitor-date-picker-wrap{display:inline-block;position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.monitor-date-picker{min-width:140px;width:100%;height:44px;padding:8px 12px;border-radius:10px;border:1px solid rgba(245,158,11,.28);background:#0f172ad9;color:#f59e0b;font-size:13px;font-weight:600;cursor:pointer;outline:none;color-scheme:dark;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box}.monitor-date-picker:focus{background:#f59e0b26;border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b1f}.monitor-loading{color:#64748b;font-size:14px;padding:20px}.monitor-chart-container{width:100%;max-width:860px;background:#0f172a80;border:1px solid rgba(56,189,248,.1);border-radius:14px;padding:16px;display:flex;justify-content:center;overflow-x:auto;-webkit-overflow-scrolling:touch}.monitor-chart-container canvas{display:block;max-width:100%}@media (max-width: 768px){.monitor-page{padding:16px 10px 40px}.monitor-chart-container{padding:10px}.monitor-stat-card{min-width:80px;padding:10px 14px}.monitor-stat-value{font-size:22px}.monitor-controls{gap:6px}.monitor-date-picker{min-width:120px}}@media (max-width: 768px){.navbar{padding:0 12px;height:50px}.navbar-brand{font-size:16px}.navbar-links,.navbar-auth,.navbar-credit{display:none!important}.navbar-hamburger{display:flex!important}.navbar-links a{padding:5px 10px;font-size:13px}.hero-title{font-size:28px!important}.hero-desc{font-size:14px!important;padding:0 12px}.hero-actions{flex-wrap:wrap;justify-content:center;gap:10px}.btn-glow,.btn-outline{padding:10px 20px;font-size:14px}.hero-visual{width:360px;height:360px}.orbit-core{width:72px;height:72px;font-size:28px;border-radius:20px}.features{padding:40px 16px}.feature-grid{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:14px;padding:0 16px 16px;margin:0 -16px;scrollbar-width:none;flex-wrap:nowrap!important}.feature-grid::-webkit-scrollbar{display:none}.feature-card{flex:0 0 260px!important;scroll-snap-align:start;width:260px!important;min-width:260px!important}.section-title{font-size:22px;margin-bottom:28px}.arch{padding:40px 12px 60px}.arch-layer{padding:16px 18px;border-radius:14px}.arch-label{font-size:11px;letter-spacing:1px;margin-bottom:10px}.arch-boxes{gap:8px}.arch-box{padding:8px 14px;font-size:13px}.box-title{font-size:14px}.box-sub{font-size:12px}.arch-arrow{gap:28px;height:44px}.arch-connector{padding:0 10px}.connector-line{width:36px}.connector-label{font-size:10px}.kg-canvas svg{width:100%;height:auto}.chat-container{padding:0 10px}.msg{max-width:85%;font-size:14px}.history-page{padding:20px 12px}.history-q{max-width:100%}.history-row{flex-direction:column;gap:6px}}@media (max-width: 480px){.hero-title{font-size:22px!important}.hero-desc{font-size:13px!important;padding:0 8px;line-height:1.7}.hero-actions{gap:8px}.btn-glow,.btn-outline{padding:8px 16px;font-size:13px;border-radius:10px}.hero-visual{width:280px;height:280px}.orbit-core{width:56px;height:56px;font-size:22px;border-radius:16px}.features{padding:30px 12px}.feature-grid{gap:12px!important;padding:0 12px 14px!important;margin:0 -12px!important}.feature-card{flex:0 0 240px!important;width:240px!important;min-width:240px!important;padding:18px}.feature-icon{width:44px;height:44px;font-size:26px;margin-bottom:10px}.feature-card h3{font-size:15px}.feature-card p{font-size:12px}.arch{padding:30px 8px 40px}.arch-layer{padding:12px 14px;border-radius:12px}.arch-label{font-size:10px;margin-bottom:8px}.arch-boxes{gap:6px}.arch-box{padding:6px 10px;font-size:12px;border-radius:8px}.box-title{font-size:13px;margin-bottom:3px}.box-sub{font-size:11px}.arch-arrow{gap:20px;height:38px}.arch-connector{padding:0 6px;gap:4px}.connector-line{width:24px}.connector-label{font-size:9px}.box-java,.box-python{padding:12px 14px}.section-title{font-size:20px;margin-bottom:24px}.chat-welcome h1{font-size:22px}.chat-welcome p{font-size:13px}.msg{max-width:90%;padding:10px 14px;font-size:13px}.history-title{font-size:17px}.history-item{padding:12px}.history-a{font-size:13px}.kg-title{font-size:20px}.kg-subtitle{font-size:12px}.landing-footer{font-size:11px;padding:18px 12px}}.games-page{flex:1;overflow-y:auto;padding:40px 20px;max-width:800px;margin:0 auto;width:100%}.games-title{text-align:center;font-size:32px;font-weight:700;background:linear-gradient(135deg,#3b82f6,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:12px}.games-subtitle{text-align:center;color:var(--text-secondary);font-size:16px;margin-bottom:40px}.games-list{display:flex;flex-direction:column;gap:16px}.game-list-item{display:flex;align-items:center;gap:20px;background:var(--bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(56,189,248,.1);border-radius:16px;padding:24px;cursor:pointer;transition:all .3s}.game-list-item:hover{border-color:var(--border-glow);transform:translate(8px);box-shadow:0 8px 32px #38bdf81a}.game-list-item.disabled{opacity:.72;cursor:not-allowed}.game-list-item.disabled:hover{border-color:#38bdf81a;transform:none;box-shadow:none}.game-item-icon{font-size:48px;flex-shrink:0;width:72px;height:72px;display:flex;align-items:center;justify-content:center;background:var(--accent-dim);border-radius:16px}.game-item-info{flex:1;min-width:0}.game-item-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.game-item-header h3{font-size:20px;font-weight:600;color:var(--text-primary);margin:0}.game-item-tag{padding:4px 12px;border-radius:20px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;font-size:12px;font-weight:600}.game-item-info p{font-size:14px;color:var(--text-secondary);line-height:1.6;margin:0}.game-item-arrow{font-size:32px;color:var(--text-secondary);flex-shrink:0;transition:all .3s}.game-list-item:hover .game-item-arrow{color:var(--accent);transform:translate(4px)}.game-list-item.disabled .game-item-arrow{font-size:14px;color:#f59e0b}.game-list-item.disabled:hover .game-item-arrow{color:#f59e0b;transform:none}.pingpong-page{flex:1;overflow-y:auto;padding:40px 20px;max-width:960px;margin:0 auto;width:100%}.pingpong-select{text-align:center}.pingpong-select h2{font-size:28px;font-weight:700;color:var(--text-primary);margin-bottom:40px}.model-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;max-width:700px;margin:0 auto}.model-card{background:var(--bg-card);border:2px solid var(--model-color);border-radius:16px;padding:32px 24px;cursor:pointer;transition:all .3s}.model-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #38bdf826}.model-emoji{font-size:48px;margin-bottom:16px}.model-name{font-size:20px;font-weight:600;color:var(--text-primary)}.pingpong-game{flex:1;overflow-y:auto;padding:20px;max-width:900px;margin:0 auto;width:100%}.pingpong-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.pingpong-header h2{font-size:24px;font-weight:700;color:var(--text-primary)}.pingpong-score{display:flex;align-items:center;gap:16px;font-size:18px;font-weight:600}.score-player{color:#3b82f6}.score-vs{color:var(--text-secondary);font-size:14px}.score-ai{font-weight:700}.score-round{font-size:14px;color:var(--text-secondary);margin-left:16px}.pingpong-instructions{text-align:center;color:var(--text-secondary);font-size:14px;margin-bottom:16px}.pingpong-canvas{width:100%;max-width:800px;height:auto;border-radius:20px;cursor:pointer;display:block;margin:0 auto;border:1px solid rgba(148,163,184,.28);background:linear-gradient(180deg,#0f172ae6,#1e293bf2);box-shadow:0 20px 48px #02061752,0 0 0 6px #ffffff0a;touch-action:none;-webkit-user-select:none;user-select:none}.gameover-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.gameover-content{background:var(--bg-card);border-radius:20px;padding:40px 60px;text-align:center;box-shadow:0 20px 60px #0000004d}.win-title{font-size:36px;font-weight:700;color:#10b981;margin-bottom:16px}.lose-title{font-size:36px;font-weight:700;color:#ef4444;margin-bottom:16px}.final-score{font-size:20px;color:var(--text-secondary);margin-bottom:32px}.gameover-buttons{display:flex;gap:16px;justify-content:center}.btn-restart{padding:12px 32px;border-radius:10px;border:none;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s}.btn-restart:hover{transform:translateY(-2px);box-shadow:0 8px 24px #3b82f64d}.btn-back-games{padding:12px 32px;border-radius:10px;border:1px solid rgba(56,189,248,.2);background:transparent;color:var(--text-primary);font-size:16px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .3s}.btn-back-games:hover{background:var(--accent-dim);border-color:var(--border-glow)}.skill-buttons{display:flex;gap:12px;justify-content:center;margin-top:20px;flex-wrap:wrap}.skill-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 20px;border-radius:12px;border:2px solid var(--skill-color);background:#ffffff0d;color:var(--text-primary);cursor:pointer;transition:all .3s;min-width:80px}.skill-btn:hover{background:var(--skill-color);color:#fff;transform:translateY(-2px);box-shadow:0 4px 16px #0003}.skill-btn.active{background:var(--skill-color);color:#fff;box-shadow:0 0 20px var(--skill-color)}.skill-icon{font-size:24px}.skill-name{font-size:14px;font-weight:600}.skill-desc{font-size:11px;opacity:.8}.snakeking-page{flex:1;overflow-y:auto;padding:20px 16px 32px;max-width:1220px;margin:0 auto;width:100%}.snakeking-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;padding:16px 20px;border-radius:18px;background:linear-gradient(135deg,#0f172ad1,#052e165c);border:1px solid rgba(34,197,94,.14);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.snakeking-title-wrap{flex:1;min-width:0}.snakeking-title{margin:0 0 6px;font-size:26px;font-weight:800;background:linear-gradient(135deg,#4ade80,#22d3ee 60%,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.3px}.snakeking-subtitle{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.6;opacity:.85}.snake-action-btn{border:1px solid rgba(34,197,94,.32);background:linear-gradient(135deg,#22c55e1f,#10b98114);color:#4ade80;border-radius:12px;padding:10px 20px;cursor:pointer;font-size:14px;font-weight:700;transition:all .25s;white-space:nowrap}.snake-action-btn:hover{background:linear-gradient(135deg,#22c55e38,#10b98129);border-color:#4ade808c;box-shadow:0 0 16px #22c55e2e;transform:translateY(-2px)}.snake-board-shell{position:relative;margin:0 auto 18px;max-width:1160px}.snake-board-shell.shake .snake-canvas-wrap{animation:snakeShake .26s linear}@keyframes snakeShake{0%{transform:translate(0)}25%{transform:translate(-4px,2px)}50%{transform:translate(4px,-2px)}75%{transform:translate(-3px,-1px)}to{transform:translate(0)}}.snake-canvas-wrap{position:relative;border-radius:24px;overflow:hidden;background:linear-gradient(180deg,#0f172af5,#0f766e2e);border:1px solid rgba(148,163,184,.22);box-shadow:0 24px 56px #02061757,inset 0 1px #ffffff0f}.snakeking-canvas{width:100%;display:block;border-radius:24px;cursor:crosshair}.snake-overlay{position:absolute;top:16px;z-index:2;pointer-events:none}.snake-overlay-left{left:16px}.snake-overlay-right{right:16px}.snake-overlay-card{min-width:188px;max-width:248px;padding:14px 16px;border-radius:18px;background:#020617b8;border:1px solid rgba(34,197,94,.16);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 16px 36px #0000005c,0 0 0 1px #ffffff0a}.snake-status-card{border-color:#38bdf838}.snake-overlay-title{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#93c5fd;margin-bottom:10px;font-weight:700}.snake-rank-list{display:flex;flex-direction:column;gap:8px}.snake-rank-item{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#e2e8f0;font-size:13px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.05)}.snake-rank-item:last-child{border-bottom:none}.snake-rank-pos{font-size:15px;flex-shrink:0}.snake-rank-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.snake-rank-len{font-size:14px;color:#4ade80;font-variant-numeric:tabular-nums}.snake-rank-item.dead{opacity:.45;filter:grayscale(.5)}.snake-status-text{color:#f8fafc;font-size:15px;font-weight:600;margin-bottom:8px}.snake-status-note{color:#94a3b8;font-size:12px;line-height:1.6}.snake-minimap{position:absolute;right:16px;bottom:16px;width:136px;height:92px;border-radius:14px;background:#0206179e;border:1px solid rgba(148,163,184,.18);overflow:hidden;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 10px 20px #0206173d}.snake-minimap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 24%,rgba(148,163,184,.08) 25%,transparent 26%,transparent 49%,rgba(148,163,184,.08) 50%,transparent 51%,transparent 74%,rgba(148,163,184,.08) 75%,transparent 76%),linear-gradient(transparent 24%,rgba(148,163,184,.08) 25%,transparent 26%,transparent 49%,rgba(148,163,184,.08) 50%,transparent 51%,transparent 74%,rgba(148,163,184,.08) 75%,transparent 76%)}.snake-minimap-dot,.snake-minimap-snake{position:absolute;width:5px;height:5px;border-radius:50%;transform:translate(-50%,-50%);z-index:1}.snake-minimap-dot{background:#7dd3fce6}.snake-minimap-dot.remains{background:#facc15f2}.snake-minimap-dot.power{width:8px;height:8px;background:#fde047;box-shadow:0 0 10px #fde047b3}.snake-minimap-snake{width:8px;height:8px;box-shadow:0 0 10px #ffffff1f}.snake-toast{position:absolute;left:50%;top:20px;transform:translate(-50%);padding:10px 18px;border-radius:999px;color:#fff;font-weight:700;font-size:14px;background:#0f172ad6;border:1px solid rgba(148,163,184,.18);box-shadow:0 14px 28px #02061752;z-index:2}.snake-toast.power{background:#ca8a04eb}.snake-toast.tail{background:#8b5cf6eb}.snake-toast.danger{background:#dc2626e6}.snake-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.snake-info-card{border-radius:18px;border:1px solid rgba(34,197,94,.12);background:linear-gradient(135deg,var(--bg-card),rgba(5,46,22,.18));padding:18px 22px;transition:border-color .2s,box-shadow .2s}.snake-info-card:hover{border-color:#22c55e3d;box-shadow:0 4px 24px #22c55e14}.snake-info-card h3{margin:0 0 10px;color:var(--text-primary);font-size:16px;font-weight:700}.snake-info-card p{margin:0;line-height:1.75;color:var(--text-secondary);font-size:13.5px}.snake-kill-card{margin-top:10px;border-color:#ef44442e}.snake-kill-count{font-size:14px;color:#f87171;font-variant-numeric:tabular-nums;min-width:20px;text-align:right}.snake-highlight{color:#fbbf24;font-weight:600}.snake-highlight-blue{color:#38bdf8;font-weight:600}.snake-highlight-green{color:#4ade80;font-weight:600}.snake-highlight-purple{color:#c084fc;font-weight:600}.snake-joystick-panel{display:none;margin:20px auto 0;align-items:center;flex-direction:column;gap:10px}.snake-joystick-hint{font-size:13px;color:var(--text-secondary)}.snake-joystick-pad{position:relative;width:170px;height:170px;border-radius:50%;border:1px solid rgba(148,163,184,.24);background:radial-gradient(circle at 50% 50%,#3b82f62e,#020617f5 74%);box-shadow:inset 0 8px 16px #ffffff0a,0 16px 32px #02061740;touch-action:none}.snake-joystick-ring{position:absolute;top:18px;right:18px;bottom:18px;left:18px;border-radius:50%;border:1px dashed rgba(148,163,184,.32);background:linear-gradient(90deg,transparent calc(50% - 1px),rgba(148,163,184,.18) calc(50% - 1px),rgba(148,163,184,.18) calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(transparent calc(50% - 1px),rgba(148,163,184,.18) calc(50% - 1px),rgba(148,163,184,.18) calc(50% + 1px),transparent calc(50% + 1px))}.snake-joystick-core{position:absolute;top:50%;left:50%;width:68px;height:68px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 30% 30%,#7dd3fcf0,#1d4ed8f2);border:1px solid rgba(191,219,254,.38);box-shadow:0 10px 24px #1e40af52;transition:box-shadow .15s ease,background .15s ease}.snake-joystick-core.active{background:radial-gradient(circle at 30% 30%,#bae6fdfa,#2563eb);box-shadow:0 0 24px #3b82f657}.joystick-panel{margin-top:24px;display:flex;flex-direction:column;align-items:center;gap:12px}.joystick-hint{font-size:13px;color:var(--text-secondary)}.joystick-pad{position:relative;width:188px;height:188px;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 50%,#3b82f629 0,#3b82f614 42%,#0f172ad1 72%,#020617f5);border:1px solid rgba(148,163,184,.24);box-shadow:inset 0 10px 24px #ffffff0f,0 16px 32px #0206173d;touch-action:none}.joystick-ring{position:absolute;top:22px;right:22px;bottom:22px;left:22px;border-radius:50%;border:1px dashed rgba(148,163,184,.3);background:linear-gradient(90deg,transparent calc(50% - 1px),rgba(148,163,184,.18) calc(50% - 1px),rgba(148,163,184,.18) calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(transparent calc(50% - 1px),rgba(148,163,184,.18) calc(50% - 1px),rgba(148,163,184,.18) calc(50% + 1px),transparent calc(50% + 1px))}.joystick-core{position:absolute;top:50%;left:50%;width:68px;height:68px;transform:translate(-50%,-50%);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;color:#e2e8f0e6;background:radial-gradient(circle at 30% 30%,#60a5fa8c,#1e293bf5);border:1px solid rgba(148,163,184,.28);box-shadow:inset 0 4px 10px #ffffff14,0 8px 20px #02061742;transition:box-shadow .15s ease,background .15s ease;pointer-events:none}.joystick-core.active{background:radial-gradient(circle at 30% 30%,#7dd3fcd1,#2563ebeb);box-shadow:inset 0 4px 10px #ffffff1f,0 0 24px #3b82f64d}.castlewar-page{flex:1;overflow-y:auto;padding:20px 16px 28px;max-width:1280px;margin:0 auto;width:100%}.castlewar-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;padding:16px 20px;border-radius:18px;background:linear-gradient(135deg,#0f172ad9,#43140752);border:1px solid rgba(251,191,36,.14);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.castlewar-header-main{flex:1;min-width:0}.castlewar-header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.castlewar-title{margin:0 0 6px;font-size:26px;font-weight:800;background:linear-gradient(135deg,#fbbf24,#f97316,#ef4444);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.3px}.castlewar-subtitle{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.6;opacity:.85}.castlewar-action-btn{border:1px solid rgba(251,191,36,.24);background:#fbbf2414;color:var(--text-primary);border-radius:12px;padding:10px 18px;cursor:pointer;font-size:14px;font-weight:700;transition:all .25s;white-space:nowrap}.castlewar-action-btn--rank{border-color:#fbbf2452;background:linear-gradient(135deg,#fbbf241f,#f59e0b14);color:#fbbf24}.castlewar-action-btn--restart{border-color:#ef444452;background:linear-gradient(135deg,#ef44441f,#dc262614);color:#f87171}.castlewar-action-btn:hover{transform:translateY(-2px);box-shadow:0 0 16px #fbbf2429}.castlewar-action-btn--rank:hover{background:linear-gradient(135deg,#fbbf2438,#f59e0b29);border-color:#fbbf248c}.castlewar-action-btn--restart:hover{background:linear-gradient(135deg,#ef444438,#dc262629);border-color:#ef44448c}.castlewar-lord-panel{margin:-4px 0 18px;padding:14px 18px;border-radius:18px;background:#020617d1;border:1px solid rgba(251,191,36,.16);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 16px 40px #0206175c,0 0 0 1px #ffffff0a}.castlewar-board-shell{position:relative;max-width:1180px;margin:0 auto 18px}.castlewar-board-shell.shake .castlewar-canvas-wrap{animation:snakeShake .22s linear}.castlewar-overlay{position:absolute;top:16px;z-index:2;pointer-events:none;display:flex;flex-direction:column;gap:10px}.castlewar-overlay-left{left:16px}.castlewar-overlay-right{right:16px}.castlewar-overlay-center{left:50%;transform:translate(-50%)}.castlewar-overlay-card{min-width:200px;max-width:260px;padding:14px 16px;border-radius:18px;background:#020617c7;border:1px solid rgba(251,191,36,.14);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 16px 36px #0006,0 0 0 1px #ffffff0a}.castlewar-overlay-title{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#93c5fd;margin-bottom:10px;font-weight:700}.castlewar-rank-list{display:flex;flex-direction:column;gap:8px}.castlewar-rank-item{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#e2e8f0;font-size:13px}.castlewar-rank-item.dead{opacity:.55}.castlewar-status-text{color:#f8fafc;font-size:15px;font-weight:600;margin-bottom:8px}.castlewar-status-note{color:#94a3b8;font-size:12px;line-height:1.6}.castlewar-canvas-wrap{position:relative;overflow:hidden;aspect-ratio:1120 / 720;border-radius:24px;border:1px solid rgba(148,163,184,.22);background:linear-gradient(180deg,#0f172af5,#064e3b38);box-shadow:0 24px 56px #02061757,inset 0 1px #ffffff0d}.castlewar-canvas{width:100%;height:auto;display:block;border-radius:24px;cursor:crosshair}.castlewar-minimap{position:absolute;right:16px;bottom:16px;width:144px;height:98px;border-radius:14px;background:#020617a3;border:1px solid rgba(148,163,184,.18);overflow:hidden;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 10px 20px #0206173d}.castlewar-minimap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 24%,rgba(148,163,184,.08) 25%,transparent 26%,transparent 49%,rgba(148,163,184,.08) 50%,transparent 51%,transparent 74%,rgba(148,163,184,.08) 75%,transparent 76%),linear-gradient(transparent 24%,rgba(148,163,184,.08) 25%,transparent 26%,transparent 49%,rgba(148,163,184,.08) 50%,transparent 51%,transparent 74%,rgba(148,163,184,.08) 75%,transparent 76%)}.castlewar-minimap-dot,.castlewar-minimap-army,.castlewar-minimap-castle,.castlewar-minimap-powerup{position:absolute;transform:translate(-50%,-50%);z-index:1}.castlewar-minimap-army{width:8px;height:8px;border-radius:50%;box-shadow:0 0 10px #ffffff24;left:50%;top:50%}.castlewar-minimap-marker{position:absolute;transform:translate(-50%,-50%);z-index:2}.castlewar-minimap-dot{width:4px;height:4px;background:#e2e8f0eb;border-radius:50%}.castlewar-minimap-marker.player .castlewar-minimap-army{width:0;height:0;border-radius:0;background:transparent!important;box-shadow:none;display:none}.castlewar-minimap-marker.player:before{content:"★";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:14px;line-height:1;color:#fbbf24;filter:drop-shadow(0 0 5px rgba(251,191,36,.9)) drop-shadow(0 0 2px rgba(0,0,0,.8));z-index:3}.castlewar-minimap-marker.player:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:18px;height:18px;border-radius:3px;background:#fbbf2433;border:1px solid rgba(251,191,36,.55);z-index:2}.castlewar-minimap-player-label{position:absolute;left:50%;bottom:12px;transform:translate(-50%);padding:2px 6px;border-radius:999px;background:#0f172ae0;border:1px solid rgba(249,115,22,.35);color:#fde68a;font-size:9px;line-height:1.2;white-space:nowrap;max-width:96px;overflow:hidden;text-overflow:ellipsis}.castlewar-minimap-castle{width:10px;height:10px;background:#60a5faf2;box-shadow:0 0 12px #60a5fa47}.castlewar-minimap-powerup{width:6px;height:6px;box-shadow:0 0 10px #ffffff47}.castlewar-toast{position:absolute;left:50%;top:20px;transform:translate(-50%);padding:10px 18px;border-radius:999px;color:#fff;font-weight:700;font-size:14px;background:#0f172adb;border:1px solid rgba(148,163,184,.18);box-shadow:0 14px 28px #02061752;z-index:2}.castlewar-toast.power{background:#2563ebeb}.castlewar-toast.danger{background:#dc2626e6}.castlewar-joystick-panel{display:none;margin:20px auto 0;flex-direction:column;align-items:center;gap:10px}.castlewar-powerup-panel{margin:16px auto 0;display:flex;flex-direction:column;align-items:center;gap:10px}.castlewar-powerup-bar{width:min(100%,780px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.castlewar-powerup-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid color-mix(in srgb,var(--powerup-color) 54%,rgba(255,255,255,.12));background:color-mix(in srgb,var(--powerup-color) 14%,rgba(2,6,23,.92));color:#f8fafc;border-radius:16px;padding:12px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:700;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease;box-shadow:inset 0 1px #ffffff0f,0 10px 24px #0206173d}.castlewar-powerup-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 26px #02061747}.castlewar-powerup-btn:disabled{opacity:.45;cursor:not-allowed}.castlewar-powerup-btn.active{box-shadow:0 0 0 1px color-mix(in srgb,var(--powerup-color) 76%,transparent),0 0 18px color-mix(in srgb,var(--powerup-color) 34%,transparent)}.castlewar-powerup-icon{font-size:18px}.castlewar-powerup-name{flex:1;text-align:left;font-size:13px}.castlewar-powerup-count{font-size:16px;color:color-mix(in srgb,var(--powerup-color) 72%,#ffffff)}.castlewar-powerup-active{width:min(100%,780px);display:flex;flex-wrap:wrap;gap:8px;justify-content:center;color:#e2e8f0;font-size:12px}.castlewar-powerup-active span{padding:6px 10px;border-radius:999px;background:#0f172ab8;border:1px solid rgba(148,163,184,.18)}.castlewar-joystick-hint{font-size:13px;color:var(--text-secondary)}.castlewar-joystick-pad{position:relative;width:176px;height:176px;border-radius:50%;border:1px solid rgba(148,163,184,.24);background:radial-gradient(circle at 50% 50%,#3b82f633,#020617f5 74%);box-shadow:inset 0 8px 16px #ffffff0a,0 16px 32px #02061740;touch-action:none}.castlewar-joystick-ring{position:absolute;top:18px;right:18px;bottom:18px;left:18px;border-radius:50%;border:1px dashed rgba(148,163,184,.32);background:linear-gradient(90deg,transparent calc(50% - 1px),rgba(148,163,184,.18) calc(50% - 1px),rgba(148,163,184,.18) calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(transparent calc(50% - 1px),rgba(148,163,184,.18) calc(50% - 1px),rgba(148,163,184,.18) calc(50% + 1px),transparent calc(50% + 1px))}.castlewar-joystick-core{position:absolute;top:50%;left:50%;width:72px;height:72px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 30% 30%,#bfdbfef2,#2563ebf5);border:1px solid rgba(191,219,254,.38);box-shadow:0 10px 24px #1e40af52;transition:box-shadow .15s ease,background .15s ease}.castlewar-joystick-core.active{background:radial-gradient(circle at 30% 30%,#dbeafe,#1d4ed8);box-shadow:0 0 24px #3b82f657}.castlewar-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.castlewar-info-card{border-radius:18px;border:1px solid rgba(56,189,248,.12);background:var(--bg-card);padding:18px 20px}.castlewar-info-card h3{margin:0 0 10px;color:var(--text-primary);font-size:17px}.castlewar-info-card p{margin:0;line-height:1.7;color:var(--text-secondary);font-size:14px}@media (max-width: 768px){.games-page{padding:20px 16px}.game-list-item{padding:20px 16px;gap:16px}.game-item-icon{width:56px;height:56px;font-size:36px}.game-item-header h3{font-size:18px}.model-grid{grid-template-columns:1fr}.pingpong-header{flex-direction:column;align-items:flex-start}.gameover-content{padding:30px 40px;margin:20px}.win-title,.lose-title{font-size:28px}.gameover-buttons{flex-direction:column}.skill-buttons{gap:8px}.skill-btn{padding:10px 16px;min-width:70px}.skill-icon{font-size:20px}.skill-name{font-size:12px}.skill-desc{font-size:10px}.snakeking-page{padding:14px}.snakeking-header{flex-direction:column}.snake-board-shell{margin-bottom:16px}.snake-overlay{position:static;margin-bottom:10px}.snake-overlay-card{max-width:none;width:100%}.snake-canvas-wrap,.snakeking-canvas{border-radius:18px}.snake-minimap{width:112px;height:76px;right:10px;bottom:10px}.snake-info-grid{grid-template-columns:1fr}.snake-joystick-panel{display:flex}.castlewar-page{padding:8px;max-width:none}.castlewar-header{flex-direction:column}.castlewar-header-actions{width:100%;justify-content:flex-start}.castlewar-overlay{position:static;margin-bottom:10px;transform:none}.castlewar-overlay-card{width:100%;max-width:none}.castlewar-canvas-wrap{border-radius:16px;margin-left:-8px;margin-right:-8px}.castlewar-canvas{border-radius:16px;height:auto}.castlewar-minimap{width:118px;height:82px;right:10px;bottom:10px}.castlewar-joystick-panel{display:flex;margin-top:14px}.castlewar-powerup-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.castlewar-info-grid{grid-template-columns:1fr}.joystick-panel{margin-top:20px;padding-bottom:8px}.joystick-pad{width:176px;height:176px}.joystick-ring{top:20px;right:20px;bottom:20px;left:20px}.joystick-core{width:64px;height:64px;font-size:20px}}.games-maintenance{display:flex;align-items:center;gap:16px;margin:0 auto 24px;max-width:720px;padding:16px 20px;background:linear-gradient(135deg,#fff7e6,#fff3d6);border:1px solid #ffd591;border-radius:12px;box-shadow:0 2px 8px #faad141f}.games-maintenance-icon{font-size:32px;flex-shrink:0}.games-maintenance-info h3{margin:0 0 4px;font-size:16px;color:#ad6800}.games-maintenance-info p{margin:0;font-size:13px;color:#874d00;line-height:1.6}.games-maintenance .games-maintenance-info h3{color:#b26a00}
