:root{--bg: #0f0f13;--bg-side: #16161c;--bg-elev: #1c1c24;--bg-input: #1a1a22;--border: #2a2a34;--text: #e6e6eb;--text-dim: #9a9aa5;--text-faint: #6b6b76;--accent: #4f7cff;--accent-hover: #3f68e0;--user-bubble: #2a2a35;--tool-bg: #181820;--code-bg: #101016;--danger: #e5534b;--ok: #3fb27f;--radius: 12px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}.app{display:flex;height:100%;overflow:hidden}.login-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:360px;background:var(--bg-elev);border:1px solid var(--border);border-radius:16px;padding:28px 24px}.login-card h1{margin:0 0 4px;font-size:22px}.login-card .sub{margin:0 0 24px;color:var(--text-dim);font-size:13px}.field{margin-bottom:14px}.field label{display:block;margin-bottom:6px;font-size:13px;color:var(--text-dim)}.field input{width:100%;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:14px;outline:none}.field input:focus{border-color:var(--accent)}.btn{width:100%;padding:11px;background:var(--accent);border:none;border-radius:8px;color:#fff;font-size:15px;font-weight:600;cursor:pointer}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:transparent;border:1px solid var(--border);color:var(--text-dim)}.error-tip{color:var(--danger);font-size:13px;margin:8px 0}.sidebar{width:260px;flex-shrink:0;background:var(--bg-side);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-header{padding:14px;display:flex;align-items:center;gap:8px}.new-btn{flex:1;padding:9px;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;font-size:14px}.new-btn:hover{border-color:var(--accent)}.conv-list{flex:1;overflow-y:auto;padding:4px 8px}.conv-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:8px;cursor:pointer;color:var(--text-dim);gap:8px}.conv-item:hover{background:var(--bg-elev)}.conv-item.active{background:var(--bg-elev);color:var(--text)}.conv-item .title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.conv-item .del{opacity:0;border:none;background:none;color:var(--text-faint);cursor:pointer;font-size:14px}.conv-item:hover .del{opacity:1}.sidebar-footer{padding:12px 14px;border-top:1px solid var(--border);display:flex;gap:8px}.sidebar-footer button{flex:1;padding:8px;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;color:var(--text-dim);cursor:pointer;font-size:13px}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.topbar .title{font-weight:600;font-size:14px;margin-right:auto}.pill{padding:5px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg-elev);color:var(--text-dim);font-size:12px;cursor:pointer;white-space:nowrap}.pill.active{border-color:var(--accent);color:var(--accent)}.pill select{background:transparent;border:none;color:inherit;font-size:12px;outline:none}.msg-list{flex:1;overflow-y:auto;padding:20px 0}.msg-container{max-width:760px;margin:0 auto;padding:0 16px}.msg{margin-bottom:18px}.msg.user{display:flex;justify-content:flex-end}.msg.user .bubble{background:var(--user-bubble);border-radius:var(--radius);padding:10px 14px;max-width:85%;white-space:pre-wrap;word-break:break-word}.msg.assistant .role{font-size:12px;color:var(--text-faint);margin-bottom:6px}.thinking{border-left:2px solid var(--border);padding:8px 12px;margin-bottom:8px;color:var(--text-faint);font-size:13px}.thinking summary{cursor:pointer;color:var(--text-dim)}.thinking .think-body{white-space:pre-wrap;margin-top:6px}.tool-card{background:var(--tool-bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin:8px 0;font-size:13px}.tool-card .tool-head{display:flex;align-items:center;gap:6px;color:var(--text-dim);cursor:pointer}.tool-card .tool-head .name{font-weight:600;color:var(--text)}.tool-card .tool-head .ok{color:var(--ok);font-size:12px}.tool-card .tool-head .fail{color:var(--danger);font-size:12px}.tool-card .tool-body{margin-top:8px;color:var(--text-dim);white-space:pre-wrap;word-break:break-word;max-height:240px;overflow-y:auto;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:12px}.markdown{word-break:break-word}.markdown p{margin:0 0 10px}.markdown p:last-child{margin-bottom:0}.markdown h1,.markdown h2,.markdown h3{margin:16px 0 8px;font-weight:600}.markdown ul,.markdown ol{margin:0 0 10px;padding-left:22px}.markdown li{margin-bottom:4px}.markdown a{color:var(--accent)}.markdown table{border-collapse:collapse;margin:10px 0;font-size:13px}.markdown th,.markdown td{border:1px solid var(--border);padding:6px 10px}.markdown code{background:var(--code-bg);padding:2px 6px;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.markdown pre{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;padding:12px;overflow-x:auto;margin:10px 0}.markdown pre code{background:none;padding:0;font-size:13px;line-height:1.5}.markdown blockquote{border-left:3px solid var(--border);margin:10px 0;padding:2px 12px;color:var(--text-dim)}.input-wrap{padding:12px 16px 16px}.input-box{max-width:760px;margin:0 auto;display:flex;align-items:flex-end;gap:8px;background:var(--bg-input);border:1px solid var(--border);border-radius:14px;padding:10px 12px}.input-box textarea{flex:1;background:none;border:none;color:var(--text);font-size:15px;resize:none;outline:none;max-height:160px;line-height:1.5;font-family:inherit}.send-btn{width:36px;height:36px;border-radius:50%;border:none;background:var(--accent);color:#fff;cursor:pointer;font-size:16px;flex-shrink:0}.send-btn:disabled{opacity:.4;cursor:not-allowed}.send-btn.stop{background:var(--danger)}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.settings-panel{width:100%;max-width:480px;max-height:80vh;overflow-y:auto;background:var(--bg-elev);border:1px solid var(--border);border-radius:16px;padding:24px}.settings-panel h2{margin:0 0 20px;font-size:18px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.setting-row .label{font-size:14px}.setting-row .desc{font-size:12px;color:var(--text-faint)}.switch{position:relative;width:42px;height:24px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch .slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border);border-radius:24px;cursor:pointer;transition:.2s}.switch .slider:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+.slider{background:var(--accent)}.switch input:checked+.slider:before{transform:translate(18px)}.settings-panel textarea{width:100%;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px;font-size:13px;font-family:inherit;resize:vertical}.settings-actions{display:flex;gap:10px;margin-top:20px}.settings-actions .btn{flex:1}.empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-faint);gap:8px}.empty .big{font-size:40px}.cursor{display:inline-block;width:2px;height:1em;background:var(--accent);margin-left:2px;vertical-align:text-bottom;animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.menu-btn{display:none;background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-dim);padding:6px 10px;cursor:pointer;font-size:16px}.sidebar-overlay{display:none}@media(max-width:720px){.sidebar{position:absolute;left:0;top:0;bottom:0;z-index:50;transform:translate(-100%);transition:transform .2s;box-shadow:none}.sidebar.open{transform:translate(0);box-shadow:0 0 24px #00000080}.menu-btn{display:inline-flex}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:45}}
