:root{--bg:#14161b;--surface:#1a1d24;--surface-raised:#21252e;--surface-hover:#262b35;--border:#2b303b;--border-strong:#3a4050;--text:#eef0f4;--text-secondary:#a7acba;--text-tertiary:#6f7688;--accent:#f2c14e;--accent-hover:#ffd873;--accent-ink:#201a08;--status-ready:#5fd8b8;--status-ready-bg:#5fd8b821;--status-processing:#f2b73f;--status-processing-bg:#f2b73f21;--status-error:#ff8a7a;--status-error-bg:#ff8a7a21;--radius-sm:6px;--radius-md:10px;--shadow-md:0 10px 28px #00000052, 0 2px 8px #00000038;--font-sans:"IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid var(--bg);border-radius:8px}::-webkit-scrollbar-track{background:0 0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:.9375rem;line-height:1.55}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}h1,h2,h3{font-family:var(--font-sans);letter-spacing:-.01em}p{margin:0 0 .75em}.muted{color:var(--text-secondary)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}input{background:var(--surface);width:100%;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;margin-bottom:10px;padding:10px 14px;transition:border-color .15s,background .15s}input::placeholder{color:var(--text-tertiary)}input:hover:not(:disabled){border-color:var(--border-strong)}input:focus{border-color:var(--accent);background:var(--surface-raised)}input:disabled{opacity:.6;cursor:not-allowed}button{font:inherit;cursor:pointer;color:var(--text)}button:disabled{cursor:not-allowed}.link-button{color:var(--text-secondary);text-underline-offset:3px;background:0 0;border:none;padding:6px 0;font-size:.8125rem;text-decoration:underline}.link-button:hover{color:var(--text)}.field-error{color:var(--status-error);align-items:center;gap:6px;margin:2px 0 12px;font-size:.8125rem;line-height:1.4;display:flex}.field-error svg{flex-shrink:0}.field-error-banner{background:var(--status-error-bg);border-radius:var(--radius-sm);border:1px solid #ff8a7a59;margin:12px 0 0;padding:10px 12px}.app{flex-direction:column;min-height:100vh;display:flex}.brand-mark{color:var(--text);letter-spacing:-.01em;align-items:center;gap:8px;font-size:1.0625rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-tab{background:var(--accent);border-radius:3px 3px 1px 1px;flex-shrink:0;width:14px;height:10px;display:inline-block}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;width:100%;max-width:1180px;margin:0 auto;padding:16px 20px;display:flex}.topbar nav{align-items:center;gap:20px;display:flex}.topbar nav a{color:var(--text-secondary);font-size:.875rem;font-weight:500;text-decoration:none}.topbar nav a:hover{color:var(--text)}.demo-badge{font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent);border-radius:999px;padding:3px 8px;font-size:.6875rem;font-weight:600}.app-body{flex-direction:column;flex:1;width:100%;max-width:1180px;margin:0 auto;padding:0 20px 40px;display:flex}.page{padding-top:28px}.page-header{margin-bottom:22px}.page-header h1{margin:0 0 6px;font-size:1.375rem;font-weight:700}.page-header p{max-width:60ch;margin:0;font-size:.875rem}.auth-screen{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;max-width:400px;box-shadow:var(--shadow-md);padding:32px}.auth-card .brand-mark{margin-bottom:10px;font-size:1.25rem}.auth-tagline{color:var(--text-secondary);margin:0 0 22px;font-size:.875rem;line-height:1.55}.auth-demo-note{color:var(--text-tertiary);text-align:center;margin:8px 0 0;font-size:.75rem}.divider{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:10px;margin:22px 0;font-size:.6875rem;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.demo-button,.auth-submit{border-radius:var(--radius-sm);background:var(--accent);width:100%;color:var(--accent-ink);border:none;padding:12px 16px;font-size:.9375rem;font-weight:600;transition:background .15s,transform .1s}.demo-button:hover:not(:disabled),.auth-submit:hover:not(:disabled){background:var(--accent-hover)}.demo-button:active:not(:disabled),.auth-submit:active:not(:disabled){transform:translateY(1px)}.demo-button:disabled,.auth-submit:disabled{opacity:.55;cursor:not-allowed}.chat-shell{flex:1;grid-template-columns:260px 1fr;align-content:start;gap:20px;padding-top:20px;display:grid}.mobile-nav-toggle,.nav-backdrop{display:none}.sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;align-self:start;gap:12px;max-height:calc(100vh - 100px);padding:14px;display:flex;position:sticky;top:20px;overflow:auto}.sidebar-tabs{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);gap:4px;padding:3px;display:flex}.sidebar-tabs button{color:var(--text-secondary);background:0 0;border:none;border-radius:5px;flex:1;justify-content:center;align-items:center;gap:6px;padding:7px 8px;font-size:.8125rem;font-weight:500;display:flex}.sidebar-tabs button svg{width:15px;height:15px}.sidebar-tabs button.active{background:var(--surface-raised);color:var(--text)}.sidebar-tabs button:hover:not(.active){color:var(--text)}.conversation-list{flex-direction:column;gap:10px;display:flex}.new-chat-button{border-radius:var(--radius-sm);border:1px dashed var(--border-strong);width:100%;color:var(--text-secondary);background:0 0;align-items:center;gap:8px;padding:9px 12px;font-size:.8125rem;font-weight:500;display:flex}.new-chat-button:hover{border-color:var(--accent);color:var(--text);border-style:solid}.conversation-items{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.conversation-item{text-align:left;border-radius:var(--radius-sm);width:100%;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:1px solid #0000;padding:9px 10px;font-size:.8438rem;overflow:hidden}.conversation-item:hover{background:var(--surface-hover);color:var(--text)}.conversation-item.active{background:var(--surface-raised);color:var(--text);border-color:var(--border)}.conversation-skeleton{flex-direction:column;gap:10px;padding:4px 2px;display:flex}.empty-state{text-align:center;color:var(--text-secondary);padding:20px 12px;font-size:.8125rem}.empty-state p{margin:4px 0}.empty-state-compact{padding:16px 8px}.empty-state-compact svg{color:var(--text-tertiary);margin-bottom:8px}.chat-main{flex-direction:column;min-height:60vh;display:flex}.messages{flex-direction:column;flex:1;gap:14px;display:flex}.chat-empty{text-align:center;max-width:440px;margin:auto;padding:40px 20px}.chat-empty-icon{width:30px;height:30px;color:var(--text-tertiary);margin-bottom:14px}.chat-empty h2{margin:0 0 8px;font-size:1.25rem;font-weight:600}.chat-empty p{color:var(--text-secondary);margin:0;font-size:.875rem;line-height:1.65}.message{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);max-width:74ch;padding:14px 16px}.message-user{color:var(--text-secondary);background:0 0;border-color:#0000;align-self:flex-end;max-width:68ch;padding-right:4px}.message-assistant{align-self:flex-start}.message-ungrounded{background:var(--status-processing-bg);border-color:#f2b73f66}.message-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-bottom:6px;font-size:.6875rem;display:block}.message-ungrounded .message-label{color:var(--status-processing)}.message-content{white-space:pre-wrap;line-height:1.65}.message-pending{align-self:flex-start;align-items:center;padding:16px;display:flex}.typing-indicator{gap:4px;display:inline-flex}.typing-indicator span{background:var(--text-tertiary);border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite typing-dot}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}@keyframes typing-dot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.composer{gap:10px;margin-top:18px;display:flex}.composer input{flex:1;margin-bottom:0}.composer button{border-radius:var(--radius-sm);background:var(--accent);width:44px;height:44px;color:var(--accent-ink);border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s;display:flex}.composer button:hover:not(:disabled){background:var(--accent-hover)}.composer button:disabled{opacity:.4;cursor:not-allowed}.sources{margin-top:10px}.source-chips{flex-wrap:wrap;gap:6px;display:flex}.source-chip{background:var(--surface-raised);border:1px solid var(--border);color:var(--text-secondary);border-radius:6px 6px 2px 2px;align-items:center;gap:6px;padding:5px 10px 5px 6px;font-size:.75rem;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.source-chip:hover{border-color:var(--border-strong);color:var(--text)}.source-chip.open{border-color:var(--accent);color:var(--text);background:var(--surface-hover)}.source-chip-index{background:var(--accent);width:16px;height:16px;color:var(--accent-ink);font-family:var(--font-mono);border-radius:4px 4px 1px 1px;flex-shrink:0;justify-content:center;align-items:center;font-size:.625rem;font-weight:600;display:inline-flex}.source-chip-name{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;max-width:22ch;font-size:.6875rem;overflow:hidden}.source-excerpt{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);margin:8px 0 0;padding:12px 14px;font-size:.8125rem;line-height:1.65}.source-excerpt mark{color:var(--text);background:#f2c14e3d;border-radius:2px;padding:0 2px}.source-excerpt cite{font-style:normal;font-family:var(--font-mono);color:var(--text-tertiary);margin-top:8px;font-size:.6875rem;display:block}.uploader{margin-bottom:16px}.uploader-drop{border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);text-align:center;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:22px 16px;transition:border-color .15s,background .15s;display:flex;position:relative}.uploader-drop input[type=file]{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.uploader-drop:hover,.uploader-drop.dragging{border-color:var(--accent);background:#f2c14e0f}.uploader-drop.disabled{opacity:.55;cursor:not-allowed}.uploader-drop.disabled input{cursor:not-allowed}.uploader-icon{color:var(--text-tertiary)}.uploader-label{color:var(--text-secondary);font-size:.875rem}.uploader-label strong{color:var(--text)}.uploader-hint{font-family:var(--font-mono);color:var(--text-tertiary);font-size:.6875rem}.doc-list{flex-direction:column;gap:2px;display:flex}.doc-row{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:11px 4px;display:flex}.doc-row-icon,.doc-row .status,.doc-row .icon-button{margin-top:1px}.doc-row:last-child{border-bottom:none}.doc-row-icon{color:var(--text-tertiary);flex-shrink:0}.doc-row-body{flex:1;min-width:0}.doc-row-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.doc-row-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.875rem;overflow:hidden}.doc-row-meta{font-family:var(--font-mono);color:var(--text-tertiary);flex-wrap:wrap;gap:10px;margin-top:2px;font-size:.6875rem;display:flex}.doc-row-error{color:var(--status-error)}.doc-row-expiry{align-items:center;gap:4px;display:inline-flex}.doc-row-expiry svg{width:12px;height:12px}.status{font-family:var(--font-mono);border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:3px 8px;font-size:.6875rem;font-weight:500;display:inline-flex}.status svg{width:11px;height:11px}.status-ready{color:var(--status-ready);background:var(--status-ready-bg)}.status-processing{color:var(--status-processing);background:var(--status-processing-bg)}.status-error{color:var(--status-error);background:var(--status-error-bg)}.status-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.status-processing .status-dot{animation:1.4s ease-in-out infinite status-pulse}@keyframes status-pulse{0%,to{opacity:.4}50%{opacity:1}}.icon-button{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-tertiary);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;display:flex}.icon-button:hover{color:var(--status-error);background:var(--status-error-bg);border-color:#ff8a7a4d}.docs-panel{flex-direction:column;display:flex}.docs-panel-intro p{margin:0 0 14px;font-size:.8125rem;line-height:1.6}.docs-section{margin-top:18px}.docs-section h3{color:var(--text);margin:0 0 4px;font-size:.8125rem;font-weight:600}.docs-section-caption{margin:0 0 10px;font-size:.75rem}.docs-section-empty{margin:0;padding:8px 0;font-size:.8125rem}.doc-row-skeleton{align-items:center;gap:12px;padding:11px 4px;display:flex}.skeleton{background:linear-gradient(90deg, var(--surface-raised) 25%, var(--surface-hover) 37%, var(--surface-raised) 63%);background-size:400% 100%;border-radius:4px;animation:1.4s infinite skeleton-shimmer;display:block}.skeleton-line{width:100%;height:14px}.skeleton-icon{border-radius:5px;flex-shrink:0;width:18px;height:18px}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}.toast-stack{z-index:80;pointer-events:none;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:20px;left:20px;right:20px}.toast{background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);pointer-events:auto;align-items:flex-start;gap:10px;width:100%;max-width:380px;padding:12px 14px;animation:.2s toast-in;display:flex}.toast p{color:var(--text);flex:1;margin:0;font-size:.8125rem;line-height:1.5}.toast-icon{color:var(--status-processing);flex-shrink:0;margin-top:1px}.toast-dismiss{color:var(--text-tertiary);background:0 0;border:none;flex-shrink:0;padding:2px;display:flex}.toast-dismiss:hover{color:var(--text)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width<=760px){.topbar{flex-wrap:wrap;gap:8px;padding:12px 14px}.topbar nav{gap:14px}.app-body{padding:0 14px 28px}.chat-shell{grid-template-columns:1fr;padding-top:12px}.mobile-nav-toggle{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);width:fit-content;color:var(--text);justify-content:center;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;display:flex}.nav-backdrop{z-index:45;background:#08090c99;display:block;position:fixed;inset:0}.sidebar{z-index:50;border-top:none;border-bottom:none;border-left:none;border-radius:0;width:86%;max-width:320px;max-height:100vh;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.message,.message-user{max-width:92%}.auth-card{padding:24px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
