:root{--paper-bg:#000;--paper-panel:#0d0d0f;--paper-soft:#141417;--ink:#c9c9ce;--muted:#8a8a90;--line:#242428;--editorial-accent:#eeac77;--bg-primary:#000;--bg:#000;--bg-secondary:#0d0d0f;--bg-tertiary:#141417;--bg-elevated:#1e1e22;--bg-canvas:#000;--surface-1:var(--bg-secondary);--surface-2:var(--bg-tertiary);--surface-glass:rgba(10,10,12,.92);--surface-border:hsla(0,0%,100%,.05);--surface-border-strong:hsla(0,0%,100%,.1);--text:#c9c9ce;--text-primary:#c9c9ce;--text-secondary:#ababb0;--text-tertiary:#87878d;--text-muted:#636368;--border:#242428;--border-strong:#34343a;--border-light:#18181b;--accent:#eeac77;--accent-hover:#f4c397;--accent-dim:#d59760;--accent-light:#f7d3ae;--accent-muted:hsla(27,78%,70%,.14);--accent-soft:#2a2016;--success:#8fcaa3;--success-bg:rgba(143,202,163,.12);--success-text:#a9d8ba;--error:#e79a9a;--error-bg:hsla(0,62%,75%,.12);--error-text:#efb6b6;--warning:#e6c98c;--warning-bg:hsla(41,64%,73%,.12);--warning-text:#eed5a6;--info:#9fc4d8;--info-bg:rgba(159,196,216,.12);--info-text:#bcd8e8;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--shadow-xl:none;--shadow-soft:none;--shadow-glow:none;--code-bg:#0e0e12;--code-text:#ababb0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:20px;--space-2xl:24px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:10px;--radius-2xl:14px;--radius-full:9999px;--sidebar-width:280px;--header-height:42px;--chat-max-width:820px;--transition-fast:0.15s ease;--transition-normal:0.2s ease;--focus-ring:0 0 0 3px hsla(27,78%,70%,.22);--ease-out:cubic-bezier(0.22,1,0.36,1);--ease-in:cubic-bezier(0.4,0,1,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--ease-ink:cubic-bezier(0.33,0,0.15,1);--duration-instant:80ms;--duration-fast:150ms;--duration-normal:220ms;--duration-slow:320ms;--duration-spatial:420ms;--transition-enter:opacity var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out);--transition-exit:opacity var(--duration-fast) var(--ease-in),transform var(--duration-fast) var(--ease-in);--lift-px:1px;--z-dropdown:30;--z-sidebar-overlay:40;--z-sidebar:50;--z-modal:100;--z-toast:200;--mobile-breakpoint:768px;--font-main:"Outfit",system-ui,sans-serif;--font-serif:"Source Serif 4","Charter","Iowan Old Style","Georgia",ui-serif,serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--text-xs:11px;--text-sm:12px;--text-base:14px;--text-md:15px;--text-lg:16px;--text-xl:18px;--text-2xl:20px;--text-3xl:24px}@media (prefers-reduced-motion:reduce){:root{--duration-instant:0ms;--duration-fast:0ms;--duration-normal:0ms;--duration-slow:0ms;--duration-spatial:0ms;--lift-px:0px;--transition-fast:0s;--transition-normal:0s}.chat-panel-wf-badge .spinning,.msg-thinking .msg-avatar .icon,.status-dot.processing,.streaming-cursor,.thinking-dots span,.wf-seg.seg-running{animation:none!important}html{scroll-behavior:auto}}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;height:-webkit-fill-available}body{height:100%;min-height:100vh;min-height:-webkit-fill-available;background:var(--bg-canvas);color:var(--text);font-family:var(--font-main);font-size:14px;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font:inherit}:focus-visible{outline:none;box-shadow:var(--focus-ring)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.icon{font-family:Material Symbols Rounded;font-size:20px;font-variation-settings:"FILL" 0,"wght" 400;line-height:1}.icon-sm{font-size:16px}.icon-lg{font-size:24px}.icon-fill{font-variation-settings:"FILL" 1}[data-theme=light]{--paper-bg:#f4ead8;--paper-panel:#f9f1e3;--paper-soft:#efe3ce;--ink:#2c241c;--muted:#8a7b68;--line:#d8c8ad;--editorial-accent:#a56b3a;--bg-primary:#fbf6ea;--bg:var(--paper-bg);--bg-secondary:var(--paper-panel);--bg-tertiary:var(--paper-soft);--bg-elevated:#fff9ef;--bg-canvas:var(--paper-bg);--surface-1:var(--bg-secondary);--surface-2:var(--bg-tertiary);--surface-glass:hsla(38,44%,96%,.94);--surface-border:rgba(66,52,36,.07);--surface-border-strong:rgba(66,52,36,.12);--text:var(--ink);--text-primary:var(--ink);--text-secondary:#5f523f;--text-tertiary:var(--muted);--text-muted:#a99b85;--border:var(--line);--border-strong:#b9aa90;--border-light:#e9deca;--accent:var(--editorial-accent);--accent-hover:#b67842;--accent-dim:#8e5b31;--accent-light:#b98356;--accent-muted:rgba(165,107,58,.07);--success:#5a7542;--success-bg:rgba(90,117,66,.1);--success-text:#4a6336;--error:#a33e3e;--error-bg:rgba(163,62,62,.1);--error-text:#8a2f2f;--warning:#8a6a1f;--warning-bg:rgba(138,106,31,.1);--warning-text:#6e5318;--info:#3f5f7a;--info-bg:rgba(63,95,122,.1);--info-text:#2f4a60;--code-bg:#efe9dd;--code-text:#2c2620;--shadow-soft:none;--shadow-glow:none;--focus-ring:0 0 0 3px rgba(192,112,48,.16)}[data-theme=light] .input-box{background:var(--bg-primary)}[data-theme=light] .timeline-avatar{background:var(--bg-tertiary)}[data-theme=light] .timeline-message.assistant .timeline-content{background:var(--bg-primary)}[data-theme=light] .msg-text pre{background:var(--bg-tertiary);border-color:var(--border)}[data-theme=light] .msg-text pre:before{background:var(--bg-secondary)}[data-theme=light] .msg-text pre code{color:#1e293b}[data-theme=light] .header,[data-theme=light] .sidebar{background:var(--bg-primary)}[data-theme=light] ::-webkit-scrollbar-thumb{background:#cfc5b0}[data-theme=light] ::-webkit-scrollbar-thumb:hover{background:#b5ab97}.hidden{display:none!important}.flex{display:flex}.flex-1{flex:1 1}.items-center{align-items:center}.justify-center{justify-content:center}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.app{display:flex;height:100%}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;transition:width .3s ease,margin .3s ease,opacity .3s ease;overflow:hidden}.sidebar.collapsed{width:0;border-right:none;opacity:0;pointer-events:none}.sidebar-toggle-btn{padding:var(--space-sm);background:none;border:none;color:var(--text-secondary);cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.sidebar-toggle-btn:hover{background:var(--bg-tertiary);color:var(--text)}.sidebar-toggle-btn .icon{transition:transform .3s ease}.sidebar.collapsed~.main .sidebar-toggle-btn .icon{transform:rotate(180deg)}.sidebar-header{padding:var(--space-3) var(--space-3);border-bottom:1px solid var(--border)}.logo{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px}.logo-icon{width:32px;height:32px;border-radius:var(--radius-md)}.logo-icon,.new-chat-btn{background:var(--accent);display:flex;align-items:center;justify-content:center}.new-chat-btn{width:100%;padding:var(--space-3) var(--space-4);border:none;border-radius:var(--radius-lg);color:#fff;font-size:var(--text-base);font-weight:500;cursor:pointer;gap:var(--space-2);transition:all var(--transition-fast)}.new-chat-btn:hover{background:var(--accent-hover)}.new-chat-btn:active{background:var(--accent-dim)}.new-chat-btn .btn-icon{width:auto;height:auto;padding:0;background:transparent;border-radius:0;font-size:20px}.new-chat-btn .btn-icon:hover{background:transparent;transform:none}.chat-list{flex:1 1;overflow-y:auto;padding:6px;gap:1px}.chat-list,.sidebar-footer{display:flex;flex-direction:column}.sidebar-footer{padding:var(--space-md);border-top:1px solid var(--border);gap:var(--space-sm)}.sidebar-footer-btn{flex:1 1;padding:var(--space-sm);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--space-xs)}.sidebar-footer-btn:hover{background:var(--bg-secondary);color:var(--text)}.main{flex:1 1;display:flex;flex-direction:column;min-width:0}.header{position:relative;padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:var(--space-md);background:var(--bg);box-shadow:var(--shadow-sm)}.menu-btn{display:none;padding:var(--space-sm);background:none;border:none;color:var(--text);cursor:pointer}.header-title{flex:1 1;font-weight:600;font-size:var(--text-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.2px}.header-status{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 4px rgba(72,168,88,.4)}.status-dot.processing{background:var(--accent);animation:pulse 1.5s infinite}.status-dot.error{background:var(--error)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.auto-scroll-toggle{display:flex;align-items:center;justify-content:center;padding:var(--space-xs);cursor:pointer;border-radius:6px;color:var(--text-tertiary);transition:all var(--transition-fast)}.auto-scroll-toggle:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.auto-scroll-toggle input{display:none}.auto-scroll-toggle input:checked+.icon{color:var(--accent)}.auto-scroll-toggle .icon{font-size:18px}.header-btn{padding:var(--space-sm);background:none;border:none;color:var(--text-tertiary);cursor:pointer;border-radius:6px}.header-btn:hover{background:var(--bg-tertiary);color:var(--text)}.header-btn.sync-btn{position:relative}.header-btn.sync-btn .icon{transition:transform .3s ease}.header-btn.sync-btn.syncing .icon{animation:syncSpin 1s linear infinite}.header-btn.sync-btn.connected{color:var(--success)}.header-btn.sync-btn.connected:hover{color:var(--success);background:rgba(34,197,94,.1)}.sync-status-indicator{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--text-tertiary);display:none}.sync-status-indicator.connected{display:block;background:var(--success)}.sync-status-indicator.syncing{display:block;background:var(--warning);animation:syncPulse 1s ease-in-out infinite}.sync-status-indicator.error{display:block;background:var(--error)}@keyframes syncSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes syncPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.header-spacer{flex:1 1}.header-dropdown-menu{position:absolute;top:100%;right:var(--space-xl);min-width:220px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-sm);z-index:var(--z-dropdown);opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .2s ease}.header-dropdown-menu.open{opacity:1;visibility:visible;transform:translateY(4px)}.header-menu-section{padding:var(--space-sm)}.header-menu-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);margin-bottom:var(--space-sm);display:block}.header-menu-toggle{display:flex;background:var(--bg-secondary);border-radius:var(--radius-md);padding:3px;gap:2px}.header-menu-toggle-btn{flex:1 1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;background:transparent;border:none;color:var(--text-secondary);font-size:12px;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.header-menu-toggle-btn:hover{color:var(--text)}.header-menu-toggle-btn.active{background:var(--accent);color:#fff}.header-menu-separator{height:1px;background:var(--border);margin:var(--space-sm) 0}.header-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;color:var(--text-secondary);font-size:13px;cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);text-align:left}.header-menu-item:hover{background:var(--bg-tertiary);color:var(--text)}.header-menu-item .icon{font-size:18px;color:var(--text-tertiary)}.header-menu-item:hover .icon{color:var(--accent)}.header-menu-checkbox{cursor:pointer}.header-menu-checkbox input[type=checkbox]{margin-left:auto;width:16px;height:16px;accent-color:var(--accent)}.chat-tabs-bar{display:none;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-xl);background:var(--bg-secondary);border-bottom:1px solid var(--border)}.chat-tabs-bar.visible{display:flex}.chat-tabs-bar .header-project{flex-shrink:0}.chat-tabs-bar .chat-tabs{flex:1 1;margin-right:0;max-width:none}.chat-tabs-bar .chat-tab-add{flex-shrink:0}.mobile-menu,.mobile-menu-btn{display:none}.sidebar-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:var(--z-sidebar-overlay);opacity:0;pointer-events:none;transition:opacity var(--transition-normal)}.sidebar-overlay.open{opacity:1;pointer-events:auto}.header-actions-menu{position:relative}.header-actions-dropdown{position:absolute;top:100%;right:0;min-width:280px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 32px rgba(0,0,0,.3);padding:var(--space-sm);z-index:var(--z-dropdown);opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .2s ease;max-height:80vh;overflow-y:auto}.header-actions-dropdown.open{opacity:1;visibility:visible;transform:translateY(4px)}.header-actions-section{padding:var(--space-xs) 0}.header-actions-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);padding:var(--space-xs) var(--space-sm);display:block}.header-actions-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;background:none;border:none;color:var(--text-secondary);font-size:13px;cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);text-align:left}.header-actions-item:hover{background:var(--bg-tertiary);color:var(--text)}.header-actions-item:disabled{opacity:.55;cursor:not-allowed}.header-actions-item:disabled:hover{background:none;color:var(--text-secondary)}.header-actions-item .material-symbols-rounded{font-size:18px;color:var(--text-tertiary)}.header-actions-item.active,.header-actions-item.active .material-symbols-rounded,.header-actions-item:hover .material-symbols-rounded{color:var(--accent)}.header-actions-permission{cursor:default}.header-actions-permission:hover{background:none}.header-actions-separator{height:1px;background:var(--border);margin:var(--space-xs) 0}.header-actions-toggle-group{display:flex;background:var(--bg-secondary);border-radius:var(--radius-md);padding:3px;gap:2px;margin:var(--space-xs) var(--space-sm)}.header-actions-toggle-btn{flex:1 1;display:flex;align-items:center;justify-content:center;gap:4px;padding:6px 8px;background:transparent;border:none;color:var(--text-secondary);font-size:11px;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.header-actions-toggle-btn .material-symbols-rounded{font-size:14px}.header-actions-toggle-btn:hover{color:var(--text)}.header-actions-toggle-btn.active{background:var(--accent);color:#fff}.header-actions-badge{width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:auto}.header-actions-count{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-secondary);font-size:10px;font-weight:700;line-height:18px;text-align:center}.header-actions-count+.header-actions-badge{margin-left:6px}.header-actions-voice-panel{margin:var(--space-xs) var(--space-sm) 0;padding:6px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary)}.header-actions-voice-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:4px 6px 6px;color:var(--text-tertiary);font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.header-actions-voice-panel .tts-engine-row{padding:6px;border-radius:var(--radius-sm)}.header-actions-voice-panel .tts-browser-voice-section{padding:8px 6px 4px}.header-actions-muted{opacity:.55}.header-actions-user-footer{padding:var(--space-xs) 0}.header-actions-user-info{display:flex;align-items:center;gap:10px;padding:8px 12px;color:var(--text-secondary);font-size:13px}.header-actions-user-info .material-symbols-rounded{font-size:20px;color:var(--accent)}.header-actions-username{font-weight:500}.header-actions-item-danger,.header-actions-item-danger .material-symbols-rounded{color:var(--error)!important}.header-actions-item-danger:hover{background:rgba(239,68,68,.1)}