:root,[data-theme=dark]{--bg: #212121;--bg-sidebar: #171717;--bg-input: #2f2f2f;--border: #3f3f3f;--text: #ececec;--text-muted: #9b9b9b;--accent: #10a37f;--accent-hover: #0d8c6d;--accent-soft: rgba(16, 163, 127, .1);--accent-ring: rgba(16, 163, 127, .2);--accent-highlight: rgba(16, 163, 127, .45);--danger: #ef4444;--danger-soft: #f87171;--user-bubble: #303030;--code-bg: #0d1117;--code-header-bg: #161b22;--table-stripe: rgba(255, 255, 255, .02);--shadow-panel: 0 4px 16px rgba(0, 0, 0, .35);--error-banner-bg: rgba(239, 68, 68, .15);--error-banner-text: #fca5a5;--on-accent: #fff;--radius: 12px;font-family:Segoe UI,system-ui,-apple-system,sans-serif}[data-theme=light]{--bg: #ffffff;--bg-sidebar: #f3f3f3;--bg-input: #f9f9f9;--border: #d4d4d4;--text: #1a1a1a;--text-muted: #5c5c5c;--accent: #0d8c6d;--accent-hover: #0a7359;--accent-soft: rgba(13, 140, 109, .12);--accent-ring: rgba(13, 140, 109, .25);--accent-highlight: rgba(13, 140, 109, .35);--danger: #dc2626;--danger-soft: #b91c1c;--user-bubble: #f0f0f0;--code-bg: #f6f8fa;--code-header-bg: #eef1f4;--table-stripe: rgba(0, 0, 0, .03);--shadow-panel: 0 4px 16px rgba(0, 0, 0, .08);--error-banner-bg: rgba(220, 38, 38, .1);--error-banner-text: #991b1b;--on-accent: #fff}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}a{color:var(--accent)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{width:100%;max-width:400px;background:var(--bg-sidebar);border:1px solid var(--border);border-radius:var(--radius);padding:2rem}.login-brand{text-align:center;margin-bottom:.5rem}.app-brand-logo{display:block;max-width:240px;width:100%;height:auto;margin:0 auto .75rem}.app-brand-title{font-size:1.125rem;font-weight:600;line-height:1.35;letter-spacing:-.01em}.login-tagline{color:var(--text-muted);margin-bottom:1.5rem;font-size:.875rem;text-align:center}.field{margin-bottom:1rem}.field label{display:block;font-size:.85rem;margin-bottom:.35rem;color:var(--text-muted)}.field input,.field select,.field textarea{width:100%;padding:.65rem .75rem;background:var(--bg-input);border:1px solid var(--border);border-radius:8px}.btn-primary{width:100%;padding:.75rem;background:var(--accent);color:var(--on-accent);border-radius:8px;font-weight:600}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.login-hint{margin-top:.75rem;font-size:.78rem;color:var(--text-muted);text-align:center}.captcha-field{margin-bottom:.75rem}.turnstile-wrap{display:flex;justify-content:center;min-height:65px}.error-text{color:var(--danger);font-size:.85rem;margin-top:.75rem}.api-error-banner{margin:.75rem 1rem 0;padding:.75rem 1rem;background:var(--error-banner-bg);border:1px solid var(--danger);border-radius:8px;color:var(--error-banner-text);font-size:.9rem;max-width:768px}.chat-layout{display:flex;height:100vh}.sidebar{width:260px;background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}.sidebar-brand{padding:1rem .75rem .85rem;text-align:center;border-bottom:1px solid var(--border)}.sidebar-brand .app-brand-logo{max-width:200px;margin-bottom:.6rem}.sidebar-brand .app-brand-title{font-size:.95rem}.sidebar-header{padding:.75rem;border-bottom:1px solid var(--border)}.sidebar-header .btn-new{width:100%;padding:.6rem;border:1px solid var(--border);border-radius:8px;text-align:left}.sidebar-header .btn-new:hover{background:var(--bg-input)}.conv-list{flex:1;overflow-y:auto;padding:.5rem}.conv-item{display:flex;align-items:center;gap:.25rem;border-radius:8px;margin-bottom:2px}.conv-item.active{background:var(--bg-input)}.conv-item button.title-btn{flex:1;min-width:0;text-align:left;padding:.55rem .35rem .55rem .65rem;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-rename-input{flex:1;min-width:0;padding:.45rem .5rem;font-size:.875rem;background:var(--bg-input);border:1px solid var(--accent);border-radius:6px}.conv-actions{display:flex;align-items:center;gap:.1rem;flex-shrink:0;opacity:0;pointer-events:none;transition:opacity .15s ease}.conv-item:hover .conv-actions,.conv-item.active .conv-actions,.conv-item:focus-within .conv-actions{opacity:1;pointer-events:auto}.conv-action-btn{padding:.25rem .45rem;color:var(--text-muted);font-size:.95rem;line-height:1;border-radius:4px}.conv-action-btn:hover{color:var(--text);background:var(--bg-input)}.conv-action-delete:hover{color:var(--danger-soft)}.sidebar-footer{padding:.75rem;border-top:1px solid var(--border);font-size:.8rem;color:var(--text-muted)}.sidebar-footer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-top:.5rem}.theme-toggle{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .6rem;border:1px solid var(--border);border-radius:6px;font-size:.78rem;color:var(--text-muted)}.theme-toggle:hover{color:var(--text);background:var(--bg-input)}.sidebar-footer button.logout-btn{color:var(--text-muted)}.sidebar-footer button.logout-btn:hover{color:var(--text)}.main-panel{flex:1;display:flex;flex-direction:column;min-width:0;position:relative}.messages-panel{flex:1;position:relative;min-height:0;display:flex;flex-direction:column}.messages-area{flex:1;overflow-y:auto;padding:1.5rem 3.5rem 2rem 1rem}.messages-inner{max-width:768px;margin:0 auto}.scroll-anchor{height:1px;width:100%}.welcome{text-align:center;margin-top:16vh;color:var(--text-muted)}.welcome-logo{display:block;max-width:200px;width:100%;height:auto;margin:0 auto 1.25rem;opacity:.95}.welcome h2{color:var(--text);font-size:1.5rem;font-weight:600;margin-bottom:.5rem;letter-spacing:-.02em}.welcome p{font-size:.95rem;line-height:1.5;max-width:28rem;margin:0 auto}.context-dock{position:absolute;right:.75rem;z-index:20;display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;padding:.5rem .65rem;background:var(--bg-sidebar);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-panel);font-size:.78rem;max-width:10rem}.context-dock--top{top:.65rem}.context-dock--bottom{bottom:.65rem}.context-dock-check{display:flex;align-items:center;gap:.4rem;cursor:pointer;color:var(--text);font-weight:600}.context-dock-check input{accent-color:var(--accent);width:1rem;height:1rem}.context-dock-count{color:var(--accent);font-weight:600}.context-dock-btn{color:var(--text-muted);font-size:.75rem;padding:.15rem 0}.context-dock-btn:hover{color:var(--text)}.context-dock-hint{color:var(--text-muted);font-size:.68rem;text-align:right;line-height:1.3}.welcome-hint{margin-top:1rem;font-size:.85rem;color:var(--accent)}.message-row{margin-bottom:1.25rem}.message-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem;min-height:1.25rem}.message-row.user .message-body{margin-left:auto;max-width:85%}.message-row.user .message-header .role-label{text-align:left}.message-row.context-pickable .bubble{border:1px dashed var(--border)}.message-row.context-pickable .message-text{-webkit-user-select:text;user-select:text;cursor:text}.message-row.context-pickable ::selection{background:var(--accent-highlight);color:var(--text)}.message-row.context-selected .bubble{border:1px solid var(--accent);box-shadow:0 0 0 1px var(--accent-ring)}.message-row.context-selected .message-header .role-label{color:var(--accent)}.context-check{flex-shrink:0;cursor:pointer;display:flex;align-items:center;padding:.15rem}.context-check input{width:1.1rem;height:1.1rem;accent-color:var(--accent);cursor:pointer}.message-body{width:100%;min-width:0}.composer-toolbar .btn-icon.active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.message-row.user .bubble{background:var(--user-bubble);border-radius:var(--radius);padding:.85rem 1rem}.message-row.assistant .bubble{line-height:1.65;max-width:100%}.message-text{font-size:.95rem;line-height:1.65}.message-text.user-text{white-space:pre-wrap;word-break:break-word}.message-text.markdown-body{word-break:normal;overflow-wrap:normal}.message-text.streaming{color:var(--text)}.message-text.streaming :deep(p:last-child){display:inline}.streaming-block .cursor-blink{display:inline-block;vertical-align:text-bottom;margin-left:2px}.cursor-blink{display:inline;color:var(--accent);animation:blink 1s step-end infinite;margin-left:1px}@keyframes blink{50%{opacity:0}}.markdown-body :deep(p){margin:0 0 .75rem}.markdown-body :deep(p:last-child){margin-bottom:0}.markdown-body :deep(ul),.markdown-body :deep(ol){margin:0 0 .75rem;padding-left:1.5rem}.markdown-body :deep(li){margin-bottom:.35rem}.markdown-body :deep(li > p){margin:0}.markdown-body :deep(h1),.markdown-body :deep(h2),.markdown-body :deep(h3){margin:1rem 0 .5rem;line-height:1.3}.markdown-body :deep(blockquote){margin:.5rem 0;padding-left:1rem;border-left:3px solid var(--border);color:var(--text-muted)}.message-row.assistant .bubble :deep(.inline-code){font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.88em;background:var(--bg-input);padding:.15rem .4rem;border-radius:4px;border:1px solid var(--border)}.message-row.assistant .bubble :deep(.code-block){margin:.85rem 0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--code-bg)}.message-row.assistant .bubble :deep(.code-block-header){display:flex;align-items:center;justify-content:space-between;padding:.4rem .75rem;background:var(--code-header-bg);border-bottom:1px solid var(--border);font-size:.75rem}.message-row.assistant .bubble :deep(.code-lang){color:var(--text-muted);text-transform:lowercase;font-family:ui-monospace,monospace}.message-row.assistant .bubble :deep(.code-copy-btn){color:var(--text-muted);padding:.2rem .55rem;border-radius:4px;border:1px solid var(--border);font-size:.72rem}.message-row.assistant .bubble :deep(.code-copy-btn:hover){color:var(--text);background:var(--bg-input)}.message-row.assistant .bubble :deep(.code-block pre){margin:0;padding:1rem;overflow-x:auto;background:var(--code-bg);line-height:1.5}.message-row.assistant .bubble :deep(.code-block pre code){font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.85rem;background:transparent;padding:0;border:none;white-space:pre;word-break:normal;overflow-wrap:normal}.message-row.assistant .bubble :deep(.code-block .hljs){background:transparent}.markdown-body :deep(.md-table-wrap){display:block;width:100%;overflow-x:auto;margin:1rem 0;border:1px solid var(--border);border-radius:8px}.markdown-body :deep(table){width:100%;min-width:480px;border-collapse:collapse;font-size:.9rem}.markdown-body :deep(thead){background:var(--bg-input)}.markdown-body :deep(th),.markdown-body :deep(td){border:1px solid var(--border);padding:.6rem .85rem;text-align:left;vertical-align:top;line-height:1.45;white-space:normal;word-break:normal;overflow-wrap:normal;min-width:7rem}.markdown-body :deep(th){font-weight:600;color:var(--text)}.markdown-body :deep(tr:nth-child(even) td){background:var(--table-stripe)}.markdown-body :deep(hr){border:none;border-top:1px solid var(--border);margin:1rem 0}.message-row .role-label{font-size:.75rem;color:var(--text-muted);margin-bottom:.35rem}.attach-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.attach-tag{font-size:.75rem;background:var(--bg-input);padding:.2rem .5rem;border-radius:4px}.composer-wrap{padding:.75rem 1rem 1.25rem;border-top:1px solid var(--border)}.composer{max-width:768px;margin:0 auto;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem}.instructions-panel{margin-bottom:.65rem;padding-bottom:.65rem;border-bottom:1px solid var(--border)}.instructions-label{display:block;font-size:.78rem;color:var(--text-muted);margin-bottom:.35rem}.instructions-input{width:100%;min-height:4.5rem;max-height:120px;resize:vertical;padding:.5rem .6rem;font-size:.85rem;line-height:1.45;background:var(--bg);border:1px solid var(--border);border-radius:8px;outline:none}.instructions-input:focus{border-color:var(--accent)}.instructions-hint{margin-top:.35rem;font-size:.72rem;color:var(--text-muted)}.composer textarea{width:100%;min-height:52px;max-height:200px;resize:none;background:transparent;border:none;outline:none}.composer-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem}.composer-toolbar select{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.35rem .5rem;font-size:.8rem}.toggle{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--text-muted);padding:.35rem .5rem;border-radius:6px;border:1px solid transparent}.toggle.active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.toggle input{display:none}.btn-icon{padding:.35rem .6rem;border:1px solid var(--border);border-radius:6px;font-size:.8rem}.btn-icon:hover{background:var(--bg)}.btn-send{margin-left:auto;background:var(--accent);color:var(--on-accent);padding:.45rem 1rem;border-radius:8px;font-weight:600}.btn-send:hover{background:var(--accent-hover)}.pending-files{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem}.pending-file{font-size:.75rem;background:var(--bg);padding:.25rem .5rem;border-radius:4px;display:flex;align-items:center;gap:.35rem}.pending-file button{color:var(--danger)}
