:root{--accent:#1991e6;--accent-dark:#126cac;--accent-light:rgba(25,145,230,0.10);--accent-mid:rgba(25,145,230,0.20);--bg:#ffffff;--bg-sidebar:#f0f7fd;--bg-elevated:#f8fafc;--border:#e1e8f0;--text:#1a2332;--muted:#64748b;--danger:#ef4444;--shadow-sm:0 1px 3px rgba(0,0,0,0.08);--shadow-md:0 4px 16px rgba(25,145,230,0.10)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.loading-state{place-items:center;color:var(--muted);font-size:15px}.loading-state,.login-shell{min-height:100vh;display:grid}.login-shell{place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,var(--accent-light) 0,var(--bg-sidebar) 45%,var(--bg) 100%)}.login-panel{width:min(440px,100%);background:var(--bg);border-radius:20px;padding:40px 36px;box-shadow:0 24px 80px rgba(25,145,230,.14),0 4px 20px rgba(0,0,0,.08);display:flex;flex-direction:column;gap:16px}.login-panel .eyebrow{margin:0;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.login-panel h1{margin:0;font-size:24px;font-weight:700;color:var(--text);line-height:1.3}.login-panel .login-copy{margin:0;color:var(--muted);font-size:14px;line-height:1.6}.login-panel .login-actions{margin-top:4px}.modal-overlay{position:fixed;inset:0;background:rgba(10,30,60,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:100}.modal-card{width:min(480px,calc(100vw - 32px));background:var(--bg);border-radius:20px;padding:40px 36px;box-shadow:0 24px 80px rgba(25,145,230,.18),0 4px 20px rgba(0,0,0,.1);display:flex;flex-direction:column;gap:20px}.modal-logo{display:flex;align-items:center;gap:10px;margin-bottom:4px}.modal-logo-dot{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--accent),#126cac);display:grid;place-items:center;color:white;font-size:18px;font-weight:800}.modal-logo-text{font-size:18px;letter-spacing:-.02em}.modal-card h2,.modal-logo-text{font-weight:700;color:var(--text)}.modal-card h2{margin:0;font-size:22px;line-height:1.3}.modal-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}.modal-input{width:100%;padding:12px 16px;border:1.5px solid var(--border);border-radius:12px;outline:none;font-size:15px;color:var(--text);background:var(--bg);transition:border-color .14s}.modal-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.modal-input::placeholder{color:#b0bec5}.primary-button{padding:12px 20px;border:none;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:white;font-weight:600;font-size:14px;cursor:pointer;transition:opacity .14s,transform .1s;box-shadow:0 2px 8px rgba(25,145,230,.35)}.primary-button:hover:not(:disabled){opacity:.92;transform:translateY(-1px)}.primary-button:disabled{opacity:.55;cursor:not-allowed;transform:none}.ghost-button{padding:8px 14px;border:1.5px solid var(--border);border-radius:10px;background:transparent;color:var(--muted);font-size:13px;font-weight:500;cursor:pointer;transition:background .14s,color .14s,border-color .14s}.ghost-button:hover{background:var(--accent-light);color:var(--accent);border-color:var(--accent-mid)}.full-width{width:100%}.chat-shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{display:flex;flex-direction:column;gap:12px;padding:20px 16px;border-right:1px solid var(--border);background:var(--bg-sidebar)}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:4px 4px 8px;border-bottom:1px solid var(--border);margin-bottom:4px}.brand-settings-btn{margin-left:auto;width:28px;height:28px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer}.brand-settings-btn:hover{background:white;color:var(--accent);border-color:var(--border)}.brand-settings-btn svg{width:16px;height:16px}.brand-icon{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent-dark));display:grid;place-items:center;color:white;font-size:15px;font-weight:800;flex-shrink:0}.brand-name{font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.01em}.new-chat-btn{width:100%;padding:10px 14px;border:1.5px dashed var(--accent-mid);border-radius:12px;background:var(--accent-light);color:var(--accent);font-size:13px;font-weight:600;cursor:pointer;transition:background .14s,border-color .14s;text-align:left;display:flex;align-items:center;gap:8px}.new-chat-btn:hover{background:var(--accent-mid);border-color:var(--accent)}.new-chat-btn:before{content:"+";font-size:18px;line-height:1;color:var(--accent)}.secondary-sidebar-btn{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:12px;background:white;color:var(--text);font-size:13px;font-weight:600;cursor:pointer;text-align:left;transition:border-color .14s,background .14s}.secondary-sidebar-btn:hover{border-color:var(--accent-mid);background:var(--accent-light)}.source-status-card{border:1.5px solid var(--border);border-radius:14px;background:white;padding:12px;display:flex;flex-direction:column;gap:8px}.source-status-toggle{border:none;background:transparent;padding:0;cursor:pointer;text-align:left}.source-status-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.source-status-top strong{font-size:13px;color:var(--text)}.source-status-top span{min-width:24px;height:24px;border-radius:999px;display:grid;place-items:center;font-size:12px;font-weight:700}.status-pill{min-width:64px!important;padding:0 10px;text-transform:capitalize}.status-pill.idle{background:#eef2f7;color:#475569}.status-pill.running{background:#dbeafe;color:#1d4ed8}.status-pill.success{background:#dcfce7;color:#166534}.status-pill.error{background:#fee2e2;color:#b91c1c}.source-status-card p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.5}.source-status-meta{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:11.5px}.source-mini-list{display:flex;flex-direction:column;gap:6px;max-height:170px;overflow-y:auto}.source-mini-item{justify-content:space-between;padding:8px 10px;border-radius:10px;background:white;border:1.5px solid var(--border)}.source-mini-copy,.source-mini-item{display:flex;align-items:center;gap:8px}.source-mini-copy{min-width:0;flex-direction:row;flex:1 1}.source-mini-item strong{flex:1 1;min-width:0;font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.source-mini-copy small{flex-shrink:0;color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.04em}.source-delete-btn{flex-shrink:0;width:20px;height:20px;border:none;border-radius:999px;background:transparent;color:#94a3b8;cursor:pointer;font-size:12px;line-height:1}.source-delete-btn:hover:not(:disabled){background:#fee2e2;color:#b91c1c}.source-delete-btn:disabled{cursor:not-allowed;opacity:.6}.sidebar-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:0 4px}.conversation-list{flex:1 1;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.conversation-item{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;background:transparent;border:1.5px solid transparent;color:var(--muted);padding:10px 12px;border-radius:10px;cursor:pointer;text-align:left;font-size:13.5px;transition:background .12s,color .12s,border-color .12s}.conversation-item:hover{background:white;color:var(--text);border-color:var(--border)}.conversation-item.active{background:white;color:var(--accent);border-color:var(--accent-mid);font-weight:600;box-shadow:var(--shadow-sm)}.conversation-item span:first-child{flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.delete-mark{flex-shrink:0;color:#cbd5e1;font-size:18px;line-height:1;padding:0 2px;transition:color .12s}.conversation-item.active .delete-mark,.conversation-item:hover .delete-mark{color:#94a3b8}.delete-mark:hover{color:var(--danger)!important}.empty-copy{font-size:13px;color:var(--muted);padding:12px 4px;text-align:center}.sidebar-footer{border-top:1px solid var(--border);padding-top:12px;display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:white;font-weight:700;font-size:15px;flex-shrink:0}.sidebar-footer strong{display:block;font-size:13.5px;color:var(--text);font-weight:600}.sidebar-footer p{margin:0;font-size:12px;color:var(--muted)}.chat-panel{display:flex;flex-direction:column;min-width:0;height:100vh}.chat-header{padding:18px 28px;border-bottom:1px solid var(--border);background:var(--bg);display:flex;align-items:center;gap:16px}.chat-header-icon{width:40px;height:40px;border-radius:12px;background:var(--accent-light);display:grid;place-items:center;flex-shrink:0}.chat-header-icon svg{width:20px;height:20px;color:var(--accent)}.chat-header-text h1{margin:0;font-size:16px;font-weight:700;color:var(--text)}.chat-header-text p{margin:0;font-size:12.5px;color:var(--muted)}.message-list{flex:1 1;overflow-y:auto;padding:28px 28px 12px;gap:20px}.empty-chat-state,.message-list{display:flex;flex-direction:column}.empty-chat-state{margin:auto;max-width:480px;text-align:center;align-items:center;gap:16px}.empty-chat-icon{width:56px;height:56px;border-radius:16px;background:var(--accent-light);display:grid;place-items:center}.empty-chat-state h3{margin:0;font-size:18px;font-weight:700;color:var(--text)}.empty-chat-state p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}.message-card{display:flex;flex-direction:column;gap:8px;max-width:780px}.message-card.user{align-self:flex-end;align-items:flex-end}.message-card.assistant{align-self:flex-start;align-items:flex-start}.message-role{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:0 4px}.message-bubble{padding:14px 18px;border-radius:18px;line-height:1.65;font-size:14.5px}.message-card.user .message-bubble{background:linear-gradient(135deg,var(--accent),var(--accent-dark));color:white;border-bottom-right-radius:4px}.message-card.assistant .message-bubble{background:var(--bg-elevated);color:var(--text);border:1.5px solid var(--border);border-bottom-left-radius:4px}.markdown-body{line-height:1.65}.markdown-body :first-child{margin-top:0}.markdown-body :last-child{margin-bottom:0}.markdown-body p{margin:.5em 0}.markdown-body ol,.markdown-body ul{padding-left:20px;margin:.5em 0}.markdown-body code{background:rgba(25,145,230,.08);padding:1px 5px;border-radius:4px;font-size:13px}.message-card.user .markdown-body code{background:rgba(255,255,255,.2)}.source-list{margin-top:10px;display:flex;flex-direction:column;gap:6px;width:100%}.source-heading{margin:0;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.source-card{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1.5px solid var(--border);border-radius:10px;background:white;transition:border-color .14s,box-shadow .14s;font-size:13px}.source-card:hover{border-color:var(--accent-mid);box-shadow:0 2px 8px var(--accent-light)}.source-card strong{color:var(--text);font-weight:600}.source-card span{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.composer-shell{border-top:1px solid var(--border);padding:16px 24px 24px;background:var(--bg)}.error-banner{margin:0 0 10px;color:var(--danger);font-size:13px;padding:8px 12px;background:rgba(239,68,68,.06);border-radius:8px;border:1px solid rgba(239,68,68,.15)}.composer{display:flex;align-items:flex-end;gap:10px;padding:12px 14px;border:1.5px solid var(--border);border-radius:18px;background:var(--bg-elevated);transition:border-color .14s,box-shadow .14s}.composer:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.composer textarea{flex:1 1;resize:none;border:none;outline:none;background:transparent;color:var(--text);min-height:54px;max-height:160px;line-height:1.5;font-size:14.5px}.composer textarea::placeholder{color:#b0bec5}.source-modal{width:min(720px,calc(100vw - 32px))}.env-modal{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow-y:auto}.env-field-list{gap:14px}.env-field-card,.env-field-list{display:flex;flex-direction:column}.env-field-card{gap:8px}.env-input-row{display:grid;grid-template-columns:1fr auto;grid-gap:10px;gap:10px;align-items:center}.env-apply-btn{font-size:12px;padding:4px 10px;white-space:nowrap}.env-apply-btn--done{color:var(--accent);border-color:var(--accent)}.env-input-wrap{position:relative;display:flex;align-items:center}.env-input-wrap .modal-input{width:100%;padding-right:40px}.env-eye-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;padding:4px;cursor:pointer;color:var(--muted);display:flex;align-items:center;justify-content:center;border-radius:6px;transition:color .14s}.env-eye-btn:hover{color:var(--accent)}.env-eye-btn svg{display:block}.env-field-header{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--text)}.hint-wrap{position:relative;display:inline-flex}.hint-icon{width:16px;height:16px;border-radius:999px;background:var(--accent-light);color:var(--accent);display:grid;place-items:center;font-size:11px;font-weight:700}.hint-tooltip{position:absolute;left:24px;top:-6px;width:240px;padding:10px 12px;border-radius:10px;background:#0f172a;color:white;font-size:12px;line-height:1.45;opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .12s,transform .12s;z-index:10}.hint-wrap:hover .hint-tooltip{opacity:1;transform:translateY(0)}.env-custom-block{border-top:1px solid var(--border);padding-top:10px;display:flex;flex-direction:column;gap:10px}.env-custom-title{font-size:13px;font-weight:700;color:var(--text)}.env-custom-row{display:grid;grid-template-columns:180px 1fr auto;grid-gap:10px;gap:10px;align-items:center}.env-custom-key{text-transform:uppercase}.env-remove-btn{justify-self:end}.env-settings-note{font-size:13px;color:var(--muted)}.env-danger-note{margin:0;padding:10px 12px;border-radius:12px;border:1px solid rgba(239,68,68,.18);background:rgba(239,68,68,.08);color:#b91c1c!important;font-size:13px!important;line-height:1.5}.env-sensitive-hint{margin:0;color:#b91c1c!important;font-size:12px!important;line-height:1.45}.env-confirm-overlay{position:fixed;inset:0;z-index:120}.env-confirm-card{width:min(520px,calc(100vw - 32px))}.login-actions{display:flex;flex-direction:column;gap:10px}.source-textarea{width:100%;min-height:220px;resize:vertical;border:1.5px solid var(--border);border-radius:14px;padding:14px 16px;outline:none;background:var(--bg-elevated);color:var(--text);line-height:1.5}.source-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.source-feedback{margin:0;color:var(--accent-dark);font-size:13px;min-height:84px;max-height:84px;overflow-y:auto;padding:10px 12px;border-radius:10px;background:var(--bg-elevated);border:1px solid var(--border);white-space:pre-wrap;line-height:1.45}.modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}@media (max-width:860px){.chat-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border);max-height:240px}.chat-header,.composer-shell,.message-list{padding-left:16px;padding-right:16px}}