*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #0f0f1a;--bg-secondary: #1a1a2e;--bg-tertiary: #16213e;--text-primary: #e8e8f0;--text-secondary: #a0a0b8;--text-muted: #6b6b80;--accent: #6c5ce7;--accent-hover: #7d6ff0;--accent-glow: rgba(108, 92, 231, .3);--danger: #e94560;--border: #1e2a4a;--bubble-user: #6c5ce7;--bubble-ai: #1e1e35;--sidebar-width: 280px;--nav-height: 56px;--radius: 12px;--shadow: 0 4px 24px rgba(0, 0, 0, .3)}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-tap-highlight-color:transparent}html{overflow:hidden}#app{height:100%;overflow:hidden;position:relative}a{color:var(--accent);text-decoration:none}.top-nav{height:var(--nav-height);background:var(--bg-tertiary);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:fixed;top:0;left:0;right:0;z-index:200}.nav-left{display:flex;align-items:center;gap:12px}.nav-left .logo{font-size:18px;font-weight:700;color:var(--accent);letter-spacing:1px}.nav-left .nav-link{font-size:14px;color:#888;text-decoration:none;transition:color .2s}.nav-left .nav-link:hover,.nav-left .nav-link.router-link-active{color:var(--accent)}.nav-right{display:flex;align-items:center;gap:10px}.model-select{padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:13px;cursor:pointer;outline:none;transition:border-color .2s;max-width:140px}.model-select:focus{border-color:var(--accent)}.avatar{width:32px;height:32px;flex-shrink:0}.avatar svg{display:block}.main-content{position:fixed;top:var(--nav-height);right:0;bottom:0;left:0;overflow:hidden}.home-page{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:24px}.home-page h1{font-size:clamp(28px,5vw,48px);font-weight:800;background:linear-gradient(135deg,#6c5ce7,#e94560);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:12px}.home-page p{font-size:clamp(14px,2vw,18px);color:var(--text-secondary);margin-bottom:28px;max-width:480px;line-height:1.8;padding:0 16px}.home-page .start-btn{padding:14px 40px;background:linear-gradient(135deg,#6c5ce7,#8b5cf6);color:#fff;border:none;border-radius:var(--radius);font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;display:inline-block}.home-page .start-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #6c5ce766}.chat-layout{display:flex;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;transition:transform .3s cubic-bezier(.4,0,.2,1)}.sidebar-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}.sidebar-header .new-chat-btn{flex:1}.sidebar-close-btn{display:none;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:6px;transition:background .15s}.sidebar-close-btn:hover{background:var(--bg-tertiary)}.sidebar-close-btn svg{display:block}.new-chat-btn{padding:10px 16px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s,transform .15s}.new-chat-btn:hover{background:var(--accent-hover)}.new-chat-btn:active{transform:scale(.97)}.conversation-list{flex:1;min-height:0;overflow-y:auto;padding:8px;-webkit-overflow-scrolling:touch;touch-action:pan-y}.conversation-list::-webkit-scrollbar{width:4px}.conversation-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.conversation-item{padding:10px 12px;border-radius:var(--radius);cursor:pointer;display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;transition:background .15s;position:relative}.conversation-item:hover{background:var(--bg-tertiary)}.conversation-item.active{background:#6c5ce71f;border:1px solid rgba(108,92,231,.25)}.conversation-item .conv-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:var(--text-primary);padding-right:8px}.conversation-item .delete-btn{opacity:0;background:none;border:none;color:var(--danger);cursor:pointer;font-size:18px;padding:2px 6px;border-radius:6px;transition:opacity .15s;flex-shrink:0}.conversation-item:hover .delete-btn{opacity:1}.conversation-item .delete-btn:hover{background:#e9456026}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg-primary)}.chat-header{padding:10px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;background:var(--bg-secondary);min-height:48px}.menu-toggle{display:flex;align-items:center;gap:8px;background:none;border:none;color:var(--text-primary);cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .15s;max-width:60%}.menu-toggle:hover{background:var(--bg-tertiary)}.menu-toggle svg{display:block;flex-shrink:0}.menu-toggle-label{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.header-spacer{flex:1}.header-provider{font-size:12px;color:var(--text-muted);flex-shrink:0}.chat-header .header-model-select{padding:5px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);font-size:13px;cursor:pointer;outline:none}.message-area{flex:1;min-height:0;overflow-y:auto;padding:20px;scroll-behavior:smooth;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}.message-area::-webkit-scrollbar{width:6px}.message-area::-webkit-scrollbar-track{background:transparent}.message-area::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.message-area::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.chat-message{display:flex;gap:10px;margin-bottom:20px;animation:fadeInUp .3s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-message.user{flex-direction:row-reverse}.message-avatar{flex-shrink:0;width:30px;height:30px}.message-body{max-width:68%;min-width:60px}.chat-message.user .message-body{display:flex;flex-direction:column;align-items:flex-end}.message-bubble{padding:12px 16px;border-radius:14px;line-height:1.7;word-wrap:break-word;overflow-wrap:break-word;font-size:14px}.chat-message.user .message-bubble{background:var(--bubble-user);color:#fff;border-bottom-right-radius:4px}.chat-message.assistant .message-bubble{background:var(--bubble-ai);color:var(--text-primary);border:1px solid var(--border);border-bottom-left-radius:4px}.message-meta{font-size:11px;color:var(--text-muted);margin-top:4px;display:flex;gap:8px}.message-bubble h1,.message-bubble h2,.message-bubble h3,.message-bubble h4{margin:12px 0 6px;color:var(--text-primary)}.message-bubble h1{font-size:1.3em}.message-bubble h2{font-size:1.15em}.message-bubble h3{font-size:1.05em}.message-bubble p{margin:6px 0}.message-bubble ul,.message-bubble ol{padding-left:20px;margin:6px 0}.message-bubble li{margin:3px 0}.message-bubble code{background:#6c5ce726;padding:2px 6px;border-radius:4px;font-family:Fira Code,Consolas,monospace;font-size:.88em}.message-bubble pre{background:#0f0f1a;border:1px solid var(--border);border-radius:8px;padding:14px;overflow-x:auto;margin:8px 0}.message-bubble pre code{background:none;padding:0;font-size:.85em;color:#c9d1d9}.message-bubble blockquote{border-left:3px solid var(--accent);padding-left:12px;margin:8px 0;color:var(--text-secondary)}.message-bubble table{border-collapse:collapse;width:100%;margin:8px 0;font-size:.88em}.message-bubble th,.message-bubble td{border:1px solid var(--border);padding:6px 10px;text-align:left}.message-bubble th{background:var(--bg-tertiary)}.message-bubble a{color:var(--accent);text-decoration:underline}.input-area{flex-shrink:0;padding:12px 16px;background:var(--bg-secondary);border-top:1px solid var(--border)}.input-wrapper{display:flex;gap:10px;align-items:flex-end;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;transition:border-color .2s}.input-wrapper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.input-wrapper textarea{flex:1;background:transparent;border:none;color:var(--text-primary);font-size:14px;font-family:inherit;line-height:1.6;resize:none;outline:none;min-height:24px;max-height:120px;padding:4px 0}.input-wrapper textarea::placeholder{color:var(--text-muted)}.send-btn{padding:8px 20px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s,transform .15s;flex-shrink:0;white-space:nowrap}.send-btn:hover{background:var(--accent-hover)}.send-btn:active{transform:scale(.97)}.send-btn:disabled{opacity:.4;cursor:not-allowed}.typing-indicator{display:flex;gap:5px;padding:4px 0}.typing-indicator span{width:7px;height:7px;background:var(--text-muted);border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out both}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes typingBounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;min-height:0;color:var(--text-muted);gap:20px;padding:24px;overflow-y:auto}.empty-state-icon{width:72px;height:72px;background:#6c5ce714;border-radius:20px;display:flex;align-items:center;justify-content:center}.empty-state-icon svg{opacity:.5;width:40px;height:40px}.empty-state-greeting{font-size:20px;font-weight:600;color:var(--text-primary)}.empty-state p{font-size:14px;color:var(--text-muted);max-width:320px;text-align:center;line-height:1.7}.empty-state-hints{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:400px}.empty-state-hints button{padding:8px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:20px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .2s;white-space:nowrap}.empty-state-hints button:hover{background:#6c5ce71a;border-color:var(--accent);color:var(--accent)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:150;transition:opacity .3s}@media (max-width: 768px){:root{--sidebar-width: min(280px, 80vw)}.top-nav{padding:0 12px}.nav-left .logo{font-size:16px}.model-select{max-width:120px;font-size:12px;padding:5px 8px}.sidebar{position:fixed;top:var(--nav-height);left:0;bottom:0;z-index:160;transform:translate(-100%);box-shadow:var(--shadow)}.sidebar.open{transform:translate(0)}.sidebar-close-btn{display:flex}.sidebar-overlay{display:block;opacity:0;pointer-events:none}.sidebar-overlay.visible{opacity:1;pointer-events:auto}.menu-toggle{display:flex}.chat-header{padding:8px 12px;gap:8px}.message-area{padding:12px}.message-body{max-width:82%}.message-bubble{padding:10px 14px;font-size:13px;border-radius:12px}.input-area{padding:10px 12px}.input-wrapper{padding:6px 10px;border-radius:var(--radius);gap:8px}.input-wrapper textarea{font-size:13px;min-height:22px}.send-btn{padding:8px 16px;font-size:13px}.empty-state-greeting{font-size:18px}.empty-state-icon{width:60px;height:60px;border-radius:16px}.empty-state-icon svg{width:32px;height:32px}}@media (max-width: 480px){.message-body{max-width:88%}.message-area{padding:10px}.message-bubble{padding:8px 12px;font-size:13px}.chat-message{gap:8px;margin-bottom:16px}.message-avatar{width:26px;height:26px}.chat-header .header-model-select{font-size:12px;padding:4px 8px}}.conversation-empty{padding:20px;text-align:center;color:var(--text-muted);font-size:13px}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:#e945601f;border-bottom:1px solid rgba(233,69,96,.28);color:#ffb3c0;font-size:13px}.error-banner span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.error-banner button{width:24px;height:24px;border:none;border-radius:6px;background:#e945602e;color:#fff;cursor:pointer;flex-shrink:0}.stop-btn{padding:8px 16px;background:#e9456029;color:#ffb3c0;border:1px solid rgba(233,69,96,.35);border-radius:var(--radius);font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,transform .15s;flex-shrink:0;white-space:nowrap}.stop-btn:hover{background:#e945603d}.stop-btn:active{transform:scale(.97)}.send-btn{width:44px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center}@media (max-width: 480px){.error-banner{padding:9px 12px}.stop-btn{padding:8px 12px}.send-btn{width:40px;height:36px}}.message-copy{border:none;background:transparent;color:var(--text-muted);font-size:11px;cursor:pointer;padding:0 2px}.message-copy:hover{color:var(--accent)}
