*{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:#0d1117;color:#c9d1d9;width:100%;max-width:100vw}
.container{display:flex;height:100vh;width:100%;max-width:100vw;overflow:hidden}
.code-card{background:#0d1117;border:1px solid #30363d;border-radius:12px;overflow:hidden;margin:10px 0;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.code-card .code-header{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:#161b22;color:#8b949e;font-size:12px;font-weight:600;border-bottom:1px solid #21262d;user-select:none}
.code-card .code-header-lang{display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.5px}
.code-card .code-header-lang::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:#58a6ff}
.code-card pre{margin:0;padding:16px;background:#0d1117;color:#c9d1d9;overflow:auto;max-height:480px}
.code-card pre::-webkit-scrollbar{width:8px;height:8px}
.code-card pre::-webkit-scrollbar-track{background:#161b22}
.code-card pre::-webkit-scrollbar-thumb{background:#30363d;border-radius:4px}
.code-card pre::-webkit-scrollbar-thumb:hover{background:#484f58}
.copy-code-button{display:inline-flex;align-items:center;gap:6px;background:#21262d;color:#c9d1d9;border:1px solid #30363d;padding:5px 12px;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;transition:all .15s ease}
.copy-code-button::before{content:'';display:inline-block;width:14px;height:14px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1'/%3E%3C/svg%3E") no-repeat center;mask-size:contain;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1'/%3E%3C/svg%3E") no-repeat center;-webkit-mask-size:contain;opacity:.8}
.copy-code-button:hover{background:#30363d;border-color:#58a6ff}
.copy-code-button.copied{background:#238636;border-color:#2ea043;color:#f0f6fc}
.copy-code-button.copied::before{mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center;mask-size:contain;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center;-webkit-mask-size:contain;opacity:1}
#sidebar{width:25%;background:#161b22;border-right:1px solid #21262d;padding:16px;overflow-y:auto;transition:transform .3s ease,width .3s ease,padding .3s ease;z-index:1500;margin-bottom:13vh}
#sidebar.collapsed{width:3.8%;padding:10px;display:grid}
#sidebar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
#sidebar-header h2{font-size:18px;color:#58a6ff;white-space:nowrap}
#sidebar.collapsed #sidebar-header h2{display:none}
#sidebar-toggle{background:none;border:none;font-size:20px;cursor:pointer;color:#58a6ff}
.option-buttons{display:flex;flex-direction:column;gap:10px}
.option-buttons button,.option-buttons select{padding:10px 0px;font-size:14px;border-radius:8px;border:1px solid #30363d;cursor:pointer;background:#0d1117;color:#c9d1d9;transition:all .2s;text-align:left;white-space:nowrap;width:100%}
.option-buttons button:hover{background:#1f6feb;color:#f0f6fc;border-color:#1f6feb}
.option-buttons select{background:#0d1117;color:#c9d1d9}
#sidebar.collapsed .option-text{display:none}
.chats-dropdown-toggle{display:flex;align-items:center;justify-content:space-between}
.chev{font-size:14px;opacity:.8}
.chats-panel{border:1px solid #30363d;border-radius:10px;padding:10px;display:none;background:#0d1117}
.chats-panel.open{display:block}
.chats-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.chat-item{display:flex;align-items:center;justify-content:space-between;padding:8px;border-radius:8px;border:1px solid transparent}
.chat-item:hover{background:#21262d;border-color:#30363d}
.chat-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:6px;cursor:pointer}
.dots-btn{border:none;background:transparent;font-size:18px;cursor:pointer;padding:0 6px;color:#8b949e}
.dots-menu{position:relative}
.menu{position:absolute;right:0;top:20px;background:#161b22;border:1px solid #30363d;border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.4);display:none;z-index:3000}
.menu.open{display:block}
.menu button{display:block;width:160px;text-align:left;padding:8px 10px;background:#161b22;color:#c9d1d9;border:none;border-bottom:1px solid #21262d;font-size:13px;cursor:pointer}
.menu button:last-child{border-bottom:none}
.menu button:hover{background:#21262d}
.danger{background:#490202 !important;border-color:#da3633 !important;color:#f0f6fc !important}
.danger:hover{background:#da3633 !important;color:#fff !important;border-color:#da3633 !important}
.tool-options{display:none;padding:8px;margin-top:6px;border:1px solid #30363d;border-radius:8px;background:#0d1117}
.tool-options.open{display:block}
.tool-group .hint{font-size:12px;opacity:.85;margin-top:4px}
@media (max-width:700px){#sidebar{position:fixed;top:0;left:0;height:70vh;width:280px;padding:16px;transform:translateX(-100%);box-shadow:2px 0 10px rgba(0,0,0,.5);z-index:2000}#sidebar.open{transform:translateX(0)}}
#main{flex-grow:1;display:flex;flex-direction:column;position:relative}
.chat-header{background:#161b22;color:#c9d1d9;padding:12px 16px 12px 56px;font-size:16px;font-weight:600;text-align:left;width:100%;max-width:100vw;position:relative;z-index:1000;box-shadow:0 2px 6px rgba(0,0,0,.3);border-bottom:1px solid #21262d;display:flex;align-items:center;gap:8px}
.chat-header .title{opacity:.7;font-weight:500}
#menuToggle{position:absolute;left:14px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:22px;color:#c9d1d9;cursor:pointer;display:none;z-index:1100}
@media (max-width:700px){#menuToggle{display:block}.chat-header{position:fixed;top:0;left:0;right:0}}
.chat-box{width:100%;max-width:100vw;padding:14px;margin-top:52px;margin-bottom:110px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;z-index:900;background:#0d1117}
.chat-input-container{padding:10px 12px;border-top:1px solid #21262d;background:#161b22;position:fixed;bottom:0;left:0;right:0;z-index:1100;display:grid;grid-template-columns:1fr auto auto;grid-template-rows:auto;align-items:end;gap:8px}
.input-area{position:relative;grid-column:1;grid-row:1}
@media (min-width:700px){.input-area{position:relative;margin-left:18vw;grid-column:1;grid-row:1}}
@media (max-width:400px){.input-area{position:relative;grid-column:1;grid-row:1}}
.chat-input{width:100%;height:10px;min-height:36px;max-height:160px;border:1px solid #30363d;border-radius:12px;padding:12px 44px;padding-left:44px;padding-right:44px;font-size:14px;resize:vertical;outline:none;background:#0d1117;color:#c9d1d9}
.chat-input:focus{border-color:#58a6ff;box-shadow:0 0 0 3px rgba(88,166,255,.15)}
.chat-input.listening{box-shadow:0 0 0 3px rgba(88,166,255,.15);border-color:#58a6ff;background:#161b22}
.plus-btn{position:absolute;left:10px;bottom:8px;width:28px;height:28px;border-radius:8px;border:1px solid #30363d;background:#21262d;color:#c9d1d9;cursor:pointer;font-size:18px;line-height:26px;text-align:center}
.plus-btn.active{background:#1f6feb;color:#f0f6fc;border-color:#1f6feb}
.voice-btn{position:absolute;right:10px;bottom:8px;width:28px;height:28px;border-radius:14px;border:1px solid #30363d;background:#21262d;color:#c9d1d9;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center}
.voice-btn.active{background:#1f6feb;color:#f0f6fc;border-color:#1f6feb}
.plus-palette{position:absolute;left:44px;bottom:8px;display:none;flex-direction:row;gap:6px;background:#161b22;padding:0px;border:1px solid #30363d;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.plus-palette.open{display:flex}
.mini-icon{width:28px;height:28px;border-radius:8px;border:1px solid #30363d;background:#21262d;color:#c9d1d9;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px}
.mini-icon:hover{background:#30363d;border-color:#58a6ff}
.send-button{grid-column:2;grid-row:1;padding:12px 16px;background:#238636;color:#f0f6fc;border:1px solid rgba(240,246,252,.1);border-radius:10px;cursor:pointer;transition:background .2s;white-space:nowrap;font-weight:600}
.send-button:hover{background:#2ea043}
#stopButton{grid-column:3;grid-row:1;padding:12px 16px;background:#da3633;color:#f0f6fc;border:none;border-radius:10px;cursor:pointer;font-weight:600;display:none}
#stopButton:hover{background:#f85149}
.chat-message{position:relative;padding:12px;border-radius:10px;max-width:76%;line-height:1.7;white-space:pre-wrap;word-break:break-word}
.user-message{align-self:flex-end;background:#1f6feb;color:#f0f6fc}
.bot-message{align-self:flex-start;background:#161b22;color:#c9d1d9;border:1px solid #30363d}
.chat-message pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#0d1117;color:#c9d1d9;padding:12px;border-radius:8px;overflow:auto;white-space:pre-wrap;line-height:1.5;font-size:13px;border:1px solid #30363d}
.msg-actions{display:flex;gap:6px;margin-top:6px}
.msg-actions button{border:1px solid #30363d;background:#21262d;color:#8b949e;border-radius:6px;padding:4px 6px;font-size:11px;cursor:pointer}
.msg-actions button:hover{background:#30363d;color:#c9d1d9}
.msg-actions button.copied{background:#238636;border-color:#2ea043;color:#f0f6fc}
.spinner{border:4px solid #21262d;width:42px;height:42px;border-radius:50%;border-left-color:#58a6ff;animation:spin .9s linear infinite;margin:0 auto}
.msg-index-bar{position:sticky;top:0;z-index:5;display:table;align-items:center;justify-content:space-between;background:rgba(22,27,34,.95);color:#8b949e;padding:4px 8px;font-size:12px;border-bottom:1px solid #30363d}
.msg-index-controls button,.msg-bottom-bar button{border:none;background:transparent;color:#8b949e;cursor:pointer;font-size:12px;padding:0 4px}
.msg-bottom-bar{display:flex;justify-content:flex-end;padding:2px 4px 0;font-size:12px}
@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
.img-card{display:block}
.img-card .generated-img-container{position:relative;display:block;max-width:420px;overflow:hidden;border:1px solid #30363d;border-radius:10px;background:#161b22}
.img-card img{width:100%;height:auto;display:block}
.img-card .download-btn{position:absolute;bottom:8px;right:8px;background:rgba(13,17,23,.85);color:#c9d1d9;border:1px solid #30363d;border-radius:6px;padding:6px 10px;cursor:pointer;font-size:12px}
.hint{font-size:12px;color:#8b949e;margin-top:6px}
.hljs{background:#0d1117 !important;color:#c9d1d9 !important}
.chat-message .code-card pre{background:#0d1117 !important;color:#c9d1d9 !important}
.chat-message .code-card .code-header{background:#161b22 !important;color:#8b949e !important}
.chat-message pre code.hljs{background:transparent !important;color:#c9d1d9 !important}
.chat-message pre{background:#0d1117 !important;color:#c9d1d9 !important}
.chats-top-btn{width:100% !important;background:#21262d !important;color:#c9d1d9 !important}
.chats-top-btn:hover{background:#1f6feb !important;color:#f0f6fc !important}
#newChatBtn{background:#238636;color:#f0f6fc;border:1px solid rgba(240,246,252,.1);border-radius:8px;padding:6px 12px;cursor:pointer;font-size:13px}
#newChatBtn:hover{background:#2ea043}
#newChatBtn:disabled{opacity:.6;cursor:not-allowed}
input, textarea, select{color:#c9d1d9}
input::placeholder, textarea::placeholder{color:#484f58}
select option{background:#161b22;color:#c9d1d9}
a{color:#58a6ff}
a:hover{color:#79c0ff}
