.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:8px;top:-40px;background:var(--accent-highlight);color:#fff;padding:6px 12px;border-radius:6px;text-decoration:none;font-size:13px;z-index:2000;transition:top .15s}.skip-link:focus{top:8px;outline:2px solid #fff;outline-offset:2px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-highlight);outline-offset:2px}.chat-shell{position:relative;display:flex;height:100vh;height:100dvh;overflow:hidden}.chat-main{display:flex;flex-direction:column;flex:1;min-width:0}.chat-header{padding:12px 24px 12px 64px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;flex-wrap:wrap;row-gap:6px}.brand-logo{width:28px;height:28px;display:inline-block;flex-shrink:0;-webkit-mask:url(/brand/aiforall-logo-light.png) center/contain no-repeat;mask:url(/brand/aiforall-logo-light.png) center/contain no-repeat}.brand-logo,.brand-logo-hero{background-color:var(--accent-highlight)}.brand-logo-hero{width:72px;height:72px}.brand-name{font-weight:700;font-size:20px;letter-spacing:-.01em;color:var(--brand-wordmark);line-height:1}.brand-tagline{font-size:14px;color:var(--muted);font-weight:400;line-height:1}.chat-body{display:flex;flex:1;min-height:0}.chat-pane{flex:1;display:flex;flex-direction:column;min-width:0}.gv-toggle-float{position:absolute;top:14px;left:14px;z-index:50;background:transparent;border:none;padding:8px;border-radius:10px;color:var(--text);cursor:pointer;transition:background .15s ease,color .15s ease;display:flex;align-items:center;justify-content:center}.gv-toggle-float:hover{background:color-mix(in srgb,var(--accent-highlight) 14%,transparent);color:var(--accent-highlight)}.gv-menu-item{background:transparent;border:none;padding:8px;border-radius:10px;color:var(--text);cursor:pointer;transition:background .15s ease,color .15s ease;display:flex;align-items:center;justify-content:center;text-decoration:none}.gv-menu-item:hover{background:color-mix(in srgb,var(--accent-highlight) 14%,transparent);color:var(--accent-highlight)}.chat-pane{position:relative}.chat-pane.drag-active{outline:2px dashed var(--accent-highlight);outline-offset:-4px;border-radius:8px}.drop-overlay{position:absolute;inset:0;background:rgba(58,134,255,.08);backdrop-filter:blur(2px);z-index:10;display:flex;align-items:center;justify-content:center;border-radius:8px}.drop-overlay-content{align-items:center;gap:12px;color:var(--accent-highlight);font-weight:600;font-size:16px}.drop-overlay-content,.gv-panel{display:flex;flex-direction:column}.gv-panel{width:280px;background:var(--panel);border-right:1px solid var(--border);flex-shrink:0;overflow:hidden}.gv-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 12px 12px 16px;border-bottom:1px solid var(--border)}.gv-panel-brand{display:flex;align-items:center;gap:10px;min-width:0;text-decoration:none;color:inherit}.gv-panel-brand:hover{opacity:.9}.gv-panel-brand-text{display:flex;flex-direction:column;min-width:0}.gv-panel-brand-text .brand-name{font-size:16px;font-weight:600;letter-spacing:-.3px;line-height:1.1}.gv-panel-brand-text .brand-tagline{font-size:11px;color:var(--muted);line-height:1.3}.gv-panel-menu{display:flex;flex-direction:column;padding:8px 8px 4px;gap:2px}.gv-panel-row{display:flex;align-items:center;gap:12px;padding:8px 10px;background:transparent;border:none;border-radius:8px;font-size:14px;color:var(--text);text-align:left;cursor:pointer;text-decoration:none;transition:background .15s ease;width:100%;font-family:inherit}.gv-panel-row:hover{background:var(--surface)}.gv-panel-row svg{color:var(--muted);flex-shrink:0}.gv-panel-row:hover svg{color:var(--accent-highlight)}.gv-panel-divider{height:1px;background:var(--border);margin:6px 12px}.gv-panel-bottom{margin-top:auto;flex-shrink:0;display:flex;flex-direction:column}.gv-panel-identity-wrap{position:relative}.gv-panel-identity{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--panel);border:none;border-top:1px solid var(--border);cursor:pointer;width:100%;text-align:left;transition:background .15s ease;font-family:inherit}.gv-panel-identity:hover{background:var(--surface)}.gv-panel-identity{text-decoration:none}.gv-panel-identity-caret{margin-left:auto;color:var(--muted);flex-shrink:0;transition:transform .15s ease}.gv-panel-identity-caret.open{transform:rotate(180deg)}.gv-panel-identity-menu{position:absolute;bottom:100%;left:8px;right:8px;margin-bottom:8px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 -4px 16px rgba(0,0,0,.15);padding:6px;display:flex;flex-direction:column;gap:2px;z-index:20}.gv-panel-identity-menu-divider{height:1px;background:var(--border);margin:4px}.gv-panel-identity-quota{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 6px;font-size:12px}.gv-panel-identity-quota-label{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-weight:600}.gv-panel-identity-quota-value{color:var(--accent-highlight);font-weight:600;font-size:13px}.gv-panel-identity-avatar{width:28px;height:28px;border-radius:50%;background:color-mix(in srgb,var(--accent-highlight) 18%,transparent);color:var(--accent-highlight);display:flex;align-items:center;justify-content:center;flex-shrink:0}.gv-panel-identity-text{display:flex;flex-direction:column;min-width:0}.gv-panel-identity-name{font-size:13px;font-weight:600;color:var(--text);line-height:1.2}.gv-panel-identity-meta{font-size:11px;color:var(--muted);line-height:1.2}.history-section{padding:4px 8px 12px}.gv-panel-conversations{flex:1 1 0;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.gv-panel-conversations::-webkit-scrollbar{width:8px}.gv-panel-conversations::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.gv-panel-conversations::-webkit-scrollbar-track{background:transparent}.history-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:8px 8px 4px}.history-empty,.history-item{font-size:13px;color:var(--muted);padding:8px}.history-item{display:flex;align-items:center;gap:8px;border-radius:8px;cursor:pointer;transition:all .15s}.history-item:hover{background:var(--surface);color:var(--text)}.history-item.active{background:color-mix(in srgb,var(--accent-highlight) 12%,transparent);color:var(--text);box-shadow:inset 2px 0 0 var(--accent-highlight)}.history-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-delete,.history-edit{opacity:0;background:transparent;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:4px;flex-shrink:0}.history-item:hover .history-delete,.history-item:hover .history-edit{opacity:1}.history-edit:hover{color:var(--accent-highlight)}.history-delete:hover{color:#ef4444}.file-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;color:var(--text);position:relative}.file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-badge{font-size:10px;font-weight:600;padding:1px 6px;border-radius:4px;text-transform:uppercase;flex-shrink:0}.file-badge.ready{background:rgba(34,197,94,.15);color:#22c55e}.file-badge.ingesting,.file-badge.uploading{background:rgba(58,134,255,.15);color:var(--accent-highlight)}.file-badge.failed{background:rgba(239,68,68,.15);color:#ef4444}.file-progress{position:absolute;bottom:0;left:8px;right:8px;height:2px;background:var(--border);border-radius:1px;overflow:hidden}.file-progress-bar{height:100%;background:var(--accent-highlight);border-radius:1px;transition:width .3s ease}.sidebar-toggle{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center}.sidebar-toggle:hover{color:var(--text);background:var(--surface)}.chat-list{flex:1;overflow-y:auto;padding:24px 16px;display:flex;flex-direction:column;gap:16px}.chat-list::-webkit-scrollbar{width:6px}.chat-list::-webkit-scrollbar-track{background:transparent}.chat-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:12px;color:var(--muted);text-align:center;padding:48px 24px}.chat-empty-icon{opacity:.5;margin-bottom:8px}.chat-empty-hint{font-size:13px;opacity:.7}.message{display:flex;max-width:720px;width:100%;margin:0 auto;min-width:0}.message.user{justify-content:flex-end}.message.assistant{justify-content:flex-start}.bubble{max-width:85%;padding:14px 18px;border-radius:var(--radius);font-size:15px;line-height:1.65;word-break:break-word;position:relative}.msg-actions{position:absolute;top:6px;right:6px;display:flex;gap:4px;opacity:0;transition:opacity .12s;z-index:1}.bubble:hover .msg-actions,.msg-actions:focus-within{opacity:1}.msg-action-btn{background:rgba(0,0,0,.35);border:1px solid hsla(0,0%,100%,.12);color:#fff;border-radius:6px;padding:3px 5px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.msg-action-btn:hover{background:rgba(0,0,0,.55)}.bubble.assistant .msg-action-btn{background:var(--surface);border-color:var(--border);color:var(--muted)}.bubble.assistant .msg-action-btn:hover{background:var(--panel);color:var(--text)}.bubble.assistant .msg-action-regenerate:hover{color:var(--accent-highlight);border-color:var(--accent-highlight)}.bubble.msg-editing{padding:10px 12px;max-width:92%}.msg-edit-textarea{width:100%;min-width:min(280px,100%);background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.2);color:#fff;border-radius:8px;padding:8px 10px;font:inherit;line-height:1.5;resize:vertical;outline:none}.msg-edit-textarea:focus{border-color:hsla(0,0%,100%,.45)}.msg-edit-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:8px}.msg-edit-cancel,.msg-edit-save{border-radius:6px;padding:5px 12px;font-size:13px;cursor:pointer;border:1px solid hsla(0,0%,100%,.2)}.msg-edit-cancel{background:transparent;color:hsla(0,0%,100%,.85)}.msg-edit-cancel:hover{background:hsla(0,0%,100%,.1)}.msg-edit-save{background:#fff;color:var(--bubble-user-bg,var(--accent-highlight));border-color:#fff;font-weight:500}.msg-edit-save:hover{filter:brightness(.95)}.bubble.user{background:var(--bubble-user-bg);color:#fff;border-bottom-right-radius:4px}.bubble.assistant{background:var(--bubble-assistant-bg);color:var(--text);border-bottom-left-radius:4px;border:1px solid var(--border)}.msg-text{white-space:pre-wrap}.msg-text.prose{white-space:normal}.prose p{margin:.5em 0}.prose p:first-child{margin-top:0}.prose p:last-child{margin-bottom:0}.prose ol,.prose ul{margin:.4em 0;padding-left:1.5em}.prose li{margin:.1em 0}.prose li>p{margin:.2em 0}.prose li>p:only-child{margin:0}.prose h1,.prose h2,.prose h3,.prose h4{font-weight:600;margin:.75em 0 .25em;line-height:1.3}.prose h1{font-size:1.3em}.prose h2{font-size:1.15em}.prose h3{font-size:1.05em}.prose strong{font-weight:600}.prose a{color:var(--accent-highlight);text-decoration:underline}.prose a:hover{opacity:.8}.prose blockquote{border-left:3px solid var(--accent-highlight);padding-left:12px;margin:.5em 0;color:var(--muted)}.prose table{border-collapse:collapse;margin:.5em 0;font-size:.9em;width:100%}.prose td,.prose th{border:1px solid var(--border);padding:6px 10px;text-align:left}.prose th{background:var(--surface);font-weight:600}.prose hr{border:none;border-top:1px solid var(--border);margin:1em 0}.code-block-wrapper{position:relative;margin:8px 0}.copy-btn{position:absolute;top:8px;right:8px;background:var(--surface);border:1px solid var(--border);color:var(--muted);padding:4px 6px;border-radius:6px;cursor:pointer;display:flex;align-items:center;z-index:1;transition:all .15s}.copy-btn:hover{color:var(--text);background:var(--bg)}.code-block{background:#0d1117;border:1px solid var(--border);border-radius:8px;padding:12px 48px 12px 16px;margin:0;font-family:SF Mono,Fira Code,monospace;font-size:13px;overflow-x:auto;line-height:1.5;color:#e6edf3}.diagram-wrap{position:relative;margin:12px 0}.diagram-expand-btn{position:absolute;top:6px;right:6px;z-index:3;background:var(--surface);border:1px solid var(--border);color:var(--muted);padding:3px 5px;border-radius:5px;cursor:pointer;display:inline-flex;align-items:center;transition:color .12s,background .12s}.diagram-expand-btn:hover{color:var(--text);background:var(--panel,#fff)}.diagram-expand-btn:disabled{opacity:.4;cursor:default}.concept-graph-rendered,.mermaid-rendered,.vega-rendered{background:var(--panel,#fff);border:1px solid var(--border);border-radius:8px;padding:16px;overflow-x:auto;overflow-y:hidden;text-align:center}.concept-graph-rendered svg,.mermaid-rendered svg,.vega-rendered svg{max-width:100%;height:auto;display:inline-block}.mermaid-rendered foreignObject{overflow:visible}.mermaid-rendered foreignObject .label,.mermaid-rendered foreignObject .nodeLabel,.mermaid-rendered foreignObject>div{line-height:1.35;white-space:normal!important;word-break:break-word;overflow-wrap:break-word;text-align:center;padding:2px 6px;display:block;color:var(--text)!important}.mermaid-rendered .node>circle,.mermaid-rendered .node>ellipse,.mermaid-rendered .node>path,.mermaid-rendered .node>polygon,.mermaid-rendered .node>rect{fill:var(--surface)!important;stroke:var(--accent-highlight)!important}.mermaid-rendered .label text,.mermaid-rendered .node text,.mermaid-rendered .nodeLabel{fill:var(--text)!important}.mermaid-rendered .edgeLabel,.mermaid-rendered .edgeLabel *{background-color:var(--panel)!important;color:var(--text)!important;fill:var(--text)!important}.mermaid-rendered .edgeLabel rect{fill:var(--panel)!important}.gv-diagram-slot,.gv-mermaid-slot{display:contents}.chart-error{border:1px solid #f59e0b;background:rgba(245,158,11,.08);border-radius:8px;padding:12px 16px;margin:12px 0}.chart-error-label{font-size:12px;color:#b45309;margin-bottom:4px;font-weight:600}.chart-error-detail{font-size:12px;color:#92400e;margin-bottom:8px}.chart-error-detail,.chart-source{font-family:SF Mono,Fira Code,monospace}.chart-source{background:transparent;color:var(--text);font-size:11px;margin:0;white-space:pre-wrap;max-height:200px;overflow:auto}.diagram-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:80;display:flex;align-items:center;justify-content:center}.diagram-modal{background:var(--panel,#fff);border:1px solid var(--border);border-radius:12px;width:92vw;height:88vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.35);overflow:hidden}.diagram-modal-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface)}.diagram-modal-label{font-size:13px;color:var(--muted)}.diagram-modal-actions{display:flex;gap:6px}.diagram-modal-actions button{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:6px;padding:4px 6px;cursor:pointer;display:inline-flex;align-items:center}.diagram-modal-actions button:hover{background:var(--panel,#fff)}.diagram-modal-close{color:var(--muted)}.diagram-modal-body{flex:1;overflow:hidden;background:var(--panel,#fff);cursor:grab}.diagram-modal-body:active{cursor:grabbing}.diagram-modal-body svg{width:100%;height:100%;display:block}.mermaid-loading{background:var(--surface);border:1px dashed var(--border);border-radius:8px;padding:16px;margin:12px 0;color:var(--muted);font-size:13px;text-align:center}.mermaid-error{border:1px solid #f59e0b;background:rgba(245,158,11,.08);border-radius:8px;padding:12px 16px;margin:12px 0}.mermaid-error-label{font-size:12px;color:#b45309;margin-bottom:8px}.mermaid-source{background:transparent;color:var(--text);font-family:SF Mono,Fira Code,monospace;font-size:12px;margin:0;white-space:pre-wrap}.scope-chip-wrap{position:relative;margin-left:auto}.scope-chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:4px 10px;border-radius:999px;font-size:12px;cursor:pointer;transition:border-color .12s,color .12s}.scope-chip.active,.scope-chip:hover{border-color:var(--accent-highlight)}.scope-chip.active{color:var(--accent-highlight);background:rgba(99,102,241,.08)}.scope-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:30;background:var(--panel,#fff);border:1px solid var(--border);border-radius:10px;padding:12px 14px;box-shadow:0 8px 24px rgba(0,0,0,.1);min-width:260px;max-width:320px}.scope-loading{color:var(--muted);font-size:13px}.scope-row{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.scope-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.scope-row select{font:inherit;font-size:13px;padding:4px 6px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.scope-checks{display:flex;flex-wrap:wrap;gap:6px 12px}.scope-check{display:inline-flex;align-items:center;gap:4px;font-size:13px;cursor:pointer}.scope-hint{color:var(--muted);font-size:12px;line-height:1.4;margin-bottom:10px}.scope-actions{display:flex;justify-content:space-between;gap:8px;margin-top:4px}.scope-clear,.scope-save{border:1px solid var(--border);border-radius:6px;padding:5px 12px;font-size:13px;cursor:pointer}.scope-clear{background:transparent;color:var(--muted)}.scope-clear:hover:not(:disabled){color:var(--text)}.scope-save{background:var(--accent-highlight);color:#fff;border-color:var(--accent-highlight)}.scope-save:hover:not(:disabled){filter:brightness(1.1)}.scope-clear:disabled,.scope-save:disabled{opacity:.6;cursor:wait}.followups{margin-top:10px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}.followups-label{color:var(--muted);font-size:12px;margin-right:2px}.followup-pill{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:5px 12px;border-radius:999px;font-size:12.5px;line-height:1.3;cursor:pointer;text-align:left;max-width:420px;transition:border-color .12s,color .12s,background .12s}.followup-pill:hover{border-color:var(--accent-highlight);color:var(--accent-highlight);background:rgba(99,102,241,.06)}.feedback-controls{position:relative;margin-top:6px;display:flex;gap:4px;align-items:center}.feedback-btn{background:transparent;border:1px solid transparent;color:var(--muted);padding:3px 5px;border-radius:5px;cursor:pointer;display:inline-flex;align-items:center;transition:color .12s,background .12s,border-color .12s}.feedback-btn:hover:not(:disabled){color:var(--text);background:var(--surface);border-color:var(--border)}.feedback-btn.active{color:#16a34a;background:rgba(22,163,74,.1);border-color:rgba(22,163,74,.3)}.feedback-btn.active.down{color:#dc2626;background:rgba(220,38,38,.1);border-color:rgba(220,38,38,.3)}.feedback-btn:disabled{opacity:.6;cursor:wait}.feedback-picker{position:absolute;top:calc(100% + 6px);left:0;z-index:20;background:var(--panel,#fff);border:1px solid var(--border);border-radius:10px;padding:10px 12px;box-shadow:0 6px 20px rgba(0,0,0,.08);min-width:260px;max-width:320px}.feedback-picker-header{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:600;margin-bottom:8px}.feedback-picker-close{background:none;border:none;color:var(--muted);cursor:pointer;display:flex;padding:2px}.feedback-reasons{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.feedback-reason{font-size:13px;display:flex;align-items:center;gap:6px;cursor:pointer}.feedback-reason input{cursor:pointer}.feedback-comment{width:100%;box-sizing:border-box;font:inherit;font-size:12px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);resize:vertical;margin-bottom:8px}.feedback-picker-actions{display:flex;justify-content:flex-end}.feedback-picker-submit{background:var(--accent-highlight);color:#fff;border:1px solid var(--accent-highlight);border-radius:6px;padding:5px 12px;font-size:13px;cursor:pointer}.feedback-picker-submit:hover:not(:disabled){filter:brightness(1.1)}.feedback-picker-submit:disabled{opacity:.6;cursor:wait}.katex-display{overflow-x:auto;overflow-y:hidden;padding:4px 0;margin:12px 0}.inline-code{background:var(--surface);padding:2px 6px;border-radius:4px;font-family:SF Mono,Fira Code,monospace;font-size:.9em}.citation-badge{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700;min-width:18px;height:18px;border-radius:9px;padding:0 5px;margin:0 2px;text-decoration:none;cursor:pointer;vertical-align:super;transition:background .15s}.citation-badge,.citation-badge:hover{background:var(--accent-highlight)}.source-label{font-size:12px;font-weight:600;color:var(--text);margin-bottom:4px;line-height:1.3}.source-card.highlight{border-color:var(--accent-highlight);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-highlight) 30%,transparent);transition:box-shadow .3s}.streaming-cursor{display:inline-block;width:8px;height:18px;background:var(--accent-highlight);border-radius:2px;margin-left:2px;vertical-align:text-bottom;animation:blink 1s steps(1) infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.composer{display:flex;align-items:center;gap:8px;padding:16px 24px calc(16px + env(safe-area-inset-bottom, 0));background:var(--panel);border-top:1px solid var(--border)}.composer input[type=text]{flex:1;padding:12px 16px;border-radius:24px;border:1px solid var(--border);font-size:15px;outline:none;background:var(--bg);color:var(--text);transition:border-color .15s}.composer input[type=text]:focus{border-color:var(--accent-highlight)}.composer input[type=text]::placeholder{color:var(--muted)}.composer-attach,.composer-send{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:8px;border-radius:12px;display:flex;align-items:center;justify-content:center;transition:all .15s}.composer-attach:hover,.composer-send:hover{background:var(--surface);color:var(--accent-highlight)}.composer-send:disabled{opacity:.3;cursor:default}.composer-stop{color:var(--accent-highlight)}.composer-stop:hover,.composer-websearch.active{background:var(--surface);color:var(--accent-highlight)}.composer-websearch.active:hover{background:var(--surface);filter:brightness(1.15)}.composer-attach.active{color:var(--accent-highlight);background:var(--surface)}.composer-attach.active:hover{background:var(--surface);filter:brightness(1.15)}.source-card-web{border-left:2px solid var(--accent-highlight)}.composer-shell{position:relative}.composer-slash-popover{position:absolute;bottom:100%;left:0;right:0;margin-bottom:8px;max-height:320px;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.18);padding:6px;z-index:20}.composer-slash-empty{padding:12px;font-size:13px;color:var(--muted);text-align:center}.composer-slash-query{font-family:SF Mono,Fira Code,monospace;color:var(--text);background:var(--surface);padding:1px 4px;border-radius:4px}.composer-slash-item{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;row-gap:2px;width:100%;text-align:left;background:transparent;border:none;border-radius:8px;padding:8px 10px;cursor:pointer;color:var(--text);font:inherit;transition:background .1s}.composer-slash-item.highlighted,.composer-slash-item:focus{background:var(--surface);outline:none}.composer-slash-item-name{grid-row:1;grid-column:1;font-family:SF Mono,Fira Code,monospace;font-size:12px;color:var(--accent-highlight);align-self:center}.composer-slash-item-display{grid-row:1;grid-column:2;font-size:13px;font-weight:600;color:var(--text)}.composer-slash-item-desc{grid-row:2;grid-column:2;font-size:12px;color:var(--muted);line-height:1.35}.composer-template-chip{background:var(--surface)}.composer-template-chip-prefix{font-size:11px;letter-spacing:.04em;font-weight:600;margin-right:4px}.composer-template-chip-prefix,.source-upload-pill{text-transform:uppercase;color:var(--accent-highlight)}.source-upload-pill{display:inline-block;margin-left:6px;padding:1px 6px;font-size:10px;letter-spacing:.02em;background:rgba(106,90,249,.12);border-radius:999px;vertical-align:middle}.composer-shell{display:flex;flex-direction:column;gap:6px}.composer-staged-files{display:flex;flex-wrap:wrap;gap:6px;padding:4px 8px 0}.composer-staged-chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 6px 4px 8px;font-size:12px;color:var(--text);max-width:240px}.composer-staged-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.composer-staged-remove{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--muted);cursor:pointer;padding:2px;border-radius:3px}.composer-staged-remove:hover:not(:disabled){background:var(--bg);color:#ef4444}.composer-staged-remove:disabled{opacity:.4;cursor:not-allowed}.composer-awaiting{color:var(--accent-highlight);cursor:progress}.composer-awaiting:disabled{opacity:1}.composer-spin{animation:composer-spin 1.1s linear infinite}@keyframes composer-spin{to{transform:rotate(1turn)}}.msg-error-actions{display:flex;align-items:center;gap:10px;padding:6px 12px 12px;color:var(--muted);font-size:13px}.msg-retry-btn{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:4px 10px;cursor:pointer;font-size:13px}.msg-retry-btn:hover{background:var(--panel);border-color:var(--accent-highlight)}.source-preview-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.source-preview-dialog{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:20px 22px;width:100%;max-width:640px;max-height:min(85vh,720px);display:flex;flex-direction:column;gap:14px;color:var(--text);box-shadow:0 20px 48px rgba(0,0,0,.45)}.source-preview-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.source-preview-header h3{margin:4px 0 6px;font-size:16px;font-weight:600}.source-preview-eyebrow{color:var(--muted);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.source-preview-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted)}.source-preview-close{background:transparent;border:none;color:var(--muted);padding:4px;cursor:pointer;border-radius:4px}.source-preview-close:hover{background:var(--surface);color:var(--text)}.source-preview-snippet{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px;font-size:13px;line-height:1.6;white-space:pre-wrap;overflow-y:auto;flex:1}.source-preview-footer{display:flex;justify-content:flex-end;gap:8px}.source-preview-footer .admin-primary{display:inline-flex;align-items:center;gap:6px}.source-preview-expand-row{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.source-preview-expand{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;background:transparent;border:1px solid var(--border);border-radius:6px;font:inherit;font-size:12px;color:var(--text);cursor:pointer}.source-preview-expand:hover:not(:disabled){background:var(--surface)}.source-preview-expand:disabled{opacity:.6;cursor:default}.source-preview-expand-hint{font-size:11.5px;color:var(--muted)}.shortcuts-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.shortcuts-dialog{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:20px 22px;max-width:380px;width:100%;color:var(--text);box-shadow:0 20px 48px rgba(0,0,0,.4)}.shortcuts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.shortcuts-header h3{margin:0;font-size:15px;font-weight:600}.shortcuts-close{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:4px;display:flex}.shortcuts-close:hover{background:var(--surface);color:var(--text)}.shortcuts-table{width:100%;border-collapse:collapse;font-size:13px}.shortcuts-table td{padding:8px 4px;border-bottom:1px solid var(--border)}.shortcuts-table tr:last-child td{border-bottom:none}.shortcuts-table td:first-child{width:110px}.shortcuts-table kbd{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;color:var(--text)}.history-search{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 8px;margin-bottom:8px;color:var(--muted)}.history-search input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:13px;min-width:0}.history-search input::placeholder{color:var(--muted)}.history-search-clear{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:0;display:flex;align-items:center}.history-search-clear:hover{color:var(--text)}.history-rename-input{flex:1;background:var(--bg);border:1px solid var(--accent-highlight);border-radius:6px;padding:2px 6px;color:var(--text);font-size:inherit;outline:none;min-width:0}.confirm-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.confirm-dialog{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:20px;max-width:420px;width:100%;box-shadow:0 20px 48px rgba(0,0,0,.4);color:var(--text)}.confirm-title{margin:0 0 10px;font-size:16px;font-weight:600}.confirm-body{color:var(--muted);font-size:14px;line-height:1.5;margin-bottom:18px}.confirm-body strong{color:var(--text)}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-cancel,.confirm-ok{border-radius:8px;padding:8px 14px;font-size:14px;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text)}.confirm-cancel:hover{background:var(--panel)}.confirm-ok{background:var(--accent-highlight);border-color:var(--accent-highlight);color:#fff}.confirm-ok:hover{filter:brightness(1.1)}.confirm-ok.danger{background:#dc2626;border-color:#dc2626}.confirm-ok.danger:hover{background:#b91c1c;border-color:#b91c1c}.gv-sources{width:300px;background:var(--panel);border-left:1px solid var(--border);padding:20px 16px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;transition:width .18s ease,padding .18s ease;flex-shrink:0}.gv-sources.collapsed{width:36px;padding:12px 0;overflow:hidden;align-items:center}.sources-toggle-collapsed{background:transparent;border:none;color:var(--muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;padding:6px 0;border-radius:8px;transition:color .15s ease,background .15s ease}.sources-toggle-collapsed:hover{color:var(--accent-highlight);background:var(--surface)}.sources-toggle-label{writing-mode:vertical-rl;font-size:11px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}.sources-header{display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:600;font-size:15px;color:var(--text)}.sources-header-text{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.sources-toggle{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:color .15s ease,background .15s ease}.sources-toggle:hover{color:var(--accent-highlight);background:var(--surface)}.sources-placeholder{color:var(--muted);font-size:13px;line-height:1.5}.source-count{display:inline-flex;align-items:center;justify-content:center;background:var(--accent-highlight);color:#fff;font-size:11px;font-weight:600;width:20px;height:20px;border-radius:50%;margin-left:6px}.sources-admin-tag{display:inline-block;margin-left:8px;padding:1px 6px;border-radius:4px;background:var(--surface);color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--border);vertical-align:middle}.sources-list{gap:16px}.source-doc-group,.sources-list{display:flex;flex-direction:column}.source-doc-group{gap:8px}.source-doc-name{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text);padding:4px 0;border-bottom:1px solid var(--border);word-break:break-all}.source-page{font-size:11px;color:var(--accent-highlight);font-weight:600;background:rgba(58,134,255,.1);padding:1px 6px;border-radius:4px}.source-card{display:flex;gap:10px;padding:12px;background:var(--surface);border-radius:10px;border:1px solid var(--border);transition:border-color .15s,background .15s;text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer}.source-card:hover{border-color:var(--accent-highlight);background:var(--panel)}.source-card:target{border-color:var(--accent-highlight);box-shadow:0 0 0 2px rgba(58,134,255,.2)}.source-badge{color:var(--accent-highlight);font-weight:700;font-size:13px;flex-shrink:0;padding-top:1px}.source-body{min-width:0;flex:1}.source-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px;align-items:center}.source-heading{font-weight:600;font-size:13px;color:var(--text)}.source-section{font-size:11px;color:var(--muted);background:var(--bg);padding:2px 6px;border-radius:4px}.source-score{font-size:11px;color:var(--accent-highlight);font-weight:600;margin-left:auto}.source-text{font-size:13px;line-height:1.5;color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}@media (max-width:768px){.gv-sources{display:none}.gv-panel{position:fixed;top:0;bottom:0;left:0;z-index:100;width:88vw;max-width:320px;box-shadow:0 0 24px rgba(0,0,0,.45)}.chat-header{padding:10px 16px;flex-wrap:wrap;row-gap:6px}.composer{padding:12px 16px}.chat-list{padding:16px 8px}.bubble{max-width:92%}}.profile-chip{position:relative;margin-left:auto}.profile-chip-trigger{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:4px 10px;border-radius:999px;font-size:12px;cursor:pointer;transition:border-color .12s,color .12s}.profile-chip-trigger:hover{border-color:var(--accent-highlight)}.profile-chip-trigger:disabled{opacity:.6;cursor:default}.profile-chip-label{font-weight:500}.profile-chip-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:30;background:var(--panel,#fff);border:1px solid var(--border);border-radius:10px;padding:6px;box-shadow:0 8px 24px rgba(0,0,0,.1);min-width:220px}.profile-chip-empty{padding:8px 12px;color:var(--muted);font-size:13px}.profile-chip-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:8px 10px;background:transparent;border:0;border-radius:6px;color:var(--text);font:inherit;font-size:13px;cursor:pointer;text-align:left}.profile-chip-option:hover{background:rgba(99,102,241,.08)}.profile-chip-option.active{background:rgba(99,102,241,.12);color:var(--accent-highlight);cursor:default}.profile-chip-option:disabled{cursor:default}.profile-chip-option-name{flex:1;min-width:0}.profile-chip-default-badge{font-size:10px;color:var(--muted);background:var(--surface);border:1px solid var(--border);padding:1px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.persona-chip{position:relative;margin-left:auto}.persona-chip+.profile-chip{margin-left:8px}.persona-chip-trigger{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:4px 10px;border-radius:999px;font-size:12px;cursor:pointer;transition:border-color .12s,color .12s}.persona-chip-trigger:hover{border-color:var(--accent-highlight)}.persona-chip-trigger:disabled{opacity:.6;cursor:default}.persona-chip-label{font-weight:500}.persona-chip-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:30;background:var(--panel,#fff);border:1px solid var(--border);border-radius:10px;padding:6px;box-shadow:0 8px 24px rgba(0,0,0,.1);min-width:220px}.persona-chip-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:8px 10px;background:transparent;border:0;border-radius:6px;color:var(--text);font:inherit;font-size:13px;cursor:pointer;text-align:left}.persona-chip-option:hover{background:rgba(99,102,241,.08)}.persona-chip-option.active{background:rgba(99,102,241,.12);color:var(--accent-highlight);cursor:default}.persona-chip-option:disabled{cursor:default}.persona-chip-option-name{flex:1;min-width:0}.persona-chip-default-badge{font-size:10px;color:var(--muted);background:var(--surface);border:1px solid var(--border);padding:1px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.domain-chip{position:relative}.persona-chip+.domain-chip,.profile-chip+.domain-chip{margin-left:8px}.domain-chip-trigger{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);color:var(--text);padding:4px 10px;border-radius:999px;font-size:12px;cursor:pointer;transition:border-color .12s,color .12s}.domain-chip-trigger:hover{border-color:var(--accent-highlight)}.domain-chip-trigger:disabled{opacity:.6;cursor:default}.domain-chip-label{font-weight:500}.domain-chip-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:30;background:var(--panel,#fff);border:1px solid var(--border);border-radius:10px;padding:6px;box-shadow:0 8px 24px rgba(0,0,0,.1);min-width:200px}.domain-chip-option{display:flex;align-items:center;width:100%;padding:8px 10px;background:transparent;border:0;border-radius:6px;color:var(--text);font:inherit;font-size:13px;cursor:pointer;text-align:left}.domain-chip-option:hover{background:rgba(99,102,241,.08)}.domain-chip-option.active{background:rgba(99,102,241,.12);color:var(--accent-highlight);cursor:default}.domain-chip-option:disabled{cursor:default}.domain-chip-option-name{flex:1;min-width:0}.gv-panel-identity-active{font-size:11px;color:var(--muted);margin-top:2px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gv-panel-identity-active-persona,.gv-panel-identity-active-profile{color:var(--text)}.gv-panel-identity-pending{font-style:italic;color:var(--accent-highlight)}.profile-picker-radios{display:flex;flex-direction:column;gap:14px}.profile-picker-tier{display:flex;flex-direction:column;gap:6px;border:0;padding:0;margin:0;min-inline-size:auto}.profile-picker-tier>legend{padding:0 0 4px;margin:0;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.profile-picker-tier-option{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;color:var(--text);cursor:pointer;background:transparent;transition:background .12s ease,border-color .12s ease}.profile-picker-tier-option:hover{background:rgba(99,102,241,.06)}.profile-picker-tier-option:has(input:checked){background:rgba(99,102,241,.1);border-color:var(--accent-highlight)}.profile-picker-tier-option>input{margin:0;flex:none}.profile-picker-tier-option>span{flex:1;min-width:0}.profile-picker-flat{display:flex;flex-direction:column;gap:6px}.profile-picker-flat-option{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;color:var(--text);cursor:pointer;background:transparent}.profile-picker-flat-option:has(input:checked){background:rgba(99,102,241,.1);border-color:var(--accent-highlight)}.profile-chip-panel .profile-picker-menu{display:flex;flex-direction:column;gap:2px;min-width:200px}.profile-picker-breadcrumb{padding:4px 10px 6px;font-weight:500;letter-spacing:.04em;border-bottom:1px solid var(--border);margin-bottom:4px}.profile-picker-breadcrumb,.profile-picker-tier-label{font-size:11px;text-transform:uppercase;color:var(--muted)}.profile-picker-tier-label{padding:4px 10px;font-weight:600;letter-spacing:.06em}.profile-picker-menu .profile-picker-option{display:block;width:100%;text-align:left;background:transparent;border:0;border-radius:6px;padding:8px 12px;font:inherit;font-size:14px;color:var(--text);cursor:pointer}.profile-picker-menu .profile-picker-option:hover{background:rgba(99,102,241,.08)}.profile-picker-menu .profile-picker-option.active{background:rgba(99,102,241,.12);color:var(--accent-highlight)}.profile-picker-back{margin-top:6px;padding:8px 10px;background:transparent;border:0;border-top:1px solid var(--border);font:inherit;font-size:12px;color:var(--muted);cursor:pointer;text-align:left}.profile-picker-back:hover{color:var(--text)}.profile-request-launcher{display:block;width:100%;margin-top:4px;padding:8px 10px;background:transparent;border:0;border-top:1px solid var(--border);font:inherit;font-size:12px;color:var(--accent-highlight);cursor:pointer;text-align:left}.profile-request-launcher:hover{background:rgba(0,0,0,.05);text-decoration:underline}.profile-request-status{margin-top:4px;padding:8px 10px;border-top:1px solid var(--border);font-size:12px;color:var(--muted)}.profile-request-status code{background:rgba(0,0,0,.05);padding:1px 6px;border-radius:4px;font-size:11px;color:var(--text)}.profile-request-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);display:grid;place-items:center;z-index:200;padding:20px}.profile-request-modal{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:20px;width:min(440px,92vw);max-height:calc(100vh - 40px);overflow-y:auto;display:flex;flex-direction:column;gap:12px;box-shadow:0 12px 32px rgba(0,0,0,.4)}.profile-request-modal h3{margin:0;font-size:16px}.profile-request-help{margin:0;font-size:13px;color:var(--muted)}.profile-request-modal label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.profile-request-modal select,.profile-request-modal textarea{font:inherit;padding:8px 10px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px}.profile-request-modal textarea{resize:vertical;min-height:64px}.profile-request-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.profile-request-cancel,.profile-request-submit{font:inherit;font-size:14px;font-weight:500;padding:9px 16px;border-radius:8px;cursor:pointer;border:1px solid var(--border)}.profile-request-cancel{background:transparent;color:var(--text)}.profile-request-submit{background:var(--accent-highlight);color:#fff;border-color:var(--accent-highlight)}.profile-request-submit:hover:not(:disabled){filter:brightness(1.05)}.profile-request-cancel:disabled,.profile-request-submit:disabled{opacity:.6;cursor:not-allowed}.history-section-title{display:flex;align-items:center;justify-content:space-between;gap:6px}.history-section-action{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:2px 4px;border-radius:4px;display:inline-flex;align-items:center}.history-section-action:hover{background:var(--surface);color:var(--text)}.project-row{margin-bottom:4px}.project-row-header{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;cursor:pointer;font-size:13px;color:var(--text)}.project-row-header:hover{background:var(--surface)}.project-row.active>.project-row-header{background:var(--surface);font-weight:500}.project-row-name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-row-count{background:var(--surface-2,var(--surface));color:var(--muted);font-size:11px;border-radius:999px;padding:1px 7px;min-width:18px;text-align:center}.project-row-edit{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:2px;border-radius:4px;display:none}.project-row-header:hover .project-row-edit{display:inline-flex}.project-row-edit:hover{color:var(--text)}.project-row-chats{margin-left:18px;padding-left:6px;border-left:1px solid var(--border);margin-top:2px}.project-row-newchat{display:flex;align-items:center;gap:4px;background:transparent;border:none;color:var(--muted);cursor:pointer;padding:4px 6px;border-radius:4px;font-size:12px;width:100%;text-align:left}.project-row-newchat:hover{background:var(--surface);color:var(--text)}.project-row-chats .history-item.project-chat{font-size:12px;padding:4px 6px}.project-chip{display:inline-flex;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:3px 9px 3px 8px;font-size:12px;color:var(--text);cursor:pointer;margin-left:6px}.project-chip:hover{border-color:var(--accent-highlight)}.project-chip-label{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-chip-clear{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;padding:1px;margin-left:2px;color:var(--muted);cursor:pointer}.project-chip-clear:hover{background:var(--surface-2,var(--border));color:var(--text)}.project-row.archived>.project-row-header{opacity:.55}.project-row-archived-tag{font-style:italic;color:var(--muted);margin-left:4px;font-size:11px}