:root{color-scheme:light dark;--font-body: system-ui, -apple-system, "Segoe UI Variable Text", "Segoe UI", Roboto, "Noto Sans", "DejaVu Sans", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, "DejaVu Sans Mono", monospace;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--radius-sm: .375rem;--radius: .625rem;--radius-lg: 1rem;--radius-pill: 999px;--column-width: 50rem;--touch: 2.75rem;--ease: cubic-bezier(.2, 0, 0, 1);--dur: .14s;--bg: #ffffff;--bg-app: #f6f7fb;--surface: #f1f3f8;--surface-2: #e4e8f1;--surface-raised: #ffffff;--text: #151a24;--text-muted: #4a5365;--text-provisional: #5b6474;--border: #d5dae5;--border-strong: #6b7385;--scrim: rgb(10 14 25 / .5);--accent: #3b4fd8;--accent-hover: #2f40b8;--accent-soft: #e8ebff;--accent-soft-text: #1d2a85;--accent-text: #ffffff;--accent-2: #0f9d8a;--focus: #3b4fd8;--danger: #b00020;--danger-bg: #fdecef;--success: #17692a;--success-bg: #e6f5ea;--warning-bg: #fff4d6;--warning-border: #8a5a00;--warning-text: #4d3300;--shadow-1: 0 1px 2px rgb(16 24 40 / .06), 0 1px 3px rgb(16 24 40 / .08);--shadow-2: 0 4px 12px rgb(16 24 40 / .08), 0 2px 4px rgb(16 24 40 / .06);--shadow-3: 0 16px 40px rgb(16 24 40 / .18), 0 4px 12px rgb(16 24 40 / .1);--brand-gradient: linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%)}@media(prefers-color-scheme:dark){:root{--bg: #12151c;--bg-app: #0d0f14;--surface: #1a1e27;--surface-2: #262c38;--surface-raised: #1a1e27;--text: #e9ecf2;--text-muted: #a9b1c0;--text-provisional: #99a2b2;--border: #2d3442;--border-strong: #7d8798;--scrim: rgb(0 0 0 / .65);--accent: #8fa2ff;--accent-hover: #adbaff;--accent-soft: #232a52;--accent-soft-text: #d3d9ff;--accent-text: #0b1020;--accent-2: #3fd0b8;--focus: #8fa2ff;--danger: #ff8a80;--danger-bg: #3a1a1f;--success: #8fd69c;--success-bg: #14301b;--warning-bg: #3a2f10;--warning-border: #e0b252;--warning-text: #f3dfae;--shadow-1: 0 1px 2px rgb(0 0 0 / .5);--shadow-2: 0 4px 14px rgb(0 0 0 / .5);--shadow-3: 0 18px 44px rgb(0 0 0 / .65)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg-app)}body{margin:0;font-family:var(--font-body);font-size:1rem;background:var(--bg-app);color:var(--text);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{line-height:1.25;letter-spacing:-.01em}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::selection{background:var(--accent-soft);color:var(--accent-soft-text)}.skip-link{position:absolute;inset-inline-start:var(--space-2);top:var(--space-2);z-index:30;padding:var(--space-2) var(--space-4);min-height:var(--touch);display:inline-flex;align-items:center;background:var(--bg);color:var(--text);border:2px solid var(--focus);border-radius:var(--radius);box-shadow:var(--shadow-2);transform:translateY(-300%)}.skip-link:focus{transform:none}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}button{font:inherit;font-weight:500;padding:0 var(--space-4);min-height:var(--touch);cursor:pointer;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:var(--accent-text);transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.55}button.secondary{background:transparent;color:var(--text);border-color:var(--border-strong)}button.secondary:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.shell{max-width:48rem;margin:0 auto;padding:2rem 1rem}.form{display:flex;flex-direction:column;gap:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-1);font-weight:500;font-size:.925rem}.field input{font:inherit;font-weight:400;padding:var(--space-2) var(--space-3);min-height:var(--touch);background:var(--bg);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.field input:hover:not(:disabled){border-color:var(--text-muted)}.field input:focus-visible{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 30%,transparent)}.actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.notice,.error,.success{margin:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid currentColor;font-size:.925rem}.notice{background:var(--surface)}.error{color:var(--danger);background:var(--danger-bg)}.success{color:var(--success);background:var(--success-bg)}.caption{font-size:.85rem;color:var(--text-muted);margin:0}.expander{margin-top:1.5rem}.expander summary{cursor:pointer}.auth-page{max-width:25rem;margin:clamp(2rem,12vh,7rem) auto 2rem;padding:var(--space-8) var(--space-6);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);width:calc(100% - 2rem)}.auth-page h1{margin:0 0 var(--space-6);font-size:1.4rem;text-align:center}.auth-page .notice{margin-bottom:var(--space-4)}.auth-page>.form>button[type=submit]{min-height:3rem;font-weight:600}.dialog{max-width:26rem;width:calc(100% - 2rem);max-height:calc(100dvh - 2rem);overflow-y:auto;padding:var(--space-6);background:var(--surface-raised);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-3)}.dialog::backdrop{background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog h2{margin-top:0;font-size:1.2rem}.dialog .actions{justify-content:flex-end;margin-top:var(--space-2)}.app-layout{display:flex;flex-direction:column;height:100vh;height:100dvh;background:var(--bg-app)}.app-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-4);padding:var(--space-2) max(var(--space-4),env(safe-area-inset-right)) var(--space-2) max(var(--space-4),env(safe-area-inset-left));padding-top:max(var(--space-2),env(safe-area-inset-top));background:var(--bg);border-bottom:1px solid var(--border);box-shadow:var(--shadow-1);position:relative;z-index:6}.app-heading{display:flex;align-items:center;gap:var(--space-3);min-width:0}.app-heading h1{margin:0;font-size:1.05rem;font-weight:650}.app-heading .caption{margin-top:.05rem}.app-menu{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.app-menu button{font-size:.9rem}.app-menu .username{margin:0 var(--space-2) 0 0;overflow-wrap:anywhere;line-height:1.25;text-align:end}.app-menu .username strong{display:block;font-size:.9rem}.app-body{flex:1;min-height:0;display:flex;position:relative}.chat-main:focus{outline:none}.chat-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.sidebar{flex:0 0 17rem;width:17rem;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-4) var(--space-3);background:var(--surface)}@media(forced-colors:active){.sidebar{border-inline-end:1px solid CanvasText}}.sidebar-toggle{display:none}.sidebar:focus{outline:none}.drawer-backdrop{display:none}.sidebar-title{margin:0 var(--space-2) var(--space-3);font-size:.75rem;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.sidebar-error{display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-start;margin-bottom:var(--space-2)}.session-list{list-style:none;margin:0 0 var(--space-2);padding:0;display:flex;flex-direction:column;gap:2px}.session-item{position:relative;width:100%;display:block;text-align:start;min-height:0;padding:.3rem var(--space-3);background:transparent;color:var(--text);border:0;font-size:.875rem;font-weight:450}.session-item:hover:not(:disabled){background:var(--surface-2)}.session-item--current,.session-item--current:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-soft-text)}.session-item--current:before{content:"";position:absolute;inset-block:.5rem;inset-inline-start:0;width:3px;border-radius:3px;background:var(--accent)}.session-item[aria-busy=true]{opacity:.6}.session-title{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.session-more{width:100%;min-height:0;padding:.3rem var(--space-3);font-size:.8rem}.load-older{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding-bottom:var(--space-2)}.feedback{margin-top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.feedback .actions{gap:var(--space-2)}.feedback-button{padding:0 var(--space-3);font-size:.875rem;border-radius:var(--radius-pill)}button.feedback-button,button.feedback-button:hover:not(:disabled){border-color:transparent}.feedback-label{font-size:.9rem}.feedback-comment{font:inherit;padding:var(--space-2) var(--space-3);background:var(--bg);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius);resize:vertical;max-width:100%;overflow-wrap:anywhere}.feedback-comment:focus-visible{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 30%,transparent)}.feedback-comment[aria-invalid=true]{border-color:var(--danger)}.feedback-thanks{margin-top:var(--space-2)}.msg-attachments{margin:var(--space-1) 0 0;overflow-wrap:anywhere}.dialog--wide{max-width:34rem}.export-heading{margin:var(--space-4) 0 var(--space-2);font-size:.95rem}.export-list{border:1px solid var(--border);border-radius:var(--radius);margin:0 0 var(--space-3);padding:var(--space-2);max-height:14rem;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-1);background:var(--bg)}.export-row{display:flex;gap:var(--space-3);align-items:center;min-height:var(--touch);padding-inline:var(--space-2);border-radius:var(--radius-sm)}.export-row:hover{background:var(--surface)}.export-row input{flex:none;width:1.25rem;height:1.25rem;accent-color:var(--accent)}.export-row label{overflow-wrap:anywhere;flex:1;cursor:pointer}.export-status{min-height:1.5rem;margin:var(--space-2) 0}.upload-panel{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);margin-bottom:var(--space-2);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius)}.upload-panel input[type=file]{font:inherit;max-width:100%}.upload-panel input[type=file]::file-selector-button{font:inherit;margin-inline-end:var(--space-3);min-height:var(--touch);padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);cursor:pointer}.upload-problems{margin:0;padding-inline-start:1.5rem}.upload-chips{list-style:none;margin:0 0 var(--space-2);padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.upload-chip{display:inline-flex;align-items:center;gap:var(--space-1);border:1px solid var(--border-strong);background:var(--bg);border-radius:var(--radius-pill);padding-inline-start:var(--space-3);font-size:.875rem}.upload-name{overflow-wrap:anywhere;max-width:14rem}.upload-remove{border:0;min-width:var(--touch);padding:0;border-radius:50%}.composer-attach{min-width:var(--touch);padding:0;border-radius:50%;border:0;background:transparent}.chat-scroll-wrap{position:relative;flex:1;min-height:0}.chat-scroll{height:100%;overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior:contain;scroll-behavior:smooth}.chat-column{max-width:var(--column-width);margin:0 auto;padding:var(--space-6) max(var(--space-4),env(safe-area-inset-right)) var(--space-6) max(var(--space-4),env(safe-area-inset-left));display:flex;flex-direction:column;gap:var(--space-6)}.jump-latest{position:absolute;bottom:var(--space-3);left:50%;transform:translate(-50%);width:var(--touch);padding:0;border-radius:50%;box-shadow:var(--shadow-2)}.jump-latest:active:not(:disabled){transform:translate(-50%) translateY(1px)}.msg{min-width:0;animation:msg-in .22s var(--ease) both}.msg h3{margin:0}.msg-role{font-size:.78rem;font-weight:650;letter-spacing:.03em;color:var(--text-muted);margin:0 0 var(--space-2)}.msg--user{align-self:flex-end;max-width:82%;background:var(--accent-soft);color:var(--accent-soft-text);border-radius:var(--radius-lg) var(--radius-lg) var(--space-1) var(--radius-lg);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-1)}.msg--user .caption{color:inherit;opacity:.8}.msg--assistant{align-self:stretch;position:relative;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-1)}.msg-text,.source-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}.msg-text--provisional{color:var(--text-provisional)}.msg-status{margin:0;color:var(--text-muted);min-height:1.5em;display:flex;align-items:center}.msg-note,.msg-error p{margin:var(--space-2) 0 0;font-size:.9rem;color:var(--text-muted)}.msg-error{border-inline-start:3px solid var(--danger);background:var(--danger-bg);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin-top:var(--space-2)}.msg-error p{color:var(--danger);margin-top:0}.msg-error p+p{margin-top:var(--space-1)}.msg .secondary{margin-top:var(--space-3)}.msg--ungrounded{background:var(--warning-bg);color:var(--warning-text);border:1px solid var(--warning-border)}.msg--ungrounded .msg-role{color:var(--warning-text)}.msg--ungrounded:before{background:var(--warning-border)}.badge{display:inline-block;margin:0 0 var(--space-2);padding:.1rem var(--space-3);font-size:.78rem;font-weight:650;border-radius:var(--radius-pill)}.badge--warning{border:1px solid var(--warning-border)}.pulse{display:inline-block;width:.4rem;height:.4rem;margin-inline:.2rem;border-radius:50%;background:currentColor;animation:pulse 1.2s ease-in-out infinite}.pulse+.pulse{animation-delay:.15s}@keyframes pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.msg-details{margin-top:var(--space-3);font-size:.9rem;border-top:1px solid var(--border);padding-top:var(--space-1)}.msg-details summary{cursor:pointer;color:var(--text-muted);min-height:var(--touch);display:flex;align-items:center;gap:var(--space-2);list-style:none;font-weight:500}.msg-details summary::-webkit-details-marker{display:none}.msg-details summary:before{content:"";width:.45rem;height:.45rem;border-inline-end:2px solid currentColor;border-block-end:2px solid currentColor;transform:rotate(-45deg);transition:transform var(--dur) var(--ease)}.msg-details[open] summary:before{transform:rotate(45deg)}.msg-details summary:hover{color:var(--text)}.sources-title{font-weight:650;margin:var(--space-2) 0 var(--space-2)}.sources-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.source{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3)}.source p{margin:0 0 var(--space-1);overflow-wrap:anywhere}.source-n{font-size:.75rem;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-soft-text)}.source-meta{font-size:.85rem;color:var(--text-muted)}.source-text{background:var(--bg);border-inline-start:3px solid var(--accent);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:.875rem}.link-host{color:var(--text-muted);font-size:.9em;overflow-wrap:anywhere}.md{overflow-wrap:anywhere}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p,.md ul,.md ol,.md blockquote,.md pre,.md table{margin:0 0 .85em}.md ul,.md ol{padding-inline-start:1.4rem}.md li+li{margin-top:.25em}.md h1,.md h2,.md h3,.md h4{margin:1.1em 0 .4em;font-size:1.05em}.md blockquote{border-inline-start:3px solid var(--accent);padding-inline-start:var(--space-3);color:var(--text-muted)}.md a{color:var(--accent);text-underline-offset:2px}.md code{font-family:var(--font-mono);font-size:.88em;background:var(--surface);padding:.1em .35em;border-radius:var(--radius-sm)}.md pre{background:var(--surface);padding:var(--space-3);white-space:pre;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}.md pre code{background:none;padding:0}.md-scroll{overflow-x:auto;max-width:100%;border:1px solid var(--border);border-radius:var(--radius);margin:0 0 .85em}.md-scroll table{margin:0}.md table{border-collapse:collapse;width:100%;font-size:.925em}.md th,.md td{border-bottom:1px solid var(--border);padding:var(--space-2) var(--space-3);text-align:start}.md th{background:var(--surface);font-weight:650}.md tr:last-child td{border-bottom:0}.empty-state{padding:var(--space-8) 0 var(--space-4);text-align:center}.empty-subtitle{margin:0 0 var(--space-6);font-size:1.5rem;font-weight:650;letter-spacing:-.02em;line-height:1.25}.examples-title{font-size:.75rem;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 var(--space-3)}.examples{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;text-align:start}.example{display:block;width:100%;min-height:0;text-align:start;background:transparent;color:var(--text);border:0;box-shadow:none;padding:.35rem var(--space-3);overflow-wrap:anywhere;font-size:.95rem;font-weight:450;border-radius:var(--radius-md, .5rem)}.example:before{content:"›";margin-inline-end:var(--space-2);color:var(--text-muted)}.example:hover:not(:disabled){background:var(--surface);border-color:transparent;box-shadow:none;transform:none}.composer-wrap{background:var(--bg-app);overflow-y:auto;scrollbar-gutter:stable}.composer{width:100%;max-width:var(--column-width);margin:0 auto;padding:var(--space-2) max(var(--space-4),env(safe-area-inset-right)) calc(var(--space-3) + env(safe-area-inset-bottom)) max(var(--space-4),env(safe-area-inset-left))}.composer-row{display:flex;align-items:flex-end;gap:var(--space-2);padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.composer-row:focus-within{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 28%,transparent),var(--shadow-2)}.composer-input{flex:1;min-height:var(--touch);min-width:0;resize:none;max-height:12rem;overflow-y:auto;font:inherit;font-size:1rem;line-height:1.45;padding:var(--space-2) var(--space-2);background:transparent;color:var(--text);border:0;border-radius:var(--radius);overflow-wrap:anywhere}.composer-input:focus-visible{outline:2px solid transparent}.composer-input::placeholder{color:var(--text-muted);opacity:1}.composer-input[aria-invalid=true]{color:var(--danger)}.composer-row:has(.composer-input[aria-invalid=true]){border-color:var(--danger)}.composer-button{border-radius:var(--radius);padding-inline:var(--space-6);font-weight:600}.composer-stop{background:transparent;color:var(--text);border-color:var(--text)}.composer-stop:hover:not(:disabled){background:var(--surface-2);border-color:var(--text)}.composer-counter{margin:var(--space-1) var(--space-2) 0;font-size:.8rem;color:var(--text-muted);text-align:end}.composer-counter--over{color:var(--danger);font-weight:600}@media(max-width:48rem){.sidebar-toggle{display:inline-block}.sidebar{display:none;position:absolute;inset-block:0;inset-inline-start:0;z-index:5;max-width:85%;padding-inline-start:max(var(--space-3),env(safe-area-inset-left));box-shadow:var(--shadow-3)}.sidebar--open{display:block;animation:drawer-in .2s var(--ease) both}.drawer-backdrop{display:block;position:absolute;inset:0;z-index:4;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}@keyframes drawer-in{0%{transform:translate(-12%);opacity:0}to{transform:none;opacity:1}}@media(max-width:40rem){.app-header,.chat-column,.composer{padding-inline:var(--space-3)}.chat-column{gap:var(--space-4)}.msg--user{max-width:92%}.msg--assistant{padding:var(--space-3);padding-inline-start:var(--space-3)}.msg--assistant:before{position:static;display:block;margin-bottom:var(--space-2);width:1.25rem;height:1.25rem;border-radius:.35rem}.app-heading .caption,.app-heading:before{display:none}.app-menu .username{display:none}.empty-subtitle{font-size:1.25rem}.composer-button{padding-inline:var(--space-4)}}@media(prefers-reduced-motion:reduce){.pulse{animation:none;opacity:1}*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media print{.app-header,.sidebar,.composer,.jump-latest{display:none}.app-layout{height:auto}}.brand-logos{display:block;max-width:100%;object-fit:contain}.brand-logos--grid{width:15rem;height:auto;margin:0 auto var(--space-4)}.brand-logos--row{width:auto;height:1.75rem;max-width:min(50vw,20rem);flex:none}@media(prefers-color-scheme:dark){.brand-logos{background:#fff;border-radius:.5rem;padding:.3rem .6rem;box-sizing:content-box}}
