:root{color-scheme:light;--space-3xs: 2px;--space-2xs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 40px;--space-2xl: 64px;--space-3xl: 96px;--space-4xl: 144px;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.2rem;--text-xl: 1.44rem;--text-2xl: 1.728rem;--text-3xl: 2.074rem;--text-display-s: 1.44rem;--text-display: 1.728rem;--text-section: 1.2rem;--text-title: 1rem;--text-lead: 1rem;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-micro: .12s;--dur-short: .22s;--dur-long: .42s;--color-error: oklch(56% .22 26);--color-error-bg: oklch(95% .02 26);--color-success: oklch(58% .16 150);--container: 1440px;--gutter: 64px;--gap-columns: 32px;--section-gap-s: 120px;--section-gap: 144px;--section-gap-l: 176px;--z-base: 1;--z-raised: 10;--z-dropdown: 100;--z-sticky: 200;--z-sticky-nav: 300;--z-modal: 400;--z-toast: 500;--z-tooltip: 600;--color-paper: oklch(98.5% .004 85);--color-paper-2: oklch(95% .006 80);--color-paper-3: oklch(92% .008 75);--color-ink: oklch(26% .008 80);--color-ink-2: oklch(42% .008 80);--color-muted: oklch(58% .008 80);--color-rule: oklch(90% .006 80);--color-rule-2: oklch(84% .008 80);--color-frame: oklch(60% .015 80);--color-accent: oklch(64% .17 42);--color-accent-ink: oklch(99% .005 85);--color-focus: oklch(64% .17 42);--color-accent-wash: oklch(94% .02 65);--font-display: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-body: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-outlier: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius-card: 16px;--radius-pill: 999px;--rule-hair: 1px;--shadow-card: 0 1px 2px oklch(26% .008 80 / .06);--tracking-display: -.01em;--display-weight: 600}*,*:before,*:after{box-sizing:border-box}html,body{overflow-x:clip}html{scrollbar-color:var(--color-muted) var(--color-paper)}body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);line-height:1.6;-webkit-font-smoothing:antialiased;caret-color:var(--color-accent)}::selection{background:color-mix(in oklab,var(--color-accent) 20%,transparent)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}a{color:inherit;text-underline-offset:.16em}h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:var(--display-weight);line-height:1.25;overflow-wrap:break-word;min-width:0}p{margin:0}img,video{max-width:100%;height:auto;display:block}svg{display:block}[hidden]{display:none!important}button,input,select,textarea{font:inherit}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);line-height:1.6;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{border-radius:var(--radius-card);cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.app-layout{display:flex;height:100dvh;background:var(--color-paper);color:var(--color-ink);overflow-x:clip}.sidebar{width:272px;flex-shrink:0;border-right:var(--rule-hair) solid var(--color-rule);background:var(--color-paper-2);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm);overflow-y:auto}.main{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--color-paper)}.files-panel{width:300px;flex-shrink:0;border-left:var(--rule-hair) solid var(--color-rule);background:var(--color-paper);padding:var(--space-md);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-sm)}.center{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--color-paper);color:var(--color-ink);padding:var(--space-lg);box-sizing:border-box}.side-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-xs)}.brand{font-weight:600;letter-spacing:var(--tracking-display);font-size:var(--text-md)}.side-user{color:var(--color-muted);font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-form{display:flex;gap:var(--space-2xs)}.project-form .input{flex:1;min-width:0}.users-form{display:flex;flex-direction:column;gap:var(--space-2xs)}.side-rule{border:none;border-top:var(--rule-hair) solid var(--color-rule);margin:var(--space-2xs) 0}.chat-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:var(--rule-hair) solid var(--color-rule);font-size:var(--text-sm);flex-wrap:wrap;background:var(--color-paper)}.header-title{color:var(--color-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;font-weight:500}.header-controls{display:flex;gap:var(--space-xs);align-items:center;flex-wrap:wrap}.input,.btn,.btn-small,.chip{border-radius:12px;min-height:40px;font-size:var(--text-sm)}.input{background:var(--color-paper);color:var(--color-ink);border:var(--rule-hair) solid var(--color-rule-2);padding:var(--space-xs) var(--space-sm);box-sizing:border-box}.input:hover{border-color:var(--color-muted)}.input:focus-visible{outline:2px solid var(--color-focus);outline-offset:-3px;background:var(--color-paper)}.input::placeholder{color:var(--color-muted)}.input:disabled{opacity:.55;cursor:not-allowed}.btn{background:var(--color-accent);color:var(--color-accent-ink);border:var(--rule-hair) solid var(--color-accent);padding:var(--space-xs) var(--space-md);font-weight:600;white-space:nowrap;border-radius:var(--radius-pill)}.btn:hover:not(:disabled){background:var(--color-ink);border-color:var(--color-ink)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.btn-small,.chip{background:var(--color-paper);color:var(--color-ink-2);border:var(--rule-hair) solid var(--color-rule-2);padding:var(--space-xs) var(--space-sm);white-space:nowrap;border-radius:var(--radius-pill)}.btn-small:hover:not(:disabled),.chip:hover:not(:disabled){background:var(--color-paper-3);color:var(--color-ink)}.btn-small:focus-visible,.chip:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.btn-small:disabled,.chip:disabled{opacity:.55;cursor:not-allowed}.chip.is-active{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink)}.list-item{padding:var(--space-xs) var(--space-sm);cursor:pointer;font-size:var(--text-sm);color:var(--color-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:10px;display:flex;align-items:center;gap:var(--space-2xs)}.list-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-btn{flex-shrink:0;background:none;border:none;color:var(--color-muted);padding:2px 6px;font-size:var(--text-sm);border-radius:6px}.icon-btn:hover{background:var(--color-error-bg);color:var(--color-error)}.icon-btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.list-item:hover{background:var(--color-paper-3);color:var(--color-ink)}.list-item.is-active{background:var(--color-accent-wash);color:var(--color-ink);font-weight:500}.list-item:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.picker-wrap{position:relative;display:inline-flex}.picker-button{max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.picker-menu{position:absolute;right:0;top:calc(100% + var(--space-2xs));width:min(340px,85vw);background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-card);box-shadow:var(--shadow-card),0 8px 28px #2624201f;z-index:var(--z-dropdown);display:block;padding:var(--space-sm);box-sizing:border-box}.picker-filter{width:100%;box-sizing:border-box}.picker-tags{display:flex;gap:var(--space-3xs);flex-wrap:wrap;margin-top:var(--space-2xs)}.picker-list{display:block;max-height:300px;overflow-y:auto;margin-top:var(--space-2xs)}.picker-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-xs);width:100%;text-align:left;background:none;border:none;color:var(--color-ink-2);padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm);box-sizing:border-box;border-radius:10px;font-family:var(--font-outlier)}.picker-row:hover{background:var(--color-paper-2);color:var(--color-ink)}.picker-row.is-active{background:var(--color-paper-3);color:var(--color-ink)}.picker-row:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.picker-row-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-chipset{display:flex;gap:var(--space-3xs);flex-shrink:0}.picker-chip{background:var(--color-paper-3);color:var(--color-muted);border:none;padding:var(--space-3xs) var(--space-2xs);font-size:var(--text-xs);border-radius:var(--radius-pill)}.picker-empty{display:block;padding:var(--space-xs);color:var(--color-muted);font-size:var(--text-sm)}.perm-banner{background:var(--color-accent-wash);border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-card);padding:var(--space-sm) var(--space-md);margin:var(--space-sm) var(--space-md) 0}.perm-row{display:flex;justify-content:space-between;gap:var(--space-sm);margin-top:var(--space-2xs);font-size:var(--text-sm);align-items:center;flex-wrap:wrap}.perm-actions{display:flex;gap:var(--space-2xs)}.tool-log{margin:0 var(--space-md);font-size:var(--text-sm);color:var(--color-muted)}.tool-row{font-family:var(--font-outlier);font-size:var(--text-xs);opacity:.9}.chat-scroll{flex:1;overflow-y:auto;padding:var(--space-xl) var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);scroll-behavior:smooth}.chat-inner{width:min(760px,100%);margin-inline:auto;display:flex;flex-direction:column;gap:var(--space-md)}.msg-user{align-self:flex-end;max-width:min(75%,520px);width:fit-content;background:var(--color-accent-wash);background:#f5ede4;color:var(--color-ink);border-radius:var(--radius-card);padding:var(--space-sm) var(--space-md);font-size:var(--text-md);line-height:1.55;overflow-wrap:break-word;white-space:pre-wrap}.msg-assistant{align-self:stretch;width:100%;box-sizing:border-box;background:none;color:var(--color-ink);padding:var(--space-sm) 0;font-size:var(--text-md);line-height:1.7;max-width:75ch}.msg-assistant+.msg-assistant{border-top:var(--rule-hair) solid var(--color-rule)}.msg-assistant>*{max-width:75ch}.msg-stream{white-space:normal}.msg-error{background:var(--color-error-bg);border-radius:var(--radius-card);padding:var(--space-md);border:var(--rule-hair) solid var(--color-rule-2)}.msg-type{font-size:var(--text-xs);color:var(--color-muted);margin-bottom:var(--space-2xs)}.msg-tools{font-size:var(--text-sm);color:var(--color-muted);margin-top:var(--space-2xs)}.typing{color:var(--color-muted);font-size:var(--text-sm);padding:var(--space-2xs) 0}.empty-hint{color:var(--color-muted);text-align:center;margin-top:var(--space-xl);font-size:var(--text-md)}.send-error{margin:0 var(--space-md) var(--space-2xs);color:var(--color-error);font-size:var(--text-sm)}.composer{display:flex;gap:var(--space-xs);padding:var(--space-sm) var(--space-md) var(--space-md);background:var(--color-paper)}.composer-wrap{width:min(760px,100%);margin-inline:auto;display:flex;gap:var(--space-xs);align-items:flex-end;background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule-2);border-radius:26px;padding:6px 6px 6px var(--space-md);box-shadow:var(--shadow-card)}.composer .input{flex:1;min-width:0;border:none;background:transparent;padding:10px 4px}.composer .input:hover{background:transparent}.composer .input:focus-visible{outline:none}.composer:focus-within{border-color:var(--color-muted)}.composer .btn{border-radius:var(--radius-pill);padding:10px 18px}.login-card{background:var(--color-paper);color:var(--color-ink);border:var(--rule-hair) solid var(--color-rule-2);border-radius:20px;box-shadow:var(--shadow-card);padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-sm);width:min(360px,100%);box-sizing:border-box}.login-title{font-size:var(--text-xl);font-weight:600}.login-sub{color:var(--color-muted);font-size:var(--text-sm)}.error-text{color:var(--color-error);font-size:var(--text-sm)}.muted{color:var(--color-muted);font-size:var(--text-sm)}.files-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-xs)}.file-path{font-size:var(--text-sm);overflow-wrap:anywhere}.file-pre{white-space:pre-wrap;font-size:var(--text-sm);font-family:var(--font-outlier);background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-rule);border-radius:12px;padding:var(--space-sm);max-height:300px;overflow:auto;color:var(--color-ink-2)}.file-view{margin-top:var(--space-xs)}.file-view-title{font-size:var(--text-sm);color:var(--color-muted);overflow-wrap:anywhere}.md{line-height:1.7;word-break:break-word;overflow-wrap:anywhere;font-size:var(--text-md)}.md p{margin:0 0 .9em;max-width:75ch}.md p:last-child{margin-bottom:0}.md h1,.md h2,.md h3,.md h4{margin:1.1em 0 .4em;font-weight:600;line-height:1.3;color:var(--color-ink);overflow-wrap:break-word;min-width:0}.md h1{font-size:var(--text-xl)}.md h2{font-size:var(--text-lg)}.md h3{font-size:var(--text-title)}.md h4{font-size:var(--text-md)}.md ul,.md ol{margin:var(--space-2xs) 0 .9em;padding-left:var(--space-lg);max-width:75ch}.md li{margin:var(--space-3xs) 0}.md a{color:var(--color-accent);text-decoration:underline;text-underline-offset:.16em}.md a:hover{color:var(--color-ink)}.md code{background:var(--color-paper-3);border-radius:6px;padding:.12em .4em;font-size:.88em;font-family:var(--font-outlier);color:var(--color-ink)}.md pre{background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-rule);border-radius:12px;padding:var(--space-md);overflow-x:auto;margin:var(--space-sm) 0}.md pre code{background:transparent;border:none;padding:0}.md blockquote{border-left:3px solid var(--color-rule-2);margin:var(--space-sm) 0;padding:var(--space-3xs) var(--space-md);color:var(--color-ink-2)}.md table{border-collapse:collapse;margin:var(--space-md) 0;font-size:var(--text-sm);width:100%;table-layout:auto;border:1px solid var(--color-frame)}.md th,.md td{border:1px solid var(--color-frame);padding:var(--space-xs) var(--space-sm);text-align:left;color:var(--color-ink);vertical-align:top}.md th{background:var(--color-paper-3);font-weight:600;white-space:nowrap}.md tbody tr:nth-child(2n){background:var(--color-paper-2)}.md td{overflow-wrap:anywhere}.md hr{border:none;border-top:var(--rule-hair) solid var(--color-rule-2);margin:var(--space-md) 0}.md img{max-width:100%}.md .hljs{color:var(--color-ink)}.md .hljs-keyword,.md .hljs-selector-tag,.md .hljs-built_in,.md .hljs-literal{color:#8e35a1}.md .hljs-string,.md .hljs-regexp{color:#00722e;color:oklch(48% .15 150)}.md .hljs-comment,.md .hljs-meta{color:var(--color-muted);font-style:italic}.md .hljs-number,.md .hljs-attr,.md .hljs-attribute{color:#b94739}.md .hljs-title,.md .hljs-section,.md .hljs-function{color:#255ebc}@media(prefers-reduced-motion:reduce){.btn,.btn-small,.chip,.input,.list-item,.picker-row,.chat-scroll{transition:none;scroll-behavior:auto}}@media(prefers-reduced-motion:no-preference){.btn,.btn-small,.chip{transition:background-color var(--dur-short) var(--ease-out),color var(--dur-short) var(--ease-out)}.input{transition:border-color var(--dur-short) var(--ease-out)}}@media(max-width:60rem){.sidebar{width:220px}.files-panel{width:260px}.msg-user{max-width:88%}}@media(max-width:40rem){.app-layout{flex-direction:column;height:auto;min-height:100dvh}.sidebar{width:100%;box-sizing:border-box;border-right:none;border-bottom:var(--rule-hair) solid var(--color-rule)}.files-panel{width:100%;box-sizing:border-box;border-left:none;border-top:var(--rule-hair) solid var(--color-rule)}}
