:root{color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{min-width:320px;min-height:100vh;margin:0}button,textarea{font:inherit}button{background:var(--action-gradient);border-radius:var(--radius);color:#fff;cursor:pointer;border:1px solid #0000;padding:.65rem 1.1rem;font-weight:600;transition:transform 80ms,box-shadow .12s,background .12s;box-shadow:0 2px 10px #7a2a9947}button:hover{transform:translateY(-1px);box-shadow:0 4px 16px #7a2a9957}button:disabled{cursor:not-allowed;opacity:.5;transform:none}.auth-shell{justify-content:center;align-items:center;width:100vw;height:100vh;display:flex}.auth-card{flex-direction:column;align-items:center;gap:12px;display:flex}.auth-reset{box-shadow:none;color:var(--ink-muted);background:0 0;padding:6px 12px;font-size:.85rem;font-weight:400}.auth-reset:hover{box-shadow:none;color:var(--ink);transform:none}.chat-shell{grid-template-columns:280px 1fr;height:100vh;display:grid}.sidebar-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.ext-badge{border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.ext-badge.on{background:var(--green-soft);color:var(--green)}.ext-badge.off{background:var(--surface-sunken);color:var(--ink-muted)}.ext-dot{background:currentColor;border-radius:50%;width:7px;height:7px}.connect-ext-btn{background:var(--surface);border-color:var(--line);box-shadow:none;color:var(--green-deep);margin-bottom:10px}.connect-ext-btn:hover{border-color:var(--green);box-shadow:none;color:var(--green-deep)}.pairing-hint{background:var(--green-soft);border-radius:var(--radius);color:var(--green-deep);margin-bottom:12px;padding:8px 10px;font-size:.78rem;line-height:1.4}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;padding:16px;display:flex;overflow:hidden}.new-chat-btn{background:var(--green-deep);box-shadow:none;margin-bottom:16px}.new-chat-btn:hover{background:var(--green);box-shadow:none}.conversation-list{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.conversation-list li{border-radius:var(--radius);cursor:pointer;align-items:center;gap:4px;margin-bottom:4px;padding:10px 12px;font-size:.9rem;display:flex}.conversation-list li:hover{background:var(--surface-sunken)}.conversation-list li.active{background:var(--green-soft);color:var(--green-deep);font-weight:600}.conv-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.conv-actions{flex:none;align-items:center;gap:2px;display:flex}.conv-rename,.conv-delete{border-radius:var(--radius-sm);box-shadow:none;color:var(--ink-muted);opacity:0;background:0 0;padding:2px 7px;line-height:1;transition:opacity .1s}.conv-rename{font-size:.85rem}.conv-delete{font-size:1.1rem}.conversation-list li:hover .conv-rename,.conversation-list li:hover .conv-delete,.conversation-list li.active .conv-rename,.conversation-list li.active .conv-delete{opacity:1}.conv-rename:hover{background:var(--green-soft);box-shadow:none;color:var(--green-deep);transform:none}.conv-delete:hover{box-shadow:none;color:#b42318;background:#f7dcd7;transform:none}.rename-input{background:var(--surface);border:1px solid var(--green);border-radius:var(--radius-sm);font:inherit;flex:1;width:100%;padding:4px 8px}.stop-btn{box-shadow:none;background:#b42318}.stop-btn:hover{box-shadow:none;background:#9a1d14}.chat-main{background:var(--bg);flex-direction:column;height:100vh;display:flex;overflow:hidden}.modal-backdrop{z-index:100;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius);width:100%;max-width:420px;padding:20px 22px;box-shadow:0 12px 40px #00000040}.modal-title{color:var(--ink);margin:0 0 8px;font-size:1.05rem}.modal-body{color:var(--ink-muted);font-size:.9rem;line-height:1.45}.modal-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.modal-cancel{border:1px solid var(--line);box-shadow:none;color:var(--ink);background:0 0}.modal-cancel:hover{background:var(--bg);box-shadow:none;transform:none}.modal-confirm.danger{color:#fff;background:#b42318}.modal-confirm.danger:hover{background:#99180f}.chat-header{border-bottom:1px solid var(--line);color:var(--green-deep);text-overflow:ellipsis;white-space:nowrap;flex:none;padding:14px 24px;font-size:.95rem;font-weight:600;overflow:hidden}.messages-viewport{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.message-list{flex:1;min-height:0}.message-row{box-sizing:border-box;margin-bottom:12px;padding:0 24px}.jump-latest{background:var(--green-deep);color:#fff;z-index:2;border-radius:999px;padding:6px 14px;font-size:.82rem;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000002e}.jump-latest:hover{transform:translate(-50%)translateY(-1px)}.empty-state{color:var(--ink-muted);text-align:center;margin:auto}.empty-state h2{color:var(--green-deep)}.message{width:100%;display:flex}.message.user{flex-direction:column;align-items:flex-end;gap:6px}.message.assistant{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:6px}.tool-calls{flex-direction:column;gap:4px;max-width:720px;display:flex}.tool-call{background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink-muted);align-items:center;gap:8px;padding:6px 10px;font-size:.82rem;display:flex}.tool-call.error{color:#b42318;background:#fbeeec;border-color:#f0cfc8}.tool-call.running{color:var(--ink-muted)}.tool-icon{flex:none;justify-content:center;align-items:center;width:1em;height:1em;display:inline-flex}.tool-spinner{border:2px solid var(--line);border-top-color:var(--green,currentColor);box-sizing:border-box;border-radius:50%;width:.9em;height:.9em;animation:.7s linear infinite tool-spin}@keyframes tool-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.tool-spinner{animation-duration:2s}}.skeleton-line{background:linear-gradient(90deg, var(--surface-sunken) 25%, var(--line) 37%, var(--surface-sunken) 63%);background-size:400% 100%;border-radius:6px;height:12px;animation:1.4s infinite skeleton-shimmer;display:block}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.conv-skeleton{pointer-events:none;padding:10px 12px}.conv-skeleton .skeleton-line{width:80%}.conv-skeleton:nth-child(2n) .skeleton-line{width:62%}.message-skeletons{flex-direction:column;gap:12px;padding:24px;display:flex}.skeleton-bubble{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);flex-direction:column;gap:8px;min-width:180px;max-width:70%;padding:12px 14px;display:flex}.skeleton-bubble .skeleton-line:first-child{width:100%}.skeleton-bubble .skeleton-line:last-child{width:55%}.skeleton-bubble .skeleton-line:only-child{width:40%}@media (prefers-reduced-motion:reduce){.skeleton-line{animation-duration:3s}}.tool-label{white-space:nowrap;font-weight:600}.tool-selector{background:var(--green-soft);border-radius:var(--radius-sm);margin-left:6px;padding:1px 5px;font-size:.78rem;font-weight:400}.tool-file-link{color:var(--green-deep);cursor:pointer;border:none;font-family:inherit;text-decoration:none}.tool-file-link:hover{text-decoration:underline}.tool-result{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-weight:400;overflow:hidden}.bubble{border-radius:var(--radius-lg);white-space:pre-wrap;word-wrap:break-word;max-width:720px;padding:12px 16px;line-height:1.5}.message.user .bubble{background:var(--green-deep);color:#fff}.message.assistant .bubble{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.bubble.markdown{white-space:normal}.bubble.markdown>:first-child{margin-top:0}.bubble.markdown>:last-child{margin-bottom:0}.bubble.markdown p,.bubble.markdown ul,.bubble.markdown ol{margin:.5em 0}.bubble.markdown ul,.bubble.markdown ol{padding-left:1.4em}.bubble.markdown h1,.bubble.markdown h2,.bubble.markdown h3{color:var(--green-deep);margin:.6em 0 .3em;line-height:1.3}.bubble.markdown code{background:var(--surface-sunken);border-radius:var(--radius-sm);padding:1px 4px;font-size:.88em}.bubble.markdown pre{background:var(--surface-sunken);border-radius:var(--radius);padding:10px 12px;overflow-x:auto}.bubble.markdown pre code{background:0 0;padding:0}.bubble.markdown a{color:var(--orchid-deep)}.bubble.markdown table{border-collapse:collapse;width:max-content;max-width:100%;margin:.5em 0;display:block;overflow-x:auto}.bubble.markdown th,.bubble.markdown td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:5px 9px}.bubble.markdown th{background:var(--surface-sunken);font-weight:600}.thinking{color:var(--ink-muted)}.chat-meta{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;padding:6px 24px;display:flex}.chat-context,.chat-usage{color:var(--ink-muted);cursor:default;font-variant-numeric:tabular-nums;font-size:.72rem}.chat-context.live,.chat-usage.live{color:var(--green-deep)}.chat-context.high{color:#b42318}.chat-meta+.composer{border-top:none;padding-top:0}.composer{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding:16px 24px 24px;display:flex}.composer.drag-over{background:var(--green-soft);box-shadow:inset 0 0 0 2px var(--green)}.composer-row{gap:12px;display:flex}.composer textarea{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-sizing:border-box;resize:none;flex:1;min-height:80px;max-height:30vh;padding:12px;overflow-y:auto}.composer textarea:focus{border-color:var(--green);outline:none}.queued-banner{background:var(--green-soft);border:1px solid var(--line);border-radius:var(--radius);color:var(--green-deep);align-items:center;gap:8px;padding:6px 6px 6px 10px;font-size:.82rem;display:flex}.queued-icon{flex:none}.queued-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.queued-cancel{box-shadow:none;color:var(--ink-muted);background:0 0;flex:none;padding:1px 5px;font-size:.95rem;line-height:1}.queued-cancel:hover{box-shadow:none;color:#b42318;background:#f7dcd7;transform:none}.composer-chips{flex-wrap:wrap;gap:6px;display:flex}.attachment-chip{background:var(--green-soft);border:1px solid var(--line);border-radius:var(--radius);color:var(--green-deep);align-items:center;gap:6px;max-width:240px;padding:4px 4px 4px 10px;font-size:.8rem;display:inline-flex}.attachment-chip.uploading{color:var(--ink-muted);padding:4px 10px}.attachment-chip-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attachment-chip-remove{box-shadow:none;color:var(--ink-muted);background:0 0;padding:1px 5px;font-size:.95rem;line-height:1}.attachment-chip-remove:hover{box-shadow:none;color:#b42318;background:#f7dcd7;transform:none}.attachments{flex-direction:column;gap:4px;margin-top:6px;display:flex}.attachment-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;color:var(--ink);align-items:center;gap:8px;max-width:360px;padding:7px 11px;font-size:.84rem;font-weight:400;display:inline-flex}.attachment-row:hover{border-color:var(--green);box-shadow:none;transform:none}.attachment-row.agent{background:var(--green-soft);color:var(--green-deep);font-weight:600}.attachment-icon{flex:none}.attachment-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attachment-size{color:var(--ink-muted);flex:none;font-size:.76rem}.error{border-radius:var(--radius);color:#b42318;background:#fbeeec;border:1px solid #f0cfc8;padding:10px 14px;font-size:.9rem}.main-tabs{border-bottom:1px solid var(--line);gap:4px;padding:12px 24px 0;display:flex}.main-tabs button{border-radius:var(--radius) var(--radius) 0 0;box-shadow:none;color:var(--ink-muted);background:0 0;padding:8px 16px;font-size:.9rem;position:relative;top:1px}.main-tabs button:hover{box-shadow:none;color:var(--ink);transform:none}.main-tabs button.active{background:var(--surface);border:1px solid var(--line);border-bottom-color:var(--surface);color:var(--green-deep)}.tab-badge{background:var(--orchid);color:#fff;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:.72rem}.tasks-view{flex:1;grid-template-columns:300px 1fr;display:grid;overflow:hidden}.tasks-list{border-right:1px solid var(--line);padding:16px;overflow-y:auto}.tasks-list ul{margin:0;padding:0;list-style:none}.task-row{border-radius:var(--radius);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;padding:10px 12px;display:flex}.task-row:hover{background:var(--surface-sunken)}.task-row.active{background:var(--green-soft)}.task-title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;overflow:hidden}.task-badges{flex:none;align-items:center;gap:6px;display:flex}.approval-dot{background:var(--orchid);border-radius:50%;width:8px;height:8px}.status-badge{white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:.7rem;font-weight:600}.status-intake{background:var(--surface-sunken);color:var(--ink-muted)}.status-in_progress{background:var(--green-soft);color:var(--green)}.status-review{background:var(--orchid-soft);color:var(--orchid-deep)}.status-blocked{color:#b42318;background:#fbeeec}.status-done{background:var(--green-soft);color:var(--green-deep)}.status-cancelled{background:var(--surface-sunken);color:var(--ink-muted)}.task-detail{flex-direction:column;gap:12px;padding:24px;display:flex;overflow-y:auto}.task-detail-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.task-detail-header h2{color:var(--green-deep);margin:0}.task-meta{color:var(--ink-muted);text-transform:capitalize;font-size:.8rem}.task-blocked{border-radius:var(--radius);color:#b42318;background:#fbeeec;padding:10px 14px;font-size:.85rem}.task-body{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);white-space:pre-wrap;word-wrap:break-word;padding:16px;line-height:1.5}.task-actions{gap:12px;display:flex}.reject-btn{background:var(--surface);border:1px solid var(--line);box-shadow:none;color:#b42318}.reject-btn:hover{box-shadow:none;border-color:#d8a59d}.web-shell{flex-direction:column;height:100vh;display:flex}.web-topbar{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:8px 16px;display:flex}.web-brand{color:var(--green-deep);align-items:center;gap:8px;font-weight:700;display:flex}.web-brand img{width:22px;height:22px}.web-tabs{flex:1;gap:4px;display:flex}.web-tabs a{border-radius:var(--radius);box-shadow:none;color:var(--ink-muted);cursor:pointer;background:0 0;padding:6px 14px;font-size:.9rem;font-weight:600;text-decoration:none}.web-tabs a:hover{background:var(--surface-sunken);box-shadow:none;color:var(--ink);transform:none}.web-tabs a.active{background:var(--green-soft);color:var(--green-deep)}.web-body{flex:1;min-height:0}.web-body .chat-shell,.web-body .chat-main{height:100%}.signin-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:360px;padding:32px 36px;box-shadow:0 8px 30px #14142814}.signin-title{color:var(--green-deep);text-align:center;margin:0 0 20px;font-size:1.25rem}.signin-form{flex-direction:column;gap:14px;display:flex}.signin-field{flex-direction:column;gap:5px;display:flex}.signin-field>span{color:var(--ink);font-size:.82rem;font-weight:600}.signin-input{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);font:inherit;width:100%;padding:9px 11px}.signin-input:focus{border-color:var(--orchid);outline:none}.signin-code{letter-spacing:.35em;text-align:center;font-size:1.2rem}.signin-hint{color:var(--ink-muted);margin:0;font-size:.88rem;line-height:1.5}.signin-error{border-radius:var(--radius);color:#b42318;background:#fbeeec;border:1px solid #f0cfc8;margin:0;padding:8px 11px;font-size:.85rem}.signin-note{color:var(--green-deep);margin:0;font-size:.82rem}.signin-links{justify-content:space-between;margin-top:2px;display:flex}.signin-link{box-shadow:none;color:var(--ink-muted);background:0 0;padding:4px 2px;font-size:.82rem;font-weight:400}.signin-link:hover{box-shadow:none;color:var(--orchid-deep);transform:none}#clerk-captcha:empty{display:none}.files-view{grid-template-columns:300px 1fr;height:100%;display:grid}.files-list{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;padding:16px;display:flex;overflow-y:auto}.files-list-actions{gap:8px;margin-bottom:12px;display:flex}.new-file-btn{background:var(--green-deep);box-shadow:none;flex:1}.new-file-btn:hover{background:var(--green);box-shadow:none}.upload-btn{background:var(--surface);border:1px solid var(--line);box-shadow:none;color:var(--green-deep)}.upload-btn:hover{border-color:var(--green);box-shadow:none;transform:none}.upload-note{color:var(--ink-muted);font-size:.88rem;line-height:1.5}.upload-note code{background:var(--surface-sunken);border-radius:var(--radius-sm);padding:1px 4px}.file-meta{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);flex-direction:column;gap:8px;padding:16px 20px;display:flex}.file-meta-label{color:var(--ink-muted);text-transform:uppercase;width:60px;font-size:.78rem;display:inline-block}.files-group-label{color:var(--ink-muted);letter-spacing:.04em;text-transform:uppercase;margin:14px 0 4px;font-size:.7rem}.file-tree{flex-direction:column;gap:1px;display:flex}.file-row,.folder-row{border-radius:var(--radius);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:6px 10px;font-size:.86rem;display:flex;overflow:hidden}.file-row:hover,.folder-row:hover{background:var(--surface-sunken)}.file-row.active{background:var(--green-soft);color:var(--green-deep);font-weight:600}.file-row .file-name,.file-row .file-path{text-overflow:ellipsis;overflow:hidden}.folder-row{color:var(--ink-muted);font-weight:600}.folder-caret{color:var(--ink-muted);flex:none;width:.8em;font-size:.7rem}.folder-name{text-overflow:ellipsis;overflow:hidden}.files-main{flex-direction:column;gap:12px;padding:24px;display:flex;overflow-y:auto}.files-empty{color:var(--ink-muted);text-align:center;max-width:360px;margin:auto}.file-skeleton-row{padding:7px 8px}.file-skeleton-row:nth-child(odd) .skeleton-line{width:78%}.file-skeleton-row:nth-child(2n) .skeleton-line{width:58%;margin-left:16px}.file-content-skeleton{flex-direction:column;padding:8px 4px;display:flex}.file-content-skeleton .skeleton-title{width:45%;height:20px;margin-bottom:20px}.file-content-skeleton .markdown-body{flex-direction:column;gap:12px;display:flex}.file-content-skeleton .skeleton-gap{height:8px}.file-detail-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.file-detail-header h2{color:var(--green-deep);word-break:break-all;margin:0;font-size:1.05rem}.file-actions{flex:none;gap:8px;display:flex}.file-actions .secondary{background:var(--surface);border:1px solid var(--line);box-shadow:none;color:var(--green-deep)}.export-select{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);font:inherit;padding:6px 8px;font-size:.85rem}.file-actions .danger{background:var(--surface);border:1px solid var(--line);box-shadow:none;color:#b42318}.file-actions button:hover{box-shadow:none;transform:none}.file-path-input{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);font:inherit;width:100%;padding:9px 11px}.file-editor textarea{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);resize:vertical;width:100%;min-height:50vh;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem}.file-description{background:var(--green-soft);border-left:3px solid var(--green);border-radius:var(--radius);color:var(--green-deep);padding:10px 14px;font-size:.9rem;line-height:1.5}.lossy-warning{border-radius:var(--radius);color:#8a6d00;background:#fdf6e3;border:1px solid #ecd9a0;padding:10px 14px;font-size:.85rem;line-height:1.5}.md-preview-prompt{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.md-preview-prompt .secondary{background:var(--surface);border:1px solid var(--line);box-shadow:none;color:var(--green-deep)}.file-preview-pdf{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;height:70vh}.file-preview-image{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);object-fit:contain;max-width:100%;padding:8px}.markdown-body{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 20px;line-height:1.6}.markdown-body :first-child{margin-top:0}.markdown-body h1,.markdown-body h2,.markdown-body h3{color:var(--green-deep)}.markdown-body pre{background:var(--surface-sunken);border-radius:var(--radius);padding:12px;overflow:auto}.markdown-body code{background:var(--surface-sunken);border-radius:var(--radius-sm);padding:1px 4px}.markdown-body pre code{background:0 0;padding:0}.markdown-body table{border-collapse:collapse;max-width:100%;margin:.6em 0;display:block;overflow-x:auto}.markdown-body th,.markdown-body td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 10px}.markdown-body th{background:var(--surface-sunken);font-weight:600}.files-error{border-radius:var(--radius);color:#b42318;background:#fbeeec;border:1px solid #f0cfc8;padding:8px 12px;font-size:.85rem}
