.logo-orb{position:relative;width:32px;height:32px}.orb-ring{position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid var(--accent);border-radius:50%;animation:orb-pulse 3s ease-in-out infinite}.orb-core{position:absolute;top:6px;right:6px;bottom:6px;left:6px;background:linear-gradient(135deg,var(--accent),#c084fc);border-radius:50%;animation:orb-glow 3s ease-in-out infinite alternate}@keyframes orb-pulse{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.15);opacity:1}}@keyframes orb-glow{0%{box-shadow:0 0 10px var(--accent-glow)}to{box-shadow:0 0 25px var(--accent-glow),0 0 50px #c084fc33}}.project-selector-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);z-index:9999;animation:projectSelectorFadeIn .4s ease}@keyframes projectSelectorFadeIn{0%{opacity:0}to{opacity:1}}.project-selector-card{width:420px;max-width:90vw;background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);border-radius:16px;box-shadow:0 25px 60px -12px #0009,0 0 40px #818cf80d;overflow:hidden;animation:projectCardSlideUp .5s cubic-bezier(.16,1,.3,1)}@keyframes projectCardSlideUp{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.project-selector-header{padding:24px 28px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.project-selector-logo{display:flex;align-items:center;gap:14px}.project-selector-logo h2{margin:0;font-size:1.2rem;font-weight:700;color:var(--text-primary)}.project-selector-body{padding:24px 28px 28px}.project-selector-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px 20px}.project-selector-loading p{color:var(--text-muted);font-size:.9rem;margin:0}.project-selector-spinner{width:36px;height:36px;border:3px solid rgba(129,140,248,.15);border-top-color:var(--accent);border-radius:50%;animation:projectSpin .8s linear infinite}@keyframes projectSpin{to{transform:rotate(360deg)}}.project-selector-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 20px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#ffffff0a;color:var(--text-primary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.project-selector-btn:hover{background:#ffffff14;border-color:#ffffff26;transform:translateY(-1px)}.project-selector-btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-hover));border-color:transparent;color:#fff;font-weight:600}.project-selector-btn.primary:hover{box-shadow:0 4px 20px #818cf84d;transform:translateY(-1px)}.project-selector-list{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow-y:auto}.project-selector-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid rgba(255,255,255,.06);border-radius:10px;background:#ffffff05;color:var(--text-primary);cursor:pointer;transition:all .2s ease;text-align:left;font-size:.88rem}.project-selector-item:hover{background:#818cf814;border-color:#818cf833;transform:translate(4px)}.project-item-icon{font-size:1.3rem;flex-shrink:0}.project-item-info{display:flex;flex-direction:column;flex:1;min-width:0}.project-item-name{font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-item-slug{font-size:.75rem;color:var(--text-muted);margin-top:2px}.project-item-arrow{color:var(--text-muted);font-size:1rem;flex-shrink:0;transition:transform .2s ease}.project-selector-item:hover .project-item-arrow{transform:translate(3px);color:var(--accent)}:root{color-scheme:dark;--bg-primary: #09090c;--bg-secondary: #0e0f13;--bg-card: #121318;--bg-card-hover: #17181e;--bg-tertiary: #181a21;--bg-elevated: #1b1d25;--bg-glass: rgba(255, 255, 255, .025);--bg-input: #0c0d11;--bg-hover: rgba(255, 255, 255, .04);--border-color: rgba(255, 255, 255, .075);--border-strong: rgba(255, 255, 255, .13);--border-active: rgba(122, 146, 255, .6);--text-primary: #edeef3;--text-secondary: #a3a8b6;--text-muted: #6d7384;--text-faint: #4b5060;--accent-primary: #7d95ff;--accent-primary-hover: #97aaff;--accent-strong: #5873f2;--accent-soft: rgba(125, 149, 255, .12);--accent-ring: rgba(125, 149, 255, .28);--on-accent: #0b0d18;--success: #3ccf91;--success-bg: rgba(60, 207, 145, .1);--warning: #f2b544;--warning-bg: rgba(242, 181, 68, .1);--danger: #f2685f;--danger-bg: rgba(242, 104, 95, .1);--info: #5fb2ff;--info-bg: rgba(95, 178, 255, .1);--font-family: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Geist Mono", "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-md: 0 8px 24px -8px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 255, 255, .04);--shadow-lg: 0 24px 64px -16px rgba(0, 0, 0, .75), 0 0 0 1px rgba(255, 255, 255, .05);--sidebar-w: 272px;--panel-w: 380px;--thread-w: 780px;--accent: var(--accent-primary);--accent-hover: var(--accent-primary-hover);--accent-glow: var(--accent-ring)}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){color-scheme:light;--bg-primary: #f7f7f9;--bg-secondary: #ffffff;--bg-card: #ffffff;--bg-card-hover: #f3f4f7;--bg-tertiary: #f0f1f5;--bg-elevated: #ffffff;--bg-glass: rgba(0, 0, 0, .02);--bg-input: #ffffff;--bg-hover: rgba(0, 0, 0, .04);--border-color: rgba(0, 0, 0, .08);--border-strong: rgba(0, 0, 0, .15);--text-primary: #15161b;--text-secondary: #4a4f5c;--text-muted: #6d7384;--text-faint: #9aa0ad;--accent-primary: #4a63d9;--accent-primary-hover: #3b54c7;--accent-strong: #3b54c7;--accent-soft: rgba(74, 99, 217, .1);--accent-ring: rgba(74, 99, 217, .25);--on-accent: #ffffff;--success: #1f9d68;--warning: #b7791f;--danger: #d4443b;--info: #2b7fd6;--shadow-md: 0 8px 24px -10px rgba(20, 24, 40, .18), 0 0 0 1px rgba(0, 0, 0, .05);--shadow-lg: 0 24px 64px -20px rgba(20, 24, 40, .28), 0 0 0 1px rgba(0, 0, 0, .06)}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-family);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}:focus-visible{outline:2px solid var(--accent-ring);outline-offset:1px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px;border:3px solid transparent;background-clip:padding-box}.row{display:flex;align-items:center}.gap-xs{gap:4px}.gap-sm{gap:8px}.end{justify-content:flex-end}.muted{color:var(--text-muted)}.small{font-size:12px}.strong{font-weight:600}.pad{padding:12px}.center{text-align:center}.warn-text{color:var(--warning)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-primary);font-weight:500;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s}.btn:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--border-strong)}.btn.primary{background:var(--accent-primary);border-color:transparent;color:var(--on-accent)}.btn.primary:hover:not(:disabled){background:var(--accent-primary-hover)}.btn.ghost{background:transparent}.btn.danger{background:var(--danger);border-color:transparent;color:#fff}.btn.small{height:28px;padding:0 10px;font-size:12px}.btn.block{width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);transition:background .15s,color .15s;flex-shrink:0}.icon-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.icon-btn.on{color:var(--accent-primary)}.icon-btn.on.bad{color:var(--danger)}.icon-btn.round{width:44px;height:44px;border-radius:50%;background:var(--bg-tertiary)}.icon-btn.recording{color:var(--danger);background:var(--danger-bg)}.icon-btn.push{margin-left:auto}.link-btn{background:none;border:none;padding:0;color:var(--accent-primary);font-size:12px}.link-btn:hover{text-decoration:underline}.input{width:100%;padding:8px 10px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-input);resize:vertical}.input:focus{outline:none;border-color:var(--border-active);box-shadow:0 0 0 3px var(--accent-soft)}.check{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--text-secondary)}.segmented{display:inline-flex;padding:2px;gap:2px;border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border-color)}.segmented.full{display:flex;width:100%}.segmented button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:28px;padding:0 10px;border:none;border-radius:6px;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500}.segmented button.active{background:var(--bg-card);color:var(--text-primary);box-shadow:0 1px 2px #00000040}.badge{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:999px;font-size:11px;background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color)}.badge.warn{color:var(--warning);background:var(--warning-bg);border-color:transparent}.badge.subtle{background:transparent}.chip{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:999px;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-secondary);font-size:12px}.chip.active{border-color:var(--border-active);background:var(--accent-soft);color:var(--text-primary)}.chip.static{cursor:default}.chip.scope{background:var(--accent-soft);border-color:transparent;color:var(--accent-primary);max-width:260px}.chip.scope button{display:inline-flex;border:none;background:none;padding:0;color:inherit;opacity:.7}.chip.scope button:hover{opacity:1}.chip-group{display:flex;flex-wrap:wrap;gap:6px}.pill{display:inline-block;padding:0 6px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.pill.partial{background:var(--warning-bg);color:var(--warning)}.pill.unsupported{background:var(--danger-bg);color:var(--danger)}.popover{position:absolute;z-index:40;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:6px}.menu{list-style:none;margin:0;min-width:200px}.menu li button{display:flex;align-items:flex-start;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:var(--radius-sm);background:none;text-align:left;font-size:13px}.menu li button:hover{background:var(--bg-hover)}.menu li button.danger{color:var(--danger)}.menu.up{bottom:calc(100% + 6px);left:0}.menu-check{width:14px;flex-shrink:0;color:var(--accent-primary);padding-top:2px}.menu-label{display:block;font-weight:500}.menu-hint{display:block;font-size:11px;color:var(--text-muted);max-width:260px}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--accent-soft);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}.spinner.small{width:12px;height:12px}@keyframes spin{to{transform:rotate(360deg)}}.progress{height:4px;border-radius:4px;background:var(--bg-tertiary);overflow:hidden;margin-top:6px}.progress>div{height:100%;background:var(--accent-primary);transition:width .4s ease}.banner{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-radius:var(--radius-md);font-size:13px;margin-bottom:8px}.banner.warn{background:var(--warning-bg);color:var(--warning)}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:40px 16px;color:var(--text-secondary)}.empty p{margin:4px 0}.app{display:flex;height:100vh;height:100dvh;overflow:hidden}.sidebar{width:var(--sidebar-w);flex-shrink:0;display:flex;flex-direction:column;background:var(--bg-secondary);border-right:1px solid var(--border-color)}.sidebar.collapsed{width:52px;align-items:center;padding:10px 0;gap:6px}.sidebar-top{padding:12px;display:flex;flex-direction:column;gap:10px}.brand{display:flex;align-items:center;gap:10px;padding:2px 2px 4px}.brand-mark,.avatar,.welcome-mark{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:8px;background:var(--accent-soft);color:var(--accent-primary);font-weight:700}.brand-name{font-weight:600;font-size:15px}.search{display:flex;align-items:center;gap:6px;height:34px;padding:0 4px 0 10px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-input);color:var(--text-muted)}.search input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--text-primary)}.search.inset{margin:0 16px 8px}.session-list{flex:1;overflow-y:auto;padding:0 8px 8px}.session-group h4{margin:14px 8px 4px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.session-row{position:relative;display:flex;align-items:center;border-radius:var(--radius-md)}.session-row:hover,.session-row.active{background:var(--bg-hover)}.session-row.active .session-title{color:var(--text-primary)}.session-row.confirm{flex-direction:column;align-items:stretch;gap:6px;padding:8px;background:var(--danger-bg)}.session-title{flex:1;min-width:0;display:flex;align-items:center;gap:6px;padding:7px 8px;border:none;background:none;color:var(--text-secondary);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.session-title .pin{flex-shrink:0;color:var(--accent-primary)}.session-more{opacity:0;width:26px;height:26px}.session-row:hover .session-more,.session-row.active .session-more,.session-more:focus-visible{opacity:1}.session-edit{flex:1;margin:3px;padding:4px 6px;border-radius:var(--radius-sm);border:1px solid var(--border-active);background:var(--bg-input);outline:none}.session-menu{right:4px;top:100%;max-height:320px;overflow-y:auto}.session-title .truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.session-time{flex-shrink:0;font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}.session-row:hover .session-time,.session-row.active .session-time{display:none}.session-folder{flex-shrink:0;max-width:40%;overflow:hidden;text-overflow:ellipsis;font-size:11px;color:var(--text-muted);padding:1px 6px;border-radius:999px;background:var(--bg-tertiary)}.session-row[draggable=true]{cursor:default}.session-group h4.with-action{display:flex;align-items:center;justify-content:space-between;margin-right:2px}.session-group h4.with-action .icon-btn{width:24px;height:24px}.session-group.drop-over,.folder.drop-over{background:var(--accent-soft);border-radius:var(--radius-md);outline:1px dashed var(--accent-primary)}.folder{margin-bottom:2px}.folder-row{position:relative;display:flex;align-items:center;border-radius:var(--radius-md)}.folder-row:hover{background:var(--bg-hover)}.folder-row:hover .session-more,.folder-row .session-more:focus-visible{opacity:1}.folder-title{flex:1;min-width:0;display:flex;align-items:center;gap:6px;padding:7px 8px;border:none;background:none;color:var(--text-primary);text-align:left;white-space:nowrap;font-size:13px;font-weight:500}.folder-title .truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.folder-title .count{flex-shrink:0;font-size:11px;font-weight:400;color:var(--text-muted)}.folder-title .chev{flex-shrink:0;color:var(--text-muted);transition:transform .15s ease}.folder-title .chev.open{transform:rotate(90deg)}.folder-items{padding-left:14px;margin-left:12px;border-left:1px solid var(--border-color)}.folder-empty{padding:4px 8px 6px}.folder-hint{display:flex;gap:8px;align-items:flex-start;width:100%;padding:6px 8px;border:none;background:none;color:var(--text-muted);font-size:12px;text-align:left;border-radius:var(--radius-md)}.folder-hint:hover{background:var(--bg-hover);color:var(--text-secondary)}.folder-hint svg{flex-shrink:0;margin-top:2px}.menu li button .push{margin-left:auto}.menu li button:disabled{opacity:.55;cursor:default}.menu li button .truncate{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu .menu-back{color:var(--text-muted);font-size:12px}.menu-sep{height:1px;margin:4px 6px;background:var(--border-color)}.menu-input{display:flex;padding:2px}.row.wrap{flex-wrap:wrap}.chat-header .crumb{display:inline-flex;align-items:center;gap:5px;color:var(--text-muted);font-weight:400}.chat-header .crumb-sep{margin:0 6px}.sidebar-bottom{border-top:1px solid var(--border-color);padding:8px;display:flex;flex-direction:column;gap:2px}.nav-btn{display:flex;align-items:center;gap:10px;padding:8px 10px;border:none;border-radius:var(--radius-md);background:none;color:var(--text-secondary);text-align:left}.nav-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-btn .count{margin-left:auto;font-size:11px;color:var(--text-muted)}.chat{position:relative;flex:1;min-width:0;display:flex;flex-direction:column}.chat-header{height:52px;flex-shrink:0;display:flex;align-items:center;padding:0 20px;border-bottom:1px solid var(--border-color)}.chat-header h1{margin:0;font-size:14px;font-weight:500;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messages{flex:1;overflow-y:auto}.thread{max-width:var(--thread-w);margin:0 auto;padding:24px 20px 32px;display:flex;flex-direction:column;gap:22px}.dropzone{position:absolute;top:12px;right:12px;bottom:12px;left:12px;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:2px dashed var(--border-active);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--bg-primary) 88%,transparent);color:var(--accent-primary);pointer-events:none}.welcome{max-width:640px;margin:0 auto;padding:12vh 20px 24px;text-align:center}.welcome-mark{width:44px;height:44px;border-radius:12px;font-size:20px}.welcome h2{margin:16px 0 6px;font-size:24px;font-weight:600;letter-spacing:-.01em}.welcome p{margin:0 auto 24px;max-width:480px}.suggestions{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}.suggestion{padding:12px 14px;border-radius:var(--radius-lg);border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);text-align:left;font-size:13px}.suggestion:hover{border-color:var(--border-strong);color:var(--text-primary);background:var(--bg-card-hover)}.msg.user{display:flex;justify-content:flex-end}.msg.user .msg-content{max-width:80%;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.user-text{padding:10px 14px;border-radius:16px 16px 4px;background:var(--bg-tertiary);white-space:pre-wrap;word-wrap:break-word}.msg-scope{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.msg-media{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.media-thumb{width:120px;height:90px;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--border-color)}.media-thumb.video{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--bg-tertiary);font-size:11px;color:var(--text-muted);padding:6px;overflow:hidden}.msg.assistant{display:flex;gap:12px;align-items:flex-start}.msg-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.msg-error{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--radius-md);background:var(--danger-bg);color:var(--danger)}.msg-actions{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin-top:-4px}.markdown{word-wrap:break-word}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p,.markdown ul,.markdown ol{margin:0 0 10px}.markdown h1,.markdown h2,.markdown h3{margin:18px 0 8px;line-height:1.3}.markdown h1{font-size:20px}.markdown h2{font-size:17px}.markdown h3{font-size:15px}.markdown a{color:var(--accent-primary)}.markdown code{font-family:var(--font-mono);font-size:.88em;padding:1px 5px;border-radius:4px;background:var(--bg-tertiary)}.markdown pre{margin:0 0 10px;padding:12px 14px;border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border-color);overflow-x:auto}.markdown pre code{padding:0;background:none}.markdown blockquote{margin:0 0 10px;padding-left:12px;border-left:3px solid var(--border-strong);color:var(--text-secondary)}.table-wrap{overflow-x:auto;margin:0 0 10px;border:1px solid var(--border-color);border-radius:var(--radius-md)}.markdown table{border-collapse:collapse;width:100%;font-size:13px}.markdown th,.markdown td{padding:7px 10px;border-bottom:1px solid var(--border-color);text-align:left;vertical-align:top}.markdown th{background:var(--bg-tertiary);font-weight:600}.markdown tr:last-child td{border-bottom:none}.cite-chip{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin:0 1px;border:none;border-radius:5px;background:var(--accent-soft);color:var(--accent-primary);font-size:11px;font-weight:600;vertical-align:text-top;line-height:1}.cite-chip:hover{background:var(--accent-primary);color:var(--on-accent)}.caret{display:inline-block;width:7px;height:15px;margin-left:2px;vertical-align:text-bottom;background:var(--accent-primary);animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:0}}.typing{display:flex;gap:4px;padding:6px 0}.typing span{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:bounce 1.2s infinite}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.timeline-toggle{display:inline-flex;align-items:center;gap:6px;padding:2px 0;border:none;background:none;color:var(--text-muted);font-size:12px}.timeline-toggle:hover{color:var(--text-secondary)}.chev{transition:transform .15s}.chev.open{transform:rotate(90deg)}.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-primary);animation:pulse 1.2s infinite}@keyframes pulse{50%{opacity:.35}}.timeline-steps{list-style:none;margin:8px 0 0;padding:0 0 0 6px;border-left:1px solid var(--border-color);display:flex;flex-direction:column;gap:8px}.step{display:flex;gap:10px;align-items:flex-start;margin-left:-12px}.step-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;margin-top:1px;border-radius:50%;background:var(--bg-primary);border:1px solid var(--border-strong);color:var(--success);font-size:10px}.step.warning .step-icon{color:var(--warning)}.step.skipped .step-icon{color:var(--text-muted)}.step.error .step-icon{color:var(--danger)}.step-body{flex:1;min-width:0}.step-head{display:flex;align-items:center;gap:8px;font-size:12.5px}.step-title{color:var(--text-secondary);font-weight:500}.step.running .step-title{color:var(--text-primary)}.step-ms{color:var(--text-faint);font-family:var(--font-mono);font-size:11px}.step-detail{margin:2px 0 0;font-size:12px;color:var(--text-muted)}.step-data{display:grid;grid-template-columns:max-content 1fr;gap:2px 10px;margin:6px 0 0;padding:8px 10px;border-radius:var(--radius-md);background:var(--bg-tertiary);font-size:11.5px}.step-data dt{color:var(--text-muted);text-transform:capitalize}.step-data dd{margin:0;color:var(--text-secondary);font-family:var(--font-mono);word-break:break-word}.sources-head{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.sources-head .muted{font-weight:400}.sources-head .link-btn{margin-left:auto}.sources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}.citation-card{padding:10px 12px;border-radius:var(--radius-lg);border:1px solid var(--border-color);background:var(--bg-card);display:flex;flex-direction:column;gap:6px;min-width:0;transition:border-color .2s,box-shadow .2s}.citation-card.highlight{border-color:var(--border-active);box-shadow:0 0 0 3px var(--accent-soft)}.citation-card.low{opacity:.8}.citation-head{display:flex;align-items:center;gap:6px;min-width:0}.citation-index{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:5px;background:var(--accent-soft);color:var(--accent-primary);font-size:11px;font-weight:600}.citation-type{color:var(--text-muted);display:inline-flex}.citation-title{flex:1;min-width:0;padding:0;border:none;background:none;text-align:left;font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.citation-title:hover{color:var(--accent-primary)}.citation-open{color:var(--text-muted);cursor:pointer;flex-shrink:0}.citation-meta{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:11.5px;color:var(--text-muted);align-items:center}.citation-section{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.citation-thumb{width:100%;max-height:140px;object-fit:contain;border-radius:var(--radius-sm);background:var(--bg-tertiary)}.citation-snippet{margin:0;font-size:12px;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.verify-wrap,.feedback{position:relative;display:inline-flex;align-items:center;gap:2px}.verify-badge{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 8px;margin-left:6px;border-radius:999px;border:none;font-size:11.5px;font-weight:500}.verify-badge.good{background:var(--success-bg);color:var(--success)}.verify-badge.fair{background:var(--warning-bg);color:var(--warning)}.verify-badge.poor{background:var(--danger-bg);color:var(--danger)}.verify-pop{left:0;bottom:calc(100% + 6px);width:min(420px,80vw);padding:12px}.verify-pop p{margin:0 0 8px}.verify-list{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:12px;max-height:260px;overflow-y:auto}.feedback-pop{left:0;bottom:calc(100% + 6px);width:min(400px,85vw);padding:12px;display:flex;flex-direction:column;gap:10px}.artifact-card{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-lg);border:1px solid var(--border-color);background:var(--bg-card)}.artifact-card.failed{border-color:color-mix(in srgb,var(--danger) 40%,transparent)}.artifact-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent-primary);font-size:18px;flex-shrink:0}.artifact-main{flex:1;min-width:0}.artifact-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.artifact-error{display:flex;align-items:center;gap:6px;color:var(--danger);font-size:12px}.side-panel{width:var(--panel-w);flex-shrink:0;display:flex;flex-direction:column;background:var(--bg-secondary);border-left:1px solid var(--border-color);position:relative}.side-panel.dragging{outline:2px dashed var(--border-active);outline-offset:-8px}.panel-header{height:52px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 12px 0 16px;border-bottom:1px solid var(--border-color)}.panel-header h3{margin:0;font-size:14px;font-weight:600}.panel-note{margin:10px 16px}.panel-form{display:flex;flex-direction:column;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border-color)}.panel-body{flex:1;overflow-y:auto;padding:8px 12px 16px;display:flex;flex-direction:column;gap:8px}.lib-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--radius-lg);border:1px solid var(--border-color);background:var(--bg-card)}.lib-item.deleting{opacity:.5}.lib-main{flex:1;min-width:0}.lib-name{font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-meta{display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:2px}.lib-meta .ext{font-family:var(--font-mono);font-size:10.5px}.status.completed,.status.partial{color:var(--success)}.status.failed{color:var(--danger)}.status.processing,.status.queued{color:var(--info)}.lib-actions{display:flex;gap:0}.share-form{flex-basis:100%;display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px solid var(--border-color)}.composer-wrap{flex-shrink:0;width:100%;max-width:calc(var(--thread-w) + 40px);margin:0 auto;padding:0 20px 14px}.composer{position:relative;border-radius:var(--radius-xl);border:1px solid var(--border-strong);background:var(--bg-card);box-shadow:var(--shadow-md);transition:border-color .15s}.composer:focus-within{border-color:var(--border-active)}.composer.recording{border-color:color-mix(in srgb,var(--danger) 60%,transparent)}.composer-chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px 0}.composer-input{display:block;width:100%;min-height:48px;max-height:220px;padding:14px 16px 6px;border:none;outline:none;resize:none;background:transparent;line-height:1.5}.composer-input::placeholder{color:var(--text-muted)}.composer-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px 8px}.composer-bar>.row{flex-wrap:wrap}.composer-hint{text-align:center;font-size:11px;color:var(--text-faint);margin-top:8px}.dropdown{position:relative}.pill-btn{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);font-size:12px}.pill-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.send-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:none;background:var(--accent-primary);color:var(--on-accent);font-size:16px}.send-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.send-btn.stop{background:var(--text-primary);color:var(--bg-primary);font-size:13px}.mention-menu{bottom:calc(100% + 6px);left:8px;width:min(420px,calc(100% - 16px));max-height:300px;overflow-y:auto;list-style:none;margin:0}.mention-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:var(--radius-sm);background:none;text-align:left;font-size:13px;color:var(--text-secondary)}.mention-menu button.active{background:var(--bg-hover);color:var(--text-primary)}.mention-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-chip{position:relative;width:52px;height:52px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-color);display:inline-flex;align-items:center;justify-content:center}.media-chip img{width:100%;height:100%;object-fit:cover}.media-chip.uploading img{opacity:.5}.media-chip .spinner{position:absolute}.media-chip-video{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--bg-tertiary);color:var(--text-muted)}.media-chip button{position:absolute;top:2px;right:2px;display:inline-flex;padding:2px;border:none;border-radius:50%;background:#000000a6;color:#fff;font-size:10px}.dictation-bar{display:flex;align-items:center;gap:10px;padding:10px 12px 0;font-size:12.5px;color:var(--text-secondary)}.dictation-bar .btn:first-of-type{margin-left:auto}.rec-dot{width:8px;height:8px;border-radius:50%;background:var(--danger);animation:pulse 1s infinite}.wave{display:inline-flex;align-items:center;gap:2px;height:18px}.wave span{width:3px;border-radius:2px;background:var(--danger);transition:height .08s}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.camera-modal{width:min(720px,100%);max-height:100%;display:flex;flex-direction:column;border-radius:var(--radius-xl);background:var(--bg-secondary);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);overflow:hidden}.modal-header,.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px}.modal-footer{border-top:1px solid var(--border-color);font-size:12px}.camera-viewfinder{position:relative;aspect-ratio:16 / 9;background:#000;display:flex;align-items:center;justify-content:center}.camera-viewfinder video{width:100%;height:100%;object-fit:cover}.camera-error{padding:24px;color:#ddd;text-align:center;max-width:420px}.camera-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;animation:flash .18s ease-out forwards}@keyframes flash{to{opacity:0}}.camera-rec{position:absolute;top:12px;left:12px;display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#0009;color:#fff;font-size:12px;font-family:var(--font-mono)}.camera-tray{display:flex;gap:8px;padding:10px 14px;overflow-x:auto;border-bottom:1px solid var(--border-color)}.tray-item{position:relative;width:64px;height:64px;flex-shrink:0;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center}.tray-item img{width:100%;height:100%;object-fit:cover}.tray-item.uploading img{opacity:.5}.tray-item .spinner{position:absolute}.tray-video{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:var(--bg-tertiary)}.tray-remove{position:absolute;top:2px;right:2px;display:inline-flex;padding:2px;border:none;border-radius:50%;background:#000000a6;color:#fff;font-size:11px}.camera-controls{display:flex;align-items:center;justify-content:center;gap:28px;padding:14px}.shutter{width:62px;height:62px;border-radius:50%;border:3px solid var(--text-primary);background:transparent;padding:4px}.shutter span{display:block;width:100%;height:100%;border-radius:50%;background:var(--text-primary);transition:all .15s}.shutter.video span,.shutter.recording span{background:var(--danger)}.shutter.recording span{border-radius:6px;transform:scale(.55)}.toasts{position:fixed;bottom:20px;right:20px;z-index:200;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 40px))}.toast{display:flex;align-items:flex-start;gap:8px;padding:10px 8px 10px 14px;border-radius:var(--radius-lg);background:var(--bg-elevated);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);font-size:13px;animation:toast-in .2s ease-out}.toast span{flex:1;padding-top:4px}.toast.error{border-left:3px solid var(--danger)}.toast.info{border-left:3px solid var(--accent-primary)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media(max-width:1100px){.app.with-panel .side-panel{position:fixed;top:0;right:0;bottom:0;z-index:50;width:min(var(--panel-w),100vw);box-shadow:var(--shadow-lg)}}@media(max-width:900px){.sidebar:not(.collapsed){position:fixed;top:0;left:0;bottom:0;z-index:60;box-shadow:var(--shadow-lg)}.thread{padding:16px 14px 24px}.composer-wrap{padding:0 10px 10px}.msg.user .msg-content{max-width:92%}.avatar{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
